==Phrack Inc.== Volume 0x0b, Issue 0x3c, Phile #0x0e of 0x10 |=------------------------=[ Les feux de circulation ]=------------------=| |=-----------------------------------------------------------------------------=| |=-----------------------=[ plunkett@hush.com ]=-------------------------=| .:Saving the planet, again:. /* * Ceci est prurement educatif; * Toute connaissance gagnee dans ce document s'impose d'elle-meme et donc * l'auteur ne peut etre tenu responsable. Toute activite resultant de * connaissances gagnees dans ce document n'est pas imputable a l'auteur. * Si vous n'acceptez pas cela, priere de vous abstenir de lire la suite. * */ #include Une facon plus sympa pour l'environnement de voyager en voiture. Comme plusieurs d'entre vous se rappellent peut-etre dans tous les films, livres, shows TV, etc. de hacking, il y a eu le cas de quelqu'un qui fraudait les feux de circulation. Eh bien nous riions tous betement a l'apparence irrealiste de cela et n'y avons plus jamais repense. Eh bien dans ma quete pour une planete plus interessante pour nos enfants je me suis senti oblige de penser a une solution pour reduire la quantite de pollution emise par les vehicules de nos jours. Arrete a une intersection, personne d'autre autour, vous etiez encore bloque derriere la lumiere rouge, et cette invisible barriere de culpabilite gouvernementale possedait suffisamment de pouvoir pour vous laisser attendre la et polluer l'air toujours plus, juste pour une minable lumiere verte. Ce serait leet d'avoir un ordinateur portable dans la voiture ou vous pourriez selectionner l'intersection dans une liste, changer le timing [or current stream running], et rouler avec moins de temps perdu et moins de polluants sortis du pot d'echappement et une conscience tranquille. Maintenant, assez de conneries a propos des raisons, allons-y pour la putain de technique. [NDT : desole, je n'ai pas pu rendre le jeu de mots sur "crap" et "shit"] Le systeme de controle de la circulation routiere est un reseau superflu et bien huile qui utilise les meme vieux protocoles que nous connaissons tous. Oui il est hackable et c'est comme dans les films. :) here we go! Une description des termes utilises. - controller C'est le terme technique pour un feu de circulation et ca va etre rapporte comme ca. - UTC Urban Traffic Control [Controle de la Circulation Urbaine], transistors connectes a un ordinateur central par PSTN. Etablit le standard de communication pour les controllers (voir fig. 1) - SCOOT Split Cycle Offset Optimization Technique. [Technique d'Optimisation d'Offset par Separation de Cycle] Un standard maintenant implemente sur la majorite des systemes de circulation routiere a travers le monde. Cela permet un controle adapte des controllers, qui est effectue par le bureau de controle. Il recoit les donnees du traffic routier de boucles fermees autour de l'intersection, qui sont analysees, et renvoit la configuration courante en temps reel au controller. - ITS Intelligent Transport System, c'est juste un mot oral pour decrire le systeme couvrant tout, UTC, SCOOT, CCTV (video) et la pile de protocoles les reliant tous. (voir fig.2) - NTCIP C'est le protocole qui est en passe de devenir un standard pour la gestion des communications de la circulation routiere. Il est base sur TCP/IP et tourne autour de SNMP qui des MIB specifiques pour l'usage dans les messages aux controllers. (le protocole peut varier de pays en pays) Certains controllers aux USA sont compatibles NTCIP, a savoir Thereon et le modele 170 des controllers NEMA. CCTV, VMS, Fields Processors, Ramp metering sont tous relies via NTCIP. - ATC Area Traffic Control [Controle des Zones de Circulation], c'est le bureau central qui controle tous les aspects de la gestion du controle de la circulation routiere. - FEP Front End Processor, Virtual Processing pour les controllers. Localise avant l'ordinateur de gestion, et connecte directement aux controllers via installation par le modem rack ou via le hardware de telemetrie. Un FEP supporte jusqu'a 512 lignes PSTN. - OTU Au Royame Uni c'est le Outstation Transmission Unit [Unite de Transmission aux Stations Exterieures], cela fournit les moyens de convertir les donnees serie venant de l'ordinateur central en donnees paralleles pour le controleur, et fournit l'interchangeabilite des controllers. (Je ne suis pas sur que ce systeme soit un standard a travers le monde, pour l'Afrique du Sud cela est effectue par un CCIU : Controller Communication Interface Unit [Unite d'Interface de Communication avec le Controller) - CMU Cabinet Monitoring Unit [Unite de Surveillance des Armoires], c'est ce qui detecte quand vous fraudez dans la boite juste a cote de la route. Ca rapporte les erreurs hardware/software et emballe les donnees pour rapporter au FEP et ATC. Figure 1. Differants arrangements de liens ----------------------------------------- ---0 jonction 1 / 0----------------0----0 jonction 2 BUREAU ECHANGEUR \ CENTRAL LOCAL ---0 jonction 3 [UTC Radial Arrangement] ---0 jonction 1 / \ 0------------0 \ B.C E.L 0-- jonction 2 / / 0 jonction 3 [UK Multi-drop UTC arrangement] Figure 2. Topologies ITS ------------------------- ________ ________ ________ |COMPUTER|---|COMPUTER|------|COMPUTER| `--------' `--------' `--------' (coax) |_____ | (dialup) |__ (radio) | | | __________ | ____|_____ _____|_____ |CONTROLLER|-| | MASTER |__ |FIELD PROC.|__ `----------' | `----------' | `-----------' | __________ | __________ | ___________ | | VAX/VMS |-| | VAX/VMS |__| |CCTV CAMERA|__| `----------' | `----------' | `-----------' | __________ | __________ | ___________ | |COUNTSTION|-| |CONTROLLER|__| |CONTROLLER |__| `----------' `----------' `-----------' | ___________ | | VAX/VMS |__| `-----------' (Liens Physiques (Liens Physiques (Liens Physiques EIA 232) FSK-modem) Fibres) Introduction ------------ Les boxes de controle de la circulation que vous pouvez voir sur la route ont toutes une configuration standard mise a l'origine, mais elles sont toutes reliees a un bureau central pour modification de la configuration a distance, report d'erreurs, remise a zero, etc. Le ATC heberge un FEP qui se connecte a chaque controller ou a l'echangeur local. Le FEP est la connection reseau directe au controller et fait des requetes au controller toutes les n secondes et recoit ls reponses qui sont transportees a l'ordinateur de control central (OS/2 ou ALPHA VAX en Afrique du Sud et au Royaume Uni) via DECnet sur des cables coaxiaux ou d'autres moyens via le LAN. L'ordinateur de controle analyse ensuite les resultats et determine les erreurs ou les autres donnees et les place dans la base de donnee de controle contral sur un VAX/VMS. La base de donnees est ensuite muine des priorites et est accessible via une interface web sur l'intranet local pour voir les rapports d'erreurs et les infos de timing. Quand une reconfiguration est sortie, un operateur peut mettre toutes les configurations a distance meme si un une remise a zero totale du controller est requise. Cela inclut les timings de streams (les streams sont les differantes configurations de timing), heure locale, reduction de la lumiere, streams d'urgence (pour les ambulances et les choses de ce genre), les differants settings seront discutes plus tard. Quand l'operateur demande un changement dans la configuration, cela est envoye au FEP dans un gros datagrame qui est divise et module pour les communication avec le controller. Les protocoles entre le OTU/CCIU et le FEP n'est d'habitude pas un standard, et des protocoles proprietaires sont installes par le constructeur des unites. Nous montrons un diagrame de comment UTC est relie (fig. 3) figure 3. Diagrame du protocole et du lien physique du systeme UTC ------------------------------------------------------------------ ATC DANS LA BOITE DU CONTROLLER ____________ : |UTC COMPUTER| RS232 SERIAL : `------------' : SERIAL | ___ ______ : _____ : ________ | DECnet-> _______ |___|MODEM |-/--|MODEM|-----|OTU/CCIU| TCP/IP |---------| FEP |_|___| RACK | : `-----' `--------' ETHERNET | `-------' |___`------' : | RS232 LAN -> | : | SERIAL | (NTCIP inclus ) : ___|______ | protocoles : |CONTROLLER| | _______ : `----------' |___| | : `-------' : divers appareils : comme VAX/VMS pour : la surveillance des erreurs et autres. La communication entre le controller et le ATC est faite via un signal bit stream ou certains bits representent une fonction preprogrammee dans un controller. Un bit stream serie seconde par seconde est recu par chaque controller en continu et est converti en parallele pour l'usage interne dans le controller. Le stream consiste en 16 bits, ainsi 32 connections paralleles peuvent etre initiees avec le controller, et certains bits stream controlent certaines fonctions et quelques-unes ont une valeur de retour par exemple pour notifier au controller quel stream est actuellement en cours. La communication pourrait sembler similaire a ceci : 1001011011011101 envoye 1000101111010101 recu Comme il est dit, le protocole de communication est plus que probablement proprietaire et donc non-standard . ie. Le bit de controle 10 pourrait signifier "mettre max duree vert 30s" et dans un autre "tenir les vehicules a l'arret". Mais, globalement, selon les standards ATC, il y a deux ou trois standards comme le control du stream, le controle des urgences et d'autres caracteristiques plutot chic. Mais ce n'est pas important car l'acces a l'ordinateur de controle est de toute facon necessaire pour le controle du controller, et ainsi le protocole specifique utilise n'a pas d'importance. ---------------------------------------------- details techniques des communications, yummy! ---------------------------------------------- messages UTC ------------ Ci-dessous est une description de la communication entre le controller et le ATC. UTC est le systeme qui est actuellement utilise dans la majorite des centres ATC a travers le monde. Et la communication est presque standard. Les messages specifiques de bits de donnees peuvent etre differants dans des pays differants des le moment ou c'est fait de facon proprietaire par le controller et le contructeur du systeme. Mais ils tendent a poser le standard, l'Afrique du Sud est basee sur le systeme Britanique, et le systeme Britanique est le meme qu'en Amerique, et donc tout cela va revenir au meme, sauf pour les fonctions specifiques des zones. Bits de Controle et de Reponse UTC (Fn = F1,F2,F3...Differants niveaux, ---------------------------------- pareil pour Dx) Controle Description Reponse Dn (ou Dx) Demande etage individuel SDn/SDx Fn Force l'etage FM Mode reculer FC HI Empecher appel presse Confirmation etage, etage n Gn Controle manuel MC Vehicule d'urgence EV Defaut de lampe rouge 1 du vehicule RF1 Defaut de lampe rouge 2 du vehicule RF2 SFn Facilite a switcher Scn SO Passer outre le soleil SG Syncronisation du groupe temps CLF CG LO Lampes On/Off LE LL Inhibition du lien local TS Valeur enregistree de syncronisation du switch timer TO Take Over TC Confirmation de la transmission CP Fermer voiure garee CL Moniteur de detection d'erreur DF Groupe temps CLF dans le premier groupe GR1 Reconnexion a distance RR Entree dans le log des erreurs du controller CF [Handset connected] TF Erreur de la lampe LFn [car park occup thresh exeeded] CA Confirmer le vert pour les pietons PC Detecteur de presence de queue VQ [NDT : ah, tiens, jacob, on parle de toi la ;) ] Compte du detecteur de vehicules VC Information parking voiture CSn Queue dans la reserve d'entree du parking voiture CR Detecteur de presence SCOOT Vsn Ouvrir la porte de l'armoire CO PV Tenir les vehicules a l'arret PX Demande pietons au sol [Puffin Clearance Period] PR Confirmation du vert pour les vehicules GX Confirmation de l'indicateur d'attente WI Un controller est normalement installe pour recevoir de 16 a 32 bits de bits de controle a quoi le controller repond par un datagrame de reponse. (notez que les fonctions SCOOT specifiques sont effectuees de meme) Message reponse UTC typique : Bits 1,2 bits de controle (addresse 2) Bit 3 (F1,F2,F3,D2,D3,DX,SO,-) (check la table ci-dessus pour une desription des bits) Bit 4 (-,-,-,-,-,-,-,RT) 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 La communication est faite de facon asynchrone et dans le controller representee comme parallele, alors que dans le FEP elle est en serie. La modulation peut etre faite soit par le FEP soit par l'installation de cartes specifiques au controller. Messages NTCIP (UK et quelques ATC's aux USA) --------------------------------------------- Je ne vais pas discuter du systeme specifique de messages NTCIP parce que cela n'est pas encore pose comme un standard, et surtout, parce que je n'ai pas eu le plaisir de jouer avec. Les Etats-Unis (sauf NY et d'autres grandes villes), l'Afrique du Sud, la Namibie et je pense la majorite des pays a travers le monde utilisent toujours SCOOT capable UTC de facon primaire alors que le Royaume Uni l'adopte comme un standart. La pile NTCIP : Couche Classe A Classe B Classe C ------------------------------------------------------------------ Application (7) SNMP/STMP SNMP/STMP SNMP/STMP/FTP Presentation (6) - - - Session (5) - - - Transport (4) UDP - TCP/UDP Reseau (3) IP Null IP Lien de donnee (2) HDLC HDLC HDLC Physique (1) RS232/FSK RS232/FSK RS232/FSK A et C ne sont pas des standards mais peuvent etre utilisees. Pour la compatibilite tcp et le routage. A et C peuvent etre implementees aussi bien que des piles TCP/IP additionnelles. B est definie comme un standard et est utilisee pour des echanges de donnees a bande passante performante mais ne fournit pas l'assurance de la delivrance, c'est fait au tour par la couche physique pour les retransmission necessaires. B ne contient que trois couches, application, lien de donnee, couche physique. C'est parce que la ligne constante entre le bureau et le controller est fixee donc aucun routage n'est necessaire ; de plus SNMP inclut les fonctions de connection. NTCIP et SNMP et un peu de SMTP : Commandes SNMP : -get -set -get Next/get Bulk -trap Le manager (ATC) peut envoyer la commande 'get' pour retirer des informations de l'agent (controller) et attend une reponse. Mais SNMP de fournit pas l'agent pour intitier le contact, et donc le manager sonde periodiquement avec la commande 'trap'. C'est fait a chaque seconde. La frame SNMP habituelle est de 37 octets ---------------------------------------------------------------------------- |ver|community|command|req id|error status|error index|objct id|objct value| ---------------------------------------------------------------------------- ver = SNMP v1 -NTCIP v2 inclut des fonctionnalites de securite qu'ils ont pensees comme un gachis de bande passante- ;) Id flag = est utilise pour coupler les messages et les reponses. community name = essentiellement un mot de passe noyau du message dans Object ID et Value = les donnees de controle du controller et la section de reponse SNMP est un protocole mangeur de bande passante, donc ils ont designe le STMP (simple transportation management protocol) [protocole de simple gestion de transport) qui est une version simplifiee de SNMP. Cela utilise les memes commandes mais a le bienfait ajoute de ne pas avoir d'entete et d'utiliser des objets dynamiques. Les objets dynamiques peuvent inclure un certain nombre de variables comme le temps, la date, l'annee et tout en un seul objet. Les objets sont definis en ligne et les parties stations interieures et exterieures connaissent ce que les objets decrivent et ainsi juste une simple valeur a besoin d'etre transmise. La taille habituelle d'un message STMP est 1 octet, avec un maximum de 13 objets dynamiques. Comparaisons entre les messages UTC et NTCIP -------------------------------------------------- UK UTC NTCIP classe B Cycle de sonde 1s 1s Taille du message Fixee Variable Variables materielles transmises Toutes Seuls les parametres a changer Valeur des variables materielles bit Entier ou bit Protocoles proprietaires standardises ----------------------------------------------- Hacking the Traffic lights GOdDamnit! #$@#%@#% ----------------------------------------------- Ok je veux sauver l'environnement maintenant, avec ma nouvelle UhbEr technique. A la base, l'idee est d'obtenir un acces a la base de donnees VAX/VMS ou a l'ordinateur de controle en lui-meme. Maintenant, comme cela est dans un LAN interne, et utilise DECnet, nous devons trouver des idees intelligentes pour entrer. Un peu de social engineering peut vous aider grandement. Telephonez a votre municipalite locale, ou checkez sur les sites web, journaux ou n'importe ou, ou est situe le ATC. Maintenant, vous aurez le numero ou contacter les gens qui y travaillent, peut-etre un numero pour rapporter les erreurs. Sortez votre wardialer et commencez a scanner le prefixe. Ils ont surement un serveur ou ils dialup pour donner une tache a un nouveau controller ou quand ils ont besoin d'un d/l de software dans la place. En Afrique du Sud c'est un ordinateur sous DOS avec pc-anywhere dessus. Mais s'ils sont intelligents, comme tous les centres que j'ai vus, ils auront surement une fonction de rappel, sinon vous avez de la chance car apres vous etes directement relie au LAN interne, et pourriez commencer a hacker le VAX ou le FEP. Notez : le FEP est normalement un systeme proprietaire, comme en Afrique du Sud, sous DOS avec des protocoles de communications en serie. Mieux : l'obtention d'un acces a l'ordinateur VAX/OS2 de controle comme systeme plus familier, bien que le FEP a plus de controle sur le systeme de messages au controller. Et vous pouvez acceder aux connections series directement au modem. Si vous etes malchanceux et avez un ATC intelligent. Vous devez inventer un autre moyen d'acceder au LAN interne. Dans mon experience le LAN est toujours connecte au WAN de la municipalite locale pour les mails et l'acces a l'intranet pour la base de donnees des rapports des fautes de conduite routiere. Maintenant pour gagner un acces au WAN local ce n'est pas si difficile, ils sont d'habitude tres gros et fournissent des services comme des sites web, serveurs de mail pour les employes municipaux et autres. Maintenant Hax0r-isez un serveur web ou quelque chose et backdoor-isez le *TRES* *TRES* bien. Vous allez en avoir bien besoin, peut-etre backdoor-isez en plusieurs. :) Maintenant dans le WAN local, vous pouvez probablement acceder au serveur de noms du LAN ATC ou vous pouvez y acceder directement. Je ne suis pas en train de vous fournir un tutorial de hacking, juste des moyens d'acces, donc sniffez les e-mails, le traffic reseau blah blah... jusqu'a ce que vous obteniez un acces au VAX ou a l'ordinateur de controle. Maintenant une fois que vous etes dedans, backdoor-isez le *TRES* *TRES* *TRES* bien ;) Vous devriez utiliser tous les outils et conneries pour se cacher dans un vax, regardez dans phrack pour le hacking VAX/VMS [NDT : traducteurs siouplet ;-)] Il y a de jolis outils pour se cacher des SHOW USER, et des trucs ecrits par mentor et d'autres. Et une fois que vous etes dedans, regardez ce qui est sur le DECnet, et peut-etre voyez si c'est relie a d'autres ATC's. De la vous pouvez acceder aux ordinateurs de controle, aux FEP's et a tout. Essayez de voir les connections serie directement via le FEP ou de voir la communication depuis l'ordinateur de controle, donc vous pouvez calculer le format des messages aux controllers. Ou, si vous etes chanceux, vous pouvez acceder au programe utilise pour les messages en lui-meme, s'il est utilisable a partir d'un terminal [terminal friendly]. A present trouvez un controller dont vous connaissez la localistaion, les addresses sont assez faciles a calculer, la plupart du temps navigez juste dans la base de donnees VAX ou des rapports d'erreurs ou checkez l'intranet local. Maintenant construisez un message et un datagrame convenable des donnees capturees, et faites-lui faire quelque chose de remarquable comme : UTC message - PX DEMANDE PASSAGE PIETON Par chance, vous avez un ordinateur portable ou quelque chose, allez au controller auquel vous avez l'intention de lancer le message. Maintenant vous allez remarquer que tout cela est fait sur tcp/ip, depuis que vous vous etes relie au LAN ou vous allez dans le DECnet VAX/VMS et autour de l'ordinateur de controle/FEP. Donc envoyez la commande et regardez si le controller vous obeit. Si il le fait alors vous pouvez scripter la procedure entiere ;). Faites de jolis timings pour des voyages cools pour l'ENVIRONNEMENT entre les destinations A et B. Les commandes pour forcer un passage sont egalement sont chouettes a avoir, UTC message - Fn ; maintenant si vous etes cloue au sol par un feu rouge, et que vous etes juste en train de mettre de la pollution dans l'air, forcez le passage suivant dans le stream et vous roulerez sans la culpabilite de griller un feu rouge ;) Encore, si vous etes en train de vous balader dans le LAN, surveillez les infos chics comme le source du logiciel de la societe des controllers, car ce logiciels est update vraiment souvent. Cela va peut-etre s'appliquer au serveur de dialup ou a quelque serveur FTP interne. La frequence exacte et la sequence de bit utilisees pour initier le cycle d'urgence dans les controllers, pour les ambulances et les vheicules d'urgence est egalement sympa. Il y a aussi le software qui est utilise pour donner des taches aux controllers et l'unite de main pour le monitoring du champ. Bien entendu hacker le systeme de circulation routiere peut etre miserable et avoir des effets desastreux, mais je sens que si vous avez les competances pour acceder a un systeme comme celui-la, alors vous aurez le bon-sens de ne pas le fsck. |=[ EOF ]=---------------------------------------------------------------=| Traduction par [DegenereScience]DecereBrain, le 14 Janvier 2003, 18:02