Dag 2 OSCP | Meer commando’s

Reading Time: ( Word Count: )

December 7, 2020
Nextdoorsec-course

Hallo vriend, ik hoop dat je de commando’s van gisteren hebt geoefend. Vandaag volgen meer commando’s om vertrouwd te raken met de terminal, zoals man, apropos, which, whatis, locate en find.

 

Man pagina’s

Pagina’s met handleidingen geven documentatie over de commando’s van de commandoregel. “man” is de naam van het programma om deze pagina’s te bekijken. Laten we eens kijken naar de man pagina voor het“whoami” commando. Ook kort behandeld op dag 1.

┌──(kali㉿kali)-[~] └─$ man whoami
WHOAMI(1) Gebruikerscommando's WHOAMI(1) NAAM whoami - afdrukken effectieve userid SYNOPSIS whoami[OPTION]... BESCHRIJVING Druk de gebruikersnaam af die hoort bij de huidige effectieve gebruikers-ID. Zelfde als id -un. --help deze hulp weergeven en afsluiten --version uitvoerversie-informatie en afsluiten AUTEUR Geschreven door Richard Mlynarik. ...

 

De inhoud van de pagina’s van de handleiding is georganiseerd in secties die als volgt genummerd zijn:

Sectie Inhoud
1 Gebruikerscommando’s
2 Programmeerinterfaces voor kernel systeemaanroepen
3 Programmeerinterfaces voor de C-bibliotheek
4 Speciale bestanden zoals apparaatknooppunten en stuurprogramma’s
5 Bestandsformaten en -conventies
6 Spelletjes en screensavers
7 Miscellanea
8 Commando’s en daemons voor systeembeheer

 

 

 

 

 

 

 

 

 

Door standaard te zoeken met de “man” commando, krijgen we resultaten van de eerste sectie. We kunnen echter de “-k” optie toevoegen om te zoeken naar een sleutelwoord in de documentatie van alle secties. Laten we het proberen met de “passwd” commando.

┌──(kali㉿kali)-[~] └─$ man -k passwd
chgpasswd (8) - groepswachtwoorden bijwerken in batchmodus chpasswd (8) - wachtwoorden bijwerken in batchmodus expect_mkpasswd (1) - nieuw wachtwoord genereren, optioneel toepassen op een gebruiker gpasswd (1) - /etc/group en /etc/gshadow beheren ...

 

We krijgen genoeg bevelen, maar degene die we nodig hadden zit ertussen verstopt. We moeten onze zoekopdracht verfijnen met behulp van reguliere expressies. U kunt de volgende
pagina
om regex beter te begrijpen en te oefenen op deze
website
of op uw opdrachtregel.

In ons onderstaande voorbeeld hebben we een caret(^) en een dollarteken($) gebruikt om de hele regel te evenaren en overeenkomsten tussen substrings te vermijden.

┌──(kali㉿kali)-[~] └─$ man -k '^passwd$'
passwd (1) - gebruikerswachtwoord wijzigen passwd (1ssl) - wachtwoord hashes berekenen passwd (5) - het wachtwoordbestand

 

Nu kunt u het sectienummer (5) hierboven gebruiken om specifiek te zoeken.

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

 

 

Apropos als alternatief voor man -k

Zoals we hierboven hebben gezien, zoekt“man -k” naar een sleutelwoord in de beschrijving van de commando’s (zonder gebruik te maken van reguliere expressies).“apropos” doet hetzelfde, maar zonder de optie“-k” toe te voegen.

U kunt het zelf proberen door“man -k passwd” &“apropos passwd” in te typen, de resultaten zouden hetzelfde moeten zijn.

┌──(kali㉿kali)-[~] └─$ apropos passwd
chgpasswd (8) - groepswachtwoorden bijwerken in batchmodus chpasswd (8) - wachtwoorden bijwerken in batchmodus expect_mkpasswd (1) - nieuw wachtwoord genereren, optioneel toepassen op een gebruiker gpasswd (1) - /etc/group en /etc/gshadow beheren grub-mkpasswd-pbkdf2 (1) - hashed wachtwoord genereren voor GRUB ...

 

 

Bestanden vinden met “welke”

Stel je hebt twee versies van hetzelfde programma op je computer. Daarom kunt u de “welke” commando om uit te vinden welke versie uw shell zal gebruiken.

Het “welke” commando doorzoekt de mappen die zijn gedefinieerd in het $PATH omgevingsvariabele. Het $PATH is gewoon een verzameling paden, die elk naar een directory verwijzen. We kunnen de “echo” commando om de mappen op ons pad te vinden.

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

 

De uitvoerlijst scheidt elk pad met dubbele punten (
:
). Het“welke” commando begint te zoeken van links naar rechts. Dus het eerste pad zal zijn“/usr/local/sbin” en daarna“/usr/local/bin” enzovoort. Laten we dit uittesten door“die apropos” te typen.

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

 

Het standaardcommando stopt wanneer het een resultaat vindt. Als we echter de -a (all) optie gebruiken, zal“die” blijven zoeken.

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

 

Hierboven worden alle overeenkomsten in de mappen van onze $PATH omgeving opgesomd, beginnend van links naar rechts. Laten we ze nu bekijken en het verschil zien. Kijk op dag 1 voor het commando ls.

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

 

“ls” (lijst),“-l” (lange lijst). De“5” voor de tijd (05:06) is de grootte van de executable in bytes (kan worden vergeleken met de grootte van de bestanden die we vinden). Nadat we ze allebei hebben gecontroleerd, zien we dat ze verwijzen naar dezelfde symbolische link of snelkoppeling, genaamd“whatis“.

Laten we dit nieuwe commando testen:

┌──(kali㉿kali)-[~] └─$ whatis passwd passwd (5) - het wachtwoordbestand passwd (1) - gebruikerswachtwoord wijzigen passwd (1ssl) - wachtwoord hashes berekenen
┌──(kali㉿kali)-[~] └─$ man -k '^passwd$' passwd (1) - gebruikerswachtwoord wijzigen passwd (1ssl) - wachtwoordhashes berekenen passwd (5) - het wachtwoordbestand

 

Samenvatting: Het commando“whatis” kan worden gebruikt als alternatief voor het commando“man” met de optie“-k” en de reguliere expressie van“^” en“$“, die veel gemakkelijker te onthouden is.

Er was geen verschil tussen die twee bestanden, behalve hun directory. Laten we voor alle zekerheid hun beide versies controleren met de “–versie” optie.

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

 

 

Een andere manier om bestanden te “lokaliseren

De “zoeken” commando is de snelste manier om de locaties van bestanden en mappen in Kali te vinden. In tegenstelling tot het“welke” commando, doorzoekt “locate” een ingebouwde database genaamd“locate.db” in plaats van de hele harde schijf zelf. Deze database wordt automatisch regelmatig bijgewerkt door de cron planner. Maar we kunnen de database “locate.db” ook handmatig bijwerken met het commando“updatedb” om tot op de minuut bijgewerkt te zijn. We moeten het commando uitvoeren met beheerdersrechten(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

 

De basisvorm van het“locate” commando lokaliseert alle bestanden op het bestandssysteem, beginnend bij de root zoals we hierboven zien. De resultaten bevatten alle of een deel van de zoekcriteria. Bekijk Dag 0 voor een beter begrip van de Filesystem Hierarchy Standard(FHS).

Stel dat we de bestanden of mappen willen vinden die alleen onze zoekcriteria bevatten:

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

 

 

De opdracht find

is degene waarmee we het meest flexibel kunnen zijn, maar het kost wat tijd om hem onder de knie te krijgen. Hiermee kunnen we zoeken naar bestanden waarvan we de namen bij benadering kennen. Het geeft ons de mogelijkheid bestanden te zoeken op leeftijd, grootte, naam, eigenaar, tijdstempel, groep, type, machtigingen, datum en andere criteria. Het kan behoorlijk lastig worden.

Om die zoekopdrachten uit te voeren, gebruiken we jokertekens. Jokertekens zijn symbolen die worden gebruikt om één of meer tekens te vervangen of weer te geven. De meest voorkomende jokertekens zijn het vraagteken ( ? ), dat staat voor een enkel teken, en het sterretje ( * ) staat voor een willekeurige tekenreeks.

Het eerste teken ( / ) na het commando find is om de startdirectory van onze recursieve zoekopdracht aan te geven.
Om“find” vanuit de hoofdmap te laten zoeken, gebruiken we“find /“.
Vanuit de thuismap,“find ~” en vanuit de huidige map“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

 

Er valt veel te ontdekken met de “zoek” commando. U kunt de man pagina raadplegen voor meer informatie.

Let op: Het commando find is standaard hoofdlettergevoelig. Als u wilt dat het zoeken naar een woord of zin hoofdletterongevoelig is, gebruikt u de “-iname” optie met de“find” opdracht. Het is de hoofdletterloze versie van het commando“-naam“.

Er is nog een commando om te zoeken, namelijk het“whereis“-commando. Het is aan jou om het te verkennen.

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 *