ctf-training-lab/readme/ファイル解析/ファイル解析コマンド.md

73 lines
3.8 KiB
Markdown

# ファイル解析について
CTFの初級問題には、よくファイルの中にFlagが隠されています
## ファイル操作に活用するコマンド
### 一般的に使われるコマンド
| コマンド名 | 内容 | サンプル |
| ---------- | -------------------------------------------------------- | ---------------------------------------- |
| `cat` | 複数のファイルの内容を連結して標準出力に表示 | `cat file1.txt file2.txt > combined.txt` |
| `ls` | ファイルの権限、所有者、サイズ、タイムスタンプなどを表示 | `ls -la` |
| `chmod` | ファイルの権限を設定する | `chmod -x <ファイル名>` |
| `less` | ファイルの内容を安全に閲覧できる | `less <ファイル名>` |
### 解析に用いるコマンド
| コマンド名 | 内容 | サンプル |
| ---------- | ---------------------------------------------------- | ------------------------- |
| `file` | ファイルの種類を確認する。(バイナリ・テキスト判定) | `file <ファイル名>` |
| `hexdump` | 16進ダンプで表示する(バイナリの場合は安全です) | `hexdump -C <ファイル名>` |
| `strings` | バイナリファイルでも、文字列だけを抽出して表示する | `strings <ファイル名>` |
| `od` | ファイルの内容を8進数、16進数、またはASCIIとして表示 | `od -tx1 -c <ファイル名>` |
| | | |
* `od`は、`hexdump`に似ていますが、より細かいオプションがあります。
* `strings`によりバイナリデータに含まれているテキスト情報やメタデータを抽出できます
**解析のコツ**
* file でファイルタイプを確認。
* テキストファイルなら less や vim を使用。
* バイナリファイルなら hexdump や strings を使用。
* これらの手順を使えば、Linuxで不明なファイルの内容を安全に確認できます。
### ファイルの中身を安全に見るためのポイント
**実行しないこと**:
ウイルスが仕込まれたファイルであっても、cat や less、hexdump、strings などで「内容を表示するだけ」では、ファイルは実行されません。
バイナリファイルを`hexdump``strings`で表示しても、ファイルは実行されません。
ただ表示するだけなら感染のリスクは低いです。
**仮想マシンやコンテナ内で確認する**:
ウイルスやマルウェアの可能性があるファイルは、実際のシステムではなく、
仮想マシンを使えば、ファイルが実行されても
仮想環境内で被害がとどまり、実システムには影響を与えません。
**ファイルのパーミッションを確認する**:
不明なファイルを扱う際は、chmod コマンドでファイルのパーミッションを確認し、実行権限 (x) がついている場合は実行されないように権限を変更しておくと良いでしょう。
```sh
chmod -x <ファイル名>
```
**ウイルススキャンを行う**
ファイルを表示する前に、アンチウイルスソフトを使ってファイルをスキャンし、マルウェアが含まれていないか確認することも重要です。
LinuxでもClamAVなどのウイルス対策ソフトを使ってスキャンできます。
```sh
clamscan <ファイル名>
```