hackerになりたいnoobの備忘録

学んだことのまとめです

bandit Part2

どうも皆さん、お久しぶりです。cl0wnです。2週間ぶりとなってしまいましたが、banditの続き(Level9 -> Level16)をやっていこうと思います。

Level9

問題文を訳すと、「パスワードはdata.txtの中にある人間が読める部分であり、いくつかの==に続いて書かれている。」だそうです。では、

strings data.txt | grep ==

をしてみましょう。このコマンドは人間が読める部分を出力してくれます。あとは、grepコマンドで複数の==が存在する部分を抜き出してやればパスワードゲットです。

Level10

問題文曰く、これはbase64エンコードされたデータだそうです。base64は一種のデータの変換法です。バイナリデータをテキストに変換したりするのに使います。詳しくはこちらで
wikipedia

エンコードされているのならデコードしましょう。

base64 -d data.txt

base64コマンドは文字通りbase64を取り扱うコマンドです。dオプションをつけるとデコードしてくれます。これでパスワードゲット。

Level11

問題文曰く、data.txtの中身のアルファベットが13文字ずれているらしいです。いわゆるRot13というやつです。
Rot13

そこで、以下のコマンドを使います。

cat data.txt | tr [a-m,n-z] [n-z,a-m] | tr [A-M,N-Z] [N-Z,A-M]

trコマンドは入力から受け取った文字列を置き換えたり、消したりして出力するコマンドです。上のコマンドで、「a」は「n」に、「A」は「N」にというように、13文字ずれて置き換わります。これでパスワードゲット。

Level12

data.txtはバイナリを16進数表記でテキストで表現しています。これをバイナリに戻して、かかっている圧縮を順番に解凍してやればパスワードが得られます。解凍するのに新規ファイルを作成したい場合がありますが、ホームディレクトリでそれをする権限が与えられていないので手間です。/tmpディレクトリにディレクトリを作成しそこを使えとの指示があるので、それに従います。


$mkdir /tmp/cl0wn
$cp data.txt /tmp/cl0wn
$cd /tmp/cl0wn

以下が、回答を得るまでに私がやったことです。


$xxd -r data.txt > data

$file data
data: gzip compressed data, was "data2.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix

$mv data data.gz

$gzip -d data.gz

$file data
data: bzip2 compressed data, block size = 900k

$mv data data.bz

$bzip2 -d data.bz

$file data
data: gzip compressed data, was "data4.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix

$mv data data.gz

$gzip -d data.gz

$file data
data: POSIX tar archive (GNU)

$tar xvf data
data5.bin

$ls
data data5.bin data.txt

$file data5.bin
data5.bin: POSIX tar archive (GNU)

$tar xvf data6.bin

$file data6.bin
data6.bin: bzip2 compressed data, block size = 900k

$bzip2 -d data6.bin
bzip2: Can't guess original name for data6.bin -- using data6.bin.out

$file data6.bin.out
data6.bin.out: POSIX tar archive (GNU)

$tar xvf data6.bin.out
data8.bin

$file data8.bin
data8.bin: gzip compressed data, was "data9.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix

$mv data8.bin data8.gz

$gzip -d data8.gz

$file data8
data8: ASCII text

$less data8

bzipgzipコマンドは、dオプションといっ所に使うことで、それぞれの方法で圧縮されたファイルを解凍します。tarとはファイルをまとめるコマンドです。アーカイブするコマンドとも言います。xオプションと一緒に使うことで、アーカイブからファイルを取り出すことができます。何回も解凍とアーカイブからファイルを取り出すことを繰り返し、data8というファイルが出てきます。この中にパスワードがあります。

まとめ

根気が大事

 

おまけ

ブログサーバーとドメインとったので移行を考えてます。