[SOLUCIONADO] Ayuda código BASH

  • 6 Respuestas
  • 427 Vistas

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

Desconectado ZzCry

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Country: es
  • Reputación 0
  • Aprendiendo informática :)
    • Ver Perfil
    • Email

[SOLUCIONADO] Ayuda código BASH

  • 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
« Última modificación: Enero 20, 2020, 06:15:31 pm por DtxdF »

Conectado DtxdF

  • *
  • Moderator
  • Mensajes: 679
  • Actividad:
    100%
  • Reputación 16
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Ayuda código BASH

  • en: Enero 20, 2020, 08:44:17 am
@You are not allowed to view links. Register or Login

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
« Última modificación: Enero 20, 2020, 12:04:36 pm por Gabriela »
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Desconectado ZzCry

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Country: es
  • Reputación 0
  • Aprendiendo informática :)
    • Ver Perfil
    • Email

Re:Ayuda código BASH

  • 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;
You are not allowed to view links. Register or Login
Y aquí el .sh:
You are not allowed to view links. Register or Login



« Última modificación: Enero 20, 2020, 03:12:22 pm por ZzCry »

Conectado Kirari

  • *
  • Colaborador
  • *
  • Mensajes: 142
  • Actividad:
    100%
  • Country: 00
  • Reputación 9
  • No dejes que el mundo te corrompa
    • Ver Perfil
    • Baúl para el público

Re:Ayuda código BASH

  • 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-
« Última modificación: Enero 20, 2020, 04:28:50 pm por Kirari »
Jamás te contarán la verdadera versión, siempre te dirán la suya... Por eso... Si quieres saber la verdad, debes buscarla tú mismo...

Conectado DtxdF

  • *
  • Moderator
  • Mensajes: 679
  • Actividad:
    100%
  • Reputación 16
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Ayuda código BASH

  • en: Enero 20, 2020, 05:28:12 pm
@You are not allowed to view links. Register or Login

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
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Desconectado ZzCry

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Country: es
  • Reputación 0
  • Aprendiendo informática :)
    • Ver Perfil
    • Email

Re:Ayuda código BASH

  • 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 ;)

Conectado DtxdF

  • *
  • Moderator
  • Mensajes: 679
  • Actividad:
    100%
  • Reputación 16
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Ayuda código BASH

  • en: Enero 20, 2020, 06:14:58 pm
Un placer  ;)
Los seres humanos son robots, cuyo combustible es el afanado dinero.

 

[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 26307
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 11644
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 13834
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 17716
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 9200
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made