Реализовать MITM-атаку на Windows куда сложнее, чем на Linux, потому что нет нормальной возможности пересылать транзитные пакеты. Мы сделаем так, чтобы шлюзом был минималистичный Linux, поднятый как виртуальная машина. При этом сетевые интерфейсы будут объединены в мост, что даст возможность гостевой ОС получить полноценный L2-доступ в тот же сетевой сегмент, что и скомпрометированной Windows. А поможет нам в этом VirtualBox.
Представь, что тебе удалось пробить сетевой периметр и получить доступ к серверу, который работает на Windows. Но что дальше? Нужно двигаться по инфраструктуре — от DMZ до контроллера домена или до технологической сети и управления турбинами!
Или что мы уже давно в локальной сети, но захватить контроль над каким-либо сервером не получается — все обновления установлены и нет никаких зацепок, кроме скомпрометированных машин в ее VLAN.
И в том и в другом случае атакующий — это интерфейс прямо в VLAN скомпрометированной машины, да еще и на уровне L2. Тем самым мы превратили бы подконтрольный нам хост с Windows в некий шлюз и избавили бы себя от необходимости ставить специальное ПО для сканирования сети и разного рода сетевых атак.
У доступа L2 есть ряд дополнительных преимуществ. Мы можем проводить:
MITM-атаки — один из самых мощных приемов против локальных сетей, построенных по технологии Ethernet. Этот тип атак открывает широкие горизонты и позволяет брать совсем неприступные с виду хосты, просто прослушивая их сетевой трафик на предмет наличия в нем учетных данных либо как-то модифицируя его.
Так уж сложилось, что большинство хостов в локальных сетях работают на Windows. И так уж сложилось, что Windows, мягко говоря, не лучшая платформа для атак. Здесь нельзя полноценно реализовать IP forwarding, поэтому атака подобного рода грозит тем, что будет парализована работа всего сетевого сегмента.
Другие способы провернуть тоже непросто. Например, можно было бы настроить OpenVPN и сетевой мост, но настройка моста из командной строки в Windows реализована плохо, и, изменив настройки, скорее всего, ты безвозвратно потеряешь доступ.
Разумеется, для полноценной постэксплуатации потребуются административные полномочия.
В качестве виртуальной машины, в которой мы будем запускать Linux на скомпрометированном хосте, я предлагаю использовать VirtualBox, поскольку она:
На первый взгляд такое решение может показаться немного громоздким, но, с другой стороны, у него есть свои плюсы:
Главным же минусом будет необходимость копировать около 500 Мбайт файлов. Но зачастую это не особенно большая проблема.
Но сразу должен тебя предупредить, что есть случай, когда эта техника не сработает. Если скомпрометированная система — это уже виртуальная машина, то вполне может быть, что в ее настройках отключен неразборчивый режим для сетевой карты. Это может привести к тому, что сетевые пакеты не будут заходить в нашу виртуальную машину.
В качестве гостевой ОС есть смысл рассматривать два варианта:
С первым вариантом все просто — скачал и запустил. В Kali почти наверняка будет весь необходимый арсенал.
Но мы вместо того, чтобы закидывать в эту виртуалку весь любимый софт, соберем свою с чистого листа и превратим в шлюз, который предоставит нам комфортный L2-доступ к атакованному хосту из любой точки мира.
Так мы сэкономим 1–2 Гбайт места, так как весь ][-софт будет запускаться с машины атакующего, да и антивирус в таком случае ничего не увидит.
Чтобы сделать дистрибутив минималистичным, потребуется создать его, что называется, from scratch. Наиболее переносимым вариантом будет 32-битная система.
Создаем образ, который впоследствии будем наполнять:
truncate -s 1G linux.img
Мы указали размер образа с запасом в 1 Гбайт, в дальнейшем формат VDI сожмет пустоты.
Создаем разметку диска — один логический раздел:
$ fdisk linux.img
Command (m for help):n Command (m for help):p Partition number (1-4, default 1): First sector (2048-2097151, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151): Command (m for help):w Command (m for help):q
Создаем файловую систему и монтируем готовый раздел:
sudo losetup -o $[2048*512] /dev/loop0 linux.img sudo mkfs.ext4 /dev/loop0 sudo mount /dev/loop0 /mnt/
Скачиваем минимальный набор user-space:
sudo debootstrap --arch=i386 --variant=minbase stable /mnt/ http://http.us.debian.org/debian
Теперь осталось собрать ядро:
cd /usr/src/linux-5.5.1/
Создаем дефолтную конфигурацию ядра:
make ARCH=i386 defconfig
Также нам потребуется несколько дополнительных модулей:
make ARCH=i386 menuconfig
Собираем ядро:
make ARCH=i386 prepare make ARCH=i386 scripts make ARCH=i386 bzImage
Собираем модули:
make ARCH=i386 modules
После того как все собралось, копируем ядро и модули:
make INSTALL_PATH=/mnt/boot install make INSTALL_MOD_PATH=/mnt/ modules_install
Остался RAM-диск. Его, если хост-система 64-битная, лучше собрать на 32-битной системе. Только что скачанное через debootstrap окружение идеально подходит для этого:
chroot /mnt/ mkinitramfs -k -o /boot/initrd.img-5.5.0 5.5.0 apt remove initramfs-tools-core && apt autoremove exit
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее
1 год7690 р. |
1 месяц720 р. |
Я уже участник «Xakep.ru»
Читайте также
Последние новости