Wireshark SSL セッション復元

Wireshark SSL セッション復元

ubuntu18.04を https 接続できるように設定し
SSLセッションを復元できるようにする

なお ipアドレスを調べるには
ifconfig ではなく
ip コマンドを使う

ip a

でIPアドレス表示ができる

Ubuntu18.04で自分自身のIPアドレスを調べる(IPコマンド)

を参考に

次にSSHサーバインストール

sudo apt-get install openssh-server

これでリモート操作が可能に

次にapache 関連のインストールと設定

sudo apt-get install apache2

で Webサーバ インストール

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart

でSSLモジュールを有効化

次に KaliLinux で Firefox を起動し
https://192.168.1.150/
へアクセス

192.168.1.150 は ubuntu のIPアドレス

次に wireshark で
ip.addr==192.168.1.150
としてパケットを絞り込む

HTTPSでの通信は
Info には Application Data と表示され

内容も
Encrypted Application Data
となり
平文内容は表示されない

これを復号するには
webサーバのSSL秘密鍵が必要になる

ubuntu の場合
Apacheのインストール時に
サンプルのSSL証明書が自動的に作成されるので
これを使う

秘密鍵は
/etc/ssl/private/ssl-cert-snakeoil.key
にあるので

これをダウンロードする

scp や sftp でコピーしようとしても
Permission denyed
となり権限がないためコピーできない

一度
ssh でログインし

udo cp /etc/ssl/private/ssl-cert-snakeoil.key .

でコピー

ll ssl-cert-snakeoil.key 

で権限などを確認

-rw-r----- 1 root root 1704  5月  3 05:30 ssl-cert-snakeoil.key

となっているので

sudo chown snowpool:snowpool ssl-cert-snakeoil.key 

で所有者を変更

ログアウトしてから
KaliLinux 側で

sftp snowpool@192.168.1.150

で sftpコマンドで接続し

get ssl-cert-snakeoil.key

でファイルを取得

sftp コマンドについては
sftp – 安全なファイル転送 – Linuxコマンド

権限関連については
chmod? chown? よくわからんって人のための、ファイル権限系まとめ

をみるとわかりやすい

これでファイルが取得できたんで

chown root:root ssl-cert-snakeoil.key 

で権限を戻しておく

wireshark で
Edit > Preferences

Protocols をクリック

SSLをクリックし
RSA Keys list の Edit をクリック

+を押すとサーバ情報の追加ができる

IP address にIPアドレス
今回は ubuntu18 のIPアドレス

Port に 443

Protocol
に http

KeyFile に秘密鍵のファイルを指定し
OK
をクリック

これでSSL通信の内容をみることができる

Xmas スキャン

Xmas スキャン

Xmasスキャンでは
TCP パケットの
FIN
URG
PUSH
の3つのフラグを設定し送信する

今回は
Metasploitable の
FTPポート21番に対して実行

nmap -sX -p 21 192.168.1.137

結果は

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-25 06:06 JST
Nmap scan report for 192.168.1.137
Host is up (0.00022s latency).

PORT   STATE         SERVICE
21/tcp open|filtered ftp
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.45 seconds

となり

Wireshark で
statictics > Flow Graph
で表示

Flow type を
TCP Flows にして確認すると
FIN PSH URG に対し
応答がないことがわかる

FIN
のときと同じく
パケットを送信して
ポートが開いているなら応答がない

次に閉じている24番ポートに実行

nmap -sX -p 24 192.168.1.137

結果は

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-25 06:11 JST
Nmap scan report for 192.168.1.137
Host is up (0.00040s latency).

PORT   STATE  SERVICE
24/tcp closed priv-mail
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds

となり

Wireshark でみてみると
FIN PSH URG パケットを送ると
TCPパケットのRSTと ACK が返ってくるのがわかる

このようにTCPパケットが返ってくるなら
ポートが閉じていると判断できる

Nullスキャン

Nullスキャン

Null スキャンでは
なんのフラグも設定しないTCPパケットを送信する

今回はFTPポート21番に実行

nmap -sN -p 21 192.168.1.137

結果は

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-28 05:25 JST
Nmap scan report for 192.168.1.137
Host is up (0.00041s latency).

PORT   STATE         SERVICE
21/tcp open|filtered ftp
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

となる

wireshark でフロー図をみるときに
tcp で絞り込み

statictics > Flow Graph
で表示

なお
Flow type を
TCP Flows にして確認すると wireshark が落ちるので注意

応答がないときには
ポートが開いている
もしくは
フィルタリングがされてると判断

次に閉じているポートで実践

nmap -sN -p 24 192.168.1.137

とする

結果は

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-28 05:29 JST
Nmap scan report for 192.168.1.137
Host is up (0.00042s latency).

PORT   STATE  SERVICE
24/tcp closed priv-mail
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds

となる

wireshark でフロー図をみるときに
tcp で絞り込み

statictics > Flow Graph
で表示

RST、ACKパケットが返ってきたら
ポートが閉じていると判断できる

FIN スキャン

FIN スキャン

FIN スキャンでは
FINパケットという
FINフラグを設定したTCPパケットを送信する

FINパケットは
通信終了要求に使われるが
通信前にFINパケットを送信し端末の様子を待つ

今回は
Metasploitable の21ポートのFTPに対して
FINスキャンを行う

nmap -sF -p 21 192.168.1.137

結果は

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-25 04:44 JST
Nmap scan report for 192.168.1.137
Host is up (0.00030s latency).

PORT   STATE         SERVICE
21/tcp open|filtered ftp
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.63 seconds

となり

Wireshark で
statictics > Flow Graph
で表示

Flow type を
TCP Flows にして確認すると
応答がないことがわかる

FINパケットを送信して
ポートが開いているなら応答がない

また
フィルタリングされていても応答がない

なお Windows 系OSだと Fin スキャンに反応しないので
WindowsOSであるか判別するのにも使える

次に閉じているポートに実行

nmap -sF -p 24 192.168.1.137

結果は

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-25 04:50 JST
Nmap scan report for 192.168.1.137
Host is up (0.00047s latency).

PORT   STATE  SERVICE
24/tcp closed priv-mail
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds

となり

Wireshark でみてみると
FINパケットを送ると
TCPパケットのRSTと ACK が返ってくるのがわかる

このようにTCPパケットが返ってくるなら
ポートが閉じていると判断できる

Wireshark

Wireshark

wireshark 

で起動

キャプチャを開始するには
Capture > Options

これでどのLANアダプターをキャプチャするか選択できる

今回は eth0 にするので
Promiscuous にチェックがあるのを確認
Start をクリック

これでキャプチャが開始される

次にHTTPパケットを観察するので
Firefox を起動し
適当に巡回しておく

このままだとわかりにくいので
http に絞り込み Enter

OCSP も表示されるが
これは公開鍵証明書の失効状態を取得するプロトコル

ほかにもSSDP が表示されることもある

SSDP は
ネットワーク上のUPnPデバイスを検出するためのプロトコル

詳しくは
SSDPとは

を参考に

SSDPを除外したいのなら
http && tcp
とすればOK

もしGETのみ表示したいのなら
http.request.method == “GET”
とすればOK

次にキャプチャフィルター

特定のパケットのみ取得するようになるので
ストレージ圧迫を軽減できるようになる

Capture > Capture Filters …
をクリック

これでフィルターが表示されるので
選択してOKを押せば絞り込みができる

構文で
host IPアドレス
となっているなら
指定したIPアドレスとの送受信をキャプチャ

ip src host IPアドレス
なら
送信元が指定したIPアドレスのパケットのみキャプチャ

port ポート番号
なら
指定したポートの通信をキャプチャ

not icmp
なら
ICMPパケット以外をキャプチャ

tcp dst port ポート番号
なら
宛先ポート番号が指定したポート番号のパケットだけキャプチャ

となる

例えば
HTTP TCP Port(80)
とすると
表示されるものが絞られる

なおキャプチャしたデータは
pcap もしくは
pcapng で保存される

ctrl + s で保存ができる

デフォルトは
pcapng 形式での保存となる

テキストエディタで参照したいのなら
File > Export Packet Disections >
As Plain Text
とするとテキスト形式で出力できる

また1つ1つのパケットをみるより
全体をみるのなら
Analyze > Follow で
TCPやHTTPなどのストリームをみることができる

もし平文で認証データが送信されているのなら
ここで確認ができる

またデータストリームのエクスポートするだけなら
NetworkMiner が便利らしい

インストール方法については
NETRESEC Network Security Blog – Tag : Linux

を参考に

ただし
pcapng は使えないので
pcap 形式で保存する必要がある

ctrl + shift + s で Save as となるので
保存形式を
pcap で保存する

なお
pcap の大きさによってはフリーズするので
その場合
editcap などでファイルを分割する

wireshark でUSB監視

wireshark で USBメモりのデータの流れをチェックできます
ただし、条件つきですが
Linuxカーネルで
usbmon
が有効になっていることが条件です
backtrack5 SR1
ubuntu
のカーネルでは有効なので、問題ありません
やりかたは単純です
まず、USBメモりを Linux パソコンに指します
今回は、
ubuntu 11.10 64bit で行っています
そして、lsusb で確認します
Screenshot-2012-05-29 20:08:52
下の赤枠でかこってあるほうが
USBメモりを指した後です
デバイスが追加されています
次に wireshark を起動します
管理者権限がほしいので
sudo wireshark
で実行し、パスワードを入力します
警告などがでますが、きにせず起動します
起動後、USBをキャプチャすればOKです

パケットからUDIDを調べるには

パケットの中からUDIDが流れているかを調べるには
wireshark を起動して
リアルタイムパケットを取得し
Edit > Find Packet を選び
検索ダイアログが立ち上がるので、
string のところへラジオボタンをチェックして
Filter のところへ
UDID の一部、もしくは全部を入力
もし該当があれば緑色になり、該当しないなら
Filter の枠が赤くなります
Screenshot-2012-05-28 20:52:26
乗り換えアプリだと、
このUDIDがGETリクエストのパラメータに含まれることもあります

最近のマルウェア

現在のマルウェアの多くはプログラムの実行を除いて
web ページ閲覧時とか
USBメモりなどの外部記録媒体を接続した時に感染するものがほとんど
このとき、感染するプログラムは
ダウンローダーとよばれる小さいプログラム
このダウンローダーは
ウイルス本体やアップデートをネットワーク越しに取り込んで実行する
というもの
最近の例をだすと
スマホのアプリの自動アップデートにちかい動き
このような2段階攻撃になったのは
機能部分まで含んだプログラムだと
サイズが大きくて、アンチウイルスとかで見つかりやすい
そして
最新のマルウェアを仕込みやすいということ
そして、スマホに多かったマルウェアのように
最近のものは
自動更新機能とか
外部への連絡通信機能も持っている
よくある、アップデート攻撃もこれとにたような動作かもしれない
このような動きをしている場合
wireshark などで通信を取得すれば
怪しい動きなどの詳細データを得ることができるようだ

slammer Pcap をwireshark で読み込む

slammer のキャプチャファイルを読み込むには
sudo wireshark
でwireshark を起動して
ファイルを開きます
開く前の注意点として
アンチウイルスソフトを停止しておく必要があります
理由は、Pcap ファイルは
バイナリで攻撃コードを含むため
ウィルスとしてして隔離されてしまいます
wireshark は管理者権限で動かしますので
fire > open
でダイアログがでるので
ファイルシステム > home > ユーザ名 > ダウンロード >
slammer.pcap
で開きます

SQL slammer について

この SQL slammer は
2003 年に発生した Server または
MSDEに含まれるバッファオーバーフローの脆弱性をついて
感染するワーム
このワームは
UDP 1434 ポートを利用して感染を広げ
感染したPCも同じパケットをコピーして
ランダムなIPに攻撃を繰り返す
典型的感染パターンをもつ
ワームに感染したときの特徴
PCが大量の
UDPパケットを放出するので、
ネットワーク全体が過負荷になり通信不能になる
ハブのアクセスランプから
多量の通信が発生しているのは確認できるけど
感染PCを再起動すると、元に戻ってしまう
これは、このワームがメモり常駐型のため
再起動すると消滅するため
しかし、脆弱性がそのままだとまたそのうち感染してしまう
こういったタイプの感染の場合
再起動するとウイルスはいないため
ウイルススキャンしてもなにも発見できないということになってしまう
こんなときには wireshark でパケット解析をするとよいらしい