NetExec — это инструмент похожий на PsMapExec и CrackMapExec, который используется для удаленного выполнения команд на целевых машинах, что делает его полезным для тестирования на проникновение (пентестов) и постэксплуатации Active Directory. В статье разберем процесс установки в Linux, Windows и Mac, а также рассмотрим возможности на примере сканирования и работы с SMB на Kali Linux.
Еще по теме: Создание стенда для практики взлома Active Directory
NetExec в постэксплуатации Active Directory
NetExec выделяется среди PsMapExec и CrackMapExec благодаря своей кроссплатформенности, поддержке нескольких операционных систем (Unix, Windows, macOS). В отличие от PsMapExec и CrackMapExec, которые в основном фокусируются на Windows-системах и Active Directory, этот инструмент предоставляет более универсальные возможности для удаленного управления и выполнения команд на различных системах, что делает его более подходящим для сценариев, где требуется взаимодействие с множеством платформ.
Тулза используется для компрометации различных сервисов в сети:
- SMB
- SSH
- LDAP
- FTP
- WMI
- WINRM
- RDP
- VNC
- MSSQL
Статья в образовательных целях для обучения этичных хакеров. При написании статьи использовались личные устройства автора. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
Установка NetExec на Unix
Для удобной установки NetExec рекомендуется использовать pipx, что позволит использовать как NetExec, так и nxcdb на уровне всей системы.
pipx — инструмент для установки и запуска приложений Python в изолированных средах. Он позволяет устанавливать Python-программы в отдельные виртуальные окружения, чтобы избежать конфликтов зависимостей между проектами.
Установка через pipx:
1 2 3 |
sudo apt install pipx git pipx ensurepath pipx install git+https://github.com/Pennyw0rth/NetExec |
После завершения установки откройте новую оболочку и запустите инструменты:
1 2 |
NetExec nxcdb |
Обновление NetExec через pipx:
1 2 |
pipx update netexec — обновление при наличии новой версии pipx reinstall netexec — принудительное скачивание последних изменений с GitHub |
Установка на Kali Linux
Тулзу добавили в новом релизе, но если по какой-то причине его нет, вот как его установить:
1 2 |
apt update apt install netexec |
Установка для BlackArch
1 |
pacman -Syu netexec |
Я рекомендую устанавливать через pipx или pip, но, если вам нужны предварительно скомпилированные бинарные файлы, перейдите на страницу релизов проекта и скачайте подходящий файл.
Установка на Windows
Существуют различные способы установки на Windows.
Установка через Python и pipx
Для установки NetExec на Windows через pipx вам потребуется git и Rust. Если не сможете их установить, воспользуйтесь standalone-исполняемым файлом (см. ниже).
Установите Git, Rust и C++:
- Скачать Git
- Установить Rust
- Установить инструменты C++
Установите pipx и NetExec:
1 2 3 |
pip install pipx python -m pipx ensurepath python -m pipx install git+https://github.com/Pennyw0rth/NetExec |
После этого запустите NetExec:
1 |
NetExec |
Использование NetExec Binary
- Скачайте последний релиз для Windows.
- Распакуйте архив.
- Запустите файл через командную строку.
Использование Python ZippApp
- Можно использовать standalone-версию Python. После этого добавьте путь к файлу python.exe в переменную PATH.
- Скачайте ZippApp для своей ОС и версии Python.
- Запустите бинарный файл:
1 |
python.exe .\nxc |
Если возникла ошибка:
1 FileNotFoundError: [Errno 2] No such file or directory...Добавьте следующий ключ реестра:
1 REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
Установка на Mac
Сначала установите Rust на Mac:
1 |
brew install rust |
или
1 2 |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" |
Установите NetExec:
1 2 |
brew install pipx pipx install git+https://github.com/Pennyw0rth/NetExec |
Использование NetExec
Мы будем использовать NetExec для поиска и перечисления SMB-шар.
Первым шагом будет обнаружение хостов в сети. Для этого можно использовать, установленный по умолчанию в Kali Linux, инструмент Netdiscover (см. Netdiscover для поиска хостов):
1 |
sudo netdiscover -r 10.136.69.0/24 | awk '{print $1}' |
Полученные IP-адреса хостов нужно сохранить в файл для дальнейшего использования.
После того, как у нас есть список хостов, можно начать сканирование SMB:
1 |
nxc smb hosts.txt |
Следующий шаг — поиск доступных расшаренных ресурсов в сети. Для начала попробуем войти без логина и пароля:
1 |
nxc smb ./hosts.txt -u '' -p '' --shares |

Ожидаемо, в большинстве случаев это вызовет ошибку «доступ запрещен», но иногда пустые учетные записи могут быть активны.
Далее попробуем войти с учетной записью гостя:
1 |
nxc smb ./hosts.txt -u 'guest' -p '' --shares |
В случае успешного подключения через гостевую учетную запись мы можем получить доступ к файлам, расшаренным для гостя.
Также стоит проверить доступ через учетную запись anonymous:
1 |
nxc smb ./hosts.txt -u 'anonymous' -p '' --shares |
Теперь, когда мы знаем, что у гостя или anonymous есть доступ к файлам, можно выгрузить содержимое этих шар.
Сначала зададим переменную с IP-адресом NAS:
1 |
NASIP=10.136.69.10 |
Теперь выполним команду для выгрузки данных с помощью NetExec:
1 |
nxc smb ${NASIP} -u 'guest' -p '' -M spider_plus -o DOWNLOAD_FLAG=True |
Далее можно попробовать найти учетные записи пользователей с доступом через гостя:
1 |
nxc smb ./hosts.txt -u 'guest' -p '' --users |
Если результатов немного, попробуем выполнить то же самое с пустым логином и паролем:
1 |
nxc smb ./hosts.txt -u '' -p '' --users |
Если находим пользователя с пустым паролем, например, nobody, можно продолжить верификацию учетных данных.
Теперь проверим, удалось ли нам получить корректные учетные данные.
Задаем переменные для имени пользователя и пароля, которые обнаружили:
1 2 |
TARGET_USERNAME=#[заполните найденное имя пользователя] TARGET_PASSWORD=#[заполните найденный пароль] |
После этого выполняем команду для проверки аутентификации:
1 |
nxc smb ./hosts.txt -u "${TARGET_USERNAME}" -p "${TARGET_PASSWORD}" |
Если увидите зеленый +, это значит, что аутентификация успешна!
Заключение
Этот пример — лишь небольшая демонстрация возможностей NetExec для работы с SMB. Инструмент также может быть интегрирован с Bloodhound для более глубокого анализа сетевой среды и построения графов взаимосвязей пользователей и компьютеров.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Взлом сети через групповые политики Active Directory
- Как повысить привилегии при пентесте Active Directory