Nidew / Rick_Challenge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WriteUp WhereIsRicky

Voici mes solutions pour les challenges de RickdiculouslyEasy

Pour Commencer

Ces challenges sont d'un niveau débutant. Je pars du principe que vous connaissez tous et toutes les commandes courantes comme ls, cat, file, tail, strings, tac, ...
Toutefois il est quand même recommandé de connaitre un peu le python et de connaitre les commandes suivantes:

Conditions préalables

Installation

Personnellement j'ai utilisé Virtualbox et j'ai configuré le réseau de l'iso en bidge. Vous êtes libre de l'utiliser comme bon vous semble comme NAT Network ou autres Si vos êtes comme moi et avait opté pour Virtualbox, n'oublier pas d'installer le paquet d'extension pour plus de confort et éviter des problèmes d'installation !

Resolution des Challenges

L'adresse de notre cible est indiqué sur la VM qui tourne sur Virtualbox.
Adresse

On va donc commencer par scan un peu tout ça avec la commande :

unicornscan -v -I -r 1000 -p 1-65535 192.168.1.15

cmd_unicornscan

On peut voir ici qu'il y a plusieurs points d'entrée.
Pour les fan de nmap Une autre solution aurait été de lancer nmap 192.168.1.17 -O -sV -p- -T5
On va donc faire un petit nc sur chacune des zones que l'on a trouvées :

nc -nv 192.168.1.15 60000

nc_cmd_port_60000
Ici on peut voir que ce petit filou de Rick nous a laissé une petite backdoor.
Un autre option aurait été d'utiliser la commande telnet comme cela :

telnet 192.168.1.15

On va donc regarder ce que l'on trouve dans cette zone avec la commande ls. On vient de trouver un fichier FLAG.txt. On lance donc un cat dessus et BINGO {Flip the pickle Morty!}! Ce qui nous fait 10 / 130 points.

nc -nv 192.168.1.15 22222

nc_cmd_port_22222

Ici pas de flag. Par contre on peut voir que ce port sert à se connecter en ssh . Si jamais on trouve des identifiants au cours de notre exploration, on va surement pouvoir utiliser ce port pour se connecter !

nc -nv 192.168.1.15 13337

nc_cmd_port_13337

On a directement un flag qui s'affiche {TheyFoundMyBackDoorMorty}! ce qui nous fait à présents 20 / 130 points.

Bien maintenant que l'on a fait les unknown. On va passer aux classiques. Comme dit sur la VM qui run l'iso et sur notre commande unicornscan on voit que l'on peut se connecter depuis un brother a l'adresse https://192.168.1.15:9090. Une fois rendu sur cette page on peut constater que l'on a un autre flag {THERE IS NO ZEUS, IN YOUR FACE!}. On arrive donc à 30 / 130 points.

web_home

R Passons maintenant à la connexion FTP. Pour cela on va utiliser hydra pour brut forcé histoire de voir si par megarde il n'y aurait pas un accès. On va donc lancer la commande :

hydra -V -f -L /usr/share/worldlists/dirb/ltl.txt -P /usr/share/worldlists/dirb/ltl.txt ftp://192.168.1.15

hydra_result
J'ai utilisé mon propre custom file mais il existe beaucoup de fichiers plus ou moins gros pour tester ces connexions-là. Au bout de quelques minutes nous avons trouvé un match. Ni une, ni deux, on va pouvoir voir si l'on trouve quelque chose. On lance donc la connexion avec ftp -p 192.168.1.15, on se retrouve donc à rentrer les logins et password trouver. une fois connecter on lance notre, ls et encore une fois on voit un fichier FLAG.txt.

ftp_cmd
On va donc regarder ce qu'il y a dedans avec get FLAG.txt /dev/tty et nous voilà maintenant en possetion d'un nouveau flag {Whoa this is unexpected} ce qui nous monte maintenant à 40 / 130 points.

On va maintenant commencer à essayer de voir si l'on ne trouve pas certains accès sur le site. Comme on n'aime pas attendre on va accélérer les choses avec la commande dirb. On lance donc la commande suivante :

dirb http://192.168.1.15 /usr/share/worldlists/dirb/big.txt -N 404

dirb_cmd

On a des resultat :

  • cgi-bin/
  • passwords/
  • robots.txt

http://192.168.1.15/cgi-bin/ n'est pas très concluant. on se retrouve avec un Forbidden et rien dans le code source de la page :/.
forbidden_acces
forbidden_source

Essayons maintenant avec la directory http://192.168.1.15/passwords/ passwords

Ah plus de chance cette fois avec cette Directory ! On y retrouve deux fichiers:

  • FLAG.txt.
  • passwords.html.

password_flag

On va d'abord regarder le contenue du fichier FLAG.txt affin de récupère un notre nouveau flag qui est {Yeah d- just don't do it.} ce flag étant à 10 nous sommes donc maintenant a 50 / 130 points.

passwords_passwords
Maintenant allons regarder le fichier passwords.html. Il n'y a rien de spécial sur cette page. Par contre si l'on regarde le code source on peut trouver écrit en commentaire la phrase Password: winter.
Pas moyen de l'utiliser pour l'instant mais on a récupéré un mot de passe et ça c'est toujours cool !

Passons maintenant au robots.txt
robots
Super ! Finalement on va pouvoir allez les cgi.
On voit qu'il y a donc deux fichiers :

  • cgi-bin/root_shell.cgi.
  • cgi-bin/tracertool.cgi.

root_shell_cgi
On commence donc par l'url du root_shell par ce que les root_shell c'est cool ! Manque de chance Rick est vraiment un trou du cul car il n'a pas fini de le coder :/.

On va donc passer au tracertool.Et là il nous proposait d'entrer une adresse ip pour la tracer. Comme on est des personnes sérieuses qui écoutent ce que l'ont nous demande. On va essayer de voir à tout hasard il ne nous laisserait pas renter d'autre commande en rajoutant un ; au debut, pour exécuter une autre commande.

On s'applique donc à lancer la commande suivante :

; ls -la

ls_tracertool_cgi
Chouette ce n'est pas proteger. On essaye donc :

; cat /etc/passwd

cat_tracertool_cgi
... On dirais bien qu'il se protege contre la commande cat. On va donc essayer avec tac!

; tac /etc/passwd

tac_tracertool_cgi

Nickel ! Si vous vous rappelez bien, nous avions trouvé un mot de passe avant. Et bien maintenant que l'on a récupéré la liste des users on va pouvoir essayer de faire match ce mot de passe avec l'un des users. Vue qu'il n'y a que trois utilisateurs j'ai essayé directement a la main et la Summer m'a ouvert son coeur:

ssh -p 22222 Summer@192.168.1.15

connection_summer

Commencons par le commencement, un petit ls, nous révèle que l'on a un nouveau fichier FLAG.txt. On lance donc notre tail FLAG.txt et un nouveau flag pour nous grace au flag {Yeah d- just don't do it.} + 10 points. Ce qui nous fait monter à 60 / 130 points.
ls_tailf_flag

Maintenant que nous sommes connectés en ssh on va pouvoir allez voir ce qu'on Morty est Rick dans leurs Home. On va donc fait la commande suivante avec le User Summer:

clear ; cd /home/Morty ; ls -la

ls_morty_home
On trouve donc deux fichiers:

  • journal.txt.zip.
  • Safe_password.jpg.
    On va essayer de regarder ce que l'on peut faire de ça. On va donc lancer la commande suivante avec le user Summer:
cp journal.txt.zip Safe_password.jpg /home/Summer/. ; cp Safe_password.jpg /tmp/.
 ; chown Summer /tmp/Safe_password.jpg                                      

On constate que le fichier zip est protégé par un mot de passe. Coïncidence avec le faite qu'il soit accompagné d'un fichier de mot de passe. Je ne crois pas ! Mais sait on jamais. On va la copier pour pouvoir l'ouvrir sur notre ordinateur car lire une image sur un terminal n'est pas vraiment lisible pour un humain. On lance commande suivante :

scp -P 22222 Summer@192.168.1.15:/tmp/Safe_password.jpg .

On ouvre donc le fichier et là >...<, rien d'ecrit sur l'image.
rick_img
On va donc lancer la commande

strings Safe_password.jpg

strings_pwd
Génial, Rick a été malin et sait que Morty est un peu stupide. Du coup il lui a clairement écrit le mot de passe pour unzip le fichier !
On retourne sur la connexion ssh et on essaye le mot de passe:
unzip_txt
Parfait ! Morty nous confits que c'est un mot de passe a Rick et nous avons maintenant un nouveau Flag {131333} et celui la est a 20 points. On en est maintenant a 80 / 130 points.

Allons faire un tour chez Rick maintenant que Morty nous a reveler tous ces secrets. On y retrouve deux Folders:

  • RICKS_SAFE
  • ThisDoesntContainsAnyFlags

unzip_txt

À première vue le fichier NotAFlag.txt n'est pas un flag. Par contre le fichier safe est deja plus interessant. On se rend compte que c'est un exécutable. On veut pouvoir faire mumuse avec, alors nous allons le copier dans notre home puis l'exécuter.

cp /home/RickSanchez/RICKS_SAFE/safe /home/Summer/. ; cd ; ./safe

run_safe

Ça y est ! Vous aussi vous faites la relation avec ce que ce bon vieux Morty a dit ? Très bien réessayons mais avec comme premiers arguments 131333.
decrypt_succes

On touche au but ! En plus d'avoir trouvé le flag {And Awwwaaaaayyyy We Go!} qui nous fait avoir 20 points en plus et donc arriver a 100 / 130 points ; il nous explique même comment se connecter avec RickSanchez en ssh !

Wiki_rick
Comme Tout le monde le sait le groupe de Rick était The Flesh Curtains, mais dans le doute on a quand même vérifier sur l'internet. Il ne nous reste plus qu'à écrire un petit script.

cat > generator_mdp.py
import string
grp_name = ("The", "Flesh", "Curtains")
with open("mdp.txt", 'w') as f:
    for l in string.uppercase:
        for d in string.digits:
            for g in grp_name:
                f.write(l + d + g + '\n')

Maintenant qu'on a notre script on va générer toutes les combinaisons de mot de passe puis essayer de retrouver le mot de passe grâce à patator.

python generator_mdp.py ; patator ssh_login user=RickSanchez host=192.168.1.14 port=22222 password=FILE0 0=mdp.txt -x ignore:mesg='Authentication failed.'

Et on a notre mot de passe. Essayons de nous connecter en ssh en rentrant ce mot de passe
ssh_rick_connection

ssh -p 22222 RickSanchez@192.168.1.15

Maintenant que nous sommes OFFICIELLEMENT RickSanchez nous pouvons lancer la commande sudo su avec le même mot de passe et ainsi passé Root.
root_dir

On retrouve notre dernier flag {Ionic Defibrillator} pour une valeur de 30 points ce qui nous amènent à 130 sur 130 points !
last_flag
Bravo à toutes et à tous d'avoir réussi ces challenges :)

About