{"id":289,"date":"2021-12-25T12:15:35","date_gmt":"2021-12-25T11:15:35","guid":{"rendered":"https:\/\/theredwindows.net\/?p=289"},"modified":"2021-12-25T12:28:41","modified_gmt":"2021-12-25T11:28:41","slug":"infrastructures-offensives","status":"publish","type":"post","link":"https:\/\/theredwindows.net\/index.php\/2021\/12\/25\/infrastructures-offensives\/","title":{"rendered":"Infrastructures offensives"},"content":{"rendered":"\n<p>Pr\u00e9voir une attaque est souvent un processus chronophage et m\u00e9ticuleux. \u00c9videmment parce qu\u2019il faut chercher un maximum d\u2019information \u00e0 propos de la cible convenue, mais aussi parce qu\u2019il faut pr\u00e9voir le d\u00e9rouler th\u00e9orique de l\u2019op\u00e9ration, comment proc\u00e9der le plus anonymement possible une campagne de phishing, comment pouvoir d\u00e9poser efficacement les charges virales employ\u00e9es, comment assurer la communication avec notre syst\u00e8me de contr\u00f4le des implants et assurer la persistance des acc\u00e8s. Le tout en pr\u00e9servant la s\u00e9curit\u00e9 des donn\u00e9es de l\u2019entreprise qui a engag\u00e9 la mission et la discr\u00e9tion des op\u00e9rateur pour un tout aussi r\u00e9aliste que possible. Dans cet article nous allons explorer le c\u0153ur d\u2019une mission Red-Team, l\u2019infrastructure qui sera d\u00e9ploy\u00e9e.<\/p>\n\n\n\n<p>Merci d\u2019avance \u00e0 <a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/eban_non\" data-type=\"URL\" data-id=\"https:\/\/twitter.com\/eban_non\" target=\"_blank\">@Eban<\/a> pour les sch\u00e9mas, n\u2019h\u00e9sitez pas \u00e0 aller regarder son travail !<\/p>\n\n\n\n<h2>Quelques consid\u00e9rations<\/h2>\n\n\n\n<p>Chaque \u00e9tape de la &#8220;cyber killchain&#8221; poss\u00e8de ses sp\u00e9cificit\u00e9s, et par cons\u00e9quent des TTPs (&#8220;Tactics, Techniques and Procedures&#8221;) propres. Ainsi, l\u2019infrastructure doit suivre quelque soit la phase dans laquelle nous nous situons et s\u2019adapter pour fournir la simulation la plus r\u00e9aliste possible d\u2019une attaque, et de surcro\u00eet la plus grande marche de man\u0153uvre possible pour les op\u00e9rateurs. En revanche, chacune de ces \u00e9tapes a ses exigences, que ce soit en terme de discr\u00e9tion, de communications, d\u2019interactions avec les humains derri\u00e8re notre cible (en raison des TTPs li\u00e9es et aux outils qui seront utilis\u00e9s). On doit donc r\u00e9partir, en fonction de ses besoins, l\u2019investissement en viabilit\u00e9, efficacit\u00e9 et rapidit\u00e9. N\u00e9anmoins il est presque, si \u00e7a ne l\u2019est pas, impossible de combiner enti\u00e8rement ces exigences. En outre, communiquer de mani\u00e8res efficaces (que ce soit en difficult\u00e9 d\u2019\u00eatre bloqu\u00e9 ou en quantit\u00e9 de donn\u00e9es qu\u2019il est possible d\u2019exfiltrer) peut se baser sur des protocoles pr\u00e9cis\u00e9ment peu rapide (comme l\u2019utilisation de services web externes), ou bien peu viable comme DNS qui se base sur UDP, beaucoup plus rarement TCP (perte de paquets possible et assez facilement d\u00e9tectable en cas de quantit\u00e9 de donn\u00e9es cons\u00e9quente). Pour mieux imager cela, prenons plusieurs exemples. Pour le maintient d\u2019acc\u00e8s, il est s\u00fbrement pr\u00e9f\u00e9rable de limiter l\u2019efficacit\u00e9 de la communication et de privil\u00e9gier la viabilit\u00e9 de celle-ci. En revanche lors de l\u2019exploitation active, on voudrait avoir un mixe entre viabilit\u00e9 et efficacit\u00e9 pour avoir un certain confort. L\u00e0 o\u00f9, pour l\u2019acc\u00e8s initial nous voudrions nous concentrer sur la rapidit\u00e9 d\u2019ex\u00e9cution et donc sur l\u2019efficacit\u00e9, pour rapidement obtenir un acc\u00e8s stable \u00e0 l\u2019environnement cible.<\/p>\n\n\n\n<p>Il faut de plus pr\u00e9voir d\u2019autres contraintes issues de constats simples:<\/p>\n\n\n\n<ul><li>La discr\u00e9tion des op\u00e9rations devra d\u2019une certaine fa\u00e7on \u00eatre assur\u00e9e par notre infrastructure. La quantit\u00e9 d\u2019informations que les attaquants laisseront voir, par exemple, devra \u00eatre minimiser pour emp\u00eacher la blue-team de trop rapidement se rendre compte de l\u2019attaque. Maximiser la diversit\u00e9 d&#8217;IPs ou de domaines engag\u00e9s, de m\u00e9thodes de communications, pour mieux se fondre dans le trafic et se cacher des d\u00e9fenseurs.<\/li><li>Malgr\u00e9 cela, il faut tout de m\u00eame anticiper les cas qui mettraient en p\u00e9ril la mission. En cas de d\u00e9couverte de domaines, de serveurs servant aux attaquants. Il faut ainsi avoir la capacit\u00e9 de rapidement se remettre d\u2019un tel \u00e9v\u00e8nement. Ou si cela est impossible, segmenter un maximum l\u2019infrastructure (en ne faisant pas cumuler les r\u00f4les d\u2019un m\u00eame serveur, par exemple) afin d\u2019\u00e9viter qu\u2019un seul \u00e9l\u00e9ment provoque la fin de l\u2019attaque.<\/li><li>Enfin, les serveurs lou\u00e9s, ou les services utilis\u00e9s devront correctement \u00eatre capable de s\u00e9curiser les donn\u00e9es qui vont \u00eatre exfiltr\u00e9es. Une entreprise engage une mission Red-Team pour \u00e9viter une attaque qui causerait la fuite de donn\u00e9es sensibles, et non provoquer ladite fuite&nbsp;!<\/li><\/ul>\n\n\n\n<p>L\u2019une des entit\u00e9s les plus importante dans notre infrastructure est le &#8220;Command &amp; Control&#8221; qui assure la communication avec les utilisateurs compromis, et permet la continuation de l\u2019attaque une fois l\u2019environnement cibl\u00e9 atteint.<\/p>\n\n\n\n<h2>Command &amp; Control<\/h2>\n\n\n\n<p>Le terme de &#8220;Command &amp; Control&#8221; (aussi abr\u00e9g\u00e9 C2) est originellement un terme militaire d\u00e9signant un mod\u00e8le organisationnel et structurel employant un certain nombre de ressources diff\u00e9rentes pour remplir un objectif pr\u00e9cis. L\u2019emploi qu\u2019il se fait de ce terme en est l\u00e9g\u00e8rement d\u00e9riv\u00e9 et d\u00e9signe un ensemble d\u2019outils permettant d\u2019assurer la communication et le contr\u00f4le de machines compromises. M\u00eame s\u2019il subsiste une id\u00e9e commune et g\u00e9n\u00e9rale entre ces deux d\u00e9finitions.<\/p>\n\n\n\n<p>On peut d\u00e8s lors se rappeler que nous sommes assez ais\u00e9ment capable de produire des programmes permettant d\u2019avoir une ex\u00e9cution de commandes sur une autre machine (les classiques et tr\u00e8s connus &#8220;reverse shell&#8221;). Nous avons perfectionn\u00e9 ces outils pour pouvoir optimiser diff\u00e9rents m\u00e9canismes de post-acc\u00e8s. Prenez Metasploit par exemple qui introduit des fonctionnalit\u00e9s comme l\u2019analyse de vuln\u00e9rabilit\u00e9s en vue d\u2019escalade de privil\u00e8ges, ou encore le d\u00e9ploiement de &#8220;proxysocks&#8221; permettant des mouvements lat\u00e9raux plus ais\u00e9s. Nous souhaitons d\u00e9sormais aller plus loin, en commen\u00e7ant par chercher les d\u00e9fauts de ces impl\u00e9mentations, puis en incluant certains des aspects que nous avons vu dans la section pr\u00e9c\u00e9dente. Lorsqu\u2019un acc\u00e8s est obtenu avec le syst\u00e8me de Metasploit (nomm\u00e9 meterpreter, les autres aussi ont des noms sp\u00e9cifiques) la fermeture du programme client entra\u00eene la fermeture du programme serveur, ainsi nous perdons notre acc\u00e8s. De plus, il n\u2019est pas confortable de l\u2019utiliser dans le cas du contr\u00f4le de plusieurs implants. En effet, il faut \u00e0 chaque fois relancer l\u2019\u00e9coute de potentielles nouvelles charges d\u00e9clench\u00e9es. De surcro\u00eet, l\u2019usage le plus commode consiste en l\u2019usage d\u2019un canal de communication TCP ce qui tr\u00e8s facilement d\u00e9tectable avec Wireshark par exemple.<\/p>\n\n\n\n<p>C\u2019est sur ces consid\u00e9rations (et d\u2019autres encore) qu\u2019ont \u00e9t\u00e9 pens\u00e9s la plupart des C2s modernes comme <a rel=\"noreferrer noopener\" href=\"https:\/\/www.cobaltstrike.com\/\" data-type=\"URL\" data-id=\"https:\/\/www.cobaltstrike.com\/\" target=\"_blank\">CoblaltStrike<\/a> (beacons), <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/BC-SECURITY\/Empire\" data-type=\"URL\" data-id=\"https:\/\/github.com\/BC-SECURITY\/Empire\" target=\"_blank\">PowerShellEmpire<\/a> (agents), <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/cobbr\/Covenant\" data-type=\"URL\" data-id=\"https:\/\/github.com\/cobbr\/Covenant\" target=\"_blank\">Covenant<\/a> (grunts), <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/SharpC2\/SharpC2\" data-type=\"URL\" data-id=\"https:\/\/github.com\/SharpC2\/SharpC2\" target=\"_blank\">SharpC2<\/a> (drones), dnscat\/<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/iagox86\/dnscat2\" data-type=\"URL\" data-id=\"https:\/\/github.com\/iagox86\/dnscat2\" target=\"_blank\">dnscat2<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/its-a-feature\/Mythic\" data-type=\"URL\" data-id=\"https:\/\/github.com\/its-a-feature\/Mythic\" target=\"_blank\">Mythic<\/a> (agents), koadic (zombies), <a rel=\"noreferrer noopener\" href=\"https:\/\/bruteratel.com\/\" data-type=\"URL\" data-id=\"https:\/\/bruteratel.com\/\" target=\"_blank\">bruteratel<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/nettitude\/PoshC2\" data-type=\"URL\" data-id=\"https:\/\/github.com\/nettitude\/PoshC2\" target=\"_blank\">PoshC2<\/a> (la l\u00e9gende raconte qu\u2019il a m\u00eame <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/StrangerealIntel\/CyberThreatIntel\/blob\/master\/Iran\/APT\/APT33\/16-11-19\/Analysis\" data-type=\"URL\" data-id=\"https:\/\/github.com\/StrangerealIntel\/CyberThreatIntel\/blob\/master\/Iran\/APT\/APT33\/16-11-19\/Analysis\" target=\"_blank\">\u00e9t\u00e9 utilis\u00e9 par APT33<\/a>) pour n\u2019en citer que quelques uns. Le fonctionnement g\u00e9n\u00e9ral de ces derniers se base sur un syst\u00e8me tr\u00e8s simple qui offre une immense souplesse op\u00e9rationnelle, un &#8220;teamserver&#8221; et un client qui sont ind\u00e9pendant. Le premier assure un certains nombre de choses:<\/p>\n\n\n\n<ul><li>La communication avec les implants au travers de plusieurs protocoles simultan\u00e9ment.<\/li><li>La pr\u00e9servation des communications m\u00eame sans qu\u2019aucun client (op\u00e9rateur) n\u2019y soit connect\u00e9.<\/li><li>L\u2019utilisation des capacit\u00e9s de post-exploitation disponibles.<\/li><\/ul>\n\n\n\n<p>Et encore bien d\u2019autres. Aussi, il expose un acc\u00e8s pour le client, g\u00e9n\u00e9ralement en ouvrant un port sp\u00e9cifique.<\/p>\n\n\n\n<p>Le client lui, est l\u2019interface qui permet \u00e0 un op\u00e9rateur d\u2019user de toutes les capacit\u00e9s de son C2. Il existe plusieurs sch\u00e9mas: soit le client demande \u00e0 l\u2019op\u00e9rateur les informations permettant de se connecter au &#8220;teamserver&#8221; (l\u2019ip o\u00f9 il faut se connecter, le port, etc); soit le &#8220;teamserver&#8221; ouvre une interface web sur laquelle les op\u00e9rateurs se connectent directement.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"490\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-1024x490.png\" alt=\"\" class=\"wp-image-290\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-1024x490.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-300x144.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-768x367.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-1536x735.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-2048x980.png 2048w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-1870x895.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-400x191.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema1-800x383.png 800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Cette architecture nous donne donc un grand nombre de possibilit\u00e9s, multiplier les serveurs de contr\u00f4le, pouvoir \u00e9tablir une hi\u00e9rarchie et des r\u00f4les sp\u00e9cifiques en fonction de la structure dans laquelle ils sont utilis\u00e9s, pouvoir ais\u00e9ment segmenter l\u2019infrastructure\u2026 Usuellement, les fonctions de post-acc\u00e8s sont assez commune aux diff\u00e9rents C2, comme la capacit\u00e9 d\u2019ex\u00e9cuter du PowerShell avec PowerPick (si \u00e7a vous dit rien, j\u2019ai \u00e9cris <a rel=\"noreferrer noopener\" href=\"https:\/\/theredwindows.net\/index.php\/2021\/05\/16\/contournement-des-protections-de-powershell-1-ep-amsi-clm\/\" data-type=\"URL\" data-id=\"https:\/\/theredwindows.net\/index.php\/2021\/05\/16\/contournement-des-protections-de-powershell-1-ep-amsi-clm\/\" target=\"_blank\">un article sur le sujet<\/a>), ou encore l\u2019ex\u00e9cution d\u2019Assembly .NET en m\u00e9moire (via la R\u00e9flexion pour les C2 usant beaucoup de C# par exemple, l\u00e0 aussi si cela vous est inconnu <a rel=\"noreferrer noopener\" href=\"https:\/\/theredwindows.net\/index.php\/2021\/07\/28\/reflexion-en-powershell\/\" data-type=\"URL\" data-id=\"https:\/\/theredwindows.net\/index.php\/2021\/07\/28\/reflexion-en-powershell\/\" target=\"_blank\">regarder la section programmation du blog<\/a>). Ce qui diff\u00e8rent en revanche, sont les capacit\u00e9s de mouvement lat\u00e9ral, comme le C2 pair-\u00e0-pair (i.e, la capacit\u00e9 qu\u2019ont les implants \u00e0 se lier entre eux pour cr\u00e9er un r\u00e9seau de communication, ainsi le serveur de contr\u00f4le n\u2019est pas constamment interrog\u00e9), et les syst\u00e8mes de communications qui sont impl\u00e9ment\u00e9s. Les communications avec les machines compromises peuvent se faire au travers des techniques aussi diverses que vari\u00e9es:<\/p>\n\n\n\n<ul><li>Connexion TCP directe (le cas du &#8220;reverse-tcp&#8221;) mais rarement utilis\u00e9e car peu discr\u00e8te, le tunnel de communication est synchrone.<\/li><li>Protocoles Webs avec HTTP(s) par exemple, ce qui a pour int\u00e9r\u00eat de simuler un trafic l\u00e9gitime, certains C2 vont plus loin en cachant les commandes dans le contenu des pages dont on fait la requ\u00eate qui sont construites pour \u00eatre l\u00e9gitime (c\u2019est le cas de <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/trustedsec\/trevorc2\" data-type=\"URL\" data-id=\"https:\/\/github.com\/trustedsec\/trevorc2\" target=\"_blank\">TrevorC2<\/a>). C\u2019est le protocole HTTP(s) qui constitue la m\u00e9thode la plus r\u00e9pandue. Cette m\u00e9thode est dite asynchrone, le malware fait des appels au C2, apr\u00e8s un intervalle de temps pr\u00e9cis (il est n\u00e9cessaire de le garder relativement \u00e9lev\u00e9 pour \u00eatre discret).<\/li><li>Autres protocoles comme SMTP, FTP ou DNS (pour le premier, <a rel=\"noreferrer noopener\" href=\"https:\/\/attack.mitre.org\/techniques\/T1071\/003\/\" data-type=\"URL\" data-id=\"https:\/\/attack.mitre.org\/techniques\/T1071\/003\/\" target=\"_blank\">on a vu APT28 l\u2019utiliser<\/a>, pour le troisi\u00e8me on peut citer CobaltStrike ou bien s\u00fbr dnscat).<\/li><li>Au travers des services Web&nbsp;: dropbox, OneDrive, Outlook, github, reddit voir m\u00eame Twitter (c\u2019est le cas de PowerShell Empire, et du <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/FSecureLABS\/C3\" data-type=\"URL\" data-id=\"https:\/\/github.com\/FSecureLABS\/C3\" target=\"_blank\">C3 de F-SecureLabs<\/a>, C3 pour Custom Command &amp; Control il permet entre autres de d\u00e9ployer des canaux de communications \u00e9sot\u00e9riques).<\/li><li>Pour ce qui est du C2 paire \u00e0 paire, tout ce qui permet de cacher son trafic est utile, ouvrir un port TCP, utiliser les <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">NamedPipe<\/code> SMB, LDAP (les deux premiers sont tr\u00e8s souvent utilis\u00e9s, LDAP quant \u00e0 lui peut \u00eatre vu avec C3) <a rel=\"noreferrer noopener\" href=\"https:\/\/attack.mitre.org\/techniques\/T1572\/\" data-type=\"URL\" data-id=\"https:\/\/attack.mitre.org\/techniques\/T1572\/\" target=\"_blank\">ou m\u00eame RDP<\/a>.<\/li><\/ul>\n\n\n\n<p>Globalement il s\u2019ag\u00eet de jouer avec les protocoles disponibles pour mieux se cacher et rester silencieux, il n\u2019est ainsi pas exclu de se cacher dans des protocoles <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/samratashok\/nishang\/blob\/master\/Shells\/Invoke-PowerShellIcmp.ps1\" data-type=\"URL\" data-id=\"https:\/\/github.com\/samratashok\/nishang\/blob\/master\/Shells\/Invoke-PowerShellIcmp.ps1\" target=\"_blank\">aussi exotiques que ICMP<\/a>. Les capacit\u00e9s des diff\u00e9rents C2 existant peuvent <a rel=\"noreferrer noopener\" href=\"https:\/\/www.thec2matrix.com\/matrix\" data-type=\"URL\" data-id=\"https:\/\/www.thec2matrix.com\/matrix\" target=\"_blank\">\u00eatre consult\u00e9es ici<\/a> (<a rel=\"noreferrer noopener\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1b4mUxa6cDQuTV2BPC6aA-GR4zGZi0ooPYtBe4IgPsSc\/edit#gid=0\" data-type=\"URL\" data-id=\"https:\/\/docs.google.com\/spreadsheets\/d\/1b4mUxa6cDQuTV2BPC6aA-GR4zGZi0ooPYtBe4IgPsSc\/edit#gid=0\" target=\"_blank\">version actualis\u00e9e<\/a>). Attention cependant, pour des C2s comme CobaltStrike ou PowerShell Empire, leur comportement peut \u00eatre modifi\u00e9 gr\u00e2ce \u00e0 des profiles mall\u00e9ables, pour les autres, il faut modifier le code!<\/p>\n\n\n\n<p>En plus des diff\u00e9rents moyens de communication, il peut \u00eatre int\u00e9ressant de jouer sur d\u2019autres facteurs pour dissimuler et s\u00e9curiser son trafic, notamment avec la forme de ce dernier: en utilisant du chiffrement, <a rel=\"noreferrer noopener\" href=\"https:\/\/h0mbre.github.io\/Image_Based_C2_PoC\/\" data-type=\"URL\" data-id=\"https:\/\/h0mbre.github.io\/Image_Based_C2_PoC\/\" target=\"_blank\">de la st\u00e9ganographie<\/a> qui a \u00e9t\u00e9 utilis\u00e9e par APT29 par exemple, et beaucoup d\u2019autres que vous <a rel=\"noreferrer noopener\" href=\"https:\/\/attack.mitre.org\/tactics\/TA0011\/\" data-type=\"URL\" data-id=\"https:\/\/attack.mitre.org\/tactics\/TA0011\/\" target=\"_blank\">pouvez retrouver ici<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" width=\"1000\" height=\"500\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/steg.png\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/steg.png 1000w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/steg-300x150.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/steg-768x384.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/steg-400x200.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/steg-800x400.png 800w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption>issue de <a href=\"https:\/\/curtbraz.medium.com\/one-part-steganography-four-redirectors-and-a-splash-of-c2-e13e5a65daa9\" data-type=\"URL\" data-id=\"https:\/\/curtbraz.medium.com\/one-part-steganography-four-redirectors-and-a-splash-of-c2-e13e5a65daa9\" target=\"_blank\" rel=\"noreferrer noopener\">cet article<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>Les serveurs C2s qui seront utilis\u00e9es sont souvent divis\u00e9es en fonction des t\u00e2ches \u00e0 accomplir, en particulier vous trouverez dans la plupart des documentations (y compris celle de CobaltStrike) les serveurs dis &#8220;short-haul&#8221; et &#8220;long-haul&#8221;. Traduit litt\u00e9ralement &#8220;court-terme&#8221; et &#8220;long-terme&#8221;, le premier d\u00e9signe un serveur C2 d\u00e9di\u00e9 aux op\u00e9rations actives (exploitation de l\u2019environnement), le deuxi\u00e8me est d\u00e9di\u00e9 \u00e0 la persistance dont les implants communiqueront avec un tr\u00e8s haut d\u00e9lai -Raphael Mudge, le cr\u00e9ateur de CobaltStrike recommande 24h entre les checkin -i.e le temps d\u2019intervalle qui s\u00e9pare les communications entre le C2 et le malware-. Ils doivent \u00eatre extr\u00eamement discret car c\u2019est eux qui permettent \u00e0 l\u2019op\u00e9ration de tenir dans la dur\u00e9e. Je dois ajouter cependant que dans le cas de Cobaltstrike, le processus est vraiment facilit\u00e9 car le client poss\u00e8de la capacit\u00e9 de se connecter \u00e0 plusieurs &#8220;teamserver&#8221; en m\u00eame temps. Les serveurs &#8220;short-haul&#8221; sont vou\u00e9s \u00e0 \u00eatre d\u00e9couvert et potentiellement chang\u00e9s. Il ne faut donc pas h\u00e9siter \u00e0 multiplier le nombre de ces serveurs pour pouvoir cr\u00e9er une diversit\u00e9 en terme de domaine et d\u2019IPs qui rendra l\u2019ensemble des communications plus discr\u00e8tes.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"517\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-1024x517.png\" alt=\"\" class=\"wp-image-291\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-1024x517.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-300x152.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-768x388.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-1536x776.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-2048x1035.png 2048w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-1870x945.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-400x202.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema2-800x404.png 800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Cependant pour \u00e9viter \u00e0 avoir remplacer les serveurs d\u00e9couvert, et optimiser la discr\u00e9tion il faut concevoir une nouvelle entit\u00e9 qui aura un r\u00f4le presque aussi important que celui du C2.<\/p>\n\n\n\n<h2>&#8220;Redirecteurs&#8221;<\/h2>\n\n\n\n<p>Pour l\u2019instant nous avons une entit\u00e9 qui permet de contr\u00f4ler les machines compromises et qui de surcro\u00eet assure une certaine discr\u00e9tion. Probl\u00e8me, lorsqu\u2019un nouvel implant se connecte \u00e0 notre C2, c\u2019est ce dernier qui sera directement contacter. Or si un membre de la Blue-Team intercepte notre communication et remontre \u00e0 notre serveur, il en d\u00e9duira s\u00fbrement qu\u2019il s\u2019ag\u00eet d\u2019une potentielle attaque. Il nous faut donc trouver un moyen d\u2019avoir des relais qui peuvent \u00eatre d\u00e9couvert (et donc facilement rempla\u00e7able) sans pour autant compromettre les C2s. Pour cela il faudra s\u2019accorder avec la m\u00e9thode de communication choisie (il est assez \u00e9vident que pour certaines m\u00e9thodes, il n\u2019existe pas de relais). Il en existe globalement de 2 types, les redirecteurs HTTP et DNS, je ne vais traiter ici que le premier.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"709\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-1024x709.png\" alt=\"\" class=\"wp-image-292\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-1024x709.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-300x208.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-768x532.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-1536x1064.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-2048x1419.png 2048w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-1870x1295.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-400x277.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema3-800x554.png 800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>3 m\u00e9thodes existent pour cr\u00e9er des redirecteurs HTTP(s). Les deux premi\u00e8res sont assez simples et naturelles. Avec socat:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">socat TCP4-LISTEN:80,fork TCP4:&lt;ADRESSE DE VOTRE C2>:80<\/pre>\n\n\n\n<p>Mais aussi avec iptables:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT\niptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination &lt;ADRESSE DE VOTRE C2>:80\niptables -t nat -A POSTROUTING -j MASQUERADE\niptables -I FORWARD -j ACCEPT\niptables -P FORWARD ACCEPT\nsysctl net.ipv4.ip_forward=1<\/pre>\n\n\n\n<p>Ces m\u00e9thodes ont l\u2019avantage d\u2019\u00eatre simple et rapide \u00e0 mettre en place, mais elles posent un probl\u00e8me. Si effectivement les adresses de nos C2 sont cach\u00e9es, cela n\u2019emp\u00eache les \u00e9quipes de r\u00e9ponse \u00e0 incident d\u2019acc\u00e9der au contenu des serveurs puisque aucun filtrage n\u2019est effectu\u00e9. Pour r\u00e9pondre \u00e0 cette probl\u00e9matique on peut utiliser apache et son extension <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">mod_rewrite<\/code> qui est un module permettant d\u2019effectuer des tests conditionnels sur les requ\u00eates qui sont faites sur le serveur web. Voil\u00e0 un sch\u00e9ma pour illustrer cette id\u00e9e:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"704\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-1024x704.png\" alt=\"\" class=\"wp-image-294\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-1024x704.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-300x206.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-768x528.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-1536x1056.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-2048x1408.png 2048w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-1870x1285.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-400x275.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema5-800x550.png 800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Avant d\u2019installer le module, il faut \u00e9diter la configuration de apache (<code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">\/etc\/apache2\/apache.conf<\/code>) et changer un param\u00e8tre dans le bloc suivant (si vous choisissez \u00e9videmment <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">\/var\/www<\/code> comme \u00e9tant le r\u00e9pertoire qui sera expos\u00e9 par apache):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;Directory \/var\/www\/>\n        Options Indexes FollowSymLinks\n        AllowOverride None\n        Require all granted\n&lt;\/Directory><\/pre>\n\n\n\n<p>le param\u00e8tre sera chang\u00e9 <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">AllowOverride None<\/code> pour <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">AllowOverride All<\/code>. Une fois cela fait, on peut d\u00e9sormais installer les modules n\u00e9cessaire avec:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo a2enmod rewrite proxy proxy_http <\/pre>\n\n\n\n<p>Et red\u00e9marrer le service apache: <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">systemctl restart apache2 <\/pre>\n\n\n\n<p>Ensuite il faut cr\u00e9er les r\u00e8gles de tests. Pour cela il faut d\u00e9j\u00e0 inclure dans notre profil mall\u00e9able les urls qui seront utilis\u00e9 pour les diff\u00e9rentes requ\u00eates que l\u2019implant fera: stage, GET, POST \u2026 ainsi que le &#8220;user agent&#8221; qui sera utilis\u00e9. Les r\u00e8gles utilis\u00e9es par <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">mod_rewrite<\/code> sont des Regex coupl\u00e9es avec une syntaxe un peu particuli\u00e8re. En effet les tests sont effectu\u00e9s sur des variables g\u00e9n\u00e9r\u00e9es lorsqu\u2019une requ\u00eate est effectu\u00e9e. Le domaine sera d\u00e9sign\u00e9 par la variable <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">%{HTTP_HOST}<\/code>, l\u2019uri par <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">%{REQUEST_URI}<\/code>, les param\u00e8tres qui y seront ajout\u00e9s par <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">%{QUERY_STRING}<\/code>, le user-agent par <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">%{HTTP_USER_AGENT}<\/code>, l\u2019ip de requ\u00eate par <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">%{REMOTE_ADDR}<\/code> et encore bien d\u2019autres que vous <a rel=\"noreferrer noopener\" href=\"https:\/\/httpd.apache.org\/docs\/current\/mod\/mod_rewrite.html\" data-type=\"URL\" data-id=\"https:\/\/httpd.apache.org\/docs\/current\/mod\/mod_rewrite.html\" target=\"_blank\">pourrez retrouver ici<\/a>. Pour effectuer un test on utilise l\u2019instruction <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">RewriteCond<\/code> qui est suivie de la variable sur laquelle on effectue le test. Ensuite on indique par <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">^<\/code> le test regex. On termine avec un petit flag qui modifie encore le comportement. Vous pouvez \u00e9videmment cumuler les tests. Pour cela on retourne \u00e0 la ligne et on replace un test (sur une autre variable par exemple). Ces deux tests \u00e0 la suite seront consid\u00e9r\u00e9s par apache comme un <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">AND<\/code> par d\u00e9faut, si vous souhaitez un comportement autre, il faudra ajouter le flag <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">[OR]<\/code> \u00e0 la fin du test. Maintenant que nous avons effectu\u00e9 notre test il faut donc construire la redirection qui sera effectu\u00e9e en fonction de la validation ou non du test. Pour cela on utilise l\u2019instruction <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">RewriteRule<\/code>.<\/p>\n\n\n\n<p>Pour terminer la configuration, on modifie le fichier <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">.htaccess<\/code> \u00e0 la racine du site en ajoutant en premier lieu <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">RewriteEngine On<\/code>, et en pla\u00e7ant vos tests \u00e0 la suite. De plus, pour activer le support du SSL, il faut modifier le contenu du fichier <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">\/etc\/apache2\/sites-available\/000-default-le-ssl.conf<\/code>.<\/p>\n\n\n\n<p>En vue d\u2019une \u00e9conomie de temps certaine, il existe un outil permettant d\u2019automatiser ce processus: <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/threatexpress\/cs2modrewrite\" data-type=\"URL\" data-id=\"https:\/\/github.com\/threatexpress\/cs2modrewrite\" target=\"_blank\">cs2modrewrite<\/a>. Cr\u00e9\u00e9 par <a href=\"https:\/\/twitter.com\/joevest\" data-type=\"URL\" data-id=\"https:\/\/twitter.com\/joevest\" target=\"_blank\" rel=\"noreferrer noopener\">Joe Vest<\/a> lorsqu&#8217;il \u00e9tait \u00e0 SpecterOps (et oui encore eux) il prend en argument 3 param\u00e8tres, <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">-i<\/code> qui est le chemin vers le profile mall\u00e9able, <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">-<\/code>c qui est l\u2019h\u00f4te http(s) du c2 (au format <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">http(s):\/\/domain.com<\/code> ou <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">http(s):\/\/ip<\/code>), <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">-r<\/code> l\u2019adresse de redirection au m\u00eame format que le param\u00e8tre pr\u00e9c\u00e9dent. Le r\u00e9sultat doit \u00eatre plac\u00e9 dans le <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">.htaccess<\/code>, mais avant n\u2019oubliez pas de regarder pour de potentiels erreurs.<\/p>\n\n\n\n<p>A noter qu\u2019il est \u00e9galement possible de faire des redirecteurs HTTP(s) avec d\u2019autres technologies comme par Nginx dont je n\u2019ai pas parl\u00e9 car je n\u2019ai pas du tout d\u2019exp\u00e9rience avec, ou encore AWS lambda, dont je ne connais que les tr\u00e8s grandes lignes alors en attendant que je m\u2019y attarde et \u00e9dite cette article je vous invite \u00e0 lire celui de <a href=\"https:\/\/twitter.com\/_xpn_\" data-type=\"URL\" data-id=\"https:\/\/twitter.com\/_xpn_\" target=\"_blank\" rel=\"noreferrer noopener\">@_xpn_<\/a> (en anglais) <a href=\"https:\/\/blog.xpnsec.com\/aws-lambda-redirector\/\">https:\/\/blog.xpnsec.com\/aws-lambda-redirector\/<\/a>.<\/p>\n\n\n\n<p>Les redirecteurs sont une unit\u00e9 extr\u00eamement puissante par les possibilit\u00e9s qu\u2019ils offrent.<\/p>\n\n\n\n<h2>Serveurs de Phishing<\/h2>\n\n\n\n<p>J\u2019entends ici par Phishing tout ce qui est attrait avec une interaction avec les utilisateurs profitable offensivement parlant&nbsp;: acc\u00e8s initial par mails, capture d\u2019identifiant voir m\u00eame relais de ces derniers. Commen\u00e7ons par le plus simple, les serveurs SMTP. Le serveur SMTP permet l\u2019envoie de mails en vu d\u2019une campagne de (spear) phishing, contrairement \u00e0 ce qu\u2019on pourrait intuitivement penser, lorsque les mails sont bien faits, et envoyer au bon moment, les r\u00e9sultats sont g\u00e9n\u00e9ralement tr\u00e8s probants. Pour en installer un, on peut utiliser opensmtpd ou postfix si on veut tout faire \u00e0 la main, sinon des solutions d\u00e9j\u00e0 faite comme poste.io, iredmails. Une fois cela termin\u00e9, vous pourrez utiliser des outils comme sendemail ou cobaltstrike pour envoyer vos mails. Pour vous simplifier la t\u00e2che, on peut \u00e9galement installer des frameworks d\u00e9di\u00e9s au phishing comme gophish. Son installation est simple mais il faut installer plusieurs d\u00e9pendances comme go, ce qui peut ajouter du travail en vu d\u2019un d\u00e9ploiement automatique.<\/p>\n\n\n\n<p>Pour un acc\u00e8s initial on peut \u00e9galement utiliser des redirecteurs apache pour optimiser la livraison des charges malveillantes avec <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">mod_rewrite<\/code>. Par exemple, si vous voulez restreindre l\u2019acc\u00e8s en fonction du syst\u00e8me d\u2019exploitation pour \u00e9ventuellement d\u00e9tourner de rare personnes sur Linux, <a rel=\"noreferrer noopener\" href=\"https:\/\/bluescreenofjeff.com\/2016-04-05-operating-system-based-redirection-with-apache-mod_rewrite\/\" data-type=\"URL\" data-id=\"https:\/\/bluescreenofjeff.com\/2016-04-05-operating-system-based-redirection-with-apache-mod_rewrite\/\" target=\"_blank\">vous pouvez<\/a>. Si vous voulez restreindre les acc\u00e8s en fonction de l\u2019heure et du user-agent, <a rel=\"noreferrer noopener\" href=\"https:\/\/bluescreenofjeff.com\/2016-04-12-combatting-incident-responders-with-apache-mod_rewrite\/\" data-type=\"URL\" data-id=\"https:\/\/bluescreenofjeff.com\/2016-04-12-combatting-incident-responders-with-apache-mod_rewrite\/\" target=\"_blank\">vous pouvez<\/a>. Ces possibilit\u00e9s sont utiles pour maximiser la difficult\u00e9 de potentiels d\u00e9fenseurs d\u2019analyser trop en profondeur notre infrastructure. Il y a bien d\u2019autres astuces que vous pouvez utiliser, <a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/bluscreenofjeff\" data-type=\"URL\" data-id=\"https:\/\/twitter.com\/bluscreenofjeff\" target=\"_blank\">@bluescreenofjeff <\/a>en a d\u00e9di\u00e9 une petite s\u00e9rie (en anglais) qui commence <a rel=\"noreferrer noopener\" href=\"https:\/\/bluescreenofjeff.com\/2016-03-22-strengthen-your-phishing-with-apache-mod_rewrite-and-mobile-user-redirection\/\" data-type=\"URL\" data-id=\"https:\/\/bluescreenofjeff.com\/2016-03-22-strengthen-your-phishing-with-apache-mod_rewrite-and-mobile-user-redirection\/\" target=\"_blank\">\u00e0 cet article<\/a>.<\/p>\n\n\n\n<p>Il faut ajouter, pour maximiser l\u2019anonymat des op\u00e9rateurs et des infrastructures en jeu, des redirecteurs (m\u00eame si l\u2019utilisation de ce terme est un peu extrapol\u00e9e) SMTP qui auront pour but d\u2019effacer certains headers compromettant. Ainsi ces redirecteurs sont tout comme les redirecteurs HTTP(s)\/DNS, c\u2019est \u00e0 dire qu\u2019ils doivent \u00eatre facilement rempla\u00e7able.<\/p>\n\n\n\n<p>On peut \u00e9galement \u00e9tendre l\u2019utilisation du mot Phishing pour d\u00e9signer les r\u00e9sultants d\u2019une interaction directe avec l\u2019un des utilisateurs de l\u2019environnement cibl\u00e9. En effet, il existe un nombre tr\u00e8s cons\u00e9quent d\u2019attaques qui vise particuli\u00e8rement les utilisateurs. Lorsqu\u2019on a besoin d\u2019obtenir de nouveaux identifiants, et qu\u2019on identifie un moyen de forcer l\u2019authentification d\u2019un compte \u00e0 une ressource externe, serveur SMB, serveur HTTP qui n\u00e9cessite l\u2019authentification NTLM, (JEA qui exhibe une Cmdlet comme <code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Invoke-WebRequest<\/code>, un partage accessible \u00e0 des utilisateurs dans lequel on peut placer un fichier <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">scf<\/code>, l\u2019exploitation des nodes ADIDNS&#8230;) il peut \u00eatre utile de r\u00e9server ce r\u00f4le \u00e0 un unique VPS. A noter ici qu\u2019il est \u00e9galement possible d\u2019utiliser des redirecteurs vers ce genre de serveur.<\/p>\n\n\n\n<h2>Autres serveurs<\/h2>\n\n\n\n<p>Les id\u00e9es qui seront d\u00e9velopp\u00e9es ici font sans doute partie des moins importante compar\u00e9es \u00e0 celles que nous avons vu au dessus.<\/p>\n\n\n\n<p>En plus de tout cela, vous pouvez encore ajouter deux types de serveurs. Le premier accueil une multitude de protocole destin\u00e9e \u00e0 transf\u00e9rer les malwares vers les victimes de de votre Phishing par exemple, ou bien de vos dropper. Comme je l\u2019ai dis vous pouvez user de diff\u00e9rents syst\u00e8mes pour livrer vos charges&nbsp;: un serveur web, FTP ou m\u00eame SMB. Ces derniers seront d\u2019autant plus efficace si vous pr\u00e9parez un syst\u00e8me qui permet de choisir al\u00e9atoirement le serveur qui sera contact\u00e9, et m\u00eame le type de payload qui sera utilis\u00e9.<\/p>\n\n\n\n<p>Beaucoup plus accessoire, vous pouvez d\u00e9ployer des serveurs d\u00e9di\u00e9s aux DevOps, j\u2019y reviendrais dans un article c\u2019est sure. L\u2019id\u00e9e de ces derniers est de randomiser les outils\/payloads qui seront utilis\u00e9s. Cela \u00e0 plusieurs avantages: d\u2019un point de vue professionnel, cela assure l\u2019individualit\u00e9 des outils et malwares ce qui ajoute du r\u00e9alisme \u00e0 l\u2019engagement, mais aussi donne des artefacts forensiques moins g\u00e9n\u00e9rique, en d\u2019autres termes renforce notre discr\u00e9tion; d\u2019un autre c\u00f4t\u00e9 plus pratique, cela peut aider \u00e0 fournir des moyens simples et efficaces pour le contournement d\u2019antivirus (m\u00eame si dans les faits ils ne sont pas vraiment d\u00e9rangeant). Cela dit, ce composant pr\u00e9cis n\u2019a pas besoin d\u2019\u00eatre individualis\u00e9 avant chaque op\u00e9ration, car son installation est lourde de configuration.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"681\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-1024x681.png\" alt=\"\" class=\"wp-image-295\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-1024x681.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-300x199.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-768x511.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-1536x1021.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-400x266.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1-800x532.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/schema4-1.png 1665w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<h2>Exemples<\/h2>\n\n\n\n<p>Maintenant qu\u2019on a d\u00e9finit les \u00e9l\u00e9ments g\u00e9n\u00e9riques d\u2019une infrastructure, il ne reste plus qu\u2019\u00e0 \u00e9valuer les besoins de votre mission pour en adapter les composants (il va de soit qu\u2019il est inutile de d\u00e9ployer ce genre d\u2019architecture pour un prolab de HackTheBox, sauf peut-\u00eatre le C2)&nbsp;! Mais pour vous donner une petite id\u00e9e de comment certaines \u00e9quipes Red-Team g\u00e8rent leur infrastructure, voil\u00e0 comment <a rel=\"noreferrer noopener\" href=\"https:\/\/www.praetorian.com\/blog\/praetorians-approach-to-red-team-infrastructure\/\" data-type=\"URL\" data-id=\"https:\/\/www.praetorian.com\/blog\/praetorians-approach-to-red-team-infrastructure\/\" target=\"_blank\">praetorian<\/a> s\u2019organise:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"791\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-1024x791.png\" alt=\"\" class=\"wp-image-296\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-1024x791.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-300x232.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-768x593.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-1536x1187.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-400x309.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian-800x618.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/praetorian.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Ou encore un autre exemple <a href=\"https:\/\/malcomvetter.medium.com\/safe-red-team-infrastructure-c5d6a0f13fac\" data-type=\"URL\" data-id=\"https:\/\/malcomvetter.medium.com\/safe-red-team-infrastructure-c5d6a0f13fac\" target=\"_blank\" rel=\"noreferrer noopener\">provenant de cet article<\/a> (qui montre comment avoir une infrastructure s\u00e9curis\u00e9 vis \u00e0 vis des donn\u00e9es qui peuvent y transiter):<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" width=\"700\" height=\"511\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/safe.png\" alt=\"\" class=\"wp-image-297\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/safe.png 700w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/safe-300x219.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2021\/12\/safe-400x292.png 400w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2>Conclusion<\/h2>\n\n\n\n<p>Afin de mener au mieux une offensive, il est indispensable de se munir d\u2019une infrastructure capable de supporter chacune des phases de l\u2019attaque. Pour cela, l\u2019infrastructure se centre sur le C2, celui qui contr\u00f4le les machines compromises, auquel viennent s\u2019adjoindre un certain nombre de serveurs comme les redirecteurs par exemple, pour gagner en r\u00e9silience et en discr\u00e9tion. En plus de pr\u00e9voir un confort suffisant pour les op\u00e9rateurs, elle permet aussi d\u2019augmenter le r\u00e9alisme de l\u2019engagement pour se rapprocher au plus de ce que les acteurs malveillants sont capables de produire. J\u2019esp\u00e8re que cet article vous aura plu, et je vous invite \u00e0 aller consulter tout les autres postes de blog que j\u2019ai pu mentionner, chacun d\u2019eux vous permettra d\u2019approfondir ce qui a \u00e9t\u00e9 d\u00e9velopp\u00e9 ici!<\/p>\n\n\n\n<p>La plupart des informations de cet article sont issues de ce <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/bluscreenofjeff\/Red-Team-Infrastructure-Wiki\" data-type=\"URL\" data-id=\"https:\/\/github.com\/bluscreenofjeff\/Red-Team-Infrastructure-Wiki\" target=\"_blank\">r\u00e9po github<\/a> qui a \u00e9t\u00e9 d&#8217;une aide pr\u00e9cieuse.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pr\u00e9voir une attaque est souvent un processus chronophage et m\u00e9ticuleux. \u00c9videmment parce qu\u2019il faut chercher un maximum d\u2019information \u00e0 propos de la cible convenue, mais aussi parce qu\u2019il faut pr\u00e9voir le d\u00e9rouler th\u00e9orique de l\u2019op\u00e9ration, comment proc\u00e9der le plus anonymement possible une campagne de phishing, comment pouvoir d\u00e9poser efficacement les charges virales employ\u00e9es, comment assurer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts\/289"}],"collection":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/comments?post=289"}],"version-history":[{"count":4,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts\/289\/revisions"}],"predecessor-version":[{"id":302,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts\/289\/revisions\/302"}],"wp:attachment":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/media?parent=289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/categories?post=289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/tags?post=289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}