lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:2530回复:23

ip欺骗的问题,谢谢!!

楼主#
更多 发布于:2003-07-23 13:59
我使用局域网两台机器作实验:

1、在其中一台上安装imd驱动,该驱动实现下面功能:修改该主机发出的包,把ip包中的源ip地址为局域网内不存在的ip,同时修改ip校验和和tcp校验和,使用sniffer工具观察发出的包;

2、在另外一台机器上使用sniffer工具观察收到的包,发现下面两个奇怪的问题:

A、在发送的机器上发现一个发送命令总有两个包被发出,第一个是源ip地址没有被改变的包,第二个是源ip地址改变了的包,可我在驱动的mpsend函数中改的啊,怎么会有第一个包呢?

B、在接受的机器上只收到ip被改的那个包,可是它并没有给这个假ip回一个syn+ack的包,这是为什么?

最新喜欢:

WY.lslrtWY.lsl...
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-23 14:29
我使用局域网两台机器作实验:

1、在其中一台上安装imd驱动,该驱动实现下面功能:修改该主机发出的包,把ip包中的源ip地址为局域网内不存在的ip,同时修改ip校验和和tcp校验和,使用sniffer工具观察发出的包;

2、在另外一台机器上使用sniffer工具观察收到的包,发现下面两个奇怪的问题:

A、在发送的机器上发现一个发送命令总有两个包被发出,第一个是源ip地址没有被改变的包,第二个是源ip地址改变了的包,可我在驱动的mpsend函数中改的啊,怎么会有第一个包呢?
//因为SNIFF并搞不清虚拟网卡和真实网卡的区别,所以当TCPIP。
//SYS调用SENDHANLE时,他抓了一个没有修改的包。当你passthru又
//调用一次MPSNED时那又抓一次,这次是你修改了的包。


B、在接受的机器上只收到ip被改的那个包,可是它并没有给这个假ip回一个syn+ack的包,这是为什么?
//没有产生回应,要么是你checksum算错了,要么是目的IP不正确
//被丢了。
 
放弃瘟草,现吃李草
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-23 15:05
checksum我想应该没有问题,这个数值我在应用层验证过的
至于丢包,我不太明白,包为什么会丢呢?
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-23 15:25
目的ip不正确指什么呢?我想它总该给那个伪装了ip的机器回一个包吧?
syn flood攻击的一种方式不就是伪装ip然后向受害机器发大量的syn包,然后受害机器回包给不存在的ip机器,最后造成资源耗尽么?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-23 17:03
偶是说你的目的IP不正确。那台机器收到了就丢报。呵呵。
应该不太可能。

你用ICMP测一下看有回应不?
放弃瘟草,现吃李草
longfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2011-08-10
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-23 17:07
我使用局域网两台机器作实验:

1、在其中一台上安装imd驱动,该驱动实现下面功能:修改该主机发出的包,把ip包中的源ip地址为局域网内不存在的ip,同时修改ip校验和和tcp校验和,使用sniffer工具观察发出的包;

2、在另外一台机器上使用sniffer工具观察收到的包,发现下面两个奇怪的问题:

A、在发送的机器上发现一个发送命令总有两个包被发出,第一个是源ip地址没有被改变的包,第二个是源ip地址改变了的包,可我在驱动的mpsend函数中改的啊,怎么会有第一个包呢?
//如果是在另一台计算机上抓的包,我也不明白了,你搞清楚了,告诉俺一声.

B、在接受的机器上只收到ip被改的那个包,可是它并没有给这个假ip回一个syn+ack的包,这是为什么?
//如果假IP与监视机(即回应ACK的计算机)是在同一网段,可能是ARP带来的问题



[编辑 -  7/23/03 by  longfoot]
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-23 17:11
发包机器ip:192.158.11.33,驱动把ip改成了:192.158.11.89(该ip不存在,我用icmp ping 过了,不通)

收包机器ip:192.158.11.5,我在这台机器上用sniffer看包(包括发出的和接受到的),只见有从192.158.11.89发过来的包,不见从192.158.11.5发到192.158.11.89的包,我对后面这个我认为应该发出但没有发出的包感到奇怪。

你的意思是让我用icmp ping192.158.11.89这个ip地址是么?

mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-23 17:28
B机器收到局域网一个网段的两台机器ip地址不同,mac地址相同,你说他还会怎么做?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-23 17:50
to longfoot:
我使用局域网两台机器作实验:

1、在其中一台上安装imd驱动,该驱动实现下面功能:修改该主机发出的包,把ip包中的源ip地址为局域网内不存在的ip,同时修改ip校验和和tcp校验和,使用sniffer工具观察发出的包;

2、在另外一台机器上使用sniffer工具观察收到的包,发现下面两个奇怪的问题:

A、在发送的机器上发现一个发送命令总有两个包被发出,第一个是源ip地址没有被改变的包,第二个是源ip地址改变了的包,可我在驱动的mpsend函数中改的啊,怎么会有第一个包呢?
//如果是在另一台计算机上抓的包,我也不明白了,你搞清楚了,告诉俺一声.
@@@我是说的这台发包的机器

B、在接受的机器上只收到ip被改的那个包,可是它并没有给这个假ip回一个syn+ack的包,这是为什么?
//如果假IP与监视机(即回应ACK的计算机)是在同一网段,可能是ARP带来的问题
@@@ARP带来的问题?你是说不同的ip对应相同的mac么?可是我从接收端看到的只是假的ip发过来的包啊?不太明白,请明示。

to mikeluo:你是指b机器有arp的高速缓冲列表,如果它发现局域网一个网段的两台机器ip地址不同,mac地址相同,那么就不再发回复包了对么?

其实我只是写一个测试用的驱动程序,要实现下面功能:
tcp三次握手:
1、A向B发SYN;
2、B向A发SYN+ACK;
3、A向B发ACK,这时我需要这个ACK包在延时1秒后再发。
我采用延时的方式,在mpsend中加延时,发现会死机,于是我采用ip欺骗的方式,A在被改变ip后,第三个ack包总是不会有了,可又出现了第二个“B向A发SYN+ACK”也没有出现。
如果各位大侠有好的解决方案请给我个建议,谢谢!!!


antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-23 20:04
B机器收到局域网一个网段的两台机器ip地址不同,mac地址相同,你说他还会怎么做?

这个没有影响,我发现在LAN我故意把两个机器的MAC改成一样,没有任何问题.
//由此带来一个疑问,假如两个机器的MAC是一样的也能互相访问
//如果网卡不是混杂模式,估计就OVER了
放弃瘟草,现吃李草
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-23 20:57
在a机器上抓到两个包是因为你装的是2k的imd

b机器上没有发包如果不是mac地址的问题就是报文有问题。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-24 09:48
mikeluo:
在a机器上抓到两个包是因为你装的是2k的imd
//2k imd为什么会有这个问题呢?是不是xp的就没有呢?

b机器上没有发包如果不是mac地址的问题就是报文有问题。
//我把ip地址修改了之后,ip和tcp的校验和都重新计算过了,我想报文应该没问题吧,你说的mac地址问题是不是上个贴子的“B机器收到局域网一个网段的两台机器ip地址不同,mac地址相同,你说他还会怎么做? ”呢?

 :(
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-07-24 10:18
B、在接受的机器上只收到ip被改的那个包,可是它并没有给这个假ip回一个syn+ack的包,这是为什么?

这个问题我认为是:接受的机器上没有和这个ip的mac地址对应的arp项,你可以用arp -a命令看看。
Death is only the beginning
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-07-24 11:04
to dino:
我按照你说的用arp命令试了一下,确实没有这个ip的mac地址对应的arp项。
下面是我做的处理:
我使用静态添加的方法把发送机器的假ip和它的mac地址的对应表添加了,并把发送机器真ip和mac地址的对应表删除,这样就避免了mikeluo说的同一个mac对应两个ip的问题

结果:
可是仍旧不能看到接收机器向发送机器发的“syn+ack\"包。

分析:
我又重新看了一下校验和,还是没有什么问题啊,我只是修改了发送包的源ip啊,还会是哪里的问题呢??
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-07-24 11:35
我在局域网内试的时候也遇到过这个问题,如果那个伪造的ip是局域网内存在的,回应是会发出的,但如果没有机器使用这个IP,回应就不会发出去了。
Death is only the beginning
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-07-24 13:03
今天试了以下,发现如果MAC不正确,那么确实不会回应包。
也就是说必须在目的机器的ARP表中保存了和你伪装的IP对应的MAC
他才会回应包


解决的方法是:
1。如果你的LAN中,如果有2台以上的机器,把他伪装
成另外一台机器的IP,在发出去应该就可以了。
2。在内核中发一个ARP出去。等ARP回来后,在将你的包发出就可以了。
方法2我刚刚实验完IS OK!不过会把第一个PING 丢掉 :D
放弃瘟草,现吃李草
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-07-24 13:14
方法2是什么意思?是自己做一个arp包刷新接受机的arp表?
Death is only the beginning
lucy_huiminz
驱动小牛
驱动小牛
  • 注册日期2002-06-18
  • 最后登录2009-02-11
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-07-24 13:16
to dino:
你说的很正确,我刚才做了一个测试,把ip伪装成lan中存在的ip,现在我的接收机器能够发“SYN+ACK”的包了,那么现在就剩下一个问题了:
我如何将发包机器的ip伪装成lan中不存在的ip后,我的接收机器还能够发“SYN+ACK”包?

to antspower:
1、我使用静态添加的方法把发送机器的假ip和它的mac地址的对应表添加了,并把发送机器真ip和mac地址的对应表删除,这样就避免了mikeluo说的同一个mac对应两个ip的问题,这样是不是就应该回“SYN+ACK”包了?

2、根据你的回复:
解决的方法是:
1。如果你的LAN中,如果有2台以上的机器,把他伪装
成另外一台机器的IP,在发出去应该就可以了。
//还是需要把ip地址伪装成lan中的一台机器是么?那么这样还是不能达到我的目的啊?因为存在的这个机器会很快给我发一个RST包啊?

2。在内核中发一个ARP出去。等ARP回来后,在将你的包发出就可以了。
方法2我刚刚实验完IS OK!不过会把第一个PING 丢掉
//我不太明白,能详细点么?

antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-07-24 13:35
方法2是什么意思?是自己做一个arp包刷新接受机的arp表?

你说的很对,刷新对方机器的ARP表,让对方机器知道你的那个冒牌
IP对应的MAC,如果IP是外网的,那就可以免了,因为网关的MAC
是知道了

[编辑 -  7/24/03 by  antspower]
放弃瘟草,现吃李草
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-07-24 14:24
伪造arp包刷新对方的arp表的试验我也做过的。但是你伪造的ip必须也是一个在局域网上存在的机器的ip,如果这个ip在局域网内不存在,那么这台机器也不会发送这个回应的。
Death is only the beginning
上一页
游客

返回顶部