Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Desafio #11 - Viernes Negro

  • 8 Respuestas
  • 5332 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado xyz

  • *
  • Moderador
  • Mensajes: 486
  • Actividad:
    15%
  • Reputación 10
    • Ver Perfil
    • Under0cde
« en: Diciembre 01, 2017, 01:15:27 am »
Bienvenidos Underc0ders !!



En esta oportunidad traemos nuevos retos y sorpresas !

El que gane mayor cantidad de desafios de Viernes Negros en el mes de Diciembre, tendrá un premio de 10 dólares o su equivalente por envío Paypal.

¿Quienes pueden participar?  TODOS.

Quienes participan por el premio, todo UNDERC0DE EXCEPTO:

  • Administrador
  • Co-Administradores
  • Xyz

En el foro, encontrarán las herramientas logicas necesarias para resolver los wargames.

Pueden utilizar sitios externos y aplicaciones propias para llegar a la solución.

Condiciones para participar por el premio:

  • Resolver todos los desafios propuestos por viernes (Actualización).
  • Quien resuelva mayor cantidad de retos, será el ganador (Actualización).
  • De haber empate, se tendrá en cuenta las soluciones de los desafíos.
  • Enviar por MP las resoluciones o enlaces de capturas de pantalla.
  • En lo posible, mandar todas las respuestas en un solo MP y el procedimiento utilizado.
  • O pueden enviar soluciones a medida que vayan encontrando.


Aclaraciones.

  • Se tendrá en cuenta el órden de recepción de los MP con las soluciones correctas para anunciar al ganador.
  • Asunto del MP a enviar: "Viernes Negro N° - Desafios (ej. 1,2,3,4,5 o 1,2,3)".
  • Las preguntas/respuestas, que suban en éste post antes de finalizar el Domingo, serán eliminadas.
  • No se brindará ayuda.
  • El [email protected], deberá explicar como resolvió cada desafio.
  • Si otro participante quiere mostrar soluciones alternativas, puede hacerlo luego de que el item anterior sea expuesto.
  • Luego de ello, podrán utilizar el post, para realizar preguntas.

Actualización.
  • El ganador del premio será aquel que resuelva mas retos de viernes negros.
  • En caso de haber empate, definirán por las soluciones expuestas.



Si en algún reto, notan algo erroneo, envíen por MP la solución o corrección (los que han enviado, está correcto)



SE ANUNCIARA AL GANADOR EN EL TRANSCURSO DE LA PRIMER SEMANA DE ENERO DEL 2018.


Reto 1. Hallar el flag.
Código: [Seleccionar]
Hash: ED9D3D832AF899035363A69FXD53CD3BE8F715Y01CZ
Reto 2. Obtener el mensaje
Código: [Seleccionar]
RW4gTGEgY2ltQSBkZSBsYSBjb2xpbmEgR3VhcmRhIHVuYSBkb25jRWxsYSB1TiBhbXVsZVRvIGFuY0VzdHJhbC4gRXMgdW4gdGFsaVNtYW4gcVVlIGlOdm9jYSBhIE1hb2toYWksIHVuIEFudGlndW8gZ3VhcmRpYW4gZGVMIGJvcXVlIFdhZHVkLCBsbEFtYWRvIGEgcFJvdGVnZXIgc3VzIHJFbW90b3MgZG9taW5pb3Mu

Reto 3. Decifrar el mensaje.
Código: [Seleccionar]
3334 51115411 11 431542 414515 3215 511543141143 22114434 353442 312415124215
Reto 4. Encontrar el flag.



Enlace de la imagen: imgur.com/a/i3F5S

Reto 5. Dado el siguiente string, obtener unicamente los números.
  • Crear un algoritmo y programarlo en el lenguaje que te sea cómodo.
  • Enviar la solución en una captura de pantalla compuesta por: Algoritmo y Output

Ejemplo:
Código: [Seleccionar]
INPUT: A1B2C3D4E5
OUTPUT: 12345

String:
Código: [Seleccionar]
kn8XontEa4EdJvwtWqHun6QRDBlOdl5cGLoLuuMneBDRzhONWDkBGgCDIvaEhZfq11Xf7t1vsQXmuSnjuUJ2YFAvbAaOlpf65OiwBGhvey3h4cIUTZkhGemMI5IRyoyXPX7tMBwdQmFC40Qq0rlJbuhojwDH9wy86DiU5c48ECg2ZVbGosQdOGm28ncpcEBZynFkIKnKFJPbMZAjCrLejqHZTwhgReKI9I1JBct4J9gvuOqyG7VOoQsNrRCgZ3zmOHJ7znUwLz2GcBoQmFXl6FzQnMtVEzUB5Gd4cU3K3k8g


Que comiencen los juegos !
« Última modificación: Diciembre 03, 2017, 10:09:10 pm por xyz »

Conectado xyz

  • *
  • Moderador
  • Mensajes: 486
  • Actividad:
    15%
  • Reputación 10
    • Ver Perfil
    • Under0cde
« Respuesta #1 en: Diciembre 01, 2017, 01:18:27 am »
« Última modificación: Diciembre 03, 2017, 10:14:44 pm por xyz »

Conectado xyz

  • *
  • Moderador
  • Mensajes: 486
  • Actividad:
    15%
  • Reputación 10
    • Ver Perfil
    • Under0cde
« Respuesta #2 en: Diciembre 01, 2017, 01:19:45 am »
Tabla de puntos:

  • EddieFog - 4 puntos.
  • Once - 4 Puntos.
  • Lechugo - 4 Puntos.
  • Rollth - 4 Puntos.
  • Andrey - 4 Puntos.
  • Sadfud - 3 Puntos.
  • Mortal_Poison - 2 puntos.
  • Rush - 2 puntos.

Se enviará un MP a cada usuario, indicando que retos debe explicar.
« Última modificación: Diciembre 04, 2017, 11:49:19 am por xyz »

Desconectado EddiFog

  • *
  • Underc0der
  • Mensajes: 59
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Diciembre 04, 2017, 12:31:26 pm »
Hola muchachos en esta oportunidad estare explicando los games 3,4 y 5 :D

Game 3
Este se resolvia de una manera muy sencilla, de hecho ya se usó el mismo método en un viernes negro anterior pero para los que no sepan, este game se resuelve con la famosa tabla de polibio para codificar letras en numeros agrupandolas de pares dentro de una tabla de 5 x 5.
Esta es la famosa tabla en cuestión:
12345
1ABCDE
2FGHI,JK
3LMNOP
4QRSTU
5VWXYZ
Ahora tendremos que separar el mensaje en pares, quedaría algo así:
(33)(34) (51)(11)(54)(11) (11) (43)(15)(42) (41)(45)(15) (32)(15) (51)(15)(43)(14)(11)(43) (22)(11)(44)(34) (35)(34)(42) (31)(24)(15)(12)(42)(15)
Se descifra fila y columna, tomaremos la primera palabra como ejemplo.
(33) En este caso seria fila 3 y columna 3 lo que nos da la letra N
(34) En este caso seria fila 3 y columna 4 lo que nos da la letra O

Si nos ponemos a decifrar par por par, nos queda este mensaje:
NO VAYA A SER QUE ME VENDAS GATO POR LIEBRE



Game 4
Para resolver este solo falta tener buen ojo  ;D ya que la solución se encontraba en la parte superior izquierda de la imagen, precisamente en este lado...
Entonces la solución para este game sería: BUSCAME Y ME ENCONTRARAS



Game 5
Al tratarse de programación, adjunto la imagen de mi código para poder explicarlo :D

Bueno, mi código esta hecho en java y la verdad que es muy simple, lo primero que se hace es leer la cadena tipo String que se va a convertir y esta cadena se almacena en la variable "cad" (previamente declarada), luego se usa el método "toCharArray" para pasar esa cadena a un arreglo de tipo char y se guardan caracter por caracter, todos separados, gracias a esto es que luego se hace un recorrido for each a este arreglo pero con una variable tipo char indicando que tipo de dato es el que vamos a buscar y que nos servira al momento de establecer una condición if usando el metodo "isDigit" (un método que devuelve un valor boolean) y pasandole nuestra variable tipo char, y por último si encontró un dígito (si devolvió True) lo que hace es reportarlo, de esta manera se imprimen todos los números que están en la cadena.



Gracias por leer :D
« Última modificación: Diciembre 04, 2017, 02:55:38 pm por EddiFog »
El hacking es un privilegio.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #4 en: Diciembre 04, 2017, 12:52:46 pm »
Reto: 1

La pista nos dice claramenjte que es un hash, así que lo primero es contar el número de caracteres para hcernos una idea de qué tipo de hash es. El resultado, es que hay 43 caracteres. Como no conozco ningún hash de 43 caracteres, el más cercano es sha1 con 40. Inspeccioné el hash buscando información inyectada. (es fácil saberlo, porque en el caso de ser sha1, todos los caracteres deben ser hexadecimales 0-9A-F)
Al final del hash, se encuentran los caracteres XYZ que una vez eliminados dan una longitud de hash de 40 caracteres hexadecimales. El siguiente paso es pasar este hash por algtuna base de datos online. En mi caso elegí https://crackstation.net/

El resultado:    shadow

Reto: 2

AL ver este reto lo primero que pensé fue en usar de primer mano Base64, el resultado:

Citar
En La cimA de la colina Guarda una doncElla uN amuleTo ancEstral. Es un taliSman qUe iNvoca a Maokhai, un Antiguo guardian deL boque Wadud, llAmado a pRoteger sus rEmotos dominios.

Lo que llamó mi atención fueron esos caracteres en mayúscula, que al aislarlos nos dan el mensaje: ELAGENTEESUNMALWARE

Reto: 5

Yo usé Python para solucionarlo:


La solución salió en una sola línea, lo que hago es simplemente filtrar del mensaje sólo los caracteres que corresponden a un número (función filter) este filtrado corresponde a una lista que convierto a un texto usando el método join de los strings en Python.

Saludos!

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 876
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #5 en: Diciembre 04, 2017, 12:59:10 pm »
Aquí mis soluciones:




Nos dan el siguiente hash: ED9D3D832AF899035363A69FXD53CD3BE8F715Y01CZ

Si nos fijamos, aparenta ser alguno de los hashes más típicos, MD5, SHA1, etc. Pero hay algunos caracteres que no son hexadecimales. Por lo que los borraremos del String e intentaremos crackearlo con: https://crackstation.net/





Nos dan el siguiente String:
RW4gTGEgY2ltQSBkZSBsYSBjb2xpbmEgR3VhcmRhIHVuYSBkb25jRWxsYSB1TiBhbXVsZVRvIGFuY0VzdHJhbC4gRXMgdW4gdGFsaVNtYW4gcVVlIGlOdm9jYSBhIE1hb2toYWksIHVuIEFudGlndW8gZ3VhcmRpYW4gZGVMIGJvcXVlIFdhZHVkLCBsbEFtYWRvIGEgcFJvdGVnZXIgc3VzIHJFbW90b3MgZG9taW5pb3Mu

Podemos que es base64, así que haremos el decode aquí:
https://www.base64decode.org/

El resultado es el siguiente:
En La cimA de la colina Guarda una doncElla uN amuleTo ancEstral. Es un taliSman qUe iNvoca a Maokhai, un Antiguo guardian deL boque Wadud, llAmado a pRoteger sus rEmotos dominios.

De aquí si nos fijamos hay mayusculas donde no debería haberlas, las juntamos todas:
EL AGENTE ES UN MALWARE




Solo hay que echar un buen ojo ya que arriba a la izquierda pone: BUSCAME Y ME ENCONTRARAS





Yo he usado este código en C.

Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4.  
  5. typedef struct{
  6.    char str[2000];
  7. }string;
  8.  
  9. void obtenerNumeros(string primero){
  10.    int i;
  11.    for(i = 0; i <= strlen(primero.str); i++){
  12.       if(isdigit(primero.str[i]) != 0){
  13.          printf("%c", primero.str[i]);
  14.       }
  15.    }
  16. }
  17.  
  18. int main(){
  19.    string pr;
  20.    printf("INPUT: ");
  21.    scanf("%s", &pr.str);
  22.    printf("\nOUTPUT: ");
  23.    obtenerNumeros(pr);
  24. }

Basicamente comprueba caracter por caracter si es numérico con "isdigit()" y en caso de que lo sea lo imprime. Este es el resultado:

84651171265345740098654822891497372654338



Saludos.

Desconectado sadfud

  • *
  • Moderador
  • Mensajes: 182
  • Actividad:
    0%
  • Reputación 9
    • Ver Perfil
    • Blog
  • Skype: SadFud
« Respuesta #6 en: Diciembre 04, 2017, 02:55:03 pm »
Buenas

Dejo la solucion al quinto, es muy parecido al de EddiFog, tambien en java pero sin hacer una conversion a array



Código: Java
  1. public class algoritmo {
  2.  
  3.         public static void main(String[] args) {
  4.                 // TODO Auto-generated method stub
  5.                 String str = "kn8XontEa4EdJvwtWqHun6QRDBlOdl5cGLoLuuMneBDRzhONWDkBGgCDIvaEhZfq11Xf7t1vsQXmuSnjuUJ2YFAvbAaOlpf65OiwBGhvey3h4cIUTZkhGemMI5IRyoyXPX7tMBwdQmFC4"
  6.                                 + "0Qq0rlJbuhojwDH9wy86DiU5c48ECg2ZVbGosQdOGm28ncpcEBZynFkIKnKFJPbMZAjCrLejqHZTwhgReKI9I1JBct4J9gvuOqyG7VOoQsNrRCgZ3zmOHJ7znUwLz2GcBoQmFXl6FzQnMtVEzUB5Gd4cU3K3k8g", end = "";
  7.                 for (int i = 0; i < str.length(); i++) if (Character.isDigit(str.charAt(i))) end +=str.charAt(i);
  8.                 System.out.println(end);
  9.         }
  10. }

Un saludo y enhorabuena a los ganadores!!
Si necesitas ayuda, no dudes en mandar MP

Desconectado Andrey

  • *
  • Underc0der
  • Mensajes: 251
  • Actividad:
    0%
  • Reputación 8
  • Toma lo que quieras, y nada devuelvas...
    • Ver Perfil
    • Evil Labs
« Respuesta #7 en: Diciembre 04, 2017, 11:51:35 pm »
Mi solucion al 5 fue la siguiente:

Primero el codigo hecho en python...

Código: [Seleccionar]
import re
cadena= "kn8XontEa4EdJvwtWqHun6QRDBlOdl5cGLoLuuMneBDRzhONWDkBGgCDIvaEhZfq11Xf7t1vsQXmuSnjuUJ2YFAvbAaOlpf65OiwBGhvey3h4cIUTZkhGemMI5IRyoyXPX7tMBwdQmFC40Qq0rlJbuhojwDH9wy86DiU5c48ECg2ZVbGosQdOGm28ncpcEBZynFkIKnKFJPbMZAjCrLejqHZTwhgReKI9I1JBct4J9gvuOqyG7VOoQsNrRCgZ3zmOHJ7znUwLz2GcBoQmFXl6FzQnMtVEzUB5Gd4cU3K3k8g"
cadena = re.sub("\D", "", cadena)
print cadena

Ahora lo que nos interesa, como funciona...

import re  Para importar la libreria de manipulacion de strings, nombre completo Regex...

cadena = "kn8Xo... Le damos el valor a la cadena...

re.sub("/D","",cadena) El modulo re trabaja con funciones regulares y de cadena, la funcion sub encuentra las coincidencias en un patron y las reemplaza por una cadena predefinida, en los siguientes dos parametros el primero es la cadena sobre la que se pasa a tomar su lugar y el segundo es la cadena que tomara su lugar, esto en la variable del tercer parametro "cadena", en este caso "\D" hace referencia a caracteres que no sean numeros y se reemplazan por "" ocea nada, en la cadena original...

print (cadena) Imprime el resultado el cual es el siguiente:

84651171265345740098654822891497372654338




"Es un mundo brutal y peligroso el que hay allá afuera... Pero encontré mi camino. El caos es mi hogar, y me aseguraré de que no escapes de el"...

"Solo se necesita una excusa para cambiar el mundo"

Conectado K A I L

  • *
  • Moderador
  • Mensajes: 143
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #8 en: Diciembre 05, 2017, 08:13:28 am »
Buenos dias! Me toco explicar el reto 1, 3 y 5, empecemos:

RETO 1:
Bueno lo mismo que ya dijeron por arriba, al ver el hash empece a inspeccionarlo, y note que tenia caracteres que no eran hexadecimales (X,Y,Z) , por lo que una vez eliminados del hash original, use https://crackstation.net/ para ver si lo podia desencriptar y PUM, el resultado arrojado fue: shadow.


RETO 3:
Bueno este reto resulto sencillo, ya que al verlo me recordo uno que hicimos en un viernes negro anterior, lo primero que pense fue que se trataba de un texto cifrado con el cuadrado de polibio, que no es mas que una tabla 5x5 donde cada letra se cifra primero con el numero de la fila y luego con el de la columna.
CUADRADO DE POLIBIO
Por ejemplo si tomamos la letra V, seria 51.

Teniendo en cuenta el codigo que nos dieron:
Código: [Seleccionar]
3334 51115411 11 431542 414515 3215 511543141143 22114434 353442 312415124215
Nos da el siguiente mensaje:
NO VAYA A SER QUE ME VENDAS GATO POR LIEBRE


RETO 5:
Bueno para este reto hice un programita en C muy simple:

Muy facil de interpretar, tenemos una funcion tomanumeros que va tomando todas las posiciones de nuestro string, y los va comparando para ver si son numericos (0x30 - 0x39 valores del 0 al 9 segun la tabla de ASCII), y que caso de ser positivo los va guardando en otro subarreglo, que luego seria justamente lo que nos interesa mostrar luego en nuestro OUTPUT.
Tambien se podria haber mostrado la cantidad de numero que tenia el string, aprovechando el mismo contador de nuestro subarreglo, pero como no era lo que pedia el reto, decidi dejarlo como comentario.

Saludos!

 

¿Te gustó el post? COMPARTILO!



Viernes Negros - Puntajes y Ganadores

Iniciado por xyz

Respuestas: 1
Vistas: 3458
Último mensaje Enero 06, 2018, 08:12:59 pm
por xyz
Desafío #1 - Viernes Negros de Usuarios

Iniciado por xyz

Respuestas: 17
Vistas: 8350
Último mensaje Diciembre 06, 2017, 10:57:19 pm
por Andrey
Desafío #2 - Viernes Negros de Usuarios

Iniciado por xyz

Respuestas: 3
Vistas: 4343
Último mensaje Diciembre 01, 2017, 09:03:16 am
por rollth
Desafio #15 - Viernes Negro

Iniciado por xyz

Respuestas: 10
Vistas: 7222
Último mensaje Enero 06, 2018, 08:49:46 pm
por rollth
Desafío #5 - Viernes Negro

Iniciado por ANTRAX

Respuestas: 11
Vistas: 6117
Último mensaje Febrero 15, 2017, 11:55:40 am
por xyz