Neustart von Scriptkiddy zu Professionellem -> wo anfangen?

Hallo! Zunächst mal zu mir, ich bin vor kurzem 16 geworden, beschäftige mich aber bereits seit einigen Jahren mit Web und Application Security bzw generell Pentesting.
Ich brauche hier nun euren Rat. Ich habe mit 9 angefangen ein wenig mit Batch und Visual Basic rum zu spielen, in Batch "Viren" (ich weiß) gescripted etc... Ich habe mich dann in einigen Boards mit der Zeit angemeldet, darunter bspw das euch wohl bekannte hackforums, von welchen ich nun im Nachhinein sagen muss dass es vollkommener Unsinn war und die meisten Leute auf diesen Boards selbst wenig bis keine Ahnung von der Materie haben.
Nun, mein Problem besteht nun also daraus, dass ich durch meine Aktivitäten auf diesen Boards eben mir dort auch mein "Wissen" angeeignet habe. Das Wissen was dort verbreitet wird besteht aber nun mal aus "mach das so, dann passiert das weil das halt so ist" Tutorials. Nun kann ich also SQL Injections, Cross Site Scripting, File Inclusions und so fort auswendig, weiß aber nicht warum das System das macht und wie einige Systeme dagegen abgesichert sind.
Ich möchte also prinzipiell einen "Reset" wagen sage ich mal, ich möchte mir das Wissen von hinten erarbeiten so dass ich später auch weiß warum diese Lücke nun mal eine Lücke ist und warum sie auf anderen Systemen nicht funktioniert. Ich gliedere einfach mal, was ich an "Wissen" besitze und vielleicht kann mit hier ja jemand helfen, wo ich am besten einsteigen sollte und wo ich anfangen sollte zu lernen. Ich möchte mich wie gesagt hauptsächlich auf Web Security und evtl auch Application Security spezialisieren, Metasploit usw.
Also, was ich mir in den vergangenen 7 Jahren angeeignet habe wäre:
- Visual Basic.NET fortgeschrittene Kenntnisse
-Grundlegende HTML, C#, Batch und Java Kenntnisse
- Kann SQLi ausführen, wobei ich nicht weiß was im Hintergrund geschieht
- Beherrsche XSS relativ fortgeschritten und kann auch ungefähr sagen was da passiert, jedoch nicht wie man sich schützen kann
- File Inclusions (LFi/RFi), hier verstehe ich auch eigentlich was im Hintergrund passiert und wie man sich schützen kann
- Anonymität via VPN, TOR, Proxies. Kann auch sagen was was macht, die genaue Funktionsweise dieser Dinge verstehe ich jedoch nicht
-Fortgeschrittene Windows Kenntnisse und grundlegende Linux Kenntnisse (bin mittlerweile nur noch auf Ubuntu unterwegs)

Ihr seht also, ich würde im Moment wohl als "Scriptkiddy" (verzeiht mir wenn ihr einen anderen Begriff bevorzugt) höchstens durchgehen und eben das möchte ich ändern. Die Frage ist eben, wie. Wo kann ich (neu) einsteigen, wo kann ich lernen und wo vorhandenes Wissen testen und einsetzen?

Ich wäre wirklich dankbar für jegliche Vorschläge!
 
Ich rate zu folgenden Vorgegen, wenn Deine Zielsetzung ist, dich mit Application Security und Web Security gut auszukennen:

Zunächst einmal ist "Application Security" ein sehr weit gefasster Begriff.
Auch Ring 0 Programme wie Treiber (Das sind Prozesse, bei Denen eine Applikation auf dem gesamten Befehlssatz der CPU zugreifen kann) sind Applikationen. Wenn Du auf einer solchen Ebene Arbeiten willst brauchst Du in jedem Fall ein umfassendes Verständnis von x86/ x64 Assembler, bzw. der Architektur des Prozessors auf dem Dein Betriebssystem operiert. Assembler ist eine für menschen lesbare Darstellung von CPU Befehlen.
Der Grund weshalb das wichtig ist, liegt in der Natur vieler Exploits, die auf Memory Corruption basieren. Einzeln nachvollziehen, was auf unterer Ebene geschieht, kannst Du nur mit einem Debugger, der Dir den Assembler Code, den Stack und die Statusregister anzeigt.
Darüber hinaus ist ein umfassendes Wissen über das Betriebssystem auf dem die entsprechende Applikation läuft erforderlich. Also der gesamte Aufbau, wie das Betriebssystem auf Ebene der Hardware arbeitet (APIC, Global Descriptor Table, Local Descriptor Table, Interrupt Descriptor Table, UEFI, usw. ) bis zu den stark abstrahierten Vorgängen auf User Mode Ebene.
Für Das Betriebssystem Windows empfehle ich Dir in diesem Fall "Windows Internals" von Mark Russinovich.
Netzwerkprotokolle sollten auch vertraut sein, erst einmal der OSI Modell allgemein nachvollziehen, dann sich an spezielle, wichtige Protokolle wie TCP/ UDP heran arbeiten.
Für das Finden von Sicherheitslücken sind Kenntnisse in Fuzzing, formaler Grammatik und Reverse Engineering sehr hilfreich.

Hinsichtlich der Programmiersprachen sollte man in jedem Fall neben Assembler auch "portable Assembler" C können. Das ist sehr wichtig, nahezu jedes Programm nutzt Funktionen aus der C Standard Library, auch die Interpreter von Sprachen wie Python, Perl, Ruby,...
 
Zurück
Oben