1.ネットワーク基礎
・OSI参照モデル
https://eset-info.canon-its.jp/malware_info/special/detail/220712.html
・この中で、3層、4層、7層の理解を深めましょう。後ほどパケットを見ましょう。
・3層はネットワーク層で、IPなので、IPアドレスが含まれます。ICMPもレイヤ3です。
・4層はトランスポート層で、TCP/UDPです。
・7層はアプリケーション層なので、HTTPやSMTP、FTPなどの各種アプリケーションです。
2. Wireshark
(1)インストール
Wireshark · Download
インストールに関しては、以下のサイトを参考にしてください。(現在はアクセスできない?)
Wireshark のインストール方法 - Wireshark - OSDN
(2)使い方
・表示>時刻表示形式から、時刻表記を必要に応じて変更
・インストール後の初期の使い方に関しては以下のサイトを参考にしてください。
beginners-network.com
(3)フィルタ
パケットは大量なので、フィルタをかけることをお勧めします。
フィルタ例 | フィルタ方法 |
---|---|
IPアドレスを指定 | ip.addr==192.168.1.1 |
送信元IPアドレスを指定 | ip.src==192.168.1.1 |
プロトコルを指定 | http |
ポート番号を80に指定 | tcp.port == 80 もしくは udp.port == 80 |
and条件 | && |
or条件 | 半角で|| |
(4)HTTPパケットを見てみましょう。
以下、主に確認したい箇所です。
・2層のMACアドレス、タイプ
・3層のIPアドレス、プロトコル
・4層のポート番号、シーケンス番号、確認応答番号、FLAG(SYNやACKビット)
(5)ファイルのダウンロード
例: HTTP通信でやり取りされたファイルをダウンロードしたいとき
ファイル > オブジェクトをエクスポート > HTTP でエクスポートできると思います。
別のやり方は以下。
- ダウンロードしたいファイルがやり取りされたパケットを探し、クリック
(例: HTTP/1.1 200 OK を探す) - 中段にある詳細の中から、Media Type> Media type: ○○〇/○○ (**bytes)をクリック(青くハイライトされる)
- ハイライトされている状態で左上[ファイル(F)] > [パケットバイト列をエクスポート] を選択
- ファイルの種類を[All Files(*.*)]に変更し、保存したいファイルの名前と拡張子を入力して保存
(例: example.txt, example.zipなど) - 指定した拡張子でファイルが保存されたことを確認する
3.nmap
nmapを使うと、IPアドレススキャンやポートスキャンができます。
資料としては、以下
・nmapコマンドの使い方
https://qiita.com/I_S-657/items/5a6f9dd00ec7e59885e7
・nmapのインストール
https://nmap.org/download
①インストール
yum -y install nmap
※サービス起動は不要。
②ホストスキャン
自分のIPアドレスを調べましょう。eth0などに記載があります。
ip a
自分のセグメントに対して、他に端末がいないか調査しましょう。注意点は、プレフィックスが/24ではない可能性がある点です。
nmap -n -sn 192.168.1.0/24
オプションの意味は以下です。
- n:名前解決をしない
- sn:ポートスキャンをしない
③ポートスキャン
見つけたサーバに対して、ポートスキャンをかけましょう。※root権限が必要な場合があります。
nmap 192.168.1.1
その他、オプションは以下
https://nmap.org/man/ja/man-briefoptions.html
UDPもスキャンする場合は、-sUオプションをつける
nmap -sU -Pn 10.10.10.22
4.DNS
(1)DNSの基本用語
JPNICのサイトに、DNS関連の用語が整理されています。コンテンツサーバ(権威サーバ)、キャッシュDNSサーバ(フルサービスリゾルバ)などの言葉を理解しましょう。
https://www.nic.ad.jp/ja/dns/
(2)nslookupによる名前解決
https://www.willnet.ad.jp/dns-windows-nslookup/
コマンドをいくつかやってみましょう。
内容 | 具体例 |
---|---|
Aレコード(正引き) | nslookup www.google.com |
逆引き | nslookup 8.8.8.8 nslookup -type=ptr 8.8.8.8 |
MXレコード | nslookup -type=MX www.google.com |
CNAME | nslookup -type=CNAME www.google.com |
NXレコード | nslookup -type=NX www.google.com |
(3)DNSキャッシュポイズニングの攻撃
❶攻撃概要
「DNSのキャッシュ」「DNSキャッシュポイズニング」「DNSメッセージの偽装と従来の攻撃手法」を理解しましょう。
https://www.nic.ad.jp/ja/newsletter/No40/0800.html
❷パケットをどう作るか考えよう
たとえば、www.toyota.jpのIPアドレスを問い合わせます。
> set type=A > www.toyota.jp (中略) Address: 23.53.198.89 Aliases: www.toyota.jp (後半略)
このときのパケットは以下です。
では、応答パケットをどう作るか。具体的な設定を考えよ。
・送信元IPアドレス:192.168.1.1
・宛先IPアドレス:192.168.1.110
・送信元ポート番号:53
・宛先ポート番号:51116
・TransactionID:0x000b
・DNS応答(問い合わせに対するIPアドレス):改ざんしたいIPを設定
実際の応答は以下です。
↓
↓
↓
↓
↓
↓
(4)送信元ドメイン認証とDNS設定
❶送信元ドメイン認証技術
SPF、DKIM、DMARCがあります。
送信ドメイン認証(SPF / DKIM / DMARC)の仕組みと、なりすましメール対策への活用法を徹底解説 – エンタープライズIT [COLUMNS]
❷DNSの設定を確認
・SPF
ご自身の会社の、TXTレコードを引いてきましょう。
・DMARC
DMARCの場合は、TXTレコードにおいて、 「_dmarc」を先頭に付与する必要があります。以下はGoogleの例です。
> _dmarc.google.com (中略) _dmarc.google.com text = "v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com"
5.openvpnでVPN接続
CTFの場合、VPNでサーバに接続を要求される場合がある。
Windowsでもできるが、Linux(Ubuntu)でやってみる。※AmazonLinuxではうまくいかなかった。
#openvpnのインストール apt update apt install openvpn #ovpnファイルを指定し、バックグラウンド処理 openvpn --config /home/ubuntu/setting.ovpn & #接続し、IPアドレスが取得できたかを確認。プライベートIPが割り当てられているかを確認。 ip a