Побег через брандмаузер

ключевой фрагмент shell-кода, устанавливающий исходящее соединение


Откомпилировав исходный текст демонстрационного примера (ищите его в файле reverse.c), выполните на узле атакующего следующую команду: netcat –l –p 666, а на атакуемом узле запустите reverse.exe (выполняющий роль shell-кода) и введите IP-адрес атакующего узла с клавиатуры (в реальном shell-коде, как уже говорилось выше, этот адрес передается вместе с головой червя).

И вновь терминал хакера превратится в удаленный shell, позволяющий делать с уязвимым узлом все, что угодно. Причем, если в отношении "подтягивания" вирусного хвоста все было предельно ясно (голова червя устанавливает с исходным узлом TCP/IP соединение, скачивает основное тело червя, разрывая соединение после завершения этой операции), то осуществить "инверсный" доступ к backdoor'у значительно сложнее, поскольку инициатором соединения является уже не хакер, а сам удаленный shell-код. Теоретически последний можно запрограммировать так, чтобы он периодически стучался на хакерский узел, пытаясь установить соединение каждый час или даже каждые несколько секунд, однако, это будет слишком заметно, и к тому же атакующему потребуется постоянный IP, которым не так-то просто завладеть анонимно.



Содержание раздела