picoCTF - picoGym ChallengesのWrite Upを綴っていきます。
主に備忘録として自分用になりますが、逐次問題が解けたら更新していきます。
Forensic
Disk, disk, sleuth! II (130 Points)
「dds2-alpine.flag.img.gz」というファイルが与えられるので、解凍します。
$ gzip -d dds2-alpine.flag.img.gz
$ ls
dds2-alpine.flag.img
Seulthkitを使って中身を見てみます。
$ mmls dds2-alpine.flag.img
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
000: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
001: ------- 0000000000 0000002047 0000002048 Unallocated
002: 000:000 0000002048 0000262143 0000260096 Linux (0x83)
$ fls -r -o 2048 dds2-alpine.flag.img | grep down-at-the-bottom.txt
+ r/r 18291: down-at-the-bottom.txt
$ icat -o 2048 dds2-alpine.flag.img 18291
Pitter, Patter, Platters (200 Points)
「suspicious.dd.sda1」というファイルが与えられます。
とりあえずFTK imagerで開くと、
フラグっぽいのがありました。
ダウンロードしてvimで開くと、フラグの文字列以外にゴミがあるので除去します。
suspicious-file.txt.FileSlack
$ vim suspicious-file.txt.FileSlack
:%s/^@//g
:wq flag.txt
※ ^@は、<Ctrl + 2>
あとは、逆順になるように出力するだけ。
suspicious-file.txt.FileSlack
$ cat flag.txt | rev
Sleuthkit Apprentice (200 Points)
とりあえず解凍
$ gzip -d disk.flag.img.gz
disk.flag.img
$ mmls disk.flag.img
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
000: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
001: ------- 0000000000 0000002047 0000002048 Unallocated
002: 000:000 0000002048 0000206847 0000204800 Linux (0x83)
003: 000:001 0000206848 0000360447 0000153600 Linux Swap / Solaris x86 (0x82)
004: 000:002 0000360448 0000614399 0000253952 Linux (0x83)
$ fls -r -o 2048 disk.flag.img
d/d 11: lost+found
r/r 12: ldlinux.sys
r/r 13: ldlinux.c32
r/r 15: config-virt
r/r 16: vmlinuz-virt
r/r 17: initramfs-virt
l/l 18: boot
r/r 20: libutil.c32
r/r 19: extlinux.conf
r/r 21: libcom32.c32
r/r 22: mboot.c32
r/r 23: menu.c32
r/r 14: System.map-virt
r/r 24: vesamenu.c32
V/V 25585: $OrphanFiles
それっぽいのはなさそう
$ fls -r -o 360448 disk.flag.img | grep flag
++ r/r * 2082(realloc): flag.txt
++ r/r 2371: flag.uni.txt
ビンゴ
$ icat -o 360448 disk.flag.img 2371
picoCTF{by73_5urf3r_adac6cb4}
like1000 (250 Points)
「1000.tar」というファイルがあたえられます。
とりあえずダウンロードして解凍してみます。
$ tar -xf 1000.tar
$ ls
1000.tar 999.tar filler.txt
$ cat filler.txt
alkfdslkjf;lkjfdsa;lkjfdsa
tarのオプションかな?わからないのでとりあえずパス。
さらに解凍したら、「998.tar」が生成されたので、1までやるやつか...
1つずつやるのはしんどいので、
tar.py
import os
import subprocess
for i in reversed(range(1001)):
filename = str(i) + '.tar'
if (os.path.exists(filename)):
print(filename)
subprocess.run(['tar', '-xf', filename])
subprocess.run(['rm', filename])
1つのファイルの容量が約9Mなので、解凍後削除してます。
$ python tar.py
$ ls
filler.txt flag.png tar.py
$ open flag.png