Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Fortgeschrittener
    Registriert seit
    18.10.2011
    Beiträge
    40

    Standard Shellcode lesen/schreiben

    Ich habe in letzter Zeit einige Quellcodes studiert. Einige von ihnen haben Shellcode inkludiert. Jetzt würde ich gern in Erfahrung bringen, wie Shellcode geschrieben wird und wie man ihn lesen kann. Hat jemand gute Quellen oder schon gute Erfahrungen damit?

  2. #2
    Wiederbelebt Avatar von Cystasy
    Registriert seit
    08.05.2015
    Beiträge
    685

    Standard AW: Shellcode lesen/schreiben

    Zitat Zitat von ashcr@ck Beitrag anzeigen
    Ich habe in letzter Zeit einige Quellcodes studiert. Einige von ihnen haben Shellcode inkludiert. Jetzt würde ich gern in Erfahrung bringen, wie Shellcode geschrieben wird und wie man ihn lesen kann. Hat jemand gute Quellen oder schon gute Erfahrungen damit?
    Ist Geschmackssache, aber Grundlegend kann man sagen das mans z.b so machen kann:

    1) C/C++ Compilieren
    2) Entsprechend Compilierte Binary anschaun mit Hexeditor / Debugger
    3) Bytecodes rauskopieren (nur die funktionen / befehle, natürlich nicht den binary header usw)
    4) Bytecode umschreiben ins /x00/x00/x00 Format^^

    In anderen Worten - Shellcode is einfach ASM Code den man in Hex umgewandelt hat und dann in Form von /x00/x00/x00 Format aufgeschrieben hat.
    Mehr ises wirklich nicht - is keine Magie oder ^-^

    Manche schreiben auch direkt ASM Code und wandeln das in Hex / Shell/Byte/Opcodes um.. ist Geschmackssache wie man das macht.
    Zumindestens hab ichs immer so gemacht, und kenne es von anderen so.

    grüße
    Geändert von Cystasy (06.01.2017 um 00:21 Uhr)

  3. #3
    Fortgeschrittener
    Registriert seit
    18.12.2010
    Beiträge
    33

    Standard AW: Shellcode lesen/schreiben

    Ich hatte damals diese Lib benutzt, kp welche Sprache du benutzt, aber ich denke den Wrapper kann man einfach ummünzen bzw. gibts schon Implementierungen dafür. https://github.com/ZenLulz/Fasm.NET

    Edit: Um Shellcode erzeugen zu können habe ich NDISAM benutzt. Kann man einfach in sein Programm einbinden und sich den Shellcode dann in einer Textbox ausgeben lassen http://www.nasm.us/doc/nasmdoca.html
    Geändert von ChEeTaH182 (05.01.2017 um 15:05 Uhr)

  4. #4
    Fortgeschrittener
    Registriert seit
    18.10.2011
    Beiträge
    40

    Standard AW: Shellcode lesen/schreiben

    Ich hätte jetzt mit mehr Aufwand gerechnet. Umso besser, dass es wirklich nicht so kompliziert ist.
    Damit werde ich mich dann mal beschäftigen.

    Danke für die Erläuterungen.

  5. #5
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard AW: Shellcode lesen/schreiben

    Zitat Zitat von ashcr@ck Beitrag anzeigen
    Ich hätte jetzt mit mehr Aufwand gerechnet.
    Es wird i.Allg. auch aufwändiger ausfallen, da dein Compiler sich nicht bemüht dir positionsunabhängigen Code auszuspucken. Etwas in C schreiben, kompilieren, linken und dann aus dem fertigen Programm den Maschinencode der gewünschten Funktion rauszukopieren für gewöhnlich in allen relevanten Fällen etwas, was du nicht mit dem gewünschten Effekt ausführen können wirst. (Versteh mich nicht falsch; Die kopierten Befehle werden von der CPU natürlich verstanden, aber sagen einem beispielsweise zu einer Adresse zu springen, die in dem ursprünglichen Programm sinnvollen Code enthalten hätte, aber in deiner Shellcode-Anwendung nichts brauchbares beinhaltet.)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  6. #6
    Tron Avatar von gORDon_vdLg
    Registriert seit
    23.07.2007
    Beiträge
    801

    Standard AW: Shellcode lesen/schreiben

    Ich denke mal das müsste sich z.B. mit fasm ganz gut machen lassen. Wer Shellcode in einer Hochsprache schreiben will macht eh was verkehrt^^ Bei fasm kannst du die Ausgabe auf binär einstellen, habe es jetzt nicht direkt ausprobiert aber ließ dich mal rein, das wird das sein was du suchst.

  7. #7
    Wiederbelebt Avatar von Cystasy
    Registriert seit
    08.05.2015
    Beiträge
    685

    Standard AW: Shellcode lesen/schreiben

    Zitat Zitat von gORDon_vdLg Beitrag anzeigen
    Wer Shellcode in einer Hochsprache schreiben will macht eh was verkehrt^^
    Naja, damals habe ich das z.b mal gemacht und hatte auch andere Personen gesehen die das z.b unter Linux (Backtrack4) so machten.
    Es kommt natürlich auch drauf an was genau man dann später mal mit dem Shellcode machen möchte.. in wiefern das ganze dann
    Linux spezifisch aussieht weiß ich nicht - ich hatte es damals unter Windows gemacht gehabt.

    Ich weiß aber noch das man da noch "nachbessern" musste bei der Konvertierung
    Ist schon ein bisschen frickelarbeit, aber mit etwas Mühe ging das^^

    Wobei ich sagen muss das ich es größtenteils fürs Memory Hacking used hatte im Gamehacking Bereich.
    Beispielweise hatte ich eigene Funktionen & Programmabschnitte dann in den Metin2 Clienten reingepatcht
    die dann über nen entsprechenden Hook ausgeführt wurden den man in den Clienten reinwurschtelte.
    Wenn man das ganze für ein Exploit nutzt dürfte das ganze dann vllt etwas umfangreicher
    ausfallen als bei einem reinen Gamehack.

    Aber wollte ja ohnehin nur "Grob" erklären wie so die Vorgehensweise aussehen könnte
    Das beste vom Vorgehen her wäre ohnehin das ganze direkt in ASM zu schreiben und dann zu converten finde ich.
    Aber wer kann heutzutage so gut ASM das er da TCP Shells usw coden kann? Wohl die wenigsten (ich nich) ^^

    grüße
    Geändert von Cystasy (07.01.2017 um 01:06 Uhr)

  8. #8
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard AW: Shellcode lesen/schreiben

    Wenn man seine Zielapplikation genau kennt, dann kann man natürlich auch patchen und hat keine großen Schwierigkeiten. Wenn man aber erwartet, dass der geschriebene Code in einem unbekannten Programm an unbekannter Speicherposition ausgeführt wird, dann hat man schnell zusätzliche Schwierigkeiten. Allein schon eine Funktion aus einer DLL (ich bleibe mal gedanklich in der Windows-Welt, weil ich zu ignorant bin, um mich besser mit dem ELF-Format auszukennen) aufrufen ist, dann gar nicht mehr so einfach. (Das hängt damit zusammen, wie das Aufrufen Funktionen aus beim Linken eingebundenen DLLs funktioniert, siehe etwa hier.) Mit dem Problem hatte ich auch mal zu kämpfen -- siehe etwa PELoc.asm in diesem Thread.

    Btw: Ich habe auch schon Programme in ASM geschrieben und dann die relevanten Instruktionen mit OllyDbg rausgesucht und kopiert. Allerdings war mir dann auch vorher immer schon klar, dass der Code danach auch wo anders funktionieren würde, weil ich mir halt selbst aussuchen konnte, wie Funktionen aufgerufen wurden und ob meine Sprungadressen positionsunabhängig sind, oder nicht.

    Zitat Zitat von Cystasy Beitrag anzeigen
    Aber wer kann heutzutage so gut ASM das er da TCP Shells usw coden kann? Wohl die wenigsten (ich nich) ^^
    Ich könnte so etwas schon machen und würde mich so weit aus dem Fenster lehnen zu sagen, dass jemand, der das in C kann, auch in zwei Tagen genug ASM lernen kann, um das in ASM zu schreiben. Mit Assemblern wie MASM kann man (wenn man möchte) sogar halbwegs gediegen If- und Schleifenkonstrukte hinreiben und findet sich nach 200 Zeilen Code und zwei Monaten Zeitunterschied vielleicht sogar noch im eigenen Code zurecht, auch wenn man keine zusätzlichen hundert Zeilen Kommentare geschrieben hat.
    Geändert von blackberry (08.01.2017 um 00:02 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  9. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    SecurityFlaw (08.01.2017)

  10. #9
    Fortgeschrittener
    Registriert seit
    18.10.2011
    Beiträge
    40

    Standard AW: Shellcode lesen/schreiben

    Da ist ja doch eine kleine Diskussion entstanden.

    Die Problematik mit der Adressierung habe ich gar nicht bedacht. ISt natürlich richtig, dass diese angepasste werden muss für verschiedene Systeme. Ein bisschen ASM habe ich auch schonmal geschrieben. Damit werde ich mich dann mal wieder intensiver befassen.

    Es gibt doch noch sehr häufig Code in dem Queelcode zu finden ist, in den unterschiedlichsten Bereichen. Gibt es denn eine Möglichkeit diesen irgendwie zu "lesen" oder muss den dann reversen in ASM?

  11. #10
    Wiederbelebt Avatar von Cystasy
    Registriert seit
    08.05.2015
    Beiträge
    685

    Standard AW: Shellcode lesen/schreiben

    Zitat Zitat von ashcr@ck Beitrag anzeigen
    Es gibt doch noch sehr häufig Code in dem Queelcode zu finden ist, in den unterschiedlichsten Bereichen. Gibt es denn eine Möglichkeit diesen irgendwie zu "lesen" oder muss den dann reversen in ASM?

    Shellcode = ASM Anweisungen / Maschienencode


    Beispiel:

    Der ASM Befehl "NOP" (tut einfach garnichts) ist z.b der Hex Wert 90 ( sofern ich grad nicht Gehirntumor habe )
    In Shellcode wäre das dann z.b /x90/. Das kannst du 1 zu 1 übersetzen wenn du einen Shellcode hast.
    Die Schwierigkeit besteht dann eher darin, den ASM Code ansich zu verstehen (was er tut).

    Ich habe dir mal in Google eben als Beispiel ne Liste rausgesucht wo du dir anschauen kannst, welche ASM Befehle welche Opcodes haben:
    http://www.mathemainzel.info/files/x86asmref.html
    Da siehst du welche ASM Befehle welche Opcodes haben und kannst dann quasi wenn du dir die Mühe machen willst das ganze Manuell übersetzen.
    Da sollte es aber sicher Tools für geben die das automatisiert tun^^

    grüße
    Geändert von Cystasy (08.01.2017 um 16:33 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 05.08.2010, 19:42
  2. Excel Tabelle schreiben/lesen in VB.NET
    Von Karlito im Forum .NET Sprachen - Techniken
    Antworten: 0
    Letzter Beitrag: 19.07.2010, 12:36
  3. VB.NET - INI Datein Lesen & Schreiben
    Von hackerking im Forum Source Codes
    Antworten: 4
    Letzter Beitrag: 29.11.2008, 18:28
  4. VB.NET - INI Datein Lesen & Schreiben
    Von hackerking im Forum .NET Sprachen - Techniken
    Antworten: 4
    Letzter Beitrag: 29.11.2008, 18:28

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •