ホワイトハッカーはKali Linuxで拡張子の無いファイルを「file」コマンドで、ファイルの種類を調べて、実行できるか確認する(CTF)

ペネトレーションテスト&バグバウンティctf,fileコマンド

CTFの問題を解くために「file」コマンドで何ができるか調査しました。
(CpawCTFの問題の確認でこのページを見られた方にはヒントをお教えします。)
 

fileコマンドとは

fileコマンドはLinuxのファイルの種類を判断するコマンドです。
テキストファイルや実行可能ファイル、データファイルなどと判断されます。
スクリプトの場合はインタプリタ名とスクリプト名が表示されます。
 

事前準備と確認環境

今回対象のファイルは拡張子のない「ctf001~ctf003」の3ファイルを作成しました。
  • ctf001:実行ファイル
  • ctf002:スクリプトファイル
  • ctf003:テキストファイル
確認環境は、Oracle VM VirtualboxのKali Linuxです。
詳しくは
Windows11ディスクトップパソコンに仮想環境を作成してKali Linux 2022.3をインストール(手順)
をご覧ください。

 

fileコマンドのオプション

ファイルの種別を判定するために「-i」オプションを利用します。
「-i」オプションはMIMEタイプ文字列を表示します。
 

fileコマンドで実行できるファイルの確認

file -i ctf001
application/x-pie-executable
「executable」と表示されているので「実行ファイル」になります。
 
file -i ctf002
text/x-shellscript
「shellscript」と表示されているので「シェルスクリプト」になります。
 
file -i ctf003
text/x-shellscript
「text」と表示されているので「テキストデータ」になります。
 
よって、実行できるファイルは、「ctf001」と「ctf002」になります。
 

CTFの問題を解くためのヒント

ファイルを実行したけどエラーになる場合があります。
原因は2つあると思われます。
 
一つは「ファイルのアクセス権」が違います。
「実行可能」なアクセス権がついていません。
 
二つ目はファイルの「実行コード」ですが
“ctf001: command not found"になっていませんか?
 
これは、「ctf001」ではなく「./ctf001」で実行できます。
「white markn flg.」が実行結果になります。
 

ホワイトハッカーはKali Linuxで拡張子の無いファイルを「file」コマンドで、ファイルの種類を調べて、実行できるか確認する(CTF)のまとめ

いかがでしたか、Linuxの知識がないと解けない問題でしたね。
私は遠い昔に「Unix/C言語」で開発した経験を思い出しながら解きました。
 
CTFの問題は「机上」ではなく、実際のLINUX環境で自分の手を使って経験しないと理解できないですね。
 
やはり、自分のパソコンに「Oracle VM VirtualboxのKali Linux」は必須です。