HIT2006 Wargame
2006-07-18 15:00
前兩天去台北參加了今年的 HITcon (Hacks In Taiwan Conference)
這個研討會今年是第二屆 ,
像去年一樣 , 由台灣著名的駭客組織 chroot 所主辦.
去年因為是以用公司的錢去參加的 ,
所以比較認真 , 做了蠻多筆記 , 回來也寫了份報告.
今年算是帶著輕鬆的心情去觀光的 , 沒作什麼紀錄 ....
只針對幾個比較有興趣的主題在聽 ,
其他的時間都在打 Wargame ........ XD
這次的 Wargame 類型、關卡數 都多了很多
而且並不用照順序過 , 可以哪關有靈感就玩哪關 ....
所以從頭到尾都玩得不亦樂乎 ~
一開始要設定名字的時候 , 因為那時也不知這個代號要幹嘛用 ..
所以就沒拿自己的 id 出來 .... 隨便順手取了個 iknogg
結果第一天打過了幾關 .... 排行榜上的前幾名中就一個大大的 iknogg 在上面
造成主辦單位和許多人的關切 .... (對 ik 關切 XD)
第一天只解了幾題 不過很多題也都有頭緒了
於是到 ik 他們住的旅館一起吃完 pizza 後
就和壞人 cb520 一起繼續研究 , 後面還躲了一隻黑鬼 bf 在偷窺
玩了一整晚沒啥睡 .... 結果也沒解幾題出來 ...
不過可能因為一直在想 ,
隔天到會場後思緒就突然順了起來 ,
一連過了好幾關 ...
雖然有點可惜的 ,
到最後結束前半小時積分都維持在第一名 ,
不過突然間就被後面的人趕過去了 .... 掉到第四 ...
(這證明了會場中實在是高手如雲 , 之前只是因為人家都認真聽講沒在玩而已 XD)
因為只取 3 名 , 所以就拿不到一萬多塊的獎金 .... 沒辦法開大食團了 ~~~~
其實對我來說也還好 反正又不是那麼缺錢 ...
不過我是真的蠻 enjoy 在這種有時限的解題過程就是了 ~~~~
(所以我適合去拍 劍魚 ? )
再來紀錄一些我有過、玩到的關卡 和思考流程 ....
因為不知道這些關卡以後 chroot 是不是會放出來使用 ? 或是有何版權問題 ?
如果下面的資料有任何不妥當的地方
再麻煩板上幾位該 team 的長輩來信告知 :)
關卡共分成幾類 -
1. Windows - 破解 EXE , 改變執行流程或拿到藏於其中的密碼 , 共有 8 關
2. Forensic - 有 2 關 ,
一關是分析隨身碟的 image file , 找出隱藏於媒體檔中的訊息(.doc)
另一關是由一大串截取到的網路封包(FTP), 分析出其中的圖片.
3. Web - 尋找一些 web 設計的漏洞 , 找到藏於其中的密碼 , 共 5 + 1(隱藏) 關
4. Linux - 破解幾個設計的有問題的程式
1. Windows -
只過了一關半 , 大部份關卡我都不會玩 ....
啊 一直跟它不熟 .... 我果然是暈倒白痴 ~~~
(1) 直接用 strings 分析 A_CrackME01.exe ,
就可以直接看到藏在裡面的密碼.
不過讓聽說高手都是拿 dissembler 反組譯後破的 ,
這樣對玩後面幾關也有幫助 ...
(5) 關卡給了一個 E_MSI_CrackMe.msi (Windows Installer 安裝檔)
執行後會 show 一個訊息 , 然後就只能結束安裝 ...
這關其實我是亂過的 ... 有兩種手法可以過一半
(a) 用 WinRAR 解開 .msi , 得到一個奇怪的 _ 檔案
分析可能是 zip 檔 , 於是再把檔名改成 _.zip
解開就得到 password ...
(b) 不要直接用檔案總管點 .msi ,
可以從命令列執行 msiexec /a E_MSI_CrackMe.msi ,
就可以跳過該訊息進行安裝 , 安裝完會得到和 (a) 一樣的檔案 ...
這樣算是只過一半 , 因為沒得到隱藏於安裝過程中的另一個密碼 ...
2. Forensic -
過了網路封包分析那一關 ...
關卡給了一個含 28960 個封包的 log 檔 ,
看到 network log , 就很自然的想用 ethereal 去開啟它 ...
分析了一下後判斷是 192.168.1.2 <-> 192.168.1.10 間的 FTP 傳送
於是先找到了 command channel 的 start packet ,
再 Follow TCP Stream (以該組 socket pair 為 filter )
會看到一些 RETR xxx 的命令 ,
照題目要求的找出 .jpg 圖片的 data channel start packet ,
一樣 Follow TCP Stream 後 , 用 Raw mode 存起來就是完整的檔案了 .
雖然題目只要求五張圖片 , 不過我很好奇就把 11 張圖片都解出來看看 ...
另外也把 crack.exe 出來玩 , 結果好像是隻木馬 ....... Orz
還好是在 VM 裡面執行的 , 後來 revert 回去就好了 ~
3. Web -
六關過了五關 ..... 不過 Web 是比較簡單的部份 所以配分都很低 ~
1. 一個 phpBB 的論壇 , 要找到隱藏於其中的 token
一開始隨便註冊了個帳號 , login 後把 cookie 帶給 wget -r 去跑
結果撈一撈後 , grep -r -i token . 沒半點東西 ... Orz ...
cb520 試了一下, 說覺得它對 highlight 的處理好像有問題
不過並沒有 2.0.10 的那個 arbitrary command execution vulnerability
所以就一直沒進展 ....
第二天我突然想到 highlight 還有另一個 vulnerabiity ...
於是試了一下 , 拿到了 database 的 username&password
然後進系統把整個 database dump 出來看 , 就拿到 token 了.
2. 填一組正確的 username & password 就可以過
這關的 index.html 中有一段 javascript 是
function chk_login() {
var user = document.Form1.user.value.indexOf(”‘”);
var pass = document.Form1.pass.value.indexOf(”‘”);
if (user<0 && pass<0) Form1.submit();
else alert("欄位填寫錯誤!");
}
後面有個 button 是 onclick="javascript:chk_login();"
所以一開始一直以為是自己 post data , sql injection 過去
好久後才發現是被騙了 .... Orz
後來發現其中有一張圖的目錄裡面開了 Index ,
又有個檔案叫 profile.inc , 看來是被前面的 index.php 給 include 用的
.inc 的檔案 , apache 並不會丟給 php engine 處理 , 而會直接show出來
於是就會看到 php 程式碼 ....
$pizza = "you hacked me!";
$wtf = "1f3870be274f6c49b3e31a0c6728957f"
把那個 $wtf 拿去做 md5crack 就會得到密碼了 !
3. 直接進這關的位址 , 會看到
Sorry, you're really not from chroot.org
看到 “from” , 就會想到 HTTP Header 裡面的 Referer
於是 nc 到關卡主機的 80 port , 丟
GET /wargame/CRFhJmoDsVGF2/ HTTP/1.0
Referer: chroot.org
就過了 !
4. web4 中有一張圖片 - hitcon_logo.jpg
我本來以為是要拿 Encrypt Text In Picture 這套軟體去解
結果裝一裝一直跑不起來 , 還有幾個 link 是抓到木馬的 .......
雖然後來好不容易在家裡的電腦上灌了 VC 後會動了 ,
但是裡面一樣沒藏任何的資料 ..... Orz
後來仔細分析了一下這個檔案 ....
發現後面有一段是 PK ........ PK , 判斷應該是 zip 檔案
於是用 tail -c 164 hitcon_logo.jpg > ox.zip ; unzip ox.zip
就會得到 token#4.txt !
只是裡面沒密碼 只寫了 token #4 is not here ... lol
好吧 反正這段是沒用的東西了 先把它截掉 ...
head -c 60543 hitcon_logo.jpg > hitcon_logo2.jpg
繼續找找找 ...... 嗯 發現一段 IHDR .... IEND , 判斷應該是個 png 檔
算好位子再把它截出來
tail -c 2881 hitcon_logo2.jpg > token.png
開啟圖檔就看到密碼了 !
5. 開啟網頁後會看到一個 flash ...
把它抓下來 , 拿 flash decompiler 後, 就會找到 token 了.
6.
2~5 關的 url 分別是
web2 : CR1yWzo0NI3QA
web3 : CRFhJmoDsVGF2
web4 : CRPcM3yoZcIQE
web5 : CRYvDPSO5whRA
看到這樣的格式就起了疑心 ... 看起來很像是 DES 編碼
於是 john 了一下 .... 會得到
web2:003
web3:004
web4:001
web5:002
本來以為第六關隱藏關可能會是 00? 的 DES 編碼 , 還寫了小程式暴力去試
php -r 'for($i=0;$i<20;$i++) { $num=sprintf("%03d",$i);
$str=crypt($num,"CR");
system( "wget http://192.168.100.10/wargame/$str" );'
結果發現並沒有 .... 這些資料不知有啥用處 ...
再看一遍提示 , 說過了 1~5 關後,
將前五關的 token 組合起來會得到第六關的路徑
又前五關的 token 剛好各是 8 個字元 , 五個合起來是 40 個字元 ,
於是拿 sha-1 cracker 算了一下 ... 就會得到第六關的路徑 - banana
第六關也是一個 flash , 但是 decompile 後找不到啥 .... 我跟 flash 不熟 :(
於是就沒有過了 ......
Linux -
很慘 , 一關都沒過 XD ....
newbug 出的題目 , 去年沒人過 、 今年也沒人過 ... 哈
不過還是來紀錄一下過程好了.
(1) 想辦法用 stage1 這個帳號進入系統 , 然後執行 /bin/stage1 得到密碼.
但是又不知道 stage1 的密碼 , 要怎麼進去呢 ?
掃一下 port , 會發現有開 rsync , 密碼很簡單就猜到 ....
我本來以為是透過 rsync 把 key 丟進去 ,
透過 ssh public key authentication 連進去
但試了一下 ... 路徑好像跟我想的不太一樣 ?
怎麼把東西丟到 /home/stage1/stage1/ 去了 .... 大概是我指令沒下好吧 ..
算了 , 反正在前一天 /bin/stage1 的權限還沒改成 700 前就弄了一份出來
於是就在本機試 ....
關主newbug有提示, 直接執行的話並不會顯示出真正的key,
程式中有個地方作了判斷 , 要動一點手腳 ,
但是我又不太會反組譯trace ....
於是寫了支程式暴力試 , 一次一次把 00 改成 01 跑跑看
結果還是沒跑出來 ..... XD .... 這關就這樣了 .....
(2) 一個 ELF header 被破壞過的 binary ...
被塞了一個 COMMAND.EXE ....
試了半天不知道怎麼修回來 ..... 於是也卡關 ....
(3) 有 Format String vulnerability 的程式
但是我跟它還不夠熟 試半天塞不到位址 .... Orz
再來研究研究加強加強 ....
(4) 沒玩到 .....
=============================================================================
大概是這樣子 ......
今年再好好進修進修 明年再去玩 XD
(啊 ? 人家都是去聽演講的 我是去玩的 ..... Orz )
換房掉皮包
.Security 類別的文章 :
HIT 20066/25 TnLUG 場的簡報與影片
1 則留言 新增留言
1. 迪倫 | July 27th, 2006 at 16:06
我看你去偵九隊上班算了,不過不知道福利好不好?
據聞開戰時資訊戰也是一大主力。
大約看了一下,那種集會人的功力真的不是坊間開設所謂駭客認證班能比較的。只是多了一堆網路小白......@@~
新增留言
訂閱這則留言的 RSS Feed