Advertisement
bata_24

katagaitai ctf study session #3 - setup

Oct 31st, 2015
975
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. ■概要
  2. 動的解析やシェルコード開発をしたい人向けの,qemu-systemを使ったUbuntu 14.04 ARMv7 qemu環境作成方法です.
  3. 別にこの環境と全く同じものを用意する必要はなく,lxcでもdockerでもラズパイでも良いです.
  4. (要は,ARMのシェルコードを作成したり,ARMバイナリを動的解析するためのARM版gdbがある環境をお持ちであればそれでOKです.)
  5.  
  6. とはいえ,資料は下記環境がある前提で進めていくのと,CTFではqemu-systemなARM環境を準備しておいて損は無いと思うので,なるべく準備頂くことをお勧めします.
  7. ※AWS上に環境を作ってログインして頂いたり,VMイメージ配布したほうが良いという意見もあったのですが,
  8. 自前の環境を持っていたほうが何かと便利ですし,qemuの環境構築も勉強になるかなと思い,敢えて各自で作ってもらうことにしました.
  9.  
  10. ■構成
  11. 下記手順で想定しているNW環境は以下のとおりです(NWアドレスまで合わせる必要はありませんが,参考までに書いている次第です).
  12.  
  13. +----------------------------------+
  14. |Ubuntu 14.04 x86_64 on VMware |
  15. |192.168.164.100/24 |
  16. | +---------------------------+ |
  17. | |Ubuntu 14.04 ARMv7 on qemu | |
  18. | |192.168.164.200/24 | |
  19. | +-------eth0----------------+ |
  20. | | |
  21. | .100 -- br0 |
  22. | | |
  23. +----------eth0--------------------+
  24. |
  25. 192.168.164.2(VMwareデフォゲ)
  26. |
  27. ...
  28.  
  29. ■Ubuntu 14.04 ARMv7 qemu環境作成
  30. $ apt-get install qemu-system uml-utilities bridge-utils
  31. $ wget http://odroid.us/odroid/users/osterluk/qemu-example/qemu-example.tgz
  32. $ tar zxf qemu-example.tgz ./zImage
  33. $ wget http://releases.linaro.org/14.10/ubuntu/trusty-images/developer/linaro-trusty-developer-20141024-684.tar.gz
  34. $ tar zxf linaro-trusty-developer-20141024-684.tar.gz
  35. $ qemu-img create -f raw rootfs.img 3G && mkfs.ext3 rootfs.img
  36. $ mkdir mnt && mount -o loop rootfs.img mnt && rsync -a binary/ mnt/ && umount mnt && rm -rf binary && rmdir mnt
  37.  
  38. ■qemuホスト側ブリッジ設定
  39. $ vi /etc/network/interfaces
  40. ---------------------------
  41. auto lo
  42. iface lo inet loopback
  43.  
  44. auto eth0
  45. iface eth0 inet static
  46. address 0.0.0.0 ★eth0をプロミスキャスモードに変更
  47.  
  48. auto br0 ★ここからqemuホストとqemuゲストをブリッジする設定
  49. iface br0 inet static
  50. address 192.168.164.100 ★br0にはホストのIPを指定する.(ゲストIPはゲスト上で指定するのでここでは書かない)
  51. netmask 255.255.255.0
  52. network 192.168.164.0
  53. broadcast 192.168.164.255
  54. gateway 192.168.164.2
  55. bridge_ports eth0 ★eth0とbr0のブリッジインターフェースを作成
  56. bridge_stp off
  57. bridge_maxwait 1
  58. ---------------------------
  59. $ reboot
  60.  
  61. ■qemu起動
  62. $ qemu-system-arm -M vexpress-a9 -m 256 -kernel zImage -sd rootfs.img -append "root=/dev/mmcblk0 rw physmap.enabled=0 console=ttyAMA0" -net nic -net tap -k ja -nographic
  63. ※qemuを終了したいときはホスト側でpkill -9 qemuすると楽です
  64. ※当初-m 1024と書いていたのですが,-m 256でも十分だったため修正しました.-m 128でも良いでしょう.
  65.  
  66. ■qemuゲスト側設定
  67. $ passwd
  68. → rootのパスワード設定
  69. $ vi /etc/resolv.conf
  70. → ネームサーバ設定(nameserver 192.168.164.2 など)
  71. $ vi /etc/resolvconf/resolv.conf.d/base
  72. → ネームサーバ設定(nameserver 192.168.164.2 など)
  73. $ vi /etc/network/interfaces
  74. → eth0のコンフィグ作る(以下は例)
  75. ---------------------------
  76. auto eth0
  77. iface eth0 inet static
  78. address 192.168.164.200
  79. netmask 255.255.255.0
  80. network 192.168.164.0
  81. broadcast 192.168.164.255
  82. gateway 192.168.164.2
  83. ---------------------------
  84. $ ifup eth0
  85.  
  86. $ vi /etc/ssh/sshd_config
  87. → PermitRootLogin yes に変更
  88. $ service ssh restart
  89.  
  90. $ apt-get update && apt-get upgrade
  91. $ apt-get install netcat socat busybox aptitude zip tcpdump automake telnet xinetd # よく使うやつを適当に突っ込む
  92.  
  93. ■補足(作った環境でnokia_uiを動かしてみたい人向け)
  94. (1) ライブラリ関連
  95. $ ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3
  96. $ apt-get install libsqlite3-dev
  97.  
  98. (2) baseband接続の不要化
  99. fon.tar.gz以外の環境では,以下のパッチをnokia_uiに当てないと動きません(ただしSMSは使えなくなります)
  100. 00001203: E1 -> E3
  101.  
  102. ※資料内ではgdbのリモートデバッグ機能を使って解析しますので,上記補足(1)(2)は正直実施不要です.
  103. あくまで構築した環境でnokia_uiを動かしてみたい人向けの補足です.
  104.  
  105. ■補足その2
  106. 最終的に,qemuは以下のように2台動かす事になります(左側がfon.tar.gzに同梱されていたqemu環境,右側が自作していただいたqemu環境です).
  107. メモリ不足にならないよう2台同時に動かせるか,事前に確認しておくことをおすすめします.
  108.  
  109. +----------------------------------------------------------------+
  110. |Ubuntu 14.04 x86_64 on VMware |
  111. |192.168.164.100/24 |
  112. | +---------------------------+ +---------------------------+ |
  113. | |qemu (from fon.tar.gz) | |Ubuntu 14.04 ARMv7 on qemu | |
  114. | | | |192.168.164.200/24 | |
  115. | +-------eth0----------------+ +-------eth0----------------+ |
  116. | | |
  117. | .100 -- br0 |
  118. | | |
  119. +-----------------------------------------eth0-------------------+
  120. |
  121. 192.168.164.2(VMwareデフォゲ)
  122. |
  123. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement