Post Repeated payload size in PowerShell

Hello le monde ! et si on reprenait un peu le rythme avec un bout de PowerShell, non ? Cette semaine je vous partage quelques lignes de code qui m’ont permis de valider une règle de détection au taf. En effet quand un malware, virus, botnet ou un autre membre de cette grande famille s’installe sur un PC, une des première action qu’il va faire est de contacter son serveur de contrôle commande (C&C) ou à minima poster sur un site les infos qu’il a collecté. Et il arrive fréquemment qu’il fasse cette action de manière répétée, en envoyant toujours les même données.

Au niveau de la supervision, ça se détecte super bien dans les logs réseau (Proxy, Firewall ou IDS/IPS par exemple). Vous avez un flux répété à intervalles régulier qui fait toujours la même taille à l’octet prêt. Il faudra quant même « allow-listé » les quelques logiciel connus dans votre SI qui peuvent avoir ce comportement légitimement. Après ce qui reste ça vaut le coup de creuser un peu, vous avez une chance non-négligeable de chopper des vieux virus oublié sur votre parc qui n’arrivent plus à contacter leur C2 par exemple.

Bref, le script est en … Lire la suite

City et Timezone mapping en PowerShell

Bonjour à tous, ca fait longtemps que je vous ai pas partager un petit article sur PowerShell, non ? Du coup aujourd’hui on parle de City et Timezone mapping en PowerShell. En effet, j’ai eu besoin de faire un mapping entre des villes et pays que j’avais en entrée dans un AD et la timezone associé. Pour que le support puisse appeler les utilisateurs sur les bons créneaux. Et… c’était pas direct que ca en a l’air.

Alors je vais couper cours, pas de budget à y mettre. Donc les truc tout fait via API (comme Google Map platform), c’est pas possible. Pareil, pas de coordonnée que des noms villes et pays. Donc les trucs à base coordonnées GPS pas ouf non plus. Enfin les trucs gratuit comme timezonedb, c’était jouable. Mais j’avais 80 000 objets à traiter, avec la limitation a 1 call par seconde j’en aurait eu pour 22h minimum.

Bref, au final , je me suis rabatu sur geonames.org. Les données sont en accès libre Download / Webservice et j’ai fait un croisement « en local » (bien à l’ancienne comme il faut) que je vous donne ci-dessous.

#Download geonames database https://download.geonames.org/export/dump/
$datafile = "cities500"
Lire la suite

Build DFIR-ORC

Bonjour à tous, je vous fait un tuto pour Faire un build DFIR-ORC. En effet, on m’a dit dans l’équipe que c’était « compliqué » et que ça allait « prendre des jours » à faire.

Du coup, j’étais pas trop d’accord :-), et je me suis dit que c’était l’occasion de vous documenter le truc tout en donnant un outil de plus à ma team. Au final, j’avoue que la doc de l’ANSSI est quand même pas folle, mais on est loin du compliqué pour avoir un premier binaire utilisable en quelques heure.

Étape 1 : Build DFIR-ORC

Bon alors commencez par télécharger VSStudio 16-2019 (ça ne fonctionne pas pour l’instant avec la version 2022 :-), oui j’ai testé, contrairement à ce laisse penser la doc). Bonne nouvelle, pour l’instant cette version est toujours téléchargeable encore par là :

https://learn.microsoft.com/en-us/visualstudio/releases/2019/release-notes

Installez là en mode « par Défaut » et importer le fichier .vsconfig donné dans la doc.

Build DFIR-ORC

Et go cliquez en bas à droite sur modifier.

Build DFIR-ORC

Laisser VS code faire son installation en cliquant sur modify (a peine 11Go à télécharger, une paille, j’aurais aimé que MS maintienne sa VM Developper en version 2019 :’-) plutôt que de … Lire la suite

Déplacer le curseur de la souris en PowerShell

Déplacer le curseur de la souris en PowerShell

Bonjour à tous, aujourd’hui je voulais vous partager un bout de script qui permet de déplacer le curseur de la souris en PowerShell. Ça parait bête, mais c’est bien pratique pour faire des blagues potaches à vos collègues, combiner avec des ruber ducky, ou faire des pièces jointes piégées à base de Macro Office. Voir simplement placer la souris à un endroit particulier dans un script avec une IHM…

Add-Type -AssemblyName System.Windows.Forms
while ($true){
  $Pos = [System.Windows.Forms.Cursor]::Position
  $x = ($pos.X % 500) + 10
  $y = ($pos.Y % 500) + 10
  [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)
  Start-Sleep -Seconds 10
}
Déplacer le curseur de la souris en PowerShell

D’ailleurs et dans la même veine, vous pouvez utiliser les objets COM pour simuler la saisie de touches au clavier hein. C’est bien pratique quand vous voulez faire des démonstrations de charges malveillantes dans des macros piégés.

Par exemple, vous créez une Macro « moisie » comme je le fait dans mon livre mais au lieu d’ouvrir un canal de contrôle-commande vers un PowerShell Empire, vous ouvrez un notepad.exe, changez le focus pour mettre le bloc note devant, et faite écrire un texte de sensibilisation dedans. Effet garantie.

$wshell = New-Object -ComObject wscript.shell
$wshell.AppActivate('Bloc-note')
Sleep 1
$wshell.SendKeys('Geek!!!')
Simuler des frappes clavier en PowerShell

Voilà, maintenant vous … Lire la suite