OverTheWire Bandit Writeup (~L18)
閒來無事,找個簡單的 CTF 練手當比較難的 CTF 暖身,順便練習寫 writeup。Linux 指令的關卡對我偏簡單,不過有些還是要試一下,畢竟沒有那麼記得所有指令的細節。
Level 0
ls 後看到有 readme 這個檔案,就用 cat 印出內容。
Level 1
試了引號們沒用,escape \ 也沒用,最後是 cat ./- 出來。
Level 2
一樣直接 cat ./ 然後 tab 就可以直接 auto complete 出檔名了。
Level 3
ls 看是空的,直覺是隱藏檔,ls -al 就看到了。
Level 4
cat 檔案後是亂碼,直覺是 binary file。開始用 file ./-file-* 看所有檔案是什麼檔案,發現 file07 是 ASCII text,就 cat 它啦。
Level 5
先用 file */* 看了一下,看不出所以然。看了下題目,噢 1033 byte,那就查一下 find 指令怎麼以檔案大小找檔案就找到啦。
Level 6
照著關卡頁面的說明用 find 配合 owner 跟 group 的參數去找。
Level 7
在檔案裡找某個字的神器:grep
Level 8
先試了 uniq 但沒用,先隨意用 sort 看看內容,看了 manual 後再加上 uniq -u 得到答案。
查了一下之後知道 uniq 只會比對相鄰的行,所以要先 sort 再用 uniq。
Level 9
看起來也是 binary file,用 strings 把人類可讀的字串印出來看。
Level 10
解開 base64 編碼
Level 11
提示都說了 rotate 13,看著 wiki 對照解,然後經過 AI 知道原來有更漂亮的方法是用 tr。
Level 12
先用 xxd 把文字檔變回 binary 檔案。接著瘋狂用 file 看是什麼壓縮檔就解開,最後是用 streaming 把最後一層解出來:zcat data8.bin > data9.bin ,用一般解壓縮指令一直會有檔名問題。
Level 13
有 SSH key,明顯就是拿來登入的吧。
從 lab 機器直接 ssh -i 失敗了,偷看了 HINT 發現不允許本機 ssh。那就用 scp 把 key 先抓到自己的機器上,再用那把 key 去連,噢,要小心 key 的 permission!
Level 14
說明頁都直白的說了,就從前一關的檔案拿到密碼,然後用 telnet 送進去。
Level 15
顯然不能用 telnet 直接連,查了一下,用 ncat --ssl <host> <port> 可以連 SSL/TLS 的 server。
Level 16
先問了 AI 哪個工具是用來掃 port 的(nmap),掃一下剩幾個,接著用 ncat --ssl 嘗試連線。
Level 17
看完說明自然想到要 diff
Level 18
直接用 scp 把檔案 copy 出來了…
查了之後知道要直接用 ssh 跑指令就只要把指令打在最後就可以了