はじめに
TryHackMeの備忘録です。
kali linux上で実行しています。
Day1 認証Cookieの値を変更する
Webサイトにアクセスした時に実際に起こること
1.クライアント から DNSサーバ にアクセスしたいサイトの ドメイン を送る
2.DNSサーバ から クライアント にアクセスしたいサイトの IPアドレス が返される
3.クライアント が そのIPアドレス に対して HTTPコール することで Webサイト に必要な諸々が返されて 描画 される
Cookieの書き換え
開発者ツールのアプリケーションタブのCookieはダブルクリックすると Key・Value 共に書き換えられる
Day2 バリデーション回避してリバースシェルを行う
リバースシェルが行える条件
1.バリデーションを回避してリバースシェルファイルをアップロードできる
2.リバースシェルファイルに対してURLからアクセスできる
リバースシェルからWebアプリを守る
・バリデーションでリバースシェルファイルをアップロードできないようにする
・アップロードされたファイルをpublicにしない
phpバックエンドでのリバースシェルの実行方法
1./usr/share/webshells/php/php-reverse-shell.php の
ip を自マシンに port を任意のポートに変更する。
2.変更したリバースシェルファイルをバリデーションを回避してアップロードする。
3.sudo nc -lvnp <変更した任意のポート> を実行する。
ex)sudo nc -lvnp 443
4.リバースシェルが アップロードされたURL を見つけてアクセスする。
3 で実行したターミナルからphpが実行されているマシンに
アクセス できるようになっています。
Day3 BurpSuiteを使ったブルートフォース攻撃
BurpSuiteをFireFoxで使えるようにする
Kali linux上のChromeで適用しようとしたところプロキシ設定が出来ませんでした。
BurpSuiteはローカルプロキシツール
ローカルプロキシツール はブラウザがサーバに到達する前に
リクエスト として本来送信されるHTTPメッセージや、
レスポンス を改ざんすることが出来ます。
HTTPコールする 踏み台サーバ がブラウザとサーバの間に一つ挟まるような感覚です。
BurpSuiteでブルートフォース攻撃
1.BurpSuite の Intercept を ON にする。
2.攻撃したいHTTPコールが発生する動作をブラウザで再現する。
ex) ログインボタンをクリックする
3.BurpSuite の Intercept を右クリックして Send to Intruder を選択する。
4.Intruder に移動して、Attack type: Cluster Bomb に変更する。
5.改ざんしたい部分をドラッグして Add§ をクリックする。
6.Intruder の Payloads で改ざんしたい部分に実際埋め込む値を渡します。
7.Start Attack をクリックする。
Day4 gobuster・wfuzz を使ったファジング攻撃
Gobuster dirmodeを使ったファジング攻撃
・-u は、ファジングするURLの指定です。
・-w は、ファジングするワードリストの指定です。
・-x は、ファジングするワードリストの拡張子の指定です。
ex) http:\//example.com/xxx.php・xxx.txt・xxx.html
に対するファジングの例
gobuster dir -u http://example.com -w wordlist.txt -x php,txt,html
・kali linux上では /usr/share/wordlists にファジング用のワードリストが入っています。
wfuzzを使ったファジング攻撃
・-c は、出力をカラーで表示します。
・-d は、パラメータをファジングしたい時に使います。
・-z は、ファジングするワードリストを指定します。
・--hc は、特定のレスポンスコードを表示しない時に指定します。
・--hl は、レスポンスの行間を指定して表示しません。
・--hh は、特定の文字数の間を表示しません。
ex) http:\//localhost/xxx/note.txt
に対するファジングの例
wfuzz -c -z file,/usr/share/wordlists/dirb/big.txt localhost:80/FUZZ/note.txt
ex) http:\//localhost/api/site-log.php?date=xxx
に対するファジングの例
wfuzz -c -z file,Desktop/wordlist -d "date=FUZZ" -u http://10.10.167.98/api/site-log.php
Gobusterとwfuzzの使い分け
・URL直下のファジングが行いたい場合は Gobuster を使う
・URL階層の特定のどこか・パラメータに対してファジングが行いたい場合は wfuzz を使う