Jour 2 OSCP | Plus de commandes

Reading Time: ( Word Count: )

December 7, 2020
Nextdoorsec-course

Bonjour mon ami, j’espère que tu as pratiqué les commandes montrées hier. Aujourd’hui, nous poursuivrons avec d’autres commandes pour nous familiariser avec le terminal, telles que man, apropos, which, whatis, locate et find.

 

Pages d’homme

Les pages de manuel fournissent de la documentation sur les commandes de la ligne de commande. “man“est le nom du programme qui permet de visualiser ces pages. Regardons la page de manuel de la commande“whoami“. Cette question a également été abordée brièvement au cours de la première journée.

┌──(kali㉿kali)-[~] └─$ homme whoami
Commandes utilisateur WHOAMI(1) WHOAMI(1) NOM whoami - imprime l'identifiant de l'utilisateur effectif SYNOPSIS whoami[OPTION].... DESCRIPTION Imprime le nom d'utilisateur associé à l'ID d'utilisateur effectif actuel. Identique à id -un. --help affiche cette aide et quitte --version fournit des informations sur la version et quitte l'application. AUTEUR Écrit par Richard Mlynarik. ...

 

Le contenu des pages du manuel est organisé en sections numérotées comme suit :

Section Contenu
1 Commandes utilisateur
2 Interfaces de programmation pour les appels système du noyau
3 Interfaces de programmation avec la bibliothèque C
4 Fichiers spéciaux tels que les nœuds de périphériques et les pilotes
5 Formats de fichiers et conventions
6 Jeux et économiseurs d’écran
7 Divers
8 Commandes et démons d’administration du système

 

 

 

 

 

 

 

 

 

Par défaut, une recherche avec le fichier “man“nous obtiendrons les résultats de la première section. Cependant, nous pouvons ajouter l’option “-k“pour rechercher un mot-clé dans la documentation de toutes les sections. Essayons avec la section “passwd“.

┌──(kali㉿kali)-[~] └─$ man -k passwd
chgpasswd (8) - met à jour les mots de passe des groupes en mode batch chpasswd (8) - met à jour les mots de passe en mode batch expect_mkpasswd (1) - génère un nouveau mot de passe, l'applique éventuellement à un utilisateur gpasswd (1) - administre /etc/group et /etc/gshadow ...

 

Nous recevons de nombreux ordres, mais celui dont nous avions besoin se cache quelque part entre les deux. Nous devons limiter notre recherche à l’aide d’expressions régulières. Vous pouvez consulter la
page
pour mieux comprendre les expressions régulières et vous entraîner sur ce
site web
ou sur votre ligne de commande.

Dans l’exemple ci-dessous, nous avons utilisé un caret(^) et un signe de dollar($) pour faire correspondre la ligne entière et éviter les correspondances de sous-chaînes.

┌──(kali㉿kali)-[~] └─$ man -k '^passwd$'
passwd (1) - modification du mot de passe de l'utilisateur passwd (1ssl) - calcul des hachages de mots de passe passwd (5) - le fichier des mots de passe

 

Vous pouvez maintenant utiliser le numéro de section (5) ci-dessus pour effectuer une recherche spécifique.

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

 

 

Apropos comme alternative pour l’homme -k

Comme nous l’avons vu plus haut,“man -k” recherche un mot-clé dans la description des commandes (sans utiliser d’expressions régulières).“apropos” fait de même, mais sans ajouter l’option“-k“.

Vous pouvez essayer par vous-même en tapant“man -k passwd” &“apropos passwd“, les résultats devraient être les mêmes.

┌──(kali㉿kali)-[~] └─$ apropos passwd
chgpasswd (8) - met à jour les mots de passe des groupes en mode batch chpasswd (8) - met à jour les mots de passe en mode batch expect_mkpasswd (1) - génère un nouveau mot de passe, l'applique éventuellement à un utilisateur gpasswd (1) - administre /etc/group et /etc/gshadow grub-mkpasswd-pbkdf2 (1) - génère un mot de passe haché pour GRUB ...

 

 

Recherche de fichiers avec “which”

Supposons que vous ayez deux versions du même programme sur votre ordinateur. Vous pouvez donc utiliser la mention “qui“pour savoir quelle version votre interpréteur de commandes utilisera.

La commande which” recherche dans les répertoires définis dans le $PATH variable d’environnement. Le $PATH n’est qu’une collection de chemins, chacun d’entre eux pointant vers un répertoire. Nous pouvons utiliser la mention “echo“pour connaître les répertoires de notre chemin d’accès.

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

 

La liste de sortie sépare chaque chemin par des deux points (
:
). La commande“which” lance la recherche de gauche à droite. Le premier chemin sera donc“/usr/local/sbin“, puis“/usr/local/bin” et ainsi de suite. Testons cela en tapant“which apropos“.

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

 

La commande par défaut s’arrête lorsqu’elle trouve un résultat. Cependant, si nous utilisons l’option -a (tous),“which” continuera à chercher.

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

 

Ci-dessus, il liste toutes les correspondances trouvées dans les répertoires de notre environnement $PATH, en commençant sa recherche de gauche à droite. Regardons-les maintenant et voyons la différence. Consultez le jour 1 pour la commande 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” (longue liste). Le“5” précédant l’heure (05:06) est la taille de l’exécutable en octets (peut être comparée à la taille des fichiers que nous trouvons). Après vérification, nous constatons qu’ils font référence au même lien symbolique ou raccourci, appelé“whatis“.

Testons cette nouvelle commande :

┌──(kali㉿kali)-[~] └─$ whatis passwd passwd (5) - le fichier des mots de passe passwd (1) - changer le mot de passe de l'utilisateur passwd (1ssl) - calculer les hachages de mots de passe
┌──(kali㉿kali)-[~] └─$ man -k '^passwd$' passwd (1) - changer le mot de passe de l'utilisateur passwd (1ssl) - calculer les hachages de mots de passe passwd (5) - le fichier des mots de passe

 

Résumé : la commande“whatis” peut être utilisée comme une alternative à la commande“man” utilisée avec l’option“-k” et l’expression régulière “^” et “$“, ce qui est beaucoup plus facile à retenir.

Il n’y avait aucune différence entre ces deux fichiers, à l’exception de leur répertoire. Pour en avoir le cœur net, vérifions les deux versions avec la fonction “–version“.

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

 

 

Une autre façon de “localiser” les fichiers

Le “localiserLa commande “locate” est le moyen le plus rapide de trouver l’emplacement des fichiers et des répertoires dans Kali. Contrairement à la commande“which“, “locate” recherche dans une base de données intégrée nommée“locate.db” plutôt que sur l’ensemble du disque dur. Cette base de données est mise à jour automatiquement et régulièrement par le planificateur cron. Mais nous pouvons également mettre à jour manuellement la base de données “locate.db” à l’aide de la commande“updatedb” pour être à jour à la minute près. Nous devons exécuter la commande avec les privilèges d’administrateur(sudo).

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

 

La forme de base de la commande“locate” localise tous les fichiers du système de fichiers, en commençant par la racine, comme nous l’avons vu ci-dessus. Les résultats contiennent tout ou partie des critères de recherche. Consultez le jour 0 pour mieux comprendre la norme de hiérarchie des systèmes de fichiers(FHS).

Supposons que nous voulions trouver les fichiers ou les répertoires qui contiennent uniquement nos critères de recherche :

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

 

 

La commande find

est celui avec lequel nous pouvons être le plus flexibles, mais il faut du temps pour le maîtriser. Il nous permet de rechercher des fichiers dont nous connaissons les noms approximatifs. Il permet de rechercher des fichiers en fonction de leur âge, de leur taille, de leur nom, de leur propriétaire, de l ‘horodatage, du groupe, du type, des autorisations, de la date et d’autres critères. Cela peut s’avérer assez délicat.

Pour effectuer ces recherches, nous utiliserons des caractères génériques. Les jokers sont des symboles utilisés pour remplacer ou représenter un ou plusieurs caractères. Les symboles de remplacement les plus courants sont le point d’interrogation ( ? ), qui représente un seul caractère, et l’astérisque ( * ), qui représente n’importe quelle chaîne de caractères.

Le premier caractère ( / ) après la commande find sert à spécifier le répertoire de départ de notre recherche récursive.
Pour que“find” effectue une recherche à partir du dossier racine, nous utiliserons“find /“.
À partir du dossier d’accueil,“trouver ~” et à partir du dossier en cours, “trouver .

┌──(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

 

Il y a beaucoup de choses à explorer avec la fonction “trouvercommande “. Vous pouvez consulter la page de manuel pour plus d’informations.

Remarque: Par défaut, la commande find est sensible à la casse. Si vous souhaitez que la recherche d’un mot ou d’une phrase ne tienne pas compte des majuscules et des minuscules, utilisez le bouton “-iname” avec la commande“find“. Il s’agit de la version insensible à la casse de la commande“-name“.

Il existe une autre commande de recherche, la commande“whereis“. C’est à vous de l’explorer.

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

Automated vs Manual Penetration Testing

Automated vs Manual Penetration Testing

Pentesting is largely divided into two methodologies: Automated vs Manual Penetration Testing. Both have ...
8 Steps in Penetration Testing You Should Know

8 Steps in Penetration Testing You Should Know

Mastering the art of penetration testing has become a critical ability for security experts to combat cyber ...
Spear Phishing vs Whaling: What is the Difference

Spear Phishing vs Whaling: What is the Difference

Spear phishing is a particularly devious type of phishing assault in which the individual targeted plays a ...
How Often Should Penetration Testing Be Done

How Often Should Penetration Testing Be Done

Penetration testing is a crucial technique that involves simulating a cyberattack on networks, computer systems, ...
0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *