tkbctf1 writeup #2

fairy (Challenge 9)

割と解いた人が少なかった問題でした。

We need to access a thin client to get trade secret of rival company.
However the client needs to be unlocked at boot sequence. Can you unlock?
This file may help you.

中身はtcpdumpのキャプチャファイルです。

% file 250d3a31dee7f62d57ea3d17f544b5e4750e8039
250d3a31dee7f62d57ea3d17f544b5e4750e8039: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)

Wiresharkで開いてみたところ、TFTPでinitrd.gzとかを送信しているみたいです。
f:id:akiym:20130506165006p:plain
pxelinux.config/defaultにパスワードのハッシュがありました。
f:id:akiym:20130506165020p:plain

default menu.c32

label debian
	menu passwd $4$OVtcFw7z$9S2RpE0jMdbV1Z/+daXh2RGQtDM$
        kernel linux
        append initrd=initrd.gz

あとはjohn the ripperに投げるだけですが、このままの形では無理なのでうまく整形します。

use strict;
use warnings;
use utf8;
use MIME::Base64;

my $flag = '$4$OVtcFw7z$9S2RpE0jMdbV1Z/+daXh2RGQtDM$';

my ($salt, $hash) = $flag =~ /\$4\$(.+)\$(.+)\$/;
$hash = decode_base64($hash);
$hash = unpack 'H*', $hash;

print "\$SHA1p\$$salt\$$hash";
% john --format=sha1-gen --show password.john
?:goodluck

1 password hash cracked, 0 left

となるので、goodluckがflagでした。