Exploit(s) - Erklärung für Anfänger und Fortgeschrittene

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Exploit(s) - Erklärung für Anfänger und Fortgeschrittene

      Einleitung

      Ich denke es ist an der Zeit für Soetwas, damit auch ein Neuling versteht was ein Exploit ist und wie die Funktionsweise ist.

      Ich versuche hier die Definition und Funktionsweise ein wenig zu umrahmen und nutzerfreundlich ('einfach') zu erklären.

      Hoffentlich bleibt es trotzdem für fortgeschrittene Anwender interessant. ;)


      FAQ

      F: Was ist ein Exploit?
      A: Ein Exploit ist die 'Ausnutzung' ['to exploit'] einer 'Anfälligkeit'/Schwäche/Sicherheitslücke ['Vulnerability'] eines Systems und/oder Programms.
      Ein Exploit besitzt immer eine Softwarekomponente, oder Bezug auf eine Software und kann Hardware-Elemente beinhalten.

      Praktisch jedes 'Einfallstor' wird im User-Jargon gerne Exploit, Softmod, oder Jailbreak genannt, wobei sich auf technischer Ebene alle unterscheiden... (siehe 3.Post)
      Ein ähnliches Phänomen lässt sich bei BIOS, Firmware, BOOT-ROM erkennen.
      Es ist der Unwissenheit der User (nicht als Angriff gemeint) und dem leichteren Verständnis geschuldet, dass dies 'Gang und Gäbe' ist.


      F: Was kann man damit machen?
      A: Es ermöglicht einem 'Angreifer', das System oder Programme/Prozesse/etc. in einer Weise zu beeinflussen, wie es vom Hersteller/Administrator/etc. nicht gedacht und/oder gewollt ist.


      F: Was bringt einem das?
      A: Es ermöglicht einem eigenen Programmcode auszuführen/zu dumpen/etc. und dadurch weiter in ein System einzudringen oder aus einer Umgebung auszubrechen!

      Dadurch wiederum werden weitere Systemhacks, Homebrew, Backups, usw. zumindest wahrscheinlicher, wenn nicht sogar schon möglich!


      F: Was ist denn noch nötig?
      A: Manchmal müssen weitere Sicherheitsmaßnahmen überwunden werden (z.B. via 'mehrerer' Exploits, die der Einfachheit halber meist wie ein Exploit gehandhabt werden).

      Zum Beispiel kann man manchmal Backups aber kein Homebrew (zur Zeit bei den neueren PS3), oder umgedreht Homebrew aber keine Backups abspielen (PS2, ohne ESR).


      F: ? (eure Fragen, die noch offen sind und hier hin passen)
      A: !

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Plastic ()

    • Funktionsweise(n):

      Das ist ein genereller Überblick über ein paar Varianten, aber es gibt natürlich noch mehr.

      Es gibt manchmal verschiedene Variationen der hier genannten Exploit-Typen, aber ich versuche es an den einfachen Varianten zu erklären.


      Bufferoverflow-Exploit - Einer der einfachsten und ältesten Exploits

      Bei dieser Variante wird ein Buffer/Puffer/'Zwischenspeicher'/etc. 'überfüllt' und die nachfolgenden Speicherbereiche überschrieben, bis man an der richtigen Speicheradresse ist, die von einer Rücksprungadresse (=Zeiger auf einen Speicherbereich) belegt ist, die von einem vom System/(Unter-)Programm genutzten Prozess genutzt wird und schreibt da seinen eigenen Programmcode hin.

      Der 'Pufferüberlauf' heißt im Englischen 'Buffer-Overflow'... und dementsprechend ist der Name einfach davon abgeleitet... Das deutsche normale Wort neben Puffer wäre allerdings ganzschön lang... :D

      Man kann auch die Rücksprungadresse auf den vom eigenen Code belegten Speicherbereich ändern (zumindest auf Systemen ohne einen Schutz wie 'nicht ausführbarer Speicher[bereich]' {'NX-Bit' und Ähnliches}).


      Ein Beispiel hierfür ist z.B. der 'Independence Exploit'/PS1-Exploit für die PS2, der einen Bufferoverflow durch einen modifizierten Eintrag in der 'TITLE.DB' (die 'pro Spiel'-Konfigurationen der integrierten PS1-Kompatibilität beinhaltet) erzeugt, der durch injezieren von eigenem Programmcode die Ausführung von ELFs (Programmen) ermöglicht.


      'Return-oriented-programming', a.k.a. 'ROP'

      (return to *library*)
      Return-to-libc

      Das ist wohl die bekannteste Variante dieser Art Exploits.

      Dieser Typ Exploit basiert im generellen auf der Manipulation des 'Aufrufstapels' ['call stack'] eines Programms/Systems/etc.

      Ein Stack ist wie ein großer Pfannkuchenstapel, also ist ein Buffer mit umgedrehter Funktionsweise.

      Was zuletzt 'draufgepackt wird', kommt als erstes weg ['Last In, First Out'/LIFO].
      Beim Buffer kommt 'am anderen Ende' das zuerst raus, was 'am einen Ende' zuerst rein ging ['First In, First Out'/FIFO].

      In einem Stack werden also 'Programmbefehle' (eines Tasks) 'gelagert', die ein Prozessor/VM/(Betriebs)System, etc. abarbeiten soll.

      Dadurch das nur System-Funktionen über einen vom Prozess/System bereitgestellten 'stack' ausgeführt werden, können manche Sichererheitsmechanismen wie 'nicht ausführbarer Speicher(bereich)' [NX-Bit, etc.] umgangen werden, da der zu manipulierende Stack ja ausführbar sein muss, damit ein Programm läuft.

      Es gibt nützliche Programme/Tools, mit denen man Programme/Binaries nach ROP-Exploits durchsuchen lassen kann, wie z.B. 'ROPgadget', die einem also beim 'Exploiten' behilflich sein können.


      Ein Beispiel hierfür sind die zuletzt erschienen PS3/PS4-Webkit-Exploits die teilweise anscheinend auch eine Reihe/Kette/'chain' dieser nutzen.


      Jump-oriented-programming, a.k.a. 'JOP'

      Das ist eine Weiterentwicklung der ROP-Exploits!

      Sie basiert nicht auf 'return'-Werten, sondern auf Sprüngen zu anderen Funktionen.

      Man braucht also eine Liste an Befehlen und einen Manager für diese.

      ~eine bessere ausführlichere Erklärung wird später hinzugefügt~

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von Plastic ()

    • Unterscheidung Exploits, Softmods, 'Custom Firmware'/CFW, Jailbreak:

      Exploits sind das generelle Einfallstor im Softwarebereich. Sie selbst ermöglichen Abgesehen von der Code-Ausführung meistens alleine nicht viel. Die 'Magie' kommt dann erst von nachgeladener/gestarteter Software.


      Softmods umfassen praktisch fast Alles, was KEINE Hardware-Modifikation beinhaltet. Das beinhaltet von Swap-Disks welche technisch eigentlich kein 'echter Softmod' ist, bis zur CFW, oder Brickschutz, verschiedene Sachen.
      Technisch nutzt ein Softmod typischerweise mindestens einen, oder auch eine Reihe von Exploits aus, um sich zu installieren, ausgeführt zu werden oder die volle gewünschte Funktionsweise zu erreichen.


      'Custom Firmware'/CFW umfasst normalerweise die Modifikation eines Betriebssystems eines Gerätes, ähnlich der 'Custom ROM' bei Smartphones.
      'Echte CFW' ersetzen auf einem internen Speicher-Chip ein, oder Teile eines Betriebssystem um zusätzliche Funktionen zu ermöglichen/'freizuschalten'. Eine 'Temporary CFW', oder ein Softmod wie 'FMCB'/'FHDB' sind somit von der Definition her eigentlich keine 'echten CFWs', auch wenn sie die selben Funktionen bieten (können)!
      Eine CFW enthält meist mehrere Jailbreaks, um Homebrew und Backups auszuführen.


      Jailbreak umfasst praktisch zumindest das A-Z an Homebrew und Backups. Es umfasst meist mehrere Exploits, um schlussendlich 'Bezahlinhalte' kostenlos und 'selbst geschriebene Programme/Homebrew' auf einem Zielgerät, auf denen dass ausführen eben jener Sachen limitiert ist/sind. Ein Jailbreak beinhaltet ein wenig das Ziel, 'Bezahlinhalte' auf dem Endgerät so original wie möglich auszuführen und vollen Hardwarezugriff für die eigenen Programme zu erlangen, (im ersteren Fall) damit keine Kompatibilitätsprobleme entstehen. --> Somit ist ESR z.B. kein Jailbreak, FMCB hingegen eine Art Softmod+Jailbreak, der auf dem MagicGate-Exploit beruht. Der FMCB-Loader ist die vorher erwähnte 'Magie' und durch den KELF/MG-Exploit kann der gestartet werden...


      Zusätzliches:

      Post 1 und Post 2 werden weiter editiert.
      Post 3 ist für zusätzliche Informationen reserviert! ;)

      Falls Fragen bestehen, oder ihr Fehler findet, postet einfach und ich werde es ergänzen. :)

      ...auch falls etwas zu kompliziert erklärt ist, oder zuviel oder zu wenig Informationen vorhanden sind, weißt mich drauf hin und ich werde es verbessern/ergänzen/entfernen...

      Ich belege mal ungewollt noch den 3ten Post und werde dafür noch ein paar Exploit-Arten in Kurzfassung und vereinfacht erklären (und hoffentlich ein Beispiel im Konsolen-Bereich finden) und die dann oben einfügen.

      Habt ihr weitere Ideen und/oder Fragen? Die Likes sind zwar schön, aber eure Fragen und Ideen würden helfen den Thread zu verbessern! :)

      Die ersten beiden Posts werden heute oder morgen noch erweitert.

      Edit: Post 1, 2 und 3 wurden bereits etwas verändert, aber zum großen Teil so gelassen. Ich editiere ihn später, damit er zu den ersten beiden posts passt, besser aussieht und sinnvollere Informationen als jetzt enthält.

      Also Leute! Eure Initiative mit Ideen ist gefragt! :D

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von Plastic ()

    • OK - @Plastic - Du wolltest es so... ;)

      Ich würde es gut finden, wenn Du wirklich konkret auf den PS4 Exploit eingehen würdest (eigener Thread),
      und dort weniger die Funktionsweise im Hintergrund, sondern die Funktion und Unteschiede im Vordergund beschreiben würdest.
      Gerade im Moment dreht sich alles um den PS4 Exploit, und die meisten User wollen einfach das das Ding bei Ihnen flutscht -
      warum ist im Prinzig egal.
      Und sehr oft hackt es schon bei den Begrifflichkeiten oder technischen "Zuständen" der PS4.
      z.B.: Unterschied zw. Exploit und Payload, Unterschied Payload per Javascript oder per bin Datei.
      Diverse Zustände - warten auf Payload, Payload ausgeführt...

      Ist nur so ne Idee...

      Danke für die Mühe bis jetzt - für die User die mehr Interesse am Hintergrund haben (mich eingeschlossen) ist das super Interessant. :thumbup:

      PS: das das nicht als Entmutigung sehen -
      die Erfahrung zeigt leider (zumindest habe ich das Gefühl), desto mehr Inhalt zu lesen ist, desto weniger wird es gelesen....
      Grüße lotus78
    • Kann ich machen.

      Wird aber nicht sofort. In ner Woche mal, o.k.?
      Ich sammel dazu mal ein paar Ideen.

      PS4-Exploit: Stichwort 'ROP' --> 'return oriented programming' schneidet das Thema (oben) an. Es ist natürlich jetzt nicht auf den/die PS4-Exploit/-s 'getrimmt'!


      Soll ich da richtig tief in die Materie gehen? Ich bin zwar nicht der Typ für Java und Java-Script, aber ich kann es versuchen. Es wird nur nicht ganz leicht, dass auf einfache Weise zu erklären...



      Zu diesem Thread:

      Ich habe die Funktionsweise mal in den zweiten Post verschoben, den zweiten Post teilweise in den dritten und hab bei allen ein paar kleine 'Schönheitskorrekturen' durchgeführt.

      Für die, die also die Likes beim ersten Post sehen... Die waren teilweise auch mit auf die Funktionsweise (mit den Beispielen) bezogen, denke ich...
    • @Plastic
      Du mußt hier aufpasse, das es nicht zu unübersichtlich wird...
      und mach Dir mal wegen der Likes keinen Kopf... ;)

      zum Thema:
      Ich würde beim PS4 Exploit erklären NICHT in die Tiefe gehen - warum habe ich ja schon oben geschrieben.
      Eine Übersicht für Neulinge und reine Anwender würde imho reichen.
      (z.B.: Javascribt - Befehle die über Webseiten ausgeführt werde -
      d.H. die PS4 geht mit dem Browser auf die Exploit Webseite und, dadurch werden im Hintergrund über das JvaScipt Programmeschritte auf der PS4 ausgeführt,
      die dadurch die PS4 "hacken"/öffnen - bereit machen unsignierte Programme (z.B. bin Datein auszuführen)
      Der Exploit selbst wir über eine Webseite zur Verfügung gestellt, die über einen Webserver gehostet wird,

      Ich würde das auch getrennt vom detailierten erklären der diversesn Exploits sehen und posten.

      Aber ich sehe schon - da kommst Du vom 100sten ins 1000ste -
      mußt letztendlich Du selbst wissen, ob Du die Zeit dafür hast.

      PS: Sollte in meinen Beispielen nicht alles korrekt sein - man möge mir vergeben - denn darum schreibt ja auch @Plastic den Beitrag... :D
      Grüße lotus78
    • Also zumindest ausführlicher als deinen Post, ja? :grinn:

      Bin gerade oben noch etwas am verändern...
    • Mal wieder ne super Sache @Plastic :D
      Ich cheate nicht,
      ich bin Chuck Norris an der Konsole! :P
      -
      ps
      Xtools und alles wird gut!
    • Weitere Fragen, Dinge die ich ergänzen kann/soll oder Ideen?

      Ich hab paar Fehler (Wortdreher) gefunden, aber inhaltlich sollte es verständlich sein.