Bon, je vous ai parlé du SANS Holiday Hack Challenge dans mon dernier article. Je me suis pris au jeu et j’ai terminé la partie 1 du challenge sans trop de difficulté. Je vous propose une solution du SANS Holiday Hack Challenge 2016 part 1 dans cette article. Attention, je spolie cette partie du challenge du coup, cherchez un peu avant de vous ruer dessus comme des morfales… Et Si vous souhaitez juste des indices, je ne peux que vous conseiller ce fil de discussion sur reddit :
Niveau environnement, je vous conseille de vous installer une Kali, Debian, Ubuntu sur votre PC ou dans une virtual-box histoire d’être à l’aise pendant le challenge. Notez que je pars volontairement d’une Ubuntu vierge pour vous caler au passage les procédures d’installation des outils.
Part 1: A Most Curious Business Card
Bon pour ceux qui sont encore là, c’est parti.
First thing first, jetez un œil aux comptes Twitter et Instagram du père noël comme indiqué sur le site du challenge :
@SantaWClaus et Santawclaus on instagram
Dumping… tweets.
Alors les tweets du père noël ne ressemblent à rien et les photos sur Instagram sont loin d’être très inspirante. Néanmoins on se dit bien qu’il doit y avoir quelque chose à tirer de ces tweets. On va gratter de ce côté-là… Pour il faut récupérer les 350 tweets donc, de préférence dans un éditeur de texte pour pouvoir les exploiter plus facilement. C’est un peu long à la main… Plusieurs options : Il existe des sites qui font ça en ligne pour vous comme birdsong ou twlets, mais rien de vaut une bonne API python, hein ? et tweepy et tweet_dumper.py répondent parfaitement à ce besoin.
Pour utiliser tweet_dumper, il faut donc tweepy (doc) et pour utiliser tweepy, une clé OAuth pour s’authentifier, à récupérer sur apps.twitter.com en créant une app avec son compte twitter (après avoir activé son numéro de téléphone), puis un ajouter un « access-token ». Je vous invite à suivre ce tuto qui m’a bien aidé. On retourne sur notre ubuntu pour installer tweepy et tweet_dumper:
apt-get install python-pip python3-pip python-dev build-essential pip install tweepy curl -O https://gist.githubusercontent.com/yanofsky/5436496/raw/a4277a2563a903ad42bf7c41a98243578f49bca7/tweet_dumper.py
Et dans le script tweet_dumper.py on indique les accès OAuth donnés par twitter :
#Twitter API credentials consumer_key = "1234567890abcdefghijklmno" consumer_secret = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN" access_key = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN" access_secret = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHI"
Et pas la peine de chercher à utiliser ceux-là, ils sont visiblement faux, hein… et pensez aussi modifier dans la script la ligne indiquée pour le nom de l’utilisateur dans le main :
if __name__ == '__main__':
#pass in the username of the account you want to download
get_all_tweets("santawclaus")
On exécute le script :
root@sans2016:/home/badsanta# python tweet_dumper.py getting tweets before 798175247283392512 ...350 tweets downloaded so far getting tweets before 798175028978352128 ...350 tweets downloaded so far
Le script vous crée un beau fichier santawclaus_tweets.csv à côté. Qui une fois dans Libre Office en dé-zoomant avec une police à espacement fixe donne un effet sympa :
Bon est content, mais on ne peut rien en faire à priori…Passons à Instagram :
Le père noël et ses ordures…
Alors on a 3 photos sur Instagram, la 1ère semble être la plus prometteuse même si le bureau du père noël ferait faire un AVC à tout psychorigide qui se respecte :
Tout à droite dans les pages qui dépassent au-dessus de « Violent-Python », on trouve une URL en dessous d’une fin de ligne qui ressemble à un nmap :
Fausses pistes
Le site affiche bien la carte de visite du père noël…mais pas grand-chose de plus en fait. On a vu un nmap au dessus donc on est parti :
wget https://nmap.org/dist/nmap-7.31-1.x86_64.rpm apt-get install alien alien nmap-7.31-1.x86_64.rpm dpkg --install nmap_7.31-2_amd64.deb
Et on lance un scan de base sans réfléchir :
nmap www.northpolewonderland.com Nmap scan report for www.northpolewonderland.com (130.211.124.143) Host is up (1.0s latency). rDNS record for 130.211.124.143: 143.124.211.130.bc.googleusercontent.com Not shown: 990 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https
Là j’avoue, sur le moment je suis sec : http et https donnent le même site, et on se fait jeter direct sur le port 22 (pas surprenant non plus)… Probablement des fausses pistes à garder pour la suite. Un café plus tard, je retourne sur la page web et jette un œil au code source de la page :
curl https://www.northpolewonderland.com/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>Santa W. Claus</title>
<style type="text/css">
.centered {
position: fixed;
top: 50%;
left: 50%;
/* bring your own prefixes */
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<img class="centered" src="santawclaus_shadow.png" />
</body></html>
Idem, j’ai essayé de triturer un peu l’image, mais je n’ai rien pu en faire facilement… Peut-être pour plus tard ?
Payes tes yeux
En revenant sur l’ Instagram par contre, j’ai noté que sur l’écran d’ordinateur on voit distinctement un nom d’un fichier « leeker » derrière .\ -DestinationPath sur l’écran à gauche. Le nom d’un fichier .ZIP est indiqué sur la photo ! Comme les coïncidences n’existent pas, on retourne sur notre site en ajoutant le nom du fichier à l’URL comme un bon gros script-Kiddie.
curl -O https://www.northpolewonderland.com/SantaGram_v4.2.zip
Banco !
Solution SANS Holiday Hack Challenge 2016 part 1
On essaye alors dé-zipper mais c’est protégé par un mot de passe… dammit, lequel ? la première question du challenge concerne les tweets. On n’est pas malin mais bon, il y a des limites … Donc on retente en mode « tant que ça passe » :
unzip -P bugbounty SantaGram_v4.2.zip
Et voilà, donc notre zip contient un jolie fichier SantaGram_4.2.apk. Kézako ? mystère…
La suite du SANS Holiday Hack Challenge 2016 au prochain épisode, peut-être…
Greetings from America! I hope all is well and your spirits are high. For the first question with the answer of bug bounty, I used Twime Machine and then copied and pasted the tweets to notepad ++. I got the hint from reading the beginning story on the homepage.
Thanks for you advise, I didn’t know about twimemachine. But it seems more fun/formative using a full cmd-line tool.