关于mirai的一些研究

关于mirai的一些研究

 

0x01.源码编译:

配置好对应的go开发环境,即可进行编译,生成了主要的文件 badbot为僵尸节点的可执行文件,cnc为主控端的可执行文件,其它一些为辅助工具。

 

如下图所示编译主控端源代码(go语句编写)生成可执行文件cnc,运行cnc,在本地开启了23和101的端口监听

 

0x02.部分代码分析

1.关于主控端的信息

主控端的代码主要由go语言编写,主要实现了对bot的控制和管理功能。

 

在main.go 中可以看到数据库连接的信息。

 

导入源码中的sql语句,连接数据库,可以看到数据库的一些结构信息。

 

2.关于bot节点的信息

C&C连接信息会被初始化在一张表中,当Mirai回连C&C时,会从表中取出C&C进行连接。

 

防止外来者抢占资源

Mirai有一个特点就是具有排他性,设备一旦感染,其会通过端口来关闭Telnet(23)、SSH(22,编译时可选删除项)、HTTP(80,编译时可选删除项)服务并且会阻止这些服务进行重启,其主要实现方法是通过kill强制关闭这三个服务进程,并强行占用这些服务开启时所需要的端口。此举Mirai既可以防止设备被其他恶意软件感染,也可以防止安全人员从外部访问该设备,提高Mirai的取证难度。此功能实现在killer.c文件中。

 

Bot确保每次只有一个实例运行(通过连接本地端口48101),并通过此端口号关闭相对应的进程。

 

我们大致可以通过在shodan上搜索开放48101端口的ip情况,来查看已感染mirai病毒的数据情况。

 

目前为止开放48101端口的ip有62万之多,中国有9万之多。随便打开一个ip的详细信息,如下

 

该ip只是开放了48101端口,且由wps_device.xml信息判断该设备很有可能是已被感染的一台路由器。

Mirai其强大的感染能力源于它的扫描探测能力,其扫描代码在scanner.c 中,其中内置了常见的弱口令,受感染的bot会不断的去对随机的白名单列表中的ip进行扫描探测,进行下一步的感染。

 

基本上就搞了这些后面领导说先不搞了,就去搞其它的了,还有因为自己功力不够的原因,关于mirai还有很多东西可以挖掘QAQ

0x03.参考资料:

  1. http://www.freebuf.com/articles/network/119403.html物联网僵尸Mirai源码分析和沙箱运行演示
  2. http://www.freebuf.com/articles/terminal/117927.html  Mirai物联网僵尸攻击深度解析
  3. http://mt.sohu.com/20161011/n470026160.shtml  横行物联网的恶意代码mirai分析之Mirai部分
  4. http://blog.nsfocus.net/mirai-source-analysis-report/ Mirai源码分析报告
  5. http://paper.seebug.org/142/ Mirai 源码分析
原文地址:https://www.cnblogs.com/mrchang/p/6210681.html