• 关于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 源码分析
  • 相关阅读:
    mysql 7.5.8 服务无法启动 服务没有报告任何错误
    Ubuntu 16.04 php卸载
    函数式编程(3)-匿名函数
    函数式编程(2)-返回函数
    函数式编程(1)-高阶变成(3)-sorted
    函数式编程(1)-高阶变成(2)-filter
    函数式编程(1)-高阶变成(1)-map/reduce
    高级特性(4)-生成器
    高级特性(3)-列表生成式
    高级特性(2)-迭代
  • 原文地址:https://www.cnblogs.com/mrchang/p/6210681.html
Copyright © 2020-2023  润新知