keimpx
Life-Hack [Жизнь-Взлом]/Хакингkeimpx — это инструмент с открытым исходным кодом для быстрой проверки учётных данных по сети через SMB. Учётными данными могут быть:
- Комбинация пользовать / пароль в открытом виде.
- Комбинация пользователь / NTLM хеш.
- Комбинация пользователь / маркер сессии входа NTLM.
Если после этой фазы атаки в сети были найдены какие-либо действительные учётные данные, программа спросит пользователя выбрать хост для подключения и какие валидные учётные данные использовать. Они будут использоваться для открытия интерактивной оболочки SMB где пользователь может:
- Запустить интерактивную командную строку.
- Выполнять действия в удалённых сетевых папках SMB: выводить список файлов и папок, выгружать, загружать файлы, создавать, удалять файлы и т.д.
- Разворачивать и сворачивать свои собственные службы, например, бэкдор, прослушивающий TCP порт на входящие соединения.
- Выводить подробности о пользователях, доменах и политиках паролей.
Домашняя страница: https://github.com/nccgroup/keimpx
Автор: Bernardo Damele A. G.
Лицензия: Apache-2.0
Справка по keimpx
Использование:
./keimpx.py [опции]
Опции:
--version показать версию программы и выйти -h, --help показать справку и выйти -v ВЕРБАЛЬНОСТЬ Уровень вербальности: 0-2 (по умолчанию: 0) -t ЦЕЛЬ Целевой адрес -l СПИСОК Файл со списком целей -U ПОЛЬЗОВАТЕЛЬ Пользователь -P ПАРОЛЬ Пароль --nt=NTHASH NT хеш --lm=LMHASH LM хеш -c CREDSFILE Файл со списком учётных данных -D ДОМЕН Домен -d DOMAINSFILE Файл со списком доменов -p ПОРТ SMB порт: 139 или 445 (по умолчанию: 445) -n ИМЯ Локальное NetBIOS имя хоста -T ПОТОКИ Максимум одновременных подключений (по умолчанию: 10) -b, --batch Пакетный режим: не создавать интерактивную командную оболочку SMB -x SMBCMDLIST Выполнить список SMB команд в отношении всех хостов -X OSCMDLIST Выполнить список команд операционной системы в отношении всех хостов
Руководство по keimpx
Страница man отсутствует.
Опции интерактивной оболочки SMB в keimpx
Общие опции
- help — показать справку
- verbosity {уровень} — установить уровень вербальности (0-2)
- info — вернуть главные результаты NetrServerInfo
- who — вернуть сессии в настоящее время подключённые к целевому хосту (требуется админ)
- exit — завершить сессию SMB и выйти из инструмента
- !{команда} — выполнить локальную команду
Опции сетевых папок
- shares — вывести список всех сетевых папок
- use {шара} — подключиться к определённой шаре
- cd {путь} — изменить текущую директорию на {путь}
- pwd — показать текущую удалённую директорию
- ls {путь} — список всех файлов в данном пути или текущей директории
- lstree [путь] — списки всех файлов и директорий рекурсивно в заданном пути или текущей директории
- cat {файл} — показать содержимое выбранного файла
- download {имя_файла} — загрузить файл из текущей директории
- downloadtree [путь] — загрузить все файлы и директории рекурсивно по заданному пути или в текущей директории
- upload {имя_файла} [конечный_файл] — выгрузить файл на удалённую шару (или текущий путь)
- rename {исходный_файл} {конечный_файл} — переименовать файл
- mkdir {имя_директории} — создать директорию по текущему пути
- rm {файл} — удалить выбранный файл
- rmdir {имя_директории} — удалить директорию по текущему пути
Опции служб
- services [имя_службы] — вывести список служб
- status {имя_службы} — запросить статус служб
- query {имя_службы} — список конфигурации службы
- start {имя_службы} — запустить службу
- stop {имя_службы} — остановить службу
- change {имя_службы} — изменить конфигурацию службы (в прогрессе)
- deploy {имя_службы} {локальный файл} [аргументы службы] [удалённый файл] [имя] — удалённо развернуть исполнимую службу
- undeploy {имя_службы} — удалённо свернуть исполнимую службу
- stopav — попытаться остановить любые известные службы антивирусов
Опции работы с пользователями
- users [домен] — список пользователь, опционально можно указать домен и будут выведены пользователи только для него
- pswpolicy [домен] — вывод списка политик паролей, опционально можно указать домен и будет показан список политик паролей только для него
- domains — вывод списка доменов, частью которых является эта система
Параметры конечных точек RPC
- rpcdump — дамп конечных точек RPC
Опции реестра (скоро)
- regread {ключ реестра} — прочитать ключ реестра
- regwrite {ключ реестра} {значение ключа реестра} — добавить значение в ключ реестра
- regdelete {ключ реестра} — удалить ключ реестра
Опции взаимодействия с операционной системой
- bindshell [порт] — запустить интерактивную оболочку на TCP порту цели. Работает это следующим образом: на удалённую систему выгружается файл оболочки и запускается как сервис, который прослушивает TCP порт. По умолчанию это порт 4445/TCP. Если цель находится за строгим файерволом, то это не будет работать — вместо этого варианта используйте другие техники. Это работает путём загрузки пользовательской оболочки связывания, её запуска в качестве службы и подключения к порту TCP, где она прослушивает, по умолчанию 4445 / TCP. Если цель находится за строгим брандмауэром, она не будет работать, вместо этого используйте другие методы ниже.
- svcshell [режим] — полуинтерактивная оболочка через запущенную для неё службу Windows. Это работает путём создания службы для выполнения команды, перенаправления её вывода во временный файл в общем ресурсе и извлечения его содержимого, а затем удаления службы. Режим работы может быть SHARE (по умолчанию) или SERVER, при котором создаётся экземпляр локального SMB-сервера для получения выходных данных команд. Это полезно в ситуации, когда на целевом компьютере нет доступного для записи общего ресурса — дополнительные порты не требуются.
- svcexec {команда} [режим] — выполняет команды через запущенную для этого службу Windows. Такая же технология как и для svcshell. Неинтерактивная оболочка, одна команда за раз — дополнительные порты не требуются.
- atexec {команда} — выполняет команды через службу Планировщик задач (Task Scheduler). Возвращает вывод такой команды. Неинтерактивная оболочка, одна команда за раз — дополнительные порты не требуются.
- psexec [команда] — выполняет команды через именные каналы (pipe) SMB. Та же техника, что и в PsExec из Sysinternal. По умолчанию используется cmd.exe, поэтому установлена интерактивная оболочка. Он использует RemComSvc — никаких дополнительных портов не требуется.
Опции дампа секретов (паролей и хешей)
- secretsdump [y|N] — выполняет различные методы для сброса хэшей с удалённой машины без выполнения какого-либо агента там. Для секретов SAM и LSA (включая кэшированные учётные данные) мы стараемся читать как можно больше из реестра, а затем сохраняем hives в целевой системе (доступный для записи общий ресурс) и читаем оставшиеся данные оттуда. Для NTDS.dit мы должны извлечь NTDS.dit через vssadmin, выполненный с использованием подхода svcexec. Он копируется во временный каталог и анализируется удалённо. Эта команда запускает службы, необходимые для её работы, если они недоступны (например, удалённый реестр, даже если он отключён). После того, как работа сделана, все возвращается в исходное состояние. Аргумент может быть Y или N, чтобы сохранить или не хранить историю паролей, по умолчанию это N
Примеры запуска keimpx
Просканировать подсеть (-t 192.168.0.0/24) проверив валидность для всех хостов с сетевыми папками правильность имени пользователя (-U Alexey) и пароля (-P qweqwe123):
python3 ./keimpx.py -t 192.168.0.0/24 -U Alexey -P qweqwe123
Подключиться к удалённому хосту (-t 192.168.0.101) используя имя пользователя (-U Alexey) и пароль (-P qweqwe123):
python3 ./keimpx.py -t 192.168.0.101 -U Alexey -P qweqwe123
В результате указанные учётные данные будут проверены на правильность. Если они правильные, то будет предложено подключиться и открыть интерактивную оболочку для взаимодействия с удалённой системой.
Установка keimpx
Установка в Kali Linux
sudo apt install python3-pip git clone https://github.com/nccgroup/keimpx cd keimpx/ sudo pip3 install -r requirements.txt python3 ./keimpx.py -h
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S keimpx
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты keimpx
