よもぎのメモ帳

備忘録的な感じで技術的なことをストックしていきます。

AWSで50$請求されたのは、VNC Auth Challenge Attackされたせい。[ハニポ]

f:id:y0m0g1:20190413194844p:plain
社畜ちゃん台詞メーカーより

こんにちは、よもぎです。研究室に配属されました。机がおっきいです。

今回は、12月ぐらいにAWS上に立てたハニーポットの観察記です。詳しくはこちらのエントリをみてね。

y0m0g1.hatenablog.com


身に覚えのない請求書が届いた😨

そんなことはない。身に覚えのある請求書だった。AWSに立てているサーバーは一つだけだったし。

今までは、有料インスタンスであったものの、CPU使用率は低い水準で推移していたので、 課金対象とならずに無料で運営することができていました。

f:id:y0m0g1:20190415171319p:plain
請求書メール

そんな折にAmazonから届いた請求書メールには驚いてしまいました。 無料じゃないの? あれ、5,500円ぐらいかかっていて結構大きな額じゃない? かかってしまったのはしょうがないので払いますが……


原因を調べよう

とりあえず急いでAWSのEC2管理画面に行ってCPU使用率を見てみることに

f:id:y0m0g1:20190415172948p:plain
CPU使用率のグラフ

過去2週間までしか遡れないのですが、 3/27だけ群を抜いてCPU使用率が高い ということがわかりますね。 ということで、T-potにはELKがあるので、Kibanaから3/27の状況を探ってみます。

f:id:y0m0g1:20190415182755p:plain
ハニポの種類別と時間軸
f:id:y0m0g1:20190415182817p:plain
接続元IPの国や接続先ポート

めっちゃVnclowpotに攻撃が来てるじゃん

国別でいうとロシアから、そしてポートでいうと5900番ポートにめちゃくちゃ来ていることがわかりますね。 とりあえずこのVnclowpotに来ている攻撃や、Vnclowpotそのものについて調べて、書いていきたいと思います。 実のところ、各ハニーポットについては余り知らないからね……


VNCとVnclowpot

VnclowpotのREADME.mdによれば

Low-interaction VNC honeypot. Listens on a port and logs responses to a static VNC Auth challenge.

It was inspired by VNC-Pot, but does not have any dependencies outside the go standard library.

ということで、 静的なVNC Auth Challengeという攻撃を待ち受ける低対話型VNCハニーポット って感じです。 VNCとはVirtual Network Computingの略で、リモートデスクトップソフトウェアであり、 RFBプロトコルを利用しクロスプラットホームであることが特徴とされています。 このVNCの認証に対する攻撃を待ち受けているわけですね。*1 ちなみにこのハニポのgithubはこちら

github.com

そして、このハニーポットに絞った上での、3/27の集計はこちら

f:id:y0m0g1:20190415185942p:plain
アクセス元IPアドレスは2つ

15720カウントもあることがわかりますね。 とても多いので何かしらの自動ツールを用いて攻撃してきているなあって感じです。

vnclowpotのログからはこんな感じのvnc handshakeを見ることができます。

f:id:y0m0g1:20190417172917p:plain f:id:y0m0g1:20190417173015p:plain


vnc handshakeの解析

上に貼った画像から察するに、おそらくパスワードをハッシュ化したものが後半部に現れています。 そして、vncのパスワードは最大8文字らしいのです。

vnclowpotは、公式にこのvnc handshakeのログから、 John the Ripper方式でもとの入力されたパスワードをクラックする クラッカーを提供してくれています。

soji256.hatenablog.jp

こちらのブログエントリを参考にさせていただきました。

まず、3/27時点でのログを使って26,506件の解析結果はこちら

2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*3D237A19965ABE973D237A19965ABE97:123456
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*31FC1A8360CAFE2231FC1A8360CAFE22:12345
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*D29F6E7F0456F8DED29F6E7F0456F8DE:12345678
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*FF97502E9422F089FF97502E9422F089:password
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*BE64078CF66446BABE64078CF66446BA:iloveyou
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*8BD03CDB308F55258BD03CDB308F5525:princess
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*D70AF1BB49C36845D70AF1BB49C36845:1234567
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*3FB4D289814B5F083FB4D289814B5F08:rockyou
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*939B6B579DF37A3B939B6B579DF37A3B:abc123
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*F167F128C29C13F7F167F128C29C13F7:nicole
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*DEC87E2DC6A67CA3DEC87E2DC6A67CA3:daniel
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*9E7A18F0EFEFB5E19E7A18F0EFEFB5E1:babygirl
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*563592A06590A800563592A06590A800:monkey
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*0FF8E4AD03D278AC0FF8E4AD03D278AC:lovely
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*6449D40B61B4277E6449D40B61B4277E:jessica
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*029600BCF434914B029600BCF434914B:654321
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*64D9F38F5BE564E064D9F38F5BE564E0:michael
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*6D391AF0C33D01846D391AF0C33D0184:ashley
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*91345B77ABF09D9C91345B77ABF09D9C:qwerty
2019/04/10 21:37:09 FOUND $vnc$*00000000000000000000000000000000*6A9AFB57E01E30A26A9AFB57E01E30A2:111111

(clip)

2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*6746B99B1729F1276746B99B1729F127:!@#123!@
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*A353647F78C64F9AA353647F78C64F9A:!@#$qwer
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*9BBFC7496EDF4CEC9BBFC7496EDF4CEC:!@#$qazx
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*48CF24B1CECC216248CF24B1CECC2162:!@#$abcd
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*7D668C9C682C4D607D668C9C682C4D60:!@#$5678
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*BB5D0DE9CDE8ED9DBB5D0DE9CDE8ED9D:!@#$4321
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*087F3AE937DA6CE2087F3AE937DA6CE2:!@#$%abc
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*72EAB016D217F1D172EAB016D217F1D1:!@#$%^7
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*48422B0A43BF0EAB48422B0A43BF0EAB:!@#$%^12
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*7FFDB4F0704E23D17FFDB4F0704E23D1:!@#$%678
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*61216F8F5C3F091961216F8F5C3F0919:!@#$%123
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*3264139264B8DA363264139264B8DA36:!@#$%%$#
2019/04/11 02:08:59 FOUND $vnc$*00000000000000000000000000000000*8DEF20160F73E5D58DEF20160F73E5D5:!@#$%!@#
2019/04/11 02:09:00 FOUND $vnc$*00000000000000000000000000000000*63B08A6B254B7D8363B08A6B254B7D83:!@#
2019/04/11 02:09:00 FOUND $vnc$*00000000000000000000000000000000*A39D1A15C5A9EB54A39D1A15C5A9EB54:!23456
2019/04/11 02:09:00 FOUND $vnc$*00000000000000000000000000000000*76731E96C5399C5376731E96C5399C53:!2#4QwEr
2019/04/11 02:09:00 FOUND $vnc$*00000000000000000000000000000000*804A3764429FA11C804A3764429FA11C:!2#4%6&
2019/04/11 02:09:00 FOUND $vnc$*00000000000000000000000000000000*6E1B4289C98FCEE06E1B4289C98FCEE0:!#%&(_
2019/04/11 02:09:01 FOUND $vnc$*00000000000000000000000000000000*8A2600DC505CD6AC8A2600DC505CD6AC:!!!!
2019/04/11 02:09:01 FOUND $vnc$*00000000000000000000000000000000*AF932FC01637812AAF932FC01637812A:!

やってみた範囲ではすべてのハッシュ値が復元できたみたいです。


(+α)期間を一ヶ月にしてみてみた

f:id:y0m0g1:20190417175059p:plain

3/11-4/10の統計はこんなかんじです

VNC Auth Challenge に使われたパスワードTOP10についてもCrackerにかけてみました。

順位 Hash値 password CNT
1 199F29E1BC8DB985199F29E1BC8DB985 mypasswd 3122
2 D29F6E7F0456F8DED29F6E7F0456F8DE 12345678 1057
3 FF97502E9422F089FF97502E9422F089 password 957
4 D94BB74798A107C7D94BB74798A107C7 Password 898
5 E56458A7B0DC568AE56458A7B0DC568A P@ssw0rd 541
6 587029A8254FAA2B587029A8254FAA2B administ 444
7 227D501DF1BF8456227D501DF1BF8456 Passw0rd 384
8 BD76EA55421504DEBD76EA55421504DE P@$$w0rd 361
9 9AEC969A3C3468C59AEC969A3C3468C5 1q2w3e4r 292
10 9134BAD2D134A6389134BAD2D134A638 Administ 281

P@$$w0rd とかでも辞書に登録されているんですね…… 最大8文字ってやっぱり短すぎるんだろうなぁ


おわりに

お金かかっちゃうので、攻撃する側も程々にしてほしいなあ。

でも今回こうやって調べる機会をくれたのでありがとう、かもしれない。

参考にさせていただいたもの

qiita.com

*1:たぶんそういうこと