NOTAS SOBRE LA TRADUCCIÓN:

Traducido por Sergio González Durán (sergio.gonzalez.duran&at&gmail.com)
Versión de la traducción 0.1 (Enero 2005)

En esta primera versión solo me limite a traducir el capítulo de Fyodor, en la próxima versión agregaré notas explicatorios sobre las técnicas, términos, programas, etc., que utiliza el autor, de tal manera que pueda ir resultando un interesante manual de iniciación sobre todo lo que expone Fyodor. La única aclaración necesaria sobre esta versión es que algunas palabras no tienen sentido en español, así que las deje en inglés, la mas común de estas es hacker. Tómese en cuenta que en la medida de lo posible trate de no utilizar ningún modismo propio del español mexicano, pero aun así es posible que para algunos lectores de países de habla hispana algo no quede claro, si es el caso házmelo saber para modificarlo en una siguiente versión de la traducción.

Retorno de la Inversión

Yo (Fyodor) escribí esta historia como un capítulo de Stealing the Network: How to Own a Continent. (Robando la red: Como Apropiarse de un Continente) En este libro, hice equipo con FX, Joe Grand, Kevin Mitnick, Ryan Russel, Jay Beale y varios otros hackers para escribir historias individuales que se combinan para describir un robo financiero masivo por medios electrónicos. Aunque la historia en si es ficción, tratamos de presentar ataques y tecnología reales. Por ejemplo, mi personaje Sendai usa Nmap, Hping2, Ndos y herramientas similares para explorar configuraciones de red y vulnerabilidades de software que se encuentran ahí afuera. Muchas gracias para Syngress por permitirme publicar esto en línea gratuitamente..

La Historia de Sendai

Como muchos profesionales en pruebas de penetración, Sendai no era siempre el de alguna manera "hacker ético" que se describía en la información publicitaria de su empleador. En su juventud, el cruzó ampliamente la línea entre un comportamiento cuestionable (grey hat) y uno totalmente ilegal (black hat). Aunque el nunca sintió que estuviera haciendo algo malo. Sendai no dañaba intencionalmente los sistemas, y solo trataba de aprender mas sobre UNIX, redes, seguridad, sistemas telefónicos y tecnología relacionada. Aunque la ley pudiera considerar algunas de sus acciones como de acceso no autorizado, robo de servicios, fraude electrónico, violación de derechos de autor, y tráfico de secretos robados. En las raras ocasiones en que Sendai pensó sobre esto, el encontró consuelo en las palabras del Manifiesto del Guía de los Hackers (Mentor's Hacker Manifesto): "Si, soy un criminal. Mi crimen es el de la curiosidad." Seguramente sus inocentes motivos le hubieran evitado un proceso penal. Además, su arrogancia de adolescente le aseguraba que el gobierno y las corporaciones atacadas eran lo demasiado idiotas para atraparlo.

Esta percepción cambió dramáticamente en 1989 y 1990 cuando las redadas de la "Operación Sundevil" se llevaron a cabo. Entusiastas de la seguridad muy conocidos, incluyendo a The Prophet, Knight Lightning, and Eric Bloodaxe, fueron capturados y muchos mas fueron acusados. La popular revista electrónica Phrack fue cerrada y sus editores enfrentaron un juicio. Sendai se preocupó que el, también, pudiera ser atrapado en la persecución. Después de todo, el había estado activo en alguno de los mismos "bulletin boards" de muchos sospechosos, realizando actividades similares. Sendai nunca fue capturado, pero esos nueve meses de estrés y paranoia cambiaron su perspectiva sobre el hackeo. El no estaba precisamente asustado, pero el dejó de de tratar la intrusión de redes como si fuera un juego o un hobby casual. En los siguientes años, Sendai se hizo mucho más disciplinado sobre el modo de cubrir sus huellas a través de múltiples capas de re-direccionamientos, así como de siempre limpiar las bitácoras (logs), incluso cuando era inconveniente. El también investigó sus blancos y métodos mucho más extensivamente. El no entender completamente un sistema podría causarle evitar defensas importantes que lo llevarían a una detención. Un efecto lateral de todo este estudio más metódico sobre hackear es que Sendai substancialmente amplió sus conocimientos en seguridad de redes y su conjunto de destrezas.

Sendai no reconoció el valor creciente de este cúmulo de destrezas e historial limpio hasta que le fue ofrecido un trabajo de "hackeo ético" en una muy conocida firma de auditoria en redes. El floreciente Internet estaba creando tan intensa demanda de profesionales en seguridad que la firma preguntó pocas preguntas sobre su pasado. Usando su verdadero nombre, ellos no fueron conscientes de que incluso utilizó el sobrenombre hacker de Sendai. El tuvo algunas reservas sobre comercializar su pasatiempo, no quería ser visto como un vendido. A pesar de estas inquietudes, Sendai aceptó la posición inmediatamente. ¡Seguramente batió su trabajo previo de soporte técnico! Muy pronto estaba viviendo en el mundo de la seguridad tanto de día como de noche. El trabajo le permitía acceso legítimo a tecnologías empresariales actuales, y podía afilar sus habilidades de hacker sin riesgo de ser arrestado. Fanfarronear sobre sus exploits lo llevó a obtener bonos en vez de un tiempo en la cárcel. Sendai se divirtió tanto crackeando sistemas por dinero que eventualmente cesó mucha de su activad nocturna (tipo black hat) de exploración de redes

Jugando con el Mercado de Valores

La nueva posición de Sendai paga mucho más dinero que el que su modesto estilo de vida requiere. Después de cansarse de ver el dinero estancarse en su cuenta de cheques, Sendai abre una cuenta de acciones y comienza a aficionarse a las inversiones de valores. Como en el hackeo, Sendai aprende todo lo que puede sobre inversiones. Interesantemente, encuentra muchos paralelismos entre las dos disciplinas. Muchos libros y artículos recomiendan llevar un portafolio de inversiones con fondos que pasivamente siguen índices amplios como el de S&P 500. Esto asegura diversidad y reduce el riesgo de pasarse de tiempo o de errores al escoger acciones. Sendai deshecha este consejo inmediatamente. Suena demasiado a la prudencia convencional que dice que los usuarios telefónicos y de computadoras deben auto restringirse a un comportamiento establecido, y quedarse ignorantes acerca de cómo trabaja el sistema. Sendai prefiere estirar las posibilidades del sistema extrayendo el mayor valor posible, basado en un entendimiento detallado. Dicho en otras palabras, el quiere (legalmente) hackear los mercados financieros.

Sendai pronto descubrió otro aspecto de las inversiones que le eran familiares. Un exitoso y activo intercambio de acciones es acerca de obtener información relevante antes de que esta sea ampliamente reconocida y que se refleje en el valor de la acción. Esto es similar al mercado de la seguridad, donde el valor de un "exploit" se degrada rápidamente. El Santo Grial es un exploit de día-cero, que quiere decir uno que no es conocido públicamente o que no este parchado. Perpetradores que poseen tal exploit pueden entrar dentro de cualquier sistema que ejecute el servicio vulnerable. El ataque es poco probable que sea detectado, ya sea porque el administrador o el sistema IDS no están viendo o buscando algo que no saben que existe. Una vez que la vulnerabilidad es publicada y el parche es creado, el valor del exploit se decrementa rápidamente. Las instalaciones más seguras se actualizarán para estar invulnerables. En los siguientes días y semanas, la mayoría de las organizaciones actualizarán sus sistemas. Muy pronto, solo los administradores menos conscientes en cuanto a la seguridad serán explotables, y ellos, de cualquier manera, son posiblemente vulnerables a otros muchos ataques. Conforme otros hackers (y en muchos casos gusanos) comprometan el resto de los sistemas vulnerables, el valor del exploit continua menguando.

En el mundo de la seguridad, algunas veces Sendai se da cuenta de "días-cero" a través de amigos que están en lo mismo y de listas de correo privadas o canales de IRC/SILC. Otras veces, el mismo los encuentra al estar buscando bugs en software que audita. Hacer auditorias produce los mejores exploits día-cero porque los bugs son de su exclusividad, hasta que los de a conocer (o son independientemente descubiertos en algún otro lado). Para encontrar una vulnerabilidad impresionante y que sea generalmente útil, Sendai tiende a mirar en software ampliamente distribuido y frecuentemente explotado como el servidor Web IIS de Microsoft, el demonio smtpd Sendmail, OpenSSH o el servidor ISC BIND DNS. En el caso más común en el que Sendai quiere entrar en una compañía específica, el busca por el más oscuro software que se ejecute en la red objetivo. Este software especializado no es frecuente que haya sido sometido a las rigurosas pruebas realizadas en los paquetes más populares. Otro modo alternativo de obtener un día-cero es comprarlo de las controversiales organizaciones que abiertamente trafican con esa información. Sendai nunca ha acudido a esto, tanto por razones éticas y financieras. El sigue creyendo que alguna información debe ser gratuita.

Filtración de Información a Nivel de Paquetes

Debido a que Sendai no tiene modos de conocer la información de las utilidades de compañías privadas directamente, el observa por características que pueda fuertemente correlacionar con utilidades. Una idea es estudiar el tráfico SSL de los sitios de comercio electrónico (e-commerce). La suma de tráfico encriptado que generan es a menudo proporcional al número de ventas durante un periodo. Esto lleva a la siguiente pregunta: ¿Cómo hará Sendai para medir el tráfico SSL de una compañía? Ciertamente ellos no se lo dirán. Entrar a un ruteador que esta apenas arriba del objetivo le daría acceso a estos datos, pero esto es bastante ilegal y requiere mucho trabajo a la medida para cada objetivo. Sendai quiere una manera fácil, no entrometida y legal para determinar esta información.

Eventualmente, Sendai piensa en el campo de fragmentación ID en el Protocolo Internet (IP). Este campo de 16 bits, esta pensado en proveer un número de ID único para cada paquete mandado entre máquinas d urante un tiempo dado. El principal propósito es permitir paquetes largos, que deben ser fragmentados durante el tránsito, ser reensamblados propiamente por el host de destino. De otra manera un equipo recibiendo cientos de fragmentos de docenas de paquetes no sería capaz de ensamblar los fragmentos con sus paquetes originales. Muchos desarrolladores de sistemas operativos implementan este sistema en una manera muy simple: mantienen un contador global y lo incrementan en uno por cada paquete mandado. Después de que el contador llega a 65,535, se regresa a cero

El riesgo de esta simple implantación es que permite a chicos malos determinar remotamente los niveles de tráfico de un host. Esto puede ser útil para muchos propósitos siniestros, incluyendo una extraordinaria técnica furtiva de escaneo conocida como Idle Scan. Sendai la usará para determinar los pedidos diarios.

Decide poner a prueba si sitios públicos populares de comercio electrónico son realmente vulnerables a este tipo de filtración de información. Visita los sitios en línea de Dell y Buy.com, siguiendo la ruta de la solictud de órdenes hasta llegar a sus sitios seguros. Estos sitios están indicados por el protocolo https en la barra de URL y un icono de un candado cerrado en su navegador. Estos son ecomm.dell.com y secure.buy.com. Sendai usa el programa "open source" hping2 (disponible gratuitamente en www.hping.org) para mandar ocho paquetes TCP SYN, con un segundo de diferencia, al puerto 443 (SSL) del host indicado.

Usando hping2 y el Campo IP ID para Estimar Niveles de Tráfico

# hping2 -c 8 -S -i 1 -p 443 ecomm.dell.com
HPING ecomm.dell.com (eth0 143.166.83.166): S set, 40 headers + 0 data bytes
46 bytes from 143.166.83.166: flags=SA seq=0 ttl=111 id=8984 rtt=64.6 ms
46 bytes from 143.166.83.166: flags=SA seq=1 ttl=111 id=9171 rtt=62.9 ms
46 bytes from 143.166.83.166: flags=SA seq=2 ttl=111 id=9285 rtt=63.6 ms
46 bytes from 143.166.83.166: flags=SA seq=3 ttl=111 id=9492 rtt=63.2 ms
46 bytes from 143.166.83.166: flags=SA seq=4 ttl=111 id=9712 rtt=62.8 ms
46 bytes from 143.166.83.166: flags=SA seq=5 ttl=111 id=9974 rtt=63.0 ms
46 bytes from 143.166.83.166: flags=SA seq=6 ttl=111 id=10237 rtt=64.1 ms
46 bytes from 143.166.83.166: flags=SA seq=7 ttl=111 id=10441 rtt=63.7 ms
--- ecomm.dell.com hping statistic ---
8 packets transmitted, 8 packets received, 0% packet loss

# hping2 -c 8 -S -i 1 -p 443 secure.buy.com
HPING secure.buy.com (eth0 209.67.181.20): S set, 40 headers + 0 data bytes
46 bytes from 209.67.181.20: flags=SA seq=0 ttl=117 id=19699 rtt=11.9 ms
46 bytes from 209.67.181.20: flags=SA seq=1 ttl=117 id=19739 rtt=11.9 ms
46 bytes from 209.67.181.20: flags=SA seq=2 ttl=117 id=19782 rtt=12.4 ms
46 bytes from 209.67.181.20: flags=SA seq=3 ttl=117 id=19800 rtt=11.5 ms
46 bytes from 209.67.181.20: flags=SA seq=4 ttl=117 id=19821 rtt=11.5 ms
46 bytes from 209.67.181.20: flags=SA seq=5 ttl=117 id=19834 rtt=11.6 ms
46 bytes from 209.67.181.20: flags=SA seq=6 ttl=117 id=19857 rtt=11.9 ms
46 bytes from 209.67.181.20: flags=SA seq=7 ttl=117 id=19878 rtt=11.5 ms
--- secure.buy.com hping statistic ---
8 packets transmitted, 8 packets received, 0% packet loss

Los campos IP ID en ambos casos muestran un incremento monótono continuo, que es consistente con un comportamiento trivial de conteo de paquetes. Durante esta prueba, la máquina Dell manda un promedio de 208 paquetes por segundo (10441 menos 8984 y todo dividido entre 7) y secure.buy.com está mostrando 26 pps. Una complejidad añadida es que hosts importantes tales como Dell y Buy.Com tienen muchos sistemas atrás de un balanceador de carga (load balancer). Este dispositivo se asegura que los subsiguientes paquetes de cierta dirección IP vayan a la misma máquina. Sendai puede contar las máquinas mandando paquetes desde muchas direcciones IP diferentes. Este paso es crítico, ya que el ritmo de pps para una sola caja naturalmente decrecerá cuando mas máquinas son añadidas a la granja o viceversa. Contra una granja popular de servidores, el podría necesitar muchas direcciones, pero enormes bloques de red pueden fácilmente ser comprados o hackeados.

Sendai comienza a ejecutar su plan. Escribe un simple programa en C para realizar el sondeo y conteo de hosts usando la librería gratuita libdnet de Dug Song. Corre mediante un cron a unas cuantas docenas de veces por día contra cada uno de los objetivos de comercio público que son vulnerables a este problema. Estas muestras obtienen una estimación de tráfico para cada día. Sendai sabe que no debe poner el dinero inmediatamente. En vez de eso el dejará correr sus scripts por todo un trimestre y contar el tráfico acumulado para cada compañía. Cuando cada compañía reporte resultados, el dividirá sus ingresos actuales para ese trimestre entre su estimado de tráfico para computar ingresos por paquete. El segundo trimestre será de prueba. El multiplicará ingresos por paquete para su tráfico calculado para adivinar el ingreso trimestral, y entonces comparar el ingreso con los números oficiales dados a conocer mas tarde. Compañías que prueben ser inexactas en este punto serán desechadas. Con las remanentes, Sendai espera finalmente hacer algo de dinero. El las observará por un tercer trimestre y otra vez estimar sus ingresos. El entonces comparará sus estimados con el First Call Consensus (Es un estimado de las ganancias de una compañía que las bolsas de valores norteamericanas dan a conocer previamente a la misma compañía. Nota del traductor). Si su estimado de ingresos es substancialmente mayor, el comprará mas acciones justo antes de la llamada a la conferencia de ganancias. Si el estima una caída en los ingresos, Sendai se quedará corto. Obviamente todavía necesita investigar otros factores tales como cambios de precios que pudieran dejar a un lado su estimado de ingresos basado solamente en tráfico.

Corrupción por Avaricia

Aunque Sendai siente que su plan es legal y ético, la codicia se ha apoderado de él y esperar nueve meses es inaceptable. El piensa acerca de otros eventos que mueven el mercado, tales como fusiones, adquisiciones y asociaciones. ¿Cómo puede predecirlos por adelantado? Un modo es observar muy de cerca nuevos registros de nombres de dominios. En algunas fusiones y asociaciones, una nueva entidad combina el nombre de ambas compañías. Deben de registrar el nuevo nombre de dominio antes del anuncio o se arriesgan a ser golpeados por usurpadores de dominios. Pero si se registran mas de un día de mercado por adelantado, Sendai puede enterarse temprano. El obtiene acceso a los archivos de la zona TLD .com mandando una solicitud a Verisign. Esto le da una lista de cada nombre .com. De nuevo, la impaciencia le quita lo mejor de él. Sendai decide cruzar una o dos líneas éticas. En vez de esperar por un nombre sugestivo, ¡el lo va a crear! Sendai compra una gran (para él) cantidad de acciones en una pequeña compañía de publicidad por Internet. Unos cuantos minutos después registra un dominio combinando el nombre de la compañía con uno de los grandes motores de búsqueda. La información pública del contacto en whois es idéntica a la usada por la compañía del motor de búsqueda. El pago es a través de un número de una tarjeta de crédito robada, aunque una tarjeta de crédito prepagada de regalo hubiera trabajado igual de bien. ¡Eso estuvo fácil!

La siguiente mañana, la compañía de publicidad está un poco en un volumen inusual alto. Quizás Sendai no fue el primero en usar esta estrategia de observar dominios. En tableros de mensajes y foros se hacen consultas para explicar el volumen alto. Su corazón se acelera, Sendai se conecta a través de una cadena de proxies anónimos y sube una respuesta a un tablero de mensajes haciendo notar en nuevo nombre de dominio que el acaba de "descubrir". Los que habían subido mensajes se vuelven locos con la especulación, y el volumen salta de nuevo. Así mismo el precio. Un vocero de la compañía niega los rumores una más tarde, pero Sendai ya ha cobrado. ¡Que emoción! Si este pequeño episodio no recibe mucha cobertura de la prensa, quizás inversionistas de otra pequeña compañía caerán mañana. Sendai claramente ha olvidado la ética hacker a la que solía adherirse, y ahora rige su "black hat" por ganancias en vez de solamente por exploración y aprendizaje.

Liberado de sus recelos sobre fraudes descarados y otros métodos ilegales, las opciones en inversiones de Sendai se abren inmensamente. Por ejemplo, su investigación básica en una compañía será substancialmente enriquecida accediendo a los correos del CEO (Chief Executive Officer y el al del CFO (Chief Financial Officer) (Título genérico de puestos directivos del mas alto nivel en empresas norteamericanas. Nota del traductor). También considera el manejar a través de los distritos financieros de ciudades cercanas con su laptop, antena, GPS, y un programa como Kimset or Netstumbler. Seguramente alguna compañía pública tiene un punto de acceso abierto a todo lo ancho con un SSID identificable. Hackeo estándar de redes a través del Internet es otra opción. O Sendai podría extender su fraude de nombres de dominio distribuyendo de hecho informes de prensa falsos. Sendai ha visto informes de prensa falsos, mover el mercado en el pasado. Todavía mareado por su primer hackeo en inversiones exitoso, la mente de Sendai trabaja horas extras pensando en sus siguientes pasos.

Sendai tiene bastante tiempo para investigar sobre inversiones durante las horas de trabajo debido a que trabajos de auditoria y escaneo de redes han sido bastante escasos ahora que el mercado punto-com ha colapsado. Sendai esta contento con esto, por el aspecto del tiempo libre, hasta que un día todo el departamento de seguridad de su oficina es despedido. Hasta aquí llego el mejor trabajo que haya tenido. Sendai lo toma con calma, particularmente porque su finiquito lo añade a su cazuela de inversiones que el espera lo hará muy pronto rico.

Venganza de los Nerds

Estando en casa leyendo Slashdot en calzoncillos (un pasatiempo favorito de los trabajadores de TI desempleados), Sendai se encuentra con una nueva estrategia de inversión. Una patética pequeña compañía llamada Fiasco, reclama tener la propiedad sobre los derechos de autor de Linux, tratando de extorsionar dinero de los usuarios, y levantando multimillonarias demandas. Sendai esta seguro que este engaño accionario y las demandas de Fiasco son frívolas. Mientras tanto, inversionistas mayores lucen embobados por las enormes cantidades de dinero que Fiasco busca, que pierden su habilidad de pensamiento crítico. ¡Las acciones comenzaron en centavos y se ofertan hasta arriba de 5 dólares! Sendai compra una pequeña gran cantidad de acciones, pensando en cubrirlas cuando la acción se desmorone. Ya que los reclamos no tienen fundamento, esto no puede durar mucho.

¡Pero se equivoca! Las acciones de Fiasco (símbolo:SCUMX) se elevan rápidamente. Al llegar a $9 por acción, Sendai recibe una llamada preventiva de su broker. No pudiendo cubrir la enorme pérdida de SCUMX, Sendai vende todas sus otras inversiones y también transmite el saldo de su cuenta de cheques a la firma de valores. Esto le permite sostener la posición, ¡que seguramente pronto caerá como plomo! Se eleva más. Quizás esto se deba a la no criticada emoción inicial. Quizás los accionistas oportunistas estén subiendo ahora. Quizás algunos inversionistas saben que corporaciones anti-Linux como Microsoft y Sun están secretamente enviando dinero a Fiasco. Al llegar a $12, Sendai es despertado por otra llamada mañanera de advertencia y a el le falta el dinero para financiar la cuenta mas allá. Es forzado a comprar de nuevo acciones que cubran su posición, y haciendo esto eleva el precio aun más de estas acciones. Su cuenta de inversiones esta devastada.

En un golpe de rabia e inmadurez, Sendai decide tumbar el sitio Web de Fiasco. Ellos lo usan para propagar mentiras y engaños por adelantado al hacer un fraude criminal con las acciones, es lo que razona. Sendai no considera sus propios embustes de acciones cuando juzga a Fiasco.

Sitios Web son tumbados por atacantes todos los días, usualmente usando un flujo de paquetes enorme desde muchas máquinas (conocido como ataque de denegación de servicio - denial of service attack). Sendai sabe que ataques mucho mas efectivos y elegantes son posibles explotando las debilidades en las implementaciones del protocolo TCP en vez de un flujo crudo de paquetes. Sendai ha tumbado sitios Web mucho más grandes que el de Fiasco desde una simple conexión de modem. Su herramienta favorita para hacer esto es una aplicación distribuida privadamente conocida como Ndos. El revisa las instrucciones de uso.

Opciones de la Herramienta Ndos para Denegación de Servicio

# ndos
Ndos 0.04 Usage: ndos [options] target_host portnum
Supported options:
-D <filename> Send all data from given file into the opened connection
   (must fit in 1 packet)
-S <IP or hostname> Use the given machine as the attack source address 
(may
   require -e).  Otherwise source IPs are randomized.
-e <devicename> Use the given device to send the packets through.
-w <msecs> Wait given number of milliseconds between sending fresh 
probes
-P Activates polite mode, which actually closes the connections it opens
   and acks data received.
-W <size> The TCP window size to be used.
-p <portnum> Initial source port used in loop
-l <portnum> The lowest source port number ndos should loop through.
-h <portnum> The highest source port number used in loop
-m <mintimeout> The lowest allowed receive timeout (in ms).
-b <num> Maximum number of packets that can be sent in a short burst
-d <debuglevel>

Ndos es una de esas herramientas que no tienen documentación (mas que la pantalla de uso) y esta llena de parámetros obscuros que deben ser configurados propiamente. Pero una vez que los valores correctos son determinados ya sea experimentando o de hecho entendiéndolo, es mortalmente efectivo. Sendai lo comienza con una relativamente tenue frecuencia de paquetes desde una caja Linux hackeada. Puedes apostar a que la opción-P no fue indicada. El sitio Web de Fiasco esta caído hasta que la caja comprometida es descubierta y desconectada tres días mas tarde.

Aunque su pequeño berrinche de malhumor fue ligeramente gratificante, Sendai esta todavía quebrado, sin trabajo, y miserable. Solo una cosa lo anima ¡La próxima conferencia anual Defcon Hacker! Esto da la rara oportunidad de salir con todos sus amigos de alrededor del mundo en persona, en vez de IRC. Sendai se preocupa si podrá siquiera poder ir. Números de tarjetas de crédito robadas no son una buena idea para reservaciones de vuelos. Contando sus penosas sobras de su cuenta de cheques y de las cuentas de la firma de valores, así como el resto del límite de su tarjeta de crédito, Sendai rasca lo suficiente para el viaje a Las Vegas. El hospedaje es otro asunto. Después de escribirles a varios amigos, su amigo hacker Don Crotcho (también conocido como El Don) le ofrece compartir gratuitamente su cuarto de hotel en el Alexis Park

Las siguientes semanas transcurren rápidamente, con Sendai viviendo a lo barato comiendo sopas y macarrones instantáneos. Le gustaría tratar más "hackeo de inversiones" pero se requiere dinero para comenzar. Sendai culpa a Microsoft por su condición actual, debido en parte al sostenimiento económico clandestino a Fiasco, y también porque es una de esas personas que encuentran razones para culpar a Microsoft de casi todos sus problemas en la vida.

Una Pista en Las Vegas

Sendai pronto se encuentra el mismo rodeado por miles de hackers en Las Vegas. Se encuentra con El Don, quien sorpresivamente se ha cambiado a la nada barata suite Regal en vez del barato cuarto Monarch. Quizás se les acabaron los Monarch, piensa Sendai. Los dos se dirigen al Strip para buscar entretenimiento. Sendai quiere irse a la diversión gratis, sin embargo El Don esta interesado en apostar. Al llegar al Bellagio, Sendai ve una mesa de ruleta y le da tentación apostar sus últimos dólares al negro. Entonces se da cuenta cuan similar sería eso a la especulación de Fiasco que lo llevo a este desastre. E igual que con boletos de aerolíneas, usar una tarjeta de crédito robada en casinos es una mala idea. En vez de eso, Sendai decide dar la vuelta y observar a El Don perder su dinero. Don se dirige al cajero, regresando con una enorme pila de fichas de cien dólares. Asombrado, Sendai demanda saber como Don obtuvo tanto dinero. El Don lo maneja como si no tuviera importancia, y se niega a dar cualquier detalle. Después de varias horas de persistencia y bebida, Sendai se entera algo de la verdad. En un tranquilo apartado de un bar. Don concede que el ha encontrado un nuevo cliente que paga extraordinariamente bien por manipulación especializada de telecomunicaciones, que es el eufemismo profesional de El Don para "phone phreaking" (Hackeo telefónico).

Dada su precaria situación financiera, Sendai le ruega a El Don que lo conecte con su generoso cliente. Quizás necesita algunas de las especialidades en escaneo de seguridad y explotación de vulnerabilidades en las que Sendai se especializa. El Don se niega a nombrar su cliente, pero acuerda mencionar a Sendai si el encuentra una oportunidad. Sendai realmente no puede pedir nada más, especialmente después de que El Don lo amenaza con visitar uno de los mejores clubes de strip tease de Las Vegas mas tarde esa noche. Don dice que le recuerda al Maxim's de su tierra en Islandia.

La Llamada de la Oportunidad

El siguiente jueves, Sendai esta sentado en su casa leyendo Slashdot en calzoncillos y recuperándose de una enorme cruda obtenida en DEFCON cuando el teléfono suena. Contesta el teléfono para oír una voz no familiar. Después de confirmar que está hablando con Sendai, el que llama se presenta a si mismo.

"Hola Sendai. Puedes llamarme Bob Knuth. El Don me informa que tú eres uno de los expertos mas brillantes en penetración de sistemas que anda por aquí. Estoy trabajando en un muy importante pero sensible proyecto y esperaba que tú pudieras ayudar. Necesito tres hosts comprometidos en el Internet y un rootkit de tu diseño avanzado e instalado. El rootkit debe ser completamente efectivo y confiable, que ofrezca acceso completo al sistema a través de puertas traseras escondidas. Y aun debe ser tan sutil que incluso el más capacitado y paranoico administrador de sistemas no sospeche nada. La paga es buena, pero solo si todo sale perfecto. Por supuesto, es crítico que todas las intrusiones sean exitosas y no detectadas. Un simple resbalón y sentirás las consecuencias. ¿Estás a la altura de este reto?"

Pensando rápido, la primera impresión no es positiva. Esta ofendido por el apodo de "Bob Knuth", ya que es obvio que fue modelado usando el mundialmente renombrado científico informático Don Knuth. ¡Cómo se atreve este arrogante criminal compararse el mismo a tal figura! "Sus palabras también sonaban condescendientes, como si dudara de mis capacidades", piensa Sendai. También esta la pregunta de que tiene en mente Knuth. El no dejo ver nada de sus intenciones, y si Sendai preguntara sería un enorme faux pas. Sendai sospecha que Knuth pudiera ser uno de los criminales informáticos más viles: ¡un spammer! ¿Realmente debería rebajarse a este nivel para ayudar?

A pesar de su diálogo interno, Sendai sabe bastante bien que la respuesta es si. Mantener su apartamento y comprar comida matan sus escrúpulos. Además, a Sendai le encanta apasionadamente hackear y se saborea la oportunidad de probar sus destrezas. Así que responde afirmativamente, por supuesto con la condición de paga suficiente. Esa negociación no toma mucho. Usualmente Sendai por principio trata de regatear después de la primera oferta, pero la oferta de Knuth es tan alta que Sendai se queda sin tenacidad para contraofertar. El hubiera insistido en recibir parte del dinero por adelantado si no supiera que a El Don se le ha pagado sin incidentes. Knuth se oye extremadamente ocupado, así que no hay pláticas ligeras intercambiadas. Discuten los específicos del trabajo y se desconectan.

Reconocimiento Inicial

Sendai primero debe realizar un reconocimiento ligero contra los tres hosts que Knuth le dio. Dada la cantidad de tráfico de escaneo del tipo "ruido blanco" que hay en Internet, el posiblemente podría salirse con la suya escaneando desde su propio IP en su hogar. Un escalofrió lo atraviesa cuando recuerda la Operación Sundevil. No, escanear desde su propio ISP es inaceptable. Se mueve hacía su laptop, conecta una antena externa en su tarjeta 802.11, e inicia Kismet para descubrir cual de sus vecinos tienen puntos de acceso (access points) abiertos ahora. Escoge uno con el default ESSID de linksys porque usuarios que no se molestan en cambiar los default del ruteador son menos susceptibles a notar su presencia. Siempre cuidadoso, Sendai cambia su dirección MAC con el comando de Linux ifconfig eth1 hw ether 53:65:6E:64:61:69, lo asocia con el linksys, y auto configura vía DHCP. Iwconfig muestra una señal fuerte y Sendai verifica que en su navegador las cookies estén deshabilitadas antes de cargar Slashdot para verificar conectividad de red. Debió haber usado otra prueba ya que desperdicia 15 minutos leyendo una historia en la primera página acerca de la última atrocidad de Fiasco.

Sendai solo necesita un poco de información en este momento sobre los objetivos. Lo mas importante, quiere saber que sistema operativo están usando de tal manera que el pueda confeccionar su rootkit apropiadamente. Para este propósito, obtiene la última versión del Nmap Security Scanner. Sendai considera que opciones usar. Ciertamente necesitará -sS -Fque indican un escaneo SYN TCP furtivo de alrededor de 1000 puertos comunes. La opción -P0 asegura que los hosts serán escaneados incluso si no responden a los sondeos ping de Nmap, que por default incluyen un mensaje ICMP echo request asi como un paquete TCP ACK enviado al puerto 80. Por supuesto -O será especificado para proveer detección del SO (Sistema Operativo). La opción -T4 acelera las cosas, y -v activa el modo verboso para algunas salidas adicionales que puedan ser útiles. Entonces esta el asunto de los señuelos. Esta opción de Nmap causa que el escaneo (incluyendo la detección del SO) sea simulada de tal manera que aparezca que vino de muchas máquinas. Un administrador del objetivo que note el escaneo no sabrá cual máquina es el real perpetrador y cuales son inocentes señuelos. Los señuelos deben ser accesibles en el Internet para propósitos de credibilidad. Sendai le pide a Nmap encontrar algunos buenos señuelos al probar 250 direcciones IP al azar.

Buscando Señuelos Candidatos con Nmap

# nmap 
-sP -T4 -iR 250
Starting nmap 3.50 ( http://nmap.org/ )
Host gso167-152-019.triad.rr.com (24.167.152.19) appears to be up.
Host majorly.unstable.dk (66.6.220.100) appears to be up.
Host 24.95.220.112 appears to be up.
Host pl1152.nas925.o-tokyo.nttpc.ne.jp (210.165.127.128) appears to be up.
Host i-195-137-61-245.freedom2surf.net (195.137.61.245) appears to be up.
Host einich.geology.gla.ac.uk (130.209.224.168) appears to be up.
Nmap run completed -- 250 IP addresses (6 hosts up) scanned in 10.2 seconds
#

Sendai escoge estos como sus señuelos, los pasa como una lista separada por comas a la opción -D de Nmap. Este comando cuidadosamente hecho a mano es completado con las direcciones IP de los objetivos dados por Knuth. Sendai ejecuta Nmap y encuentra los siguientes extractos del resultado particularmente interesantes.

Analizando la Huella Digital de los SO de los Objetivos

# nmap -sS -F -P0 -O -T4 -v -D[decoyslist] [IP addresses]
Starting nmap 3.50 ( http://nmap.org/ )
[...]
Interesting ports on fw.ginevra-ex.it (XX.227.165.212):
[...]
Running: Linux 2.4.X
OS details: Linux 2.4.18 (x86)
Uptime 316.585 days
[...]
Interesting ports on koizumi-kantei.go.jp (YY.67.68.173):
[...]
Running: Sun Solaris 9
OS details: Sun Solaris 9
[...]
Interesting ports on infowar.cols.disa.mil (ZZ.229.74.111):
[...]
Running: Linux 2.4.X
OS details: Linux 2.4.20 - 2.4.22 w/grsecurity.org patch
Uptime 104.38 days

Conforme los resultados aparecen, el primer aspecto que atrapa el ojo de Sendai son los nombres DNS inversos. Parece ser que está por comprometer el firewall de una compañía en Italia, una computadora del gobierno japonés, y un host militar estadounidense de la Agencia de Sistemas de Información de la Defensa. Sendai tiembla un poco por el último. Esta es ciertamente una de las asignaciones mas enigmáticas que haya tenido. ¿Qué podrían tener estas tres máquinas en común? Knuth ya no parece ser un spammer. "Espero que no sea un terrorista", Sendai piensa mientras trata de sacudirse pensamientos de pasar el resto de su vida etiquetado como un enemigo combatiente y encerrado en la bahía de Guantánamo.

Shrax: El Rootkit Máximo

Sendai observa las plataformas identificadas por Nmap. Esto es información crítica al determinar que tipo de rootkit el tendrá que preparar. Los rootkist son muy específicos a la plataforma ya que se integran fuertemente con el núcleo del SO para esconder procesos y archivos, abrir puertas traseras, y capturar secuencias de teclas. Las demandas de Knuth son mucho más elaboradas que cualquier rootkit público existente, así que Sendai debe de escribir su propio rootkit. El esta satisfecho que estos sistemas corren Linux y Solaris, dos de los sistemas que el mejor conoce.

En vez de comenzar desde cero, Sendai basa su rootkit en código existente. Baja los últimos clientes de Sebek para Linux y Solaris desde www.honeynet.org/tools/sebek. Sebek es un producto del Proyecto Honeynet,[1], un grupo de profesionales en la seguridad que intentan aprender las herramientas, tácticas, y motivos de la comunidad blackhat colocando computadoras "honeypot" (tarros de miel, por el hecho de que atraen abejas a estos en la analogía de atraer hackers, nota del traductor) en el Internet y estudiar como son estás explotadas. Sebek es un módulo del núcleo usado para monitorear actividad en los honeypots mientras esconde su propia existencia. Sendai se deleita en esta deliciosa ironía de una herramienta whitehat (white hat se le llama así a los hackers éticos o al hackeo con fines legales, nota del traductor) que encaja perfectamente en sus malignos propósitos. Una gran extra es que esta disponible para Linux y Solaris.

Aunque Sebek sirve como un útil cimiento, convertirla en un rootkit apropiado requiere un trabajo sustancial. Sebek ya incluye un limpiador que hace que se oculte de la lista de módulos del kernel, pero Sendai debe añadir mas características para esconder archivos/directorios, procesos, sockets, paquetes y usuarios de quien sea (incluyendo a los administradores legítimos). La funcionalidad syslog es también comprometida para prevenir actividad de intrusión de ser bitacorizada. Sendai añade varias características divertidas para tratar con cualquier otro usuario del sistema. Un sniffer TTY le permite observar ocultamente sesiones de terminales de usuarios seleccionados e incluso insertar activamente secuencias de teclas o apoderarse de la sesión del usuario.

El sniffer TTY hace que Sendai sonría, pensando en aquellos juveniles días cuando el hackeaba máquinas de la universidad solo para molestar estudiantes y profesores. Viendo a alguien teclear rápidamente en una Terminal, Sendai a veces insertaba una tecla o un retroceso, haciendo que el comando no funcionara. Pensando que habían hecho un error de escritura, el usuario trataba de nuevo. ¡Pero los errores continuaban! Mientras el usuario se preguntaba porque ella estaba teniendo tanto problema mientras tecleaba y comenzaba a sospechar que el teclado estaba descompuesto, teclazos fantasmas comenzarían aparecer en la pantalla. Eso es bastante inquietante por si mismo, pero induce al pánico cuando estas secuencias de teclas empiezan a teclear comandos como rm -rf ~ o a ¡componer un desagradable correo electrónico al jefe del usuario! Sendai nunca realizó realmente estas acciones dañinas, pero desarrollo un perverso placer al alarmar a los pobres usuarios. El se preguntaba que diría soporte técnico cuando estos usuarios los llamaran y declararan que sus sistemas estaban poseídos. Sendai se consideraba ahora mas maduro para tales payasadas, pero implementa las características de lectura de la terminal para espiar en administradores que sospeche están sobre él.

Sendai añade otra particularidad de manipulación de usuario que la llama característica de despojo. Los procesos privilegiados de Linux son mas granulares que solo ser superusuario (uid 0) o no. Los privilegios de root están divididos en varias docenas de características, tales como CAP_KILL para matar cualquier proceso y CAP_NET_RAW para escribir paquetes crudos (raw) a la red. Las características de Sendai remueven todas estas posibilidades del shell de un administrador que se registre en el sistema. El podrá seguir apareciendo como root usando el comando id, pero ha sido secretamente neutralizado. Intentos de ejecutar operaciones privilegiadas son rechazadas, dejando al administrador más frustrado y confundido que si Sendai hubiera terminado la sesión matando su shell.

El vector de infección es otro tema de presión. Sebek se esconde a si mismo en la lista de módulos del núcleo, pero el módulo por si mismo no está escondido en el disco. Peor aun, el proceso de inicio del sistema debe ser modificado para cargar el módulo, o un reinicio del sistema echaría a perder todo el plan. Esto es aceptable en una honeynet, porque no hay otro legítimo administrador que notaría los cambios en el proceso de inicio. No cumple con los requerimientos de Sendai muy bien. Y mas que Knuth fue muy claro al indicar que el sistema debe ser resistente a los reinicios. La solución de Sendai es inyectar su módulo de núcleo maligno (que el ha llamado Shrax) dentro un módulo de núcleo legítimo tal como un controlador de Ethernet.[2] Esto evita tener por ahí un binario sospechoso extra y modificar los archivos de inicio. Adicionalmente, Sendai añade un sistema de redirección de inodos para que el módulo aparezca sin molestias una vez cargado. Esto debe proteger a Shrax de checadores de integridad tales como Tripwire, Aide y Radmind. Por supuesto es posible que los objetivos Linux hayan compilado sus núcleos sin soporte de módulo, ya que muchos administradores siguen creyendo que esto detiene a los rootkits para núcleos. ¡No hay problema! Sendai tiene herramientas para ambos forzando un módulo dentro de un núcleo en ejecución usando solo /dev/mem, e inyectando un módulo dentro de un núcleo estático para que este sea ejecutado silenciosamente durante el próximo reinicio.

Esta también el tema de la puerta trasera. Una opción es simplemente compilar y correr un servidor ssh en algún número de puerto oscuro como el 31,337. Un parche trivial pasaría la autentificación y le dará acceso de root cuando un nombre de usuario secreto fuera dado. Shrax es capaz de esconder el proceso ssh (y sus hijos) de otros usuarios, así como de esconder el socket para que no sea mostrado por netstat o comandos similares. A pesar de esto, Sendai encuentra esta opción inaceptable. Aunque se esconda dentro del sistema, alguien por fuera podría encontrar el puerto de la puerta trasera con Nmap. Mas importante, Knuth insistió que el va a poder activar la puerta trasera usando una amplia variedad de protocolos y paquetes sutiles. Ssh requerirá que los firewalls de las redes objetivos permitan conexiones TCP a los puertos elegidos. Tales firewalls permisivos no son comunes en algunas de las organizaciones tan sensibles que Knuth quiere atacar.

Después de pensarlo arduamente, Sendai se decide en una puerta trasera metida dentro del kernel en vez de confiarse en programas externos tales como ssh. Para puertas traseras, este es bastante avanzado. Knuth estará feliz que su interfase de activación es el epítome de la flexibilidad. Pone las interfases del sistema en modo promiscuo (ocultando este hecho, por supuesto) y examina cada paquete IP que ingresa, sin tener en cuenta la dirección IP de destino o protocolo. Los primeros bytes de datos son entonces comparados contra una cadena de identificación. Al principio Sendai fija la cadena a "Mi crimen es el de la curiosidad", y entonces inteligentemente decide ser más sutil y escoge una cadena con una apariencia al azar. Si la cadena coincide, el resto del paquete es desencriptado usando AES y una llave configurable. El resultado es interpretado como un método de descripción de respuesta seguido por una serie de comandos del shell para ser ejecutados como root. También hay algunos comandos especiales de configuración para tareas como cambiar llaves de encriptación, activar la TTY y sniffers de contraseñas de red, y para deshabilitar Shrax y remover cada huella de el. Sendai esta particularmente orgulloso del método de descripción de respuesta. Esto le dice a Shrax como regresar respuestas de comandos, que son siempre encriptados con la llave pública. Sendai esta bastante orgulloso de los métodos de transporte soportados. Por supuesto, TCP y UDP directos a un puerto IP es soportado. O el usuario puede tener respuestas enviadas vía mensajes ICMP echo request, echo response, timestamp o netmask. Mensajes ICMP time-to-live exceeded son también soportados. Los datos pueden ser asegurados dentro de una petición web e incluso ser mandados a través de socks o de un Proxy http. La técnica Shrax favorita de Sendai es usar una serie de peticiones DNS controladas bajo un dominio del atacante. Shrax puede ser incluso configurado para sondear frecuentemente un servidor de nombres para nuevos comandos. A menos de que el sistema sea totalmente desconectado, Knuth será capaz de encontrar un modo de enviar sus datos de regreso. Por supuesto, uno puede elegir ejecutar un comando sin regresar una respuesta. Esto permite al intruso ser completamente anónimo con un paquete IP alterado.

Otra única característica de Shrax es que puede transparentemente pasar comandos a través de una cadena de rootkits. Un atacante puede configurar el cliente para ir a través de una máquina inicial comprometida en Rumania, entonces a otro en China, y entonces al servidor web de la DMZ de la empresa objetivo, y finalmente a una base de datos en una máquina interna. El primer salto le ayuda al atacante para cubrir sus huellas, mientras que la última puede ser necesaria porque la base de datos es accesible solo desde el servidor web.

Sendai hace todo el trabajo en Shrax porque planea usarlo por varios años por venir y compartirlo con sus camaradas. Si hubiera estado escrito solo para esta específica tarea, habría hackeado primero los objetivos y escrito después solo las más críticas características.

Después de todo este trabajo con Shrax, Sendai ansia en utilizar su nuevo bebé. Quiere comenzar a hackear inmediatamente, pero es mas listo que eso. Considerando que sitios militares y de gobierno están involucrados, atacar desde la conexión inalámbrica de su vecino, sería estúpido. Sendai recuerda como las autoridades le siguieron la pista a Kevin Mitnick desde conexiones inalámbricas en su departamento. Y si la policía alguna vez se presenta en el complejo de departamentos donde vive Sendai, el será el principal sospechoso. Sendai repentinamente se arrepiente de haber ordenado la placa de automóvil HACKME para su vehículo. La policía quizás no hubiera siquiera notado una placa mas sutil como SYNACK. Sendai tiene un número de cajas comprometidas por todo el Internet, pero el quiere una máquina que no este relacionada a él, una que pueda usar una vez y desecharla.

Cuenta Deshechable

Sendai se decide aventurarse afuera después de todos estos días escribiendo Shrax. Quizás un día en el cine, o en la playa, o asistir a un partido sería bueno para el. En vez de eso, Sendai se dirige a la anual Conferencia Criptográfica ASR. El no tiene para pagar las conferencias, pero espera obtener entrada gratis a la gigantesca expo. El ganó una PDA Sharp Zaurus la última vez, que es sensacional para realizar caminatas de guerra (warwalking, técnica que consiste en ir caminando o manejando -wardriving- y con una laptop o PDA ir captando puntos de acceso inalámbricos sin mucha seguridad, nota del traductor) para encontrar WAP's abiertos. Sendai la carga consigo para en caso de que tengan acceso inalámbrico a la conferencia.

Aunque ASR ofrece conectividad inalámbrica gratis, intentan asegurarla con autentificación 801.1X y PEAP. Este mayor inconveniente ocasiona colas en las terminales gratuitas conectadas directamente a la red. Aunque Sendai hubiera checado su correo sobre ssh (después de verificar la llave ssh del servidor) desde su Zaurus, el ciertamente no lo hubiera hecho desde la computadora del pabellón. Aunque confiara en los organizadores del ASR (lo cual no hace), están totalmente expuestos a que cualquier hacker conecte un keylogger o vulnere el software e instale un programa que haga lo mismo. En ese instante, la expresión de Sendai cambia de indignación a una sonrisa maliciosa ¡ya que reconoce esto como una fuente de cuentas desechables!

La siguiente mañana, Sendai llega temprano a ASR para adelantarse a las muchedumbres. El se apodera de una computadora disponible y carga Slashdot. Pretendiendo frustración, el se da la vuelta hacía atrás de la máquina y desconecta el cable PS/2 del teclado. Sopla en el puerto PS/2 detrás de la máquina, mientras sus manos están discretamente introduciendo el KeyGhost SX dentro del cable. Este pequeño dispositivo almacena hasta dos millones de pulsaciones de teclas y supuestamente hasta las encripta para que otros tipos listos en el ASR no puedan robarse las contraseñas.[3] Sendai conecta el cable del teclado de nuevo con su pequeña adición, regresa al frente, y continúa navegando por la web. El sonríe para completar su pequeño acto que la máquina estaba descompuesta y de nuevo esta trabajando. ¡Maldición estos puertos empolvados del teclado! Nadie prestó la más mínima atención durante su farsa y pudo haber sido más descarado sin atraer ninguna atención, pero nunca esta demás ser cuidadoso. Además lo hace sentir escurridizo y listo.

Conectando el Keyghost al Cable del Teclado de la Computadora

Sendai pasa la próximas pocas horas en la expo coleccionando camisas, CD's de software, plumas un par de boxers, un pin y una bolsa de la NSA, revistas, y un montón de dulces. Después de una serie reciente de gusanos en Internet, muchos vendedores aparentemente decidieron que regalos basados en temas de gusanos serían ingeniosos y únicos. Sendai fue retacado con gusanos de golosinas, gusanos de imán para el refrigerador, y un llavero gusano. Tiene la tentación de mirar las terminales desde cerca para asegurarse que nadie le robe su KeyGhost de 200 dólares. Entonces se da cuenta que aunque observe a alguien descubrirlo y tomarlo, no puede arriesgarse a una escena al acercársele y gritarle "¡Hey! ¡Ese es mi keylogger!" Sendai se retira para un largo lunch y después pasa un par de horas visitando una supertienda cercana de computadoras.

Por la tarde, Sendai regresa al ASR, esperando que el keylogger siga sin ser detectado. Lanza un suspiro de alivio cuando esta tal como lo dejo. La terminal esta disponible, así que Sendai simplemente repite su acto del "sistema descompuesto" y 10 minutos mas tarde esta manejando a casa con toda la evidencia en su bolsillo.

En casa, Sendai rápidamente conecta el KeyGhost en su sistema. Sendai abre el editor vi y teclea su contraseña. Al reconocer este código, el KeyGhost toma el mando y despliega un menú. Sendai indica 1 para "descarga completa" y mira conforme páginas y páginas de texto llenan la pantalla. Desplazándose a través de estas, observa que la gran mayoría de usuarios hacen poco más que navegar la Web. Sitios de seguridad tales como securityfocus.com, packetstormsecurity.nl, securiteam.com, y phrack.org son populares. Muchos tipos cometen el error de checar sus cuentas de Hotmail o Yahoo desde las terminales. Sendai tiene poco interés en tales cuentas. También hay un sorprendente número de sitios pornos. Desafortunadamente, no hay compras con números de tarjetas de crédito. Consultas en motores de búsqueda son interesantes. Un usuario buscó por "windows source torrent", otro por "lsass.exe", y algún otro busca "trabajos de seguridad iraq".

Descargando bitácoras del Keyghost

Sendai comienza a preocuparse cuando el pasa mas de la mitad del archivo sin ningún login remoto. Las pocas personas que abrieron sesiones de terminal solo ejecutaron comandos simples como ls y cat /etc/passwd. Setenta por ciento del archivo, Sendai descubre datos que prometen: Un usuario ingreso como antonio via ssh a pysche.ncrck.com. Sendai busca a través de los siguientes comandos, esperando que el usuario corra su y teclee la contraseña para convertirse en el súper usuario root. No hay tal suerte, Antonio simplemente leyó su correo electrónico con mutt, mando una nota a un compañero de trabajo describiendo la conferencia, y después se desconectó. Con toda la emoción de leer bitácoras de teclas, Sendai casi se olvida de borrar el Keyghost y removerlo de su sistema. Si el fuera a ser condenado mas tarde basado en la evidencia de su propio keylogger, Sendai hubiera sido la comidilla de la comunidad criminal de hackers. Tal error le recuerda de los hackers que han sido atrapados basándose en la evidencia registrada en el paquete sniffer que ellos instalaron en la caja comprometida.

Las bitácoras de teclas presionadas no contienen más contraseñas de sistemas, así que Sendai trata de obtener lo mas de psyche.ncrack.com. Se mueve a la laptop (que sigue asociada con el WAP linksys) y exitosamente se logea en la Psyche. Ahora la presión aumenta, ya que debe de moverse rápido para evitar ser detectado. Su primera acción es correr el comando w para ver quien mas está en línea. Se reconforta al ver que el real antonio no está en línea, pero otros dos usuarios si lo están. Con suerte ellos no notarán al sospechoso login de antonio desde una dirección IP inusual. Algún intento de ellos de chatear con el impostor antonio sería también un desastre. Sintiéndose vulnerable y expuesto, Sendai se enfoca en la tarea entre manos. El corre uname -a para determinar que Psyche esta corriendo el núcleo de Linux 2.4.20. La distribución es Red Hat 9 de acuerdo a /etc/redhat-release. Sendai inmediatamente piensa en el exploit del núcleo brk(), para núcleos hasta la versión 2.4.22. Ese bug fue desconocido para el público hasta que fue usado para comprometer muchas máquinas de Debian Proyect. Sendai estuvo un poco irritado que el no haya estado durante la prepublicación del periodo del día-cero. Es un bug muy interesante, y Sendai se pasó dos días manipulando código ensamblador dentro de un exploit utilizable. Esta a punto de venir muy a mano. El carga hd-brk.asm y teclea:

psyche> nasm -f elf -o hd-brk.o hd-brk.asm
psyche> ld -o hd-brk hd-brk.o -Ttext 0x0xa0000000
psyche> ./hd-brk
# id
uid=0(root) gid=0(root) 
groups=0(root),1(bin),2(daemon),3(sys),4(adm),10(wheel)
#

Dejando a un lado los cientos de equipos que Sendai ha comprometido en su vida (legalmente o no), el nunca siente un sentimiento de triunfo cuando el ve ese glorioso prompt # que significa acceso de root. Además esta es solo una victoria menor, ya que el propósito de Psyche es simplemente cubrir las huellas de Sendai. No habrá tiempo para celebrar, ya que ahora hay un sospechoso shell de root que los otros usuarios podrán notar.

Sendai cambia su atención a la instalación del rootkit. El comando lsmod muestra que el kernel permite módulos y que casi 50 de ellos están instalados. Esto es típico para núcleos de distribuciones mayores de Linux. Sendai inyecta Shrax dentro del módulo parport_pc, que como su nombre implica, maneja los puertos paralelos de la PC. Es cargado muy tempranamente en el inicio y es muy raro que sea cambiado, llenando los dos mas deseables atributos. Es también fácil de remover y de re-insertar el módulo del puerto paralelo sin atraer atención. Sendai así lo hace.

Con el rootkit aparentemente instalado, Sendai prueba su poder. Emite el comando de Shrax hideall (esconde todo) contra los procesos sshd por los cuales se conecta. Repentinamente ese sshd y todos sus descendientes (incluyendo su rootshell) están ahora escondidos de la lista de procesos del sistema. Sus mensajes syslog son ignorados y los sockets ocultados. Sendai borra los registros relevantes de wtmp, lastlog, y syslog para remover cualquier indicio de que antonio ingresó esa tarde. El checa a los otros dos usuarios conectados con el sniffer TTY para asegurarse que están haciendo sus propias cosas y que no sospechen que nada haya cambiado. Sendai ligeramente prueba algunos componentes mas complejos incluyendo el compilador gcc y emacs. Uno de los modos más comunes en que los atacantes son descubiertos es que inadvertidamente echan a perder algo. Los generalmente atentos tipos de Debian no notaron intrusos hasta que bloqueos del núcleo comenzaron a ocurrir en varias cajas al mismo tiempo. Sendai esta contento de que ningún problema haya aparecido con Shrax todavía. Un sentimient de alivio se apodera de el y comienza a relajarse. Sus actividades en el sistema están bien escondidas ahora que Psyche esta asegurado y p0s3id0.

Buscando el Premio

Después de toda esta preparación, Sendai esta listo para ir tras los tres principales objetivos. Primero debe de aprender lo más posible sobre ellos. El comienza con un escaneo de Nmap intrusivo. Red Hat 9 viene con Nmap 3.00, el cual esta bastante desactualizado. Sendai obtiene la última versión de http://insecure.org/, después lo compila y lo instala en un directorio escondido por Shrax. Sobre las opciones, Sendai usará -sS -P0 -T4 -v por las mismas razones de los escaneos previos. En vez de -F (escanear los puertos mas comunes), Sendai especifica -p0-65535 para escanear todos los 65,536 puertos TCP. Usará UDP (-sU) e IP-Proto (-sO) mas tarde si es necesario. En vez de usar -O para la detección del SO, -A es especificado para activar muchas opciones mas agresivas incluyendo la detección del SO y detección de versión de aplicaciones. Señuelos (-D) no son usados esta vez porque la detección de versiones requiere de conexiones TCP completas, que no pueden ser encubiertas tan fácilmente como paquetes individuales. La opción -oA es indicada con un nombre de archivo base. Esto guardará el resultado en los tres formatos soportados por Nmap (lectura normal humana, XML, y otro que fácilmente pueda ser usado por el comando grep). Sendai escanea las máquinas una a la vez para evitar darle a las otras organizaciones de una advertencia previa. Comienza con la compañía italiana, que lleva a la siguiente salida de Nmap.

Salida de Nmap: Un Escaneo Más Intrusivo de Ginevra

# nmap -sS -P0 -T4 -v -A -p0-65535 -oA ginevra-ex fw.ginevra-ex.it
Starting nmap 3.50 ( http://nmap.org/ )
Interesting ports on fw.ginevra-ex.it (XX.227.165.212):
(The 65535 ports scanned but not shown below are in state: filtered)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 3.7.1p1 (protocol 1.99)
Running: Linux 2.4.X
OS details: Linux 2.4.18 (x86)
Uptime 327.470 days
TCP Sequence Prediction: Class=random positive increments
                         Difficulty=2325858 (Good luck!)
IPID Sequence Generation: All zeros
Nmap run completed -- 1 IP address (1 host up) scanned in 1722.617 seconds

El resultado muestra que el 22 es el único puerto TCP abierto. Sendai esta un poco desilusionado. El tenía la esperanza de muchos más puertos abiertos, ya que cada uno es una vulnerabilidad potencial de seguridad. El nota la línea que dice que los otros 65,535 puertos están en estado filtrado. Esto generalmente significa que los administradores han hecho un esfuerzo para asegurar la caja, ya que la mayoría de los sistemas operativos los instalan por default en un estado cerrado. Un puerto cerrado regresa un paquete RST, que le indica a Nmap que el puerto es alcanzable pero que ninguna aplicación esta a la escucha. Un puerto filtrado no responde a nada. Es debido a que virtualmente todos los puertos están filtrados que Nmap tardo tanto (casi media hora) en terminar. Sondas contra puertos cerrados son más rápidos porque Nmap tiene que esperar solo hasta que la respuesta RST sea recibida en vez de esperar a que venza un temporizador para cada puerto. Una respuesta de reset también significa que no retransmisión es necesaria ya que obviamente la sonda no se perdió. Claramente se han preocupado de eliminar servicios innecesarios en esta máquina también. Muchas distribuciones de Linux se distribuyen con muchos de ellos abiertos. Es también común para muchas compañías pequeñas hospedar servicios de infraestructura como servidores de nombres y servidores de correo en el firewall. Hacen esto para evitar colocar estos servicios públicos en una red DMZ separada, pero sustancialmente debilita su seguridad. Como probador de sistemas, Sendai ha comprometido muchos firewalls porque estaban inapropiadamente corriendo servidores de nombres BIND públicos. Aparentemente los de Ginevra son mas listos que eso.

De acuerdo a Nmap, el puerto 22 esta corriendo OpenSSH 3.7.1p1. Este es otro servicio que no debería estar disponible a todo el Internet en un mundo ideal, pero Sendai puede entender el porque los administradores lo permiten. Si algo se descompone mientras ellos estén muy lejos de casa, los admins querrán conectarse desde el servicio de Internet disponible más cercano. Haciendo esto, los administradores aceptan el riesgo que los atacantes pueden explotar el servicio. Sendai intenta hacer exactamente eso. OpenSSH tiene una historia sórdida de al menos una docena de hoyos de seguridad serios, aunque Sendai no recuerda ninguno en esta versión. Varios bugs explotables en el código de administración del buffer fueron descritos en CERT Advisory CA-2003-24, pero esos problemas fueron arreglados en 3.7.1. Sendai tendrá mejor que implementar un ataque de fuerza bruta. Esto es a menudo bastante efectivo, aunque puede llevar mucho tiempo. Primero, Sendai buscará en Internet buscando por nombres de empleados y direcciones de correo electrónico. Buscará en páginas Web, USENET y listas de correo, e incluso en búsquedas reguladas. Esto le ayudará adivinar nombres de usuarios que pueden estar autorizados en el fw. El tratará también de engañar al servidor de correo público de la compañía al validar nombres de usuarios. El nombre de usuario root, por supuesto, será añadido a la lista de fuerza bruta.

Con una lista de usuarios a la mano, Sendai comenzará la búsqueda por posibles contraseñas. El ya tiene una lista de 20,000 de las mas opulares contraseñas obtenida de millones que el ha obtenido de varias bases de datos. Todo el mundo sabe que palabras como "secreto", "contraseña", y "dejameentrar" (letmein) son comunes. Lo que antes sorprendía a Sendai es como se usan contraseñas profanas. "fuckyou" es la 27 en la lista, justo encima de "muerdeme" (biteme). Es también sorprendente como muchas personas piensan que "asdfgh" es una contraseña inteligente, fácil-de-teclear que los tipos malos jamás adivinarán.

Por supuesto, contraseñas comunes difieren dramáticamente dependiendo de la organización de la que provienen. Así que Sendai no puede simplemente usar su mejor lista de contraseñas. El necesitará descargar una lista de palabras en italiano. También recursivamente descargará totalmente el sitio Web de www.ginevra-ex.it y lo escudriñará por nuevas palabras. Finalmente, Sendai sacará Hydra, su crackeador de fuerza bruta de código abierto favorito, para realizar el ataque en si. Podrá tomar días, pero Sendai esta optimista que encontrará una contraseña débil.

Sendai se encuentra preparando su plan cuando repentinamente recuerda una oscura vulnerabilidad que afecta solo a OpenSSH 3.7.1p1, y solo cuando el sistema PAM (Pluggable Authentication Modules) esta en uso y la separación de privilegios esta deshabilitada. PAM es a menudo usado en cajas Linux, así que decide darle una oportunidad. La vulnerabilidad es ridículamente fácil de explotar. Simplemente tratas de loguearte usando SSH protocolo 1 y cualquier contraseña (excepto una en blanco) es aceptada. ¡No es sorpresa que el problema no duro mucho antes de que fuera descubierto y arreglado! Sendai cruza los dedos y comienza a teclear.

psyche> ssh -1 root@fw.ginevra-ex.it
The authenticity of host 'fw.ginevra-ex.it (XX.227.165.212)' can't be 
established.
RSA1 key fingerprint is 2d:fb:27:e0:ab:ad:de:ad:ca:fe:ba:be:53:02:28:38.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'fw.ginevra-ex.it,XX.227.165.212' (RSA1) to
         the list of known hosts.
root@fw.ginevra-ex.it's password:
#

¡Ahí esta ese feliz prompt otra vez! Sendai no tendrá que pasar días preparando y ejecutando un ruidoso ataque de fuerza bruta. El hace una pequeña danza root, que es similar a lo que algunos jugadores deportivos hacen cuando meten un gol. Nadie esta conectado al firewall en este momento, y el comando last muestra que la gente rara vez lo hace. Así que Sendai se toma su tiempo limpiando las bitácoras e instalando Shrax. Es extremadamente cuidadoso en no bloquear o de algún modo tirar el sistema, ya que este tipo de error podría ser desastroso.

Con una menos y dos por tomar, Sendai mueve su atención a la caja del gobierno japonés. El lanza el siguiente escaneo intrusivo de Nmap.

Un Escaneo Intrusivo de koizumi-kantei.go.jp

# nmap -sS -P0 -T4 -v -A -p0-65535 -oA koizumi koizumi-kantei.go.jp
Starting nmap 3.50 ( http://nmap.org/ )
Interesting ports on koizumi-kantei.go.jp (YY.67.68.173)
(The 65535 ports scanned but not shown below are in state: filtered)
PORT    STATE  SERVICE VERSION
113/tcp closed auth
Running: Sun Solaris 9
OS details: Sun Solaris 9
Nmap run completed -- 1 IP address (1 host up) scanned in 1791.362 seconds

¡Cielos! Este host esta aun peor (desde la perspectiva de Sendai) que Ginevra en que ¡ni siquiera tiene un solo puerto TCP abierto! Todos los puertos están filtrados, excepto el puerto identd (auth), que esta cerrado. Dejar el puerto 113 cerrado a menudo se hace para una mejor interoperabilidad con algunos (pobremente implementados) servidores de correo y de IRC. Aunque Sendai no puede conectarse con puertos cerrados, estos mejoran la precisión en la detección del SO. La falta de puertos TCP abiertos ciertamente harán el crackeo más retador. Debe haber otro modo. Sendai considera hacer una marcación de guerra (wardialing) con el rango de números del teléfono del departamento, aunque tantas llamadas a Japón ciertamente acumularan los cargos en larga distancia. Ingeniería social pudiera funcionar, aunque es un negocio riesgoso. Escaneo de UDP vale la pena intentarlo, aunque tiende a ser pecaminosamente lento contra cajas Solaris debido a su límite en la frecuencia del ICMP. Así que Sendai realiza un escaneo UDP con la opción -F que lo limita a alrededor de mil puertos comunes. Ninguna respuesta es recibida. Esta caja esta fuertemente asegurada. Otra idea es IPv6, particularmente desde este host está en Japón donde este protocolo es mas frecuentemente usado que en ningún otro lugar. Pysche no tiene una tarjeta de red IPv6, así que Sendai prueba esto desde su laptop usando uno de los servicios públicos de túnel gratuitos de IPv6. Estos proveen una dirección IPv6 y también ocultan su host origen IPv4. Usando la opción -6 para activar el modo IPv6, Sendai trata de nuevo escaneando el host.

Escaneo IPv6 contra koizumi-kantei.go.jp

# nmap -6 -sT -P0 -T4 -v -sV -p0-65535 koizumi-kantei.go.jp
Starting nmap 3.50 ( http://nmap.org/ )
Interesting ports on koizumi-kantei.go.jp 
(2ffe:604:3819:2007:210:f3f5:fe22:4d0:)
(The 65508 ports scanned but not shown below are in state: closed)
PORT      STATE    SERVICE               VERSION
7/tcp     open     echo
9/tcp     open     discard?
13/tcp    open     daytime               Sun Solaris daytime
19/tcp    open     chargen
21/tcp    open     ftp                   Solaris ftpd
22/tcp    open     ssh                   SunSSH 1.0 (protocol 2.0)
23/tcp    open     telnet                Sun Solaris telnetd
25/tcp    open     smtp                  Sendmail 8.12.2+Sun/8.12.2
37/tcp    open     time
79/tcp    open     finger                Sun Solaris fingerd
111/tcp   open     rpcbind               2-4 (rpc #100000)
512/tcp   open     exec
513/tcp   open     rlogin
515/tcp   open     printer               Solaris lpd
540/tcp   open     uucp                  Solaris uucpd
587/tcp   open     smtp                  Sendmail 8.12.2+Sun/8.12.2
898/tcp   open     http                  Solaris management console server
4045/tcp  open     nlockmgr              1-4 (rpc #100021)
7100/tcp  open     font-service          Sun Solaris fs.auto
32774/tcp open     ttdbserverd           1 (rpc #100083)
32775/tcp open     ttdbserverd           1 (rpc #100083)
32776/tcp open     kcms_server           1 (rpc #100221)
32777/tcp open     kcms_server           1 (rpc #100221)
32778/tcp open     metad                 1 (rpc #100229)
32779/tcp open     metad                 1 (rpc #100229)
32780/tcp open     metamhd               1 (rpc #100230)
32786/tcp open     status                1 (rpc #100024)
32787/tcp open     status                1 (rpc #100024)

Nmap run completed -- 1 IP address (1 host up) scanned in 729.191 seconds

¡Esto es exactamente lo que Sendai le gusta ver! Muchos de los servicios también podrían estar sin actualizar, ya que los administradores asumen que estos son inaccesibles, Desafortunadamente ellos olvidaron poner el muro de fuego para IPv6 en el mismo modo que lo hicieron con IPv4. Sendai usa un comando rpcquery habilitado para IPv6 para conocer mas sobre los servicios RPC que se están ejecutando, incluyendo varios que están usando UDP. El tiene varias avenidas de ataque disponibles, pero se decide en una vulnerabilidad de sadmind UDP. Sendai obtiene un exploit de los Metasploit de H.D. Moore (www.metasploit.com), y 10 minutos mas tarde esta haciendo la danza root de nuevo.

Hackeando .MIL

Esto hace que solo quede un host, y es ciertamente el más atemorizante. Hackear hosts italianos y japoneses desde los EU es una cosa. Hackear infowar.cols.disa.mil es totalmente otra. Y aun así es demasiado tarde para detenerse. Sendai lanza un escaneo intrusivo del host, y esta desilusionado de ver cero puertos abiertos. ¡No otra vez! Este host no tiene IPv6 y los escaneos con UDP resultan negativos. Sendai intenta otros tipos de escaneo mas avanzados incluyendo escaneo Fin (-sF), escaneo Window (-sW), y el ultra escurridizo escaneo Idle (-sI), todos sin resultado. El sabe que Knuth no aceptará dos de tres, así que rendirse no es una opción. Sendai amplia su búsqueda, mandando un escaneo intrusivo en cada host de esa subred de 256 hosts al emitir el comando nmap -sS -P0 -T4 -v -A -p0-65535 -oA disanet infowar.cols.disa.mil/24. La parte final /24 es notación CIDR que le dice a Nmap escanear las 256 direcciones. Routeo InterDominio sin Clases (CIDR Classless Inter Domain Routing) es un método para asignar direcciones IP sin usar las direcciones IP de clases como clase A, clase B o clase C.

Al ver los resultados, Sendai sonríe porque muchas máquinas no están tan fuertemente cerradas como infowar lo esta. Desafortunadamente, parece que tienen sus actualizaciones al día. Durante el siguiente día y medio, Sendai encuentra numerosas vulnerabilidades potenciales solo para fallar al momento de explotarlas porque el hoyo ya se encuentra parchado. Comienza a preocuparse. Entonces comienza a investigar webpxy.cols.disa.mil y descubre un Proxy Squid.

Un Proxy Squid es Descubierto

Interesting ports on webpxy.cols.disa.mil (ZZ.229.74.191):
(The 65535 ports scanned but not shown below are in state: filtered)
PORT     STATE SERVICE    VERSION
3128/tcp open  http-proxy Squid webproxy 2.5.STABLE3
Device type: general purpose
Running: FreeBSD 5.X
OS Details: FreeBSD 5.1-RELEASE (x86)
Uptime: 110.483 days

Muchas organizaciones mantienen un proxy para permitir a los clientes internos acceder a la World Wide Web. A menudo hacen esto por razones de seguridad, para que el material pueda ser escaneado por contenido malicioso o no deseable antes de ser entregado al cliente. Puede también mantener a los clientes aislados en la red interna de tal manera que atacantes no puedan llegar a ellos. Rendimiento y bitacorización de sitios son razones adicionales por la que los administradores prefieren este acercamiento. Desafortunadamente estos proxies pueden hacer mas daño que bien cuando están mal configurados. Sendai encuentra que la utilería Netcat (nc) no está disponible en Psyche, así que se conecta al proxy con el comando estándar Telnet y manualmente teclea una petición HTTP CONNECT.

Prueba de Proxy Abierto

psyche> telnet webpxy.cols.disa.mil 3128
Trying  ZZ.229.74.191 ...
Connected to ZZ.229.74.191.
Escape character is '^]'.
CONNECT scanme.insecure.org:22 HTTP/1.0

HTTP/1.0 200 Connection established

SSH-1.99-OpenSSH_3.8p1

Sendai está bastante satisfecho. El proxy le permite conectarse al puerto 22 (ssh) de un host arbitrario en Internet y el mensaje de inicio de SSH muestra que fue exitoso. ¡Así que quizás también le permita conectarse a la máquina DISA interna también! Un hacker de nombre Adrian Lamo fue notorio por públicamente entrar a sitios de alto perfil de esta manera. Muchas compañías le agradecieron por exponer sus debilidades, aunque el New York Times no apreció la ayuda sobre seguridad no solicitada y presentó cargos. Sendai trata de explotar este problema conectándose al puerto 22 de infowar.cols.disa.mil a través del proxy. El no ha sido capaz de llegar a ningún puerto en esta máquina, ¡pero a través del proxy funciona! Aparentemente se encuentra ahora detrás del firewall. Infowar esta ejecutando 3.7.1p2, para el cual Sendai no conoce de vulnerabilidades. Y tampoco tiene una contraseña, aunque la fuerza bruta siempre es una opción.

Con el nuevo poder encontrado de su proxy abierto, Sendai quiere completamente escanear todos los puertos de infowar y explorar toda la red del departamento. Maldice el hecho de que Nmap no ofrece una opción de rebote de proxy. Entonces Sendai recuerda un beneficio primario del código abierto. El puede modificarlo para satisfacer sus necesidades. Nmap ofrece un escaneo ftp de rebote (-b) que se conecta a un servidor FTP y entonces trata de explorar la red emitiendo el comando port para cada host y puerto interesantes. El mensaje de error dice si el puerto esta abierto o no. Sendai modifica la lógica para conectarse a un servidor proxy en vez del otro y para ejecutar el comando CONNECT. Después de una tarde de trabajo, el esta escaneando a través del proxy rangos IP internos, tales como los bendecidos por el RFC 1918 que son los bloques de red 192.168.0.0/16 y el 10.0.0.0/8, buscando por máquinas internas. El encuentra toda una intranet bajo el bloque de red 10.1, con un servidor Web primario interno en 10.1.0.20. Ese servidor es una mina de oro de información acerca de la organización. Sendai examina a fondo a través de manuales de empleado, páginas de noticias, archivos de correo de empleados, y más. En una lista de correos, un ingeniero de control de calidad pregunta a desarrolladores que traten de reproducir un problema en la máquina qa-sa11. La contraseña para la cuenta qa es buserror, añade servicialmente el ingeniero.

Sendai se mueve rápidamente para probar esta información sensitiva. Escanea qa-so11 y encuentra que los servicios Telnet y ssh están disponibles. Será simple hacer un telnet hacía el proxy y entonces emitir el mismo el comando CONNECT para conectarse dentro de telnetd en la qa-so11, pero Sendai no puede permitirse hacer eso. El quiere conectarse mas seguramente, usando ssh. Sendai descarga una librería compartida de HTTP proxy a Psyche, que permite a aplicaciones normales trabajar transparentemente a través del servidor proxy webpxy.cols.disa.mil. Ya con esto en su lugar, Sendai realiza una conexión ssh a qa-so11 y exitosamente se conecta como qa. El sistema esta corriendo Solaris 8 y tiene unos pocos usuarios conectados. Sendai inmediatamente lee /etc/passwd y encuentra que la primera línea consiste de “+::0:0:::”. Esto significa que el sistema esta usando NIS (antiguamente llamado YP) para compartir cuentas e información de configuración entre todo el departamento. NIS es algo maravilloso desde la perspectiva de Sendai. Permite el obtener nombres de usuarios y hashes de contraseñas de manera trivial usando el comando ypcat.

Obteniendo el archivo Passwd desde NIS

qa-sol1> ypcat passwd
root:lCYRhBsBs7NcU:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
smmsp:x:25:25:SendMail Message Submission Program:/:
listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/:
jdl:mY2/SvpAe82H2:101:100:James Levine:/home/jdl:/bin/csh
david:BZ2RLkbD6ajKE:102:100:David Weekly:/home/david:/bin/tcsh
ws:OZPXeDdi2/jOk:105:100:Window Snyder:/home/ws:/bin/tcsh
luto:WZIi/jx9WCrqI:107:100:Andy Lutomirski:/home/luto:/bin/bash
lance:eZN/CfM1Pd7Qk:111:100:Lance Spitzner:/home/lance:/bin/tcsh
annalee:sZPPTiCeNIeoE:114:100:Annalee Newitz:/home/annalee:/bin/tcsh
dr:yZgVqD2MxQpZs:115:100:Dragos Ruiu:/home/dr:/bin/ksh
hennings:5aqsQbbDKs8zk:118:100:Amy Hennings:/home/hennings:/bin/tcsh
[Cientos de líneas similares]

Con estos cientos de hashes de contraseñas a la mano, Sendai se dedica a crackearlos. Inicia John the Ripper en cada una de sus razonablemente modernas computadoras caseras. Cada máquina maneja un subconjunto de las cuentas, las cuales Sendai las ordenó con crypt(3) seed (usando los dos primeros caracteres del hash) para mejor eficiencia. En cinco minutos, docenas de las más fáciles contraseñas han sido crakeadas. Después el ritmo se decremento, y Sendai decide dormir.

La siguiente mañana, cerca de un tercio de las contraseñas se han descubierto. Sendai espera que al menos uno de los usuarios tenga una cuenta en infowar usando la misma contraseña. Desde qa-so11, Sendai intenta repetidamente de conectarse con ssh a infowar, tratando por turno cada una de las cuentas crackeadas. Los intentos fracasan uno tras otro y eventualmente se le terminan las cuentas crackeadas. Sendai no se rendirá tan fácilmente. Después de otras 24 horas, el ha crackeado casi la mitad de las cuentas e intenta de nuevo ssh. Esta vez, ¡entra usando la cuenta bruce! Esta es una caja Linux, así que Sendai trata el exploit brk() que fue tan exitoso con Psyque. No hay suerte. El pasa un par de horas intentando otras técnicas en vano. Entonces se pega en la frente al darse cuenta que bruce esta ya autorizado a ejecutar comandos como root en el archivo /etc/sudores. Sendai simplemente teclea sudo vi /etc/resolve.conf, como si estuviera planeando editar un archivo administrativo. Después se sale de vi a un shell de root al emitir el comando :sh. ¡Juego terminado! Shrax es rápidamente instalado

Lleno de orgullo y esperando por una cartera llena de verde, Sendai compone un correo electrónico a la dirección de Knuth en hushmail.com. Describe los sistemas y como accederlos por medio del cliente Shrax. Una versión encriptada de Shrax ha sido colocada en una página Web gratuita de Geocities que Sendai acaba de crear. Después obtiene la llave PGP de Knuth desde un servidor de llaves público y verifica que la huella digital corresponda con la que Knuth le había dado. Un par de minutos después el documento encriptado y firmado esta esperando en la bandeja de entrada de Knuth.

Triunfo y Nuevos Juguetes

La siguiente mañana Sendai se levanta para encontrar un glorioso correo de PayPal notificándole de un cuantioso depósito. Knuth mantiene su palabra ¡y muy rápido también! Sendai navega por eBay, buscando precios de monitores LCD enormes y PowerBooks de Apple. Estas son buenas cosas en las que gastar un montón de dinero y tener algo que lo demuestre, no como la inversión en Fiasco. Sendai esta subastando por una laptop de 17" cuando Knuth llama. Ya ha probado Shrax y ha verificado que las máquinas fueron totalmente comprometidas tal como se prometió. Repentinamente, Knuth deja caer una bomba, al mencionar que es hora de "comenzar el verdadero trabajo". Sendai se queda sin habla. Gasto semanas de esfuerzo sin parar para apoderarse de esas máquinas. ¿Qué es lo que Knuth dice? Aparentemente Knuth no tiene interés en esas cajas para nada. Solo fueron para probar que Sendai es técnicamente experto y confiable. "Pasaste con todos los honores", Knuth le dice en un fallido intento de regresarle su orgullo a Sendai. Le hace saber que esas máquinas harán una estupenda cadena Proxy para más seguramente apoderarse de los objetivos primarios. Sendai esta muy de acuerdo con esa idea. Esto minimiza sus constantes miedos de ser atrapado, y también le da valor a todos sus esfuerzos recientes.

Sendai acepta la siguiente tarea y Knuth comienza a escupirle todos los nuevos objetivos. En vez del loco acomodo de la última vez, todas estas pertenecen a bancos con fuerte presencia en África. Incluyen a los Bancos Amalgamados de África del Sur, Stanbic Nigeria, NedBank y el Banco Standar de Sudáfrica. Knuth quiere numerosas máquinas comprometidas con Shrax instalado, así como mapas de las redes para entender mejor a las organizaciones. Knuth aparentemente estará realizando el trabajo sucio, y Sendai solo necesita documentar los métodos de acceso y después salirse.

"Esto es mucho mejor que trabajar en la firma de auditoria de redes", piensa Sendai conforme empieza la primera de muchas y lucrativas intrusiones bancarias exitosas.

El Fin

Si disfrutaste de este capítulo, puedes optar por comprar todo el libro en Amazon (ahorra $16) para tener todos los otros 9 capítulos. Mis favoritos son el capítulo de FX sobre explotación de SAP y el de una sexy hacker llamada h3X, la guía de Jay Beale para hackear la base de datos de los registros de estudiantes de una universidad y las aventuras de Joe Grand en phreaking (hackeo de teléfonos).





[1] Su humilde autor es un miembro del proyecto Honeynet.

[2] Inyección de módulos del núcleo en Linux y Solaris se describe en http://www.phrack.org/show.php?p=61&a=10.

[3] El KeyGhost es solo uno de los muchos productos fácilmente disponibles en Internet. El KEYKatcher es otra opción popular.