Git Shell Bypass, Minder is meer

We zijn altijd een fans van wargames geweest. Niet de film (nou, eveneens de film), maar ik verwijs echter naar hacking wargames. Er zijn echter een aantal stijlen, maar meestal heb je ergens toegang tot een voorlopige shell-account, die Niveau0 is, evenals je een fout in het systeem moet exploiteren om te hanteren om level1-machtigingen evenalszovoort te krijgen. Bijna altijd is er een niveau waarin je een legitieme binaire binaire (met een aantal schaduwrijke machtigingen) moet gebruiken) die meer dan wat de routine individueel denkt.

In de situatie van CVE-2017-8386 is minder meer.

[TIMO SCHMID] Details precies hoe de git-shell, een beperkte shell bedoeld is om te worden gebruikt als de stroomopwaartse peer in een SSH-sessie op een SSH-tunnel, kan worden misbruikt om willekeurige gegevens te bereiken, de directory-lijst als enigszins Beperkte gegevens schrijven. Het fundamentele concept van Git-Shell is om de ingeschakelde opdrachten in een SSH-sessie te beperken tot die die nodig zijn door Git (GIT-ontvanging-pack, git-upload-pack, git-upload-archief). De onderzoeker besefte dat hij parameters aan deze opdrachten kan passeren, zoals de vlag -help:

1
2
3
4
5
6
7
$ ssh git @ afstandsbediening & quot-ontvangst-pack ‘–help’ & quot;

Git-ontvangst-pack (1) Git Handleiding GIT-ontvangst-pakket (1)

NAAM
Git-ontvangstpakket – Krijg wat er in de repository wordt geduwd
[…]

Wat de vlag doet, maakt het Git-opdracht de Guy-pagina van Git open, die wordt doorgegeven aan een Pager-programma, meestal minder. evenals dit is waar het interessant wordt. Hoe minder opdracht, als het interactief wordt uitgevoerd, kan een aantal dingen doen die u zou verwachten zoals op zoek naar tekst, ga naar een regelnummer, scroll naar beneden en ga zo goed mogelijk. Wat het ook kan doen is een nieuwe gegevens open (: E), de invoer opslaan op een gegevens (en) en opdrachten uitvoeren (!). Om het interactief te laten lopen, moet je de toewijzing van een PTY in SSH Forceer, dus:

1
2
3
4
5
6
7
8
9
$ ssh -t git @ afstandsbediening & quot; git-ontvangst-pack ‘–help’ & quot;

Git-ontvangst-pack (1) Git Handbook Git-ontvangst-pakket (1)

NAAM
Git-ontvangstpakket – Krijg wat er in de repository wordt geduwd

Handmatige pagina Git-ontvangst-pack (1) Lijn 1 (Druk op H voor Assist of Q om te stoppen)

Druk op H voor Assist en Veel plezier. Een voorbehoud is dat de gebruikelijke installaties de code-uitvoering niet echt willekeurige opdrachten uitvoert, omdat de huidige werkingslogin-shell de git-shell is, beperkt tot slechts enkele witte beursgenoteerde opdrachten. Er zijn echter specifieke configuraties waarbij dit kan gebeuren, zoals het behoud van bash of SH als een inlogschil en het individu beperken in methoden die ze alleen maar kunnen gebruiken (zoals in gedeelde omgevingen zonder root-toegang). Je kunt hier een dergelijk voorbeeld zien.

De snelste oplossing lijkt te zijn om de SERVER-SERIEN-SERVER-SERVERING in de SSHD-configuratie mogelijk te maken. Dit vermijdt klanten van het aanvragen van een PTY dus loopt niet in een interactieve modus.

1
2
3
4
5
6
$ man minder

Minder (1) Algemene opdrachten Handboek Minder (1)

NAAM
minder – tegenovergesteld van meer

Ironisch, is het niet?

Leave a Reply

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