On m'a volé mon ordinateur ! c'est pas grave…


Hello,

 

Hier je regardais une video d’un hacker qui raconte avec humour ses péripéties pour récupérer son ordinateur volé.

C’est alors que je me suis posé « la » question mais que deviendrais je sans mon ordi ?? Mon ordi que j’aime tant et sur lequel je passe toutes mes journées depuis l’âge de 2ans (j’exagère un peu…).

Déjà je pleure ;(

Ensuite, même avec des backups, je n’ai pas envie de repasser autant de temps à tout réinstaller ou reparamétrer…

Alors je me suis fait une petite appli qui se lance au login mon ordi (même pour le compte invité) et permet d’envoyer mon ip externe à un site web en php pour stocker ça dans une base de données.


Ainsi je peux suivre l’adresse ip à chaque connexion de mon ordi…même en session invité (c’est même fait exprès car évidemment ma session perso est « passwordé ») et donc si je me fais voler mon ordinateur peut être que ça pourra m’aider à le retrouver . Je l’ai fait pour mac mais cela est très simple à modifier pour que cela fonctionne sur Windows (cette partie là est même déjà en place dans le code java) ou linux

 

Le principe de l’application est assez simple:

1) au démarrage de l’ordinateur un script lance l’appli java. (Il faudra paramétrer le lancement du script en fonction de votre os, un bat sur windows ou sh sur mac et linux)

2) celle ci va consulter le script whatsmyip.php afin de récupérer son adresse ip

3) ensuite l’appli va envoyer en argument l’ip fraichement récupérée au script storemyip.php

4) et voilà le tour est joué, l’appli java se ferme.

5) vous pourrez consulter l’historique date et ip des 50 dernières connexions avec le script consultmyip.php

 

Voici un petit schéma du détail:

 

 

Reprenons point par point:

(pour les sources évitez les copier/coller à la fin du tuto vous retrouverez un lien pour tout télécharger directement)

1) l’appli Java sur votre ordinateur

 

Vous trouverez le zip avec le code source de l’appli à télécharger ici

Dans cette appli vous trouverez un fichier config/config.properties qui contient les urls de votre server php. Il faudra juste remplacer your.url.com par votre url (si vous conservez la même implantation de fichier sur votre serveur php évidemment)

org.galaxy.url.setmyip=http://your.url.com/storemyip.php

org.galaxy.url.whatsmyip.url=http://your.url.com/whatsmyip.php

Ensuite il ne reste plus qu’à paramétrer l’exécution de votre appli java au démarrage de votre ordinateur.
voici quelques liens pour faire cela. exemple de login hook sur mac: lien1 lien2 lien3
Le script à exécuter se trouve dans le zip, il lance juste le jar. Attention le script doit être exécutable évidemment (sudo chmod +x tracer.sh)
L’appli est assez longue à l’exécution (30sec) mais c’est voulu pour permettre la connexion wifi ou ethernet d’être en place avant de tenter de faire de requêtes sur le web. Bon après votre ordinateur met 30 secondes à s’allumer, je pense que ça peut être réduit (en diminuant la tempo dans le code) ou fait autrement mais moi ça me convient pour le moment.

2) Whatsmyip.php

Ce script vous permet de récupérer l’adresse ip vue de l’extérieur. Un script très simple
<?php
$ip = getenv(« REMOTE_ADDR ») ;
Echo $ip;
?>

3) storemyip.php

Ce script vous permet d’inscrire en base votre adresse ip. Un script très simple, il vous faudra mettre vos paramètres en place dans le fichier.
<?php
// information pour la connection à le DB
$host = ‘localhost‘;
$user = ‘user‘;
$pass = ‘pass‘;
$db = ‘db‘;
$ip = ip2long ( $_GET[‘ip’]);
$us32str = sprintf(« %u »,$ip);
$ip2=long2ip(-(4294967296-$us32str));
$link = mysql_connect ($host,$user,$pass) or die (‘Erreur : ‘.mysql_error() );
mysql_select_db($db) or die (‘Erreur :’.mysql_error());
$insert = « INSERT INTO connexion (date, adresseip) VALUES (NOW(), ‘$ip2′) »;
$result = mysql_query($insert,$link) or die (‘Erreur : ‘.mysql_error() );
?>
Bien sûr il vous faudra une base de donnée Mysql pour écrire dedans, voici le script de création de la table:
CREATE TABLE IF NOT EXISTS `connexion` (
`index` int(11) NOT NULL auto_increment,
`date` datetime NOT NULL,
`adresseip` text NOT NULL,
PRIMARY KEY  (`index`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

3) consultmyip.php

Le travail de stockage est fini maintenant si vous voulez consulter les 50 dernières connexions (50 c’est pour la lisibilité) voici le script:
<html>
<body>
<?php
// information pour la connection à le DB
$host = ‘host‘;
$user = ‘user‘;
$pass = ‘pass‘;
$db = ‘db‘;
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die (‘Erreur : ‘.mysql_error() );
mysql_select_db($db) or die (‘Erreur :’.mysql_error());
// requête SQL qui compte le nombre total d’enregistrements dans la table
//et qui récupère tous les enregistrements
$select = « SELECT date,adresseip FROM connexion ORDER BY date DESC »;
$result = mysql_query($select,$link) or die (‘Erreur : ‘.mysql_error() );

$total = mysql_num_rows($result);

// si on a récupéré un résultat on l’affiche.

if($total) {
// début du tableau
echo ‘<table bgcolor= »#FFFFFF »>’. »n »;
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo ‘<tr>';
echo ‘<td bgcolor= »#669999″><b><u>Date</u></b></td>';
echo ‘<td bgcolor= »#669999″><b><u>Adresse IP</u></b></td>';
echo ‘</tr>’. »n »;
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    $compteur=0;
while($row = mysql_fetch_array($result) and $compteur<=100) {
echo ‘<tr>';
echo ‘<td bgcolor= »#CCCCCC »>’.$row[‘date’].'</td>';
echo ‘<td bgcolor= »#CCCCCC »>’.$row[‘adresseip’].'</td>';
echo ‘</tr>’. »n »;
$compteur++;
}
echo ‘</table>’. »n »;
// fin du tableau.
}else echo ‘Pas d’enregistrements dans cette table…';
// on libère le résultatmysql_free_result($result);
?>
</body>
</html>
Et voilà vous pouvez suivre les ip à chaque connexion de votre ordinateur sur le net. Sachant qui ip peut se localiser relativement facilement, en plus  je vous conseille de mettre vnc, et ssh en route (cf. la video précédente) pour aller un peu plus loin ^^
Vous trouverez toutes les sources java, php et mysql à télécharger ici, notez que si vous souhaitez mettre en place l’application il faudra coller le répertoire tracer à la racine de votre système et faire un loginhook sur le tracer.command

ps: on peut imaginer une requête inverse qui en cas de vol autodétruirait l’ordi ^^ quoi je regarde trop la télé… :p

Enjoy

 

Tagged , , , , , , , ,

2 thoughts on “On m'a volé mon ordinateur ! c'est pas grave…

  1. PunKeel dit :

    Bonjour, Prey est un bon logiciel sinon.
    Open source, qui plus est.

    D’ailleurs, pourquoi faire 2 requêtes ? Vous avez envie qu’on puisse faire un spam de fausses IP ?

    Qui plus est, votre article date de janvier 2012, et l’ipv6 existait déjà.

    Bonne journée ;D

    • admin dit :

      Bonjour,

      Bon ça fait un bail que je ne me suis pas connecté (ordi HS) et du coup là je commence à refaire surface avec mon nouvel ordi ;)

      Donc désolé de ne pas avoir pu répondre si tôt.

      Prey, en effet, à l’air bien sympa et sûrement bien plus efficace que mon petit soft ;)

      Pour mon soft, je fais 2 requêtes:
      -pour récupérer l’adresse ip de mon ordi vu de l’extérieur de mon réseau
      -pour POSTer le résultat sur le script php.

      C’est vrai que j’aurais pu tout intégrer directement dans le script php et du coup me passer d’un petit soft java et passer directement avec un script .sh depuis l’ordo. Mais j’ai fait ce choix car j’avais en tête autre chose techniquement pour mes bidouilles perso ;)

      Pour l’IPv6 je ne me suis pas posé la question car pour le moment ce n’est pas tellement en place.

      Autrement je vous remercie de votre participation au blog. Et promis j’ai mis de côté quelques articles que je vais bientôt publier :).

      N’hésiter à intervenir !
      m42

Comments are closed.