**Primer - VM ** __Reconnaissance__ nmap -sS -A 192.168.43.139 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Debian 5 (protocol 2.0) |_ssh-hostkey: ERROR: Script execution failed (use -d to debug) 80/tcp open http Apache httpd 2.4.10 ((Debian)) | http-robots.txt: 1 disallowed entry |_/4_8f14e45fceea167a5a36dedd4bea2543 |_http-title: PRIMER 111/tcp open rpcbind 2-4 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind | 100000 2,3,4 111/udp rpcbind | 100024 1 58903/udp status |_ 100024 1 59440/tcp status OS details: Linux 3.11 - 3.14 __Exploitation Web__ {{ :vm:0.png?nolink |}} Sur la première page nous avons une demande d'authentification sous forme login , mot de passe. On tente une injection sql : username : admin' || 1 # mp : azefrf On est authentifié : {{ :vm:1.png?nolink |}} http://192.168.43.139/1_c81e728d9d4c2f636f067f89cc14862c/ Dans le code source en commentaire on peut lire : On calcule le md5 de 3.141592 => d483d00d07fcc80319d170ccf07fb5be Et dans l'User Agent on met : d483d00d07fcc80319d170ccf07fb5be On accède alors à : [[http://192.168.43.139/2_eccbc87e4b5ce2fe28308fd9f2a7baf3/]] {{ :vm:2.png?nolink |}} Après plusieurs recherches on trouve que la piste est bouché, on repart donc depuis la phase reconnaissance. Dans le robots.txt /4_8f14e45fceea167a5a36dedd4bea2543 {{ :vm:4.png?nolink |}} On clique sur EOF on arrive sur la page 5 : {{ :vm:5.png?nolink |}} On récupère le lien de la page 6 et on essaye d'y accéder. Un contrôle d'accès fait en JS nous redirige vers une page d'erreur si nous ne rentrons pas le mot attendu. En regardant le code source de la page on remarque : {{ :vm:6.png?nolink |}} On accède à la page : 7_70efdf2ec9b086079795c442636b55fb Un nouveau contrôle d'accès fait en JS pour accéder à la page. On regarde le JS de façon propre avec [[http://jsbeautifier.org/]] /*"Someone didn't bother reading my carefully prepared memo on commonly-used passwords. Now, then, as I so meticulously pointed out, the four most-used passwords are: love, sex, secret, and..." - The Plague*/ Un premier commentaire dans le code , après quelques recherche sur internet on trouve que le password est "god". Pourtant il ne semble pas valider. On cherche un peut plus loin dans le JS : var L = '0d28cba0bd4f26e16d766000d27e49fa'; Le contenu de la variable L est le md5 de "GOD" On test avec notre passe : **GOD** {{ :vm:7.png?nolink |}} Si on trouve la correspondance des path (md5) on obtient : 2_eccbc87e4b5ce2fe28308fd9f2a7baf3 => 3 4_8f14e45fceea167a5a36dedd4bea2543 => 7 5_6512bd43d9caa6e02c990b0a82652dca => 11 6_c51ce410c124a10e0db5e4b97fc2af39 => 13 7_70efdf2ec9b086079795c442636b55fb => 17 On remarque les chemins sont incrémentés de +2. Grâce à cela on trouve les urls suivantes : http://192.168.43.139/3_e4da3b7fbbce2345d7772b0674a318d5/ => 5 http://192.168.43.139/8_1f0e3dad99908345f7439f8ffabdffc4/ => 19 http://192.168.43.139/9_37693cfc748049e45d87b8c7d8b9aacd/ => 21 Les chemins 3 et 8 raconte des morceaux de l'histoire mais n'apporte rien de plus. Le chemin 9 est plus intéressant : {{ :vm:9.png?nolink |}} Après quelques tentatives d'exploitations nous remarquons que nous n'avons pas accès à un système de fichier mais uniquement à un pseudo interpréteur. On va voir dans le main.js : {{ :vm:9b.png?nolink |}} On accède à : 10_23693cff748o49r45d77b6c7d1b9afcd {{ :vm:10.png?nolink |}} Fin de la VM , l'auteur ne proposait pas d'exploiter plus loin.