關于Pulsar
Pulsar是一款針對數據通信安全的強大工具,該工具可以幫助廣大研究人員實現數據過濾和安全(隱蔽)通信,并通過使用各種不同的協議來創建安全的數據傳輸和聊天隧道。比如說,在Pulsar的幫助下,我們可以通過TCP連接來接收數據,并通過DNS數據包將其轉發到真實的數據目的地址。
工具安裝&配置
注意:我們需要確保本地設備上安裝并配置好了Go?v1.8環境,因為Pulsar基于Go語言開發,因此Go環境是構建Pulsar所必備的。
接下來,使用下列命令將該項目代碼克隆至本地,并構建Pulsar項目代碼:
$ cd pulsar $ export GOPATH=$(shell pwd) $ go get golang.org/x/net/icmp $ go build -o bin/pulsar src/main.go
或者直接使用make命令:
$ make
數據連接器
數據連接器就是一個簡單的通信信道,幫助我們與外部世界進行連接。在數據連接器的幫助下,我們可以使用Pulsar并從不同的數據源讀取或寫入數據。
命令行終端
默認的數據出入連接器,支持通過STDIN讀取數據,通過STDOUT寫入數據。
TCP
通過TCP連接讀取或寫入數據:
tcp:127.0.0.1:9000
UDP
通過UDP數據包讀取或寫入數據:
udp:127.0.0.1:9000
ICMP
通過ICMP數據包讀取或寫入數據:
icmp:127.0.0.1 (the connection port is obviously useless)
DNS
通過DNS數據包讀取或寫入數據:
dns:fakedomain.net@127.0.0.1:1994
自定義配置
我們還可以使用–in參數來選擇數據輸入連接器,使用–out選項來選擇數據輸出連接器:
--in tcp:127.0.0.1:9000 --out dns:fkdns.lol:2.3.4.5:8989
數據處理器
數據處理器將允許我們在數據的傳輸過程中修改數據,我們也可以任意選擇組合使用數據處理器。
Stub
默認的數據處理器,什么都不會操作,允許數據直接通過。
Base32
Base32編碼/解碼器:
--handlers base32
Base64
Base64編碼/解碼器:
--handlers base64
Cipher
CTR密碼工具,支持CTR模式下的AES/DES/TDES加密,默認為AES:
--handlers cipher:<key|[aes|des|tdes#key]>
解碼
我們可以使用–decode選項來使用所有數據處理器的解碼模式:
--handlers base64,base32,base64,cipher:key --decode
工具使用樣例
在下列演示樣例中,我們將使用Pulsar來創建一個基于DNS協議的安全雙向通信信道,并通過TCP連接來讀取數據,然后通過隧道發送加密數據:
[nc 127.0.0.1 9000] <--TCP--> [pulsar] <--DNS--> [pulsar] <--TCP--> [nc -l 127.0.0.1 -p 9900]
192.168.1.198:
$ ./pulsar --in tcp:127.0.0.1:9000 --out dns:test.org@192.168.1.199:8989 --duplex --plain in --handlers 'cipher:supersekretkey!!' $ nc 127.0.0.1 9000
192.168.1.199:
$ nc -l 127.0.0.1 -p 9900 $ ./pulsar --in dns:test.org@192.168.1.199:8989 --out tcp:127.0.0.1:9900 --duplex --plain out --handlers 'cipher:supersekretkey!!' --decode
許可證協議
本項目的開發與發布遵循GPL-3.0開源許可證協議。
項目地址
Pulsar:【GitHub傳送門】
來源:FreeBuf