Dig deep into the file and find the flag.
# file hiddentation
# ./patch.py hiddentation r 0x0 0x280
# ./luks_parser.py hiddentation
# cp hiddentation hiddentation.copy
# ./patch.py hiddentation.copy w 0x3 53
# ./patch.py hiddentation.copy w 0x220 00ac71f3
# ./patch.py hiddentation.copy w 0x248 00000708
# ./patch.py hiddentation.copy r 0x0 0x280
# file hiddentation.copy
# cryptsetup luksDump hiddentation.copy
# while read password; do echo $password; echo -n $password | cryptsetup open --type luks hiddentation.copy volume --key-file - && break; done <<< "`curl --silent http://whnt.com/2014/01/22/the-25-most-common-passwords-of-2013/ | grep '. ' | awk '{print $2}'`"
# fdisk -l /dev/mapper/volume
# gparted /dev/mapper/volume
# # offset = 86016 (First sector) * 512 bytes/sector = 44040192
# losetup --offset 44040192 /dev/loop1 /dev/mapper/volume
# mount /dev/loop1 /mnt
# cat /mnt/flag.txt
# testdisk /dev/loop1
# dd if=/dev/loop1 of=ntfs skip=69632 count=34816
# umount /dev/loop1
# losetup -d /dev/loop1
# losetup /dev/loop1 ntfs
# mount /dev/loop1 /mnt
# cat /mnt/readme.txt
# umount /dev/loop1
# losetup -d /dev/loop1
# ntfsundelete --scan ntfs
# ntfsundelete --undelete --match flag.txt ntfs
# cat flag.txt*
# ./rot.py -m tracks APAq986942o809qnn32n6987n7422771n53s59r5n1s02rq700ppr43p5196non749r 2>&1 | grep -e '\[' -e 13
References
http://testpurposes.net/2014/10/31/solucion-hiddentation-final-ctf-ncn-2014/
http://cryptsetup.googlecode.com/svn-history/r42/wiki/LUKS-standard/on-disk-format.pdf
No comments:
Post a Comment