Wat proberen 'hackers' te doen? Ik laat het je zien in een paar commando's - soort van

september 30, 2024 #Toegang verkrijgen #docker #Hacken

Disclaimer: Deze blogpost is uitsluitend bedoeld voor educatieve doeleinden. De verstrekte informatie is bedoeld om bewustzijn te creëren over beveiligingslekken en de ontwikkeling van veiligere webapplicaties te bevorderen. Misbruik van deze informatie voor kwaadaardige doeleinden is illegaal en onethisch!

Overzicht

Beheerdersrechten zijn krachtig en gaan gepaard met grote verantwoordelijkheden. Ze stellen gebruikers in staat om systeemtaken uit te voeren en toegang te krijgen tot gevoelige informatie. In deze post zullen we technieken onderzoeken voor het uitbuiten van applicaties met beheerdersrechten, specifiek met behulp van Docker-containers en het inbinden van de /etc-directory.

Docker is een containerisatiehulpmiddel waarmee je geïsoleerde omgevingen kunt creëren en beheren. Containers delen de kernel van het host-systeem maar werken in hun eigen gebruikersruimten. Door Docker-configuraties te manipuleren, kun je mogelijk applicaties met beheerdersrechten uitbuiten of ongeautoriseerde toegang verkrijgen tot gevoelige informatie op het host-systeem.

Docker installeren

Installeer Docker: Volg de officiële Docker-installatiehandleiding om Docker op je host-systeem te installeren. (Meestal is dit iets als het gebruiken van de pakketbeheerder om het pakket te verkrijgen en vervolgens de gebruiker aan de groep toevoegen, wat de meeste mensen, waaronder ik, doen voor gemak (zodat je niet constant sudo docker hoeft in te voeren, wat we vandaag zullen uitbuiten) en het starten van de Docker-daemon / -dienst).

Container maken en uitvoeren om te testen:

Gebruik het volgende commando om een Docker-container met de Alpine Linux-distributie en een interactieve shell te maken en uit te voeren:

docker run --rm -it alpine sh

Mounten van de /etc-directory om configuraties / foutconfiguraties te misbruiken:

Om de /etc-directory van je host-systeem in de container te mounten, gebruik je de optie -v. Bijvoorbeeld, om /etc naar /mnt/etc in de container te mounten:

docker run --rm -it -v /etc:/mnt/etc alpine sh

De Container Verkennen

Toegang krijgen tot de shell van de container: Nadat je de container met de gemounte directory hebt uitgevoerd, bevind je je in de shell van de container. Je kunt navigeren naar de gemounte /etc-directory met:

cd /mnt/etc

Host-systeembestanden bekijken:

De bestanden uit de /etc-directory van de host zijn toegankelijk binnen de container. Bijvoorbeeld, je kunt de bestanden opsommen met:

ls -l /mnt/etc

# Iets zoals /etc/shadow bevat alle wachtwoorden en gebruikers, bijvoorbeeld.

cat /mnt/etc/shadow

Exploitatie en Uitleg Privilegietoename in Docker

Containerprivileges: Containers zijn doorgaans geïsoleerd van het host-systeem. Door gevoelige directories zoals /etc te mounten, kunnen configuratiebestanden blootgelegd worden die waardevolle informatie kunnen bevatten als de container niet goed is beveiligd.

Gevoelige directories mounten: Door directories van het host-systeem te mounten, kun je toegang krijgen tot gevoelige bestanden. Bijvoorbeeld:

docker run --rm -it -v /etc:/mnt/etc alpine sh

Dit mount de /etc-directory van de host in /mnt/etc in de container, wat toegang geeft tot host-configuratiebestanden. Dit betekent dat een hacker, die mogelijk enkele gebruikersprivileges op de server heeft verkregen via Docker, beheerdersrechten zou kunnen verkrijgen. Dit zou vereisen dat de gebruiker (in de Linux-zin - de identiteit die de hacker heeft gestolen) in de Docker-groep zit, wat veel mensen doen, inclusief ikzelf op mijn persoonlijke computer. Het bespaart je het constante invoeren van sudo en je wachtwoord, maar...

Potentiële Foutconfiguraties: Docker-foutconfiguraties of het uitvoeren van containers met verhoogde privileges kan leiden tot privilege-escalatie. Bijvoorbeeld, als de Docker-daemon blootgesteld is of containers met overmatige privileges worden uitgevoerd, kan dit verder worden uitgebuit.

Conclusie en Maatregelen

Conclusie

Het mounten van hostdirectories in Docker-containers kan gevoelige informatie van het host-systeem blootleggen. In dit voorbeeld maakt het mounten van de /etc-directory toegang tot kritische systeemconfiguratiebestanden mogelijk. Een goede Docker-beveiligingsconfiguratie is essentieel om ongeautoriseerde toegang en privilege-escalatie te voorkomen.

Maatregelen

Door deze best practices te volgen, kun je je Docker-omgevingen beter beveiligen en het risico van het uitbuiten van beheerdersprivileges verminderen.

En maak je geen zorgen als je je afvraagt wat je hiermee moet doen en hoe je hier überhaupt terecht bent gekomen – dat zijn de vragen die je zou moeten stellen. We zullen alles bespreken op basis van interesse. Stuur dus je vragen en tot snel.