Hi, da ich mich nun dazu entschlossen habe, mich mit den Tools in Kali Linux und Hacking in meiner Freizeit zu beschäftigen, wollte ich mal fragen, ob jemand hier weiß, welche Kenntnisse sinnvoll wären, um die in Kali enthaltenen Tools richtig nutzen zu könnten. Ich würde mir nämlich gerne dessen bewusst sein, was ich tue, und vielleicht auch selbst etwas programmieren, statt fertige Skripts ohne Verständnis der Funktionsweise zu nutzen. Außerdem weise ich darauf hin, dass ich keine illegalen Dinge vorhabe, sondern lediglich aus Spaß und Interesse die Sicherheit von PCs, OS's etc. testen möchte (natürlich nur indem ich z.B. innerhalb meines eigenen WLAN-Netzes meine eigenen Geräte zu hacken versuche) Also Tipps zu Themenbereichen, in denen Kenntnisse wichtig wären, wären von mir sehr erwünscht. Was das Programmieren angeht ist für mich kein Problem, ich beherrsche alle gängigen Programmiersprachen (bspw. C, Python, Assembler (x86), Pascal, ..) interessiert bin ich an fast allem - womit könnte man beginnen bzw. in welche Bereiche könnte man das Hacking unterteilen? Danke im Voraus Pascal
Überleg dir was du machen willst, schau dir Tutorials etc an. Einfach mal eben so dein PC hacken wird aber definitiv nichts, außer du installierst vorsätzlich angreifbare Software.
pascal schrieb: > interessiert bin ich an fast allem - womit könnte man beginnen Grundlagen. Wenn Du Dir ein Werkzeug nimmst und überlegst, was Du damit machen kannst, hast Du an der falschen Seite angefangen. Nehmen wir mal einen Portscanner. Was bringt es Dir zu wissen, wenn bei einem Rechner Port 123 offen ist? Wenn Du aber weisst, daß ein bestimmter NTP-Server in der Version x.y eine Schwachstelle hat, nimmst Du einen Portscanner und kannst Deine Rechner nach einem offenen Port 123 und siehst nach, welcher Dienst in welcher Version da läuft. Zum Testen kannst Du Dir also einen Rechner nehmen, den anfälligen NTP-Server installieren und sehen, welcher Scanner Dir welche Ergebnisse bringt und was Du damit erreichen kannst. Eine ganze Werkzeugkiste brauchst Du erst, wenn Du das passende Werkzeug für eine Aufgabe aussuchen kannst.
Horst schrieb: > Nehmen wir mal einen Portscanner. Was bringt es Dir zu wissen, wenn bei > einem Rechner Port 123 offen ist? Dann steht der Rechner schon mal im Verdacht, demnächst als Amplifier an einer UDP Reflection Attack teilzunehmen.
Tja, wenn man kein Script einfach so laufen lassen will, hat man das wahnsinnige Glueck den Code auch anschauen zu duerfen. Den kann man lesen und lernen. Allenfalls besorgst du dir erst noch ein Tutorial zu dieser Script sprache
> mich mit den Tools in Kali Linux und Hacking [..]
Ein paar grundlegende Kenntnisse in Zahnheilkunde wären nicht schlecht,
falls Du Dir damit rein zufällig an meinem WLAN zu schaffen machst.
> Ich würde mir nämlich gerne dessen bewusst sein, was ich tue, und > vielleicht auch selbst etwas programmieren, statt fertige Skripts ohne > Verständnis der Funktionsweise zu nutzen. Wenn ich deine Level richtig einschaetze dann brauchst du erstmal: UNIX System V.4: Begriffe, Konzepte, Kommandos, Schnittstellen (Springer Compass) Gulbins/Obermayr. Olaf
pascal schrieb: > (natürlich nur indem ich z.B. innerhalb meines > eigenen WLAN-Netzes meine eigenen Geräte zu hacken versuche) Dann fang schon mal an die 127.0.0.1 zu hacken! :D
Eric B. schrieb: > Dann fang schon mal an die 127.0.0.1 zu hacken! :D #i hacked 127.0.0.1 Aber mal im Ernst wer weiß schon nicht was 127.0.0.1 für eine IP ist? Olaf schrieb: > UNIX System V.4: Begriffe, Konzepte, Kommandos, Schnittstellen (Springer > Compass) Gulbins/Obermayr. Hört sich gut an. Danke für den Tipp!
pascal schrieb: > Was das Programmieren angeht ist für mich kein Problem, ich beherrsche > alle gängigen Programmiersprachen (bspw. C, Python, Assembler (x86), > Pascal, ..) "Ich beherrsche alle gängigen Programmiersprachen" sind große Worte. ;-) > interessiert bin ich an fast allem - womit könnte man beginnen bzw. in > welche Bereiche könnte man das Hacking unterteilen? Naja, das ist ein ziemlich weites Feld. Zu den Klassikern gehört natürlich zunächst das "Social Hacking", also einen Anwender dahin zu tricksen, daß er Deine Schadsoftware installiert und aufruft. Schon das ist eine hohe Kunst, die bei E-Mails und Telefonanrufen anfängt, über "zufällig verlorene" USB-Sticks oder andere Medien geht, und bei gezielten Angriffen auf einzelne Personen wie einsame Sekretärinnen nicht endet. Ein anderer Klassiker ist das Ausnutzen von Sicherheitslücken in beim Opfer genutzter Software. Auch hier gibt es das ganze Spektrum, von einfachen Pufferüberläufen wie Code Red oder SQL Slammer bis zu logischen Angriffen wie Shellshock oder Heartbleed. Einige solcher Angriffsmuster lassen sich heute durch moderne Technologien wie ASLR oder proaktive Firewalls verhindern, andere leider (noch?) nicht. Noch ein Klassiker ist das Füttern von Software mit Zufallsdaten, womit deren Eingabevalidierung überprüft werden kann. Auf die Weise wurden die aktuellen Sicherheitslücken Meltdown und Spectre entdeckt, OWASP ist da ebenfalls eine sehr interessante Quelle. Wenn Du anfangen willst, solltest Du zuerst lernen, wie ein Betriebssystem intern funktioniert, und einfache Mechanismen wie deren Dateisystempuffer, Copy-On-Write, Speicherverwaltung und die Verarbeitung von Netzwerkpaketen erklären können. Danach solltest Du Dir ein paar Exploits anschauen, um zu verstehen, wie und warum sie funktionieren. Ansonsten: viel Spaß!
Sheeva P. schrieb: > Ansonsten: viel Spaß! Danke! Dann habe ich ja schonmal was, womit ich anfangen kann. Sheeva P. schrieb: > Ich beherrsche alle gängigen Programmiersprachen" sind große Worte. ;-) Das kommt natürlich darauf an, was man als gängige Programmiersprache definiert.
pascal schrieb: > Sheeva P. schrieb: >> Ich beherrsche alle gängigen Programmiersprachen" sind große Worte. ;-) > > Das kommt natürlich darauf an, was man als gängige Programmiersprache > definiert. Es ging da eher um das Wort "berherrsche", denn zu C wuerde ich auch autohell zaehlen in der du offensichtlich noch nicht warst. Zu deinem Vorhaben: Eigentlich brauchst du saemtliche Computergrundkenntnisse (wobei die fuer viele schon recht erweitert sind). Hier nur mal eine kleine Liste, was mir so ganz spontan einfaellt: - Auf einer Shell solltest du dich zu Hause fuehlen, um bei Fehlermeldungen ueberhaupt eine Diagnose starten zu koennen (strace, ptrace, tcpdump (oder wireshark fuer bunt), /proc, ...) - Netzwerkprotokolle (handshake, mtu, die drei gebraeuchlichsten alla TCP,UDP,ICMP) - Wenn du dich mit WLAN-cracking beschaeftigen willst, dann solltest du dir auch die IEEE802 spezifikation ansehen (fuer die diversen paket-typen alla auth/deauth/assoc) - Hashing-algorithmen fuer password-cracking, Funktionsweise von salts, rainbowtables, etc. - Umgebungsvariablen (LD_PRELOAD, LD_DEBUG, ...) - Fuer Hardware-hacking solltest du dir die diversen Schnittstellen anschauen (seriell, i2c, spi, ...) - HTTP-header und requests (wie werden POST/GET/REQUEST/HEADER requests abgeschickt) - Verstaendnis von syscalls (z.B. stdlib und Konsorten) - Zertifikate (was ist eine root-ca, was heisst signieren, welche Vertrauensstufen, pubkey/privkey) - DNS (glue-records, mx, c-names, dnssec, ...) - Dateicontainer/formate (z.B. als Stichwort zip-bombs, oder Payloads in Officedokumenten, Dateiheader, Verwendung eines Hexeditors) Ein Teil davon klingt banal anderes braucht einige Zeit zum einarbeiten. Mit kali kannst du alles genannte (und noch mehr) machen. Wenn die Grundlagen sitzen, dann kannst du auch mal mit metasploit, aircrack, medusa, nmap (+scripts) etc. spielen. Das schoene ist, wenn man mal genuegend Grundlagen gesammelt hat, ergeben die vorher gesammelten Puzzleteile ploetzliche alle Sinn. Ich bin immer noch weit davon entfernt eigene Exploits zu schreiben (das hoechste der Gefuehle war mal eine Funktion per LD_PRELOAD zu ueberschreiben, sodass ein schlecht konfiguriertes sudo ausgebelt werden konnte - die Funktion hat dann eine Shell geforkt, normalerweise laesst sudo aber keine Umgebungsvariablen zu, das war also eine Fehlkonfiguration). Viele PoC (proof of concept) gibt es auch als einzelne kleine tools, ohne gleich metasploit anwerfen zu muessen. Ein Kernel der fuer dirtycow verwundbar ist, laesst sich damit z.B. wunderbar testen und da der Programmcode sehr uebersichtlich ist, auch gut nachvollziehen, was dort passiert.
Du mußt Dich mit Docker beschäftigen. Docker ist die Virtualisierung, ja das Dateisystem der Zukunft. Bald wird jedes Programm in einem Container laufen, die praktisch von einem Bootsystem gestartet werden. Da die Programme ja untereinander kommunizieren müssen, sei es auf dem selben Rechner, einem befreundeten Cluster oder auch über das, was dem heutigen Internet folgen soll, sind genau diese Schnittstellen die Spielwiese unserer Zukunft. ;--D mfg
~Mercedes~ schrieb: > Du mußt Dich mit Docker beschäftigen. Aber frühestens nach den Basics. > Docker ist die Virtualisierung, ja das > Dateisystem der Zukunft. Docker ist gerade keine Virtualisierung -- und auch kein Dateisystem.
Sheeva P. schrieb: >> Docker ist die Virtualisierung, ja das >> Dateisystem der Zukunft. > > Docker ist gerade keine Virtualisierung -- und auch kein Dateisystem. Redet Ihr von verschiedenen Dockern? Die Luxuslimousine von: https://de.wikipedia.org/wiki/Docker_(Software) und Du von dem, was mir Synaptic an Info ausspuckt: "Docker ist eine Andockanwendung (»WindowMaker dock app«), die als Systemablage für beliebige Arbeitsumgebungen fungiert. Dies erlaubt es Ihnen, eine Systemablage zu haben, ohne dass das Panel von KDE/GNOME läuft. Docker wurde entworfen, um mit Openbox 2 zu arbeiten, aber es sollte problemlos in beliebigen Fenstermanagern laufen."
pascal schrieb: > interessiert bin ich an fast allem - womit könnte man beginnen bzw. in > welche Bereiche könnte man das Hacking unterteilen? Bevor Du Lücken remote angehst, könntest Du sie ja erstmal lokal angehen. Denn oftmals besteht der remote-Angriff darin, auf dem Zielrechner Code zur Ausführung zu bringen, indem man eine Lücke ausnutzt, die auf dem remote-Rechner eine lokale ist. Ein grundlegender Klassiker ist dabei natürlich der buffer overflow, den Du als C-Programmierer ja schon erlebt haben wirst. Ein paar Links dazu: https://lthieu.wordpress.com/2012/11/10/exploit-stack-based-buffer-overflow-using-nop-sled-technique/ https://dhavalkapil.com/blogs/Buffer-Overflow-Exploit/ http://www.securiteam.com/securityreviews/5OP0B006UQ.html http://insecure.org/stf/smashstack.html
Nop meinte: > Ein grundlegender Klassiker ist dabei natürlich der buffer overflow, den > Du als C-Programmierer ja schon erlebt haben wirst. Lerne Shellcode assemblieren, das ist Code, der keine Nullbytes enthalten darf, da er in die Eingabemaske des Programmes eigegeben wird und den Stack der Anwendung manipuliert und / oder ein gemeinen Sprung in eine Library ermöglicht die Dich dann zum "ROOT" macht. Das ist wahre Zauberei, das erzeugt Gänsehaut auf dem Rücken. ;-P mfg
~Mercedes~ schrieb: > Lerne Shellcode assemblieren Das hört sich mächtig spannend an. Werde ich versuchen! Nop schrieb: > Ein grundlegender Klassiker ist dabei natürlich der buffer overflow, den > Du als C-Programmierer ja schon erlebt haben wirst. Danke für die Links! Moe schrieb: > Es ging da eher um das Wort "berherrsche" Ok, dann nenne ich es mal "Ich kann damit soweit umgehen, dass ich den Source-Code der meisten Software, den ich bisher gelesen haben, auf Anhieb verstand. @ Moe / Sheeva Plug Danke für die vielen Infos!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.