关于mirai的一些研究
2016-12-22 12:15
190 查看
关于mirai的一些研究
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121842932-1880207673.png)
如下图所示编译主控端源代码(go语句编写)生成可执行文件cnc,运行cnc,在本地开启了23和101的端口监听
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121858932-1528204120.png)
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121917932-1049372345.png)
在main.go 中可以看到数据库连接的信息。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121943870-1250535546.png)
导入源码中的sql语句,连接数据库,可以看到数据库的一些结构信息。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122008995-1135203429.png)
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122116948-1610854394.png)
防止外来者抢占资源
Mirai有一个特点就是具有排他性,设备一旦感染,其会通过端口来关闭Telnet(23)、SSH(22,编译时可选删除项)、HTTP(80,编译时可选删除项)服务并且会阻止这些服务进行重启,其主要实现方法是通过kill强制关闭这三个服务进程,并强行占用这些服务开启时所需要的端口。此举Mirai既可以防止设备被其他恶意软件感染,也可以防止安全人员从外部访问该设备,提高Mirai的取证难度。此功能实现在killer.c文件中。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122143089-69260716.png)
Bot确保每次只有一个实例运行(通过连接本地端口48101),并通过此端口号关闭相对应的进程。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122231932-993184306.png)
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122243323-195579243.png)
我们大致可以通过在shodan上搜索开放48101端口的ip情况,来查看已感染mirai病毒的数据情况。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122257604-2096449613.png)
目前为止开放48101端口的ip有62万之多,中国有9万之多。随便打开一个ip的详细信息,如下
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122307886-186537680.png)
该ip只是开放了48101端口,且由wps_device.xml信息判断该设备很有可能是已被感染的一台路由器。
Mirai其强大的感染能力源于它的扫描探测能力,其扫描代码在scanner.c 中,其中内置了常见的弱口令,受感染的bot会不断的去对随机的白名单列表中的ip进行扫描探测,进行下一步的感染。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122324026-1113078899.png)
基本上就搞了这些后面领导说先不搞了,就去搞其它的了,还有因为自己功力不够的原因,关于mirai还有很多东西可以挖掘QAQ
http://www.freebuf.com/articles/terminal/117927.html Mirai物联网僵尸攻击深度解析
http://mt.sohu.com/20161011/n470026160.shtml 横行物联网的恶意代码mirai分析之Mirai部分
http://blog.nsfocus.net/mirai-source-analysis-report/ Mirai源码分析报告
http://paper.seebug.org/142/ Mirai 源码分析
0x01.源码编译:
配置好对应的go开发环境,即可进行编译,生成了主要的文件 badbot为僵尸节点的可执行文件,cnc为主控端的可执行文件,其它一些为辅助工具。![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121842932-1880207673.png)
如下图所示编译主控端源代码(go语句编写)生成可执行文件cnc,运行cnc,在本地开启了23和101的端口监听
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121858932-1528204120.png)
0x02.部分代码分析
1.关于主控端的信息
主控端的代码主要由go语言编写,主要实现了对bot的控制和管理功能。![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121917932-1049372345.png)
在main.go 中可以看到数据库连接的信息。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222121943870-1250535546.png)
导入源码中的sql语句,连接数据库,可以看到数据库的一些结构信息。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122008995-1135203429.png)
2.关于bot节点的信息
C&C连接信息会被初始化在一张表中,当Mirai回连C&C时,会从表中取出C&C进行连接。![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122116948-1610854394.png)
防止外来者抢占资源
Mirai有一个特点就是具有排他性,设备一旦感染,其会通过端口来关闭Telnet(23)、SSH(22,编译时可选删除项)、HTTP(80,编译时可选删除项)服务并且会阻止这些服务进行重启,其主要实现方法是通过kill强制关闭这三个服务进程,并强行占用这些服务开启时所需要的端口。此举Mirai既可以防止设备被其他恶意软件感染,也可以防止安全人员从外部访问该设备,提高Mirai的取证难度。此功能实现在killer.c文件中。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122143089-69260716.png)
Bot确保每次只有一个实例运行(通过连接本地端口48101),并通过此端口号关闭相对应的进程。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122231932-993184306.png)
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122243323-195579243.png)
我们大致可以通过在shodan上搜索开放48101端口的ip情况,来查看已感染mirai病毒的数据情况。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122257604-2096449613.png)
目前为止开放48101端口的ip有62万之多,中国有9万之多。随便打开一个ip的详细信息,如下
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122307886-186537680.png)
该ip只是开放了48101端口,且由wps_device.xml信息判断该设备很有可能是已被感染的一台路由器。
Mirai其强大的感染能力源于它的扫描探测能力,其扫描代码在scanner.c 中,其中内置了常见的弱口令,受感染的bot会不断的去对随机的白名单列表中的ip进行扫描探测,进行下一步的感染。
![](https://images2015.cnblogs.com/blog/498451/201612/498451-20161222122324026-1113078899.png)
基本上就搞了这些后面领导说先不搞了,就去搞其它的了,还有因为自己功力不够的原因,关于mirai还有很多东西可以挖掘QAQ
0x03.参考资料:
http://www.freebuf.com/articles/network/119403.html物联网僵尸Mirai源码分析和沙箱运行演示http://www.freebuf.com/articles/terminal/117927.html Mirai物联网僵尸攻击深度解析
http://mt.sohu.com/20161011/n470026160.shtml 横行物联网的恶意代码mirai分析之Mirai部分
http://blog.nsfocus.net/mirai-source-analysis-report/ Mirai源码分析报告
http://paper.seebug.org/142/ Mirai 源码分析
相关文章推荐
- 关于textarea的直观换行的一些研究材料
- 关于Discuz论坛架构的一些研究心得
- 关于hadoop的一些研究优化方向
- haXe开发备忘:关于TextField的一些研究
- 我所关于的一些国际上视觉研究组和研究大牛们
- 关于最近研究XmlHttp的一些心得
- 关于在Unity3D中使用Kinect的一些研究
- [Perl] 关于 Bugzilla 的一些问题与研究
- 关于chrome的一些研究
- 关于C语言可变参数函数的一些研究和总结
- Ext研究(1)——关于Function类的一些新方法的使用
- 关于未定义行为的一些研究
- 关于QT中显示中文的一些研究
- 关于java中的synchronized关键字的一些小研究
- 关于sql脚本性能的一些研究
- 关于E600,968手机研究一些不得不说的话
- 关于QT中显示中文的一些研究
- Android 移动开发 关于LBS的一些认知 经纬度纠偏问题的研究
- 关于java内存说明的一些帖子整理(待研究)
- 关于新浪微博模拟登陆的一些小研究.