こんにちは、今日はサイバーキルチェーンに当てはめて
Try Hack Meのこの単元のマシンを攻略していきたいと思います。自身で答えを導き出した方がためになると思うので問題の答えは書きません。
※もちろん攻略用に用意されたマシンです。他サイトに向けてここに書かれている攻撃を試すと不正アクセス禁止法により罰せられます。
偵察
まずは偵察です。
攻撃用のマシンを起動したら
どういった脆弱性があるか、どこを起点にして攻撃を仕掛けるか情報収集をしましょう。
このときに使用するツールはNmapです。
Nmap は、コンピューター ネットワーク上のホストとサービスを検出するために使用される、無料のオープンソースのスキャンツールです。
nmap -sV 攻撃対象のIP
をターミナルに入力します。
ここで注意して確認したいのは
・何番ポートが開いているか
→不要なポートは閉じる
・サービスは何か
→脆弱性のあるサービスは使用を停止する
・サービスのバージョンは何か
→やむを得ない場合は最新のバージョンにしておく
・OSは何か
→OSごとの脆弱性も情報になる
・WEBサーバは何番で実行されているか
→攻撃の起点になる
です。
それぞれ調べ終わったらさらに情報収集です
情報収集
OSとサービスがわかりました。
OS固有の仕組みによって権限昇格ができそうなのでリバースシェルをアップロードするためのディレクトリを
gobusterと呼ばれる高速検索ツールを使って総当たり検索していきます
その時のコマンドは
gobuster dir -u ht◇tp://攻撃対象のIP:3333 -w <単語リストの場所>
となります。
恐らく何個か見つかるはずです。
ファイルをアップロードできそうな場所を見つけられたらリバースシェルをアップロードしていきます。
武器化、配送、攻撃、インストール
ここではシェルをアップロードするディレクトリに対して攻撃をしていってとりあえずサーバに入り込みます。
サイバーキルチェーンだと武器化、配送、攻撃、インストール
をいっぺんに行います。
Burpの機能を使いますがBurpについて説明すると多分日が暮れるので割愛します。
Try Hack MeにもBurpの単元があるので調べてみてください。
まず調べるのが
アップロード許可される拡張子です。
そのためにBurpで送った攻撃に対するステータスコードやレスポンスの長さ(レングス)に注目します。
一つ違うものがあるはずなのでその拡張子を使います。
そしたら
ncコマンドでリバースシェルの通信をリッスンします。
リバースシェルをアップロードしたら
http:/ /攻撃対象のIP:3333/該当ディレクトリ/uploads/php-reverse-shell.拡張子
をアドレスバーにに入力します
(これでリバースシェルが実行される)
※リバースシェルのダウンロード方法については単元のページに書いてあります。
そうすると
ターミナルのncコマンドが動いてシェルに入った状態になるはずです。
入れたので情報を集めましょう
自分が使ったコマンドは
ls
cd
cat
pwd
whoami
find
です
これを駆使してどのファイルが一番最初に調べたOS特有の権限管理による問題を使えるのか調べましょう
・どんなユーザーがいるのか
・ユーザ配下のディレクトリにフラグはないか?
について調べることでで最初の目標は達成できるはずです
遠隔操作
ここから問題がいきなり投げやりになって難しいはずなので(自分はここだけで4時間かかりました、、、、笑)
https://gtfobins.github.io/
これだけ共有しておきます!!
どこかのバイナリファイルにSUIDが設定されていると権限昇格の維持ができるみたいです。
基本になるコードは調べれば出てくるので調べてみましょう
ここだけ答え書くと怪しいのは/bin/systemctlです、
目標達成
無事に二つのユーザーフラグをとれましたか?
ここで考えることは攻撃者も同じことを考えて脆弱性を突いてくるということです。
それぞれのフェーズにあった対策をしっかり取捨選択していって、よりよいセキュリティライフを送ってください。
今回はフラグの奪取でしたがこれが個人情報だったり社外秘の経営上秘密だったりしたら莫大な被害になりますよね。
次はWindowsマシンのハッキングにチャレンジしようと思います。