即时重写一个tcpstream:它有多难?如何倾倒所述stream?

即时重写一个tcpstream:它有多难?如何倾倒所述stream?,第1张

概述即时重写一个tcpstream:它有多难? 如何倾倒所述stream?

我试图写一个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?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1154689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存