「ハッキング・ラボのつくりかた」セキュリティ用語および環境構築2023

:::note alert
この記事の目的はセキュリティを学習することです．他人で試すことは不正アクセス禁止法や電子計算機使用詐欺罪などに抵触する恐れがあります．やめた方があなたのためです．
:::

# きっかけ
セキュリティのことを勉強している中で攻撃手法を知ることも必要だと知っていたが，他人のコンピュータを攻撃することはできないためイメージができなかった．また以前インストールした仮想環境を使っていないことを勿体無いと思っていた．そこで春休みという機会に仮想環境でハッキングを練習することを求めて，[「ハッキング・ラボのつくりかた」](https://www.shoeisha.co.jp/book/detail/9784798155302)に辿り着いた．

# 前提
- 僕はセキュリティエンジニアを目指す学生．
- 本の中に出てきたセキュリティ用語を調べながら自分用に並べていく．
- [ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習](https://www.shoeisha.co.jp/book/detail/9784798155302)の主に2章と5章を読みながら，つまづいた点を書き連ねていく．
- [サポートサイト](https://s-akademeia.sakura.ne.jp/main/books/lab/faq.html)も参考になる．

# 調べたセキュリティ用語
## Nmap
[Kali Linuxの公式サイト](https://www.kali.org/tools/nmap/)に書いてあるものを参照すると
>Nmapはネットワーク探索やセキュリティ監査用のユーティリティで，サポートしているものは
>- Pingスキャン（起動しているホストを特定）
>- 多くのポートスキャン
>- バージョン検出（ポートの後ろで待機しているサービスプロトコルやアプリケーションのバージョンを特定）
>- TCP/IPフィンガープリント（リモートホストOSやデバイスの特定）
>- おとり/ステルススキャン，sunRPCスキャンなども

## Hydra
Nmapと同様に[公式サイト](https://www.kali.org/tools/hydra/)を参照すると
>Hydraはログインクラックツールで，攻撃するための多数のプロトコルをサポートしている．非常に高速で柔軟性があり，新しいモジュールの追加も簡単なので，研究者やセキュリティコンサルタントはリモートでシステムに不正アクセスすることがいかに容易であるかを示すことができる．

辞書式攻撃を実際に試してどういう動きかが分かっただけでハッキング・ラボを読んで良かったと思う．辞書の用意の仕方などを調べる機会にもなった．

## Patator
例に漏れず[公式サイト](https://www.kali.org/tools/patator/)を参照すると
>Patatorは総当たり攻撃をするためのツールで，FTPログインやMySQLログイン等に対する柔軟な総当たり攻撃に行える．

ハッキング・ラボではHydraではうまくいかない環境という設定だったため用いている．

余談：Patatorはフランス語でジャガイモバズーカという意味らしいがそこから来ているのか……？

## shadowファイル
`/etc/shadow`ファイルはユーザのパスワードを暗号化して格納しているファイルのこと．かつては`/etc/passwd`にパスワードが記述されていたがroot権限からしか見られないような仕組みを用いるようになった．

## John the Ripper
John the Ripperに関しては公式サイトに良い説明がなかったので，wikipediaからまとめると
>多数のパスワードクラッカーを1つのパッケージに統合したツールで，パスワードハッシュの種類を自動的に検出することができ，頻繁に使用されるパスワードのテスト及び解読のためのプログラムの1つ．総当たり攻撃や辞書攻撃ができる．

HydraやPatatorと異なる点はハッシュ化されたパスワードの復元などで使われるということ．
個人的にハッキング・ラボで一番すごいと思ったツールはこれ．名前も好き．

## RHOST
Remote HOSTのことで攻撃/調査対象ホスト．英単語かと思っていた．

## Metasploit Framework
オープンソースのペネトレーションテスト用プラットフォームで，エクスプロイトの作成・テスト・実行や脆弱性テストなどの機能がある．

ペネトレーションテストってなんか難しそうと思っていただけにとても驚いたツールであり，ペネトレイーションテストに対してこれまで持っていなかった興味が湧いてきた．

# 変更点
## p.38 
μ Torrentはインストールしない方が良い．
## p.39
Kali linuxのサイトの表示が本の場合と大きく変わっている．特にダウンロードでつまづいた．Chromeでダウンロードボタンを押すとダウンロードが始まらず，新しいタブに文字列が表示されたため，右クリックして保存した．
## p.40
ダウンロードしたファイルの拡張子が「.7z」だった．普段は圧縮も解凍も意識していなかった．7zipをインストールして解凍した．このあと本の通りにインポートするのではなく，仮想マシンの作成から```Hard Disk > Create a Virtual Hard Disk Now > vdiファイル```を選択したはず．
## p.43
rootのパスワードは本と変わっている．
## p.60
p.90を参考にして```apt update```が必要だったはず．サポートサイトによると```apt upgrade```はとりあえず飛ばすことが推奨されている．
自分の環境ではLeafpadではなくMozcだった．
## pp.80 - pp.89
- 仮想LANアダプターを追加するためには一旦仮想マシンを閉じてVirtualBoxのメイン画面から変更する必要がある．設定 > ネットワークタブでp.80の通りに設定する．本の場合のホストオンリーネットワークのタブは無いはずで，p.81とp.82の内容はやらない．
- p.85からのviの対象ファイルはread onlyなので```sudo```をつける．
- ネットワークの設定が終わったら適宜仮想マシンの再起動をする．
- 最後の```ping 10.0.0.1```はWindows10の設定上「Unreachable」になるはず．
## p.370
正誤表にも書いてあるが```ipconfig```ではなく```ifconfig```だった．また```ping```はやはり通らないはず．
## p.372
nmapをする前にターゲット仮想マシンMetasploitable2は起動させておく（きっと当たり前のことだけど気が付かなかった）．
```nmap -sV -O -p- 10.0.0.5```は```sudo nmap -sV -O -p- 10.0.0.5```としなければいけない．
## p.376
- ```PASS hoge```まで進んだ後動かなくなって```Ctrl+C```で中断した後もう一回繰り返すとうまくいく．ちなみに```220(vsFTPd 2.3.4)```が返ってきた後なにも起こらないが```USER attacker:)```とそのまま入力すればよい．
- ```netstat -na | grep 6200```と入力するのはターゲット側のターミナルであることに注意．読めばわかるがKali側ではない．

## p.389
コマンドが長くて```^```が足りないことに気が付かなかった．正誤表も参考にすると良い．
```
hydra -L user.lst -P pass.lst -s 8180 10.0.0.5 http-post-form "/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password"
```
## p.397
正誤表にもあるが```cd /rootfs/root/.ssh```．僕の場合は初見ではわからなくてルートディレクトリまで戻った．

## 参考文献

この記事は以下の情報を参考にして執筆しました。

- [ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習](https://www.shoeisha.co.jp/book/detail/9784798155302)
- [正誤表（上と同じリンク）](https://www.shoeisha.co.jp/book/detail/9784798155302)
- [サポートサイト](https://s-akademeia.sakura.ne.jp/main/books/lab/faq.html)
- [Kali Linuxの公式サイト](https://www.kali.org/tools/)