nknskn ネタ置き場

IT使ってなんかやってる人間のたわごと

Compromized writeup - VulnUni: 1.0.1

さっくりメモがてら

Target

Environment

  • Host : Macbook Pro Catalina 10.15.3
  • Attack machine : Custumized Kali Linux(主にツール群)

Summary

  • arp-scan/netdiscoverでip address特定
  • Scan with AutoRecon > オープンポートが80/tcpだけ、良さそうなコンテンツ、脆弱そうなフレームワークはパッと見確認できず
  • Web crawl with Burpsuite > リンクされているコンテンツを一通りみたものの、GET/POSTでパラメータが送信される箇所を発見できず、表側のアプリケーションでinjectionはできなさそうだった。Apacheが(たしか)2.2.22とかで古かった。shellshockなどのリモートコマンド実行ができるcgiだとか or まだ発見できてないリンクとかがあると推測
  • cgiファイルの調査 > 特に見当たらず。/cgi-bin/は403だったので、あったとしても楽に推測はできなさそうだった
  • BurpsuiteのTargetタブ > サイト構成を見直したところアクセスしてないページ(コメントアウトされたリンク)を発見、アクセスしてみたらログイン画面へのリンクが出てきた
  • eClassログイン画面 > eClassのバージョン情報がログイン前状態で確認可能だった、調べてみたらログインリクエストにあるパラメータ「uname」にSQL injectionがあるバージョンだった、PoCを確認しつつsqlmapを使ってID/PASSを取得
  • 合わせてPoCを確認、Admin Toolsのアップロード機能に「任意のファイルアップロードが可能」な問題があるヤバイやつだった、pentestmonkeyのリバースシェルphpファイルを使ってシェルゲット
  • cat /home/vulnuni/flag.txt > 68fc668278d9b0d6c3b9dc100bee181e
  • LinEnum.shとlse.sh -l2で設定やプロセスで権限昇格に使えそうなものがないか確認、特になさそうだった
  • (好み分かれる、めっちゃメタい探し方)vulnuniユーザフォルダが00:38ごろに作成、最終更新日時が16:57、脆弱性が埋め込まれている場合この時間内にファイルが作成されていると判断、find / -type f -mtime -XXXX -mtime +XXXXで作成日の1:00-19:00ぐらいを指定、特になさそうだった
  • LinEnum, lse, findの結果からPrivilege EscalationにはKernelもしくはOSインストール時に入っているソフトウェアのバージョンに依存した脆弱性が使えると判断、Kernelに絞って一通りPoCを試す
  • python -c 'import pty; pty.spawn("/bin/bash")'
  • cowroot.cが刺さった。cat /root/flag.txt > ff19f8d0692fe20f8af33a3bfa6635dd

所感

  • Webクロールからリンク見つけて公開情報探して〜の下りは、非常に汎用性のある基本的なもので良かったと思う。いい感じのBeginnerレベルで、若干CTF勘が戻せたかなと思った。
  • リンク抽出のところに関してはZapとかspider機能があるツールを使う or spider作っとくとかしとけばもうちょい時間短縮になる、と反省
  • SQL Injectionは調べる前からなんとなくログイン画面にありそうだなーとは思いつつ、'(シングルクォート)を複数個だけ投げて「よくわからん、調べよ」と結論付けたので、もうちょいパラメータに関してあたりをつけてからGoogle先生に聞けば良かったかなと反省。具体的には1'and'1'='1, 1'and'1'='2, 1'adn'1'='2とかを投げてから(反応差なかったんだけど)
  • pythonでの仮想ttyを実行しとかないとcowrootの結果が見れなかった。tty整えるのマジ大事
  • cowroot刺さった数秒後にマシンがCrashした。果たしてこれはクリアでいいのか?

以上