Wilt u superuser-toegang krijgen tot een Linux-systeem? Hier zijn enkele van de beste manieren om een Linux-machine op te sommen.
Opsomming is een van de belangrijkste fasen van penetratietesten. Het is het eerste dat u moet doen als u als penetratietester een doelsysteem hebt gecompromitteerd. Hoewel er een overvloed aan tools is om dit proces te automatiseren, is het altijd aan te raden om het systeem handmatig te doorzoeken en dubbel te controleren op mogelijke vectoren van privilege-escalatie.
Laten we eens kijken naar de verschillende manieren om handmatig een Linux-systeem op te sommen voor privilege-escalatie.
Waarom is opsomming belangrijk voor bevoegdheidsescalatie?
Privilege-escalatie, ook wel Escalation of Privilege (EOP) genoemd, is een kerncomponent van penetratietesten en de penetratietestmethode. Zoals de naam al doet vermoeden, is het een fase waarin u probeert uw rechten te verheffen tot de beheerder of, in Linux-systemen, de rootgebruiker.
Om rootrechten te krijgen, moet u eerst een kwetsbaarheid in het systeem vinden. Dit is waar opsomming in het spel komt. Hoewel er tools zijn om inventarisatie te automatiseren, kan handmatige en grondige inventarisatie vaker wel dan niet misconfiguraties en andere kwetsbaarheden aan het licht brengen die niet door tools worden opgepikt.
1. Systeem Opsomming
Het eerste dat u moet doen nadat u voet aan de grond heeft gekregen, is meer te weten komen over het systeem waartoe u toegang hebt gekregen. Dit zal u helpen uw payloads te optimaliseren zodat deze overeenkomen met de architectuur en zorgt voor maximale compatibiliteit van uw payloads met het doelsysteem.
Als u bijvoorbeeld een 64-bits exploit heeft, moet u deze wijzigen als uw doelsysteem alleen 32-bits software ondersteunt, aangezien er een verschil is tussen 32-bits en 64-bits systemen.
Als u de kernelversie kent, kunt u ook op internet naar exploits zoeken voor het geval u merkt dat de versie verouderd en kwetsbaar is voor een openbare exploit. Hier zijn enkele opdrachten die u zullen helpen bij het ophalen van systeeminformatie:
Typ het volgende om systeeminformatie te vinden, zoals de kernelversie, de release van het besturingssysteem, enz.:
kat /etc/cpuinfo
naam -a
Als u meer wilt weten over CPU-architectuur, gebruikt u de opdracht lscpu:
lscpu
2. Proces Opsomming
Processen zijn programma's in uitvoering. De volledige lijst met processen op een Linux-systeem kennen, gekoppeld aan een paar andere opsommingstactieken die in deze handleiding worden genoemd, helpt u potentieel kwetsbare processen te identificeren en deze te gebruiken om te verbeteren voorrecht.
Als u bijvoorbeeld een proces aantreft dat wordt uitgevoerd met rootprivileges, kunt u er mogelijk willekeurige code in injecteren, wat zou kunnen leiden tot een succesvolle escalatie van privileges.
Je kunt gebruiken het ps-commando met de hulp vlaggen om alle processen in het systeem weer te geven:
ps hulp
3. Opsomming van gebruikers en groepen
Het opsommen van gebruikers en groepen is belangrijk om erachter te komen wie toegang heeft tot welk deel van het systeem. Als u dat weet, kunt u uw doelen efficiënt bereiken en een effectieve aanvalsstrategie ontwikkelen. Bovendien bent u in staat om de juiste mappings te maken en de rollen en privileges van elk account grondig te begrijpen.
Door zichtbaarheid van geprivilegieerde accounts kunt u bekende combinaties van gebruikersnaam en wachtwoord uitproberen. U kunt de inhoud van het /etc/passwd En /etc/group bestanden om toegang te krijgen tot de lijst met gebruikers. Als alternatief kunt u ook het getent-commando gebruiken.
Naar haal de lijst met gebruikers op Linux op:
getent wachtwoord
De lijst met groepen ophalen:
krijgende groep
4. Onderzoek naar gevoelige bestanden
Gevoelige bestanden zoals /etc/passwd En /etc/shadow kan potentieel veel informatie lekken. Van /etc/shadow je kunt de hashes van het wachtwoord van gebruikers vinden en proberen ze te kraken met een hash-cracking tool zoals Hashcat of John the Ripper.
Er is ook de /etc/sudoers bestand, dat, als je het op de een of andere manier kunt bewerken, de sudo-machtigingen voor gebruikers en groepen kunt wijzigen.
5. Sudo-machtigingen controleren
Een goed beheer van sudo-machtigingen is cruciaal voor de veiligheid van een Linux-systeem. Door de sudo-machtigingen te analyseren, krijgt u inzicht in mogelijke vectoren voor escalatie van bevoegdheden. Als er verkeerde configuraties zijn, zoals bepaalde programma's met een alarmerend privilegeniveau, kunt u deze mogelijk misbruiken om root-toegang te krijgen.
Dit is slechts een voorbeeld van de vele aanvalspaden die zich kunnen openen als je eenmaal duidelijkheid hebt over de sudo-machtigingen in het Linux-systeem. Een ander voorbeeld is het misbruiken van het LD_PRELOAD-bibliotheekvoorlaadmechanisme, dat u kunt opsommen door naar sudo-machtigingen te kijken.
sudo -l
6. Linux-kernelexploits vinden
Exploitaties van de Linux-kernel zijn dodelijk omdat ze de kern van het besturingssysteem aanvallen dat op het gecompromitteerde systeem draait. Met een kritieke kernelfout kun je zo ongeveer alles met het systeem doen.
Om kernel-exploits te vinden, moet u eerst de kernelversie achterhalen en vervolgens een tool gebruiken zoals searchsploit of, Google Dorks gebruiken, zoek een geschikte exploit die van invloed is op de exacte versie van de kernel die op het systeem draait.
7. SUID-binaries exploiteren
SUID is de afkorting voor Set Owner User ID bij uitvoering. Het is een speciaal type bestandstoestemming dat, indien ingesteld, een programma uitvoert met de rechten van de eigenaar.
Als een programma is gemaakt door de rootgebruiker en de SUID-bit ervoor is ingesteld, zou het programma, wanneer het wordt uitgevoerd, rootprivileges hebben. Hoe kan SUID worden misbruikt? Het is makkelijk.
Maak een inventarisatie van alle binaire bestanden met SUID-bitset, doorzoek de lijst, zoek een binair bestand waarvoor u schrijftoegang hebt en bewerk de bron om uw payload toe te voegen. U kunt de opdracht find gebruiken om naar SUID-binaries te zoeken en standaarduitvoer om te leiden naar /dev/null:
zoek / -perm -4000 2>/dev/null
8. Bibliotheken kapen
Soms draaien er programma's op het systeem die bibliotheken gebruiken die niet tegen schrijven zijn beveiligd. In een dergelijk scenario kunt u eenvoudig de gebruikte bibliotheek overschrijven en de functionaliteit van het programma overnemen.
Als je geluk hebt en een programma vindt dat als root draait, zou je de bibliotheek kunnen kapen waarvan het afhankelijk is en mogelijk root-shell-toegang krijgen.
9. Omgevingsvariabelen onderzoeken en kapen
Omgevingsvariabelen zijn speciale typen variabelen die tot op zekere hoogte bepalen hoe het systeem en de programma's functioneren. Een belangrijke omgevingsvariabele is de PATH-variabele.
Het slaat de locatie op van alle uitvoerbare binaire bestanden in het systeem. U kunt de PATH-variabele manipuleren en koppelen aan andere kwetsbaarheden, zoals het kapen van bibliotheken om root-toegang te krijgen.
Stel dat er een uitvoerbaar bestand is met een SUID-bitset. Om correct te functioneren, roept het een binair bestand aan zonder het volledige pad te definiëren.
U kunt hiervan profiteren door een duplicaat, kwaadaardige versie van het binaire bestand te maken en de PATH-variabele bij te werken met de locatie van het schadelijke binaire bestand, dus wanneer het SUID-uitvoerbare bestand wordt uitgevoerd, wordt uw schadelijke binaire bestand als root uitgevoerd en kunt u een root-shell spawnen.
Bovendien is er ook een goede kans om geheime sleutels en wachtwoorden te vinden door simpelweg door de omgevingsvariabelen te kijken. U kunt alle omgevingsvariabelen afdrukken met de opdracht env:
env
10. Vind artefacten in Bash-geschiedenis
Vaak wordt de geschiedenis van de huidige gebruiker niet verwijderd. U kunt dit misbruiken om mogelijk toegang te krijgen tot gevoelige informatie of om eerdere opdrachten opnieuw uit te voeren met gewijzigde parameters.
Hoewel deze waarschijnlijk niet zullen leiden tot escalatie van bevoegdheden, is het een goede bron van informatielekken om u duidelijkheid te geven over wat de gebruiker gewoonlijk op het systeem doet.
11. Kwetsbare cron-jobs kapen
Cron-taken zijn een ingebouwde en zeer vindingrijke functie van Linux. Als u vanuit Windows bent gemigreerd, kan een cron-taak direct worden vergeleken met een geplande taak in Windows.
Het wordt periodiek uitgevoerd en voert opdrachten uit. Zowel het tijdstip waarop het zal worden uitgevoerd als de opdrachten die het zal uitvoeren, zijn vooraf gedefinieerd door de gebruiker. Soms vindt u een aantal cronjobs die kwetsbaar zijn voor aanvallen zoals wildcard-injectie of beschrijfbaar zijn door de gebruiker als wie u bent ingelogd.
U kunt deze kwetsbaarheden misbruiken om root-toegang tot het systeem te krijgen. Om een cronjob uit te buiten, moet je eerst een kwetsbare vinden. Hier zijn de commando's om een lijst weer te geven van momenteel actieve cron-taken en andere relevante gegevens:
ls /etc/cron.d/
crontab -l -u
12. Lijst met verouderde pakketten
Wanneer u toegang tot een systeem hebt verkregen, is een van de eerste stappen die u moet nemen een lijst van alle geïnstalleerde softwarepakketten en hun geïnstalleerde versies met hun nieuwste release.
Er is een mogelijkheid dat er een obscuur pakket is geïnstalleerd dat misschien niet veel wordt gebruikt, maar toch kritiek kwetsbaar is voor een aanval met privilege-escalatie. U kunt dat pakket vervolgens misbruiken om root-toegang te krijgen.
Gebruik de opdracht dpkg met de -l tag om geïnstalleerde pakketten op Debian- en Ubuntu-gebaseerde systemen weer te geven:
dpkg -l
Gebruik voor RHEL/CentOS/Fedora-systemen deze opdracht om geïnstalleerde pakketten weer te geven:
toerental -qa
Nu weet u hoe u Linux handmatig kunt opsommen voor privilege-escalatie
Privilege-escalatie is uitsluitend afhankelijk van opsomming. Hoe meer informatie u hebt, hoe beter u uw aanvalsstrategieën kunt plannen.
Efficiënte opsomming is de sleutel tot het vestigen van voet aan de grond, het escaleren van privileges en het succesvol volhouden op uw doelsysteem. Hoewel dingen handmatig doen helpt, kunnen sommige taken worden toegewezen aan geautomatiseerde tools om tijd en moeite te besparen. U moet op de hoogte zijn van de beste beveiligingshulpmiddelen om een systeem op kwetsbaarheden te scannen.