Option zur Verwendung der Kryptowährungs-Blockchain als Medium zum Übertragen von Befehlen für Botnet-Elemente

Ich möchte die Idee entwickeln, die in dem Artikel „Folgen Sie dem Geld: Wie die RTM-Gruppe begann, die Adressen von C & C-Servern in einer Krypto-Brieftasche zu verstecken“ entwickelt wurde , in dem sie in die Anzahl der Satoshi gepackt wurden, die für zwei Transaktionen an einer bestimmten Krypto-Adresse aufgeführt sind. Die Malware, die die Übertragungsdaten vom Blockchain-Browser an eine solche Adresse anforderte, wies die IP des neuen C & C-Servers durch einfache Manipulationen zu.

Wir werden die kriminellen Absichten dieser Gruppe auslassen und verurteilen und uns genau mit den Prinzipien und dem Prozess der Übertragung von Befehlen an Elemente des Botnetzes (EBS) befassen.

IMHO hat diese Methode bestimmte Nachteile - die Bandbreite dieser Methode (in Bezug auf die Informationsmenge pro Übertragung) ist gering, und jeder, der eine solche Krypto-Adresse kennt, kann eine bestimmte Menge an sie senden und das Botnetz synchronisieren, wodurch es gezwungen wird, sich an einen „Vertrauenswürdigen“ zu wenden »Für sie zum Server.

Versteckte EBS-Befehle können jedoch nicht an eine separate Adresse gesendet werden, sondern von einer separaten Adresse A, der sie von vornherein als vertrauenswürdig eingestuft wurden. In diesem Fall kann niemand (außer einer Person, die einen privaten Schlüssel besitzt) eine solche Operation ausführen.

Der Befehlssatz kann erweitert werden, indem die Beträge an die vom Botnetzadministrator generierten Adressen gesendet werden, in deren Namen die erforderlichen Steuerinformationen verschlüsselt / verschlüsselt werden.

In diesem Fall wird ein Befehl von bis zu 20 Bytes (Buchstaben, Zahlen, Sonderzeichen) (Text in Hex) in Hex und dann in eine gültige Krypto-Adresse B konvertiert. In diesem Fall kann der Befehl selbst codiert / verschlüsselt werden.

Lassen Sie mich Ihnen ein Fantasy-Beispiel geben. Aus Gründen der Klarheit (PoC) habe ich eine Reihe verfügbarer Onlinedienste verwendet.

1. Von einer vertrauenswürdigen Adresse A wird ein bestimmter Betrag an die generierte gültige Adresse B übertragen.

Beispiel für die Generierung von Adresse B: Es ist erforderlich, Informationen über den Server 82.192.95.175 an den EBS zu senden, von dem aus der Aktualisierungsbefehl vom Modulserver Nr. 68, die Aktivierungs- / Deaktivierungszeit des Moduls sowie der Verschlüsselungsschlüssel (oder die Adresse des zusätzlichen Blockchain-Browsers, der Ausführungsbefehl) empfangen werden können Spätestens nach dem Übertragungsdatum eine neue vertrauenswürdige Krypto-Adresse, ein neuer Schlüssel usw. usw. (der Schlüssel kann in den Benutzeragenten eingenäht und nur übertragen werden, wenn eine Änderung erforderlich ist, wodurch 7 Byte des Befehlsfelds eingespart werden).

Es ist möglich, IP auf hundert Arten zu konvertieren, z. B. 082.192.095.175> 08.21.92.09.51.75 + 32 in jede Nummer (vermeiden Sie unlesbare ASCII-Zeichen).

Gesamt 40.53.124.41.83.107 = (5 |) Sk in ASCII darstellen (6 Bytes);
Team 68 = D;

Die Modulaktivierungszeit beträgt 601234 = in der Unix-Zeit , in der die führende Ziffer 1 redundant ist, werden wir sie nicht übertragen (standardmäßig, da eine Änderung auf 2 erst 2033 erfolgt), die unteren drei Ziffern sind ebenfalls standardmäßig 000, weil . egal, es sind + - 15 Minuten.

Aktivierungszeit - 1601234000 = 27. September 2019 13.13.20 GMT

Als nächstes vier Ziffern, bis zu welcher Zeit das Modul ausgeführt werden soll - 0365 (Tage) ab der Aktivierungszeit.

Das ist 6012340365 = 01665D088Dh = AAHpKn in ASCII. Angenommen, der vorherige Schlüssel war Key0001.

Insgesamt (5 |) SkDAAHpKnKey0002 unter Verwendung von RC4 und Key0001 ergibt in hex: DD F6 B8 16 2A B6 71 97 0F 9F A2 68 79 11 8C B6 31 DA FE 43.

Wir konvertieren diese Hashtoadresse in eine alte BTC- Adresse (es ist möglich, die Adressen anderer Kryptowährungen zu streichen, ltc, Dogecoin usw., es spielt keine Rolle, die Algorithmen zum Generieren von Krypto-Adressen sind offen, die Übertragung wird billiger und schneller).

Wir erhalten die Adresse B (Legacy) - 1MEdtjmGtqaGPaoYAQn43dkZxiSrSD8gmD.
(Ich erinnere Sie daran, dass davor eine „1“ hinzugefügt wird - ein Bytezeichen am Ende - 4 Bytes steuern).

Diese Ressource ermöglicht es, den schrittweisen Konvertierungsprozess aus erster Hand zu sehen (fügen Sie DDF6 ... in Zeile 3 ein (RIPEMD-160 Hash of 2)).



Um sich jedoch nicht von den Adressen des bereits üblichen Segwit-Formats abzuheben, präsentieren wir unsere Zeile als (siehe hier ).



Adresse B (segwit) - bc1qmhmts932kecewrul5f58jyvvkcca4ljrrgmpcd

2. Wir senden eine Übertragung von mehreren hunderttausend Satoshi von vertrauenswürdigem A an diese Adresse. Der Überweisungsbetrag kann auch Informationen enthalten (z. B. zusätzliche Überprüfung auf vereinbarter Basis, ein Befehlssymbol für die bedingungslose Zerstörung / vorübergehende Abschaltung des Botnetzes, ohne dass der in der Adresse übertragene Befehl gelesen werden muss usw.).
Ich werde besonders darauf achten, dass beim Senden berücksichtigt werden muss, dass die Lieferadresse mit der Lieferadresse übereinstimmen muss, oder dass die E-Mail-Adresse für die Lieferung als neue vertrauenswürdige Adresse aufgezeichnet wird.
Eine Transaktion wird im Durchschnitt mehrere Minuten lang bestätigt (vorbehaltlich der Zahlung eines ausreichenden Provisionsbetrags, der je nach Netzwerklast schwankt).

Die Kosten für die Überweisung eines Betrags von 1000 Satoshi betragen 7 Rubel. (plus Provision von 2-3 Rubel). Ich wiederhole, dass es mit anderen Kryptowährungen zehn- bis hundertmal schneller und billiger sein kann.

3. Von der Seite des EBS gibt es eine regelmäßige Übersicht über Blockchain-Browser (nach API) aus der verfügbaren Liste (Browser werden in einem breiten Sortiment dargestellt) über die Übertragung von A.
Sobald festgestellt wird, dass eine neue Transaktion mit A (und deren Bestätigung) gesendet wurde, werden die Informationen in der Empfängeradresse, an die die Übertragung vorgenommen wurde, durch den empfangenen Schlüssel entschlüsselt (entschlüsselt) und zur Ausführung akzeptiert.

Angenommen, die vertrauenswürdige Adresse lautet bc1qsj0gm0r2c3hzq9yzfewl34yk2r760hy5za4x3q (Segwit-Format).
An dieser Adresse wurde die letzte ausgehende Transaktion (ca. ist nicht die letzte, sondern diese ) an zwei Adressen übergeben - bc1qmhmts932kecewrul5f58jyvvkcca4ljrrgmpcd, und die Änderung war dieselbe wie die Sendeadresse.
Der überwiesene Betrag - 666 Satoshi - wir entscheiden, dass dies ein bedingter Befehl zum Durchführen der Dekodierung ist.



Dekodieren Sie unsere Adresse zurück in DDF6 ....
In das Formular (5 |) SkD34 ,, +! Key0002 konvertieren und mit Key0001 entschlüsseln (der Schlüssel ändert sich in Key0002).

Laden Sie das Modul vom Server herunter (der Zugriff auf den Server kann mit demselben Schlüssel implementiert werden) und warten Sie auf das Startdatum des Moduls.

Ich stelle fest, dass mindestens mehrere Browser verwendet werden müssen (diese können Anforderungen aus einigen Ländern trennen oder einschränken, z. B. bitflyer.jp , die aus dem Russischen stammen und vom japanischen IP ausgehen).


Die empfangenen Informationen können mindestens eins zu zwei überprüft werden. Die Auswahl an Browsern ist großartig, nur in der Liste der Electrum-Typen gibt es mehr als ein Dutzend - blockchair.com, smartbit.com.au, bitupper.com, chain.so und viele andere. andere



Bitte beachten Sie, dass nicht alle Browser das Segwit-Format unterstützen. Daher müssen Sie einen Mittelweg wählen und die vertrauenswürdige Adresse des alten oder neuen Formats verwenden.

Ein Beispiel für das Senden von einer vertrauenswürdigen Adresse im alten Format 186A8D7vdAHpFWdSAFHzZGfi44pPcwtZNc an die generierte Legacy-Adresse in Raw



und Segwit-Adresse



Die Verwendung verschiedener Blockchain-Browser unterstreicht deren Vielfalt.
Ich erinnere mich, dass eine versteckte Nachricht in einer Adresse einer Transaktion, die gefälscht werden soll, damit sie bestätigt wurde, per Definition unmöglich ist.

Algorithmusvorteile


  1. Es gibt keinen C2-Server, Anrufe gehen an Blockchain-Browser.
  2. Befehle für EBS sind unbedingt vertrauenswürdig.
  3. Das Medium zum Senden von Befehlen ist die Blockchain, mit der das Senden / Senden von Befehlen nicht blockiert werden kann.
  4. Blockchain ist ein äußerst stabiles System (dies gilt nicht für die Volatilität von Kryptowährungen).
  5. Niedrige Kosten für die Bereitstellung von Arbeit.
  6. Einfache Algorithmusimplementierung (Open Source Daten und Code).
  7. Sie müssen keine Transaktionen generieren oder Blockchain herunterladen.

Algorithmusfunktionen


  1. Simplex-Kommunikation.
  2. Abhängigkeit von der Stabilität der Browser.
  3. Bestimmte (wenn auch minimale) finanzielle Kosten.

Ich glaube, einige der hier genannten Punkte sind für Experten für Informationssicherheit nützlich.

Es wäre interessant, neben Beobachtern auch die Stabilität des Botnetzes zu erhöhen, um die Fähigkeiten von Vollknoten oder Knoten gängiger Geldbörsen wie Elektrum zu nutzen und die Duplexkommunikation zu organisieren, indem die erforderlichen Transaktionen auf der Seite des elektronischen Bankensystems generiert werden. Ich wäre dankbar für Gedanken zu diesem Thema sowie für vernünftige Kritik und Vorschläge.

Source: https://habr.com/ru/post/de466609/


All Articles