前言
socat是強(qiáng)大易用的工具,可以實(shí)現(xiàn)任意socket的轉(zhuǎn)換。
使用
socat [options] <address> <address>
options可以查看help。
address有一下幾種形式:
-
-STDINSTDOUT:表示標(biāo)準(zhǔn)輸入輸出,可以就用一個(gè)橫杠代替 -
/var/log/syslog: 也可以是任意路徑,如果是相對路徑要使用./,打開一個(gè)文件作為數(shù)據(jù)流。 -
TCP:127.0.0.1:1080: 建立一個(gè)TCP連接作為數(shù)據(jù)流,TCP也可以替換為UDP -
TCP-LISTEN:12345: 建立TCP監(jiān)聽端口,TCP也可以替換為UDP -
EXEC:/bin/bash: 執(zhí)行一個(gè)程序作為數(shù)據(jù)流。
場景一
本地有個(gè)文件,我想顯示在終端中
socat - /etc/sysctl.conf
場景二
有個(gè)TCP連接會(huì)連上來,我想看看會(huì)獲得什么數(shù)據(jù)。
socat TCP-LISTEN:12345 -
場景三
我是黑客,我想在目標(biāo)機(jī)上弄一個(gè)shell代理
socat TCP-LISTEN:12345 EXEC:/bin/bash
場景四
本地有一個(gè)UNIX DOMAIN域套接字,我想把他轉(zhuǎn)成TCP SOCKET供局域網(wǎng)內(nèi)的機(jī)器使用,怎么辦?
socat TCP-LISTEN:12345,reuseaddr,fork UNIX-CONNECT:/data/deCOREIDPS/unix.domain
當(dāng)有多個(gè)tcp連上來那就fork一個(gè)去連域套接字
場景五
將本地的80端口轉(zhuǎn)到遠(yuǎn)程去
socat TCP-LISTEN:80,fork TCP:www.baidu.com:80