Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - exploiterstack

#121
Que pasa si la librería es cargada en una dirección base? en este caso la dirección por que cambiaría?


Espero su respuesta, saludos?
#122
Muchas gracias x64Core por responder y pido perdón por tardar en contentar se me liaron unas cosillas,

Una cosa por que dices:

De ningún programa, no veo razón de porqué considerar por ejemplo el valor 0x1000 como la dirección de la pila o algo por el estilo. (Refiriéndote a cualquier dirección de la pila)


Por ultimo si cojo una dirección que apunte a un JPM ESP de una librería propia de la aplicación el exploit seria universal?


Un saludo!
#123
Hola que tal comunidad, tengo un problema a la hora de utilizar un framework de jQuery date bootstrap.

Dicho problema consiste en que no consigo cargar unas fechas que obtengo tras una consulta en la BD. Me he fijado que el plugin que menciono tiene una caja de texto el cual se carga con una fecha tras pinchar sobre una fecha, lo cual deduje que si consiguiera cargar las fechas en este input tras una consulta podría reflejarse en el calendario, pero al parecer no funciona como tengo pensado.

pd: He de comentar y me he documentado que para fijar una fecha se hace mediante el atributo setDate pasandole las fechas a mano o creando un objeto tipo date, pero como digo de ningún tipo consigo el resultado.

pd: Según leí en una duda de alguien vi que no erais muy partidarios de utilizar frameworks, y lo entiendo pero en la empresa que estoy se me pide este tipo de plugin y no consigo finalizar el proyecto con esta modificación que se me pide. Bueno sin mas rodeos os dejo el código:


El código PHP:

<?php

try{
    
//Creamos la conexion con la bd
    
$conexion = new PDO('mysql:host=hl115.dinaserver.com;dbname=db''nombre''pass'); 
    
//Indicamos que haremos uso de la condificacion utf8
    
$conexion->exec("SET NAMES 'utf8'");
    
//Despues creamos la select para actualizar los datos en la BD
    
$consulta "SELECT fecha FROM  altaFichas WHERE usuario='PascualMarti';";
    
$consulta $conexion->prepare($consulta);

    
$fe "";
    if(
$consulta->execute()){
        while(
$fila $consulta->fetch()){
            
$fecha  $fila['fecha'];
            
$ArrayFecha explode('-'$fecha);
            
$fecha $ArrayFecha[0] ."/".$ArrayFecha[1] ."/".$ArrayFecha[2];
            
$fe .= $fecha.",";
        }  
        echo 
"<input type='hidden' name='fe' id='fec' value='".$fe."'>";

    }else{
        
$mensage "Error, al intentar mostrar los datos.";
    }
    
//Cerramos la conexión
    
$conexion null;

}catch(
Exception $e){
    echo 
"Error en la conexión";
}

?>


El código HTML:

<html>
   <head>
       <title>prueba cargar fechas en calendario</title>
       <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
       <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
       <script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js"></script>
       <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" type="text/css">
       <link href="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker.css" rel="stylesheet" type="text/css">
       <script type="text/javascript">
           $('#sandbox-container .input-group.date').datepicker({
                $("#sandbox-container .input-group.date").val($("#fe").attr("value"));
           });
       </script>
   </head>  
   <body>
       <div class="input-group date">
         <input type="text" class="form-control"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
       </div>
   </body>
</html>


Un saludo de antemano!
#124
Hola x64Core,

Haber lo que me quieres decir es que se utiliza JMP ESP por que al machacar el EIP con esa dirección me llevaría a la cima de la pila para ejecutar el shellcode(en el caso de que la tenga apuntando a ESP) vale hasta ay creo estar en lo cierto.

Si no es así esta parte házmelo saber plis...

Con la otra parte que dices, significa que si no tuviera la shellcode apuntando en la cima y la tuviera en cualquier otro lugar del stack debería de apañarmelas con otro juego de instrucciones y utilizar la dirección de estas instrucciones para machar el registro EIP para que me lleve al lugar exacto donde esta la shellcode para que sea ejecutada?

Si no es así esta otra parte házmelo saber plis...

Por ultimo esto que comento estoy en lo cierto?


1)Nunca hay que confiar en las direcciones del stack por que estas direcciones variaran dependiendo únicamente del programa, contenido etc...Y esto repercutirá en las direcciones que haga uso en el stack.

2)Si confiamos en una librería del sistema, este exploit funcionara únicamente para el sistema que se esta utilizando. Por decirlo de alguna manera el exploit dependerá del S.O en cuestión(teniendo en cuenta lo que mencionaste, versión, sp, idioma etc...)

3)Esto es lo que yo deduzco. Lo lógico seria depender de una librería que haga uso el programa vulnerable, ya que esta se cargara inmediatamente en el momento que se ejecute el programa y como la dirección que contenga el JMP ESP de la librería se le abra asignado en el mismo instante que se carga ya no me importaría saber de antemano la dirección ya que sea cual sea la dirección podrá referenciar SIEMPRE(siempre y cuando no haya ASLR) a la cima de la pila. En este ultimo punto estamos haciendo que el exploit ya no dependa del S.O si no de la aplicación vulnerable en cuestión, de este modo nuestro exploit funcionara haya donde funcione la aplicación saltándonos como digo la dependencia del S.O y ahora la dependencia sera sobre la aplicación asegurándonos así que la explotación se realice con éxito en mas sistemas.

Si no estoy en lo cierto o algo que pongo en este bloque házmelo saber plis...


Espero su respuesta, un saludo!


#125
3)Esto es lo que yo deduzco. Lo lógico seria depender de una librería que haga uso el programa vulnerable, ya que esta se cargara inmediatamente en el momento que se ejecute el programa y como la dirección que contenga el JMP ESP de la librería se le abra asignado en el mismo instante que se carga ya no me importaría saber de antemano la dirección ya que sea cual sea la dirección podrá referenciar SIEMPRE(siempre y cuando no haya ASLR) a la cima de la pila. En este ultimo punto estamos haciendo que el exploit ya no dependa del S.O si no de la aplicación vulnerable en cuestión, de este modo nuestro exploit funcionara haya donde funcione la aplicación saltándonos como digo la dependencia del S.O y ahora la dependencia sera sobre la aplicación asegurándonos así que la explotación se realice con éxito en mas sistemas.

Este bloque de texto que escribo estoy en lo cierto?

Pd: Tambien estaba siguiendo los tutoriales que mencionas traducidos por ivision.

Que parte no entendiste de lo que puse, hazmelo saber...

Un saludo!
#126
Entonces el punto 3 que menciono estoy en lo cierto no?

Entonces por que hay manuales que dicen de hacer uso direcciones de kernel32 o a ntdll.dll? ya que son del sistema y no de la aplicación.

pd: Uno de los textos que sigo es el de Rojodos.
#127
Hola otra vez .:UND3R:.,

2) Con la dirección del stack me refiero al rango de direcciones destinadas a usarse como pila.

Entiendo que te refieres a las direcciones utilizadas en cualquier stackframe de la pila, independientemente del numero de contextos que tenga en ese momento, es decir todas son todas, desde donde empieza el "PRIMER EBP" hasta la cima de la pila ESP. Si es así con un si me bastaría ;)

Lo ultimo que dices despejaba absolutamente mi duda si no es que hubiera leído lo que anteriormente mencionas ya que veo una ligera contradicción.


Esto
3) hardcodear claro es una jerga y se refiera a usar una dirección estática y esto en el mayor de los casos posibles debe ser evitado.

Con esto otro
Pero si por ejemplo la dirección de una instrucción (JMP ESP en este caso) será la misma en cualquier versión (si obviamos ASLR).

Si no hay que confiar en una dirección del stack ya que estas suelen variar dependiendo de los factores que mencionas, por que utilizar por ejemplo las del kernel32? tengo entendido que estas direcciones(JMP ESP del kernel o similares) serán mas o menos "fijas" para ese determinado S.O, es decir el exploit funcionara en cualquier S.O que haga uso de esta librería(siempre y cuando se cargue en la misma dirección de memoria), con esto puedo deducir tres cosas:


1)Nunca hay que confiar en las direcciones del stack por que estas direcciones variaran dependiendo únicamente del programa, contenido etc...Y esto repercutirá en las direcciones que haga uso en el stack.

2)Si confiamos en una librería del sistema, este exploit funcionara únicamente para el sistema que se esta utilizando. Por decirlo de alguna manera el exploit dependerá del S.O en cuestión(teniendo en cuenta lo que mencionaste, versión, sp, idioma etc...)

3)Esto es lo que yo deduzco. Lo lógico seria depender de una librería que haga uso el programa vulnerable, ya que esta se cargara inmediatamente en el momento que se ejecute el programa y como la dirección que contenga el JMP ESP de la librería se le abra asignado en el mismo instante que se carga ya no me importaría saber de antemano la dirección ya que sea cual sea la dirección podrá referenciar SIEMPRE(siempre y cuando no haya ASLR) a la cima de la pila. En este ultimo punto estamos haciendo que el exploit ya no dependa del S.O si no de la aplicación vulnerable en cuestión, de este modo nuestro exploit funcionara haya donde funcione la aplicación saltándonos como digo la dependencia del S.O y ahora la dependencia sera sobre la aplicación asegurándonos así que la explotación se realice con éxito en mas sistemas.

Espero su respuesta, saludos!
#128
Lo que pretendo con esas dudas es formalizar la idea que tengo sobre estos procedimientos de explotación, ya que no tengo una confianza cierta de si es así, y lo que quiero antes de continuar indagando es pensar que estoy en el camino correcto ademas de adquirir el vocabulario empleado en el exploiting.

Espero su respuesta  .:UND3R:. o de cualquier otra persona tenga de estos conocimientos.

Un enorme saludo!
#129
Antes de nada gracias .:UND3R:. por contestar,

Respecto a la respuesta que me das se que me es de gran ayuda, es por eso que quería decirte unas cosillas:

1. Por que sabes que la shellcode esta en ESP en el momento de sobrescribir el EIP? (puede dar el caso de que este o has de hacer un relleno de X bytes para que verdaderamente apunte a la dirección del inicio del ESP no?)
2. Con que te refieres con la dirección del stack? te refieres a la de la cima?
3. A que te refieres con hardcodear una dirección? no entiendo esa jerga(pd: he intentado buscar esa definición y no me a quedado muy clara).

Por que se busca con findjmp.exe una dirección de una dll que haga uso el programa vulnerable y con esa dirección sobrescribir EIP para que así que apunte al inicio del ESP?.  Esa dirección aunque a priori es fija(en el S.O que uso y lo sera en sistemas operativos iguales al utilizado) pienso que también cambiara cuando se cambie de S.O o no?
#130
Hola comunidad, tengo una duda que me ronda la cabeza y por mas que intento aplicarle la lógica no lo consigo. Dicha duda consiste en el uso de findjsp.exe he leido muchos textos que hacen uso de esta herramienta entre ellos la explicación que aquí se detalla:

http://foro.elhacker.net/bugs_y_exploits/herramientas_findjmp_offsets_etc_actualizado-t101215.0.html

Yo lo que tengo entendido que se utiliza para obtener la dirección(offset) de una instrucción JMP ESP que hace uso la aplicación o una librería(dll) del software que se esta explotando.

Con dicha instrucción tenemos que sobrescribir EIP en la pila, de modo que cuando este registro vaya a ejecutar esta instrucción accederá a la cima de la pila(ESP) a ejecutar lo que alli tengamos(en el caso mas común una shellcode), hay viene mi duda. Por que forzar a sobrescribir el EIP con ese ofset para que este acceda a la pila a ejecutar la shellcode?

Se que mas o menos lo entiendo pero no se si sera mi mente pero no lo llego a entender  al 100% todo esto, así que si alguien fuera capaz de hacérmelo ver de una manera sencilla (for dummies)

Gracias de antemano.