Underc0de - Hacking y seguridad informática

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: ZzCry en Enero 20, 2020, 05:58:17 am

Título: [SOLUCIONADO] Ayuda código BASH
Publicado por: ZzCry en Enero 20, 2020, 05:58:17 am
Quiero aclarar que estoy empezando en esto, no os riais de mi, porfavor.
Buenas tengo un pequeño problema y es que he creado un código para una actividad de clase pero hay un problema. Si editan el fichero pueden ver la contraseña y ahora la pregunta. ¿Cómo puedo hacer para que si abren el código no puedan ver la contraseña?, ya que defino la variable para que lea un archivo de texto y no funciona. ¿Alguien podría ayudarme para que cuando le den a editar no puedan ver la contraseña?. Aquí el código.
Código: Bash
  1. #!/bin/bash
  2. # (CC)ZzCry - 2020
  3.  
  4. #Sanity checks
  5. #Comprueba si el usuario no ha introducido nada al ejecutar el .sh en plan bash saluda.sh =dario! Y define la contraseña además define el imput para poner la contraseña
  6. exitstatus=$?
  7. Nom=$1
  8. contra="$( cat a.txt )"
  9.  
  10. if [ $# -eq 0 ]
  11. then
  12.         echo "Porfavor, introduce un nombre"
  13.         exit
  14. fi
  15.  
  16. #Cuerpo principal
  17.  
  18. caja=$(whiptail --passwordbox "Bienvenido $Nom, Introduce la contraseña" 10 30 3>&1 1>&2 2>&3)
  19.  
  20. if [ "contra" = "caja" ]
  21. then
  22.         whiptail --ok-button Continuar --msgbox "Felicidades, la contraseña es correcta!" 10 30
  23. else
  24.         whiptail --ok-button Salir --msgbox "Contraseña incorrecta!" 10 30
  25.         exit
  26. fi
  27.  
  28. #PREGUNTA PARA INICIAR EL DESAFIO
  29. if (whiptail --title "Desafio" --yes-button "Sí, vamos allá!" --no-button "No, por ahora no" --yesno "Bienvenido $Nom, estás preparado para iniciar el DESAFIO?" 8 78)
  30. then
  31.         #DIALOGO EN EL QUE TE MUESTRA LA CONTRASEÑA
  32.         echo "Bien, $Nom!. Sientete afortunado de formar parte de este desafio. ¿Estás listo?
  33. La contraseña es:""
  34. Desencriptala en MD5 para obtenerla y abrir la carpeta" > contenido
  35.         whiptail --textbox contenido 12 80
  36. else
  37.         #Dialogo si cancelas
  38.         whiptail --ok-button Salir --msgbox "Has abandonado el reto" 10 30
  39.     exit
  40. fi
  41. exit
Título: Re:Ayuda código BASH
Publicado por: DtxdF en Enero 20, 2020, 08:44:17 am
@ZzCry (https://underc0de.org/foro/index.php?action=profile;u=96346)

Haciendo un análisis rápido...

Código: Bash
  1. exitstatus=$?

Está haciendo referencia al valor "$?", osea el estado de salida del último comando ejecutado, si coloca esto en la mitad del código (por ejemplo), no es que vaya a cambiar.

Código: Bash
  1. contra="$( cat a.txt )"

Usted es el que tiene el fichero, debio pasarlo para probarlo un poco más realista a como usted lo está haciendo en su PC.

Código: Bash
  1. if [ "contra" = "caja" ]

Debe colocar el signo del dólar "$" para que funcione, osea así:

Código: Bash
  1. if [ "$contra" = "$caja" ]

Al ver esa linea e interpretar un poco más su mensaje, tengo el presentimiento de lo que desea hacer es una verificación MD5.

Si es así, puede crear una suma de verificación con el comando "md5sum". Ejemplo:

Código: Bash
  1. echo -n "What is DtxdF?" | md5sum
  2. 510bb6ba3e73bb83d42124192d9399b4  -

Aunque eso funcione, es mejor usar "sha256", cosa que puede hacerlo remplazando "md5sum" por "sha256sum"

~ DtxdF
Título: Re:Ayuda código BASH
Publicado por: ZzCry en Enero 20, 2020, 03:09:35 pm
Lo que quiero hacer es que la variable "contra" lea el archivo contraseña.txt y esa será la contraseña para la variable caja, y si coincide con lo que pone en el archivo de texto, pasar al siguiente paso pero si no coincide con lo que está dentro del archivo de texto que se salga, ya que si defino la variable
Código: Bash
  1. contra="123"
si alguien le da a editar el archivo podrá ver cual es la contraseña y la gracia es que la encuentren. Unicamente quería saber como se hace eso. El problema es que no me funciona, no sé que habré echo mal para que no funcione, no consigo verlo. Aquí te dejo los archivos para que puedas echarle un vistazo;
Aqui tienes el archivo de texto;
https://www.4shared.com/office/iStQQBrXea/contraseatxt.html (https://www.4shared.com/office/iStQQBrXea/contraseatxt.html)
Y aquí el .sh:
https://www.4shared.com/file/j4qL8kWLea/scripts.html (https://www.4shared.com/file/j4qL8kWLea/scripts.html)



Título: Re:Ayuda código BASH
Publicado por: Kirari en Enero 20, 2020, 04:26:19 pm
Buenas!

Podés hacer algo como esto:

Código: Bash
  1. #!/bin/bash
  2. # Modicado por Kirari
  3. # Script educat que saluda a algú!
  4. # (CC) ZzCry - 2020
  5.  
  6. #Sanity checks
  7. #Comprueba si el usuario no ha introducido nada al ejecutar el .sh en plan bash saluda.sh Y define la contraseña además define el imput para poner la contraseña
  8. exitstatus=$?
  9. Nom=$1
  10.  
  11. contra="$(head -n 1 contraseña.txt)"
  12.  
  13.  
  14. if [ $# -eq 0 ]
  15. then
  16.         echo "Porfavor, introduce un nombre"
  17.         exit
  18. fi
  19.  
  20. #Cuerpo principal
  21.  
  22.  
  23. caja=$(whiptail --passwordbox "Bienvenido $Nom, Introduce la contraseña" 10 30 3>&1 1>&2 2>&3)
  24.  
  25. if [ "$contra" = "$caja" ]
  26. then
  27.         whiptail --ok-button Continuar --msgbox "Felicidades, la contraseña es correcta!" 10 30
  28. else
  29.         whiptail --ok-button Salir --msgbox "Contraseña incorrecta!" 10 30
  30.         exit
  31. fi
  32.  
  33. #PREGUNTA PARA INICIAR EL DESAFIO
  34. if (whiptail --title "DESAFIO" --yes-button "Sí, vamos allá!" --no-button "No, por ahora no" --yesno "Bienvenido $Nom, estás preparado para iniciar el DESAFIO?" 8 78)
  35. then
  36.         #DIALOGO EN EL QUE TE MUESTRA LA CONTRASEÑA
  37.         echo "Bien, $Nom!. Sientete afortunado de formar parte de este desafio. ¿Estás listo?
  38. La contraseña es:""
  39. Desencriptala en MD5 para obtenerla y abrir la carpeta" > contenido
  40.         whiptail --textbox contenido 12 80
  41. else
  42.         #Dialogo si cancelas
  43.         whiptail --ok-button Salir --msgbox "Has abandonado el reto" 10 30
  44.     exit
  45. fi
  46. exit
  47.  
  48.  

Lo que hace el head -n 1, es leer la primera linea del archivo y mostrarla, pero la salida la almacena en la variable

Espero te sirva, saludos!!
Kirari-
Título: Re:Ayuda código BASH
Publicado por: DtxdF en Enero 20, 2020, 05:28:12 pm
@ZzCry (https://underc0de.org/foro/index.php?action=profile;u=96346)

No leí los archivos que dejo en ese "servicio", simplemente deje los archivos en texto plano, cómo comparió el código en principio.

Siguiendo con mi conjetura...

Si tiene problemas con la variable "contra" siga la mayoria de pasos que le dije, quizas el problema del porqué no compara de forma correcta es por el carácter de nueva linea ( \n ), para hacer que eso no pase, tiene que leer nuevamente el archivo y quitarlo sustituyendo lo siguiente:

Código: Bash
  1.  contra="$( cat a.txt )"

Por:

Código: Bash
  1. contra=$(echo -n $(cat test.txt))

Ahora sí puede comparar tranquilamente:

Código: Bash
  1. if [ "$contra" == "123" ];then
  2.     echo "Success!"
  3. else
  4.     echo "Denied!"
  5. fi

Citar
...si alguien le da a editar el archivo podrá ver cual es la contraseña y la gracia es que la encuentren...

Respecto a lo que dice, simplemente puede crear los archivos pero definir permisos que sólo lo pueda leer y escribir el usuario "root" o cualquiera con privilegios, cosa que se puede hacer con el comando "chmod" ó cómo le dije en anteriores comentarios puede convertir la contraseña en una suma de verificación, aunque igualmente tiene que asignarles permisos, por lo menos quitarles los de escritura y si desea puede dejar los de lectura, pero si el reto se vuelve amplio, cualquier persona "agarra" el hash y lo coloca en un servicio que hace fuerza bruta cómo crackstation.net.

Todo depende de la creatividad, igualmente si sigue teniendo dudas, puede avisarnos.

~ DtxdF
Título: Re:Ayuda código BASH
Publicado por: ZzCry en Enero 20, 2020, 06:13:29 pm
Bien, gracias a los dos por haberme ayudado, gracias a vosotros he podido solucionar el problema que tenía. Un fuerte abrazo ;)
Título: Re:Ayuda código BASH
Publicado por: DtxdF en Enero 20, 2020, 06:14:58 pm
Un placer  ;)