Skip to main content

Автоматизация MSF

ЕстьРесурсные несколькоскрипты

способов,

Аналог нативныйbash Ruby.скриптов для msf. Текстовые файлы с расширением rc, выполняются консолью msf построчно. Можно создать скрипт из введенных команд 

Запуск

Из существующего где-то файла: 

msfconsole -r /path/to/script/attack.rc param1 param2

Их скрипты размещаются в /usr/share/metasploit-framework/scripts/resource

msf > resource /path/to/script param1 param 2

Можно сохранить последние введенные команды. ! ~ не работает, нужен полный путь ! 

msf > makerc /home/kali/lessons_ruby/myscript.rc

makerc запоминает, какие команды уже были сохранены. Поэтому если сразу же повторить предыдущую команду, то будет сообщение [-] No commands to save! 

Добавление Ruby

В данные скрипты можно добавлять скрипты на Ruby: 

workspace -a http_title
db_nmap -Pn -T4 -n -v -p 80 --open 192.168.33.0/24
use auxiliary/scanner/http/title
<ruby>
run_single("set RHOSTS #{framework.db.hosts.map(&:address).join(' ')}")
</ruby>
run

Скрипты расположены в /usr/share/metasploit-framework/scripts/resource 

Вариант для python:

pip install pymetasploit3

Пример скрипта:

from pymetasploit3.msfrpc import MsfRpcClient

client = MsfRpcClient('your_password', port=55553)

# Запуск сканирования
scan = client.modules.use('auxiliary', 'scanner/portscan/tcp')
scan['RHOSTS'] = '192.168.1.1-100'
scan['PORTS'] = '1-1000'
scan['THREADS'] = '20'

result = scan.execute()
print(result)

# Получение результатов из БД
for host in client.db.hosts():
    print(f"Host: {host['address']}")
    for service in client.db.services(host['address']):
        print(f"  Port: {service['port']}/{service['proto']} - {service['state']}")