Hackse
0
Hallo,
ich habe in meiner Vergangenheit lokal Bufferoverflows entwickelt, konnte somit auf meiner eigenen Linux-Maschine Root-Rechte erlangen (insofern das SUID-Bit gesetzt war) und bekam somit eine Root-Shell.
Die Funktionsweise ist klar, ein schwaches Programm bekommt über einen String den Shellcode ?injiziert? und der Shellcode hat somit die Rechte des ?infizierten? Programms.
Der nächste Schritt wäre es so etwas über ein Netzwerk zu versuchen, nur wie?
O.k., ich schreibe einen kleinen Root-Daemon, der über einen Port über TCP Daten annimmt und bewusst keinen Range-Check ausführt und somit exploitable ist. Ich connecte mich nun von einem anderen Rechner zu diesem Daemon via TCP und sende ihm nun das Payload. Gut, nun ist der schwache Daemon zwar exploitet und führt bei sich lokal die Root-Shell aus, doch wie komme ich denn da über das Netzwerk ran? Das Ausnutzen von Sicherheitslücken meines Daemons über das Netzwerk ist nicht das Problem, ich kann über das Netzwerk einmalig beliebigen Code injizieren und ausführen, doch irgendwie bringt mich das methodisch nicht weiter. Sobald die injizierte Root-Shell ausgeführt wird, würde die TCP-Verbindung abbrechen und mein Payload war umsonst, denn ich bin ja nicht lokal am Rechner, sondern auf der anderen Seite des Netzwerks. Ich habe nun einen kleinen Dropper geschrieben, der über ein Netzwerk Befehle über einem bestimmten Port annimmt und diese Befehle lokal ausführt.
Was mir als Letztes fehlt ist jene Fähigkeit, die viele Trojaner und Würmer haben:
Ich müsste es schaffen über die bereits ausgenutzte Sicherheitslücke meinen Dropper auf dem Fremdrechner über das Netzwerk zu platzieren und dort auszuführen. Ich habe keine Ahnung wie meine Payload aussehen muss, damit sie meinen Dropper hinter sich herzieht, auf den exploited Host als Datei packt und dort lokal ausführt.
Was ist die gängige Methode von Exploits den Dropper auf dem exploited Host zu übertragen und auszuführen? ssh-Verbindung im Payload zum ?Angreifer? ausführen, Dropper nachladen via scp, ..., was am sinnvollsten tun?
Greetz
Hackse
ich habe in meiner Vergangenheit lokal Bufferoverflows entwickelt, konnte somit auf meiner eigenen Linux-Maschine Root-Rechte erlangen (insofern das SUID-Bit gesetzt war) und bekam somit eine Root-Shell.
Die Funktionsweise ist klar, ein schwaches Programm bekommt über einen String den Shellcode ?injiziert? und der Shellcode hat somit die Rechte des ?infizierten? Programms.
Der nächste Schritt wäre es so etwas über ein Netzwerk zu versuchen, nur wie?
O.k., ich schreibe einen kleinen Root-Daemon, der über einen Port über TCP Daten annimmt und bewusst keinen Range-Check ausführt und somit exploitable ist. Ich connecte mich nun von einem anderen Rechner zu diesem Daemon via TCP und sende ihm nun das Payload. Gut, nun ist der schwache Daemon zwar exploitet und führt bei sich lokal die Root-Shell aus, doch wie komme ich denn da über das Netzwerk ran? Das Ausnutzen von Sicherheitslücken meines Daemons über das Netzwerk ist nicht das Problem, ich kann über das Netzwerk einmalig beliebigen Code injizieren und ausführen, doch irgendwie bringt mich das methodisch nicht weiter. Sobald die injizierte Root-Shell ausgeführt wird, würde die TCP-Verbindung abbrechen und mein Payload war umsonst, denn ich bin ja nicht lokal am Rechner, sondern auf der anderen Seite des Netzwerks. Ich habe nun einen kleinen Dropper geschrieben, der über ein Netzwerk Befehle über einem bestimmten Port annimmt und diese Befehle lokal ausführt.
Was mir als Letztes fehlt ist jene Fähigkeit, die viele Trojaner und Würmer haben:
Ich müsste es schaffen über die bereits ausgenutzte Sicherheitslücke meinen Dropper auf dem Fremdrechner über das Netzwerk zu platzieren und dort auszuführen. Ich habe keine Ahnung wie meine Payload aussehen muss, damit sie meinen Dropper hinter sich herzieht, auf den exploited Host als Datei packt und dort lokal ausführt.
Was ist die gängige Methode von Exploits den Dropper auf dem exploited Host zu übertragen und auszuführen? ssh-Verbindung im Payload zum ?Angreifer? ausführen, Dropper nachladen via scp, ..., was am sinnvollsten tun?
Greetz
Hackse