no one is safe ...

Automatisierung im Rahmen eines Pentests - part 1 (discovery)

Als erstes Resource Skript kommt das basic_discovery.rc Skript zum Einsatz. Dieses Skript automatisiert den ersten Portscanning-Vorgang mit Nmap und die weitere Informationsgewinnungsphase mit den folgenden internen Metasploit Modulen:

  • auxiliary/scanner/discovery/udp_sweep -> Kommt parallel zu Nmap zum Einsatz
  • auxiliary/scanner/portscan/tcp -> Alternative zu Nmap (speziell für Scans über Pivots interessant)
  • auxiliary/scanner/smb/smb_version
  • auxiliary/scanner/smb/smb2
  • auxiliary/scanner/netbios/nbname
  • auxiliary/scanner/smb/smb_enumshares
  • auxiliary/scanner/smb/smb_enumusers
  • auxiliary/scanner/smb/smb_enumusers_domain
  • auxiliary/scanner/smb/smb_lookupsid
  • auxiliary/scanner/smtp/smtp_version
  • auxiliary/scanner/smtp/smtp_enum
  • auxiliary/scanner/snmp/aix_version
  • auxiliary/scanner/snmp/snmp_enumshares
  • auxiliary/scanner/snmp/snmp_enumusers
  • auxiliary/scanner/snmp/snmp_enum
  • auxiliary/scanner/ssh/ssh_version
  • auxiliary/scanner/telnet/telnet_version
  • auxiliary/scanner/telnet/telnet_encrypt_overflow
  • auxiliary/scanner/imap/imap_version
  • auxiliary/scanner/pop3/pop3_version
  • auxiliary/scanner/http/http_version
  • auxiliary/scanner/http/open_proxy
  • auxiliary/scanner/http/svn_scanner
  • auxiliary/scanner/http/webdav_scanner
  • auxiliary/scanner/http/http_put
  • auxiliary/scanner/http/cisco_device_manager
  • auxiliary/scanner/http/cisco_ios_auth_bypass
  • auxiliary/scanner/http/vmware_server_dir_trav
  • auxiliary/scanner/ftp/ftp_version
  • auxiliary/scanner/ftp/anonymous
  • auxiliary/admin/ftp/titanftp_xcrc_traversal
  • auxiliary/scanner/mssql/mssql_ping
  • auxiliary/scanner/postgres/postgres_version
  • auxiliary/scanner/mysql/mysql_version
  • auxiliary/scanner/oracle/tnslsnr_version
  • auxiliary/scanner/backdoor/energizer_duo_detect
  • auxiliary/scanner/vnc/vnc_none_auth
  • auxiliary/scanner/x11/open_x11

Um dieses Skript zu nutzen muss die globale RHOSTS Variable auf den Ziel-IP Adressbereich gesetzt werden. Mit der Option VERBOSE lässt sich zudem bestimmen ob weitere Details der Module ausgegeben werden. Die Option NMAPOPTS ermöglicht spezielle Parameter für Nmap zu definieren. Default mäßig kommen die Optionen "-PN -P0 -O -sSV" zum Einsatz. Neben Nmap lässt sich auch der TCP-Portscanner von Metasploit nutzen. Dies ist unter Umständen von Interesse wenn man über einen Proxy-Pivot arbeitet. Um den internen TCP Scanner zu aktivieren lässt sich die globale NMAP Option auf einen Wert setzen der nicht "true" entspricht. Neben dem Nmap- oder neben dem internen TCP Scanner kommt noch das udp_sweep-Modul zur Ermittlung wichtiger UDP Ports zum Einsatz. Möchte man im Rahmen des Pentests ausschließlich die Nmap Servicedetection nutzen und keine internen Metasploit _version Module, so lässt sich das im Skript mit der Variable "versionscanners" konfigurieren.

Alternativ zu diesem Skript lässt sich auch das portscan.rc Resource File für die Portscans einsetzen. Dies entspricht im Bereich des Portscannings dem Discovery Skript, allerdings werden dabei keine weiteren Metasploit Module zur Ausführung gebracht.

10.8.28.2 - (Sessions: 0 Jobs: 0) > setg RHOSTS 10.8.28.0/24
RHOSTS => 10.8.28.0/24
10.8.28.2 - (Sessions: 0 Jobs: 0) > setg VERBOSE true
VERBOSE => true
10.8.28.2 - (Sessions: 0 Jobs: 0) > resource basic_discovery.rc
[*] Processing /opt/metasploit-4.1.4/msf3/scripts/resource/basic_discovery.rc for ERB directives.
[*] resource (/opt/metasploit-4.1.4/msf3/scripts/resource/basic_discovery.rc)> Ruby Code (20073 bytes)
THREADS => 15

============================================
starting discovery scanners ... stage 1
============================================

starting portscanners ...

udp_sweep
[*] Auxiliary module running as background job
Module: db_nmap
Using Nmap with the following options: -v -n -PN -P0 -O -sSV 10.8.28.0/24

[*] [2012.02.14-14:17:20] Sending 12 probes to 10.8.28.0->10.8.28.255 (256 hosts)
[*] Nmap: Starting Nmap 5.51SVN ( http://nmap.org ) at 2012-02-14 14:17 CET
[*] Nmap: NSE: Loaded 9 scripts for scanning.
[*] Nmap: Initiating ARP Ping Scan at 14:17
[*] Nmap: Scanning 2 hosts [1 port/host]
[*] Nmap: Completed ARP Ping Scan at 14:17, 0.44s elapsed (2 total hosts)
[*] Nmap: Nmap scan report for 10.8.28.0 [host down]
[*] Nmap: Nmap scan report for 10.8.28.1 [host down]
[*] Nmap: Initiating ARP Ping Scan at 14:17
[*] Nmap: Scanning 253 hosts [1 port/host]
[*] Nmap: Completed ARP Ping Scan at 14:17, 1.37s elapsed (253 total hosts)
[*] Nmap: Initiating SYN Stealth Scan at 14:17
[*] Nmap: Scanning 10.8.28.2 [1000 ports]
[*] Nmap: Discovered open port 80/tcp on 10.8.28.2
[*] Nmap: Discovered open port 22/tcp on 10.8.28.2
[*] Nmap: Completed SYN Stealth Scan at 14:17, 0.11s elapsed (1000 total ports)
[*] Nmap: Initiating Service scan at 14:17
[*] [2012.02.14-14:17:23] Discovered DNS on 10.8.28.3:53 (BIND 9.5.1-P3)
[*] [2012.02.14-14:17:24] Discovered DNS on 10.8.28.50:53 (Microsoft DNS)
[*] [2012.02.14-14:17:27] Discovered NetBIOS on 10.8.28.29:137 (TRIXBOX1:<00>:U :TRIXBOX1:<03>:U :TRIXBOX1:<20>:U :WORKGROUP:<1e>:G :WORKGROUP:<00>:G :00:00:00:00:00:00)
[*] [2012.02.14-14:17:27] Discovered NetBIOS on 10.8.28.32:137 (METASPLOITABLE:<00>:U :METASPLOITABLE:<03>:U :METASPLOITABLE:<20>:U :WORKGROUP:<00>:G :WORKGROUP:<1e>:G :00:00:00:00:00:00)
[*] [2012.02.14-14:17:27] Discovered NetBIOS on 10.8.28.35:137 (UBUNTU:<00>:U :UBUNTU:<03>:U :UBUNTU:<20>:U :__MSBROWSE__:<01>:G :MSHOME:<1d>:U :MSHOME:<1e>:G :MSHOME:<00>:G :00:00:00:00:00:00)
[*] [2012.02.14-14:17:27] Discovered DNS on 10.8.28.32:53 (BIND 9.4.2)
<snip>
Nmap läuft fertig ... weitere discovery Module werden gestartete
<snip>
============================================
starting discovery scanners ... stage 2
============================================
<snip>

Module: smb_enumusers_domain

====================================
IP: 10.8.28.29
OS: Linux
Servicename: microsoft-ds
Service Port: 445
Service Protocol: tcp
====================================

RPORT => 445
RHOSTS => 10.8.28.29
VERBOSE => true
[*] [2012.02.14-14:25:11] 10.8.28.29:139 IPC$ - IPC Service (trixbox PBX) (IPC), share -  (DISK)
[*] [2012.02.14-14:25:11] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module running as background job
Module: smb_lookupsid

====================================
IP: 10.8.28.29
OS: Linux
Servicename: microsoft-ds
Service Port: 445
Service Protocol: tcp
====================================

RPORT => 445
RHOSTS => 10.8.28.29
VERBOSE => true
[*] Auxiliary module running as background job
UUID 6bffd098-a112-3610-9833-46c3f87e345a 1.0 ERROR DCERPC FAULT => nca_op_rng_error

Im Anschluss an den vollständig automatisierten Discovery Vorgang umfasst die Metasploit Datenbank umfangreiche Informationen der zu analysierenden Umgebung. Diese Informationen umfassen neben Systemdetails, Service-Informationen auch Details zu SNMP, SMB-Shares und User und vieles mehr. Auswerten lassen sich diese Informationen mit den Kommandos hosts, services, notes.

Im nächsten Artikel werden die eingeholten Informationen möglichst automatisiert für weitere Aktionen wie Analyse der Werbserver, Passwort Angriffe und Auswahl von Exploits genutzt.

Falls ihr weitere Informationen zu Metasploit benötigt findet ihr diese in meinem Buch. Erste Probekapitel findet ihr auf der dpunkt-Webseite. Das Buch lässt sich natürlich auf Amazon bestellen.

have phun
mIke

Comments

Nevermind :)

Ok i see it lol :D

/opt/metasploit-4.1.4/msf3/scripts/resource/basic_discovery.rc

ressources files ?

Hi,
First of all thx for your article(s) : )
You talk about basic_discovery.rc , is it available ? i can't see link ?

Thanks : )