Seit Jahren erwartet, ist endlich Version 4 des Samba-Servers erschienen, der nun als vollwertige Alternative zu Microsofts Active Directory dienen kann. In der ... (mehr)

Im Gleichtakt

Für jedes Auto, das wir gerne kaufen wollten, verwendeten wir ein bis zwölf Harvester, die im ganzen Land verteilt waren. Einige Rechner beherbergten nur einen Harvester, auf anderen liefen gleich mehrere gleichzeitig. Im Gegensatz zum Conficker-Netz gehörten die Rechner natürlich alle uns.

Nachdem ein Harvester ein Ziel zugewiesen bekommen hatte, überprüfte er, ob das gewünschte Auto noch vorhanden war. Dann synchronisierte er sich mit der Uhrzeit des Verkaufsservers. Je näher der Moment des Verkaufs rückte, umso genauer lief die Zeitsynchronisation. Gleichzeitig versuchte der Harvester die Serverlatenz zu messen und abzuschätzen, wie viele Interessenten die Website besuchten.

Abhängig davon, wie viele Interessenten für einen Verkauf gab, schickte ein Harvester genau getimte Kaufanfragen. War viel los, sendete er ein Gebot vielleicht schon fünf Sekunden vor Verkaufsschluss. Meistens aber passierte das noch näher zum Verkaufsende. War das Gebot erfolgreich, kümmerte sich der Harvester um die Bezahlung und arrangierte die Überführung des Autos.

Die meisten einzelnen Versuche des Botnetzes, einen Wagen zu kaufen, waren erfolglos, aber zusammengenommen hatte es eine Erfolgsquote von 95 Prozent. Das ist insbesondere bemerkenswert, wenn man sich daran erinnert, dass man von Hand kaum ein Auto kaufen konnte. Mit dem Sniper-Botnetz konnte mein Kunde praktisch jedes Auto bekommen, das er sich wünschte, und ich musste ihn manchmal daran erinnern, nicht zu viel zu kaufen.

Das Botnetz war bereits über ein Jahr gelaufen und hatte dabei Autos im Wert von einigen Millionen US-Dollar gekauft, als wir entdeckten, dass wir offensichtlich in Konkurrenz zu einem anderen Botnetz standen. Das führte zu einem Wettstreit der Technologien und Programmierer und letztlich dazu, die Zeitsynchronisation unseres Botnetzes zu verbessern. Am Ende dieses Prozesses lag unserer Botnetz wieder vorne.

Innenleben

Auch wenn die Programmierung eines Botnetzes auf den ersten Blick vielleicht kompliziert erscheinen mag, ist sie relativ simpel, wenn man sie in Teilaufgaben zerlegt. Vereinfacht wird die Aufgabe durch eine Reihe praktischer Open-Source-Tools, die ich für diesen Zweck entwickelt habe und die unter [2] zum Download bereitstehen. Sie setzen wiederum einige PHP-Bibliotheken voraus, die etwa dabei helfen, Websiten zu downloaden, Text zu parsen, Bilder zu verarbeiten, Webcrawler zu schreiben und mit E-Mail-Servern zu kommunizieren.

Die Harvester laden nicht nur die Inhalte von der Originalsite herunter, sondern rufen auch ihre Tasks vom zentralen Server per HTTP ab. Mit der Bibliothek »LIB_http« lässt sich das recht einfach bewerkstelligen. Der Code in Listing 1 zeigt ein Beispiel.

Listing 1

Download einer Webseite

 

Ist eine Website heruntergeladen, geht es darum, die wichtigen Informationen aus der Suppe von HTML-Code und unwichtigem Text herauszufiltern. Bei der Kommunikation zwischen Harvester und Server habe ich dafür ein XML-Format verwendet, wie es in Listing 2 zu sehen ist.

Listing 2

Task für Harvester

 

In PHP gibt es eine ganze Reihe von Möglicheiten, XML-Dokumente zu parsen. Besonders einfach geht es aber mit der Bibliothek »LIB_PARSE« , die in Listing 3 verwendet wird, um die Informationen aus Listing 2 zu extrahieren.

Listing 3

XML parsen

 

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019