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ú

Temas - Halos

#1
Saludos again, estoy haciendo un programita que hookea ciertas APIs del sistema (HttpSendRequestX por ejemplo  :P). Dentro del código mio que se ejecuta antes del original realizo varias operaciones. Una por ejemplo es loguear ciertos parámetros recibidos por esta API.

El logueo no me funcionaba como esperaba, ya que, por ejemplo, al hookear esta función en InternetExplorer, se logueaba sin ningún problema, pero IE no podía navegar, ya que me dice "IE no puede encontrar la página web". También al enviar los datos a través de red, se envían correctamente pero IE "se peirde".

Lo primero que pensé es que algo raro hacía en la función inyectada (como dejar la pila sucia, pero mirando con Olly, ésta se queda limpia). El fallo es más desconcertante aún cuando le he puesto que el logueo se haga solamente para ciertos dominios. Para los dominios en los que se loguean los parámetros de la API, ésta no funciona, pero en el resto la navegación por los otros dominios es normal, a pesar de ejecutarse mi código inyectado igualmente.

Comentanto y descomentando líneas de código me he dado cuenta que cuando se utiliza algún HANDLE es cuando IE no puede navegar. El logueo lo hago de dos maneras. Priemro probé a escribir en un fichero, y cuando en la función que loguea descomentaba la línea en la que abría el manejador, IE no funcionaba. Lo mismo me pasa cuando intento enviar los datos por la red, cuando descomento las líneas que me devuelven un HINTERNET, IE no puede seguir navegando. En ningún momento IE ha tenido ningún fallo grave ni nada por el estilo, solamente me dice que no puede mostrar la página web  :huh:

Parece como que al usar yo manejadores estoy tocando donde no debo... pero es que no estoy haciendo nada raro amos. Aquí podéis ver el código de logueo a través de internet: https://gist.github.com/anonymous/d0ace002ff84156870ab

No sé por donde tirar  :-\

Saludos y gracias!
#2
Buenas, estoy haciendo un programa en C++ que me hookea varias funciones del sistema para monitorizar las acciones del usuario. Empecé hookeando el típico MessageBox y va sin ningún problema. El problema viene ahora cuando aspiro a algo más, como por ejemplo InternetConnect. Inyecto la DLL en el proceso sin ningún problema y se parchean bien las APIs de mi interés. La ejecución dentro de mi función no da fallos, pero el problema viene al hacer el 'retn'.

Con el Olly he visto que la pila queda niveles diferentes (que no se limpia bien al salir de la función inyectada) cuando vuelve de la llamada InternetConnectA sin hookear y hookeada. Me da la sensación de que la culpa es de mi compilador, ya que uso el g++ de MinGW. He probado el compilador de Borland y me da fallos que por lo visto se pueden arreglar si instalo la interfaz gráfica. El hecho es que yo soy más de editor de texto y terminal para programar y compilar. No sé si seguir buscando otro compilador más Microsoft y menos "linuxero" como el de MinGW o si es un fallo mio.

Básicamente mi manera de hookear es la siguiente:
1. Aprovechando el hotpatching de windows y hago un salto a los 5 bytes anteriores, donde se encuentra el salto a mi código (compilado con g++)
2. Desde mi código guardo en un fichero info de la conexión obtenida a través de los parámetros. Vamos, que no modifico los parámetros para nada. (El fallo no está en este código del fichero, probé a comentarlo y seguía dando el fallo).
3. Llamo a la función original.  (Esta dirección la obtendo sumando 2 a la dirección que me devuelve GetProcAddress, así evito el salto a mi código.
4. Devuelvo el valor que me ha dado la función original.

Mi sensación es que al mezclar código de windows con código compilado con g++ es cuando empiezan a ocurrir las cosas extrañas. ¿Puede ser esa la razón? ¿Qué usáis vosotros para crear vuestras DLL para inyectarlas?

Un saludo y gracias
#3
Estoy liado con una inyección SQL, pero ahora mismo estoy atrancado.
Resulta que he encontrado un parámetro vulnerable, ya he chequeado que no se hace ningún tipo de filtrado y el número de columnas que necesita el select, pero a la hora de realizar el UNION SELECT... es donde me quedo atrancado porque me da el error este:

This webpage is not available.

The webpage at http://www.web.com/pagina.php?parametro=346+and+1=0+union+select+1,2,3,4,5-- might be temporarily down or it may have moved permanently to a new web address.

  More information on this error
Below is the original error message

Error 101 (net::ERR_CONNECTION_RESET): Unknown error.


No creo que sea un error de MySQL, ya que he  probado a hacer consultas erróneas y me salta el error de MySQL con su path y todo  :xD
También he pensado en que puede ser que tengan un sistema que detecte las peticiones sospechosas (no me acuerdo su nombre  :-\). He probado a ver si es que detectaba la cadena SELECT, pero si corto ahí la consulta, es decir:

http://www.web.com/pagina.php?parametro=346+and+1=0+union+select--

lo que obtengo es un error de MySQL. También he probado utilizando distinto número de columnas en el select, por si detectaba que lo que devolvia la consulta no era del tipo que esperaba, con lo que una consulta errónea debería haberme dado un error MySQL, pero ha vuelto a darme el 101.

¿Que es lo que puede ser?
#4
Windows / ¿Qué W7 para una máquina virtual?
11 Junio 2010, 18:36 PM
Buenas, yo suelo trabajar en Linux, pero de vez en cuando necesito Windows puntualmente, por lo que uso una máquina vistual con WXP. Quiero poner un W7 ligerito, pero estoy entre el Starter y el Home Basic.

He estado mirando diferencias:

http://reviews.cnet.com/8301-31012_7-10379487-10355804.html

Las principales características que diferencian al home basic del starter, que si multimedia, multitouch, juegos... y hasta el cambio de wallapper xD no las voy a necesitar, pero no sé si el starter es tan limitado que se me va a quedar corto. Principalmente lo que usaré será algún IDE ligerito para programar y algunas herramientas del estilo OllyDgb, wireshark, y cía.

¿al final la restricción de 3 apps en el starter la quitaron o fue un bulo?

Otra preguntilla, si finalmente me decanto por el home, como la máquina anfitrión corre a 64 bits, ¿merece la pena instalar un SO de 64 bits en la máquina virtual?
#5
Nivel Web / Shell para IIS
4 Febrero 2010, 01:06 AM
Buenas! No tengo mucha experiencia con shells así que me gustaría que me aclaraseis algunas dudillas que tengo.

He subido una shell a un servidor, la famosa c99. He intentado subir ficheros a través de ella pero nanai, no aparecen. Y no es por problemas de permisos, porque se ven los permisos de la carpeta rwxrwxrwx y porque sí he podido mover archivos a la carpeta a la que quiero subir el nuevo archivo. Mi duda es si esta shell está más orientada a servidores linux y para un servidor IIS debería utilizar otra. Pienso que el fallo puede ser por el SO, aunque si la shell funciona en php debería de funcionar independientemente del SO, ¿no? Pensé también que podría ser culpa del no-script, pero permitiendo los scripts en firefox y utilizando el chrome, sin bloqueo de script, tampoco. La verdad es que no sé como funcionan estas shells internamente, y sería interesante saberlo, por curiosidad, para solucionar esto y para saber bien lo que hago  ;D

Un saludo!