IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Botnety - Úvod

V rámci obohatenie tém na ITnetwork som sa rozhodol publikovať svoju prácu botnet, aneb projekt SAND Toto meno dostal projekt od zabudovania takzvanej schopnosti "prežívať". Dúfam, že toto bude pre niektorých z vás inšpirácia. Zdrojový kód môžem poskytnúť len na požiadanie. Tento program bol označený spoločnosťou ESET sro za bezpečnostnú hrozbu s Exploitací PowerShell a ZIP archívy, ktoré neboli uverejnené. V ukážkach nie sú uvedené kompletné zdrojové kódy a neslúži ako návod! Len na vzdelávacie účely. V práci sú uvedené spôsoby komunikácie medzi topánky, servermi a všetka funkcie blokov v programe. Zo začiatku seriálu uvediem do kontextu základné pojmy. Pre tých skúsenejších, nenechajte sa znechutiť a zo začiatku to vydržte. Ďakujem :)

Úvod

Definície pojmov a úvod do problematiky

Topánok je takzvaný klient siete botnet, odosielajúci dáta na server alebo iného klienta. Response je odozva topánka servera alebo inému topánku o stave príkaze, činnosti, procesu a ďalšieho. Botnet, aneb sieť počítačov, ktorá je kontrolovaná z centra, väčšinou býva označovaná za takzvaný škodlivý softvér, ktorým je ovládaný systém obete bez jej vedomia. V niektorých prípadoch ale nemusí byť nutne tento softvér škodlivý. Tento softvér nemusí byť nutne v programovej verzii ako si väčšina používateľov myslí napríklad Google používa tzv. Botnetov, pomocou ktorého vám zobrazuje reklamy. Tento botnety je založený iba na webových klientoch, ktorí pomocou vyhľadávania sú takzvaní klienti a aj keď si myslíme, že nás toto neovplyvňuje, tak sa vo väčšine prípadov mýlime, pretože služby Google sú skoro všade. Napríklad služby Google Analytics:

Ukážka Google analytics - Sieťové technológie

V tejto práci sa, ale zameriame na program, ktorý bude na počítači a bude bežať ako proces v počítači, nie prehliadači ako webový skript.

Histórie

Začiatky botnet ako takého sa začali vyskytovať okolo roku 2000. Niektoré z prvých boli: Marina botnet s počtom okolo 6,215,000 botov, Bagle (2004) s počtom okolo 230,000 botov. Tieto siete sa aktívne používali pre posielanie spam emailov, DDOS a ďalších služieb, ktoré si zadávatelia vymysleli. Väčšina týchto sietí vznikla len za účelom komerčného zisku. Bolo z nich možné profitovať napríklad vyhrážaním určitým spoločnostiam DDOS útokom alebo rozosielanie reklamných emailov. Legálne sa tieto siete používali k prepojeniu a kontrole viac počítačov za účelom splnenia úloh, na ktorom pracovali všetky spoločne tak, aby nebola potreba viac ľudí k zadávanie príkazov. Bohužiaľ história botnety je skôr nelegálne a ľudia si s ním spájajú kriminálnu činnosť.

ilustrácie botnety - Sieťové technológie

Vývoj topológií

Topológia Klient-Server

Táto topológia spočíva v jednom alebo viacerých poskytovateľoch (serveroch), ktorí zdieľajú službu pre klienta / y. Tieto roly sa v tejto topológii nemení alebo sa mení veľmi málo. V tomto prípade Boti odosielajú dáta na príslušný server na účely odovzdania informácie o ich stave. Server tvorí záchytný bod, ktorý všetci boti poznajú alebo poznajú jeden z mnohých bodov, kde si môžu odoberať dáta o ich úlohách a ďalších postupoch. Nekomunikujú však vzájomne, iba cez sprostredkovateľa (bod). Grafické znázornenie Topológia:

Ukážka topológia klient-server - Sieťové technológie

Príklad komunikácie klienta so serverom v našom botnet by vyzeral nasledovne:

  • Server zadá požiadavku k činnosti topánka "Koľko je hodín na tvojom mieste?".
  • Klient si túto požiadavku prevezme na spracovanie a na základe požiadavky vykoná interné funkciu.
  • Návratová hodnota bude doručená servera prostredníctvom internetu, bude to odpoveď klienta, napríklad "4:00:09 AM GMT +1".
  • Server za podmienky, že klient a server je stále pripojený k internetu, odpoveď spracuje.
  • Server môže zaslať klientovi, že jeho informácie dorazila v poriadku ďalšom požiadavkou. Ak sa informácie rovná tej, ktorú odoslal klient, pokračuje v ďalšej úlohe. Ak nie, klient skontroluje svoje internetové pripojenie a skúsi odoslať znova.
  • Server zobrazí informáciu, ktorú sme si zažiadali, teda "4:00:09 AMGMT + 1".
  • Po ukončení tohto cyklu klient odošle serveru odpoveď o stave, napr. Pripravený alebo chyba.
  • Klient je pripravený k ďalšiemu požiadavke a server opäť môže zadávať nové úlohy klientovi.

Ďalšie topológia typu klient-server sú hviezda, multi-server, hierarchická.

Hviezda

V tejto topológii sú boti sústredení okolo centrálneho servera jedného z hostí (Obrázok s obrátením Odpoveď Požiadavka).

Multi Server

V tejto topológii sú klienti servery a server je klient. Server chová ako klient a zadáva požiadavky ostatným a dostáva odpovede.

Hierarchická

V tejto topológii sú boti organizovaní do skupín, aby sa zlepšila spoľahlivosť. Tieto skupiny môžu tvoriť napríklad štáty, v ktorých boti operujú. Táto topológia je obľúbená z dôvodu pronajímatelnosti týchto skupín a väčšej bezpečnosti v ohľade odhalení dotknutých botov.

Ukážka hierarchickej topológia - Sieťové technológie

Topológia Klient-Klient (Peer to Peer)

Pozostáva z klientov pripojených pomocou P2P, aneb klient pripojený ku klientovi. Delí sa na ďalší pod-topológie, ale vzhľadom na ciele tejto práce je nebudem uvádzať. Používa sa napríklad ako tzv.FailSafe botnet, tzn., Že ak vypadne hlavný server, tak sa boti dokážu preformovať v plne funkčnú P2P sieť a ich "server" bude jeden z nich, ktorý vydá príkaz napríklad s heslom. Bohužiaľ väčšina DNS serverov a NAT pripojenie už blokuje P2P a tak si topánok musí nájsť cestu k odovzdanie informácie iným spôsobom. Tými sú napríklad Teredo, ktorý posiela vašu informáciu cez celý internet, aby obišiel všetky obmedzenia a je tu značné oneskorenie. Sú tu aj iné možnosti ako je VPN a ďalšie, ale v tejto práci nebudeme zostavovať botnetov z P2P.

Ukážka sieťovej topológie peer to peer - Sieťové technológie

Programovacie jazyky

V tejto práci budeme používať viac programových jazykov. Hypertextové, objektové a skripty vo vzájomnej súhre a spolupráci. Tieto programy v rôznych jazykoch sú nastavené tak, aby dokázali medzi sebou zdieľať dôležité informácie a premenné.

Hypertextové jazyky

Programovací jazyk PHP a značkovací jazyk HTML budú použité pre tvorbu Hosťa, ktorý bude zadávať príkazy botom. Pridá sa k nim jazyk JS (Javascript), ktorý bude použitý k uľahčeniu zadávanie príkazov a adries botov. Hosť je WWW stránka na webostingu ENDOR, v prípade výpadku je tu viac hostí a program sa dokáže medzi nimi prepínať na základe odozvy zo stiahnutých súborov. CSS je použitý pre tzv. Vzhľad stránky všetky farby, pozadia a dizajnová stránka práce. Z týchto jazykov sú v tejto práci nevyhnutné len PHP a HTML, pretože by hosť bez nich nefungoval. Ostatné sú len dizajnové prvky alebo zjednodušenie pre nás.

Php

Jazyk používaný pre takzvaný backend proces zo strany servera. Tento jazyk nevidí užívateľ, je len na strane servera. Je využitý na zápis, čítanie príkazov, prihlasovanie, formátovanie tabuliek a automatizáciu procesu. Preberá http požiadavky zo strany botov (klientov), zapisuje príkazy do súborov, je nevyhnutný pre všetky spracovanie. Tvorí 50% z celej webovej stránky.

Html

Slúži ako hlavný tzv. Nosný prvok pri konštrukcii stránok. Formuláre a chrbticovej štruktúra, kam sa budú vkladať skripty, formátovanie a kam budeme generovať výstup na backend. Tvorí 10% z webovej stránky.

CSS

Tento jazyk je zodpovedný za formátovanie dizajnovej stránky hosťa. Dizajnové prvky ako je pozadie, okraje tabuliek a všetky viditeľné prvky sú nadefinované v ich jazyku. Tvorí 20% z celkovej webové stránky.

JS ==

Slúži na sprostredkovanie, v tomto prípade zjednodušenia, ako je automatické vyplnenie údajov po kliknutí na odkaz a automatické obnovenie stránky po prihlásení. Tvorí zvyšných 20% z celkovej stránky.

Desktopové jazyky

C # .NET

Tento jazyk bude tvoriť chrbticovej konštrukciu klientov (botov), bol použitý z dôvodu nižšej zložitosti kódu, pretože nemá toľko chybových stavov a nie je tak náchylný na chybovosť. Bohužiaľ sa nedá použiť na všetko a tak na jednoduchšie operácie je využitý jazyk Batch.

Jazyk sa používa aj pre konštrukciu grafických aplikácií. Tu je použitý v konzolových aplikáciách. Spracovanie tohto programu musí byť vykonávané kompilácií a samotné programovanie v tomto jazyku sa uskutočnilo vo vývojovom prostredí Visual Studio. Bohužiaľ v niektorých situáciách by bolo jeho použitie zbytočne zložité, preto je použitý skriptovací jazyk Batch. Menné priestory, triedy, metódy sú vrstvy programu. Pomocou volanie metód v určitej triede môžeme ľahko oddeliť metódy podľa odboru činnosti, napr .: súborové, diagnostické a ďalšie.

Skriptovacie jazyky

Batch

Tento jazyk je vo operačnom systéme Windows použitý k sprostredkovanie jednoduchých operácií ako je kopírovanie, spúšťanie programov a ďalších funkcií. V tejto práci som použil tento jazyk z dôvodu jednoduchosti riešenia, napríklad mazanie, a lepšiemu prístupu k systémovým funkciám. Je použitý pre službu Updater, Injector a jeho slave. Jednorazových príkazov (quickie), Remover (Odstránenie všetkých súborov, ktoré boli vytvorené od botnetov.

VBScript

Skratka pre "Visual Basic Scripting Edition". Tento jazyk je veľmi obľúbený u hackerov, keďže sa pomocou malého skriptu dá pristupovať k veľkému množstvu programov a dát. Použitie v tejto práci je na báze skrytie našich činností a odosielanie dát na nášho hosťa. V prípade, že by sme chceli šíriť náš program do ďalších počítačov bez vedomosti užívateľa, tak by sme týmto jazykom urobili rozhranie na kopírovanie emailových adries uložených v užívateľovom emailu. Potom by sme na všetky tieto emaily odoslali nejakú výzvu z emailu, ktorý by bol napr. "Developers@mi­crosoft.com" so správou "Dobrý deň $ meno $, nepodarila sa aktualizácie vášho systému, aktualizujte programom pripojeným v prílohe. V prípade ignorovanie výzvy môže dôjsť k strate vašich dát. ". Tento skript by nebolo ťažké tiež vložiť na stránku, kde by sa automaticky spustil a ukázala by sa užívateľovi napr. Mačiatka.

Rozširovanie botnety

Sociálne siete

Použitie hlúposti ľudí za účelom spustenia programov alebo navštívení stránok. Toto sa väčšinou používa, pretože sú užívatelia zvedaví a kliknú alebo urobia niečo, o čom nič nevie. Napr. Malware emaily, použitie sociálnych sietí (Facebook), použitie komunikačných služieb (Skype, Teamspeak). Univerzálny spôsob ako sa tieto veci robia je využitie zvedavosti, napr. Zvolenie nejakého titulku, ktorý užívateľa zaujíma. Po kliknutí sa spustí skript a počítač je infikovaný, program môže zasielať ďalším ľuďom tento skript pod nejakou správou napr. "Ahoj našiel som úžasnú hru, stiahni si ju tu www.hra.cz ".

Bez použitia používateľa

V tomto prípade predpokladáme, že užívateľ tento súbor nestiahne a nespustí. Je nutné použiť iných spôsobov na dosiahnutie svojich cieľov. Spôsoby sú napr. Vytvoriť program, ktorý v danej sieti dokáže vkladať súbory do ostatných počítačov a spúšťať na nich príkazy, ten nazývame Exploit. V prípade, že sa rozhodneme pre túto možnosť, je nutné uvedomovať si všetky závislosti v sieťach a dokázať svoj program naprogramovať tak, aby sa prispôsobil. V niektorých prípadoch je možné použiť konvenčné exploity pre Windows XP, pretože väčšina firiem tieto operačné systémy stále používa. Avšak ďaleko ľahšie je v sieťach uplatňovať pravidlo "Need Admin", čo znamená, že sa pokúsite získať práva administrátora a potom rozšírite pomocou jeho práv všetky súbory do všetkých PC.

Využitie chýb samotných operačných systémov Windows

V tomto prípade predpokladáme, že používateľ a administrátori vykonali vynikajúcu prácu ak počítačom sa nedá pristupovať Exploity a inými konvenčnými spôsobmi. V tento moment prichádza posledný spôsob ako si vytvoriť vlastný prístup do systému a to je "Atom Bomb". Technika spočívajúce vo využívaní systémových "Atom" na spúšťanie príkazov na najmenšie báze, ktoré môže vykonávať ktokoľvek bez oprávnenia, a tým obídeme všetky oprávnenia.

V ďalšom diele sa pozrieme na Mechanizmy, ktoré sa týkajú komunikačných protokolov tak aj vykonávanie príkazov. Ďakujem za prečítanie a budem sa na vás tešiť v budúcom diele, kde si podrobnejšie popíšeme mechanizmy botnetov. :-)


 

Predchádzajúci článok
Siete - Internet Protocol - Differentiated Services
Všetky články v sekcii
Sieťové technológie
Článok pre vás napísal Jiri Otoupal
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje Zabezpečení Softwaru, Inovaci v sítích , Správa Serverů,Malware,Exploiting, Penetration Testing
Aktivity