The Art of Patching...
The Art of Patching -- Ein neuer Trend?
***************************************
Ich konnte seit längerer Zeit zum ersten Mal wieder einen kurzen Abstecher in die mir noch halbwegs vertraute VX Szene unternehmen. Eigentlich erwartete ich, dass sich die Diskussion dort vor allem um Optix Lite Firewall Bypass und ähnliche auf Tooleaky basierende Konzepte dreht. Letztlich habe ich dann aber etwas viel Interessanteres und wohl auch Bedrohlicheres entdeckt... das "Patchen"
-- Hintergrund --
Bislang hatten selbst erfahrene Remotecontroller (Anwender von Trojanern) erhebliche Schwierigkeiten, den Trojanerserver vor guten AV Scannern (insbesondere McAfee und KAV sind in der Szene "gefürchtet") zu verbergen. Die wenigen noch existenten .exe Packer/Crypter Kombinationen, die sowohl KAV als auch McAfee täuschen, wurden als absolute Geheimtips gehandelt. Inzwischen werden aber zunehmend sog. "gepatchte" Server (entgeltlich oder unentgeltlich) angeboten. Nach meiner Überzeugung wird es nur noch kurze Zeit dauern, bis selbst weniger erfahrene Remotecontroller die Technik des Patchens beherrschen und unerkennbare Trojaner-Mutationen herstellen können. Da die Verbreitung solcher gepatchten Trojaner voraussichtlich nicht nur über die allseits bekannten Trojaner-Websites, sondern zunehmend auch "unter der Hand an Freunde und Bekannte" erfolgen wird, dürften die AV Hersteller Schwierigkeiten bekommen, alle gepatchten Server zeitnah in ihre Signaturdatenbanken aufzunehmen.
-- Was ist Patchen? --
Durch das Patchen wird ein Trojanerserver so verändert, dass ihn der AV Scanner nicht mehr erkennt. Dazu wird zunächst die Signatur ermittelt, die der AV Scanner zur Erkennung benutzt. Anschliessend wird der in der Serverdatei enthaltene Hexcode, der der Signatur zugrunde liegt, geringfügig verändert. Dies geschieht etwa dadurch, dass die im Trojanerserver vorhandenen Assemblerbefehle durch synonyme Anweisungen ersetzt werden. Das Ganze ist wesentlich leichter, als es sich zunächst anhören mag. Besonders unangenehm: Von der Technik des Patchens sollten anders als beim Crypten & Packen nicht nur sog. Filescanner, sondern auch solche AV Scanner betroffen sein, die den laufenden Trojaner im Arbeitsspeicher zu erkennen versuchen (z.B.: Trojanhunter oder TDS-3).
Nachfolgend werde ich das oben Gesagte anhand eines Beispiels verdeutlichen, dabei jedoch nicht so sehr ins Detail gehen, dass eine Anleitung zum Patchen daraus wird. (Deshalb bleiben meine Formulierungen teilweise etwas vage. Zu Testzwecken wurde jedoch ein Optix Lite 0.4n Server erfolgreich gepatcht und gestartet.)
-- Wie läuft das Patchen ab? --
Es gibt bereits einige Tools, die einen Trojanerserver automatisch mit den Signaturen eines Virenscanners vergleichen können und auf diese Weise die benötigten Informationen zum Patchen offenlegen. Wenn man beispielsweise den Trojaner Optix Lite Version 0.4 mit der Kaspersky Signaturdatenbank vergleicht, ergibt sich folgendes Ergebnis:
________________________________________________________________
Wait Please ... Loading *.AVC files ...
backdoor.avc - Found 4936 valid signature(s) from 5397 records
daily.avc - Found 93 valid signature(s) from 156 records
eicar.avc - Found 2 valid signature(s) from 9 records
macro.avc - Found 105 valid signature(s) from 4744 records
malware.avc - Found 1408 valid signature(s) from 1588 records
script.avc - Found 265 valid signature(s) from 1841 records
trojan.avc - Found 5735 valid signature(s) from 6491 records
avp0208.avc - Found 24132 valid signature(s) from 28301 records
up020809.avc - Found 183 valid signature(s) from 255 records
Total valid signatures found: 36859
Checking files...
server.exe infected: Backdoor.Optix.04.d
Signature 1 found:
Offset: 45633 ( D851h)
Length: 7 ( 7h)
Checksum: (444198B8h)
Signature 2 found:
Offset: 51556 ( D604h)
Length: 255 ( FFh)
Checksum: (E1D3CE3Fh)
________________________________________________________________
Sucht man sich nun mit einem Hexeditor die entsprechende Stelle im Trojanerserver heraus, hat man die von KAV verwendeten Signaturen gefunden. Im Beispiel lautet die erste Signatur "6A00E33464F4FF". (Wird dieser String geringfuegig verändert, erkennt KAV den Server nicht mehr. Offenbar müssen bei KAV beide Signaturen 100% mit dem Server übereinstimmen, damit ein Alarm ausgelöst wird.)
Anschliessend wird der Hexcode disassembliert. Es stellt sich heraus, dass die Signatur folgende Befehle enthaelt:
push 00000000
call 0040428A
Es gilt nun diesen Code in beliebiger Weise zu verändern, ohne dabei die Funktion des Servers zu zerstören. Beispielsweise kann man den Call an eine andere Stelle umleiten und anschliessend an das ursprüngliche Ziel des Calls springen. Wie dies genau gemacht wird und welche Tools man dazu benutzen kann, möchte ich aus den o.g. Gründen hier nicht näher erläutern. Es ist aber im Prinzip sehr einfach.
Im Ergebnis funktioniert der gepatchte Server genau wie vorher, wird aber nicht mehr erkannt, da sich die Signatur verändert hat. (Edited: Um die Nachahmung zu erschweren, wurden die o.g. Zahlen ein wenig verfälscht.)
-- Konsequenzen? --
Ich denke, dass Trend des Patchens relativ ernst zu nehmen ist und den Nutzen von AV/Trojanerscannern ernsthaft in Frage stellt. Ich vermute, dass dem Patchen in nicht allzu ferner Zeit die gleiche Bedeutung zukommen wird, wie sie bislang dem Verwenden von .exe Packern und Cryptern zukam.
Das Problem des Packens und Cryptens von Trojanerservern ist dadurch weitgehend gelöst worden, dass gute AV Scanner inzwischen fast alle Packer und Crypter durchleuten können.
Um auch dem Patchen Paroli bieten zu können, müssten die AV Hersteller zunächst das Auslesen ihrer Signaturen erheblich erschweren. Insoweit sind wohl nicht nur Kaspersky erhebliche Versäumnisse vorzuwerfen. Letztlich lässt sich ein Auslesen der Signaturen aber wohl wirksam nicht verhindern (nicht mal mit einer SoftICE Protection). Ohnehin sind inzwischen bereits viele Signaturen bekannt. Es müssten also alle Signaturen neu erstellt werden...
Eine wirkliche Abhilfe gegen das Patchen kann meines Erachtens nur durch eine Abkehr vom signaturbasierten Scannen erfolgen. Die AV Hersteller müssten insoweit versuchen, eine bessere Heuristik zu entwickeln.
Auf Eure Meinung bin ich gespannt.
Gruss
Nautilus
The Art of Patching -- Ein neuer Trend?
***************************************
Ich konnte seit längerer Zeit zum ersten Mal wieder einen kurzen Abstecher in die mir noch halbwegs vertraute VX Szene unternehmen. Eigentlich erwartete ich, dass sich die Diskussion dort vor allem um Optix Lite Firewall Bypass und ähnliche auf Tooleaky basierende Konzepte dreht. Letztlich habe ich dann aber etwas viel Interessanteres und wohl auch Bedrohlicheres entdeckt... das "Patchen"
-- Hintergrund --
Bislang hatten selbst erfahrene Remotecontroller (Anwender von Trojanern) erhebliche Schwierigkeiten, den Trojanerserver vor guten AV Scannern (insbesondere McAfee und KAV sind in der Szene "gefürchtet") zu verbergen. Die wenigen noch existenten .exe Packer/Crypter Kombinationen, die sowohl KAV als auch McAfee täuschen, wurden als absolute Geheimtips gehandelt. Inzwischen werden aber zunehmend sog. "gepatchte" Server (entgeltlich oder unentgeltlich) angeboten. Nach meiner Überzeugung wird es nur noch kurze Zeit dauern, bis selbst weniger erfahrene Remotecontroller die Technik des Patchens beherrschen und unerkennbare Trojaner-Mutationen herstellen können. Da die Verbreitung solcher gepatchten Trojaner voraussichtlich nicht nur über die allseits bekannten Trojaner-Websites, sondern zunehmend auch "unter der Hand an Freunde und Bekannte" erfolgen wird, dürften die AV Hersteller Schwierigkeiten bekommen, alle gepatchten Server zeitnah in ihre Signaturdatenbanken aufzunehmen.
-- Was ist Patchen? --
Durch das Patchen wird ein Trojanerserver so verändert, dass ihn der AV Scanner nicht mehr erkennt. Dazu wird zunächst die Signatur ermittelt, die der AV Scanner zur Erkennung benutzt. Anschliessend wird der in der Serverdatei enthaltene Hexcode, der der Signatur zugrunde liegt, geringfügig verändert. Dies geschieht etwa dadurch, dass die im Trojanerserver vorhandenen Assemblerbefehle durch synonyme Anweisungen ersetzt werden. Das Ganze ist wesentlich leichter, als es sich zunächst anhören mag. Besonders unangenehm: Von der Technik des Patchens sollten anders als beim Crypten & Packen nicht nur sog. Filescanner, sondern auch solche AV Scanner betroffen sein, die den laufenden Trojaner im Arbeitsspeicher zu erkennen versuchen (z.B.: Trojanhunter oder TDS-3).
Nachfolgend werde ich das oben Gesagte anhand eines Beispiels verdeutlichen, dabei jedoch nicht so sehr ins Detail gehen, dass eine Anleitung zum Patchen daraus wird. (Deshalb bleiben meine Formulierungen teilweise etwas vage. Zu Testzwecken wurde jedoch ein Optix Lite 0.4n Server erfolgreich gepatcht und gestartet.)
-- Wie läuft das Patchen ab? --
Es gibt bereits einige Tools, die einen Trojanerserver automatisch mit den Signaturen eines Virenscanners vergleichen können und auf diese Weise die benötigten Informationen zum Patchen offenlegen. Wenn man beispielsweise den Trojaner Optix Lite Version 0.4 mit der Kaspersky Signaturdatenbank vergleicht, ergibt sich folgendes Ergebnis:
________________________________________________________________
Wait Please ... Loading *.AVC files ...
backdoor.avc - Found 4936 valid signature(s) from 5397 records
daily.avc - Found 93 valid signature(s) from 156 records
eicar.avc - Found 2 valid signature(s) from 9 records
macro.avc - Found 105 valid signature(s) from 4744 records
malware.avc - Found 1408 valid signature(s) from 1588 records
script.avc - Found 265 valid signature(s) from 1841 records
trojan.avc - Found 5735 valid signature(s) from 6491 records
avp0208.avc - Found 24132 valid signature(s) from 28301 records
up020809.avc - Found 183 valid signature(s) from 255 records
Total valid signatures found: 36859
Checking files...
server.exe infected: Backdoor.Optix.04.d
Signature 1 found:
Offset: 45633 ( D851h)
Length: 7 ( 7h)
Checksum: (444198B8h)
Signature 2 found:
Offset: 51556 ( D604h)
Length: 255 ( FFh)
Checksum: (E1D3CE3Fh)
________________________________________________________________
Sucht man sich nun mit einem Hexeditor die entsprechende Stelle im Trojanerserver heraus, hat man die von KAV verwendeten Signaturen gefunden. Im Beispiel lautet die erste Signatur "6A00E33464F4FF". (Wird dieser String geringfuegig verändert, erkennt KAV den Server nicht mehr. Offenbar müssen bei KAV beide Signaturen 100% mit dem Server übereinstimmen, damit ein Alarm ausgelöst wird.)
Anschliessend wird der Hexcode disassembliert. Es stellt sich heraus, dass die Signatur folgende Befehle enthaelt:
push 00000000
call 0040428A
Es gilt nun diesen Code in beliebiger Weise zu verändern, ohne dabei die Funktion des Servers zu zerstören. Beispielsweise kann man den Call an eine andere Stelle umleiten und anschliessend an das ursprüngliche Ziel des Calls springen. Wie dies genau gemacht wird und welche Tools man dazu benutzen kann, möchte ich aus den o.g. Gründen hier nicht näher erläutern. Es ist aber im Prinzip sehr einfach.
Im Ergebnis funktioniert der gepatchte Server genau wie vorher, wird aber nicht mehr erkannt, da sich die Signatur verändert hat. (Edited: Um die Nachahmung zu erschweren, wurden die o.g. Zahlen ein wenig verfälscht.)
-- Konsequenzen? --
Ich denke, dass Trend des Patchens relativ ernst zu nehmen ist und den Nutzen von AV/Trojanerscannern ernsthaft in Frage stellt. Ich vermute, dass dem Patchen in nicht allzu ferner Zeit die gleiche Bedeutung zukommen wird, wie sie bislang dem Verwenden von .exe Packern und Cryptern zukam.
Das Problem des Packens und Cryptens von Trojanerservern ist dadurch weitgehend gelöst worden, dass gute AV Scanner inzwischen fast alle Packer und Crypter durchleuten können.
Um auch dem Patchen Paroli bieten zu können, müssten die AV Hersteller zunächst das Auslesen ihrer Signaturen erheblich erschweren. Insoweit sind wohl nicht nur Kaspersky erhebliche Versäumnisse vorzuwerfen. Letztlich lässt sich ein Auslesen der Signaturen aber wohl wirksam nicht verhindern (nicht mal mit einer SoftICE Protection). Ohnehin sind inzwischen bereits viele Signaturen bekannt. Es müssten also alle Signaturen neu erstellt werden...
Eine wirkliche Abhilfe gegen das Patchen kann meines Erachtens nur durch eine Abkehr vom signaturbasierten Scannen erfolgen. Die AV Hersteller müssten insoweit versuchen, eine bessere Heuristik zu entwickeln.
Auf Eure Meinung bin ich gespannt.
Gruss
Nautilus
Zuletzt bearbeitet: