去除XP SP2对raw socket的一些限制

来源:互联网 发布:淘宝网如何修改评价 编辑:程序博客网 时间:2024/05/21 08:49
 http://www.opencjk.org/~scz/windows/200701091750.txt

A: scz@nsfocus.com 2007-01-09 17:50

现在已经是众所周知,XP SP2对raw socket做了一些限制,最引人注目的有两条:

1) 不能通过raw socket发送TCP报文。做此尝试时会得到10004号错误。

2) 不能通过raw socket发送伪造源IP的UDP报文。

另有一条就不太引人注目:

3) 不能通过raw socket发送IP碎片。做此尝试时会得到10004号错误。

不知微软在哪次对2000 SP4的修补中实现了类似上述第三条的限制,只是要宽松一些:

3) 不能通过raw socket发送全部IP碎片,只有第一个碎片可被发送出去。试图发送
   后续碎片时会得到10004号错误。

尚未在2003 SP1上测试第三条限制。

微软做这些限制时,有两种方案,一种是完全没有实现相关代码,另一种是在全功能
代码中增加一些判断语句。想了想,第二种可能居多,最后事实证明确实如此。

微软在tcpip.sys中固化了这些限制,没有注册表项对之调整。

曾在"12.3 XP SP2对raw socket所做的改动"中提过,可以考虑剁了tcpip.sys,但不
推荐。

为了调整XP SP2并发半开出连接上限,已经硬剁了tcpip.sys。对于我们来说,硬剁
tcpip.sys面临的诸多风险中最大的就是BSOD,便如杀人是要偿命的。杀一个人是死,
杀两个人也是死,索性全家上下三代都给杀了图个痛快。基于这种信念,我一直奇怪
外界流传的现成工具为何只剁了ActiveOpenProgressThreshold,按说这帮人也不是
什么善主,在其本机使用raw socket是很正常的需求啊。以前多在*nix上做点事,
root想怎么用raw socket就怎么用,如今早已背叛了*nix,手头*nix的测试环境甚少
启用。最近工作机被迫升级至XP SP2后,被这些限制搞得很不爽。剁掉tcpip.sys的
这些限制已经成了心病。

下面以英文版XP SP2上的5.1.2600.2892版tcpip.sys为例进行介绍。用自己熟悉的16
进制编辑工具按如下说明进行修改(已包含对校验和的修改):

> fc /b tcpip.sys.old tcpip.sys
00000130: 65 BA
00000131: F8 FD
0002403A: 8A EB
0002403B: 41 45
0004F5A2: 0A FE
0004F5A3: 00 FF
0004F5A4: 00 FF

将临时目录里修改好的tcpip.sys严格地按如下顺序复制到相应目录:

%systemroot%/ServicePackFiles/i386/
%systemroot%/system32/dllcache/
%systemroot%/system32/drivers/

在资源管理器里确认%systemroot%/system32/drivers/tcpip.sys未因SFC而被自动恢
复成某个早期版本。重启OS使之生效。

剁了tcpip.sys之后用sendto()发送所有IP碎片均不会返回10004号错误。第一个IP碎
片肯定可以发送出去,但后续IP碎片会被XP SP2 PFW默默丢弃,用户态程序得不到任
何提示,伪造源IP的报文也会被PFW默默丢弃。关闭PFW后这些问题都得到解决。PFW
的限制与tcpip.sys本身的限制是两回事,是两层不同的限制。PFW的限制可以热取消,
tcpip.sys本身的限制是固化的,无法正常取消。总之,关闭PFW再测试raw socket。

实测表明,用IP碎片可以对2003 SP1进行syn-flood攻击,当指定正确的源IP时,可以
收到SYN+ACK或RST。

顺便说一句,这个版本的tcpip.sys不允许用raw socket发送IP-ENCAP、IPv6报文,
剁了之后这些限制一并绕过。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房屋面积重新测量超了一倍怎么办 物管把业主的电断了怎么办 在人多的场合紧张不适应怎么办 人寿人身损害勘查结果有争议怎么办 批量性不良再限度样本规格内怎么办 老公说老婆不攒钱都买衣服了怎么办 华为手机获取安装包信息失败怎么办 液压电动脱模器不上升了怎么办 退伍军人证和身份证名字不付怎么办 车辆有违章需要短信提醒要怎么办 1969年退伍的退伍证丢了怎么办 江苏移动没实名认证停机了怎么办呀 亿达老年手机来电音量太大怎么办 挑三十六乘二的内螺纹丝瞳毛怎么办 内六角螺丝的冒滑了怎么办 孔里的内六角滑了怎么办 十字螺丝刀的头卡在螺母里怎么办 内六角扳手断在螺丝孔里怎么办 六棱螺丝刀折进螺丝里了怎么办 内6棱螺丝拧花了怎么办 只有pe模式可以用键盘鼠标怎么办 电脑重做了系统连不上无线网怎么办 联想手机死机了怎么办不可拆卸电池 手机界面弹出后大小无法调整怎么办 方向盘打方向瑟瑟的吱吱响怎么办 三脚架提升杆螺丝滑丝了怎么办 花土里面有很多细长的螺丝怎么办 防盗门外边上边缝宽螺丝松了怎么办 填充墙与框架梁不对齐怎么办 亚轧滚珠丝杠螺帽超程了怎么办 在公司交的五险一金辞职了怎么办 铝合金的渣子整到眼睛里怎么办 铁锅手柄上的铆钉拧不动怎么办 喂完鱼鱼缸上边飘着一层油膜怎么办 铸铁管道横着排的结口漏水怎么办 缤智行李架免打孔螺丝款怎么办 前保险杠和叶子板缝隙大怎么办 新奥拓的大灯调节螺丝滑丝了怎么办 小米手环2计步不准怎么办 小米手环3计步不准怎么办 眼镜用洗发水洗了后模糊怎么办