Para mí (Dave Kennedy) este fue uno de mis primeros módulos que he construido para el marco de Metasploit. Soy un tipo pitón y cambiar a Ruby en realidad al final no ser "tan" mal como yo había previsto. Después de construir el módulo, que quería escribir paso a paso cómo fui capaz de crear el módulo, dar una pequeña introducción en la construcción de módulos, lo fácil que es realmente para agregar herramientas adicionales o explota en el marco de Metasploit.
En primer lugar, quiero empezar con darle una pequeña idea sobre algunos de los componentes clave del marco de Metasploit que estaremos hablando.
Primero eche un vistazo en el lib / MSF / sección central dentro de Metasploit, esta zona hay una mina de oro que se quieren aprovechar para no tener que reconstruir todos los protocolos o un ataque cada vez que individuales. Vaya a la base / explotar sección:
relik@fortress:/pentest/exploits/framework3/lib/msf/core/exploit$ ls
arkeia.rb dect_coa.rb lorcon2.rb seh.rb.ut.rb
browser_autopwn.rb dialup.rb lorcon.rb smb.rb
brute.rb egghunter.rb mixins.rb smtp_deliver.rb
brutetargets.rb fileformat.rb mssql_commands.rb smtp.rb
capture.rb ftp.rb mssql.rb snmp.rb
dcerpc_epm.rb ftpserver.rb ndmp.rb sunrpc.rb
dcerpc_lsa.rb http.rb oracle.rb tcp.rb
dcerpc_mgmt.rb imap.rb pdf_parse.rb tcp.rb.ut.rb
dcerpc.rb ip.rb pop2.rb tns.rb
dcerpc.rb.ut.rb kernel_mode.rb seh.rb udp.rb
relik@fortress:/pentest/exploits/framework3/lib/msf/core/exploit$
Podemos ver varias áreas que podrían ser útiles para nosotros, por ejemplo theres ya envasados protocolos como Microsoft SQL, HTTP, TCP, Oracle, RPC, FTP, SMB, SMTP, y mucho más. Echa un vistazo a la mssql.rb y mssql_commands.rb, estos dos han sufrido algunas modificaciones importantes por HD Moore, yo mismo, y Dark Operador reciente, desde que está agregando un poco de funcionalidad a través de los aspectos MSSQL.
Si nos fijamos en la línea de partida 126 en mssql.rb, esta es la sección que se centra en gran medida, leer a través de él y obtener un entendimiento básico que estaremos cubriendo la zona posterior.
Vamos a salir de núcleo, y la cabeza a los módulos de "directorio", si añadimos cualquier archivo nuevo en aquí, de forma dinámica se importarán a Metasploit para nosotros. Vamos a probar un programa muy sencillo, entra en framework3/modules/auxiliary/scanner/mssql
Hacer una rápida "ihaz_sql.rb mssql_ping.rb cp"
Editar el archivo que utiliza realmente rápido nano o vi y le permite modificarlo ligeramente, me voy a caminar a través de cada línea y lo que significa:
##
# $Id: ihaz_sql.rb 7243 2009-12-04 21:13:15Z rel1k $ <--- automatically gets set for us when we check in
##
##
# This file is part of the Metasploit Framework and may be subject to <---- licensing agreement, keep standard
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##
require 'msf/core' <--- use the msf core library
class Metasploit3 < Msf::Auxiliary <---- its going to be an auxiliary module
include Msf::Exploit::Remote::MSSQL <----- we are using remote MSSQL right?
include Msf::Auxiliary::Scanner <----------- it use to be a SQL scanner
def initialize <---- initialize the main section
super(
'Name' => 'I HAZ SQL Utility', <------- name of the exploit
'Version' => '$Revision: 7243 $', <------- svn number
'Description' => 'This just prints some funny stuff.', <------------ description of the exploit
'Author' => 'relik', <--- thats you bro!
'License' => MSF_LICENSE <---- keep standard
)
deregister_options('RPORT', 'RHOST') <---- dont specify RPORT or RHOST
end
def run_host(ip) <--- define the main function
begin <---begin the function
puts "I HAZ SQL!!!!" <---- print to screen i haz SQL!!!
end <--- close
end <---- close
end <---- close
Ahora que usted tiene una idea básica de este módulo, por salvar a esta (sin las <------) y la deja correr en msfconsole.
msf > search ihaz
[*] Searching loaded modules for pattern 'ihaz'...
Auxiliary
=========
Name Description
---- -----------
scanner/mssql/ihaz_sql MSSQL Ping Utility
msf > use scanner/mssql/ihaz_sql
msf auxiliary(ihaz_sql) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
HEX2BINARY /pentest/exploits/framework3/data/exploits/mssql/h2b no The path to the hex2binary script on the disk
MSSQL_PASS no The password for the specified username
MSSQL_USER sa no The username to authenticate as
RHOSTS yes The target address range or CIDR identifier
THREADS 1 yes The number of concurrent threads
msf auxiliary(ihaz_sql) > set RHOSTS doesntmatter
RHOSTS => doesntmatter
msf auxiliary(ihaz_sql) > exploit
I HAZ SQL!!!!
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Success our module has been added! Now that we have a basic understanding of how to add a module, lets look at the module I wrote on the next section.
Traducido por Progresive Death
No hay comentarios:
Publicar un comentario