T-Potをインストールしてみた。

どうも、老ハニーポッターです。昔はVMareでhightインタラクティブ型のハニーポット立てて、キャッキャウフフして、IRCサーバ建てられて、エッチなファイル置き場にされたりと無邪気に遊んでいたのが10年以上前。さすがに、家族も増えて、守るものができた私にそんな無謀なマネは、匿名化された状態じゃないとできません。(マテ

まぁ、冗談はさておき、sshハニーポットcowrieあたりで遊んでいましたが、セキュリティキャンプの地方大会ネタにもなるし、最近、マイブームのEtasticSearchのダッシュボードやログ取り込みのグロックパターンもパクれるインスパイアーできるかなと思って、一人CSIRTさんでも使っていると思われるハニーポットのT-Potに挑戦してみようと思います。

 

【T-Poとは?】

いわゆる、インターネット上で「おとり」として立ち上げ、自身に到達する攻撃をログとしてため込み、攻撃の予兆や攻撃の手法の研究などに役立てることを目的とした「ハニーポット」と呼ばれる製品の一つです。開発はドイツテレコム社が行っています。

下記のように、異なる用途のハニーポットを4つ稼働させ、かつ、Dockerコンテナでセグメント分けし、ElasticSeachにログを集約、Kibanaで可視化してくれる優れものです。よ、ドイツテレコム太っ腹!と、おもっても、しっかりログはEWS Posterに提供されるようなので、持ちつ持たれつですね。

Architecture

【環境】

面倒なのでVirtualBox上に作りました。最初、VPS上に構築してみたら、メモリ1GBにHDD15GBで足りるはずもなく、起動に失敗したのは秘密です。ちゃんと動作環境は確認しましょう。

VirtualBox上でメモリ4GB、HDDは200GB割り当てました。コア6、メモリ64GBあるマシンなので余裕です。裏を返せば自宅のメモリ8GBしかないようなマシンで立ち上げると、めっちゃ遅いし、定期的にハングアップするし、リソース少ない中で運用するとはまるので、ぜいたくなリソースの環境で行うか、いっそのこと、T-Potに頼らないで自作したほうが良いかもしれません。あと、DHCP環境じゃないといけないとか、WEBアクセスは、同じローカルIPからじゃないとだめとか、色々と縛りがあります。各種仕様はちゃんと確認するようにしましょう。

 

【動作イメージ】

T-Pot 16.10(20170706現在)はUbuntu Server 16.04 LTS です。以下は動作イメージです。Kibanaベースでかっこいいですね。(Kibanaのバージョンが古いですが)

f:id:connect24h:20170706200145p:plain

 【インストール】

以下から最新バージョンをダウンロードしてください。

T-Pot 16.10 - Multi-Honeypot Platform Redefined

注意が必要なのが、常に最新バージョンを利用することです。

T-Potのインストールブログが複数ありますが、微妙にバージョンが違っていて、参考になる場合と、仕様が変わりすぎていて混乱する場合があります。今回のインストール記事も、実は、2017年7月限定です。こちらのインストレーションビデオも参考になります。

www.youtube.com

実は一番参考になるのは、 githubのサイトやREADME.mdを参考にインストールしたほうがよっぽど正確にインストールできます。特に、sshでログインする方法は、バージョンによってちがうので、最新のREADME.mdを見るのが吉です。

tpotce/README.md at master · dtag-dev-sec/tpotce · GitHub

結構ハマリポイントなので、注意して下さい。

 

【インストール開始】

tpot.isoをダウンロードして、VirutalBoxでCDをマウント、インストールを開始します。この言葉がわからない人はインストールしないほうが良いです。

T-pot 16.10を選択

f:id:connect24h:20170704225834p:plain

 Otherを選択

f:id:connect24h:20170704235448p:plain

Asiaを選択

f:id:connect24h:20170704235527p:plain

 Japanを選択

f:id:connect24h:20170704235538p:plain

ここでキーボードの判定があります。yを選びます。

f:id:connect24h:20170704235557p:plain

wみたいな文字を入れろって出ます。

f:id:connect24h:20170704235624p:plain

  確かAlt+oで入力した文字だったかな?ここはハマリポイントなのでなんとか乗り越えて下さい。もう詳細忘れたので試行錯誤して下さい。英語キーボードで判定されないので、ドイツキーボード判定されてしまいます。

f:id:connect24h:20170704235705p:plain

 ついにインストール開始

デフォルトIDである「tsec」というユーザのパスワードを設定します。

f:id:connect24h:20170728231502p:plain

今回はStandardタイプということで「T」を選んでインストールします。超簡単です。 

f:id:connect24h:20170704235806p:plain

真ん中あたりで、WEBアクセス用のELK(Elastic Search、Logstash、Kibana)のアカウント「ELK」のパスワードを設定します。パスワード名が安直です。その後、国を聞かれるので「jp」とかいれてください。

f:id:connect24h:20170704235823p:plain

 インストールは進みます。

f:id:connect24h:20170704235844p:plain

 どんどん進みます。

f:id:connect24h:20170704235904p:plain

 インストール完了!速い!

最初に設定した「tsec」パスワードでログインして下さい。

f:id:connect24h:20170704235916p:plain

今のままだとキーボードの設定がおかしいので設定します。 

 teratermなどでポート番号64295でログインID「tsec」でログインして、以下のコマンドを実行します。

# dpkg-reconfigure keyboard-configuration

 キーボードが選択できます。105キーボードを選択。

f:id:connect24h:20170705000011j:plain

Japaneseを選択。 

f:id:connect24h:20170705000041j:plain

またJapaneseを選択。 

f:id:connect24h:20170705000103j:plain

 

No compose keyを選択。完了です。これで日本語キーボードレイアウトになります。

f:id:connect24h:20170705000127j:plain

 

 TimeZoneの設定もおかしいので直します。

dpkg-reconfigure tzdata

を実行して下さい。

 Asiaを選択。

f:id:connect24h:20170705000201j:plain

 Tokyoを選択。

f:id:connect24h:20170705000239j:plain

 ちゃんとタイムゾーンAsia/Tokyoになりました。

f:id:connect24h:20170705000258j:plain

WebアクセスしてKibanaの画面にアクセスしてみます。

https://192.168.0.1:64297

認証画面が出るので、ID「ELK」と、指定したWEBパスワードでログインします。

f:id:connect24h:20170705000330j:plain

ログインできました。FTTH環境下でDMZ状態で公開すれば、ものの数分でたくさんの攻撃を受けていることがわかります。楽しいですよ!

f:id:connect24h:20170706200145p:plain 

さあ、みんなもハニー・ポッターになろうぜ!