| (In)security allgemein Sicherheit, Anonymität im Netz. Schutz und Maßnahmen. Prävention und Konzepte. Sicherheitsarchitekturen allgemein und auf der Netzwerkebene. |
Diskussion: Shellcode per MemoryWrite in Programm injizieren im Forum (In)security allgemein, in der Kategorie Security Area; Guten Tag. Mein Anliegen ist folgendes: ich habe mir mal angeguckt wie man Shellcode unter Windows schreibt... Jetzt würde ich ...
![]() |
| | #1 (permalink) |
| Registriert seit: 25.12.09 ![]() Likes: 0 | Guten Tag. Mein Anliegen ist folgendes: ich habe mir mal angeguckt wie man Shellcode unter Windows schreibt... Jetzt würde ich gerne meinen Shellcode über die Funktionen VirtaulAllocEx, etc in ein Programm injizieren (so ähnlich wie bei der Dll-Injection) Ich hab auch schon nen bisschen was gecodet, aber leider befindet sich das Skript auf einem anderen Pc... Kann mir bitte jemand die herangehensweise schildern? ich habe probiert den Shellcode stumpf in den Speicher zu schreiben, aber das ging nicht^^ (wie schon zu erwarten war) Den Shellcode zu Integer zu konvertieren hab ich auch schon probiert(mit atoi)-.- mfg @night@ PS: Achja, ich benutze C++ mit dem GCC Geändert von @night@ (15.02.10 um 20:51 Uhr) |
| | |
| | #2 (permalink) |
| Registriert seit: 07.03.08 ![]() Likes: 0 | Einfachste Variante: Code: const char opc[]="your op code goes here";
main(){
int (*shell)();
shell=opc;
shell();
} |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 25.12.09 ![]() Likes: 0 | @90NOP Danke für die Antwort!!! Allerdings wollte ich fragen, ob es möglich ist und wenn wie, wie man den Shellcode in ein laufendes Programm schreiben kann. Natürlich läuft der Prozess auf meinem PC... Es geht mir darum ein Programm, so ähnlich wie bei der Dll-injection, meine Anweisungen ausführen zu lassen. Außerdem benutze ich Windows XP. mfg @night@ |
| | |
| | #4 (permalink) |
| Registriert seit: 07.03.08 ![]() Likes: 0 | Das oben gepostete war zum testen gedacht. Deine Frage ist mir nicht ganz verständlich. i.d.R. Hat man ja einen Exploit (hier eben ein Bufferoverflow) der dann deinen Code ausführt. Dein Zielprogramm verarbeitet irgendwelche äussere Eingaben, wenn diese unsauber eingelesen werden, es also zu einem Bufferoverflow kommen kann, kannst du dort deinen Shellcode reintricksen. Einfach gezeigt: Parameter a nimmt einen String von max 10 Zeichen entgegen. a = "1234567890" + Shellcode //du lieferst ihm die 10 Zeichen - und ab dann hast du einen Bufferoverflow - und dein SHellcode wird in den ausführbaren Memorybereich geschrieben. Suche nach Exploitmes, um das zu üben: exploitme #1 |
| | |
| | #5 (permalink) |
| Member of Honour ![]() Registriert seit: 05.03.08 ![]() ![]() ![]() ![]() ![]() Likes: 185 | 1. OpenProcess() um Handle auf den Zielprozess zu bekommen (mit Schreib- und den Rechten einen Thread zu starten) 2. VirtualAllocEx() Speicher im Zielprozess reservieren, wichtig, dass der reservierte Speicher ausfuehrbar ist 3. WriteProcessMemory() damit den Shellcode in den Zielprozess schreiben und 4. Mit CreateRemoteThread() den Code im Zielprozess ausfuehren |
| | |
| | #6 (permalink) | ||
| Themenstarter Registriert seit: 25.12.09 ![]() Likes: 0 | @xrayn Danke, genau das meine ich! Ich werde es gleich testen, aber warum willst du einen RemoteThread erstellen, wenn der Shellcode schon im Speicher ist? Zitat:
Den Rest hab ich schon ausprobiert. Dass heisst ich habe folgendes gemacht: Zitat:
![]() Aber wie soll ich den Shellcode danach ausführen? mit freundlichen grüssen @night@ Geändert von @night@ (20.02.10 um 17:49 Uhr) | ||
| | |
| | #7 (permalink) | |
| Member of Honour ![]() Registriert seit: 05.03.08 ![]() ![]() ![]() ![]() ![]() Likes: 185 | Zitat:
Ich empfehle dir einfach mal die Dokumentation der MSDN zu lesen, dort steht alles was man braucht. [1] SetThreadContext() - http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx [2] CreateRemoteThread() - http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx | |
| | |
| | #8 (permalink) |
| Themenstarter Registriert seit: 25.12.09 ![]() Likes: 0 | €dit: srry, ich bin doofff ich hab den speicherbereich freigegeben bevor ich den Shellcode ausgeführt hatte... Ihr seid spitze Endlich konnte ich meine Idee mit eurer Hilfe umsetzenmfg @night@ Geändert von @night@ (20.02.10 um 22:41 Uhr) |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |