| (In)security allgemein Sicherheit, Anonymität im Netz. Schutz und Maßnahmen. Prävention und Konzepte. Sicherheitsarchitekturen allgemein und auf der Netzwerkebene. |
Diskussion: Wie kommt man zu einem Bufferoverflow? im Forum (In)security allgemein, in der Kategorie Security Area; Hallo zusammen, ich hätte da mal eine Frage zum Thema Bufferoverflow, da ich mich gerade ein wenig damit auseinandersetze: Wie ...
![]() |
| | #1 (permalink) |
| Registriert seit: 27.06.10 ![]() Likes: 0 | Hallo zusammen, ich hätte da mal eine Frage zum Thema Bufferoverflow, da ich mich gerade ein wenig damit auseinandersetze: Wie das ganze funktioniert, habe ich verstanden. Mir ist nur noch nicht klar, wie man soweit kommt um z.B. selbstgeschriebenen Assemblercode zur Ausführung zu bringen. Damit meine ich: Wie schafft man es als Außenstehender einen Bufferoverflow in einem Programm auszuführen? Ich habe Artikel gelesen, wo es darum ging, dass man z.B. in Firefox durch eine zu lange Adresse einen Overflow ausführen kann (schon etwas länger her). Aber wie kann ich mir sowas zunutze machen? Bzw was für Möglichkeiten gibt es noch? Eine ganz normale exe-Datei...? Hoffe ihr wisst was ich meine: Ich habe viele Tutorials gelesen,wie ein Bufferoverflow abläuft, aber das waren einfache Beispiele. Ich würde gerne einmal wissen, wie das in der Praxis dann abläuft bzw was für Möglichkeiten es gibt. Viele Grüße MS |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 05.03.08 ![]() ![]() ![]() ![]() ![]() Likes: 185 | Das hier: http://www.corelan.be:8800/index.php...ing-tutorials/ ist ganz nett gemacht. |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 371 | Ich empfehle als Lektüre den Klassiker: "Smashing the stack for fun and profit" von Aleph One. Einfach mal so bei Google eingeben und den ersten Treffer nehmen.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #4 (permalink) |
| Themenstarter Registriert seit: 27.06.10 ![]() Likes: 0 | @xrayn: Danke für die Antwort und den Link, werde ihn morgen einmal anschauen. @bitmuncher: Auch dir danke für deine Antwort. Den Text hab ich auch gelesen. Glaub ich hab mein Anliegen auch ein wenig falsch formuliert: Wie man Assemblercode usw ausführt ist mir klar. Ich würde gerne wissen, wie ich das ganze anwende. Also wie ich es beispielsweise über das Internet schaffe einen Bufferoverflow zu erzwingen (vorausgesetzt das Programm/ der Browser hat eine dementsprechende Sicherheitslücke). Deswegen das Beispiel mit Firefox: Wie wäre es damals möglich gewesen den Bug in Firefox auszunutzen? Was mich interessiert ist, wie komme ich zur Ausführung? Eine simple exe-Datei z.B. würde ja funktionieren. Aber wie ist es mit fertigen Programmen. Wie schleuße ich da meinen Code ein? Grüße MS |
| | |
| | #5 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 371 | Offenbar hast du die Grundlagen noch nicht verstanden, denn das Prinzip ist immer das Gleiche... du füllst einen Buffer mit Daten, die den Overflow auslösen. Als Daten verwendest du einen in NOPs eingebetteten Shellcode (kein Assembler sondern ein Shellcode, siehe z.B. http://wiki.hackerboard.de/index.php..._%28Exploit%29). Da du beim Overflow die Rücksprungadresse ja mit einem NOP überschreibst, geht die Programmausführung weiter zum nächsten NOP usw. bis der Shellcode erreicht und ausgeführt wird. Wie nun genau der Buffer beim FF-Exploit befüllt werden musste, kann ich dir nicht sagen. Dazu müsste ich mir die Lücke anschauen, wozu mir aber momentan die Zeit fehlt. Gn8 & HF.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #6 (permalink) |
| Themenstarter Registriert seit: 27.06.10 ![]() Likes: 0 | Jetzt nicht bös werden, aber ich glaub ich hab mein Problem immer noch nicht so richtig rübergebracht Ich versuchs nochmal: Die Beispiele in den Tutorials wurden alle lokal auf meine PC ausgeführt. D.h. ich war es, der das Programm gestartet hat und somit alles ausgeführt hat. Man spricht jedoch immer von Hackerangriffen, die über Sicherheitslücken eindringen. Mich interessiert das eindringen. Wie dringen sie in des Programm ein um dann einen Overflow zu starten? Sie haben ja keine exe, auf die geklickt wird, oder die Möglichkeit auf den Quellcode des Programms zuzugreifen?? Sry nochmal für die umständlichen Formulierungen. Weiß auch net was zZ los ist, zu viel Stress Grüße + gn8 MS |
| | |
| | #7 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 371 | Sie haben aber z.B. die Möglichkeit Daten in einen Buffer zu laden, wenn du z.B. eine entsprechende Website aufrufst. Schliesslich wird die geladene Website ja erstmal im RAM (und zwar im Speicherbereich des Programms) abgelegt. Genauso kann man auch einen Overflow durch die URL ausführen, wenn z.B. die Länge der URL nicht korrekt begrenzt wird. Die Website leitet dich dann einfach auf eine entsprechend lange URL um. Und so gibt es zig verschiedene Angriffsszenarien, die ganz abhängig von der jeweiligen Lücke sind.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #8 (permalink) |
| Registriert seit: 23.06.10 ![]() Likes: 0 | Wie werden solche Lücken ausfindig gemacht? Der Quellcode ist ja meist geschlossen oder? Das Beispiel hier müsste ja im Quellcode klar ersichtlich gewesen sein. Weiter frage ich mich: Sagen wir ich weiss, dass diese Lücke besteht. Der Code weisst darin einen Fehler auf, dass keine Zeichenbegrenzung besteht. Das System könnte diese Daten nicht verarbeiten, weil es nicht weiss wie damit umgehen oder was auch immer. Woher weiss ich das dies ein Bufferoverflow ist? Es könnte genau so gut dazu Führen, dass das System zwar überfordert ist, ich jedoch keinen Root-Zugang habe. Man man man....mit mir hat man heute zu tun Hoffe Ihr verzeiht mir.Falls ich was falsch interpretiere belehrt mich bitte. gruss walter Bedank Edit: Da Spam "Danke" nicht unbedingt gern gesehen werden, hier ein Regelkonformes Dankeschön. Auch hier wieder was gelernt...I Like.... Geändert von woistwalter (29.06.10 um 00:18 Uhr) |
| | |
| | #9 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 371 | Root-Zugang erlangt man durch die wenigsten Remote-Exploits. Man bekommt maximal Zugang mit den Rechten, unter denen das Programm gerade läuft. Hat man aber erstmal Zugriff auf ein System kann man seine Rechte z.B. durch lokale Exploits (zumeist Privilege Escalations und unsaubere SUID-Programme) erweitern. Ausserdem ist immer zu unterscheiden ob man ein Client- oder ein Server-Programm angreift. Lücken in Clients benötigen zumeist "Zuarbeit" durch den User wie z.B. das Besuchen einer entsprechend manipulierten Seite, das Öffnen eines Email-Anhangs oder ähnlichem. Bei einem Server-Programm werden zumeist Lücken in der Protokoll-Verarbeitung des Servers genutzt, wenn dieser z.B. von einem Client gesendete Daten nicht korrekt validiert. Beim Suchen von ausnutzbaren Lücken schaut man sich bei OpenSource-Tools natürlich primär den Soure an. Bei Closed-Source-Tools ist es oft einfach rumprobieren und etwas Glück gehört nicht selten auch dazu, wozu man natürlich die verwendeten Protokolle entsprechend gut kennen sollte. Ausserdem kann man Programme debuggen und disassemblieren und dadurch schauen wie sie auf bestimmte Manipulationen reagieren. Dazu sollte/muss man dann ausreichend Erfahrungen beim Programmieren und speziell im Umgang mit einem Debugger haben. Ob es ein Buffer-Overflow ist oder nicht, weiss man zumeist dadurch, dass man sich ein Test-System aufsetzt, das man genau analysieren kann. Crasht ein Programm mit einem Segmentation Fault, ist es zumeist ein Buffer-Overflow. Hat man das Programm nicht zur Verfügung ist es eh fast nur noch Glücksspiel, wenn man es schafft ein Programm erfolgreich zu exploiten.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
![]() |
| Stichworte |
| bufferoverflow |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |