HTB Challenge Writeup Hackerman


ESCRITO POR 1v4n

avatar  

Tiempo de lectura ~ 4 minutos

Nota del autor: Los conocimientos que os hemos intentado transmitir, están dirigidos a una práctica ética, si los usáis para prácticas no adecuadas ni en consonancia con la legislación seria únicamente responsabilidad vuestra o de vuestros tutores. No nos hacemos responsables del mal uso que se le pueda dar a las herramientas y habilidades que enseñemos.

Descripción

  • Nombre: Hackerman
  • F.Liberación 26 de julio de 2017 [retired]
  • Autor SirenCeol
  • Tag: Stego

There should be something hidden inside this photo… Can you find out?

Objetivo

  • Formato de flag: HTB{s0m3_t3xt}

Herramientas

  • Chrome Versión 68.0.3440.106 (Build oficial) (64 bits) https://www.google.com/chrome/
  • wget (1.19.5) https://www.gnu.org/software/wget/
  • UnZip 6.00 ftp://ftp.info-zip.org/pub/infozip/
  • Stego Toolkit https://github.com/DominicBreuker/stego-toolkit/tree/master
  • Hasher 3.0.1 (alpha) https://github.com/ciku370 googler 3-6
  • https://md5online.org
  • https://29a.ch/photo-forensics/#forensic-magnifier
  • https://gchq.github.io/CyberChef/

Resumen

Comenzamos por visitar la página del reto y descargamos el archivo comprimido .zip que nos dan como artefacto (password hackthebox)

Descargamos en la parte inferior izquierda de la pantalla o utilizamos con wget la descarga del archivo llamado DaVinci.zip

root@kali:~/Desktop/HTB/Stego/Hackerman# wget https://www.hackthebox.eu/storage/challenges/stego/hackerman.zip
--2018-08-08 23:59:47--  https://www.hackthebox.eu/storage/challenges/stego/hackerman.zip
Resolviendo www.hackthebox.eu (www.hackthebox.eu)... 104.24.1.54, 104.24.0.54, 2400:cb00:2048:1::6818:136, ...
Conectando con www.hackthebox.eu (www.hackthebox.eu)[104.24.1.54]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 115363 (113K) [application/zip]
Grabando a: "hackerman.zip.1"
hackerman.zip.1     100%[===================>] 112,66K  --.-KB/s    en 0,06s   
2018-08-08 23:59:47 (1,79 MB/s) - "hackerman.zip.1" guardado [115363/115363]
root@kali:~/Desktop/HTB/Stego/Hackerman#

Al descargar el archivo DaVinci.zip pasamos a descomprimirlo con unzip:

Archive:  hackerman.zip
[hackerman.zip] hackerman.jpg password:
  inflating: hackerman.jpg           
root@kali:~/Desktop/HTB/Stego/Hackerman#

Podemos observar que guardaba un (1) archivo con extensión jpg. Realizamos el análisis inicial forense y el estegoanálisis de hackerman.jpg

root@kali:~/Desktop/HTB/Stego/Hackerman/stego-toolkit/scripts# ./check_jpg.sh hackerman.jpg

#################################
########## JPG CHECKER ##########
#################################
Checking file hackerman.jpg

file hackerman.jpg:
hackerman.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 960x540, frames 3
identify hackerman.jpg:
Image: hackerman.jpg
  Format: JPEG (Joint Photographic Experts Group JFIF format)
  Mime type: image/jpeg
  Class: DirectClass
  Geometry: 960x540+0+0
  Units: Undefined
  Colorspace: sRGB
  Type: TrueColor
  Base type: Undefined
  Endianess: Undefined
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Pixels: 518400
    Red:
      min: 0  (0)
      max: 255 (1)
      mean: 71.2629 (0.279462)
      standard deviation: 43.9857 (0.172493)
      kurtosis: 1.17462
      skewness: 1.14268
      entropy: 0.899253
    Green:
      min: 0  (0)
      max: 255 (1)
      mean: 53.7318 (0.210713)
      standard deviation: 43.397 (0.170184)
      kurtosis: 1.60969
      skewness: 1.44128
      entropy: 0.875724
    Blue:
      min: 0  (0)
      max: 255 (1)
      mean: 95.8043 (0.375703)
      standard deviation: 39.7921 (0.156048)
      kurtosis: 0.6856
      skewness: 0.912278
      entropy: 0.896498
  Image statistics:
    Overall:
      min: 0  (0)
      max: 255 (1)
      mean: 73.5997 (0.288626)
      standard deviation: 42.3916 (0.166242)
      kurtosis: 0.456978
      skewness: 0.885334
      entropy: 0.890491
  Rendering intent: Perceptual
  Gamma: 0.454545
  Chromaticity:
    red primary: (0.64,0.33)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.06)
    white point: (0.3127,0.329)
  Background color: white
  Border color: srgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 960x540+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: JPEG
  Quality: 92
  Orientation: Undefined
  Properties:
    date:create: 2018-08-09T00:03:36+02:00
    date:modify: 2017-07-26T08:52:10+02:00
    jpeg:colorspace: 2
    jpeg:sampling-factor: 1x1,1x1,1x1
    signature: ffcf5f3136e03c226f001c363ff8237094ed87c35e1b967f2bcad5fc48346c8b
  Artifacts:
    filename: hackerman.jpg
    verbose: true
  Tainted: False
  Filesize: 122075B
  Number pixels: 518400
  Pixels per second: 51.84MB
  User time: 0.010u
  Elapsed time: 0:01.009
  Version: ImageMagick 6.9.10-2 Q16 x86_64 20180618 https://www.imagemagick.org

##############################
########## exiftool ##########
##############################
ExifTool Version Number         : 11.06
File Name                       : hackerman.jpg
Directory                       : .
File Size                       : 119 kB
File Modification Date/Time     : 2017:07:26 08:52:10+02:00
File Access Date/Time           : 2018:08:09 00:05:03+02:00
File Inode Change Date/Time     : 2018:08:09 00:03:36+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Image Width                     : 960
Image Height                    : 540
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 960x540
Megapixels                      : 0.518

#############################
########## binwalk ##########
#############################

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01


################################
########## stegdetect ##########
################################
./check_jpg.sh: línea 63: stegdetect: no se encontró la orden

#############################
########## strings ##########
#############################
JFIF
$3br
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
	#3R
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
qA,L
$JvC7
WMJp
52MnI""l
....
5634275d694f8665957746c9619132f0

##############################
########## steghide ##########
##############################
steghide: 'no pude extraer ning'n dato con ese salvoconducto!

##############################
########## outguess ##########
##############################
./check_jpg.sh: línea 86: outguess: no se encontró la orden
Nothing found...

###################################
########## outguess-0.13 ##########
###################################
./check_jpg.sh: línea 94: outguess-0.13: no se encontró la orden
Nothing found...

###########################
########## jsteg ##########
###########################
./check_jpg.sh: línea 102: jsteg: no se encontró la orden
Nothing found...

##################################
########## stegoVeritas ##########
##################################
./check_jpg.sh: línea 113: stegoveritas.py: no se encontró la orden

Pasamos a analizar el hash 5634275d694f8665957746c9619132f0 que obtenemos con la herramienta hasher

root@kali:~/Desktop/HTB/Stego/Hackerman/hasher# python2 hash.py
              Hash Cracker 3.0.1
  ------------------------------------------
  88  88    db    .dP"Y8 88  88 88888 88""Yb
  88  88   dPYb   `Ybo." 88  88 88__  88__dP
  888888  dP__Yb  o.`Y8b 888888 88""  88"Yb  
  88  88 dP""""Yb 8bodP  88  88 88888 88  Yb
  ------------------------------------------
            python2 hash.py --info
[?] Hash : 5634275d694f8665957746c9619132f0
[=] Cek Hash Type ...
   [01] md4
   [02] md5
   [03] Nthash
   [04] Lmhash
   [05] Ntlm hash
[?] Choose Hash >>> 2
[=] open google
[*] Start ...
[00:00:00] Searching...
[00:00:00] Stopped...
[=] password found
[+] 5634275d694f8665957746c9619132f0 0={==> almost

Ya hemos conseguido la clave para extraer el secreto de la imagen. Pasamos steghide

root@kali:~/Desktop/HTB/Stego/Hackerman# steghide info hackerman.jpg
"hackerman.jpg":
  formato: jpeg
  capacidad: 5,8 KB
'Intenta informarse sobre los datos adjuntos? (s/n) s
Anotar salvoconducto:
  archivo adjunto "hackerman.txt":
    tama'o: 21,0 Byte
    encriptado: rijndael-128, cbc
    compactado: si
root@kali:~/Desktop/HTB/Stego/Hackerman#
root@kali:~/Desktop/HTB/Stego/Hackerman# steghide extract -sf hackerman.jpg
Anotar salvoconducto:
ya existe el archivo "hackerman.txt". 'lo sobreescribo? (s/n) s
anot' los datos extra'dos e/"hackerman.txt".
root@kali:~/Desktop/HTB/Stego/Hackerman#

Obtenemos un archivo llamado hackerman.txt

root@kali:~/Desktop/HTB/Stego/Hackerman# cat hackerman.txt
SFRCezN2MWxfYzBycH0=
root@kali:~/Desktop/HTB/Stego/Hackerman#

Analizamos el siguiente string en https://md5hashing.net/hash_type_checker que lo identifica como Base64 y pasamos a decodificarlo

printf SFRCezN2MWxfYzBycH0= | base64 -d
U0ZSQ2UwMHdia0JmVERGNlFGOGhjMTlFTTBCRWZRPT0=
printf U0ZSQ2UwMHdia0JmVERGNlFGOGhjMTlFTTBCRWZRPT0= | base64 -d
HTB{3v1l_c0rp}

Flag

La flag es: HTB{3v1l_c0rp