网络层截包,修改再转发

oosky2004 2005-12-30 01:34:47
使用WinPcap,LibPcap开发包:
首先接收网内A机器发来的网络包(不知道接收以太网数据包,还是IP包,还是TCP包等比较合适),抓取到这个包后,修改这个包中的相关的数据结构,比如让它伪装成http协议的包通过B机器的80端口转发出去(因为B机器只开了80端口),然后在网外建立一台服务器,接收B机器发出来的数据包,还原此包的原来面目,按照包原来的格式发到目的主机。
逆序接收外网返回来的消息。
以上功能类似(Proxy)

现在的问题是,A机器需要接收何种类型的数据包(以太网包?ip包?TCP包/UDP包?),也就是需要修改伪装的包,然后再转发!

如何伪装这个数据包?(我的想法是:修改截获包的相应包头,还有一种是在原来的包头上再增加一个包,此包头为http协议的包头)
...全文
526 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
oosky2004 2006-01-05
  • 打赏
  • 举报
回复
谢谢 cryptonym(想裸睡)的帮忙。
icedust 2006-01-04
  • 打赏
  • 举报
回复
LZ请看这个
http://www.nocrew.org/software/httptunnel.html
这个在linux/freebsd上的实现
cryptonym 2006-01-04
  • 打赏
  • 举报
回复
What kind of programs use WinPcap
The WinPcap programming interface can be used by many types of network tools for analysis, troubleshooting, security and monitoring. In particular, classical tools that rely on WinPcap are:

network and protocol analyzers
network monitors
traffic loggers
traffic generators
user-level bridges and routers
network intrusion detection systems (NIDS)
network scanners
security tools
cryptonym 2006-01-04
  • 打赏
  • 举报
回复
What WinPcap can't do
WinPcap receives and sends the packets independently from the host protocols, like TCP-IP. This means that it isn't able to block, filter or manipulate the traffic generated by other programs on the same machine: it simply "sniffs" the packets that transit on the wire. Therefore, it does not provide the appropriate support for applications like traffic shapers, QoS schedulers and personal firewalls
cryptonym 2006-01-04
  • 打赏
  • 举报
回复
The purpose of WinPcap is to give this kind of access to Win32 applications; it provides facilities to:

capture raw packets, both the ones destined to the machine where it's running and the ones exchanged by other hosts (on shared media)
filter the packets according to user-specified rules before dispatching them to the application
transmit raw packets to the network
gather statistical information on the network traffic
  • 打赏
  • 举报
回复
winpcap不能修改抓到的数据
oosky2004 2006-01-03
  • 打赏
  • 举报
回复
可以在系统的tcp/ip协议栈中过滤相关的内容?
这个怎么做呢?
和你上面说的观点有点矛盾。
nntg 2006-01-03
  • 打赏
  • 举报
回复
但是这样的话,操作系统会对收到的包做出反应,Winpcap也会对此包做出反应,但是对方的机器应该只对其中的一个做出相应的反应,当然会丢弃一个反应。

可以在系统的tcp/ip协议栈中过滤相关的内容,即只让winpcap的程序去响应,而系统不去响应。

另外也可以用系统的rawsocket
oosky2004 2006-01-03
  • 打赏
  • 举报
回复
sevencat(七猫),能详细说说Tunnel吗?具体如何伪装成http数据包的?
自己另外增加包头?还是修改其中的包头?

不知道这样做对不对?
oosky2004 2006-01-03
  • 打赏
  • 举报
回复
谢谢nntg(糖果)的建议。
但是这样的话,操作系统会对收到的包做出反应,Winpcap也会对此包做出反应,但是对方的机器应该只对其中的一个做出相应的反应,当然会丢弃一个反应。

sevencat(七猫) ,能详细说说的意见吗?因为看到网上评价WINPCAP对这方面比较不错。所以选择了这个开发包。其实也和你说的一样,差不多算是一个HTTP Tunnel吧。
nntg 2006-01-03
  • 打赏
  • 举报
回复
可以在系统的tcp/ip协议栈中过滤相关的内容
这个过滤不是由winpcap来做,比如linux系统有iptables防火墙来做
在windows下,网卡tcp/ip属性->高级->选项->tcp/ip筛选来设置
当然也可以通过第三方的防火墙来设置,比如赛门铁克、瑞星防火墙等
sevencat 2006-01-02
  • 打赏
  • 举报
回复
就是一个TUNNEL吧,估计不用WINPCAP都可以做得到,就是一个PROXY
oosky2004 2006-01-02
  • 打赏
  • 举报
回复
qrlvls(空 气):
对Winpcap来说,只能抓包?
我的想法是,先抓包,然后修改,再发出去。当然最后是能够避开进入操作系统。
oosky2004 2006-01-02
  • 打赏
  • 举报
回复
对了,不知道通通通有人用过没有?
我要的功能也就和它差不多。先接收再转发到外网,然后交给外网服务器。
对NDIS我还没有入门,只知道有这么个东西。还望多交流。

wenlin_1227(秋水寒) 你有Email或者QQ吗?留个联系方式。
nntg 2006-01-02
  • 打赏
  • 举报
回复
对于lz的要求,winpcap是完全可以做到的,不用去研究底层的ndis
winpcap有过滤接收到的数据的功能,注意winpcap底层的驱动与系统的tcp/ip协议栈处于同一个层次,即网卡会将数据分别传给winpcap和系统的tcp/ip协议栈,虽然winpcap不能过滤发给系统的tcp/ip数据,但是可以过滤传送给winpcap开发的应用程序的数据。
像lz这种情况,应该是选择接收tcp特定端口的流量(如果你是做udp的proxy当然选择对应的udp端口),接收到这些数据后可以修改数据包头。

我的想法是,先抓包,然后修改,再发出去。当然最后是能够避开进入操作系统。

就是这样做,而且肯定可以做得到!!!!!而且与lz“能够避开进入操作系统。”的要求完全吻合
wenlin_1227 2006-01-02
  • 打赏
  • 举报
回复
我的EMAIL地址是wenlin_1227@163.com,大家可以相互交流一下啊!我是最近在做一个关于网络防火墙的项目,要利用中间层接口拦截数据包.目前也在学习和探索中.
wenlin_1227 2006-01-01
  • 打赏
  • 举报
回复
可以看看WDM驱动开发方面的资料,最好能搞到费而防墙的源代码,研读一下应该帮助很大.我最近也刚开始做关于网络层拦截数据包的工作.大家可以相互学习一下啊.
qrlvls 2006-01-01
  • 打赏
  • 举报
回复
如果网络环境能够控制的话最好引用VPN来完成
qrlvls 2006-01-01
  • 打赏
  • 举报
回复
WinpCap是不能实现的
如nuaawenlin所说,必须要有NDIS驱动
不过另一方面,就你说的这个情况,即使实现了NDIS驱动的话估计工作量也足够大,在协议上还有很多复杂的问题,呵呵,感觉一定是个痛苦的差事
oosky2004 2005-12-31
  • 打赏
  • 举报
回复
怎么没有人来顶呢?
加载更多回复(2)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧