Mostrando entradas con la etiqueta WarGame. Mostrar todas las entradas
Mostrando entradas con la etiqueta WarGame. Mostrar todas las entradas

domingo, 4 de octubre de 2015

Bandit Level 20 → Level 21



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit20
- Pass: GbKksEFF4yrVs6il55v6gwY5aVje5f0j



La descripción es la siguiente:


Básicamente, nos está indicando que disponemos de un binario, con bit suid habilitado para el user bandit21. 



Al ejecutarlo sin ningún parámetro actual, nos indica que hará una conexión TCP a un puerto dado sobre localhost y que si éste recibe el password del level 20 de la otra conexión, el password del level 21 será mostrado.

El siguiente diagrama clarifica un poco todo esto:


Por tanto, hay que:
  1. Iniciar una nueva conexión SSH.
  2. Levantar un daemond que permanezca en modo 'listenign' y que al recibir una conexión, envíe el password del level 20:



Como se puede ver, netcat es la herramienta perfecta para hacer esto.

Levantado el daemon, tan solo queda volver a ejecutar suconnect argumentándole el puerto para poder resolver el level:




Con el fin de clarificar un poco todo, he editado el título de las terminales como:
  • CLIENT: Para el terminal que ejecuta suconnect.
  • SERVER: Para el terminal que ejecuta el daemond.


Esto es todo por ahora. Hasta la próxima entrada!

domingo, 27 de septiembre de 2015

Bandit Level 19 → Level 20



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit19
- Pass: IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x



La descripción es la siguiente:


Como se puede observar, en este caso nos está diciendo que debemos hacer uso de setuid. Esto ya fue comentado de pasada en este otro wargame.

La resolución de este level es muy sencilla y pasa por pasarle al binario bandit20-do como parámetro actual, un comando que nos permita visualizar el contenido del fichero bandit20:



Aunque no es del todo necesario, podemos ver a continuación, el desensamblado del binario:



Hasta el próximo level!

sábado, 19 de septiembre de 2015

Bandit Level 18 → Level 19



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit18
- Pass: kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd


Este nuevo level introduce algo distinto a los anteriores. Si retomamos parte del texto del nivel anterior, vemos que nos avisa de algo:

NOTE: if you have solved this level and see ‘Byebye!’ when trying to log into bandit18, this is related to the next level, bandit19

De manera tal que si hacemos la conexión SSH, obtendremos el comentado Byebye!:



Veamos que pistas nos proporciona el enunciado de este level:


Todo parece indicar que el fichero .bashrc (fichero que se carga al iniciar una 'shell de login interactiva) ha sido modificado de tal manera que no nos proporcione un shell. Por tanto, lo que debemos hacer es forzar la conexión SSH argumentando la shell que deseamos usar de la siguiente manera:



El resto, es sencillo. Tan solo debemos leer el contenido del fichero 'readme'.

Esto es todo por el momento!



domingo, 13 de septiembre de 2015

Ejecutar ELF 32 bits en arquitectura de 64 bits


Me ocurre a menudo que tengo que realizar alguna acción que alguna vez hice y que al tiempo debo repetir y claro, como generalmente no las anoto, pues me toca volver a bucear por la web hasta que encuentro lo que necesito.

Especialmente esto me ocurre cada vez que participo en algún CTF y sinceramente, me da bastante coraje tener que volver a dedicar tiempo a algo que en su día ya se lo dediqué.

Es por esto, por lo que comenzaré a escribir entradas con pequeñas 'recetas' de aquello que no quiero volver a buscar cada vez que lo necesite hacer.

Por tanto, abro esta nueva categoría con una receta que me permite ejecutar ELF de 32 bits en arquitecturas de 64 bits, como es el caso de la distribución Kali Linux 2.

  1. Compruebo que arquitecturas tengo habilitadas:
    dpkg --print-foreign-architectures
  1. Si en la lista aparece i386, voy al paso 5. En caso contrario, la añado:
    dpkg --add-architecture i386
  1. Actualizo:
    apt-get update
  1. Por último la instalo:
    apt-get install sl-modem-daemon:i386
  1. Fin del proceso.

sábado, 20 de junio de 2015

Bandit Level 17 → Level 18



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit17
- Pass: xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn



Los objetivos son claros:


La resolución de este reto es sencilla. Basta con hacer uso del comando grep:



Esto es todo por ahora. ¡Hasta el próximo reto!

lunes, 2 de febrero de 2015

Entrevista a Sergio Llata a.k.a. thEpOpE




Con esta entrada, intento recuperar el flujo de entrevistas a personas que de alguna manera, me aportan y hacen crecer en lo técnico y en lo humano. 

Esta vez, lo haremos de la mano de Sergio Llata (@sergiollata) a.k.a. thEpOpE. 

Fue en la rooted 2k14, donde tuve el inmenso placer de conocerle personalmente y en donde pude contemplar brevemente su enorme potencial.


Desde entonces, no solo hemos mantenido una buena amistad, sino que además hemos conseguido juntar y formar un equipo con unas cuantas mentes inquietas, del cual posiblemente hable en próximas entradas. Sin más preámbulos empezamos con la interview.


  • ¿Cuéntanos un poco a que te dedicas en tu día a día? 
Todo empezó allá en el año 1974, en un pueblo que dista 12 km de Santander (España). Allí nacía un servidor, siendo el tercero de 4 hermanos... (esto parece el inicio de una novela). Bueno, vamos al grano de la pregunta: actualmente tengo 40 años, y no me dedico a nada relacionado con la informática, o al menos de un modo directo. Aunque es algo que siempre se ha rumoreado de mí tanto en las listas de CracksLatinoS, o en el canal #crackers del IRC-Hispano, para salir de todad duda he de decir que, efectivamente, desde el año 2000 soy sacerdote católico. Realmente mi día a día consiste en ejercer mi sacerdocio como párroco en una localidad de la diócesis de Santander.
  • ¿De dónde viene o de dónde sacaste el nick thEpOpE? 
El nick creo que está claro :) En el año 1998, cuando aún estaba estudiando en el seminario, mi hermano puso un modem 33k en casa, y de este modo empezamos a tener Internet. Anteriormente siempre había firmado como DJ Dos, S.O.S. , o simplemente con mi nombre. A raíz de conectarme al IRC, tuve que elegir un nick, y ahí estuvo la pega. Inicialmente me atrajo la idea de Bishop, por el doble significado que tiene en castellano. Pero pensé que siempre habría alguien que podría ponerse un nick en jerarquía superior, y además me parecía que iba a hacer uso del nick de un modo no ofensivo a lo que significa. Además fundé el #canal_catolico también en IRC-Hispano, lo cual daba una identidad interesante. De ahí surgió mi nick inicial, que originalmente tenía corchetes [ThePope] ; y finalmente, cuando quité los corchetes lo dejé con una grafía un poco más h4xor, y que además era el estilo que adopté para la página con tutoriales (y otras lindezas ;) que tuve enlazada desde la web de karpoff. En mi caso he usado otros nicks, como Horeb y MrKhaki.
  • Estoy deseando que nos cuentes como fueron tus comienzos, especialmente en lo que a términos como 'spectrum', 'dibujo', 'música', 'scene', ...
Los comienzos son fáciles de explicarlos. Cuando yo tenía 13 años a mi hermano alguien le regaló un Spectrum+ de 48kb. Hay que pensar que en aquella época en mi casa no había electricidad a 220V, y teníamos que usar un transformador, junto con la única TV que había en casa. Aunque los juegos que venían de demostración eran divertidos, pronto me cansé de ellos, y empecé a experimentar y probar los programas del manual. Así es como poco a poco fui haciendo mis primeros pinitos en Basic de Sinclair. Pronto descubrí que con Basic poco o nada se podía hacer, y aunque la MicroManía tenía bastante enjundia como revista de juegos, cuando mi hermano empezó a la universidad trajo un día una revista que regalaban una cinta.. MicroHobby. Eso fue el lanzamiento total: listados en ensamblador de z80, artículos de programación, herramientas, consultorio de dudas, etc. En el instituto pude intercambiar un montón de material con gente que tenía la misma afición, pero desgraciadamente debía ser casi el único que le gustaba el ensamblador y listados hexadecimales.
Fue a raíz de los concursos de MicroHobby como me puse a hacer los primeros pinitos en dibujos pixel a pixel, así como destripar algunos juegos, en busca de los ansiados pokes de vidas infinitas, o quitar las limitaciones de tiempo que tenían las demos jugables que venían en MicroHobby. Debido al concurso de aventuras conversacionales que hizo MicroHobby me enrolé en ese mundo también, haciendo muchas colaboraciones en el fanzine Z for Zero. En este período llegó a casa un Macintosh Classic, y posteriormente un PC - 386. Fueron dos ordenadores que me introdujeron en el mundo de formatos de sonido, formatos de gráficos, compresores, Motorola 68000...
Justo al año siguiente yo empecé a la universidad, me matriculé en Físicas. A decir verdad lo hice con la intención de hacer Física Electrónica, pero la idea del seminario y la vocación llevaban tiempo en la mente y en el corazón. Y cuando terminé el segundo curso en la universidad, me fui al seminario. En el seminario teníamos una sala con 2 ordenadores Macintosh :) Y posteriormente nos permitieron tener ordenador personal en la habitación :) En ese periodo desarrollé una aventura conversacional para PC, desarrollé un sistema de sonido para PC que permitía incluir sonidos y música en este tipo de juegos (hay unos cuantos juegos por ahí que llevan música mía):
e hice una librería para QBasic que permitía gestionar el CD-Rom, SoundBlaster, ratón, etc...
Al mundo de la scene ... es otra historia muy larga. Porque realmente fue la evolución desde los IRC de ingeniería inversa. Al participar en las parties, nos juntamos unos cuantos que nos gustaba este tema (inicialmente Cathedral :O , y posteriormente Nocturns). A mí me tocó la parte de sonido, a decir verdad, me dediqué a reversar motores de sonido de intros de 64kb, y de 4kb, para después desarrollar el nuestro propio.
  • ¿Cómo ha sido tu evolución en el mundo del (Hack | Crack)ing?
No me considero hacker. Más bien siempre me he considerado cracker. Y no por romper cosas... sino porque "lo virtual" me ha resultado siempre muy etéreo. Me ha gustado más todo lo que se pueda toquetear en local.
Mis inicios en esto indudablemente están en la etapa del Spectrum, cuando usaba el MONS para desensamblar y poder buscar los pokes de los juegos (un parche en toda regla, vamos). También para buscar las contraseñas y poder jugar a las segundas partes sin haber terminado la primera. Después estuve en relación con todo lo de Macintosh (tenía un debugger en la propia instalación del sistema 7 MacsBugs , y un editor de recursos que desensamblaba los recursos de código), y cuando tuve mi 486 cayó por mis manos una versión del win32dasm. La etapa del IRC trajo el resto: sice, trw2000, ollydbg... A todo esto hay que añadir que anteriormente a Internet, no había más posibilidad que la biblioteca de la universidad, y un montón de cintas de spectrum y diskettes que intercambiábamos por correo ordinario.
  • Sabemos de buena tinta que fuiste parte importante en grupos de mucha importancia tales como TNT o WkT! ¿qué nos puedes contar de tu paso por esos te@ms? y sobre todo  ¿en que crees que habéis podido influir para las actuales generaciones?
Bueno, parte importante no me he considerado nunca. En TNT coincidí con miembros españoles, como Xasx (fundador de TNT), Metamorfer, SkUaTeR, y Karlitoz. Salvo con Metamorfer, he tenido la suerte de poder dialogar personalmente y compartir mesa con el resto. TNT me aportó el vértigo de lo que eran originalmente los 0days. Hoy sale un programa, y en menos de 24 horas había que sacar la medicina. Mi conexión de Internet no daba para tanto, y mi tiempo tampoco.
A través del canal #crackers de IRC-Hispano pudimos hacer varias kedadas en la Euskal
Party. La primera fue en la edición 8 de la Party. A partir de ahí entré en contacto con gente de WkT!. En esta época hice buenos amigos de faena donde coincidíamos en la Party: Uri (int3pids), Xezaw (48bits), Shotgan (Nocturns), Ripe (7a69 ezine), Dreg (fr33project), noukeys.
MrBlack hizo campaña de reclutamiento en una party, y finalmente fuimos tres miembros de TNT quienes adquirimos colores :) Si TNT era vértigo, WkT! era madurez. Ante todo se apreciaba lo que cada uno hacía, porque aportaba mucho al resto. Buenos tutoriales, buenas herramientas, nuevas líneas de investigación. Y todo en español. De WkT! guardo un gratísimo recuerdo, y eso que me tocó en la última época, justo cuando se apagó...
No sé a qué nivel hayamos podido contribuir entre todos a las actuales generaciones. Cuando Shaddy dijo en su entrevista que un tutorial mío había marcado un antes y un después en cómo hacer él los suyos, me sentí orgulloso de saber que el tiempo que invertí en hacer aquello había merecido la pena para otros.
  • Dinos que es lo primero que te viene a la cabeza si te pregunto por:
    • Ingeniería Inversa: hexadecimal, estructuras de datos
    • Hacker: admiración por lo que hacen...
    • amn3s1a: diversión a raudales, y buena gente... Como tú dijiste en cierta ocasión: me ha quitado 15 años de encima
    • Mr. Snow: un buen amigo, y una bestia parda. Cuando hacemos retos juntos nos complementamos muy bien. También me viene a la cabeza alguna noche loca por Bilbao (El Alicates, El Siete, y Jade ...)
    • Marcan: valium :) A gente como Marcan no se les debería permitir salir de este país. Debería poner por escrito y con lenguaje humano todo lo que hierve en esa cabeza.
    • Euskal Encounter: Añoranza... con menos participantes era más divertido. Actualmente es el punto de encuentro con otros grupos, y gente "de toda la vida".
    • DemoScene, Intro y 4 K.: Asombro, emoción, arte, cultura digital
    • Criptografía: "Tú verás lo que haces, pero yo a la carcel no voy a verte" (la frase de mi madre cuando ve determinadas herramientas en pantalla). Realmente es lo que ha dado sentido a las pocas matemáticas que sé.
    • Matemática: Qué pena que las he cogido cariño ahora... son el lenguaje del orden
    • Amistad: "Un amigo es aquel que conoce todo de ti, y aún así te sigue queriendo". De estos he tenido muy pocos. La informática me ha dado amigos que los aprecio como hermanos (eSn-mIn, Jade, noukeys)
    • CTF: ¿el fin de semana? ¡¡madre mía, a ver qué ratos me quedan libres para poder echar un cable al grupo!!
  • ¿Cual es el lenguaje de programación que más te gusta y por qué? 
Por herencia, el Basic (he dicho Basic, no VBasic :p). Actualmente me gusta mucho el
python, me parece un lenguaje de aprendizaje rápido, y versátil. A decir verdad apenas programo, y aunque me cuesta mucho escribir 5 líneas seguida en él, el C me ha parecido siempre la mejor opción para cosas grandes y serias. Para des-programar lo tengo claro, ensamblador (da igual de qué máquina sea :), y de hecho sigo haciendo algunas cosas directamente en ensamblador.
  • ¿Cómo percibes el 'mundo hacker' de hoy en día?, ¿Qué cambiarías de él? y ¿Qué no? 
Lo percibo monetizado, convertido en moneda de cambio, y todo lo que se monetiza se oxida. Ahora cualquiera que use Kali o haya hecho un curso de 30 horas sobre seguridad en sistemas, ya se considera hacker... :S Cambiaría muchas cosas, para empezar a quienes hacen las leyes en este país; y también todo ese lenguaje importado con títulos y palabrejas raras... ¿a quién se le ocurre autodenominarse "researcher"? ¿Dónde está la creatividad original y 'typical spanish' del Jamón y el Vino?. No cambiaría a las personas concretas que siguen dándole duro, con ganas de abrir nuevos caminos, y que siguen marcando nuevas fronteras...
  • ¿Qué consejos le darías a los que empiezan o están comenzando? 
Leer, preguntar, probar. Volver a leer, volver a preguntar, volver a probar. Aunque digan que el tiempo es oro, prefiero la paciencia, que es una virtud. Cuanto más aprendas, más te darás cuenta de lo que aún te queda por aprender.
  • ¿Cómo ves tu futuro? 
No lo veo :) No soy adivino ni clarividente, pero espero no perder nunca la curiosidad de conocer, saber, y cambiar en mí lo que sea un obstáculo para los demás.
  • ¿A quién admiras? y ¿a quién no?
Admiro a las personas que se entregan desinteresadamente, especialmente en favor de otros. No admiro a quienes quieren sacar tajada...
  • ¿Nos recomiendas algún libro en especial?
Pues si digo el Evangelio de Marcos quizás no lo toméis en serio, pero os lo recomiendo. El manual de Spectrum +2, ahi está mi base...
  • ¿Qué tipo de música te gusta?, ¿Podrías recomendarnos alguna canción?
Me gusta prácticamente todo, el pop rock en español, la música de los 80; pero me motiva bastante la música electrónica y el hardstyle. Por lo experimental en el momento en que se publicó y que siempre me ha parecido una genialidad: Un mundo separado por un mismo Dios, de Nacho Cano. Algo más actual, y que me ha parecido motivadora para los CTF : Kronos & Drone, "Level 2" 
  • ¿Qué opinas de CrackSLatinos y de su creador (Sr. Ricardo Narvaja)?
Me parece que ha hecho una labor de continuidad bastante positiva, y ha conseguido mantener una comunidad internacional unida por el mismo idioma. Del modo en que se hizo inicialmente prefiero no opinar. A Ricardo no lo conozco personalmente, ni tampoco he coincidido chateando con él como para tener una idea. Como persona no puedo opinar, pero por el hecho de haber estado ahí haciendo lo que ha hecho de modo altruista ya merece mi más sincero respeto.
  • ¿A quién te gustaría que hiciésemos la próxima entrevista?
A Uri o Xezaw.
  • ¿Hay algo que no te hayamos preguntado y que te gustaría decir?
crAck & prAy </mentiras>


Aquí termina la entrevista y no quiero finalizar sin dejaros algunos de los fabulosos trabajos con los que nos ha obsequiado Sergio:


Quiero dar las gracias a todos aquellos que han colaborado en la realización de esta interview, especialmente a C1b3r Pr13st! (@ciberpriest)

Nos vemos en la próxima!



jueves, 18 de diciembre de 2014

Leviathan Level 6 → Level 7


Vamos a por el último nivel de este WarGame y para ello hacemos una conexión SSH a:

- Host: leviathan.labs.overthewire.org 
- User: leviathan6
- Pass: UgaoFee4li


En este último nivel seguimos teniendo la misma información que la del nivel anterior, nada de nada.

Para empezar, vamos a ver como se comporta el ejecutable:



Está claro que el objetivo es buscar el 'digit code' que piden y para ello usaremos gdb para hacerle ingeniería inversa al binario e intentar obtener el código:



Básicamente se puede apreciar como lo que se hace es pasar a entero el código argumentado para después compararlo con el contenido de pila [ESP+0x1C] que es en donde está el código buscado y que en este caso es 7123.

Vamos a comprobar si estamos en lo cierto:










Perfecto! La password es: ahy7MaeBo9

Aunque ya no es necesario, voy a poner aquí la captura de los diagramas de bloques de este nivel, sobre todo porque conceptualmente es infinitamente mejor que el desensamblado de gdb: 





¡Otro WarGame terminado! Muy sencillo pero ideal para ir adquiriendo buenas costumbres.

No obstante, antes de terminar la entrada, veamos si con esta nueva credencial podemos hacer una conexión a leviathan7:



Pues parece que sí, aunque lamentablemente ya es tarde para obedecer ;)

Ahora sí que sí ... ¡Hasta el próximo WarGame!


Leviathan Level 5 → Level 6


Definitivamente, el grueso de estos niveles está en el uso y abuso del bit suid.

Como de costumbre, los datos de conexión son:

- Host: leviathan.labs.overthewire.org 
- User: leviathan5
- Pass: Tith4cokei

Y la misma información que la del nivel anterior nada de nada.

En este caso, tenemos un binario llamado levithan5 con el bit suid activo para leviathan6. Lo que éste hace a groso modo, es leer el contenido de un fichero /tmp/file.log, imprimir su contenido por pantalla y borrarlo después.

En la siguiente captura, se puede apreciar su comportamiento:




Aquí está claro que lo que hay que hacer es que file.log sea un enlace simbólico a /etc/levithan_pass/leviathan6 puesto que el binario tiene los permisos necesarios para leer su contenido:



Esto todo por el momento. ¡Hasta el próximo nivel!




miércoles, 17 de diciembre de 2014

Bandit Level 16 → Level 17



Continuamos con un nuevo nivel, el cual promete y mucho.


Como siempre, los datos de conexión son:

- Host: bandit.labs.overthewire.org 
- User: bandit16
- Pass: cluFn7wTiGryunymYOu4RcffSxQluehd

Los objetivos son claros:


Según la información que nos dan, este nivel es muy similar al anterior con la diferencias de que ahora nos dan un rango de puertos [31000, 32000]. Además nos dictaminan los pasos a seguir.

Por tanto, comenzamos por escanear el rango de puertos para determinar cuales de ellos está activos haciendo uso del comando 'nmap':


Observamos que existen cinco puertos con servicios habilitados, así que el siguiente paso será determinar cual de ellos usa SSL:



Ya sabemos que los puertos 31518 y 31790 utilizan SSL, Por prueba y error (solo son dos) determinamos cual de ellos y le enviamos la password actual:



Es fácil darse cuenta que lo que nos han dado es la clave privada con la que hacer una conexión SSH a bandit17, por tanto, la guardamos en un fichero para darle persistencia y así poder usarla posteriormente:



Ahora establecemos la conexión SSH:



Y obtenemos un error más que evidente. Los permisos que le dimos al fichero que almacena la clave son demasiado poco restrictivos, por tanto, modificamos los permisos y repetimos:



Ahora sí. Ya solo nos queda obtener la password:



Parece que nivel a nivel se va aumentando la motivación de estos y se van utilizando nuevas herramientas muy usadas en entornos reales.

Esto es todos por ahora. ¡Hasta el próximo nivel!



Leviathan Level 4 → Level 5


Parece que este WarGame va de bits suid. Vamos a ver que nos tiene preparado este nivel.

Como ya viene siendo habitual, los datos de conexión SSH son:

- Host: leviathan.labs.overthewire.org 
- User: leviathan4
- Pass: vuH0coox6m

Y la misma información que la del nivel anterior nada de nada.

Esta vez tenemos esto:



Muy sencillo este nivel. A simple vista se ve que nos estan dado el valor ASCII de cada letra en binario. Por tanto, hacemos la conversión y obtenemos la password:

01010100 = 0x54 = T
01101001 = 0x69 = i 
01110100 = 0x74 = t
01101000 = 0x68 = h
00110100 = 0x34 = 4
01100011 = 0x63 = c
01101111 = 0x6F = o
01101011 = 0x6B = k
01100101 = 0x65 = e
01101001 = 0x69 = i

00001010 = 0x0A = \n

El último carácter no hay que tenerlo en cuenta pues es el de 'nueva línea'.

¡Nos vemos en la próxima entrada!