0x01 socat的簡介安全
0x02 socat進行文件傳輸網絡
0x03 socat正向端口轉發ssh
0x04 socat反向端口轉發socket
注:tcp
邊界機器 win08 192.168.222.175工具
內網機器 win7 192.168.222.137學習
socat是一個多功能的網絡工具,名字來由是」 Socket CAT」,能夠看做是netcat的N倍增強版,其原版本是基於Linux的,這裏咱們使用Windows版本的,由於是移植過來的,須要依賴的庫也比較多,因此不是那麼的方便,之後的使用可能更多的是基於Linux平臺來進行的。spa
socat的主要特色就是在兩個數據流之間創建通道;且支持衆多協議和連接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等。3d
socat的官網:code
http://www.dest-unreach.org/socat/複製代碼
socat的下載連接:
http://www.dest-unreach.org/socat/download/複製代碼
至於Windows的版本,我在網上找到了如下兩種,對其安全性不作任何保證
socat for Windows/Cygwin(這個版本缺乏Cygwin的dll文件,須要自行解決):
http://www.nikhef.nl/~janjust/socat/socat-1.6.0.1-cygwin.bin.tar.gz複製代碼
socat for Windows(這個版本已經打包了Cygwin的dll文件):
http://olds.blogcn.com/wp-content/uploads/16/1615/2009/08/socat.rar複製代碼
注:這裏使用win08做爲本地機器,win7做爲目標機器來進行演示
這裏咱們以上傳win08機器上的123.txt爲目標進行上傳
首先在win08機器上執行命令
socat.exe -u open:123.txt,binary tcp4-listen:53複製代碼
執行以後,就會發如今這個文件夾下面已經生成了123.txt文件
注:create在哪一個機器上執行,文件就會留在哪一個機器上
首先咱們須要在邊界機器上執行
socat.exe tcp4-listen:53,reuseaddr,fork tcp4:192.168.222.137:3389複製代碼
此時並不會有任何的回顯,而後咱們在本地使用mstsc進行遠程桌面鏈接
成功鏈接
注:這裏咱們使用win08來表明本地主機,win7來表明邊界主機
首先,在win08上執行監聽,未來自外部53端口的流量所有轉發到本地888端口
socat.exe tcp-listen:53 tcp-listen:888複製代碼
而後在win7上執行命令,將本地3389的流量轉發到win08的53端口
socat.exe tcp-connect:192.168.222.175:53 tcp:127.0.0.1:3389複製代碼
而後回到win08的機器上,執行遠程桌面鏈接
成功登錄
*單層端口轉發(2)
除了能夠轉發到本地以外,還能夠直接將流量轉發到內網主機
首先在本地執行監聽
socat.exe tcp-listen:53 tcp-listen:111複製代碼
在邊界機器win08上執行命令,10.1.111.226是我本機的地址
socat.exe tcp-connect:10.1.111.226:53 tcp:192.168.222.137:3389複製代碼
而後回到本地使用mstsc來進行遠程鏈接
成功登錄
注:中間可能會有socat超時自動斷開等其餘狀況,多執行幾回就能夠成功了
*多層端口轉發
若是在內網中又發現還有更深一層的內網的機器,咱們就能夠使用多層的端口轉發來進行,咱們這裏假設其IP爲192.168.222.134,我本機地址爲10.1.111.226
首先咱們在本地機器進行監聽
socat.exe tcp-listen:53 tcp-listen:1000複製代碼
而後到邊界機器win08執行轉發
socat.exe tcp4-listen:55,reuseaddr,fork tcp4:10.1.111.226:53複製代碼
最後再到內網機器win7上執行轉發
socat.exe tcp-connect:192.168.222.175:55 tcp:192.168.222.134:22複製代碼
最後回到本地,鏈接第二層內網中的ssh
若是內網層數再多一些,同樣能夠經過該方法進行
文章首發公衆號:無意的夢囈(wuxinmengyi)
這是一個記錄紅隊學習、信安筆記,我的成長的公衆號
掃碼關注便可