Hoe Run0 in Linux te gebruiken

Hoe Run0 in Linux te gebruiken
Een foto van dichtbij van het scherm van een laptop.

Run0 is een nieuw en innovatief privilege escalation-programma voor Systemd-gebaseerde Linux-distributies. Het biedt een lichtgewicht en “config-less” alternatief voor traditionele escalatie-apps zoals sudo en doas. Hier laten we u de basis zien van het gebruik van Run0 om opdrachten voor uw Linux-systeem te escaleren.

Voordat u dat doet, wilt u misschien eerst weten wat Run0 is en hoe het verschilt van sudo.

Hoe u programma’s als een andere gebruiker kunt uitvoeren

Een van de meest voorkomende toepassingen voor privilege escalation apps is het uitvoeren van opdrachten als root-gebruiker. In dit opzicht vereist het tikken op de root-gebruiker in Run0 dat u run0 toevoegt voor de opdracht die u wilt uitvoeren. Het volgende maakt bijvoorbeeld een nieuwe map in een directory die alleen toegankelijk is voor root:

Er verschijnt een CLI-wachtwoordprompt of een klein GUI-venster waarin u wordt gevraagd het wachtwoord van uw huidige gebruiker in te voeren.

Een screenshot van de wachtwoordprompt voor Run0.

Net als sudo en doas kan Run0 ook overschakelen naar een niet-rootgebruiker bij het uitvoeren van opdrachten. Om dit te doen, voegt u de --uservlag toe, gevolgd door de naam van de gebruiker waarmee u de opdracht wilt uitvoeren:

Geef het wachtwoord op voor de gebruiker waarnaar u wilt overschakelen en druk op Enter.

Hoe over te schakelen naar de shell van een andere gebruiker

Een ander belangrijk onderdeel van een privilege escalation app is de mogelijkheid om de gebruiker naar een root shell te droppen. Dit geeft u de mogelijkheid om als rootgebruiker met uw systeem te communiceren en complexere opdrachten uit te voeren vanaf de CLI.

In Run0 kunt u dit doen door het programma uit te voeren zonder extra argumenten.

Een terminal die de root shell van een Run0-prompt toont.

Net zoals bij het uitvoeren van programma’s als root, is het ook mogelijk om Run0 te gebruiken met de --uservlag om een ​​shell-sessie te starten als een specifieke gebruiker:

Een terminal met de Run0-prompt voor een niet-rootgebruiker.

Bovendien kunt u met run0 shell-sessies maken met tijdelijke groepsmachtigingen voor niet-rootgebruikers. Dit is handig als u toegang wilt tot mappen die achter een bepaalde gebruiker en groep zijn vergrendeld zonder naar root te gaan.

De volgende opdracht geeft de gebruiker “alice” bijvoorbeeld tijdelijke toegang tot de groep “www-data”:

U kunt de --chdirvlag ook gebruiken om een ​​directorywijziging af te dwingen wanneer u naar een nieuwe shell-sessie gaat:

Een terminal die de automatische directorywisseling laat zien wanneer er naar de shell van een andere gebruiker wordt gesprongen.

Hoe de huidige Run0-sessie aan te passen

Het grootste verkoopargument van Run0 is dat het geen setuid (SUID) gebruikt om superuser-acties te verwerken. In plaats daarvan vertrouwt het op systemd-run, dat geïsoleerde pseudo-TTY’s creëert om opdrachten als root uit te voeren.

Een gevolg van deze aanpak is dat Systemd elke Run0 shell behandelt als een discrete eenheid die draait onder de service manager. Dit stelt u in staat om uw root shell-proces aan te passen, in tegenstelling tot traditionele privilege escalation-apps.

Om een ​​label aan uw root shell toe te voegen, gebruikt u de --unitvlag gevolgd door de naam die u wilt gebruiken:

U kunt ook een aangepaste beschrijving toevoegen aan uw root shell door de --descriptionvolgende vlag toe te voegen:

Controleer of u uw gegevens correct hebt ingevoerd door de aangepaste naam van uw rootshell op te geven met systemctl:

Een terminal met de details van de aangepaste Systemd-eenheid.

Standaard verandert Run0 de kleur van uw root shell-achtergrond naar rood. Hoewel dit een nuttige visuele indicator is, kan dit afleidend zijn als u een licht thema op uw systeem gebruikt.

Om dit te wijzigen, gebruikt u de --backgroundvlag gevolgd door een waarde tussen 40-49:

Een terminal die de verschillende achtergrondkleuren in Run0 toont.

Tot slot kunt u ook het “niceness level” van uw root shell aanpassen. Dit is een waarde tussen -20 en 19 die bepaalt of uw kernel uw proces prioriteit geeft boven andere.

Om uw root shell de hoogste prioriteit te geven, gebruikt u de --nicevlag met de waarde “-20”:

Een terminal die de root shell benadrukt met een aangepast nice level.

Hoe je Run0-sessies kunt groeperen

Naast het feit dat u elke Linux root shell kunt aanpassen, kunt u Run0 ook gebruiken om ze te groeperen in een Systemd slice. Dit is een speciale constructie waarmee uw machine de resource-vraag voor processen kan aanpassen zonder de rest van uw systeem te beïnvloeden.

Om een ​​root shell op een andere slice te maken, voert u de --sliceflag uit, gevolgd door de naam van de slice waarnaar u wilt verplaatsen:

Controleer of uw nieuwe sessie onder uw nieuwe slice wordt uitgevoerd door de processen erin op te sommen:

Een terminal met de details van de aangepaste Systemd-slice.

U kunt de --slice-inheritvlag ook gebruiken om uw nieuwe slice te groeperen met de slice waar Run0 vandaan kwam. Dit is handig als u uw shells al hebt gegroepeerd in hun respectievelijke slices en u gewoon een nieuwe shell wilt toevoegen:

Hoe u opdrachten uitvoert op Systemd-containers met Run0

Systemd-nspawn is een speciaal programma dat lichtgewicht Linux-containers kan maken en beheren die lijken op Docker. Omdat het onderdeel is van de Systemd-suite, kunt u Run0 ook gebruiken om opdrachten uit te voeren in uw nspawn-containers vanaf uw hostmachine.

Begin met het opsommen van de beschikbare Systemd-nspawn-containers in uw systeem:

Een terminal met een lijst van de beschikbare Systemd-nspawn containers.

Voer de volgende opdracht uit om een ​​map te maken in de hoofdmap van uw container:

Het is ook mogelijk om naar de root shell van uw container te gaan met Run0:

Een terminal met de opdracht om de shell-prompt van de container te wijzigen.

Bevestig dat u nu binnen uw container werkt door de hostnaam van uw terminalsessie af te drukken:

Een terminal die het proces van het overschakelen van het lokale systeem naar de Systemd-nspawn-container laat zien.

Leren hoe je Run0 gebruikt om root-opdrachten uit te voeren en te beheren in Linux is slechts het topje van de ijsberg als het gaat om privilege escalation-apps. Duik diep in de complexe wereld door te kijken naar de verschillen tussen su, sudo en sudo -s.

Afbeelding tegoed: Xavier Cee via Unsplash . Alle wijzigingen en screenshots door Ramces Red.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *