etu*_*rdu 9 iptables transparent-proxy tcp
在处理连接的进程获取流之前,我需要对来自已知 tcp host:port 的传入流量进行一些小的修改。
例如,让 192.168.1.88 成为运行 Web 服务器的远程主机。
我需要的是,当我本地主机上的进程从 192.168.1.88:80(例如浏览器)接收数据时,数据首先被替换text-A为text-B,如下所示:
127.0.0.1:... 发送到 192.168.1.88:80:
GET /
Run Code Online (Sandbox Code Playgroud)192.168.1.88:80 发送到 127.0.0.1:...:
HTTP/1.0 200 OK
Content-Type: text/plain
Some text-A, some other text
Run Code Online (Sandbox Code Playgroud)该数据在某种程度上被系统拦截并传递给一个程序,其输出为:
HTTP/1.0 200 OK
Content-Type: text/plain
Some text-B, some other text
Run Code Online (Sandbox Code Playgroud)系统将如此更改的数据提供给处理 127.0.0.1:... 的进程,就像它来自 192.168.1.88:80 一样。
假设我有一种基于流的方法来进行这种更改(sed例如使用),预处理传入的 tcp 流的最简单方法是什么?
我想这会涉及iptables,但我不是很擅长。
请注意,应用程序应该感觉与原始主机打交道,因此设置代理不太可能是解决方案。
dfc*_*dfc 22
使用 netsed 和 iptables 代理。
iptables -t nat -D PREROUTING -s yourhost -d desthost -p tcp --dport 80 -j REDIRECT --to 10101
Run Code Online (Sandbox Code Playgroud)
然后运行:
netsed tcp 10101 desthost 80 s/text-A/text-B
Run Code Online (Sandbox Code Playgroud)
NetSED是一个小巧而方便的实用程序,旨在实时更改通过您的网络转发的数据包的内容。它对于网络数据包更改、伪造或操纵非常有用。NetSED 支持:
黑盒协议审计 - 每当有两个或更多专有盒子使用一些未记录的协议进行通信时。通过在正在进行的传输中强制更改,您将能够测试是否可以声明已检查的应用程序是安全的。
模糊生成实验、完整性测试——每当您对应用程序进行稳定性测试以查看它如何关心数据完整性时;
其他常见用例:欺骗性传输、内容过滤、协议转换——任何最适合您手头任务的。
| 归档时间: |
|
| 查看次数: |
20677 次 |
| 最近记录: |