lundi 22 mars 2010

Пишем свой сканер.

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

Мы будем использовать очень простой TCP сканер, который будет подключаться к хосту к порту по умолчанию 12345, который кстати, можно будет сменить в процессе выполнения. После подключения к серверу, сканер посылает 'HELLO SERVER', получает ответ и печатает его вместе с IP адресом удаленного хоста.
require 'msf/core'

class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Scanner
def initialize
super(
'Name' => 'My custom TCP scan',
'Version' => '$Revision: 1 $',
'Description' => 'My quick scanner',
'Author' => 'Your name here',
'License' => MSF_LICENSE
)
register_options( [
Opt::RPORT(12345)
], self.class)
end
def run_host(ip)
connect()
sock.puts('HELLO SERVER')
data = sock.recv(1024)
print_status("Received: #{data} from #{ip}")
disconnect()
end
end

Сохраняем наш файл в дирректории ./modules/auxiliary/scanner/ как 'simple_tcp.rb' и запустим msfconsole. Важно отметить две вещи. Во-первых, модули загружаются во время выполнения, поэтому наш новый модуль не появится, если мы не перезапустим наш интерфейс выбора. Во-вторых структура папок очень важна, если мы сохраним наш сканер в ./modules/auxiliary/scanner/http/, он будет отображаться в списке сканеров как 'scanner/http/simple_tcp'. Для тестирования сканера, запустим netcat прослушивающим порт 12345, в качестве ответов воспользуемся текстовым файлом.
root@bt4:~/docs# nc -lnvp 12345 < response.txt
listening on [any] 12345 …

Далее, выберем новый модуль сканера, установим его параметры и запустим его, чтобы увидеть результаты.
msf > use scanner/simple_tcp
msf auxiliary(simple_tcp) > set RHOSTS 192.168.1.101
RHOSTS => 192.168.1.101
msf auxiliary(simple_tcp) > run

[*] Received: hello metasploit from 192.168.1.101
[*] Auxiliary module execution completed

Как вы видите из этого простого примера, этот уровень гибкости может оказать большую помощь, когда нужно воспользоваться пользовательским кодом в тесте на проникновение.

Э_L_A_Y c brutforcer.ru

Aucun commentaire:

Enregistrer un commentaire