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 .\FLAG.txt
[array]::Reverse($a) # pour avoir le fichier qui s'affiche dans le bon sens sur la timeline.

foreach($line in $a) {
  $void = Send-TwitterStatuses_Update -status "$line"
}

Et comme je suis sympa, je vous donne aussi la solution pour lire tous les tweet dans un fichier :

$TwitterStatuses = Get-TwitterStatuses_UserTimeline -screen_name '$twitterusername' -count 200
$TwitterStatuses.Text > Result.txt

Notez quand même que les tweets sont tronqués par défaut à 140 char, c’est un peu chiant mais ça se bypass en triturant un peu le code source pour ajouter le paramètre tweet_mode='extended' (ou en changeant d’API (Voir MyTwitter aussi par exemple).

Bref, voilà. C’est tout simple, c’est rigolo, c’est pas long à faire, et ça permet de Tweeter en PowerShell sans trop se fatiguer. Byz !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.