
Следующее поколение версии enum4linux (инструмент для перечисления Windows/Samba) с дополнительными функциями, такими как экспорт в JSON/YAML. Предназначен для специалистов по безопасности и участников CTF.
Версия enum4linux нового поколения
enum4linux-ng.py — это переработка enum4linux.pl, созданной Марком Лоу (ранее Portcullis Labs, теперь Cisco CX Security Labs). Инструмент предназначен для сбора информации о системах Windows и Samba и ориентирован на специалистов по безопасности и участников CTF. Он является в первую очередь обёрткой вокруг утилит Samba: nmblookup, net, rpcclient и smbclient.
Я создал его в образовательных целях для себя и чтобы обойти проблемы enum4linux.pl. Он обладает той же функциональностью, что и оригинальный инструмент (хотя некоторые вещи реализованы иначе). В отличие от оригинала, он анализирует весь вывод утилит Samba и позволяет экспортировать все результаты в файл YAML или JSON. Идея в том, чтобы другие инструменты могли импортировать результаты и обрабатывать их дальше. В будущем планируется добавить новые функции.
Некоторые вещи реализованы иначе по сравнению с оригинальным enum4linux. Вот основные отличия:
-Gm-A), но может быть включено с помощью -R-A вместо -a)Я хотел бы поблагодарить и выразить признательность сотрудникам бывшего Portcullis Labs (теперь Cisco CX Security Labs), а именно:
Кроме того, хочу поблагодарить:
Было очень интересно читать ваш код! :)
И наконец, я благодарю всех, кто внёс свой вклад в код, сообщал о проблемах и давал полезные советы по улучшению инструмента.
Если вы используете этот инструмент: не применяйте его в нелегальных целях.
Пример запуска может выглядеть так:
enum4linux-ng.py -As <target> -oY out
На этой демонстрации показан запуск против стандартной установки Windows Server 2012 R2. Используется следующая команда:
enum4linux-ng.py 192.168.125.131 -u Tester -p 'Start123!' -oY out
Был создан пользователь 'Tester' с паролем 'Start123!'. Доступ через брандмауэр разрешён. После завершения перечисления я прокручиваю вверх, чтобы результаты стали более наглядными. Поскольку не указана другая опция перечисления, инструмент предполагает -A, что аналогично опции -a enum4linux. Переданы имя пользователя и пароль. Опция -oY экспортирует все собранные данные в файл YAML для дальнейшей обработки в out.yaml. В начале инструмент автоматически определяет, что LDAP не запущен на удалённом хосте, поэтому он пропускает все дальнейшие проверки LDAP, которые обычно входят в стандартное перечисление.

Вторая демонстрация показывает запуск против Metasploitable 2. Используется следующая команда:
enum4linux-ng.py 192.168.125.145 -A -C
На этот раз используются опции -A и -C. Первая ведёт себя аналогично опции -a enum4linux, а вторая включает перечисление служб. На этот раз учётные данные не предоставлялись. Инструмент автоматически определяет, что нужно использовать SMBv1. Файлы YAML или JSON не записываются. Я снова прокручиваю вверх, чтобы результаты стали более наглядными.

usage: enum4linux-ng.py [-h] [-A] [-As] [-U] [-G] [-Gm] [-S] [-C] [-P] [-O] [-L] [-I] [-R [BULK_SIZE]] [-N] [-w DOMAIN] [-u USER]
[-p PW | -K TICKET_FILE | -H NTHASH] [--local-auth] [-d] [-k USERS] [-r RANGES] [-s SHARES_FILE] [-t TIMEOUT] [-v] [--keep]
[-oJ OUT_JSON_FILE | -oY OUT_YAML_FILE | -oA OUT_FILE]
host
This tool is a rewrite of Mark Lowe's enum4linux.pl, a tool for enumerating information from Windows and Samba systems. It is mainly a wrapper around the Samba
tools nmblookup, net, rpcclient and smbclient. Other than the original tool it allows to export enumeration results as YAML or JSON file, so that it can be
further processed with other tools. The tool tries to do a 'smart' enumeration. It first checks whether SMB or LDAP is accessible on the target. Depending on the
result of this check, it will dynamically skip checks (e.g. LDAP checks if LDAP is not running). If SMB is accessible, it will always check whether a session can
be set up or not. If no session can be set up, the tool will stop enumeration. The enumeration process can be interupted with CTRL+C. If the options -oJ or -oY
are provided, the tool will write out the current enumeration state to the JSON or YAML file, once it receives SIGINT triggered by CTRL+C. The tool was made for
security professionals and CTF players. Illegal use is prohibited.
positional arguments:
host