Wie lernt man Pentesting?
Ich suche einen online-tutorial oder-Kurs, in welchen man Pentesting lernt. Habe bis jetzt eher Beschreibungen gefunden, aber keine Anleitungen. Kennt da jemand eine Seite (auf deutsch)?
5 Antworten
Naja es gibt keine Anleitung sondern wenn dann dutzende Dinge die man lernen muss vom Programmieren über Systemadaministration & das Einrichten/Betreiben von Netzwerkdiensten, Netzwerktechnik & -Protokolle bis zur Arbeitsweise der Hardware (Prozessor, Speicherverwaltung, etc.).
Ich habe das ganze hier etwas ausführlicher beschrieben: https://hackenlernen.com/blog.php?t=hacken_lernen_hacker_werden
Du kannst als Pentester keine Konfigurationsfehler in den verschiedensten Serverdiensten aufdecken wenn du dich nicht sehr sehr gut mit den jeweiligen Programmen und dem verwendeten Betriebssystem auskennst.
Um Dinge wie Buffer-Overflows zu finden und auszunutzen musst du mit der Arbeitsweise des Prozessors und Arbeitsspeichers sowie der Sprache Assembler vertraut sein.
Der einfachste Einstieg ist Webhacking aber selbst dazu solltest du zumindest PHP, MySQL, Javascript, HTML und CSS sehr gut kennen. Dazu wären Grundlagen zur Arbeitsweise des HTTP-Protokolles und der diversen Webserver (Apache, NGINX, ...) sehr zu empfehlen. Da die meisten Webseiten auf Linux-Servern laufen solltest du dich ebenfalls Grundsätzlich mit Linux auskennen und da vor allem mit der User- und Rechteverwaltung. Dazu kommen Dinge wie Confixx, CPanel, etc. die man kennen sollte und natürlich auch noch FTP oder SSH für den Serverzugriff falls erlaubt. Was erlaubt ist verrät ein Portscan was uns schon wieder zu den Netzwerkgrundlagen und den Protokollen TCP, IP, ... bringt.
Selbst das unterste Level setzt also schon eine ganze Menge an Wissen voraus. Daher dauert es eher Jahre so etwas zu lernen wenn man komplett bei Null anfängt denn du brauchst neben dem Wissen um die bekannten Sicherheitslücken (welches man in wenigen Tagen erwerben kann) noch das Wissen eines Webentwicklers und eines Serveradministrators was nun mal zwei komplette Berufsausbildungen sind!
Ja habe ich auch mal kurz Quer gelesen aber ich besitze es selber nicht.
Ich lerne weiter java und mache mehr HTML
... Ich würde dir zu Python raten. Die Sprache ist in dem Bereich sehr beliebt und sehr viel Exploitcode ist darin geschrieben.
Außerdem machen es viele der Module sehr einfach selber Angriffe zu automatisieren oder eigene Angriffsscripte zu schreiben.
und mache mehr HTML
... HTML allein reicht nicht selbst für HTMLi brauchst du zumeinst CSS zusätzlich.
... außerdem wäre JavaScript für XSS-Angriffe sehr wichtig.
... für SQLi solltest du fit in SQL sein und auch die kleinen unterschiede zwischen MySQL, MSSQL, PostgreSQL, etc. kennen.
... für CSRF solltest du zumindest ansatzweise wissen wie das HTTP-Protokoll arbeitet und gleiches gilt wenn du mit einem Intercepting-Proxy wie ZAP oder BurpSuite AJAX-Seiten analysierst.
... Wenn es an eine echte Webseite geht dann kommen Firewalls, WAFs, Loadbalancer, etc. ins Spiel und du solltest zumindest wissen wie dir diese Dinge das Leben schwerer machen und wie man darum herum arbeiten kann.
Außerdem solltest du diverse Lücken / Fehlkonfigurationen in entsprechenden Seiten, Programmen, Serverdiensten, etc. kennen.
Keiner sagt, dass du das nicht kannst aber eben nicht in 1 Monat und auch nicht in 3 Monaten denn höchstwahrscheinlich fehlt dahinter noch eine 0!
Webhacking ist dabei ein sehr einfaches Gebiet und gleichzeitig eine gute Übung um zu lernen wie man Angriffe selber schreibt / entwirft.
Bedenke auch, dass automatische Tools Fehler machen - du willst garnicht wissen wie oft ich SQLmap nicht nutzen konnte da das Tool keinen Weg fand. Viele der von SQLmap als false-positive dargestellen Parameter werden nur von der WAF gerettet und sobald man es schafft diese auszutricksen klappt die SQLi. Es reicht also nicht nur SQLmap zu benutzen sondern man muss auch wissen wann das Tool Sinn macht und wann nicht und wie man es zur Not auch von Hand hinbekommt.
Kannst mir gern mal eine PM senden wenn du quatschen willst.
Wenn du schon fragen musst: Auf deinem aktuellen Level am besten gar nicht. Dir fehlen einfach noch viiiieeeel zu viele Grundlagen, um wirklich effektiv Pen zu testen. :)
An deiner Stelle würde ich mich erst mal mit Netzwerktechnik und der Theorie dahinter befassen:
Das ist jetzt nicht sooo dick, aber auch nicht soooo dünn, und als blutiger Anfänger bist du allein damit eine gute Zeit beschäftigt.
Danach solltest du das lernen, was jeder popelige Administrator so drauf hat, also z. B. LPIC 1 und 2:
https://www.amazon.de/Das-Komplettpaket-LPIC-1-LPIC-2-Pr%C3%BCfungszielen/dp/3836263793/
Dazu solltest du natürlich als absolute Basics noch den gängigen Webkram lernen, also HTML, CSS, JS und mindestens eine serverseitige Sprache wie PHP, Python, Ruby, Java ... am besten jedoch alle genannten.
So, und JETZT bist du auf einem Niveau, auf dem du dich mal so langsam in Pentesting einarbeiten könntest. Ohne all das vorher genannte Wissen, wirst höchstens lernen, wie man Wireshark anschmeißt, aber wirst kaum in der Lage sein, die Ausgabe zu interpretieren.
Aber dann bist du noch lange nicht gut, sondern blutiger Pentest-Anfänger und es wird Jahre dauern, wirklich gut zu werden. Später solltest du dann auch Wissen was Owasp, CVE usw. bedeutet, und dich an entsprechenden Stellen schlau machen.
Und all das - bis hier hin - wird nicht ausreichen, um als halbwegs akzeptabler Pentester zu gelten, denn dazu gehört noch viel viel mehr!
Also vergiss Pentesting fürs erste, und besorg dir lieber die oben verlinkten Bücher. (Und nein, eine Video-Lern-Reihe die den obigen Büchern, sowohl im Umfang als auch im Tiefgang, auch nur Nahe kommt, gibt es nicht, auch nicht kommerziell! Du wirst sehr sehr SEHR viel lesen müssen!)
Ich schätze, im besten Falle bist du mindestens 5 Jahre damit beschäftigt ... Vollzeit. Und ich wette, du hast die Sache gewaltig unterschätzt. Bestimmt dachtest du, du kaufst dir ein Buch übers Pentesting, und kommst dann überall rein? Nein, so läuft das nicht, sorry! :)
Also, du hast echt eine eigenartige Auffassung dieser Dinge. Bei dir ist es möglich, dass du selbst ein Scriptkiddie bist. Was machst du eigentlich Informatik-mässig, also machst du das beruflich? Gib doch zu, dass du hacking schlecht findest und dass niemand es lernen sollte deiner Meinung nach, oder? Ist nicht persönlich gemeint.
Was machst du eigentlich Informatik-mässig, also machst du das beruflich?
Ich mache beruflich Softwareentwicklung und Pentesting und habe zum Thema Hacking ein halbes dutzend Bücher veröffentlicht. Ab Anfang nächsten Jahres biete ich zusätzlich noch Workshops in dem Bereich an.
Gib doch zu, dass du hacking schlecht findest und dass niemand es lernen sollte deiner Meinung nach, oder?
Nein, ich gehe sogar soweit zu sagen, dass das in allen Schulen unterrichtet werden sollte sonst wird es immer mehr Opfer von Cyberkriminellen geben!
Ich glaube, wenn ich alles tun würde, was du forderst, das wäre einfach Zeitverschwendung.
Es hat auch einige Jahre Berufspraxis gebraucht bis ich in allen Bereichen derart fit wurde das ich mich an Pentesting wagen konnte.
Es ist ein himmelweiter Unterschied ob du mit ein paar Tools irgendwo herumspielst oder Bug Bounty (meist Webhacking auf Erfolgsbasis) betreibst denn da sind die schönen 0815-Tools auch schon verboten denn einfach 3 Tage lang SQLmap oder Vega gegen alles laufen lassen kann der Webentwickler selber!
Wenn du rumspielen willst und erste Erfahrungen sammeln dann kannst du Bug Bounty versuchen denn da arbeitest du gegen zig andere und was du übersiehst wird dann von irgendwem anders gefunden. Da kannst du als Anfänger also gern mitmachen.
Bei einem richtigen Pentest bist du der einzige und was du übersiehst bleibt dann angreifbar sofern die Firma nicht mehrere Pentester beauftragt. Da gibt es also nicht viel Spielraum für Fehler!
Was ich dir empfehle sind einige der Dinge und Zertifizierungen die ich und viele Berufskollegen aktiv haben oder zumindest in der Vergangenheit hatten. Natürlich sind das bei weitem nicht alle ich habe bzw. hatte. (Zertifizierungen verfallen nach einer gewissen Zeit wenn man sie nicht erneuert)
Du kannst natürlich auch den akademischen Weg beschreiten und Informatik mit Spezialisierung auf Cybersicherheit studieren.
Ich habe mein Wissen Großteils aus Büchern und mittlerweile eine Sammlung von fast 200 Büchern zu den Themen IT-Sicherheit, Programmieren, Administration, Netzwerktechnik, etc. und jedes der Bücher nicht nur einmal gelesen sondern mehrfach und komplett durchgearbeitet mit allen Beispielen und eigenen darauf aufbauenden Übungen. Dazu kommen hunderte Seminare, Vorträge, Videokurse, etc. und sicherlich zehntausende an Youtube-, D-Tube, Vimeo- und Wasweißich-Videos.
Ich finde, dein Problem ist, dass du die in zwei Sorten einteilst, in Profis und Nichtskönner.
Stimmt denn über 90% derjenigen die sich an dem Gebiet versuchen sind "Nichtskönner" die nur mit autom. Tools herumprobieren ohne viel zu wissen. So jemand kann bei Bug Bounty Programmen mitmachen und findet sicher ab und an etwas und macht ein wenig Taschengeld nebenbei aber das macht einen noch lange nicht zum Pentester.
Aber auch Anfänger können bisschen etwas.
Ja nur ein bisschen etwas reicht nicht wenn Jobs und Existenzen von deiner Arbeit abhängen! Oder würdest du gern vom Anfänger-Chirung der ein bisschen was kann am Gehirn operiert werden?!
Redest du mit mir, oder mit markb1980? Ich kann den Austausch unter meiner Frage jetzt nicht allzu sehr nachvollziehen. :)
Falls es an mich gerichtet ist:
Ich finde, dein Problem ist, dass du die in zwei Sorten einteilst, in Profis und Nichtskönner.
Das ist aber leider nun mal so. Je mehr man lernt, desto professioneller wird man. Berufseinsteiger auf dem Gebiet studieren nicht selten über den Master hinaus. Das dauert gerne mal 10 Jahre und bedeutet so gut wie tägliches lernen.
Vergleich mal die Kenntnisse damit, die du aus einem paar hundert Seiten dicken Büchlein mitnimmst. Das ist verglichen damit GAR NICHTS. :)
Und das Buch zum Thema Netzwerktechnik ist so eine minimale Voraussetzung, wie die Fähigkeit schreiben und lesen zu können. Wie willst du denn sonst bitte so etwas Popeliges wie den Sniff einer DNS-Anfrage analysieren, wenn du nicht weißt, wie ein UDP-Paket aufgebaut ist?
Ich glaube, wenn ich alles tun würde, was du forderst, das wäre einfach Zeitverschwendung.
Das, was ich fordere IST Pentesting per Definition! Ernsthaft, du hast ein völlig verzerrtes Bild von der Sache. Denkst du ERNSTHAFT, dass du ein paar Tutorials liest, und dann auch nur IRGENDWAS selbstständig auf die Beine stellen kannst, was nicht eng an die Beispiele deines Tutorials angelehnt ist?
Ich will effektiv lernen.
Dann lese sehr viel sehr dicke und sehr tiefgehende Fachliteratur. So lernt JEDER echte Pentester. Alles andere hat weder etwas mit effektiv lernen, noch mit Pentesting zu tun.
Man merkt, dass du noch sehr jung bist, und noch nie in deinem Leben wirklich gelernt hast. Komm erst mal an die Uni, dann reden wir weiter!
Was machst du eigentlich Informatik-mässig, also machst du das beruflich?
Ich mache seit 30 Jahren hauptsächlich Reverse-Engineering, nicht nur von Software, sondern auch von verschlüsselten Binärblobs, Protokollen, Hardware, etc.
Dazu gehört die Analyse von Malware und etwas Forensik. Falls du das nicht einordnen kannst, dann stell dir das einfach so vor, dass Leute wie ich gerufen werden, wenn die Pentester über einen realen Einbruch gestolpert sind, nicht weiter kommen, und diesen analysiert haben wollen.
Falls die Glocken immer noch nicht leuten: Ich bin das, was man in den Medien einen Auftrags-Hacker nennt, wobei ich darauf bestehe, dass das ein völlig legaler und wichtiger Beruf ist.
Gib doch zu, dass du hacking schlecht findest und dass niemand es lernen sollte deiner Meinung nach, oder?
Wie gesagt, ich kann deine Aussagen unter meiner Antwort nicht einordnen, und weiß nicht, was das soll.
Gib doch zu, dass du hacking schlecht findest und dass niemand es lernen sollte deiner Meinung nach, oder?
Gerade ich bin jemand, der Hacking per Definition NICHT schlecht finden dürfte, findest du nicht auch? (Vorausgesetzt es ist legal! Wenn irgendwelche dummen Kinder Dritten schaden, ist das natürlich totaler Mist.)
Alles in allem bist du ein Paradebeispiel für einen typischen Schüler, der Hacker werden will, aber a) keine Ahnung davon hat, was das eigentlich überhaupt ist, und b) den Lernaufwand um Faktoren unterschätzt.
Zum Hacking / Pentesting gehört nun mal Lesen. Viel Lesen. SEHR viel Lesen. Und wenn dir das nicht passt, dann ist das eben nichts für dich. Punkt. :)
AN @MARKB1980 Also ich habe irgendwie vor, ein Hobbypentester /Amateurpentester zu werden. Ich will das nur zum Spaß machen und nichts damit verdienen oder überhaupt irgend etwas ernsthaftes damit machen. Ich gebe dir in allen Punkten Recht und das ist wirklich nett von dir, dass du mich umfassend informiert hast.
Also ich habe irgendwie vor, ein Hobbypentester /Amateurpentester zu werden
Das gibt es nicht! Du sprichst davon Hobbymäßig / Amateurmäßig zu den top 1% der IT-Spezialisten weltweit gehören zu wollen.
Wie soll das gehen?!
Wie gesagt egal ob du das ganze "hobbymäßig", unentgeltlich oder sonst wie betreiben willst - du brauchst das Wissen was wir dir aufzählen so oder so. Ich pers. würde nicht zig Jahre harte Arbeit, viele teure Fachbücher und Kurse durchackern wollen und dann damit nicht verdienen. Das wäre Zeit- und vor allem Geldverschwendung!
Was du schnell sein kannst ist ein Scriptkiddy das nur planlos allen möglichen Tutorials folgt. Sobald die Tools dann nicht weiter kommen braucht man das Wissen desjenigen der die Tools geschrieben hat und da sind wir wieder beim Punkt.
Ich finde, dein Problem ist, dass du die in zwei Sorten einteilst, in Profis und Nichtskönner. Aber auch Anfänger können bisschen etwas. Ich glaube, wenn ich alles tun würde, was du forderst, das wäre einfach Zeitverschwendung. Ich will effektiv lernen.
@Habenulae Also ich stimme dir zu, aber ich finde, dass es nicht so ist, dass man entweder sich den ganzen Tag damit beschäftigen soll, ansonsten wäre es sinnlos. Ich finde hacken geht leicht und diese Meinung habe ich von 'lolsec'.
Da gibt es nicht einfach Tutorials. Dafür muss man sich viel Wissen aneignen und braucht Kreativität. Hardwarekenntnisse, Programmierkenntnisse usw.
Werde Programmierer oder Informatiker, dann lernst du es quasi automatisch.
Wie wäre es als erste Übung mal zb google zu befragen....
Voraussetzung ist gutes, aktuelles Wissen in der IT, programmierkenntnisse,.... dann kannst du die Herausforderung annehmen komplexe Systeme zu testen, glaube aber nicht das du derzeit diese voraussetzungen hast wenn du so fragen musst
also ich sehe das locker und will es easy angehen. Ich lerne weiter java und mache mehr HTML. Netzwerk-Technik schaue ich mir und Einstieg in Linux.
Übrigens habe ich ein gutes e-book gefunden “engebretson hacking“. kennst du das?