Wie geht man bei einem Pentest vor?

Um die Sicherheit eine Firma sicher zu stellen, ist es notwendig auch über die vorhandenen Lücken bescheid zu wissen. Dazu habe ich mir ein paar Gedanken gemacht wie man das am besten bewerkstelligt.

Damit ihr nicht auf einmal
etwas vergesst, habe ich hier mal eine kleine Liste zusammengestellt, wie zu testen ist. Falls ich in irgend einem Punkt falsch liegen sollte oder etwas vergessen habe, korrigiert mich durch einen Kommentar.


  1. Vorabklärungen
    1. Was muss der Kunde unterzeichnen das dieser Test legal wird
    2. Wer muss informiert werden
    3. Wer hat alles Zugriff auf das System
    4. Wer verwaltet die Systemzugriffe und das Netzwerk
    5. Bei einem Ausfall wer muss kontaktiert werden
    6. Wurden alle Tests Vertraglich geregelt, kann man mit Punkt 2 weiterfahren.
  2. Informationen sammeln
    1. Firmen Name
    2. Mitarbeiter
    3. Telefonnummern
    4. Private Telefonnummern
    5. Mail adressen
    6. Sicherheitsvorkehrungen
    7. Domains die auf die Firma regestriert sind
    8. Domains die auf Mitarbeiter regestriert sind
    9. IP-Ranges die auf die Firma regestriert sind
    10. Dokumente die die Firma öffentlich zur Verfügung stellt
    11. Social Media Accounts
    12. Öffnungszeiten
    13. Infiltrierung der Gewohnheiten in dieser Firma
      1. Kaffepausen
      2. Lieferanten
      3. Lokationen
    14.  Dienstleister
    15. Wireless Netzwerke vorhanden
  3.  Netzwerk Informationen
    1. IP Range Scannen nach offenen Ports (am besten mit nmap)
    2. Von jedem offenen Port der extern gefunden wurde, den laufenden Service evaluieren
    3. Versionen von allen Services evaluieren
    4. Netzwerklayout der Firma zeichnen
    5. Wirelesslan Verschlüsselung überprüfen
    6. Service Versionsliste erstellen
  4. Mitarbeiter Passwörter
    1. Mitarbeiter bei Facebook, Google, MSN, Skype suchen und via Bruteforce Passwörter herausfinden
    2. Falls dies nicht hilft, mit etwas Social Engineering nachhelfen
    3. Mitarbeiter in Gespräche verwickeln und bekanntschaften knüpfen (Prozess über 1 Jahr)
  5.  Service Vulnerability (Fehler in Diensten)
    1. Da wir eine Liste alle laufenden Services (Web, VPN, SOAP, FW, Mail…) haben muss nun das Internet nach verfügbaren Exploits (so zu sagen Programme die die Sicherheitslücke eines Produktes verwenden und die eigene Berechtigung hochstuft).
    2. Wirelesslan einloggen und den WEP Key knacken oder mit einer etwa 2GB grossen Passwortliste die WPA2 schlüssel knacken.
  6. Gefundene Dokumente
    1. Versucht den Windows Logon Name der Mitarbeiter herauszufinden. Dazu eignet sich am besten ein Dienst wie serversniff.de mit dem File-Info Tool
    2. Erstellt davon eine Benutzerdatenbank
    3. Fügt die schon herausgefundenen Passwörter der Mitarbeiter hinzu
  7.  Interne Netzwerke (VLANs) (Bei gelungenem Einbruch)
    1. Für jedes gefundene VLAN, wird Punkt 3-6 nochmals ausgeführt
    2. Backupserver suchen und aushebeln. Sobald als möglich ein Backup ziehen und dieses kontrollieren. Darin findet ihr alle Informationen über die Firma
  8. Applikationen Re-Engineeren
    1. Gefundene Applikationen CRM,ERP,Web selbst noch genauer testen.
    2. Java Applikationen
      1. Mit Jad die Dateien begutachten und nach folgendem ausschau halten
        1. SQL Statements
        2. Login Procedures
        3. SSL Auths etc.
        4. Java Code so editieren das keine Zertifikatsprüfung vorkommt und mit einem MITM Proxy den SSL Traffic analysieren.
    3. PHP, ASP .Net, Java, CF Webseiten
      1. XSS Testen
      2. SQL Injections testen
      3. Mit einem Fuzzer versteckte Dateien/Directorys finden
    4. C / C++, C# , Assembler Software
      1. Mit einem Dissasembler nachschauen was passiert und wo zu welcher Zeit
      2. Re-Engineering der Datei (Beispielsweise mit OllyDBG)
      3. Webservices und SQL Statements finden
      4. Mit OllyDBG die Zertifikatsüberprüfung überspringen
      5. MITM transparent Proxy dazwischen schalten
  9.  Lösungs / Schutzempfehlung
    1. Welche Onlinedienste müssen wirklich verfügbar sein
    2. Alle Online Benutzereingaben Filtern (auch Java Applikationen)
    3. Web Application Firewall
    4. Reverse Proxy
    5. 3 Factor Authentication (Benutzername + Passwort + 1mal Passwort(Token))
    6. Applikationen MD5 Sourcefile Prüfung (Java)
    7. C und andere Applikationen eine Überprüfung einfügen ob ein Debugger aktiv ist
    8. Webservices bitte den Blogpost über SOAP Security in meinem Blog nachsehen
    9. Netzwerk
      1. Lan beachtung von Inner-DMZ , Outer-DMZ, Inner-Userlan, Wireless-Internal, Wireless-Guests, VPN-User
      2. Wireless, kein offenes Netzwerk und kein WEP/WPA verwenden. Passwort mind. 14 Zeichen mit komplexität, falls möglich mit Radius authentifizieren.
    10. Mitarbeiter
      1. Schulung auf Sichere Passwöter
      2. Schulung gegen Social Engineering (Hallo ich bin von HP, soll nicht mehr funktionieren)
      3. Tastaturkleber mit Passwörter = Strafe

Ich werde versuchen die Liste immer mehr zu erweitern und auf eure Wünsche einzugehen. Auch kommen natürlich immer neue Schwachstellen hervor.

Tags// , ,
comments powered by Disqus