Tag 2 OSCP | Weitere Befehle

Reading Time: ( Word Count: )

Dezember 7, 2020
Nextdoorsec-course

Hallo Freund, ich hoffe, Sie haben die gestern gezeigten Befehle geübt. Heute folgen weitere Befehle, um sich mit dem Terminal vertraut zu machen, wie man, apropos, which, whatis, locate und find.

 

Mann-Seiten

Die Handbuchseiten enthalten die Dokumentation zu den Befehlen der Befehlszeile. „man“ ist der Name des Programms, das diese Seiten anzeigt. Schauen wir uns die Manpage für den Befehl„whoami“ an. Ebenfalls kurz behandelt an Tag 1.

┌──(kali㉿kali)-[~] └─$ man whoami
WHOAMI(1) Benutzerbefehle WHOAMI(1) NAME whoami - Druck der effektiven Benutzerkennung SYNOPSIS whoami[OPTION]... BESCHREIBUNG Druckt den Benutzernamen, der mit der aktuell gültigen Benutzerkennung verbunden ist. Dasselbe wie id -un. --help diese Hilfe anzeigen und beenden --version Versionsinformationen ausgeben und beenden AUTOR Geschrieben von Richard Mlynarik. ...

 

Der Inhalt der Handbuchseiten ist in Abschnitte unterteilt, die wie folgt nummeriert sind:

Abschnitt Inhalt
1 Benutzer-Befehle
2 Programmierschnittstellen für Kernel-Systemaufrufe
3 Programmierschnittstellen zur C-Bibliothek
4 Spezielle Dateien wie Geräteknoten und Treiber
5 Dateiformate und Konventionen
6 Spiele und Bildschirmschoner
7 Gemischtes
8 Systemverwaltungsbefehle und Dämonen

 

 

 

 

 

 

 

 

 

Bei einer Standardsuche mit dem „man“ erhalten wir Ergebnisse aus dem ersten Abschnitt. Wir können jedoch den Zusatz „-k“ hinzufügen, um nach einem Schlüsselwort in allen Abschnitten der Dokumentation zu suchen. Versuchen wir es mit dem „passwdBefehl“.

┌──(kali㉿kali)-[~] └─$ man -k passwd
chgpasswd (8) - Aktualisieren von Gruppenpasswörtern im Batch-Modus chpasswd (8) - Aktualisieren von Passwörtern im Batch-Modus expect_mkpasswd (1) - Generieren eines neuen Passworts, optional Anwendung auf einen Benutzer gpasswd (1) - Verwalten von /etc/group und /etc/gshadow ...

 

Wir bekommen viele Befehle, aber der, den wir brauchen, versteckt sich irgendwo dazwischen. Wir müssen unsere Suche mit Hilfe von regulären Ausdrücken eingrenzen. Sie können sich die folgende
Seite
zum besseren Verständnis von regex und zum Üben auf dieser
Website
oder auf Ihrer Kommandozeile.

In unserem Beispiel unten haben wir ein Caret(^) und ein Dollarzeichen($) verwendet, um die gesamte Zeile abzugleichen und Übereinstimmungen mit Teilstrings zu vermeiden.

┌──(kali㉿kali)-[~] └─$ man -k '^passwd$'
passwd (1) - Benutzerpasswort ändern passwd (1ssl) - Passwort-Hashes berechnen passwd (5) - die Passwortdatei

 

Nun können Sie die obige Abschnittsnummer (5) verwenden, um eine spezifische Suche durchzuführen.

┌──(kali㉿kali)-[~] └─$ man 5 passwd

 

 

Apropos als Alternative für Mann -k

Wie wir oben gesehen haben, sucht„man -k“ nach einem Schlüsselwort in der Beschreibung der Befehle (ohne die Verwendung von regulären Ausdrücken). „apropos“ macht das Gleiche, aber ohne die Option„-k“ hinzuzufügen.

Sie können es selbst ausprobieren, indem Sie„man -k passwd“ &„apropos passwd“ eingeben, die Ergebnisse sollten die gleichen sein.

┌──(kali㉿kali)-[~] └─$ apropos passwd
chgpasswd (8) - Aktualisierung von Gruppenpasswörtern im Batch-Modus chpasswd (8) - Aktualisierung von Passwörtern im Batch-Modus expect_mkpasswd (1) - neues Passwort generieren, optional auf einen Benutzer anwenden gpasswd (1) - /etc/group und /etc/gshadow verwalten grub-mkpasswd-pbkdf2 (1) - Hash-Passwort für GRUB generieren ...

 

 

Suchen von Dateien mit „welche“

Angenommen, Sie haben zwei Versionen desselben Programms auf Ihrem Computer. Daher können Sie den „welcher„Befehl, um herauszufinden, welche Version Ihre Shell verwenden wird.

Der Befehl which“ durchsucht die Verzeichnisse, die im $PATH definiert sind Umgebungsvariable. Der $PATH ist lediglich eine Sammlung von Pfaden, von denen jeder auf ein Verzeichnis verweist. Wir können die „echo„Befehl, um die Verzeichnisse in unserem Pfad herauszufinden.

┌──(kali㉿kali)-[~] └─$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

 

Die Ausgabeliste trennt jeden Pfad mit Doppelpunkten (
:
). Mit dem Befehl„which“ wird die Suche von links nach rechts gestartet. Der erste Pfad wird also„/usr/local/sbin“ sein und danach„/usr/local/bin“ und so weiter. Testen wir dies mit der Eingabe von„which apropos„.

┌──(kali㉿kali)-[~] └─$ was apropos
/usr/bin/apropos

 

Der Standardbefehl hält an, wenn er ein Ergebnis gefunden hat. Wenn wir jedoch die Option -a (all) verwenden, wird„which“ die Suche fortsetzen.

┌──(kali㉿kali)-[~] └─$ die -a apropos
/usr/bin/apropos /bin/apropos

 

Oben werden alle in den Verzeichnissen unserer $PATH-Umgebung gefundenen Treffer aufgelistet, wobei die Suche von links nach rechts beginnt. Schauen wir sie uns nun an und sehen wir den Unterschied. Siehe Tag 1 für den Befehl ls.

┌──(kali㉿kali)-[~] └─$ ls -l /usr/bin/apropos lrwxrwxrwx 1 root root 6 Jul 5 05:06 /usr/bin/apropos -> whatis
┌──(kali㉿kali)-[~] └─$ ls -l /bin/apropos lrwxrwxrwx 1 root root 6 Jul 5 05:06 /bin/apropos -> whatis

 

ls“ (Liste),„-l“ (lange Liste). Die„5“ vor der Uhrzeit (05:06) ist die Größe der ausführbaren Datei in Bytes (kann mit den Größen der gefundenen Dateien verglichen werden). Nachdem wir beide überprüft haben, sehen wir, dass sie auf denselben symbolischen Link oder dieselbe Verknüpfung verweisen, nämlich„whatis„.

Testen wir diesen neu gefundenen Befehl:

┌──(kali㉿kali)-[~] └─$ whatis passwd passwd (5) - die Passwortdatei passwd (1) - Benutzerpasswort ändern passwd (1ssl) - Passwort-Hashes berechnen
┌──(kali㉿kali)-[~] └─$ man -k '^passwd$' passwd (1) - Benutzerpasswort ändern passwd (1ssl) - Passwort-Hashes berechnen passwd (5) - die Passwortdatei

 

Zusammenfassung: Der„whatis„-Befehl kann als Alternative zum„man„-Befehl mit der Option„-k“ und dem regulären Ausdruck„^“ und„$“ verwendet werden, der viel leichter zu merken ist.

Es gab keinen Unterschied zwischen diesen beiden Dateien, außer ihrem Verzeichnis. Um ganz sicher zu gehen, überprüfen wir beide Versionen mit dem „–versionOption“.

┌──(kali㉿kali)-[~] └─$ /usr/bin/apropos --version apropos 2.9.3
┌──(kali㉿kali)-[~] └─$ /bin/apropos --version apropos 2.9.3

 

 

Eine andere Möglichkeit, Dateien zu „finden

Die „finden SieDer Befehl „locate“ ist der schnellste Weg, um die Speicherorte von Dateien und Verzeichnissen in Kali zu finden. Im Gegensatz zum Befehl„which“ durchsucht „locate“ eine eingebaute Datenbank namens„locate.db“ und nicht die gesamte Festplatte selbst. Diese Datenbank wird regelmäßig automatisch durch den Cron-Scheduler aktualisiert. Wir können die Datenbank „locate.db“ aber auch manuell mit dem Befehl„updatedb“ aktualisieren, um auf die Minute genau auf dem neuesten Stand zu sein. Wir müssen den Befehl mit Admin-Rechten(sudo) ausführen.

┌──(kali㉿kali)-[~] └─$ sudo updatedb
┌──(kali㉿kali)-[~] └─$ locate whoami /whoami.txt /home/kali/Desktop/whoami.txt /usr/bin/ldapwhoami /usr/bin/whoami /usr/share/bash-vervollständigung/vervollständigungen/ldapwhoami /usr/share/man/man1/ldapwhoami.1.gz /usr/share/man/man1/whoami.1.gz /usr/share/windows-resources/binaries/whoami.exe

 

Die Grundform des„locate„-Befehls findet alle Dateien im Dateisystem, beginnend mit der Wurzel, wie oben zu sehen. Die Ergebnisse enthalten alle oder einen Teil der Suchkriterien. An Tag 0 lernen Sie den Filesystem Hierarchy Standard(FHS) besser kennen.

Nehmen wir an, wir wollen die Dateien oder Verzeichnisse finden, die nur unsere Suchkriterien enthalten:

┌──(kali㉿kali)-[~] └─$ locate -b '\whoami.txt' /whoami.txt /home/kali/Desktop/whoami.txt

 

 

Der Befehl find

ist diejenige, mit der wir am flexibelsten umgehen können, aber es braucht einige Zeit, um sie zu beherrschen. Damit können wir nach Dateien suchen, deren ungefähre Dateinamen wir kennen. Es bietet die Möglichkeit, Dateien nach Alter, Größe, Name, Eigentümer, Zeitstempel, Gruppe, Typ, Berechtigungen, Datum und anderen Kriterien zu suchen. Das kann ziemlich knifflig werden.

Für diese Suchvorgänge werden wir Wildcards verwenden. Wildcards sind Symbole, die ein oder mehrere Zeichen ersetzen oder darstellen. Die gebräuchlichsten Platzhaltersymbole sind das Fragezeichen ( ? ), das für ein einzelnes Zeichen steht, und das Sternchen ( * ), das für eine beliebige Zeichenfolge steht.

Das erste Zeichen ( / ) nach dem find-Befehl dient zur Angabe des Startverzeichnisses für unsere rekursive Suche.
Um„find“ vom Stammverzeichnis aus suchen zu lassen, würden wir„find /“ verwenden.
Im Home-Ordner:„find ~“ und im aktuellen Ordner: „find .

┌──(kali㉿kali)-[~] └─$ sudo find / -name whoam* /home/kali/Desktop/whoami.txt /usr/share/windows-resources/binaries/whoami.exe /usr/share/man/man1/whoami.1.gz /usr/bin/whoami /whoami.txt

 

Es gibt viel zu entdecken mit der „finden.Befehl“. Weitere Informationen finden Sie auf der Manpage.

Anmerkung: Beim Befehl find wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie möchten, dass bei der Suche nach einem Wort oder einem Satz die Groß- und Kleinschreibung nicht beachtet wird, verwenden Sie das „Option „-iname“ mit dem Befehl„find„. Dies ist die Version des Befehls„-name„, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird.

Es gibt noch einen weiteren Befehl für die Suche, nämlich den„whereis„-Befehl. Es liegt an Ihnen, sie zu erforschen.

Aydan Arabadzha

Aydan Arabadzha

Author

Aydan, a cybersecurity ace and AI visionary, thrives on the frontlines of offensive security. His passion birthed NextdoorSec, a groundbreaking cybersecurity firm. A relentless pioneer, Aydan is persistently pushing boundaries, shaping the future of the digital world one byte at a time.

Other interesting articles

„Unsichtbare Risiken: Wie der gestohlene Microsoft-Schlüssel mehr als erwartet freischalten könnte“

Der angebliche Diebstahl eines Microsoft-Sicherheitsschlüssels könnte es Spionen, die mit Peking in Verbindung ...

„Die KI-Leistung von ChatGPT: Jenseits des Turing-Tests oder noch nicht ganz da?“

ChatGPT, ein Chatbot mit künstlicher Intelligenz von OpenAI, hat aufgrund seiner außergewöhnlichen Fähigkeiten ...
0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert