# Prise de contrôle

En informatique, le terme prise de contrôle (en anglais, takeover, parfois abrégé par TO) est utilisé dans le contexte de la messagerie instantanée, et notamment au sujet d'IRC pour désigner un acte consistant à prendre le contrôle d'un canal IRC sur un serveur IRC de manière non autorisée. Elle se caractérise par le fait qu'une personne arrive à prendre le contrôle d'un canal en obtenant le statut d'opérateur (marqué par le drapeau +o) en utilisant les failles du protocole Internet Relay Chat.

## Techniques de prise de contrôle usuelles
### Lors d'un netsplit

Lors d'un netsplit, le réseau des serveurs n'est plus connexe. Le statut d'opérateur (ou op) est indépendant de l'état des serveurs ainsi des deux côtés (notés A et B) de la connexion rompue lors d'un netsplit, les opérateurs gardent leur statut. Si tous les utilisateurs d'un canal sont du même côté de la connexion (disons A), le canal n'a plus d'utilisateurs du côté B. Or si un canal est sans utilisateurs, il est détruit. Un utilisateur peut donc recréer ce canal du côté B et y acquérir les droits d'opérateurs qui sont inhérents à tout créateur de canal sur IRC.
Lorsque le netsplit cesse, les utilisateurs du canal des deux côtés de la connexion sont rassemblés et les opérateurs gardent leur statut sur le canal. Puisque le canal du côté B porte le même nom que celui du côté A, l'opérateur du nouveau canal garde son statut d'op lorsque les deux canaux sont réunifiés. Il peut ensuite exclure (kicker) tous les autres opérateurs et obtenir le contrôle complet du canal réunifié.
Pour lutter contre cette attaque de base, des techniques de marquage temporel ont été instaurées. De plus les systèmes IRC modernes étant pourvus de Services (voir Services IRC), il est quasiment impossible de garder un statut usurpé d'opérateur lorsque les serveurs se reconnectent l'un à l'autre. À la reconnexion, le serveur restaure les modes utilisateurs déoppe ceux qui auraient potentiellement pu devenir opérateurs du canal pendant le netsplit. Cela se remarque très facilement quand le netsplit s'achève : tous les utilisateurs qui avaient apparemment disparu réapparaissent et on voit des messages du type :
irc.serveur.net sets mode :+vvvvvvvvv-o User1 User2 User3 User4 User5 User6 User7 User8 User9 UserOp
On voit que les 9 premiers utilisateurs récupèrent leur voix (+v) dans le canal, et que UserOp, qui n'a normalement pas de privilèges opérateur, se fait déopper par le serveur (-o).

### Faux message d'avertissement

Certaines personnes se font passer pour des services du serveurs demandant aux personnes leur mot de passe d'authentification. Pour cela ils adoptent des pseudos voisins et copient le message originel en changeant juste le pseudo auquel il faut envoyer son mot de passe. Cette technique est mise à mal sur certains serveurs qui gardent en mémoire le fournisseur d'accès des personnes s'authentifiant.

### Fausse identité

Une des techniques les moins créatives est de se faire passer pour une personne ayant généralement le drapeau +o$^,$. Cette personne s'étant déconnectée du réseau, le taker peut alors changer son pseudo, usurper celui de la personne et demander à un autre opérateur de lui attribuer les droits. Cette technique est néanmoins beaucoup moins efficace car les droits sont généralement attribués directement via un système d'authentification (inscription auprès des services du réseau).

### Faux serveurs

Une autre technique consiste à faire se connecter des personnes sur la propre connexion des takers. Pour cela, ils ont recours à des scripts spéciaux et se font passer pour des bouncers (ce sont des connexions établies sur des serveurs restant connectés 24h/24 sur un ou plusieurs serveurs IRC). Les personnes se connectant dessus et qui s'authentifient envoient toutes leurs informations aux takers, qui ont juste à les récupérer, ou une fois que le faux bouncer est opérateur sur un chan, les takers peuvent faire en sorte qu'il op tous les takers venant sur le chan.

## Scripts spécialisés

Les scripts utilisés pour faire des takeovers sont prévus pour la plupart pour mIRC et utilisent le langage MRC dérivé du C. Divers types de scripts peuvent être codés pour aider les assaillants :
* masskick (les plus rapides peuvent kicker cinquante personnes par seconde avec cinq clones) ;
* protection (script anti-reprise du chan par les propriétaires légitimes : kicker les non-assaillants qui se deviennent op sur le chan, remettre les modes si quelqu'un les enlève, en particulier le mode invite ou +i)
* amélioration des techniques de prise de contrôle (dès qu'un clone est opérateur il donne le statut d'opérateur (op) aux autres et ensuite ils lancent le masskick).
Les scripts doivent faire preuve d'originalité pour contrer les protections des serveurs (OpServ, Q ...) ainsi que celles des bots anti-takeover.