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

Envoyer un CSV en HTTP en PowerShell

Envoyer un CSV en HTTP en PowerShell

Salut à tous, aujourd’hui j’ai eu un besoin d’envoyer un CSV en HTTP en PowerShell. J’ai fait ça pour automatiser un envoi de fichier de résultat de script entre 2 serveurs. Ma grosse contrainte était que je pouvais pas faire du mode ‘Push’ (cf. transfert SCP sans mot de passe) comme je partais d’une zone de sécurité moindre que celle de destination. Et comme, le fichier source venait d’un Windows, je ne voulais pas mettre en place un serveur Web IIS sur le serveur pour un pauvre fichier CSV à transférer 2 fois par jour…

Du coup, j’ai bricolé quelques lignes à la fin de mon script PowerShell pour exposer le fichier en HTTP et permettre au serveur destination de venir les « Puller » pour respecter le sens d’établissement du flux.

Et sans transition le script pour envoyer un CSV en HTTP en PowerShell :

Function New-SimpleHTTPListener {
  Param (         
    [Parameter()] [Int] $Port = 7443
  )
  Begin{
    $listener = New-Object System.Net.HttpListener
    $prefix = "http://localhost:$Port/"
    $listener.Prefixes.Add($prefix)
  }

  Process{

    try{
      $listener.Start()
      Write-Host "Listening on $Port ..."
      $pathwd = Get-Location
      while ($listener.IsListening) {
        $context = $listener.GetContext()

        if ($context.Request.HttpMethod -eq 'GET' -and $context.Request.RawUrl -eq '/quit')
        {
            $listener.Close()
            break;
        }    

        $HTTPresponse = $context.Response
        $HTTPresponse.StatusCode = "200"
        $HTTPResponse.Headers.Add("Content-Type","text/csv") 

        $RequestUrl = $context.Request.Url.OriginalString
        $data = [System.Text.UTF8Encoding]::UTF8.GetBytes([System.IO.File]::ReadAllText("$pathwd"  + '\' + ($RequestUrl.Split('/')[-1])))

        $HTTPresponse.ContentLength64 = $data.Length

        $output = $HTTPresponse.OutputStream

        $output.Write($data,0,$data.Length)

        $output.Close() 
      }
    }catch{
       Write-Warning "Error with Server : $_" 
    }Finally{
      Write-Warning "terminating Server : $_" 
      $listener.Stop()
    }
  }

  End{
    
  }
}

New-SimpleHTTPListener

Alors clairement, c’est du bon gros « quick and dirty … Lire la suite

Tweeter en PowerShell – PSTwitterAPI

Tweeter en PowerShell

Salut à tous, on nous a demandé d’organiser un petit Capture The Flag (CTF) en interne au boulot. Du coup, il a fallu faire quelques challenges et je me suis dit que j’allais refaire un challenge que j’avais bien aimé du SANS celui à base de tweet offusqués. Du coup j’ai voulu refaire le mien, la dernière fois, j’avais fait le crawler en Python, ce coup ci j’ai donc voulu Tweeter en PowerShell (au cas où vous n’auriez toujours pas compris que je kif ce langage…^^).

Alors j’aurais pu jouer à le faire à la main avec Invoke-RestMethod, mais bon une recherche Google Plus tard et je suis tombé sur : PSTwitterAPI qui fait très très bien le boulot. En fait le plus long ça a été de créer un compte Twitter, de générer les accès API en écriture et de préparer le fichier avec le flag caché dedans…^^

Mais du coup, Un fois que vous avez fait le fichier de résultat, le script pour le pusher sur le site, il tient en quelques lignes :

Import-Module PSTwitterAPI
$OAuthSettings = @{
  ApiKey = "xxx"
  ApiSecret = "yyy"  
  AccessToken = "123"
  AccessTokenSecret = "456"
}
Set-TwitterOAuthSettings @OAuthSettings

$a = Get-Content 
Lire la suite

Envoyer des syslog en Powershell

Envoyer des syslog en Powershell

Salut à tous, aujourd’hui je vais m’arrêter sur un bout de script dont j’ai eu besoin il y a quelques mois de cela pour envoyer des syslog en Powershell et que chaque machines où je faisait exécuter un script envoie directement ses résultats à à un serveur syslog. Et puis tant qu’on y était avec Grégoire, on a fait le récepteur syslog au passage histoire de pouvoir tester ça en local sans se faire trop mal à monter un vrai serveur syslog.

Syslog ?

Pour rappel Syslog est un protocole réseau qui permet d’envoyer des logs. Bien connu et largement utilisé, il permet de déporter les logs entre l’équipement et la machine qui les stocke, voire les traite (qui a dit Splunk?). Il y a 2 RFC qui cadrent la norme la RFC 3164 et la RFC 5424. En grande majorité, syslog passe sur UDP, le problème c’est que ça ne garantie pas la bonne arrivée de 100% des logs sur vos collecteurs syslog. Mais on commence à trouver de plus en plus de TCP dans l’utilisation de Syslog.

Chiffrement ? Signature ?

Une petite digression pour votre culture, même si en TCP on garantie la bonne réception … Lire la suite