[charmou] Retrouver son ordinateur volé

Salut!
Suite à ce fil : retrouver-son-precieux-ordi-ou-tel-t43072.html
j’ai voulu faire ma propre version, qui ne nécessite pas d’ouverture de session X, comme ça, même si le voleur n’a pas mon mot de passe, le programme est quand même lancé.

C’est un simple script shell, qui est éxécuté par root via une tache cron.

EDIT1 : Si la connexion internet n’est pas disponible, l’envoi est retenté tous les $RETRY secondes.
Plus d’infos ici : yeuxdelibad.net/Programmation/Charmou.html

J’aimerais avoir vos commentaires, et surtout vos idées d’informations supplémentaires à inclure.

:006

Le script :

[code]#!/bin/sh

Some variables, edit to fit your needs

Where the program will work

RPDIR=/tmp/charmou

SSH config. Don’t touch if not needed

You might want to use key authentification instead of clear passwd

YOURSERVER=“superserver.net
LOGIN=“superman”
PORT=“22”

Replace here with your favorite command line

How to get public ip, example "wget -qO- ifconfig.me/ip

PUBLICIP=“wget -qO- yeuxdelibad.net/ip.php

Name of the webcam capture

CAPTUREIMAGE=“webcamshot-$(date +%Y-%m-%d-%H-%M-%S).jpg”

How to take a shot with webcam

WEBCAMSHOT=“fswebcam -q --no-banner $CAPTUREIMAGE”

How to reduce png size. (jpegoptim, optipng, pngnq -e “.png” -f ,…)

OPTIMAGE=“jpegoptim”

How to compress data

ARCHIVE="$(hostname)_$(date +%Y%m%d-%H%M).tgz"
COMPRESS=“tar -czf $ARCHIVE *”

How to get network informations

NTKINFO="/sbin/ifconfig -a && /sbin/iwconfig"

Traceroute to a public server

TRACEROUTE=“traceroute -q1 -n www.google.com

How to get wifi access points

WIFIAP="/sbin/iwlist scanning"

How to know network connections

NTKCNT=“netstat -putn”

Command to upload or send the report

example by email :

UP=“echo “charmou report” | mail -s “Rapport charmou” -a $RPDIR/$ARCHIVE superman@krypton.org

UP=“scp -P $PORT $RPDIR/$ARCHIVE $LOGIN@$YOURSERVER:/home/superman/charmou/”

Time to wait if upload failed (no connexion) in seconds

RETRY=5

LOGFILE=$RPDIR/infos.log

getinfos() {
echo "Date/time: $(date +%Y/%m/%d-%X) "
echo “Computer name: $(hostname)”
echo -n "Public IP: "
eval $PUBLICIP || echo “Public Ip unavailable”
echo “”
echo "Network configuration: "
eval $NTKINFO
echo "Nearby wireless access points: "
eval $WIFIAP
echo "Network routes: "
eval $TRACEROUTE
echo "Current network connections: "
eval $NTKCNT

Add here anything else

}

echo “* Let’s go in $RPDIR…”
mkdir -p $RPDIR || exit 1
cd $RPDIR

echo “* It’s $(date) and we begin the record on $(hostname)”
echo “-----”

echo -n “* Taking shot with webcam…”
eval $WEBCAMSHOT && echo “[done]” || echo “[failed]”

echo -n “* Optimize picture size…”
eval $OPTIMAGE $CAPTUREIMAGE >/dev/null 2>&1 && echo “[done]” || echo “[failed]”

echo -n “* Getting some informations…”
getinfos > $LOGFILE 2>&1 && echo “[done]” || echo “[failed]”

echo -n “* Compressing data…”
eval $COMPRESS && echo “[done]” || echo “[failed]”

echo -n “* Sending report…”
eval $UP
while [ $? -ne 0 ]; do
echo “[failed] -> Trying again in $RETRY sec”
sleep $RETRY
eval $UP
done
echo “[done]”

echo -n “* Cleaning…”
rm -r “$RPDIR” || echo “[done]” || echo “[failed]”

echo “-----”
echo “Bye bye o/”

exit 0
[/code]

Pourquoi deux shabang ?
Pourquoi les commentaires sont rédigés en Anglais, tu comptes le vendre mondialement ?

Erreur de copier/coller

[quote=“ricardo”]
Pourquoi les commentaires sont rédigés en Anglais, tu comptes le vendre mondialement ?[/quote]
Pourquoi pas ? :unamused:
Non, j’ai essayé de faire cet effort, car j’avais reçu pour d’autres scripts le commentaire inverse, c’est à dire que le script devrait pouvoir être interprété par tous. Mais je reconnais que l’on est loin de parler tous anglais, (moi le premier d’où plusieurs fautes certaines). Bref, je n’ai pas trouvé de meilleur compromis…

Il m’a fallut wikipédia pour comprendre… :017
Et un chat+bang pour me marrer… dailymotion.com/video/x9pira … XoyULVUEYk

@Thuban ,cool je vais mettre le script sur mon dédié… :108 :laughing:

[quote=“lol”]
@Thuban ,cool je vais mettre le script sur mon dédié… :108 :laughing:[/quote]
Il a une webcam le dédié? :108

J’ai ajouté la tentative de renvoi des informations en cas d’échec (pas de connexion)

[quote=“thuban”][quote=“ricardo”]
Pourquoi les commentaires sont rédigés en Anglais, tu comptes le vendre mondialement ?[/quote]
Pourquoi pas ? :unamused:
Non, j’ai essayé de faire cet effort, car j’avais reçu pour d’autres scripts le commentaire inverse, c’est à dire que le script devrait pouvoir être interprété par tous. Mais je reconnais que l’on est loin de parler tous anglais, (moi le premier d’où plusieurs fautes certaines). Bref, je n’ai pas trouvé de meilleur compromis…[/quote]Pourquoi c’est nous qui devrions nous mettre à la portée des anglophones et pas l’inverse.
Le pays le plus peuplé du monde et qui est en passe de devenir sa première économie est la Chine, or, les Chinois sont très peu nombreux à comprendre, et a fortiori à parler, l’Anglais.
Les Américains, qui sont beaucoup plus pragmatiques que nous, vendent leurs produits aux Chinois avec une doc, non pas en Anglais mais en … Mandarin. Nous, on en est encore à essayer de leur placer nos fromages avec traduction en mauvais Anglais.
Les Français sont décidément bien frileux.

Je comprend tes arguments. Je pensais juste bien faire d’après les remarques que j’avais reçu.
Allez, tout le monde est content avec ceci : yeuxdelibad.net/coolrepo/charmou/charmou_fr
:slightly_smiling:

@thuban > Désolé je suis passé très vite sur ton script et je n’aurais probablement pas l’occasion de le relire plus que ça. Je ne vois pas l’intérêt de ces trucs sur PC portables (netbook, ultrabook et autres), contrairement aux téléphones portables et aux tablettes. Soit le voleur cherche juste à revendre le matériel et il ne lancera jamais ton OS, soit il cherche à faire du vole d’informations et il ne lancera jamais ton OS.

Par contre tu as besoin donc généralement du wifi, donc il faut que la session graphique soit lancé (donc que le voleur ai le mot de passe d’une des sessions). Tu devrait probablement mettre le script en hook sur la configuration du réseau (/etc/network/interfaces le permet, network-manager aussi, je sais pas pou wicd).

@ricardo > Je n’ai pas compris ta thèse. Tu pense qu’on devrait traduire dans la lange du destinataire ou utiliser le français (te connaissant je me doute de la réponse). Quoi qu’il en soit la documentation et les commentaires sont 2 choses bien différentes (du moins sauf en literate programming, mais bon).

La documentation d’un projet est toujours traduite dans la (ou les) langue du destinataire. Le client galère déjà suffisamment à exprimer son besoin pour ne pas créer d’ambiguïté à cause de la langue. Par contre lorsque l’on parle technique (dans les commentaires du code) c’est l’anglais qui est utilisé (la documentation technique aussi est écrites en anglais). Nous au boulot sur le projet sur le quel je travail les commentaires sont en français mais c’est une exception.

La question n’est pas tellement de savoir si c’est plus simple ou pas pour les anglophones, mais plutôt de simplifier la vie des hispanophones, des germanophones et autres arabes. Tu peut le voir différemment : si demain quelqu’un poste du code dont les commentaires sont en hébreux, ce sera comme s’il n’y avait pas de commentaires pour moi (et un paquet de monde). L’anglais (on peut le regretter mais c’est un fait) le plus petit dénominateur.

Pour la petite histoire, LibreOffice est issu d’OpenOffice.org, lui même issu de StarOffice (propriétaire). StarOffice était développé par une boite allemande Star Division. Les commentaires étaient en allemand. Il n’y a que ces derniers mois qu’ils ont fini de retraduire tous les commentaires pour simplifier les contributions.

À mon humble avis si on n’utilise plus l’allemand, il vaudrait mieux passer à l’esperanto ou une autre langue construite à vocation internationale.

Je ne dis pas qu’il faut faire que des programmes dont les commentaires sont en anglais (c’est déjà pas ce que je fais au boulot), juste que c’est tout à fait compréhensible à fortiori dans le cadre d’un code libre d’avoir des commentaires en anglais.

[quote=“MisterFreez”]@thuban > Désolé je suis passé très vite sur ton script et je n’aurais probablement pas l’occasion de le relire plus que ça. Je ne vois pas l’intérêt de ces trucs sur PC portables (netbook, ultrabook et autres), contrairement aux téléphones portables et aux tablettes. Soit le voleur cherche juste à revendre le matériel et il ne lancera jamais ton OS, soit il cherche à faire du vole d’informations et il ne lancera jamais ton OS.
[/quote]
En effet, si c’est un voleur compétent, il n’allumera même pas l’ordinateur, ni ne le connectera à internet. Mais face à ça, il n’y a rien à faire.
Ce script n’a pas pour ambition d’être LA solution. Disons que c’est une précaution de plus, mais loin d’être infaillible!

[quote=“ricardo”]
Pourquoi c’est nous qui devrions nous mettre à la portée des anglophones et pas l’inverse.
Le pays le plus peuplé du monde et qui est en passe de devenir sa première économie est la Chine, or, les Chinois sont très peu nombreux à comprendre, et a fortiori à parler, l’Anglais.[/quote]

Si tout le monde avait le même raisonnement ce serait une grosse galère pour trouver de l’aide sur internet en programmation.

[quote=“thuban”]Je comprend tes arguments. Je pensais juste bien faire d’après les remarques que j’avais reçu.
Allez, tout le monde est content avec ceci : yeuxdelibad.net/coolrepo/charmou/charmou_fr
:slightly_smiling:[/quote]Super, j’ai tout compris :wink:

FIN DE POLÉMIQUE .

[quote=“thuban”][quote=“MisterFreez”]@thuban > Désolé je suis passé très vite sur ton script et je n’aurais probablement pas l’occasion de le relire plus que ça. Je ne vois pas l’intérêt de ces trucs sur PC portables (netbook, ultrabook et autres), contrairement aux téléphones portables et aux tablettes. Soit le voleur cherche juste à revendre le matériel et il ne lancera jamais ton OS, soit il cherche à faire du vole d’informations et il ne lancera jamais ton OS.
[/quote]
En effet, si c’est un voleur compétent, il n’allumera même pas l’ordinateur, ni ne le connectera à internet. Mais face à ça, il n’y a rien à faire.
Ce script n’a pas pour ambition d’être LA solution. Disons que c’est une précaution de plus, mais loin d’être infaillible![/quote]
Ça dépend de ce que tu recherche :

  • si c’est récupérer ton matériel, il n’y a pas de solution (tu peut le marquer pour éventuellement pouvoir prouver que c’est le tiens plus tard)
  • si c’est pour les informations, tu peut chiffre ton disque et faire des backups

Tu veux dire graver tes intiales dessus :slightly_smiling: ? Ça plus le script, oui pourquoi pas.

[quote=“MisterFreez”]

  • si c’est pour les informations, tu peut chiffre ton disque et faire des backups[/quote]
    C’est en cours. Cryptsetup fonctionne, et la copie du /home prend du temps. :slightly_smiling:

Il vaut mieux laisser une partoche windows (le windows d’origine de la machine), qui se lance par défaut au boot de la machine, sans mot de passe, avec le mouchard installé.

Un windows tout ce qu’il y a de plus vierge bien sûr, genre tout juste réinstallé.

Pour ta partoche Linux bien sûr mieux vaut la chiffrer.

Comme ça tu maximises les chances de retrouver ton matos. Quand bien même le voleur le revend immédiatement (sans le reformater du coup s’il est vraiment très con :033 ).

Bon, tu reçois la photo du gars, son adresse IP éventuelle, qu’est que tu peux faire? Ça me laisse perplexe.

Avec l’adresse IP publique et l’heure à laquelle elle a été enregistrée, les forces de l’ordre peuvent remonter jusqu’à l’abonné, non? :wink:

La version windows permet aussi de faire des captures écran

bobotig.fr/index.php?c=documents/guide-pombo/

[quote=“agentsteel”]Avec l’adresse IP publique et l’heure à laquelle elle a été enregistrée, les forces de l’ordre peuvent remonter jusqu’à l’abonné, non? :wink:

La version windows permet aussi de faire des captures écran

bobotig.fr/index.php?c=documents/guide-pombo/[/quote]
Oui, mais je ne voyais pas à quoi une capture d’écran pouvait aider à retrouver le bonhomme?

Il peut y avoir des informations utiles sur la capture d’écran (sa page facebook…)

Tiens, une situation réelle basée sur le même principe (en 2 parties) :

youtube.com/watch?v=OAI8S2houW4
youtube.com/watch?v=PSTFP6BYXAE

Merci, je regarderai ça en mangeant :slightly_smiling:
Tel qu’est le script, ça ne doit pas être bien difficile de rajouter une capture d’écran avec scrot. Par contre, il ne faut pas éxécuter le script au redémarrage du pc, mais à l’ouverture d’une session seulement. Et si je peux éviter que la session soit ouverte, ça m’arrange :slightly_smiling: Mais à chacun d’adapter à son besoin.

au fait, le cryptage avec cryptsetup sur debian, c’est que du bonheur!