Hackerman
2 minutes to read
We are given a JPEG image called 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, components 3

Since it is a JPEG image, we can think of steganography using steghide. But it does not seem to work for the moment.
If we check the printable strings that are inside the image file, we will see a string that seems to be an MD5 hash (32 hexadecimal digits):
$ strings -20 hackerman.jpg | xxd
00000000: 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c  ................
00000010: 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0a0c 0c0c  ................
00000020: 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c  ................
00000030: 0c0c 0c0c 0c0c 0c0c 0c0a 2526 2728 292a  ..........%&'()*
00000040: 3435 3637 3839 3a43 4445 4647 4849 4a53  456789:CDEFGHIJS
00000050: 5455 5657 5859 5a63 6465 6667 6869 6a73  TUVWXYZcdefghijs
00000060: 7475 7677 7879 7a0a 2627 2829 2a35 3637  tuvwxyz.&'()*567
00000070: 3839 3a43 4445 4647 4849 4a53 5455 5657  89:CDEFGHIJSTUVW
00000080: 5859 5a63 6465 6667 6869 6a73 7475 7677  XYZcdefghijstuvw
00000090: 7879 7a0a 3536 3334 3237 3564 3639 3466  xyz.5634275d694f
000000a0: 3836 3635 3935 3737 3436 6339 3631 3931  8665957746c96191
000000b0: 3332 6630 0a                             32f0.
$ strings -20 hackerman.jpg | grep -v \\x0c
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
5634275d694f8665957746c9619132f0
$ echo -n 5634275d694f8665957746c9619132f0 | wc -c
      32
If we put this hash in crackstation.net we will find that almost is the word whose MD5 hash is the one above.

So we got can try almost as password for steghide:


And we get a string that seems to be encoded in Base64. And there’s the flag:
$ echo SFRCezN2MWxfYzBycH0= | base64 -d
HTB{3v1l_c0rp}