Hack the box - Metatwo
Hack the boxのMetatwoを完了したのでメモ。
難易度 | Writeupを |
---|---|
Easy | 見た |
1. nmapでrecon
2. webサーバが動いているのでアクセス
- ソースを見るとwordpressで動いてることがわかる →
wordpress 5.6.2
- ページをいくつか見ると
/event
ページでスケジューリングする機能がある →bookingpress 1.0.10
3. bookingpress
< 1.0.11
認証前のSQLIの脆弱性
- https://wpscan.com/vulnerability/388cd42d-b61a-42a4-8604-99b812db2357
- 認証前のユーザでも、ページのソースから取得した
wpnonce
でSQLIが通る - pocを投げると通った
- 認証前のユーザでも、ページのソースから取得した
- SQLMapに食わせるために、BurpのProxy経由でリクエストを投げて保存
- curlのproxy指定は
-x
オプション
- curlのproxy指定は
4. SQLMap
リクエストのうち、パラメータtotal_service
が脆弱であることを教えてやりつつDBの一覧を取得
blog
とinformation_schema
の二つのDBが見つかったので、blog
に絞ってテーブル一覧取得
wp_usersをdumpしてユーザとパスワードハッシュを取得
5. 得られたハッシュをhashcatにかける
manager
のパスワードがわかる
6. manager
のCredsでWordpressにログイン
メディアをアップロードする画面が使える → wavファイル+dtdファイルを使ったLFI
7. wavファイル + dtdファイルでLFI
payload.wavの生成
payload.dtdの生成
ローカルでWebサーバを起動したら、payload.wavを管理画面からアップロード → base64エンコードされた/etc/passwd
を含んだリクエストがローカルWebサーバに着弾する
phpでdecode
ユーザ一覧が得られる。jnelson
が一般ユーザっぽい
ついでに同じ要領で、wp-config.php
の中身も確認しておく → ftpのCredsが入手できる
8. ftpサーバにログイン
send_email.php
なる怪しいファイルを見つける → jnelson
のパスワードを発見
9. sshサーバにログイン
jnelson
ユーザでログイン ※このときsshコマンドが一向に進まず時間を食ったが、自分の環境だとtun0
のインタフェースのMTUを1300に減らすことで成功した
user.txt
でフラグ入手
/home/jnelson/
配下に.passpie
なるディレクトリを発見 → パスワードマネージャだとわかる
/home/jnelson/.passpie/.keys
に公開鍵と秘密鍵が含まれているので、秘密鍵だけ取り出してgpgp2john
でjohnで解析できるフォーマットに変換
10. johnにかける
rootユーザがpasspieで使用するパスフレーズがわかるので、それを使って
でパスワードをExportする
11. PrivEsc
入手したroot
のパスワードでsu
コマンドで特権昇格 → 2つめのフラグを入手