61 lines
2.4 KiB
Plaintext
61 lines
2.4 KiB
Plaintext
La encore il y a un executable "level10" et un fichier "token"
|
|
|
|
$ ls
|
|
> -rwsr-sr-x+ 1 flag10 level10 10817 Mar 5 2016 level10*
|
|
> -rw------- 1 flag10 flag10 26 Mar 5 2016 token
|
|
|
|
|
|
$ ./level10
|
|
> ./level10 file host
|
|
> sends file to host if you have access to it
|
|
|
|
on en deduit naturelement qu'il faut donner en argument a ./level10 un fichier et un host
|
|
|
|
$ ./level10 token 127.0.0.1
|
|
You don't have access to token
|
|
|
|
|
|
On cree alors un liens symbolique comme dans le level08:
|
|
|
|
$ ln -s /home/user/level10/token /tmp/link
|
|
> You don't have access to /tmp/link
|
|
|
|
Tristesse intersideral, il faut donc reflechir
|
|
|
|
Pour comprendre ce qui ce passerai dans le cas ou l'on aurait les droit on cree un fichier
|
|
On va cree un fichier cacher pour qu'il ne se fasse pas suprimer par la tach cron
|
|
|
|
$ echo "Ceci est un fichier que je peux lire correctement" >> /tmp/.test
|
|
$ ./level10 /tmp/.test 127.0.0.1
|
|
> Connecting to 127.0.0.1:6969 .. Unable to connect to host 127.0.0.1
|
|
|
|
Damn, il n'y a pas de serveur... Qu'à cela ne tienne on va ecouter avec netcat
|
|
On ouvre une deuxieme fenenetre + connexion ssh pour ecouter avec netcat puis on relance level10
|
|
|
|
$ nc -lv 127.0.0.1 6969
|
|
> Connection from 127.0.0.1 port 6969 [tcp/*] accepted
|
|
> .*( )*.
|
|
> Ceci est un fichier que je peux lire correctement
|
|
|
|
On peut donc lire le fichier que l'on passe en parametre
|
|
|
|
Apres quelques errance sur les liens symbolique l'idee des tester des "Race condition" ou "Symlink race" est unr piste
|
|
|
|
Le plus logique est de le faire un bash. Pour que la race condition fonction il faut les lancer dans deux proces different.
|
|
On va donc lancer 3 script bash dans 3 connexion ssh different.
|
|
|
|
Le premier script va cree un lien symbolic vers un fichier vide sur lequel on a les droit Puis le meme lien synbolic sur token. et tout ca en boucle avec -f pour ecraser le lien existant.
|
|
Le deuxieme va lancer l'executable level10 avec les bon argument
|
|
Enfin le dernier va lancer des serveur netcat en boucle car on va aussi recevoir le fichier vide, il faudra alor relancer netcat
|
|
|
|
pour ca on copy les script shell depuis Resource sur la vm:
|
|
$ scp -r -P 4242 level10/Ressources level10@127.0.0.2:/tmp/.level10/
|
|
|
|
On lance chaque script dans une connection et le tour est jouer
|
|
On obtien le mot de passe du compte flag10, qui est egalement le meme que le compte flag11
|
|
|
|
On peut en deduire que le level11 est optionel... Mais pour le jeux on l'a quand meme realiser
|
|
|
|
(Oui la derscription de ce level est tres verbeuse)
|
|
|