Как правило, большие и средние компании строят свою внутреннюю инфраструктуру на решениях Microsoft. В основном это парк машин на XP/7, состоящих в домене с функциональным уровнем леса — Windows Server 2003. Периметр и демилитаризованные зоны часто представлены *nix-like системами. Во время проведения пентестов для таких компаний часто возникает классическая задача — перебросить файл с хоста на удаленную машину под управлением Windows. Наиболее распространенный случай — это RCE через уязвимость веб-приложения или ошибка в конфигурации сервисов. Не будем вдаваться в особенности реализации вектора атаки, а остановимся на задаче загрузки файла на целевую машину. Эта задача порой может отнять кучу времени, если не подготовиться как следует. Но мы-то готовы ко всему :). Даже тогда, когда в нашем распоряжении есть лишь минимальный набор инструментов, немногим варьирующий от версии к версии ОС, который позволяет в полной мере выполнить поставленную задачу.
Problem condition
В первую очередь давай определимся с ситуацией — она банальна и повседневна для пентестера :). Имеется некий вектор атаки, позволяющий выполнять команды ОС. Сервер может находиться на периметре, в демилитаризованной зоне или в интранете. Эти условия непринципиальны. Чтобы было проще, давай введем такие именования:
TARGET — машина, на которой имеем выполнение команд, на базе Windows, у нее только один сетевой интерфейс, смотрящий внутрь сети (192.168.1.10);
GATE — шлюз, который связывает внутреннюю сеть и интернет. Ось непринципиальна. Соответственно, на нем два сетевых интерфейса (192.168.1.1 и 5.5.5.5);
ATTACKER — наш подконтрольный сервер, на базе Bactrack 5r3 / Kali linux, с IP-адресом 1.2.3.4.
Firewall holes
Прежде чем начать передачу целевого файла, важно найти способ надежного соединения с узлом. Поиск прямых каналов связи на транспортном уровне с эксплуатируемым узлом (IP: 192.168.1.10) решается последовательным перебором портов на контролируемом сервере (IP: 1.2.3.4). Из стандартного инструментария можем воспользоваться Telnet, nslookup, PowerShell. Telnet и nslookup целесообразно использовать в версиях до Windows 2003 включительно, а начиная с Windows Vista рекомендуется использовать PowerShell. В принципе, если бы не досадная ошибка в nslookup, у нас мог бы быть универсальный инструмент для всех версий Windows. Очевидный факт: если в системе нет Telnet, то там есть PowerShell.
Вячеслав Егошин (http://www.xakep.ru/
)
Комментарии
Добавить комментарийПопробуем
Комментировать