|
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.. |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
|