総当たり攻撃用の「.txt」ファイルを作ってくれるソフト【Crunch】の使い方

すべて初心者であり、不備がたくさんあると思いますのでご教授お願いします。

# _１．やること_
![テスト.png](https://qiita-image-store.s3.amazonaws.com/0/115666/d3411476-2471-823c-0815-6320988a5d7f.png)

具体的にはこんな感じの<font color="blue">テキストファイル（.txt）</font>を作ります。
何文字から何文字まで、とかどの文字からどの文字までも指定することができます。

<br>

# _２．さっさと作りたいって人向け_

現在のディレクトリにpass.txtって名前で保存します。

>`Crunchのインストール`
<Font color="navy">sudo</font> <Font color="red">apt-get install</font> <Font color="green">crunch</font>
>
`charset.lstの確認`
vim /usr/share/crunch/charset.lst
>
`小文字アルファベットの組み合わせ(1文字から3文字)`
<Font color="green">crunch</font> 1 3 -o pass.txt
>
`数字の組み合わせ(1文字から3文字)`
<Font color="green">crunch</font> 1 3 0123456789 -o pass.txt
>
`一番使えそうな小文字アルファベット＋数字の組み合わせ(1文字から3文字)`
<Font color="green">crunch</font> 1 3 abcdefghijklmnopqrstuvwxyz0123456789 -o pass.txt
>
`小文字大文字記号の組み合わせ(1文字から3文字)`
<Font color="green">crunch</font>1 3 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o pass.txt
>
`password[（3文字の小文字アルファベットの組み合わせ）]`
<Font color="green">crunch</font> 13 13 -o pass.txt -t password[@@@]

<br><br><br>

# _３．どんなときそのファイルが必要になるか_
文字をいちからすべてためす「総当り攻撃」をするときには、LinuxOSでインストールできる<font color="red">【Hydra】</font>というソフトを使います。

しかしいざ総攻撃をしようとすると<font color="red">【Hydra】</font>は
「すべての文字列が乗っているテキストファイル（.txt）が欲しい（´・ω・`）」
と言ってくるのでその時に渡す用に必要となります。
<br><br><br><br><br>
# _４．必要なソフトを手に入れる_
## ①LinuxOSを手に入れる。
Linuxのインストール方法などはいろんなところでわかりやすく乗っています「Linux　インストール」とかで調べてください。

## ②【Crunch】のインストール

> <Font color="navy">sudo</font> <Font color="red">apt-get install</font> <Font color="green">crunch</font>


で入れられるとおもいます。

無かったら

> http://kumonchu.com/oss/hydra-crunch-ubuntu/

<br><br><br>
# _５．使い方_

## 基本.1(ターミナル上に)

> *<b>crunch</b> (何文字から) (何文字まで)*

*例　：<font color="green">crunch 1 3</font>*
*動き：１字のアルファベットすべてから３字のアルファベットすべてまで*

これだけだと ターミナル上に表示されるだけです。

<br><br>

## 基本.2［-oオプション］(テキストファイルに)

> *<b>crunch</b> (何文字から) (何文字まで) -o pass.txt*

もしくは

> *<b>crunch</b> (何文字から) (何文字まで) > pass.txt*

*例　：<font color="green">crunch 1 3 -o pass.txt</font>*
*動き：１字のアルファベットすべてから３字のアルファベットすべてまでをテキストファイルに保存する。*

これで<font color="blue">テキストファイル（.txt）</font>に保存できます。もちろん<font color="blue">テキストファイル（.txt）</font>の名前は何でもいいです。

<br><br>

## 基本.3(決めた文字の組み合わせ)

> *<b>crunch</b> (何文字から) (何文字まで) (組み合わせたい文字)*

*例　：<font color="green">crunch 1 3 </font><font color="red">abc123\@\*</font>*
*動き：１字の<font color="red">abc123\@\*</font>*から３字の<font color="red">abc123\@\*</font>*の組み合わせまで*

【\（バックスラッシュ）】は【　（スペース）】として組み合わせます。
<br><br>

## 応用.1[-fオプション][-tオプション]（.lstファイルで定義された文字列で＆決めた文字をまぜて使う)

> *<b>crunch</b> (何文字から) (何文字まで) -f /usr/share/crunch/charset.lst （charset.lstで定義された文字列）-t pass[@@@] -o pass.txt*

*例　：<font color="green">crunch 9 9 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -t pass[@@@] -o pass.txt</font>*
*動き：pass[（３字の大文字、小文字、記号、数字のすべての組み合わせ）]の形でテキストファイルに保存*

具体的にはこんな感じ。

<img width="735" alt="Screenshot from 2016-03-20 01-40-43.png" src="https://qiita-image-store.s3.amazonaws.com/0/115666/94c3b987-0b1e-d698-aa02-9e572fc77607.png">

注意するのはここで指定する（何文字から何文字まで）は＠の数ではなく、この例でいうpass[]も含めた文字数となる。

<br><br>

## 応用.2[-sオプション］(どの文字からスタート)

> *<b>crunch</b> (何文字から) (何文字まで) (組み合わせたい文字) -s （スタートする文字） -o pass.txt*

*例　：<font color="green">crunch 1 3 </font><font color="red">abc123\@\*</font> </font><font color="blue">-s c</font>*
*動き：１字の<font color="red">c123\@\*</font>*から３字の<font color="red">abc123\@\*</font>*の文字の組み合わせまでをテキストファイルに保存*

本来【a b c 1 2 3 ...】と続いていくのが【c 1 2 3 ...】となります。
一文字の【a b】 は出力されません。

<br><br>

## 応用.3(文字列の組み合わせ)

> *<b>crunch</b> (何文字から) (何文字まで) -p （組み合わせたい文字列）... -o pass.txt*

*例　：<font color="green">crunch 1 3 -p cat dog Michael</font>*
*動き：１つの文字列のcat dog Michaelから３つの文字列のcat dog Michaelまでをテキストファイルに保存*

文字列を文字として組み合わせるイメージです


<br><br>

# _６．蛇足_
## charset.lstについて
>
- /usr/share/crunchを省略して書きたかったけど、勉強不足でどうしたらいいのかわからなかったです。
>
- 私のubuntu1.5.10とkalilinux2.0は/usr/share/crunch/charset.lstとなっていたため、そのように書きました

<br><br>

# _７．更新_
>
- メモに使いやすくするために「さっさと作りたい人」を上に持ってきました