首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我是如何从3亿IP中找到CISCO后门路由器的

我是如何从3亿IP中找到CISCO后门路由器的

作者头像
FB客服
发布2018-02-06 17:23:55
1.6K0
发布2018-02-06 17:23:55
举报
文章被收录于专栏:FreeBufFreeBuf

接到某单位通知让查找中国具有SYNful Knock后门的CISCO路由器,按照曼迪安特分析的报告称中国已经发现3台具有SYNful Knock后门的路由器,如何快速从全国3亿IP地址中快速查找出3个IP地址难度还是十分的大啊,而我经过查找发现中国已经有4个IP被植入了后门,现将检测过程分享给大家。

一、获取IP地址

为保证中国IP的全面性,从apnic重新获取亚洲区域所分配到的IP,过滤出CN的IP,结果如下。apnic文件中每行为一个IP地址段,以"|"作为分隔,第四个字段为IP起始地址,第五个字段为IP地址数量。

二、IP地址格式调整

将IP地址格式调整成zmap的CIDR格式,如下:

三、使用zmap检测80端口开放ip

命令:zmap -w china_ip_cidr.txt -p 80 -o 80.txt

检测出5184575个开放80端口的IP地址。

四、POC制作思路

互联网搜索发现还没有此后门的POC(现在CISCO已经发布自己的POC,后期我的POC也参考CISCO的POC做了适当调整),没办法自给自足仔细研读了曼迪安特的报告,经过多次改版最终POC思路如下:

(一)伪造SYN报文,使seq和ack_seq之间的差为0xC123D大批量发送给目标主机。

(二)单独监听收到的网络报文,将seq和ack_seq之间的差为0xC123E、urgent flag未设置、urgent pointer=0x0001、hard-coded TCP options=“02 04 05 b4 01 01 04 02 01 03 03 05”的网络报文过滤出来保存。

五、POC分析如下:

(一)SYN报文部分

修改SYN seq和ack_seq差值,使其差值为0xC123D,并直接发送SYN,不等待接收SYN ACK报文,由网络监听部分进行SYN ACK报文的拦截,由于不接收SYN ACK报文,发送速度提升了N倍。考虑到发送完关闭过快在每个报文发送完毕后增加了0.1秒的等待。

(二)网络监听部分

此部分借鉴了CISCO发布的检测脚本,但是CISCO检测脚本检测性能较差,我将检测POC分成了2部分,将SYN报文发送部分POC放入检测框架批量执行,网络监听部分单独执行分析SYN ACK的报文特征符合性,代码如下:

五、批量执行

(一)将待检测IP入库,祭出我编写的神器pwscan大规模检测框架,设定进程数1000,启动检测框架如下:

框架启动了1000个扫描引擎。

奔跑吧小驴子,很快检测完成,如下:

六、检测结果

对全网检测5遍后结果如下(不好意思IP要隐藏:) ):

七、漏洞验证

单独进行漏洞验证如下:

(一)脚本验证

(二)登陆验证

弱口令成功登陆,看到了曼迪安特说的"#"号

执行show platform查看文件被修改情况,找到曼迪安特说的RW标致

八、结论

成功找到4个中国具有SYNful Knock后门的CISCO路由器。

* 作者:大师,本文属FreeBuf原创奖励计划文章,未经许可禁止转载。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档