Transferts FTPS en PowerShell

Bonjour à tous, aujourd’hui je vous repartage quelques morceaux de PowerShell dont j’ai dû me servir récemment pour faire des transferts FTP et FTPS en PowerShell au taf. C’est un peu plus propre que mon hack de transfert reverse HTTP de la dernière fois… Ça peut vous servir pour automatiser des transferts, ou sauvegarde, faire de l’exfiltration en offensif ou collecter des données depuis des machines en live-forensics par exemple. Aller sans transition je vous passe les différents bout de code que j’ai eu à faire.

Upload de fichier en FTP

Le premier bout de code est tiré de ce Stack Overflow et permet d’uploader facilement un fichier vers un serveur FTP :

$File = "Fichier.zip";
$ftp = "ftp://etienene:Passw0rd1234!@ftp.geekeries.org/testps1/somefilename.zip";
$webclient = New-Object -TypeName System.Net.WebClient;
$uri = New-Object -TypeName System.Uri -ArgumentList $ftp;
$webclient.UploadFile($uri, $File);

C’est tout con, ça tient en 5 lignes, et on peut faire l’exfiltration ou du backup facilement avec ça. Je vous renvoie vers la création d’un serveur FTP avec docker pour monter un serveur qui reçoit les données. N’oubliez pas l’existence de la fonction DownloadFile qui existe dans le même objet WebClient pour télécharger vos fichiers ensuite.

Transferts FTPS en PowerShell : upload

Bon c’est joli … Lire la suite

CTFd et Splunk : utilisez SQL pour du SPL !

Bonjour à tous, Il y quelques temps (environ :-)) on m’a demandé d’organiser un CTF en interne au taf. Je pourrais vous parler un moment du projet, des contributions au challenges, de l’organisation ou de la com’ mais bon, c’est pas trop le but du blog de vous parler des trucs chiant…^^ Je voulais juste pour partager quelques requêtes SQL et SPL pour CTFd et Splunk que j’ai faites en fin de CTF pour générer des graphiques et quelques stats sur le déroulement du challenge.

Alors je l’ai pas indiqué mais on a utilisé un CTFd customisé (un peu, merci Keny) pour l’occasion. Derrière la plateforme on trouve donc une base MariaDB (ex-mysql) tout bête qu’on peut requêter avec du SQL tout ce qu’il y a de plus classique.

SQL over CTFd

Par exemple la liste des utilisateurs inscrit au CTF vers un CSV :

Select u.id as user_id, u.name as username, u.email as user_email, u.type as user_type, u.team_id as team_id, t.name as team_name, captain_id, u.created as user_created 
INTO OUTFILE '/tmp/ctfd_users.csv' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n' 
FROM users as u 
LEFT JOIN teams as t ON t.id=u.team_id ORDER BY team_name;

Ça vous sort … Lire la suite

Chiffrement des mots de passe dans mRemoteNG

Bonjour à tous, aujourd’hui on va se pencher rapidement sur le chiffrement des mots de passe dans mRemoteNG. Y’a pas longtemps, j’avais pommé un mot de passe qui visiblement ne s’était pas bien sauvegardé dans mon password Manager (problème d’interface chaise clavier probable), bonne nouvel il était toujours dans ma conf mRemoteNg.

mRemoteNG ?

mRemoteNG est un gestionnaire de connexions à distance (un peu comme PuTTY) pour Windows qui gère une pelleté de protocol et qui a le bon goût d’être Open Source. Jusqu’ici tout va bien.

Les exports de configuration dans mRemoteNG

Donc par rapport à mon soucis je commence par exporter ma conf et du coup ni une ni deux, bouton droit :

Et je me jette dans le XML ainsi généré :

<Node Name="Serveur.tld.fq.dn" Type="Connection" Descr="" Icon="mRemoteNG" Panel="General" Username="user@geekeries.org" Domain="" Password="Ni1es1Kzm##########KJNibkcvcveRfEYV#######DOAcvcvTYUtQB+#####jlcvcvEpkex5A+wE=" Hostname="Serveur.tld.fq.dn" Protocol="RDP" PuttySession="Default Settings" Port="3389"

Donc là, je me dis nickel un base64 (mais aussi quelle bande de nazes chez mRemoteNG… :’-D)

Bref, un coup de base 64 decode et…

[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("Ni1es1Kzm##########KJNibkcvcveRfEYV#######DOAcvcvTYUtQB+#####jlcvcvEpkex5A+wE="))
6-^�R��GTD�l����M��%쇑|D��|�)`�v�TGP�m�/c���JyU{@�

Nada, je récupère du bon gros bruit quel que soit l’encodage demandé.

(Dé)Chiffrement des mots de passe dans mRemoteNG

Bon un coup de let me google that for you plus tard, et on … Lire la suite

Tutoriel QRadar AQL – Advanced Search 103

Bonjour à tous, aujourd’hui on termine avec ce tutoriel QRadar AQL le cycle sur le SIEM d’IBM. Dans les précédents tutos, on a vu le fonctionnement du langage de requêtes de QRadar : l’AQL, puis comment ce dernier interagit avec les différents composant de Qradar notamment via les mécanismes d’indexation, dans le but d’optimiser nos requêtes. Pour finir cette série, on va s’attarder sur les dernier gros éléments de logiciel : les offenses, rules et building block ; ainsi que les Reference data, l’API et les visualisations.

AQL : Advanced Quombat Langage ?

Les offenses

On va commencer ce tutoriel QRadar AQL en parlant dece qu’est une offense : c’est un incident qui est généré dès que les conditions d’une règle sont réunies. Dans le logiciel, l’importance d’une offense est caractérisée par sa magnitude. Une magnitude : comme pour les séismes, elle est basée sur ces trois paramètres :

  • Relevance : c’est la surface d’exposition ;
  • Credibility : taux de faux positif ; et
  • Severity : est-ce grave ou non.
Tutoriel QRadar AQL

Notez que c’est l’implémentation technique de l’offense qui alimente ces éléments, il faut donc faire attention à ne pas prendre leur valeur pour comptant car ce n’est pas nécessairement fait correctement selon les infra.… Lire la suite