LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4084|回复: 0

工具光盘制作笔记(zz)

[复制链接]
发表于 2003-7-26 14:52:55 | 显示全部楼层 |阅读模式
不错的一个帐子,所以就转过来。


  1. 工具光盘制作笔记
  2. 创建时间:2003-06-02
  3. 文章属性:原创
  4. 文章提交:san (san_at_xfocus.org)

  5. 一、重灌knoppix

  6. knoppix是一个基于debian的在光盘运行的linux,关于knoppix重新定制网上有很多文章了,我其实只是自己做的记录而已。

  7. 1、解包ISO

  8. 没有空余的机器或空余的分区,只能用虚拟机来折腾。在VPC上添加一个新的linux系统,选好内存大小,硬盘映像文件,然后启动这个系统,在菜单CD
  9. -> Capture
  10. Image...选择KNOPPIX_V3.2-2003-05-03-EN.iso就可以了。

  11. 启动选项输入knoppix
  12. 2进入字符模式,用fdisk给/dev/hda分一个区,5个G应该足够,然后用mkfs.ext2给/dev/hda1创建文件系统。再把这个分区mount上:

  13. # mount -o rw /dev/hda1 /mnt/hda1

  14. 建立工作目录:

  15. # mkdir /mnt/hda1/knx
  16. # mkdir -p /mnt/hda1/knx/master/KNOPPIX
  17. # mkdir -p /mnt/hda1/knx/source/KNOPPIX

  18. 如果机器没有足够内存应该建立一个swap文件,因为最后压缩文件系统的时候会暂时把压缩文件写入内存:

  19. # cd /mnt/hda1/knx ; dd if=/dev/zero of=swapfile bs=1M \
  20. count=750 ; mkswap swapfile ; swapon swapfile

  21. 拷贝knoppix文件,cp的p参数是保持文件的所有属性,这里的拷贝会持续比较长时间。

  22. # cp -Rp /KNOPPIX/* /mnt/hda1/knx/source/KNOPPIX

  23. 以下的拷贝是为了重新编译内核以后,重做iso以新内核启动。否则只需拷贝boot.img就可以了。

  24. # cd /cdrom/KNOPPIX
  25. # cp boot.img boot.cat KNOPPIX
  26. /mnt/hda1/knx/master/KNOPPIX

  27. 进入chroot环境对knoppix进行大刀阔斧的裁剪了:

  28. # chroot /mnt/hda1/knx/source/KNOPPIX

  29. 2、裁剪和替换

  30. 进入chroot环境后,mount上proc:

  31. # mount -t proc /proc proc

  32. 配置好网络准备就绪。由于是基于debian操作系统的,所有的软件包都通过apt系统来维护,所以可能需要修改/etc/apt/sources.list文件,使用速度较快的镜像站点。

  33. 然后用apt-get --purge remove
  34. program的命令方式删除不需要的东东,减少空间可以装其他自己想要的东东。/usr/share/doc这个目录的东西也比较大,100多M,也剁了。

  35. 通过执行deborphan可以找到一些不再关联的包,这些也可以安全的删除。

  36. 由于希望knoppix适合honeynet
  37. GenII的网桥,必须给内核打补丁:

  38. # apt-get install kernel-source-2.4.20
  39. # apt-get install kernel-patch-xfs
  40. # wget
  41. [url]http://users.pandora.be/bart.de.schuymer/ebtables/v2.0/v2.0./ebtables-v2.0.003_vs_2.4.20.diff[/url]
  42. # wget
  43. [url]http://users.pandora.be/bart.de.schuymer/ebtables/br-nf/bridge-nf-0.0.10-against-2.4.20.diff[/url]
  44. # tar jxf kernel-source-2.4.20.tar.bz2
  45. # cp linux/.config kernel-source-2.4.20/
  46. # rm linux
  47. # ln -s kernel-source-2.4.20 linux
  48. # cd linux
  49. # ../kernel-patches/all/apply/xfs
  50. # patch -p1 < ../ebtables-v2.0.003_vs_2.4.20.diff
  51. # patch -p1 < ../bridge-nf-0.0.10-against-2.4.20.diff

  52. 我们使用了knoppix的内核配置文件.config,这里要注意的是ebtables的补丁一定要在bridge-nf打,否则会出错误。

  53. # make menuconfig

  54. 在内核选项里要把802.1d Ethernet
  55. Bridging及相关选项选上,其他的可以根据自己的需求更改定制,执行完这一步打上knoppix的内核补丁:

  56. # patch -p1 < ../knoppix-kernel.patch

  57. 然后编译内核:

  58. # make dep
  59. # make bzImage
  60. # make modules
  61. # make moduels_install

  62. 编译模块需要不少时间。安装完以后可以把konippix原来内核相关的东西删除:

  63. # rm -rf /usr/src/linux-2.4.20-xfs
  64. # rm -rf /lib/modules/2.4.20-xfs
  65. # rm -rf /boot/*
  66. # rm /vmlinuz

  67. 把新的内核拷过去:

  68. # cp System.map /boot/System.map-2.4.20
  69. # cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20
  70. # cd /boot
  71. # ln -s System.map-2.4.20 System.map
  72. # ln -s vmlinuz-2.4.20 vmlinuz
  73. # cd /
  74. # ln -s boot/vmlinuz-2.4.20 vmlinuz

  75. 必须用新内核重新编译cloop.o模块:

  76. # cd /tmp
  77. # wget
  78. [url]http://www.knopper.net/download/knoppix/cloop_0.68-2.tar.gz[/url]
  79. # tar xzf cloop_0.68-2.tar.gz
  80. # cd cloop-0.68
  81. # make KERNEL_DIR=/usr/src/linux

  82. 由于knoppix通过boot.img来启动系统,必须修改之,按ALT+F2进入另外一个非chroot的shell,把boot.img拷过来:

  83. # cp /mnt/hda1/knx/master/KNOPPIX/boot.img
  84. /mnt/hda1/knx/source/KNOPPIX/var/tmp

  85. 在chroot的shell环境下进行修改。

  86. # cd /tmp
  87. # mkdir boot mroot
  88. # mount boot.img boot -t msdos -o loop=/dev/loop0
  89. # cp boot/miniroot.gz .
  90. # gzip -d miniroot.gz
  91. # mount miniroot mroot -t ext2 -o loop=/dev/loop1
  92. # cp /tmp/cloop-0.68/cloop.o /tmp/mroot/modules/

  93. 由于我的内核较大,索性把scsi光驱支持去掉,这样启动的时候速度也会快不少:

  94. # rm -rf /tmp/mroot/modules/scsi

  95. 修改/tmp/mroot/linuxrc,设置SCSI_MODULES=""。

  96. 其实可以用winimage把boot.img扩大,那么这些东西就可以轻易的放入,用多个启动映像文件,多一种选择更好。注意映像文件名要使用8.3格式,后面提到的diskemu只能使用这个格式。

  97. 把miniroot打包回去:

  98. # umount /tmp/mroot
  99. # gzip -9 miniroot
  100. # cp miniroot.gz boot/

  101. 把新的内核映像也拷回去:

  102. # cp /boot/vmlinuz-2.4.20 /tmp/boot/vmlinuz

  103. 修改/tmp/boot目录下syslinux.cfg文件的DEFAULT
  104. vmlinuz设置,把lang=us改为lang=cn
  105. 2,把下面所有的lang=us改为lang=cn。这样knoppix重新启动的时候默认把语言属性改为中文,而且默认使用字符模式,没有必要一启动就进入xwindow。

  106. 还可以修改/tmp/boot下的boot.msg、f2、logo.16这几个标记。这个新的boot.img就可以把knoppix引导到新的内核,先重新灌装,然后在新的内核下安装与内核相关的驱动。退出chroot环境,用新的boot.img重新制作iso:

  107. # cp /mnt/hda1/knx/source/KNOPPIX/var/tmp/boot.img
  108. /mnt/hda1/knx/master/KNOPPIX/boot.img
  109. # cd /mnt/hda1/knx/
  110. # mkisofs -pad -l -r -J -v -V "KNOPPIX" -b
  111. KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o
  112. /mnt/hda1/knx/knoppix.iso /mnt/hda1/knx/master

  113. 制作iso速度比较快,把/mnt/hda1/knx/knoppix.iso传到自己的系统里面,然后用这个iso启动虚拟机。

  114. 3、更新和安装新的驱动

  115. 重新启动后可以用uname -a看看是否已经是新内核。

  116. 增强对无线网卡的支持。默认linux是不支持atmel芯片的无线网卡,需要另外安装,这里使用是非官方发布版本:

  117. # chroot /mnt/hda1/knx/source/KNOPPIX
  118. # cd /tmp
  119. # wget
  120. [url]http://atmelwlandriver.sourceforge.net/snapshots/atmelwlandriver-ss-20030507.tar.gz[/url]
  121. # tar xzf atmelwlandriver-ss-20030507.tar.gz
  122. # cd atmelwlandriver
  123. # make config
  124. Build all [y/N] <-- 这里选y把所有的驱动都编译了。
  125. # make all
  126. # make install

  127. 对于orinoco的驱动linux自带内核模块,但默认的驱动不支持无线网卡的monitor模式,airsnort主站提供了相应补丁,可以通过给pcmcia-cs打补丁,也可以通过给orinoco驱动打补丁,这样更简单一些:

  128. # cd /tmp
  129. # wget
  130. [url]http://ozlabs.org/people/dgibson/dldwd/orinoco-0.13b.tar.gz[/url]
  131. # wget
  132. [url]http://airsnort.shmoo.com/orinoco-0.13b-patched.diff[/url]
  133. # tar xzf orinoco-0.13b.tar.gz
  134. # cd orinoco-0.13b
  135. # patch -p1 < ../orinoco-0.13b-patched.diff
  136. # make
  137. # make install

  138. linux-wlan-ng的驱动也更新一下:

  139. # cd /tmp
  140. # wget
  141. [url]ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-0.2.1-pre5.tar.gz[/url]
  142. # tar xzf linux-wlan-ng-0.2.1-pre5.tar.gz
  143. # cd linux-wlan-ng-0.2.1
  144. # make config  <-- 这里可以基本上把所有的驱动都加上
  145. # make all
  146. # make install

  147. prism的芯片也能使用orinoco的驱动,如果确认一些网卡使用的是prism芯片可以修改/etc/pcmcia/config文件,使用的驱动改一下,比如Compaq
  148. WL100的网卡原来使用orinoco的驱动,可以把它改成:

  149. bind "prism2_cs"

  150. 这样插入Compaq
  151. WL100的网卡就会使用linux-wlan-ng的驱动,其它的网卡也可做类似修改,但你得知道网卡使用的芯片。

  152. 4、xwindow桌面环境的修改和汉化

  153. KNOPPIX默认使用KDE作为桌面环境,这实在太大了。除了fluxbox、wmake、twm,删除了其它所有桌面环境,fvwm也是非常不错的,直接用apt安装。使用fluxbox作为默认的桌面。输入法使用fcitx,非常不错,而且已经进了debian的sid,以后更新就方便了。修改/etc/init.d/knoppix-autoconfig的1026行附近关于DESKTOP变量的赋值改为如下:

  154. # Also read desired desktop, if any
  155. DESKTOP="$(getbootparam desktop 2>/dev/null)"
  156. # Allow only supported windowmanagers
  157. case "$DESKTOP" in
  158. fvwm|windowmaker|wmaker|fluxbox|twm) ;; *)
  159. DESKTOP="fluxbox"; ;; esac

  160. knoppix关于xwindow的脚本实际执行的是/etc/X11/Xsession.d/45xsession,里面有启动各种桌面的函数,比如startkde()。需要给fvwm添加一个类似的函数,完全拷贝startfluxbox()。startkde()完全可以删除以节省篇幅。

  161. 修改45xsession文件最后部分:

  162. if [ "$LANGUAGE" = "cn" ]; then
  163. export XMODIFIERS=@im=fcitx
  164. /usr/bin/fcitx &
  165. fi

  166. case "$DESKTOP" in
  167.       fvwm|FVWM) startfvwm ;;
  168. fluxbox|FLUXBOX) startfluxbox ;;
  169. windowmaker|wmaker|WINDOWMAKER|WMAKER) [ "$FREEMEM"
  170. -ge "35000" ] && startwindowmaker || starttwm lowmem
  171. 64; ;;
  172.         twm|TWM) starttwm;   ;;
  173.               *) starttwm invalidwm;   ;;
  174. esac

  175. 这个脚本还有许多地方可以修改,也许你还需要修改/etc/init.d/xsession脚本等等。

  176. 字体使用simsun,并且使用firefly的补丁,可以到这里下载:
  177. [url]http://debian.ustc.edu.cn/dev/[/url]

  178. 修改/etc/gtk/gtkrc.zh_CN:
  179. style "gtk-default-zh-cn" {
  180. fontset =
  181. "-misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1,\
  182. -misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1"
  183. }
  184. class "GtkWidget" style "gtk-default-zh-cn"

  185. 修改/etc/init.d/xsession,默认使用root用户启动X。

  186. 5、honeynet功能

  187. # mkdir /honeynet
  188. # wget
  189. [url]http://honeynet.xfocus.net/papers/honeynet/tools/snort_inline.tgz[/url]
  190. # wget
  191. [url]http://honeynet.xfocus.net/papers/honeynet/tools/sebeksniff-2.0.1.tar.gz[/url]
  192. # wget
  193. [url]http://honeynet.xfocus.net/papers/honeynet/tools/sebek-linux-2.0.1.tar.gz[/url]

  194. # apt-get install swatch
  195. # apt-get install honeyd

  196. 以后再调整。

  197. 6、生成压缩文件系统

  198. 重灌前建议对系统做一遍升级和清理垃圾的工作。

  199. # apt-get -u upgrade <-
  200. 这里要注意,有些服务型的软件会加上开机启动脚本,可以用update-rc.d删除。
  201. # apt-get clean

  202. 更新关联:

  203. # updatedb
  204. # umount /proc

  205. 退出chroot环境后压缩文件系统:

  206. # mkisofs -R -U -V "KNOPPIX.net filesystem" -P
  207. "KNOPPIX [url]www.knoppix.net[/url]" -hide-rr-moved -cache-inodes
  208. -no-bak -pad /mnt/hda1/knx/source/KNOPPIX | nice -5
  209. /usr/bin/create_compressed_fs - 65536 >
  210. /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

  211. 二、制作winpe

  212. 作为一个工具盘如果有windows环境那就更好了,winpe解决了这个问题。
  213. 定制一个winpe非常容易,下面介绍的英文版的定制:

  214. 1、首先拷贝winpe光盘的winpe目录到硬盘,假设拷贝的硬盘目录是:e:\winpe。

  215. 这个用资源管理器拷贝就可以了。

  216. 2、然后从微软网站下载MSA EDC Deployment Kit。

  217. e:\temp\>wget
  218. [url]http://download.microsoft.com/download/win2000srv/MSAEDC/EDC1.5/NT5/EN-US/05-EDCv1.5DeploymentKit.exe[/url]
  219. 解开这个包到e:\temp\EDCAPFDeployment,然后:

  220. e:\temp\>copy
  221. EDCAPFDeployment\WinPESupport\WINPESYS.INF e:\winpe

  222. 这里的WINPESYS.INF其实是添加了ramdisk的支持,默认盘符是r,大小是4M。可以通过修改HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","DriveLetter",0000000000,"R:"来改变盘符,修改HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","DiskSize",0x00010001,0x400000来改版大小。

  223. 3、准备winxp的光盘,比如在f盘。很奇怪那个pebuilder为什么要用sp1的光盘,我发现就xp的安装也是可以制作的。

  224. 4、运行mkimg.cmd脚本,生成winpe的文件。

  225. 如果你想让winpe启动的时候在内存执行程序,可以修改e:\winpe目录下的config.inf文件,把osloadoptions项改成如下:

  226. osloadoptions=txtsetup.sif,setupdata,"/fastdetect
  227. /minint /noguiboot /inram"

  228. 但是确定你的系统有256M内存。

  229. 如果想修改启动提示信息,修改loaderprompt项。当然这两项都可以不做,直接用以下命令生成winpe文件:

  230. e:\winpe\>mkimg.cmd f: e:\temp\winpe.tmp

  231. 如果删除i386下的WinSxS目录及其文件,最后做成的iso会不能使用notepad。但是如果直接改微软发布的winpe
  232. iso,都会造成notepad不能执行,不知道为什么。

  233. 5、拷贝ramdisk的驱动文件

  234. e:\winpe\>copy
  235. e:\temp\EDCAPFDeployment\WinPESupport\ramdrv.INF
  236. e:\temp\winpe.tmp\I386\inf\
  237. e:\winpe\>copy
  238. e:\temp\EDCAPFDeployment\WinPESupport\ramdrv.sys
  239. e:\temp\winpe.tmp\I386\system32\drivers\

  240. 6、加上erd command 2002

  241. 只需拷贝commandshell.exe, common.dll, compmgmt.exe,
  242. cs.cfg, dt.cfg, erdcmdr2002.cnt, erdhelp.exe,
  243. explorer.exe, fauxshell.dll, fe.cfg, filesearch.exe,
  244. locksmith.exe, logoff.exe, logon.exe, ntfsver.exe,
  245. pwdserv.exe, tcpcfg.exe,
  246. windowsshell.exe这几个文件到e:\temp\winpe.tmp\I386\system32下面就可以了。做成iso启动后在system32目录下执行logon就能进入erd,即使不想用erd,还可以使用它的一些工具,比如用tcpcfg就可以方便的配置网络。

  247. 7、调整winpe

  248. 现在就可以制作iso了,但是这样winpe启动的时候会提示Press
  249. any key to boot from
  250. CD.,如果没有按键就想从硬盘引导,只需删除e:\temp\winpe.tmp\i386目录下的BOOTFIX.BIN文件就不会有这个提示了。

  251. winpe启动的时候首先会使用e:\temp\winpe.tmp\I386\system32\startnet.cmd文件,可以编辑这个脚本,使得启动时更加方便。

  252. 三、制作iso文件。

  253. DISKEMU是一个多启动光盘常用的软件,而且它使用也非常简单。建立工作目录e:\cd,拷贝DISKEM1X.BIN、DISKEMU.CMD到cd目录。在cd目录下建立IMG、KNOPPIX目录。
  254. 拷贝KNOPPIX的压缩文件KNOPPIX到e:\cd\KNOPPIX下,拷贝boot.img到e:\cd\img\knoppix.img,再拷贝一份到e:\cd\KNOPPIX\下面,否则在使用knx-hdinstsall脚本把knoppix安装到硬盘的时候会不正确。
  255. 把e:\temp\winpe.tmp下所有文件拷贝到e:\cd下,拷贝e:\winpe\ETFSBOOT.COM到e:\cd\img\winpe.bin。

  256. 修改DISKEMU.CMD文件,以下是个参考:

  257. cd img
  258. :start
  259. cls
  260. print
  261. print                  
  262. print
  263. print   
  264. print  
  265. print  
  266. print               
  267. print               
  268. print               
  269. print                  1.   KNOPPIX
  270. print                  2.   WindowsPE                 
  271.                
  272. print                  r.   Reboot  
  273. print                  q.   Quit to command prompt
  274. print                  Esc. Boot first harddisk
  275. print
  276. print   
  277. print   
  278. print   
  279. print
  280. print  
  281. print     
  282. print  
  283. :mainkey
  284. ; timeout is 60 seconds, default key is escape
  285. getkey 60 esc
  286. onkey 1 goto knoppix
  287. onkey 2 goto winpe

  288. onkey f1 goto help
  289. onkey q quit
  290. onkey r reboot
  291. onkey f boot 0
  292. onkey esc boot 80
  293. ; When no key found...
  294. goto mainkey
  295. ;
  296. :help
  297. cls
  298. print HELP
  299. print ----
  300. print  + Have ISO9660 filesystem support, you can do
  301. "dir" and "cd"
  302. print  + A "advanced" command prompt to load anything
  303. you want
  304. print  + A simple bootmenu for "less" advanced users
  305. print  + Autodetection of floppy image types (by
  306. filesize)
  307. print  + Using a bootable Diskemu 1.x CD-Rom, you can
  308. even boot images from "non-
  309. print    bootable" CD-Roms, just swap the CD, type "cd
  310. " and you can use that CD.
  311. print    (Cool!)
  312. print  + You can create a multiboot bootable CD-Rom
  313. using (almost) any recording
  314. print    software you want
  315. print  + Supported floppy types: 160KB, 180KB, 320KB,
  316. 360KB, 1.2MB, 720KB, 820KB,
  317. print    1.44MB, 1.68MB, 1.72MB, 2.88MB
  318. print
  319. print  All supported command are listed below.
  320. print
  321. print  batch       boot         bootinfotable     cd  
  322.        cls         dir
  323. print  echo        emusegm      getkey            goto
  324.        help        keyval
  325. print  loadsegm    onkey        print             quit
  326.        readtest    reboot
  327. print  run         test         type              ver
  328. print
  329. print  help <command> (or ?)   Displays help about
  330. <command>
  331. print
  332. print  Press any key to return to main menu
  333. getkey
  334. goto start
  335. ;

  336. :knoppix
  337. print Use KNOPPIX
  338. run knoppix.img
  339. getkey
  340. goto start
  341. ;

  342. :winpe
  343. print WindowsPE
  344. run winpe.bin
  345. getkey
  346. goto start
  347. ;

  348. ; EOF

  349. 然后就可以制作iso文件了,但是必须要注意iso的格式,不能用iso9660,要使用兼容iso9660文件的Joliet格式,cdimage的-j1参数满足这个条件:

  350. cdimage -ltoolcd -j1 -bloader.bin cd toolcd.iso

  351. OK,用toolcd.iso引导试试。

  352. 四、简单使用说明

  353. linux部分:

  354. 1、启动菜单选择1是启动没有SCSI的KNOPPIX,但速度比较快,选择2是有SCSI的KNOPPIX,启动检测SCSI设备。
  355. 2、vmware里从xwindow退出会造成屏幕变小还没有找到问题所在。
  356. 3、如果机器有多个光驱,要放在/dev/cdrom这个光驱里,否则不能启动。
  357. 4、可以用knx-hdinstall脚本把系统方便快速的安装到硬盘。

  358. winpe部分:

  359. 1、启动后会使用startcmd.net的脚本,首先提示系统分辨率,默认是800x600。
  360. 2、提示启动网络还是启动erd
  361. command(硬盘需要有win系统,license在光盘根目录)。
  362. 3、输入explorer启动erd的资源管理器,硬盘有fat、ntfs分区也可以直接读写。
  363. 4、tools目录会加到PATH环境变量里面,里面有很多好玩的东东,你还可以自己再添加。

  364. 声明:

  365. 由于该光盘包含了很多商业软件,所以没法提供下载的,也不要问我这些东东从那里来。我只是给大家介绍一个工具光盘的制作方法,方便大家做渗透测试、调查取证、入侵检测、网络陷阱等等。

  366. 参考:
  367. [url]http://www.knoppix.net/docs/index.php/KnoppixRemasteringHowto[/url]
  368. [url]http://www.knoppix.net/docs/index.php/KnoppixCustomKernelHowto[/url]
  369. [url]http://www.microsoft.com/technet/itsolutions/edc/pak/build/EDCBLD05.ASP[/url]
  370. [url]http://honeynet.xfocus.net/papers/gen2/[/url]


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表