【ハッキングラボ】第1章~第3章 「事前準備」

# はじめに
「ハッキングラボのつくりかた」という書籍においての備忘録

* 仮想環境OS：kali Linux
- ※定期的にapt-updateとパッケージのアップデートをしておくこと※
- ローカルログインはKali側のターミナル、リモートSSHはwindows側のTeraTermから

# メモ (注意点など )

#### ITセキュリティ概要
1995年頃のセキュリティに関してはガバガバであり、世間的に重要視されるようになったのは
2000年頃から「セキュリティ」というものが謳われるようになったため歴史は浅いという印象

#### Kali Linux
Debianベースのペネトレーションテスト用のLinuxのディストリビューション

#### NAS
Network Attached Strage
ネットワーク接続によるハードディスク

#### APT
Debianに搭載されているパッケージ管理システム

#### ハイパーバイザー型
ホストOSはWindows、MacOSなどの上に仮想化ソフトを入れる
ホストOSの部分がハイパーバイザーになっているのがハイパーバイザー型

#### 隠しファイル
Linuxにおいて .から始まるファイルは隠しファイルとして扱われる

#### locateコマンド
作成したばかりのファイルはDBに登録されていないため表示がでない

#### Windowsにてイベントビュアーという画面からPC自体のログの確認ができる
おおよそ使用される主なイベントとそのイベントID

- 12 OS起動
- 13 OSシャットダウン
- 6008 エラー：シャットダウンが正常にされなかった後の起動
- 7001 ログオン
- 7002 ログオフ

#### Windows power shell
マイクロソフトがコマンドプロンプトをよりpower upしたCUI
windowsPCをコマンド管理できる
コマンドプロンプトより強力なもの

#### msinfo32
「ファイル名を指定して実行」＞「msinfo32」
システム情報実行ファイル
現在PCのスペックやGPUなど一覧で確認できる

# VirtualBox
(個人的にinstallやセットアップしていたのでほぼ読み飛ばしてます。)

#### VirtualBox Extension Pack
ディスクの暗号化やリモートデスクトップ機能などが備えられる機能、現在のVirtualBoxのバージョンと統一してダウンロードする

#### VirtualBoxにて終了する際
3通りある、作業状態を保存するかの可否を確認して終了すること
* 「保存終了」
* 「OS終了」
* 「強制終了」





# Kali 環境構築

* ユーザ名、パス共にデフォは「kali」

* グローバルIPアドレス確認方法

ブラウザの環境変数をチェックするサービスにアクセスする
ブラウザの環境変数には、グローバルIPアドレスが含まれているため

- [WhatIsMyIPaddress](https://whatismyipaddress.com/)
- [確認くん](https://www.ugtop.com/spill.shtml)

など…確認するための外部サイトを利用する。
それかルータの設定画面にアクセスして機器状態で確認ができる

### 仮想アプライアンスのインポート
* アプライアンス

イメージファイルなどとして提供される仮想マシンのこと
インポートが完了するとVirtualBox左側に仮想マシンが作成される

### 日本語パッケージの導入
既存のパッケージを最新に更新する 

```Linux
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install -y task-japanese task-japanese-desktop
```

### 日本語表示の設定

```Linux
$ sudo dpkg-reconfigure locales
```

スクロールして、ja_JP.UTF-8 UTF-8をスペースキーで選択
次の画面にて同じように、ja_JP.UTF-8を選択

```Linux
$ sudo update-locale LANG=ja_JP.UTF-8
```

リスタートすることで反映される
[shift + space] にて全角半角の変換がされるようになった

#### IPアドレス設定

#### 条件

- LANに端末を配属させるためにはLANアダプタにIPアドレスを割り当てる必要がある
- kaliからLAN内の端末にアクセスできる
- ホストOSから Kali にアクセスして操作できるようにする
- ネットに接続できるようにする

#### 1. 設定ファイルを編集する
/etc/network/interfaces に設定をする

##### /etc/network/interfacesとは
VirtualBox画面にて設定をしてもKallが認識をしてくれない仕様になっている、そのため”直接設定してKaliにIPアドレスを認識させる必要”がある、そのためのファイル名

##### 設定をrestartコマンドで反映させる
```
$ sudo vi ...
```
とすることで無事に編集保存ができた

![ipaddress_set.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581998/1bc8f7ff-2825-f6d4-57a3-bfcc186043c7.png)


### Kaliに2つのLANアダプタを設定する(動的アドレス編)

Kaliに2つのLANアダプタを設定し静的IPアドレスを設定したい、がKaliに複数のLANアダプタを設定する際気をつけることがある
→それを確認するため動的IPを設定する


#### 1. 仮想LANアダプタを「仮想マシンの設定」にて追加する
#### 2. ホストオンリーネットワークを設定する

##### ホストオンリーネットワークとは
外部ネットワークとは通信できないがホストOSやゲストOS間でネットワークを構成するモード
「ファイル」＞「環境設定」＞「ネットワーク」にて編集
アイコンを選択してIPアドレス等詳細を編集

#### 3. LANアダプタの設定状況を確認する
右下の「ネットワークボタン」にてケーブルの接続状況を確認する

#### 4. 片方しか接続されないため設定を変更する
2つのネットワークを設定後に”右下にあるネットワークボタン”にて接続されているネットワークを確認することができる
LANとNetwork共に有効にしたいが、片方のみネットワークが繋がれ片方しか有効にならない
→Debian仕様のため
→/etc/network/interfacesファイルに直接書き込む必要がある
→ホストオンリーネットワークに関してはVirtualBox内左上「ホストネットワークマネージャー」から
LANアダプタを設定する場合は仮想マシン一覧(左側の縦一覧のタブ)から「右クリック」＞「設定」＞「ネットワーク」から
それぞれ設定をする
サポートにも記載があるが一度Kali自体を落としてからではないとアダプタの追加ができないため ”再起動” や ”シャットダウンしてから作業する” などはもろもろ把握しながら動かすこと



## Kali に2つのLANアダプタを設定する方法(静的アドレス編)

#### 1. ホストオンリーアダプタ側を静的IPアドレスに変更する
#### 2. ifconfigにてアドレスが設定されているか確認
#### 3. ルーティングテーブルやPingにて疎通を確認
ネットにいつまでもつながらなかった

```php
$ apt update
$ apt upgrade
```

して再起動など試したところ繋がった
ifconfig にてIP設定できているかつ、VirtualBox内にてNATの設定をしていてKali内にアダプタが反映されている状態であれば接続できているはず

![internet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581998/6c9a6a0c-80c6-d093-e9b3-552a1fce21a3.png)


## SSHアクセスを有効にする、KaliにSSHパスワード接続する

Kali側にsshdを起動しwindows側にSSHクライアントを設定する必要がある

##### SSHクライアントとは

TeraTermやPuttyなどのソフト

#### 事前に設定するための条件

##### root以外のユーザーを作成しておき、そのユーザーでログインできるようにする
##### rootのパスワードを変更しておく(権限がtoorだと奪われる可能性があるため)
##### ホストオンリーネットワークを通じて、ホストOSからKaliに接続できる。そのときアクセスしやすいように、静的IPアドレスとする

#### 1. SSH鍵を再生成する
#### 2. sshdを起動しているか確認し、service ssh startにて起動させる
#### 3. Kali のterminalからSSHコマンドでログインができるか確認
#### 4. ホストOSのコマンドプロンプトにてPingで疎通確認する
問題がなければTeraTermでログインをする



### SSHでrootログインを許可する
sshdの設定ファイルはrootではデフォルトでログインができない仕様になっている

#### 1. /etc/ssh/sshd_configにてファイルの編集をしてrootでログインできるようにする
#### 2. 再起動してログイン

![key2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581998/b967c84c-be43-da10-bffc-f45d012a6182.png)

![SSH.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581998/799d63fe-dc5f-50f2-0bd4-361cc63db0e6.png)


## SSH公開鍵認証アクセス
#### 1. 鍵を生成する
TeraTerm内にて「設定」＞「鍵生成」
パスフレーズを設定＞公開鍵生成、秘密鍵をそれぞれ id_rsa.pub id_rsaのファイル名で作成保存する

#### 2. 鍵を設定する
TeraTermにてSSHパスワード認証にてログインをして「ファイル」＞「SSH SCP」を選択してFromに先程生成した id_rsa.pubを選択する
Sendを押したことによりローカルのホームディレクトリに公開鍵のファイルが置かれる

#### 3. root ユーザにて $ ls -la id_rsa.pubを探してみる
#### 4. そのファイルの内容を autorized_keysファイルにコピーをする
#### 5. 公開鍵認証を nano /etc/ssh/sshd_config にて編集をして有効にする
#### 6. 再起動する
#### 7. TeraTermでログインする際「RSA/..鍵を使う」にチェックを入れ秘密鍵(id_rsa)ファイルを選択しログインする
#### 8. 成功した場合はパスワード認証を無効にする



# ホストOS設定

#### 隠しファイル、隠し拡張子を表示させる

「コンパネ」＞「エクスプローラーオプション」＞上のタブの「表示」にて拡張子や隠しファイルの項目のチェックを外す


#### ホストOSとゲストOS間のファイル共有の設定

FTPサービスなど様々ある

## VirtualBoxファイル共有機能設定
##### 1.C:\shareフォルダを作成し中に sample.txtを作成する
##### 2.VirtualBox設定画面にて「共有フォルダ」を選択

- パス C:\share
- ファイル名 share
- 自動マウント ON

##### 3.Guest Additionsを起動する

##### 4.CD内のファイルをデスクトップに仮作成した「Vbox」というファイル内にすべてコピーする
	
##### 5.chmod +x  VboxLinuxAdditions.run 、sh ./ VboxLinuxAdditions.run起動させる

##### 6.sf/shareというファイルが共有のファイルになり、存在する

##### 7.ls -laやcat コマンドにて /media内にあるファイルを確認するとホストOS内で作成したファイルと同一であり共有されたことがわかる

![Inkedwindows.share.fire_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581998/64f994ba-d441-ffd8-db1a-6efef28acacd.jpeg)

![share.file.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581998/34f510ae-9417-d63e-8933-238b45a24d2e.png)



### PCの共有設定
C:\Usersのプロパティを確認すると「共有フォルダ」と設定がデフォルトでなっている
PC間でファイルの受け渡しをするには便利な機能だが、その反面危険
→ローカルアカウントのパスワードが攻撃者に知られている場合、LAN内から共有フォルダー内のファイルに自由にアクセスされてしまうことになる

* 秘密の共有フォルダにするためには、フォルダ末尾に「 $」を加える
共有名を正確に知らないと、共有フォルダーが表示されなくなる

---

まだまだ事前準備段階です。
軽く一通り書籍を拝読して目を通して触ってみたいのもあるので
のんびりハッキング内容は投稿更新していきたいです。

##### 参考文献
[ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習](https://www.shoeisha.co.jp/book/detail/9784798155302)
出版社：翔泳社
著者：IPUSIRON