Skip to content

Truandale/who_admin

Repository files navigation

Сканер локальных администраторов

WinForms приложение для сканирования членов локальной группы "Администраторы" на удаленных компьютерах в домене Windows.

Функциональность

  • Универсальный поиск группы Администраторы по SID S-1-5-32-544 (работает на любом языке ОС)
  • NetAPI32 сканирование через NetLocalGroupGetMembers - более надёжно чем WMI для доменных групп
  • Загрузка компьютеров из Active Directory с фильтрацией рабочих станций
  • Разворачивание доменных групп в отдельных пользователей и подгрупп
  • Параллельное сканирование с настройкой количества потоков
  • Детальная информация о типах учетных записей:
    • Локальные/доменные пользователи и группы
    • Статус учетных записей (отключен/заблокирован/пароль не истекает)
    • Вложенные группы и развернутые члены
    • Встроенные группы и компьютерные учётки
  • Экспорт результатов в CSV
  • Progress bar и возможность остановки сканирования

Требования

  • .NET 8.0 с Windows Forms
  • Права доменного администратора для NetAPI32 доступа к удаленным компьютерам
  • Открытый доступ к NetAPI32/RPC на целевых компьютерах (порты 135, 445)
  • Настроенный брандмауэр для Remote Administration (правило "Remote Administration")

Установка и сборка

  1. Клонируйте репозиторий:
git clone https://github.com/ВАШ_USERNAME/who_admin.git
cd who_admin
  1. Восстановите пакеты NuGet:
dotnet restore
  1. Соберите проект:
dotnet build
  1. Запустите приложение:
dotnet run

Или запустите исполняемый файл: bin\Debug\net8.0-windows\who_admin.exe

Использование

  1. Загрузка компьютеров:

    • Нажмите "Загрузить ПК из AD" для автоматической загрузки из домена
    • Или введите имена компьютеров вручную (по одному в строке)
  2. Настройка сканирования:

    • Установите галочку "Разворачивать доменные группы" для детального анализа
    • Настройте количество параллельных потоков (по умолчанию = количество ядер)
  3. Запуск сканирования:

    • Нажмите "Сканировать"
    • Наблюдайте за прогрессом в строке состояния
    • При необходимости нажмите "Стоп" для остановки
  4. Экспорт результатов:

    • Нажмите "Экспорт CSV" для сохранения результатов

Выходные данные

Приложение показывает следующую информацию для каждого компьютера:

Колонка Описание
Компьютер Имя сканируемого компьютера
Статус Результат сканирования (OK, ошибка)
Тип члена Локальный/доменный пользователь/группа/алиас
Учетная запись Полное имя учетной записи с доменом
Источник Источник информации (NetAPI32, AD recursive)
Развёрнуто из Родительская группа (для развернутых членов)

Примеры результатов

Компьютер    | Тип члена              | Учетная запись
-------------|------------------------|--------------------------------
PC001        | Доменный пользователь [ОТКЛЮЧЁН] | DOMAIN\john.doe
PC001        | Доменная группа        | DOMAIN\Domain Admins
PC001        | Локальный пользователь | PC001\Administrator
PC001        | Доменный пользователь (из группы) | DOMAIN\admin1
PC001        | Встроенная группа      | BUILTIN\Backup Operators

Технические детали

Архитектура

  • Использует NetAPI32 для надёжного получения членов локальных групп
  • System.DirectoryServices.AccountManagement для работы с Active Directory
  • Parallel.ForEach для многопоточного сканирования
  • ConcurrentBag для thread-safe сбора результатов

Безопасность

  • Поиск по универсальному SID избегает проблем локализации
  • NetAPI32 более надёжен чем WMI для доменных групп и вложенных членов
  • Proper exception handling предотвращает сбои при недоступных компьютерах
  • Защита от ошибок при разрешении доменных объектов

Производительность

  • Параллельное выполнение ускоряет сканирование больших сетей
  • Ограничение MaxDegreeOfParallelism предотвращает перегрузку
  • Cancellation token позволяет остановить длительные операции

Лицензия

MIT License

Автор

Создано для аудита безопасности корпоративных сред Windows.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages