我试图写一个tcpstream“隧道”(类似于默认情况下的SSH处理),但有一个例外,我必须重写某些信息,因为它stream经。
我确定那里有类似的东西,但我一直没能find它。 我有三个主要问题:
有一个简单的方法来保存一个tcpstream观察? (即使用netcat或者ssh -r / -l / -D,或者全部使用其他工具)
在stream动中重写stream有多难?
编辑:被重写的信息将只是初始authentication。
绘制脚本执行的工作stream程/stream程图并运行的工具
使用Vagrant shell provisioner安装NodeJs不起作用
删除WinRM日志时,为什么windows客户端调配失败?
在windows上安装Docker工具箱后,Vagrant不起作用
Apache无法启动Vagrant
在stream浪盒子上创build虚拟主机
连接到苹果推送服务时连接错误10060
如何使用Vagrant shell /path调配程序调配windows来宾?
没有输出使用vagrant windows 10
当通过浏览器loginIP地址时,在Nginx上创build新的Lumen应用程序时抛出404
带有伐木的直通隧道可以从现有的(或容易找到的)公用工具拼凑而成。
socat -v -x tcp -l:8080,fork,reuseaddr tcp:localhost:80 2> log
在这个例子中,连接到http://localhost:8080/将通过http://localhost:80/ ,并将日志数据传输到log 。
TCPreen工具专门用于这个确切的目的。
如果您拥有root权限,则有许多分析器(如tcpdump和tcpflow)可以直接从网络捕获数据包,而不必重定向流量。
socat还可以使用,cr和,crnl选项来进行一些非常基本的流修改,crnl选项会,crnl /添加/替换r字符。
在任何情况下,回到原来的问题…自从我写了任何Java以来,这已经过时了,这完全没有经过测试,但是可以在重新传输之前修改流量的隧道并不困难。
public class ForwardAndChangeCaseThread extends Thread { private Socket in,out; public ForwardAndChangeCaseThread(Socket in,Socket out) { this.in = in; this.out = out; } public voID run() { byte[] buf = new byte[4096]; inputStream in = this.in.getinputStream(); OutputStream out = this.out.getoutputStream(); int count; while ((count = in.read(buf)) > 0) { for (int i = 0; i < count; i++) if (buf[i] >= 0x40) buf[i] ^= 0x20; out.write(buf,count); } } } public class TcpForwarder { public static voID main(String[] args) { serverSocket Listen = new serverSocket(8080,1); for (;;) { Socket local = Listen.accept(); Socket remote = new Socket("localhost",80); new ForwardAndChangeCaseThread(local,remote).start(); new ForwardAndChangeCaseThread(remote,local).start(); } } }
很确定Ettercap支持重写TCP流。
tcpdump可以写出数据包捕获,然后你可以使用Wireshark进行分析
如果你想以编程的方式做,你可以检查他们各自的来源,以获得从哪里开始的想法。
不要自吹自擂,但我写了一些代码来完成这个在我很久以前写的异步IO框架。 关于代码的许多事情现在已经过时了,但它确实有效。 这里有一个链接到它的网页:
Streammodulee系统
我写的东西,你想要隧道的东西叫做PortForward,还有一些东西,将倾倒出一个TCP流,但我忘了我所说的。 由于框架的工作原理,它们可以很容易地结合起来。
如果你想用它来实现这个目标,我会回来的。 正如其他人所指出的那样,不可能重新编写SSL流。 所以,如果你的连接使用加密和/或MAC(一种方式是真实的,如果它是SSL),你运气不好。
我不确定这是不是你要问的,但是…
除非您拥有服务器SSL证书的私钥,否则您不能动态重写SSL流,或者您可以在某些位置(在客户端或服务器地址空间中)对其进行截取,而不受SSL保护。 如果可以的话,SSL将是浪费时间。
同样,如果您捕获SSL流的全部内容(双向),除非您拥有相关的私钥,否则不会有任何好处。
总结以上是内存溢出为你收集整理的即时重写一个tcpstream:它有多难? 如何倾倒所述stream?全部内容,希望文章能够帮你解决即时重写一个tcpstream:它有多难? 如何倾倒所述stream?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)