首页
社区
课程
招聘
[求助]想问个最简单的问题,WinPacp 发包是否必须有对方MAC地址?
发表于: 2010-3-28 14:44 6960

[求助]想问个最简单的问题,WinPacp 发包是否必须有对方MAC地址?

2010-3-28 14:44
6960
如题,WinPacp 发包在局域网内发包用ARP或NetBIOS获得MAC,但是外网行不通,尝试过,MAC使用网关(192.168.1.1),IP使用局域网内任意主机(192.168.1.101),可正常发包,说明MAC地址也不是必然条件吧?那么WinPacp的 pcap_sendpacket 到底需要构建以个什么呀的RAW Socket 才能向外网发送?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果是发送到外网MAC地址应该不重要吧,毕竟数据包在网络上都是通过IP地址转发的。
2010-3-28 15:32
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
3
目的MAC填网关的MAC地址
向外发送只需要知道对方的IP和网关的MAC就行了,这个数据包先发送给网关,然后由网关转发到目标机器
2010-3-28 16:52
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
概况:
外网网关(122.237.206.1)
外网地址(122.237.206.73)
内网网关(192.168.1.1)
内网地址(192.168.1.100)
当主机使用由路由器构建的内部网络时,WINPACP获取网卡信息后可在网卡信息中获取网关地址,靠ARP和NETBIOS请求包可获取网关的MAC,此时只能获取内网网关的IP和MAC;
当主机靠PPPoE 直接连入外网时,用同样的方法可获得外网网关的IP和MAC;

现在构建数据包有3种情况,
1:目标IP在本地网关所在的网段之内(192.168.1.103)
2:目标IP在外网网关所在的网段之内(122.237.206.199)
3:目标IP在外网网关所在的网段之外(122.224.100.106)

现在的问题是如果我在内部网,想发送第二、第三种情况时数据包需要如何构建

RAW Socket 与 WinPacp 构建原始数据包时,区别在于WinPacp需要再包中写入Ethernet的目标、原始MAC和协议,其他构建大同小异。。。有位仁兄说 发送外网时,目标MAC用网关地址,目标IP用对方IP,但是似乎不行,提到说由网关来转发,那么是否只有外网网关之内的IP才能成功发送,还是可以适用2、3种情况,这个转发对于数据包构建有特别之处呢?有没有高人指点一下。
2010-3-28 17:02
0
雪    币: 75
活跃值: (623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
只有两种情况吧
1)局域网内发包:目标mac(局域网目标主机的mac) 目标ip(局域网目标主机的ip)
2)往外网发包:目标mac(局域网网关主机的mac)目标ip(外网目标主机ip),同3楼, 适用于你说的2,3情况

如果网关是直接通过pppoe连到互联网,就不存在路由缺失问题,一条0 0的默认路由把所有目的ip全部传上去了,抓下网关外网网卡的包,没有理由抓不到的
2010-3-28 17:39
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
---------------------------------------------------------------------------------------------------------------

本地抓包:
from 192.168.1.101:1494 to 122.223.58.105:3388 type SYN
from 122.223.58.105:3388 to 192.168.1.101:1494 type SYN+ACK
from 192.168.1.101:1494 to 122.223.58.105:3388 type ACK

远程抓包:
from 122.237.202.59:64085 to 122.223.58.105:3388 type SYN
from 122.223.58.105:3388 to 122.237.202.59:64085 type SYN+ACK
from 122.237.202.59:64085 to 122.223.58.105:3388 type ACK

从过程上看
正向 SYN 192.168.1.101:1494
发往 192.168.1.1:64085(122.237.202.59:64085)
转发 122.223.58.105:3388

反向 SYN-ACK 122.223.58.105:3388
发往 122.237.202.59:64085(192.168.1.1:64085)
转发 192.168.1.101:1494

正向 ACK 192.168.1.101:1494
发往 192.168.1.1:64085(122.237.202.59:64085)
转发 122.223.58.105:3388

上面是一次正常软件建立的TCP连接,他完成了3次握手的完整规则,中间全靠网关(路由器)进行转发连接,现在我用WINPCAP 构建SYN请求包却无法达到远程主机(PPPoE或光纤无路由的情况下可成功发往目标主机),内网发包时 目标MAC为 192.168.1.1(网关) 的MAC地址,目标IP为122.223.58.105,但是网关并没有帮我转发向目标主机。这问题搞的头大了。。。
2010-4-4 00:27
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
终于可以结贴了!邪恶的网关
2010-4-4 01:24
0
雪    币: 88
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是不是存在数据包构造不完整,或是校验不对,让网关给扔掉了。
2010-4-6 11:21
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
首先应明确MAC地址是用在LAN内的
其次你发的目标地址是否在网关内部,网关上做了NAT? 如果这样你直接发送到目标IP地址当然无法到达。如果想到达,需要在网关上做主机映射,这个跟你发包没关系.
2010-4-8 19:11
0
游客
登录 | 注册 方可回帖
返回
//