Sfruttare shellshock

1

Facendo qualche ricerca sulla vulnerabilità dello shock shell, ho scoperto che essere in grado di eseguire l'exploit tramite una posizione remota dipende dal fatto che l'hacker conosca effettivamente l'esatto script cgi che usa bash come interprete sul sistema vulnerabile. Ho ragione in questa comprensione e ciò limita effettivamente lo scopo di questa vulnerabilità? Inoltre, l'utente malintenzionato deve enumerare le pagine sul sistema vulnerabile per ottenere eventualmente uno script cgi vulnerabile o esistono altri metodi conosciuti?

    
posta DaTaBomB 05.10.2014 - 00:00
fonte

1 risposta

2

the exact cgi script which uses bash as an interpreter

"Utilizzare bash come interprete" non una precondizione per lo sfruttamento della famiglia delle vulnerabilità di bash chiamata "shellshock" (le molte vulnerabilità di analisi distinte basato su una variabile di ambiente con qualsiasi nome che inizi esattamente con i byte () { ).

Tutto ciò che serve per sfruttare uno dei "shellshock" vuln è eseguire il programma bash con un valore controllato dall'utente di una variabile d'ambiente; uno script di shell con bash come interprete di shell ( #!/bin/bash o #!/bin/sh dove /bin/sh è un collegamento a bash ) è un modo ovvio per eseguire bash, ma molti altri esistono quando /bin/sh è bash: molte funzioni chiamate che eseguono un programma esterno prendono un comando stringa (non un percorso e una matrice di argomenti); in particolare system e popen (a differenza della famiglia di funzioni exec* ). Queste funzioni prendendo una stringa usano la shell predefinita ( /bin/sh ) per analizzare la stringa di comando, quindi l'uso di queste funzioni rende il programma vulnerabile alle vulnerabilità di bash, a meno che l'ambiente non sia stato ripulito da qualsiasi input dell'utente.

Quindi qualsiasi programma C che utilizza queste funzioni è potenzialmente vulnerabile. E programmi scritti in altri linguaggi di programmazione con funzioni simili.

Questo è molto più programmi rispetto agli script /bin/bash .

Ovviamente, un programma C può exec un file eseguibile che sembra essere uno script di shell con un interprete /bin/bash .

exact cgi script which uses bash

Si noti che uno "script cgi " può effettivamente essere qualsiasi programma con l'interfaccia CGI ; non ha bisogno di essere uno "script" come nella shell script . Spesso, gli "script" CGI sono scritti in linguaggi compilati, come C.

Also, does the attacker have to enumerate pages on the vulnerable system

Molti script CGI sono in posizioni ben note, fisse, sulla maggior parte delle installazioni.

    
risposta data 05.10.2014 - 00:25
fonte