no one is safe ...

first test of Rapid 7 NeXpose with Metasploit

Rapid 7 schaffte es in letzter Zeit gleich mehrfach das Interesse von Pentestern, Sicherheitsverantwortlichen und weiteren Sicherheitsinteressierten auf sich zu ziehen.

Im ersten Schritt "übernahmen" sie Metasploit bzw. stellten die Hauptentwickler von Metasploit fix an. Das bedeutet für Metasploit dass nun mehrere Entwickler hauptberuflich an diesem Exploiting Framework arbeiten und die Entwicklung dementsprechend wesentlich schneller von statten geht. In den letzten Wochen merkt man diesen Arbeitseinsatz schon enorm an mittlerweile 2 neuen Subversionen (Version 3.3.1 und Version 3.3.2). Version 3.3 enthielt 445 Exploits, in Version 3.3.2 sind es bereits 463 Exploitingmodule. Seit Version 3.3.1 bringt Metasploit das NeXpose Plugin mit, dieses Plugin ermöglicht die Integration des NeXpose Vulnerability Scanners direkt in Metasploit.

Der zweite Schritt von Rapid 7 war die Veröffentlichung der NeXpose Community Edition. Die Community ist sicherlich eine gewagte Entscheidung von Rapid 7, durch die Interaktion von NeXpose und Metasploit aber wohl eine sehr gute Marketingstrategie. Nahezu jeder Sicherheitsverantwortliche hat so die Möglichkeit das Vulnerability Mgmt System von R7 zu testen und damit herumzuspielen.

Der folgende Blogeintrag soll dieses Vulnerability Mgmt System von R7 kurz und mit einigen Screenshots darstellen, von der Installation auf einem Windows System über der Installation unter Backtrack 4 - prefinal, bis zur Integration in das Metasploit Exploiting Framework. hf

Vorbereitungen

Im ersten Schritt muss man sich bei R7 registrieren. Nach diesem Registrierungsprozess (der in wenigen Minuten abgeschlossen ist) erhält man eine EMail mit weiteren Details wie den direkten Downloadlinks und dem Link zu einem PDF das detaillierte Installationsinformationen enthält. Dieses PDF sollte man zumindest kurz überfliegen da man darin weitere Details zu den Systemanforderungen und zu vorab installierten Paketen findet.

Laut diesem Guide benötigt NeXpose beispielsweise eines der folgenden Systeme:

  • MS Windows Server 2003 SP2 / Server 2003 R2
  • Red Hat Enterprise Linux 5
  • Ubuntu 8.04 LTS
  • SUSE Linux Enterprise Server 10

Folgende Systeme sollten funktionieren, werden aber von R7 noch offiziell supported:

  • SUSE Enterprise Linux 9
  • Red Hat Enterprise Linux 4
  • Fedora 9 or later
  • Debian 4.0 or later
  • CentOS 4 or later
  • Ubuntu 7.10 or later

Auf Windows 7 funktioniert der Installer nicht!

Um NeXpose im eigenen Netzwerk zu betreiben sollten folgende Regeln für die Firewall beachtet werden:

  • outbound - scan engines listen on 40814
    manage scan activity on NeXpose Scan Engines and pull scan data from them
  • outbound - server listens on port 80
    download vulnerability checks and feature updates from a server at updates.rapid7.com
  • outbound - server listens on port 443
    upload PGP-encrypted diagnostic information to a server at support.rapid7.com
  • inbound - console accepts HTTPS requests over port 3780
    provide Web interface access to NeXpose users


Windows Server 2003

Beachtet man die Systemanforderungen verläuft die Installation von NeXpose ohne Probleme und bringt auch keine großen Überraschungen mit sich. Folgende Bilderstrecke zeigt auf 11 Screenshots einen Einblick in den Installationsvorgang.


Nach der erfolgreichen Installation findet man auf dem Desktop ein neues Icon um NeXpose zu starten. Der erste Start dauert etwas da NeXpose erst nach Updates sucht und alle Datenbankeinträge erstellen muss. Folgende Slideshow zeigt den ersten Start:

Backtrack 4 - prefinal

Folgende Abhängigkeiten müssen erst installiert werden:

root@m1k3-desktop:/home/m1k3/rapid7# apt-get install libstdc++5
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  libstdc++5
0 upgraded, 1 newly installed, 0 to remove and 105 not upgraded.
Need to get 296kB of archives.
After this operation, 872kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  libstdc++5
Install these packages without verification [y/N]? y
Get:1 http://archive.offensive-security.com pwnsauce/universe libstdc++5 1:3.3.6-17ubuntu1 [296kB]
Fetched 296kB in 1s (296kB/s)
Selecting previously deselected package libstdc++5.
(Reading database ... 192689 files and directories currently installed.)
Unpacking libstdc++5 (from .../libstdc++5_1%3a3.3.6-17ubuntu1_i386.deb) ...
Setting up libstdc++5 (1:3.3.6-17ubuntu1) ...

Processing triggers for libc6 ...
ldconfig deferred processing now taking place

root@m1k3-desktop:/home/m1k3/rapid7# apt-get install xfonts-75dpi
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  xfonts-75dpi
0 upgraded, 1 newly installed, 0 to remove and 105 not upgraded.
Need to get 3472kB of archives.
After this operation, 4674kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  xfonts-75dpi
Install these packages without verification [y/N]? y
Get:1 http://archive.offensive-security.com pwnsauce/main xfonts-75dpi 1:1.0.0-4 [3472kB]
Fetched 3472kB in 3s (1088kB/s)
Selecting previously deselected package xfonts-75dpi.
(Reading database ... 192704 files and directories currently installed.)
Unpacking xfonts-75dpi (from .../xfonts-75dpi_1%3a1.0.0-4_all.deb) ...
Setting up xfonts-75dpi (1:1.0.0-4) ...

Es bestehen weitere Abhängigkeiten, die allerdings von Backtrack bereits alle erfüllt sind! Auf anderen Systemen sollten Sie erst das Installations-PDF auf weitere Abhängigkeiten kontrollieren.

WICHTIG: Falls eine aktive PostgreSQL Datenbank auf dem System ausgeführt wird, muss diese unbedingt erst gestoppt werden! Ob eine PostgresSQL Datenbank läuft lässt sich folgendermaßen herausfinden:

pstree -p | grep postgres

Der Installer lässt sich auch auf der Konsole ausführen, einfach mit chmod +x ausführbar machen und den Parameter -console anhängen. Folgende Ausgabe zeigt Teile des Installationsvorganges:

Lizenzdetails:

...
[X] 1 - I accept the terms of the license agreement.
[ ] 2 - I do not accept the terms of the license agreement.

To select an item enter its number, or 0 when you are finished: [0] 0

Press 1 for Next, 2 for Previous, 3 to Cancel or 5 to Redisplay [1] 1

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

Installationspfad:

NeXpose Install Location

Please specify a directory or press Enter to accept the default directory.

Destination Directory [/opt/rapid7/nexpose]

Press 1 for Next, 2 for Previous, 3 to Cancel or 5 to Redisplay [1] 1

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

Installationsart:

Choose the installation type that best suits your needs.

[X] 1 - Typical
        The program will be installed with the suggested configuration.
        Recommended for most users.
                                                                              
[ ] 2 - Scan engine only
        Only the distributed scan engine will be installed, for use with a
        remotely located NeXpose console.

Select the number corresponding to the type of install you would like: [0] 1

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

Eingabe des Registrierungskeys:

Enter your 16-character product key. It is required to complete the
installation.

To obtain a product key, send an e-mail to customercare@rapid7.com.

xxxx-xxxx-xxxx-xxxx

The product key is valid.  To continue, select Next.

Press 1 for Next, 2 for Previous, 3 to Cancel or 5 to Redisplay [1] 1

Eingabe des Namens und der Firma:

-------------------------------------------------------------------------------
Enter your name and company name

Please enter your name and your company name. This information will be used
when contacting support.

Full name:  m1k3
Company name:  m1k3

Press 1 for Next, 2 for Previous, 3 to Cancel or 5 to Redisplay [1] 1

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

Installationszusammenfassung:

NeXpose will be installed in the following location:

/opt/rapid7/nexpose

with the following features:

NeXpose security console

for a total size:

264.2 MB

Press 1 for Next, 2 for Previous, 3 to Cancel or 5 to Redisplay [1] 1

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

Installation

Installing NeXpose. Please wait...

|-----------|-----------|-----------|------------|
0%         25%         50%         75%        100%
||||||||||||||||||||||||||||||||||||||||||||||||||

Creating uninstaller...

Finalizing Vital Product Data Registry...

NeXpose User und Passwort angeben:

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

You must create a NeXpose account for the NeXpose administrator. Choose a
username and password that is secure and easy to remember. IMPORTANT: Remember
the password you choose. You will need to use this account to configure the
server after installing it.

User name:  [nxadmin]
Password:
Confirm password:

Press 3 to Finish or 5 to Redisplay [3] 3
Executing DbInitializer
Selected install type is: Typical

-------------------------------------------------------------------------------
NeXpose - InstallShield Wizard

Nach der erfolgreichen Installation kann man den Scanner folgendermaßen starten:

Nun sollte man sich mit einem Browser auf das Webinterface verbinden und dieses etwas genießen. ;)

Um NeXpose von Metasploit aus zu nutzen muss im ersten Schritt Metasploit auf den aktuellen Stand gebracht werden. Hier sollte angemerkt sein dass es mir mit der Version 3.3.1 und Version 3.3.2 nicht möglich war einen Scan durchzuführen. Mittlerweile weiss ich auch dass es an einem Bug lag. Somit sei jedem ein SVN Update angeraten ...

cd /opt/metasploit3/msf3
../app/svn update

Nach diesen Schritten kann man prinzipiell die ersten Scans durchführen. Um von Metasploit ausgehend NeXpose Scans durchführen zu können muss erst eine Datenbank erstellt werden, anschl. das Modul "nexpose" geladen werden und man muss Metasploit an NeXpose binden. Folgender Screenshot verdeutlicht diese Schritte:

Der folgende Screenshot zeigt einen ersten Scanvorgang:

Um nun einen vollständig automatisierten Penetrationstest inkl. Exploitingvorgang durchführen zu können muss die Option "-x" angewendet werden:

Fehler

Falls ein Verbindungsvorgang mit einer kryptischen Fehlermeldung abbricht sollten Sie auf der Weboberfläche prüfen ob die NeXpose Installation korrekt Lizenziert ist.

Nächste Woche werde ich NeXpose im Labor noch ausgiebigst testen und in diesem Zuge auch gegen die Kombination von Nessus mit Metasploit antreten lassen ;) Ich bin schon sehr gespannt wie sich diese neue Kombination im direkten Vergleich schlägt ....

bis dann
m1k3