如何使用Pulsar实现数据过滤和安全通信

关于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

上一篇:被曝高危漏洞,威胁行为者可获取Amazon Photos文件访问权限

下一篇:MITRE组织公布了2022年CWE最危险的25个软件弱点