CTF-Hacking: Was ist Capture the Flag für einen Neuling?
Was ist Capture the Flag Hacking?
Dieser Blog richtet sich an eine Person, die ganz neu im Capture The Flag (CTF)-Hacking ist, und erklärt die Grundlagen, um Ihnen den Mut zu geben, an einem CTF teilzunehmen und selbst zu sehen, wie es ist, daran teilzunehmen. CTFs sind Veranstaltungen, die in der Regel auf Informationssicherheitskonferenzen stattfinden, darunter auch die verschiedenen BSides-Veranstaltungen. Diese Veranstaltungen bestehen aus einer Reihe von Herausforderungen, die in ihrem Schwierigkeitsgrad variieren und bei deren Lösung die Teilnehmer unterschiedliche Skillsets anwenden müssen. Sobald eine einzelne Herausforderung gelöst ist, erhält der Spieler eine „Flagge“, die er an den CTF-Server übermittelt, um Punkte zu sammeln. Spieler können Einzelkämpfer sein, die die verschiedenen Herausforderungen alleine bewältigen, oder sie können mit anderen zusammenarbeiten und versuchen, als Team die höchste Punktzahl zu erreichen.
CTF-Events werden in der Regel mit einer Zeitmessung durchgeführt, und die Punkte werden nach Ablauf der Zeit zusammengezählt. Gewonnen hat der Spieler/das Team, der/das die meisten Aufgaben gelöst und damit die höchste Punktzahl erreicht hat.
Hier ist ein Screenshot einer Punktetafel von einem CTF-Event der BSides San Francisco:
Bitte beachten Sie den Satz, den ich mit einem roten Kasten markiert habe. Wie Sie schnell sehen werden, basieren die CTF-Aufgaben oft auf realen Vorfällen/Schwachstellen, die Ihnen die Möglichkeit geben, zu erfahren, wie es tatsächlich abläuft und Sie besser darauf vorbereiten, Ihre eigenen Systeme gegen diese Art von Angriffen zu verteidigen. CTF-Events machen also nicht nur Spaß, sondern können auch lehrreich und beruflich lohnend sein.
CTF-Vorbereitung
Wenn Sie noch nie an einem CTF-Event teilgenommen haben, lassen Sie sich nicht frustrieren oder geben Sie auf, denn der Schlüssel zu jeder Art von Hacking ist Geduld. Auch wenn das manchmal schwer zu haben ist, kann man nur lernen, wenn man ausdauernd ist und selbst übt (siehe diesen Beitrag weiter unten, wie man übt), und vielleicht werden Sie beim nächsten Mal den ersten Platz belegen! Eine Sache, die Sie bei Ihrem ersten CTF-Event versuchen können, wenn möglich, ist, ein erfahrenes Team zu finden, das bereit ist, Sie mitspielen zu lassen. Machen Sie deutlich, dass dies Ihr erstes CTF-Event ist und dass Sie sich freuen würden, wenn Sie von ihnen eingewiesen werden.
Nach meiner Erfahrung sind die Mitglieder der InfoSec-Community in der Regel sehr bereit, ihr Wissen mit jedem zu teilen, der daran interessiert ist, in diesem Bereich zu lernen und zu wachsen. Gleichzeitig hört man in der Community aber auch oft, dass es einen Mangel an Talenten gibt. Manchmal kann dies ein sehr reales Problem sein, und viele Fachleute, die sich in diesem Bereich hochgearbeitet haben, haben dafür viel Zeit aufgewendet und viel geopfert, um zu lernen, zu üben und ihr Handwerk zu verfeinern. Aus diesem Grund sollten Sie, bevor Sie sich bei grundlegenden Fragen um Hilfe bemühen, zuerst das Thema recherchieren und sich bemühen, die Dinge selbst herauszufinden.
Innerhalb der InfoSec-Gemeinschaft ist Vertrauen etwas, auf das man keinen Wert legen kann. Wenn Ihr Job darin besteht, sich in das Netzwerk eines Kunden zu hacken, ist das letzte, was jemand möchte, dass diese sensiblen Informationen mit jemandem außerhalb des Teams geteilt werden. Vertrauen ist ein entscheidender Bestandteil dieser Beziehung und ich kann nicht genug betonen, wie wichtig es ist, auch bei Wettbewerben ethisch zu bleiben. Und zu guter Letzt: Wenn Sie zu einer CTF-Veranstaltung gehen, vergessen Sie nicht, einen Laptop oder einen anderen Computer mitzubringen, auf dem ein Betriebssystem mit verschiedenen Tools bereits installiert ist (mehr dazu weiter unten), denn ohne das werden Sie einen schweren Start haben.
Zusammenfassend lässt sich sagen, dass CTFs eine großartige Gelegenheit zum Lernen sind, wenn Sie also noch nie eine CTF-Veranstaltung oder sogar eine BSides-Veranstaltung erlebt haben, empfehle ich Ihnen dringend, so bald wie möglich an einer teilzunehmen!
Ermöglicht es Kunden, ihre Sicherheitsabläufe und Erkennungsfähigkeiten mit fortschrittlichen Penetrationstesttechniken zu testen.
Erfahren Sie mehr
Typen von Veranstaltungen
Es gibt in der Regel zwei verschiedene Arten von CTF-Veranstaltungen. Die beiden häufigsten Typen sind:
- Red Team/Blue Team
- Bei dieser Art von Event versucht das rote Team, Flaggen zu erobern, während das blaue Team versucht, die verschiedenen Flaggen vor der Eroberung zu verteidigen.
- Red Team
- Bei dieser Art von Veranstaltung versuchen eine oder mehrere Personen, die alleine oder in einem Team arbeiten, verschiedene Flaggen zu erobern, während es kein Team gibt, das sie verteidigt.
Jede Art von Veranstaltung hat verschiedene Vor- und Nachteile. In einem Red Team vs. Blue Team-Szenario lernen die Angreifer lebenswichtige Techniken, während die Verteidiger die Chance haben, zu lernen, wie sie ihre Systeme gegen einen aktiven Angriff verteidigen können. In einem Red Team-Szenario hingegen stürzen sich alle auf den armen CTF-Host und tun ihr Bestes, um ihn dazu zu bringen, jede Flagge preiszugeben, die die Angreifer in ihre digitalen Klauen bekommen können.
Arten von Herausforderungen
CTFs zeigen in der Regel verschiedene Herausforderungen, die bestimmte Schwerpunktbereiche nutzen oder trainieren. Einige beliebte Schwerpunktbereiche sind:
- Programmierung
- Diese Arten von Aufgaben erfordern in der Regel eine Art von Programmierung zur Lösung. In den meisten Fällen handelt es sich um eine Mischung aus Programmierung und Reverse Engineering.
- „Crypto“
- Diese Aufgaben beinhalten gängige Szenarien aus der „realen Welt“, zu denen auch die immer beliebter werdende Ransomware gehört.
- Exploitation
- Diese Aufgaben zwingen Sie dazu, herauszufinden, wie ein bestimmter laufender Prozess ausgenutzt werden kann (mittels Pufferüberlauf, String-Formatierung, SQL-Injektion, etc….) einen bestimmten laufenden Prozess auf dem CTF-Zielrechner ausnutzen können.
- Reverse Engineering
- Für Aufgaben wie diese wird in der Regel Reverse Engineering erforderlich sein, zum Beispiel, wenn der Server Ihnen eine ausführbare Datei schickt.
Wie nimmt man an einer CTF-Veranstaltung teil?
Meine erste Erfahrung mit einer CTF war bei einer lokalen BSides-Veranstaltung. Ich ging zu der BSides-Veranstaltung mit folgendem Gedanken: „Hier wird es wahrscheinlich eine Menge geschickter Hacker geben; ich denke, ich werde einen Tails-Laptop mitnehmen, der es mir erlaubt, Notizen zu machen und bei Bedarf im Internet zu surfen.“ Während die Mentalität, meine Geräte schützen zu wollen, nicht gerade eine schlechte Idee war, machte das Verlassen auf ein Tails das Leben ziemlich schwierig, wenn es darum ging, am CTF-Event teilzunehmen. Fairerweise muss ich sagen, dass ich nicht wusste, dass es dort ein CTF-Event geben würde, und deshalb habe ich über diesen Aspekt der Veranstaltung gar nicht nachgedacht. Was ich Ihnen für Ihr erstes CTF empfehlen würde, in der Reihenfolge vom Einfachsten zum Schwierigsten, wäre eine der folgenden:
- Kali Linux
- Diese Distribution wurde speziell für Penetrationstests entwickelt. Sie ist vollgepackt mit allen erdenklichen Werkzeugen und wahrscheinlich einer Menge mehr, die Sie nie brauchen werden.
- BlackArch
- Diese Distribution basiert auf Arch Linux, kommt aber, ähnlich wie Kali, mit Tonnen von Sicherheitswerkzeugen.
- Arch Linux
- Dies ist eine Basis-Linux-Installation, die mit Standard-Linux-Tools geliefert wird. Wenn Sie diese Option wählen, müssen Sie sich die Mühe machen, alle Tools zu installieren, die Ihnen einfallen und die Sie eventuell benötigen, oder zumindest sicherstellen, dass Sie Zugang zu einer Internetverbindung haben, um die benötigten Tools auf der Veranstaltung schnell installieren zu können.
Beispiele
Wie bereits erwähnt, gab es vor ein paar Monaten eine BSides-Veranstaltung in San Francisco, auf der eine CTF-Sitzung stattfand. Wir können uns dieses Event genauer ansehen, um Ihnen eine bessere Vorstellung davon zu geben, worum es bei Capture the Flag geht.
Zunächst zeigt Ihnen der Screenshot oben die endgültige Punktetafel, die ich auch hier einfüge:
Bitte beachten Sie, dass der Gewinner mit 6.773.000 Punkten gewonnen hat, während der nächstplatzierte Spieler 5.178.000 Punkte hatte. Das ist ein ziemlicher Vorsprung, der mir sagt, dass dcua wahrscheinlich ein ziemlich erfahrener Hacker/CTF-Spieler ist. Kommen wir nun zu den verschiedenen Aufgabentypen, über die wir bereits gesprochen haben. Hier ist eine Liste der verschiedenen Aufgaben, die in diesem CTF-Event verfügbar waren:
Wie Sie sehen können, gibt es verschiedene Arten von Aufgaben und einige von ihnen überschneiden sich in Bezug auf die Fähigkeiten, die zu ihrer Lösung erforderlich sind. Lassen Sie uns einen genaueren Blick auf einige der Aufgaben aus dieser Liste werfen. Wir wählen einfach eine aus:
Taylors magisches Flaggenorakel ist eine auf Reverse Engineering und Codierung basierende Aufgabe, die 150 Punkte wert ist. Wenn Sie auf den Link ‚Aufgabe‘ klicken, erhalten Sie detaillierte Informationen darüber, worum es geht:
Wie Sie sehen können, gibt es eine Menge Details, darunter auch Hinweise, wie Sie diese CTF-Herausforderung/Aufgabe lösen können. Da dieses Event bereits abgeschlossen ist, gibt es auch eine „Writeups“-Sektion, in der verschiedene Spieler die Schritte, die sie zur Lösung der Herausforderung verwendet haben, eingereicht haben. Dieser Abschnitt kann eine sehr interessante Lektüre sein und kann Ihnen auch weiterhelfen, wenn Sie die Herausforderung selbst ausprobieren und einen Schubs auf dem richtigen Weg brauchen.
Lassen Sie uns einen kurzen Blick auf zwei weitere Herausforderungen werfen und dann gehe ich zu den Ressourcen über, die Sie nutzen können, um mehr über CTF zu erfahren, wie man teilnimmt oder sogar wie man eine veranstaltet.
Für unser nächstes Beispiel scheint es an der Zeit, die Aufgabe „xref“ zu wählen, angesichts all der Nachrichten über die jüngsten WannaCry-Ransomware-Infektionen:
Hier sind die Details zu ‚xref‘:
Beachten Sie, dass diese Beschreibung nicht viel hergibt. Das macht diese Aufgabe besonders interessant und zu einer gewissen Herausforderung; wenn Sie es noch nie gemacht haben, wird es schwer sein, überhaupt zu wissen, wo man anfangen soll. Glücklicherweise ist diese Veranstaltung jedoch vorbei, so dass wir einen der Aufzeichnungen verwenden werden, um eine Vorstellung davon zu bekommen, wie die Aufgabe gelöst wurde.
Die URL hier: https://github.com/1337pwnie/ctf-writeups/tree/master/2017/UIUCTF liefert die Details. In diesem Fall ist eine README-Datei in der mitgelieferten .ZIP-Datei enthalten, die einen Hinweis gibt. Um die Aufgabe zu lösen, muss etwas Code geschrieben werden (allerdings scheint in der Aufgabe der Tag „Programmierung“ zu fehlen). Anstatt den gesamten Text hier durchzugehen, können Sie gerne die URL und die Schritt-für-Schritt-Lösung durchgehen.
Nächste Aufgabe:
Goodluck ist eine „p0wn“-Schwachstelle im String-Format, was im Wesentlichen bedeutet, dass ein Treffer gegen sie die Flagge ausspuckt. In der realen Welt würde das Erreichen einer solchen Aufgabe Ihnen im Idealfall ungehinderten Zugriff auf den Zielrechner geben. Hier sind die Details zu goodluck:
Um dieses Problem zu lösen, müssen wir herausfinden, wie wir eine Stringformat-Schwachstelle ausnutzen können, um ein Flag zu erhalten. Die Details dazu sind technisch und tiefgründig, daher finden Sie im Abschnitt „Ressourcen“ unten Links zu den verschiedenen Herausforderungen, die in diesem Beitrag erwähnt werden, und Sie können dann die verschiedenen Aufzeichnungen über die verschiedenen Lösungen nutzen, die zur Lösung der Herausforderungen/Aufgaben verwendet wurden.
Wie kann ich mehr über CTF erfahren?
Es gibt eine Menge Ressourcen im Web, die Sie nutzen können, um herauszufinden, wie man ein CTF spielt oder wie man ein CTF veranstaltet. Durchsuchen Sie Google und YouTube nach Details zu verschiedenen anstehenden Events, an denen Sie teilnehmen können. Viele dieser Veranstaltungen erlauben es, dass Spieler aus der Ferne am Spiel teilnehmen können, so dass Sie nicht unbedingt physisch an einer Veranstaltung teilnehmen müssen, um teilzunehmen. Das spezifische CTF, das ich verwendet habe, um zu diskutieren, wie CTF funktioniert und welche Erfahrungen ich damit gemacht habe, stammt von hier: https://ctftime.org/event/453.
Hier ist eine weitere interessante und nützliche Ressource, die Sie vielleicht nützlich finden: http://www.amanhardikar.com/mindmaps/Practice.html. Unter dieser URL haben Sie Zugriff auf eine Vielzahl von Tools, die alle mit anfälligen Anwendungen, Web-Applikationen, Betriebssystemen usw. zu tun haben. Diese Ressourcen sind ein großartiger Ausgangspunkt.
Wenn Google, YouTube und die anderen hier vorgestellten Ressourcen Ihre Fragen nicht beantworten, können Sie sich gerne direkt an mich wenden und ich werde versuchen, so gut wie möglich zu helfen. Sie können mich auf Twitter @CerebralMisjif kontaktieren. Fühlen Sie sich frei, mir zu folgen oder mich dort anzupingen, und ich werde mein Bestes tun, um alle Ihre Fragen zu beantworten.
Fazit
Dieser Blog ist für eine Person gedacht, die ganz neu beim CTF ist, und er soll Ihnen den Mut geben, an einem CTF teilzunehmen und selbst zu sehen, wie es ist. CTF-Veranstaltungen sind großartige Orte, um andere Informationssicherheits-Enthusiasten/Profis zu treffen, und sie bieten auch gute Gelegenheiten, sich zu vernetzen, seine Fähigkeiten in einer sicheren Umgebung zu erweitern und dabei Spaß zu haben. In einigen Fällen werden Preise an die Gewinner einer CTF-Veranstaltung vergeben und diese können sehr schön hervorgehoben werden, wenn Sie eine Karriere im InfoSec-Bereich anstreben.
Ich hoffe, Sie haben diesen Artikel als nützlich und lehrreich empfunden. Ich hoffe auch, dass Sie ein besseres Verständnis dafür gewonnen haben, was ein CTF ist, wie es dazu beitragen kann, Ihr Wissen, Ihre Fähigkeiten sowie Ihre Fähigkeit, aktuelle Systeme zu verteidigen, zu verbessern, und vor allem, wie viel Spaß ein CTF machen kann! Wie ich bereits erwähnt habe, fangen einige Seiten jetzt an, Remote-Spielern die Teilnahme an CTF-Events zu ermöglichen, also halten Sie die Augen offen, wenn Sie interessiert sind. Ich hoffe, Sie eines Tages bei einem zu sehen; bitte melden Sie sich bei mir, wenn Sie bei einer Veranstaltung sein werden, damit wir versuchen können, uns zu treffen.