Wie findet man Lücken für Exploits?

Dieses Thema im Forum "Sicherheit & Datenschutz" wurde erstellt von Mortuus, 2. April 2011 .

Schlagworte:
  1. 2. April 2011
    Guten Tag zusammen,
    mich interessiert das Thema wie man überhaupt Exploits findet. Da ich gerade erst anfange mich für das Thema zu erinnern habe ich davon praktisch gesehen keinerlei Ahnung und habe auch nicht vor auf der Suche nach irgendeinem zu gehen oder irgendwas in der Richtung in nächster Zeit zu tun.

    Mich interessiert aber wie man bei sowas überhaupt vorgeht: Nehmen wir z.B. mal das IPhone. Man kauft sich das Teil, wo gerade die erste Version erschienen ist und hält es nun in der Hand. Das System ist komplett geschlossen und man kann im Prinzip nicht viel machen außer das was der Hersteller will. Wie kommt man jetzt dazu überhaupt einen Exploit zu finden? Ich habe doch auch keine Analyse Tools mit denen ich irgendwie herausfinden könnte, was da im Inneren vor sich geht, genauso keinen Quellcode den ich auf mögliche Fehler untersuchen könnte. Das ganze hat doch im Prinzip was mit Reverse Engineering zu tun oder? Aber mir fällt da keine Idee wie man vom Prinzip her da überhaupt rangeht. Ich mein ich kann die Spannung messen, was vorgeht bei bestimmten Vorgängen, aber da passiert soviel im Hintergrund das man da doch auf nichts schließen kann.

    Ich kanns nur nochmal betonen: Ich will nicht wissen, wie man XY hackt, sondern mir geht es viel mehr ums prinzipelle Vorgehen oder noch besser wäre wenn man es beispielhaft an einem Gerät erklärt, wie der Exploit entdeckt wurde bzw. wie man darauf überhaupt kam

    Vielen Dank.
     
  2. 3. April 2011
    AW: Wie findet man Lücken für Exploits?

    Generell ist es immer möglich ein Programm wieder in seinen Code zu zerlegen, zwar nicht immer orginal aber funktional. Also wären auch dort mögliche Lücken zu finden.
    Deshalb wird bei OpenSource viel schneller eine Lücke geschlossen als bei normaler Software.

    Hier findest du einige Artikel in denen Programme analysiert wurden: RR:Blog - Ollydbg
    RR:Blog - Sicherheit
     
  3. 3. April 2011
    AW: Wie findet man Lücken für Exploits?

    Interessierst du dich jetzt für Software Exploits allgemein oder für Konsolen/Hardware Exploits?

    Das letztere ist viel schwieriger und lässt sich kaum erlernen. Das können in der Regel nur solche Leute, die sich auch einen eigenen Computer zusammenlöten und dafür auch noch ein eigenes Betriebssystem schreiben. Wer sich dafür nicht schon als Kind begeistern konnte hat schlechte Karten.

    Stichwort "Analyse Tools":

    Auch wenn bald das iPhone 5 erscheint, das wichtigste "Analyse" Programm funktioniert damit schon: IDA: About
    Ohne ein Programm wie IDA wäre es wirklich echt schwer, weil man sich dann erst mal einen eigenen Disassembler programmieren müsste. IDA unterstützt von Haus aus schon sehr viele Prozessoren IDA: Supported Processors
     
  4. 3. April 2011
    AW: Wie findet man Lücken für Exploits?

    Vielen dank. Der Artikel mit dem CoD Trainer war/ist sehr interessant. Also Grundkenntnisse in Programmieren mit C und Assembler und etwas größere Kenntnisse in Java habe ich schon von daher verstehe ich schon das meiste.

    Was mich noch interessiert ist, wie sich das ganze für Systeme realisieren lässt außerhalb des PCs z.B. Smartphones wie IPhone oder Konsolen wie PS3,XBOX360 oder beim Gamecube, wo noch nichtmals Schnittstellen gibt bis auf eine LAN Buchse. Konnte man denn irgendwie ein Programm/Tool schreiben, womit man das IPhone irgendwie analysieren konnte oder hat man das Ding wirklich auseinander gebaut irgendwas gebastelt ?
     
  5. 3. April 2011
    AW: Wie findet man Lücken für Exploits?

    Auch dir vielen Dank. Hardware Exploits sind sicherlich wesentlich interessanter. Ist auch an für sich das Kernthema was mich daran interessiert. Ich werde mir das Programm mal genauer anschauen.

    P.S: An den Moderator der meine Beitrag freischalten muss: Tut mir leid, dass es jetzt 3 Posts sind wovon einer Unsinn ist, aber bei der "schnell Antwort" kam keine Meldung, dass es erst noch freigeschaltet werden muss, deswegen hatte ich einen zum Testen geschrieben. Der zweite kann also gelöscht werden und der 1 + 3 zusammengefasst. Nochmals Entschuldigung und ich bitte um Verständniss.
     
  6. 3. April 2011
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Wie findet man Lücken für Exploits?

    Hier wurde auch schon mal ein ähnlicher Fall besprochen, falls du dir das durchlesen willst:

    Wie findet man eine Sicherheitslücke im iPhone OS? - RR:Board

    Generell lässt sich sagen, dass man Exploits durch aufmerksames lesen von Code findet. Gute programmierer erkennen relativ schnell wo eine Lücke ist. Hängt aber auch stark von der Komplexität des Codes ab.
    Das größere Problem ist meistens an den Code zu kommen. Gerade bei Dingen wie dem iOS / iPhone wird das viel mit Reverse Engineering zutun haben. Wenn ich gerade nichts verwechsle hat geohot sogar mal am iPhone rum gelötet um an irgendwas ran zu kommen.
     
  7. 3. April 2011
    AW: Wie findet man Lücken für Exploits?

    Ich weiss nicht genau, wie es beim iPhone abgelaufen ist, da ich aber den allerersten Exploit irgendwo in Quelltextform habe, kann ich mal raten, wie man vorgeht. Um Dir ein bisschen Einsicht zu geben sollte es ja reichen

    1. Du musst irgendwie auf das Gerät rauf. Das Teil öffnen willst Du aber erstmal vermeiden, wenn es irgend anders möglich ist. Wie könnte das passieren? Na, das USB Kabel!

    2. Dafür gibt es ja das Software-Update über iTunes. Ohne grosse Probleme kann man sich die Firmware-Updates auch so besorgen und in Ruhe erstmal auf dem Rechner analysieren. So bekommt man schonmal einen Eindruck, was auf dem Gerät so abgeht.

    3. Dann schaut man sich an, wie das Update über USB abläuft. Man kann etwa den USB-Traffic abfangen und analysieren. Oder einfach herausfinden, dass der Update beim iPhone über DFU läuft, ein standardisiertes Protokoll zum Firmeware-Update.

    4. Jetzt kann man das nachbauen. Man kann auch einfach iTunes analysieren (z.B. mit IDA Pro, wurde ja schon genannt). So oder so findet man aber schnell raus, dass man einfach die DFU-API Calls von iTunes auch extern aufrufen kann.

    5. Das Ziel ist es jetzt, eigenen Code auf dem iPhone zum laufen zu bringen. Dafür schaut man sich an, was DFU alles so erlaubt, wie iTunes das normalerweise macht, und fängt an, vom "normalen" Ablauf abzuweichen. Manchmal klappt es, manchmal nicht.

    6. Wenn man Glück hat, bekommt man eigenen Code zum laufen. Aus der früheren Analyse der Firmware weiss man schon, was der eigene Code machen muss. Fertig

    Nachtag
    Die eigentliche Erkenntnis beim iPhone (damals, erste Generation) war, dass man eine beliebige RAM-Disk auf der Gerät laden durfte, die dann korrekt gebootet wird. Richtig flashen durfte man aber wohl nur signierte Firmware, darum konnte man nicht einfach was ändern. Also mini-System basteln, daraus RAM-Disk bereit machen, das Teil über die iTunes-Lib auf das Gerät übertragen und booten. Das mini-System ist nur im RAM, braucht daher nicht signiert sein, darf aber alles. Das mini-System macht dann nichts anderes, als das offizielle System, was schon auf dem Gerät ist, zu modifizieren.
     
  8. 4. April 2011
    AW: Wie findet man Lücken für Exploits?

    Vielen dank an euch für die guten Antworten.

    Habt ihr vielleicht ein Buchtipp, dass sich mit sowas beschäftigt? Hätte nämlich gerne was in der Hand zum lesen.
     
  9. 4. April 2011
    AW: Wie findet man Lücken für Exploits?

    Dafür gibt es keine Bücher.

    Wenn du ein Stück Hardware exploiten willst, musst du es auseinander bauen und du brauchst eben das technische Wissen dazu (was ich z.B. nicht hab^^).
    Hier mal interessant zu sehen wie die Arbeitsumgebung eines PS3 Hackers aussieht: Standalone Linux on PS3 Slim (27c3 demo update) - YouTube
    Die ganzen Kabel liegen da sicher nicht umsonst rum und die "neue" PS3 ist auch schon dreckig^^

    Oder das Video: YouTube

    Das was in meinem 1. Beitrag steht war kein Witz. Du musst dich dafür interessieren wie die Technik GENAU funktioniert, sonst kannst das vergessen.
     
  10. 4. April 2011
    AW: Wie findet man Lücken für Exploits?

    Hab ich auch nie behauptet ;-).
    Zum Thema Software Exploits hab ich aber schonmal von Forbidden Code gehört auch wenn das ganze irgendwie reißerisch aufgemacht ist soll der Inhalt ganz gut sein, nur leider kriegt man das Buch nirgendwo mehr, außer bei Amazon als Sammlerstück für das 6fache des Normalpreis
    Aber auch zur Technik wird es doch Bücher geben oder? Ich mein Grundlagen hab ich drauf würde ich mal behaupten, also ich weiß wie Gatter zusammengebaut sind und wie eine einfach CPU funktioniert. Was weiterführendes wäre aber nicht schlecht. Ich meine klar muss man sich vieles selbst beibringen/anlernen, aber nicht jeder wird auf seinem Weg "das Rad neu erfunden haben". ;-)
     
  11. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    (Bedankt, falscher knopf )

    Also Exploits bauen auf Fehler in Programmen und Systeme auf.
    Exploits zu schreiben setzt das wissen voraus, du weißt wie das Programm usw.. arbeitet und welche schwachstellen es hat.

    Um zu wissen welche schwachstellen es hat, musst du das Programm testen.

    Software Fuzzing, entweder du nimmst einen Fuzzer und testes damit andere Programme und um ein Fehler zu finden oder du schreibest kleine Programm und machst deine eigene tests.

    Ich weiss leider nicht wie viel Programmier wissen du hast, dann wurde ich dir ein paar infos schicken.

    Werde bald in Security Tools paar tool links senden.
     
  12. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Für Hardware-Exploits ist es unabdingbar sich mit Elektronik, Digitaltechnik, programmierung und Datenverarbeitung auszukennen.

    Um Hardware Exploits zu kreieren muss man die Vorhandenen Bauelemente Analyiseren sowie zussamenhängende Datenleitung erkennen. Oft findet man zu den einzelnen Bauelemente, nicht alle, Datenblätter im Netz und hat schon mal eine Basies wie welche Bauelemente die Daten empfangen und verarbeiten.

    Im ersten Stadium wird Anhand von bekannt Daten versucht Muster zu erkenen, zB. eine Komunikation eines Laufwerks, man kennt die Daten von der CD und versucht herauszufinden wie die Daten über die Datenleitungen gesendet werden.

    Hat man das geschaft versucht man diese Daten zu manipulieren, gelingt dies dann kan man sich an automatisierung rangehen, ala Ersetzen des Laufwerks durch ein anderes Gerät.

    Bei dem Vorgang ist es sehr Hilfreich einen Logikanalyser zu haben sowie schnell umprogrammierbar Microcontroller/FPGAs parat zu haben.

    Das größte Problem ist jedoch, dass wenn man in irgendwelcher Form etwas falsch macht, man sich die Hardware schrotet.

    Mfg Rushh0ur
     
  13. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    ...ausserdem brauchts noch Geschick und Talent. Ich, zum Beispiel, kann einfach nicht löten. Ewig geübt und probiert, ich bin da einfach talentfrei. Für einfache Dinge reichts vielleicht, aber um sowas zu machen, das wird einfach nix

    Und ein weiteres Problem an solchen Dingen ist dann noch, dass die benötigte Hardware ewig kostet. Ich hätte ja zumindest gern mal ein Oszilloskop, nen ordentlichen Lötkolben etc. Und wenn man dann so ungeschickt ist, überlegt man sich solche Anschaffungen drei mal.
     
  14. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Erstmal vielen Dank für die ganzen guten Beiträge, dachte bei so einer Anfängerfrage kommt etwas anderes, aber scheint echt ein nettes und super Board hier zu sein .

    Leider ist es etwas schwer aktiv an der Diskussion teilzunehemn, da meine Beiträge erst immer freigeschaltet werden müssen. Ab wann ist das denn nicht mehr so? Hab nichts dazu gefunden oder Tomaten auf den Augen ?

    Zu den Büchern habe ich noch was geschrieben, der Beitrag müsste hoffentlich bald freigeschaltet werden. Der Autor von Forbidden Code hat noch ein anderes Buch Namens "Hacking" geschrieben, oder das alte einfach umbenannt, hört sich auch total 1337 an, soll aber wohl inhaltlich echt gut sein. Kann es jemand empfehlen?

    Also um mal was zu meinen Kenntnissen zu sagen: Java kann ich recht gut (allerdings nur innerhalb der Standardbibliothek, also mit JNLP oder sowas habe ich mich noch nie auseinandergesetzt). Grundlagen in C und Assembler. Einiges im Krypto Bereich zu symmetrischen und asymmetrischen Verfahren. Wie DES,AES,RC4,RSA,MD4,MD5,SHA-1 funktioniert.Was ein Buffer Overflow ist weiß ich, aber nicht wirklich wie man überhaupt sowas erkennt oder genauer ausnutzen könnte. Man-in-the-Middle ist mir ein Begriff.Verschiedenes zu Netzwerken: OSI-Schichten, einzelne Protokolle wie RIP usw., wie TCP funktioniert oder z.B. was ein TCP-Syn flood ist. Wie Gatter aufgebaut sind, wie eine simple CPU funktioniert usw usw usw.

    Also von allem ein bisschen, würde nur das ganze theoretische Wissen irgendwie mal praktisch benutzen können, weiß aber nicht wie oder womit ich anfangen soll.
     
  15. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Da hier (in diesen Bereich) jeden Tag so viel verzapft wird, müssen Beitrage von nicht Stamm-Usern erst freigeschaltet werden. So wird der grobe Mist schon mal gefiltert.

    Es soll aber bald so werden, dass nur noch Themen freigeschaltet werden müssen, so dass danach "schneller" diskutiert werden kann.
     
  16. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Wenn Du ernsthaft was lernen willst, kannst Du hier loslegen:
    http://www.overthewire.org/wargames/

    Für alle Aufgaben ist in der Regel auch die notwendige Literatur genannt, also gut für "Einsteiger", aber auch Profis werden ihre Freude haben. C sollte man aber schon ganz gut beherrschen, musst mal schauen, wie Du damit klar kommst.
     
  17. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Naja wenn du dich damit wirklich beschäftigen willst, wäre es vielleicht eine Idee sich mit Crackme's zu beschäftigen. Finde dazu diese Seite gut: Crackmes.de - Welcome to the longest running and most complete Crackmes web page on the internet.
    Da kriegste halt von Coder Proramme erstellt, nach Schwierigkeitsgrad sortiert, und andere müssen den darienthaltenen Schutz umgehn. Oft werden auch Lösungen gepostet.
    Hilfereiche Werkezue sind da Debuger wie z.B, schon von NOS erwähnt, IDA Debuger, oder OllyDbg und Hex-Editoren.
    Dabei wäre es vielleicht auch von Vorteil ein paar tuts sich anzuschauen in der Richtung.

    Ich rate dir hier jedoch ausdrücklich davon ab, dort gewonnenes Wissen auf kommerzielle Sachen, wegen ilagilität, zu übertragen!

    Mfg Rushh0ur
     
  18. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Auch wenn NOS meinte, dass es dazu keine Literatur gibt:

    Hacking: The Art of Exploitation w/CD: Jon Erickson: 9781593270070: Amazon.com: Books
    The IDA Pro Book: The Unofficial Guide to the Worlds Most Popular Disassembler: Chris Eagle: 9781593271787: Amazon.com: Books
    The Art of Assembly Language: Randall Hyde: 9781593272074: Amazon.com: Books
    A Guide to Kernel Exploitation: Attacking the Core: Enrico Perla B.Sc. Computer Science University of Torino M.Sc. Computer Science Trinity College Dublin, Massimiliano Oldani: 9781597494861: Amazon.com: Books

    Dir muss aber klar sein, dass das nur als Zusatzlektüre helfen kann. Aber nen guten Überblick usw bringen die Dinger zum Teil. Andererseits gibts das wissen auch frei im Netz - man muss nur suchen.

    Crackmes usw sind nen guter start, um Programme zu verstehen - aber mit overflows etc wirste da kaum in Berührung kommen. Aber naja - davor müssen sowieso die anderen Sachen sitzen.
     
  19. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Interessantes Thema.

    Frage mich aber doch, was du jetzt eigentlich genau machen willst. Crackme´s sind ja soviel ich weiß sozusagen "übungen" um sicherheitsmechanismen einer software zu umgehen. z.B. irgendwelche meldungen von trial abläufen usw.. einfach gesagt. Vllt. machst ja auch bald nen Spielecrack^^

    Wenn du jetzt an eine Hardware gehst, wirds denke ich mal etwas komplizierter.

    Hoff trotzdem, dass du deinen Spaß hast Habs auch mal mit crackmes versucht. Noch mit tutorials. Da war ich auch etwas jünger. War schon kompliziert zu verstehen, was der im tutorial redet. War auch auf englisch. Aber war ne coole Sache, wenn dann man was umgangen hast
     
  20. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Also erstmal muss man wirklich knallhart zwischen Hardware exploiten und normale Software exploiten (im Sinne von Software die auf x86_32 und x86_64 CPU läuft) trennen.

    Hardware exploiten:
    Dafür gibt es keine Bücher, du brauchst unglaubliches technisches Wissen. Wenn du das nicht von klein auf gelernt hast, kannst du das vergessen. Obwohl ich mich mit normalen Exploits / Reverse Engineering von "normaler" Software auskenne, werde ich es niemals schaffen ein iPhone oder eine PS3 zu knacken, weil ich dafür einfach viel zu wenig technisches Wissen hab.

    Es gibt kein "Assembler", du kannst wahrscheinlich nur ein bisschen x86_32 Assembler (wie die meisten Leute). Das bringt dir aber für das iPhone gar nichts.

    Bestimmt, aber dafür musst du dich interessieren und dann brauchst du dazu auch kein Buch. Du musst dir selber Zeugs zusammenlöten/bauen, nur so kannst du es lernen.

    Ja toll das hab ich in der 8. Klasse auch gelernt. Grundlagen sind das nicht. Sowas nennt man Allgemeinbildung!

    Software exploiten:
    Kann man gut lernen, gibt es ein paar Bücher.

    Hacking: The Art of Exploitation <- hab ich gelesen, hat nichts gebracht, weil das nur Grundlagen vermittelt, die man schon können sollte (u.a. wird viel auf C Programmierung eingangen)

    The IDA Pro Book <- brauch man auch nicht, den Umgang mit IDA kann man sich selber beibringen

    The Art of Assembly Language <- Lese dir die 1er Kritiken auf Amazon durch, HLA ist Müll für deine Zwecke

    A Guide to Kernel Exploitation: Attacking the Core <- sieht gut aus, werde ich mir vielleicht mal kaufen
     
  21. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Du hast da natürlich viel mehr Ahnung als ich, aber ich kann mir nur schlecht vorstellen, dass man es nicht noch später lernen kann. Alles lässt sich an für sich lernen. Ist nur eine Frage der Zeit die man investieren will. Als Beispiel bei Musikinstrumenten sagen auch immer viele bzw. denken viele wenn man das nicht früh anfängt wird das nichts. Ist aber auch nicht richtig.

    ...

    Hab ein wenig Assembler mithilfe eines Mikrocontrollers gelernt.

    ....

    Hmmm also Allgemeinbildung ist das nun echt nicht . Es wäre mir neu, dass die meisten Leute wissen, wie ne ALU aufgebaut ist usw. . Gelernt hab ichs erst in der Uni

    ...

    Für die kurzen Bewertungen vielen Dank.


    Ich werde mein C dann mal verbessern und mir ein paar Crackmes angucken.
     
  22. 5. April 2011
    AW: Wie findet man Lücken für Exploits?

    Ich denke das spielt keine so große Rolle. Solange man die Denkweise usw kennt. Vieles andere ist einfach nur Syntax (klar, MIPS programmiert sich z.b. ganz anders als x86 - die Prinzipien sind aber meist die selben).

    Wie gesagt. Das Wissen aus den Büchern ist auch frei im Internet erhältlich. Oft ist es jedoch angenehmer etwas als "richtiges" Buch vorm Bildschirm zu haben, oder es einfach im Bett zu lesen. Genauso espart man sich viel Gesuche.
    Wobei ich selber eher der Trial & Error-Mensch bin. Ich bin kein Freund von dicken Büchern und langen Tutorials - aber es gibt doch welche . Das Buch zu IDA Pro soll ganz okay sein - wobei ich persönlich IDA recht intuitiv, von der Bedienung her, finde. Aber ich denke ne kleine Referenz WAS IDA alles kann ist nicht übel. Die meisten die ich kenne, nutzen kaum Funktionen davon. Klar ist es oft einfach nicht nötig, aber manchmal würde man sich viel Arbeit ersparen (gute Flair Db hilft Wunder )
     
  23. 8. April 2011
    AW: Wie findet man Lücken für Exploits?

    ich kann dir noch Hackaday — Fresh hacks every day empfehlen, wobei da auch viel einfach selbstgebaute sachen sind statt reverse'te(?), aber auf jeden fall immer nen blick wert=)...mfg coach

    EDIT: haben übrigens auch nen forum^^ und sowas hier is vllt. auch schon was für dich in sachen hardware Reverse engineering the Playstation Move (so als beispiel)

    EDIT2: oder noch besser: Reverse engineering the PSP
     
  24. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.