Bienvenue sur le blog de Violette !

Méfiez-vous des toilettes publiques

☰ Table des matières

Aujourd’hui, j’ai une histoire « super rigolote » à raconter. En fait il semblerait que les voyeurs se soient mis à jour, mais pas trop non plus.

Pour faire court, méfiez-vous des détecteurs de fumée dans les toilettes, en particulier de leur emplacement.

Contexte

Il y a quelques mois, le 15 Août pour être précis, un proche travaillant au McDonald m’a demandé de jeter un œil à une caméra qu’ils avaient retrouvée bien placée près de la cuvette des toilettes, cachée dans un boîtier de détecteur de fumée.

détecteur de fumée

Intérieur du faux détecteur de fumée

détecteur de fumée

Extérieur du faux détecteur de fumée

Dans ce boîtier de détecteur de fumée, nous pouvons voir une raspberry pi zero (abrégé raspi), qui est un très petit ordinateur, une batterie et un module caméra pour raspberry pi, c’est le composant encore dans le boîtier.

Ils soupçonnaient que quelqu’un s’en servait pour filmer les usagers à leur insu, ce qui était le cas.

Au départ un peu parano, j’ai branché la carte SD dans un vieil ordinateur. En fait, il n’y avait aucun danger, ni même de protection : tout était accessible en clair, aucun chiffrement, rien. J’ai donc commencé à regarder les logs pour découvrir comment tout ceci fonctionnait.

Mode opératoire et « preuves »

De mes petites manipulations de raspi précédentes, je savais que celle-ci pouvait avoir un programme permettant de filmer seulement lors de la détection de mouvement. J’ai donc immédiatement pensé à ça, en supposant qu’il devait laisser sa machine toute la journée et venir la récupérer le soir, ou quelque chose comme ça, ou bien l’avoir connectée au Wi-Fi public du mcdo.

Bon, n’étant pas spécialiste, je ne savais pas trop par où commencer.

détecteur de fumée

Remarquons déjà qu’il y a une quinzaine de fichiers vidéo, certains datant même du 13 Août.

J’ai donc entrepris de regarder le home en premier. Il y avait dedans le fichier wpa_supplicant.conf.both, que j’ai ouvert. Wpa supplicant est en gros un logiciel libre permettant de se connecter à un point Wi-Fi utilisant du WPA(Wi-Fi protected access), qui est un mécanisme de protection de réseau Wi-Fi. Normalement la plupart des routeurs utilisent maintenant WPA2.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR

network={
	ssid="G6_9295"
	psk="ConCulPee100"
#	psk=82d97a376a5cf88bc208c23c2160fe521306a487ad1971f2e11c00b560a512aa
	priority=2
}

network={
	ssid="freebox_olybrius"
	psk="u1d2t3q4"
	priority=1
}

Notons que notre malfaiteur a de l’humour avec ses mots de passe (voir la ligne psk).

Avec ceci, j’ai donc pensé à regarder le véritable fichier wpa_supplicant.conf utilisé par la machine, dans /etc/wpa_supplicant/wpa_supplicant.conf.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR

network={
	ssid="MonAP"
	psk="ConCulPee100"
#	psk=82d97a376a5cf88bc208c23c2160fe521306a487ad1971f2e11c00b560a512aa
	priority=2
}

network={
	ssid="freebox_olybrius"
	psk="u1d2t3q4"
	priority=1
}

Comme avec le fichier traînant dans /home/pi, nous ne constatatons la présence que de deux points Wi-Fi : MonAP et freebox_olybrius

MonAP étant souvent un nom récurrent pour les points d’accès créés par des ordiphones, une petite idée du mode opératoire commence à germer :

  • Il ouvre un point d’accès Wi-Fi à l’aide de son ordiphone, ici MonAP
  • Il pose sa machine dans des toilettes publiques mixtes
  • Il attend sur place qu’une femme entre
  • Il se connecte en SSH depuis son téléphone à sa machine
  • Il commence à filmer
  • Il récupère la raspberry pi quand il en a assez

Pour confirmer la théorie, j’ai donc entrepris de jeter un œil aux logs de connexion, dans /var/log/, en particulier le fichier auth.log.

On y trouve des traces de connexion ssh à diverses heures de la journée :

Aug 14 12:41:27 chezpopol sshd[775]: Accepted password for pi from 192.168.43.1 port 33263 ssh2
Aug 14 12:41:50 chezpopol sshd[853]: Accepted password for pi from 192.168.43.1 port 33274 ssh2
Aug 14 13:35:36 chezpopol sshd[415]: Accepted password for pi from 192.168.43.1 port 34096 ssh2
Aug 14 17:08:06 chezpopol sshd[490]: Accepted password for pi from 192.168.43.1 port 34103 ssh2
Aug 14 17:13:04 chezpopol sshd[561]: Accepted password for pi from 192.168.43.1 port 34116 ssh2
Aug 14 17:49:06 chezpopol sshd[762]: Accepted password for pi from 192.168.43.1 port 34195 ssh2
Aug 14 17:49:10 chezpopol sshd[802]: Accepted password for pi from 192.168.43.1 port 34201 ssh2
Aug 14 17:52:21 chezpopol sshd[877]: Accepted password for pi from 192.168.43.1 port 34241 ssh2
Aug 14 17:52:36 chezpopol sshd[951]: Accepted password for pi from 192.168.43.1 port 34245 ssh2
Aug 14 17:55:56 chezpopol sshd[1082]: Accepted password for pi from 192.168.43.1 port 34264 ssh2
Aug 14 18:20:26 chezpopol sshd[1456]: Accepted password for pi from 192.168.43.1 port 34430 ssh2

Nous avons aussi des logs de connexion datant d’autres jours, en supposant que ce 14 Août ne soit pas le seul jour pendant lequel le voyeur a opéré :

Aug  9 12:48:51 chezpopol sshd[417]: Accepted password for pi from 192.168.43.1 port 49292 ssh2
Aug  9 12:49:07 chezpopol sshd[470]: Accepted password for pi from 192.168.43.1 port 49293 ssh2
Aug  9 13:01:07 chezpopol sshd[578]: Accepted password for pi from 192.168.43.1 port 49298 ssh2
Aug  9 13:21:02 chezpopol sshd[696]: Accepted password for pi from 192.168.43.1 port 49301 ssh2
Aug  9 13:40:48 chezpopol sshd[794]: Accepted password for pi from 192.168.43.1 port 49306 ssh2
Aug  9 14:06:53 chezpopol sshd[1091]: Accepted password for pi from 192.168.43.1 port 49317 ssh2
Aug  9 17:15:21 chezpopol sshd[468]: Accepted password for pi from 192.168.0.25 port 51568 ssh2
Aug 10 11:50:03 chezpopol sshd[529]: Accepted password for pi from 192.168.43.1 port 51823 ssh2
Aug 10 11:50:22 chezpopol sshd[602]: Accepted password for pi from 192.168.43.1 port 51828 ssh2
Aug 10 12:13:44 chezpopol sshd[693]: Accepted password for pi from 192.168.43.1 port 51845 ssh2
Aug 10 12:14:09 chezpopol sshd[745]: Accepted password for pi from 192.168.43.1 port 51848 ssh2
Aug 10 12:14:45 chezpopol sshd[840]: Accepted password for pi from 192.168.43.1 port 51849 ssh2
Aug 10 12:14:50 chezpopol sshd[884]: Accepted password for pi from 192.168.43.1 port 51850 ssh2
Aug 10 13:14:53 chezpopol sshd[1205]: Accepted password for pi from 192.168.43.1 port 51870 ssh2
Aug 10 14:14:12 chezpopol sshd[422]: Accepted password for pi from 192.168.43.1 port 51885 ssh2
Aug 10 14:25:12 chezpopol sshd[475]: Accepted password for pi from 192.168.0.25 port 50616 ssh2
Aug 11 11:18:40 chezpopol sshd[522]: Accepted password for pi from 192.168.43.1 port 54171 ssh2
Aug 11 11:18:56 chezpopol sshd[595]: Accepted password for pi from 192.168.43.1 port 54175 ssh2
Aug 11 11:23:19 chezpopol sshd[656]: Accepted password for pi from 192.168.43.1 port 54187 ssh2
Aug 11 11:23:27 chezpopol sshd[709]: Accepted password for pi from 192.168.43.1 port 54189 ssh2
Aug 11 11:24:22 chezpopol sshd[772]: Accepted password for pi from 192.168.43.1 port 54195 ssh2
Aug 11 11:28:24 chezpopol sshd[847]: Accepted password for pi from 192.168.43.1 port 54198 ssh2
Aug 11 11:31:51 chezpopol sshd[921]: Accepted password for pi from 192.168.43.1 port 54230 ssh2
Aug 11 11:35:59 chezpopol sshd[1002]: Accepted password for pi from 192.168.43.1 port 54258 ssh2
Aug 11 11:48:09 chezpopol sshd[1085]: Accepted password for pi from 192.168.43.1 port 54268 ssh2
Aug 11 12:07:07 chezpopol sshd[1291]: Accepted password for pi from 192.168.43.1 port 54318 ssh2
Aug 11 12:27:01 chezpopol sshd[1418]: Accepted password for pi from 192.168.43.1 port 54477 ssh2
Aug 11 13:30:26 chezpopol sshd[418]: Accepted password for pi from 192.168.43.1 port 54756 ssh2
Aug 11 13:50:51 chezpopol sshd[469]: Accepted password for pi from 192.168.0.25 port 50555 ssh2
Aug 11 13:55:25 chezpopol sshd[418]: Accepted password for pi from 192.168.43.1 port 56240 ssh2
Aug 12 12:15:20 chezpopol sshd[550]: Accepted password for pi from 192.168.43.1 port 56259 ssh2
Aug 12 12:51:44 chezpopol sshd[740]: Accepted password for pi from 192.168.43.1 port 56281 ssh2
Aug 12 13:05:17 chezpopol sshd[952]: Accepted password for pi from 192.168.43.1 port 56286 ssh2
Aug 12 14:15:42 chezpopol sshd[473]: Accepted password for pi from 192.168.0.25 port 51246 ssh2
Aug 12 14:20:17 chezpopol sshd[420]: Accepted password for pi from 192.168.43.1 port 58491 ssh2
Aug 12 14:20:35 chezpopol sshd[495]: Accepted password for pi from 192.168.43.1 port 58501 ssh2
Aug 13 11:42:28 chezpopol sshd[725]: Accepted password for pi from 192.168.43.1 port 58573 ssh2
Aug 13 11:56:56 chezpopol sshd[833]: Accepted password for pi from 192.168.43.1 port 58671 ssh2
Aug 13 12:28:21 chezpopol sshd[413]: Accepted password for pi from 192.168.43.1 port 58810 ssh2
Aug 13 12:28:35 chezpopol sshd[466]: Accepted password for pi from 192.168.43.1 port 58816 ssh2
Aug 13 13:47:31 chezpopol sshd[719]: Accepted password for pi from 192.168.43.1 port 59185 ssh2
Aug 13 13:52:19 chezpopol sshd[845]: Accepted password for pi from 192.168.43.1 port 59207 ssh2
Aug 13 14:07:40 chezpopol sshd[481]: Accepted password for pi from 192.168.0.25 port 50436 ssh2
Aug 13 14:16:22 chezpopol sshd[416]: Accepted password for pi from 192.168.43.1 port 60817 ssh2
Aug 13 14:16:28 chezpopol sshd[469]: Accepted password for pi from 192.168.43.1 port 60818 ssh2
Aug 13 14:17:35 chezpopol sshd[558]: Accepted password for pi from 192.168.43.1 port 60819 ssh2
Aug 13 14:17:46 chezpopol sshd[416]: Accepted password for pi from 192.168.43.1 port 60844 ssh2
Aug 13 14:18:46 chezpopol sshd[484]: Accepted password for pi from 192.168.43.1 port 60845 ssh2
Aug 13 14:19:01 chezpopol sshd[548]: Accepted password for pi from 192.168.43.1 port 60846 ssh2

Bon, si des connexions ssh sont plutôt anodines, les logs suivants montrent que le 14 Août n’était pas sa première fois :

Aug  9 17:16:12 chezpopol sudo:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/cp -iv pee_2020-08-08_18h18m.h264
 pee_2020-08-08_18h33m.h264 pee_2020-08-08_18h46m.h264 pee_2020-08-08_18h48m.h264 pee_2020-08-08_19h02m.h264 pee_2020-08-08_19h11m.h264
 pee_2020-08-08_19h21m.h264 pee_2020-08-09_12h49m.h264 pee_2020-08-09_12h50m.h264 pee_2020-08-09_13h06m.h264 pee_2020-08-09_13h23m.h264 
 pee_2020-08-09_13h40m.h264 pee_2020-08-09_13h45m.h264 pee_2020-08-09_13h46m.h264 pee_2020-08-09_13h53m.h264 pee_2020-08-09_14h03m.h264 
 pee_2020-08-09_14h06m.h264 pee_2020-08-09_14h17m.h264 pee_2020-08-09_14h33m.h264 /media/usb/toile/

Ici, il a copié des fichiers sur une clé USB le 9 Août, fichiers datant visiblement du 8 Août si l’on en croit leurs noms. Le programme python dans /home/pi/test_python confirme bien que c’est cette nomenclature qu’il utilise pour générer ses fichiers vidéo. Ci-dessous un extrait du code en question sur la génération de vidéo :

with picamera.PiCamera(sensor_mode=2, framerate=15) as camera:
    output = StreamingOutput()
    camera.drc_strength='high'
    camera.exposure_mode='night'
    camera.rotation=180
    camera.resolution=(1920,1080)
#    camera.iso=100
    camera.exposure_compensation=10
#    i=1
    timestr = time.strftime("%Y-%m-%d_%Hh%Mm")
    camera.start_recording('pee_' + timestr + '.h264', format='h264', bitrate=10000000)
    camera.start_recording(output, format='mjpeg', splitter_port=2, resize=(320,240))
    try:
        address = ('', 8000)
        server = StreamingServer(address, StreamingHandler)
        server.serve_forever()
#        while (1):
#           camera.wait_recording(5)
#           i=i+1
#           camera.split_recording('mon_essai_%d.mjpg' % i)

    finally:

Notons qu’il se faisait aussi un petit direct lorsqu’il filmait.

En regardant les autres fichiers de log, comme auth.log.1, on peut trouver des traces de vidéos datant du 30 juillet 2020 :

Aug  5 13:48:58 chezpopol sudo:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/rm -f /media/usb/toile/pee_07-30_17h50m_001.h264 
/media/usb/toile/pee_07-30_17h50m_001.mp4 /media/usb/toile/pee_07-30_17h50m_002.h264 /media/usb/toile/pee_07-30_17h50m_002.mp4
/media/usb/toile/pee_07-30_18h01m_001.h264 /media/usb/toile/pee_07-30_18h01m_001.mp4 /media/usb/toile/pee_07-30_18h01m_002.h264 
/media/usb/toile/pee_07-30_18h01m_002.mp4 /media/usb/toile/pee_07-30_18h11m_001.h264 /media/usb/toile/pee_07-30_18h11m_001.mp4 
/media/usb/toile/pee_07-30_18h11m_002.h264 /media/usb/toile/pee_07-30_18h11m_002.mp4 /media/usb/toile/pee_07-30_18h25m_001.h264 
/media/usb/toile/pee_07-30_18h25m_001.mp4 /media/usb/toile/pee_07-30_18h25m_002.h264 /media/usb/toile/pee_07-30_18h25m_002.mp4 
/media/usb/toile/pee_07-30_18h34m_001.h264 /media/usb/toile/pee_07-30_18h34m_001.mp4 /media/usb/toile/pee_07-30_18h39m_001.h264 
/media/usb/toile/pee_07-30_18h39m_001.mp4 /media/usb/toile/pee_07-30_18h47m_001.h264

Conclusion

Lorsque vous irez dans des toilettes publiques, regardez bien si au niveau de la cuvette, collé sur un mur, se trouve un détecteur de fumée. S’il doit y avoir un détecteur de fumée dans des toilettes, il sera au plafond et nulle part ailleurs.

Dans notre cas, il était à environ l’emplacement du rectangle rouge :

emplacement

Le voyeur opérait donc bien de la façon suivante :

  • Il ouvre un point d’accès Wi-Fi à l’aide de son ordiphone, ici MonAP
  • Il pose sa machine dans des toilettes publiques mixtes
  • Il attend sur place qu’une femme entre
  • Il se connecte en SSH depuis son téléphone à sa machine
  • Il commence à filmer
  • Il récupère la raspberry pi quand il en a assez

Étant donné l’absence de chiffrement de la machine, de suppression de logs ou de quoi que ce soit au moment de perdre l’appareil, il est aisé de conclure que l’auteur est un amateur total n’ayant que très peu de connaissances en informatique. Je soupçonne personnellement qu’il aurait suivi un tutoriel venant d’un forum de voyeurs.

Ici la seule chose que vous puissiez faire est vous méfier. Si vous en trouvez un, contactez le personnel du restaurant.

Pour ceux qui ne me croiraient pas, je peux publier une archive des fichiers de la raspi.

N'hésitez pas à me faire des retours via matrix , fédivers ou courriel !

Mis à jour: 03-01-2021

<< Liste d'outils en vrac Centraliser ses abonnements : le flux RSS >>

Commentaires

Vous pouvez commenter cette publication en utilisant votre compte fédivers !