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

dionaeaのサービスを見てみる

//

とりあえず、公式のこのページを参考に1つずつ見ていけたらなぁと思ってます。
Service — dionaea 0.8.0 documentation




その前に

外部からnmapをした時に、dionaeaとバレてしまう可能性があるのでそれを修正します。参考サイトはこちらです。

# nmap ipアドレス -sV
Host is up (0.039s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE      VERSION
21/tcp   open  ftp          Synology DiskStation NAS ftpd
22/tcp   open  ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.10 (Ubuntu Linux; protocol 2.0)
23/tcp   open  telnet?
42/tcp   open  tcpwrapped
53/tcp   open  domain?
80/tcp   open  http         nginx
135/tcp  open  msrpc?
443/tcp  open  ssl/http     nginx
445/tcp  open  microsoft-ds Dionaea honeypot smbd
1433/tcp open  ms-sql-s     Dionaea honeypot MS-SQL server
1723/tcp open  pptp          (Firmware: 1)
3306/tcp open  mysql        MySQL 5.7.16
5060/tcp open  sip?
5061/tcp open  ssl/sip-tls?
Service Info: Host: ; OS: Linux; Device: storage-misc; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 160.80 seconds


smbとmssqlの部分でDionaeaと表示されてしまっているので、この二つが修正対象。このサイトにnmapが検出に使用するシグネチャがある。詳しくは参考サイトで解説してくれているので省きますが、grepコマンドで'dionaea'を検索すれば、どのプロトコルがどのシグネチャで検出しているかわかります。


smb
"SMB Negotiate Protocol Response"に含まれる"OemDomainName"と"ServerName"の値をチェックしているとのこと。
/opt/dionaea/lib/dionaea/python/dionaea/smb/include/smbfields.pyの755行目と759行目を変更する。ここは環境やバージョンによって変わるかもしれないので、自分で検索かけて見てください。
f:id:thinline196:20180907161716p:plain


と思ったのですが、ここ以外に依存している部分があるっぽいです。/opt/dionaea/lib/dionaea/python/dionaea/smb/extras.pyの20行目あたりがそれに該当します。
f:id:thinline196:20180907164341p:plain




mssql

データベースに接続する際のpre-login TDS package (Tabular Data Streams)の情報をチェックしている。Token Typeの値が0x00になっているので,これを0x01に変更する./opt/dionaea/lib/dionaea/python/dionaea/mssql/mssql.pyの147行目にある。これもバージョンによって違うかもしれない。
f:id:thinline196:20180907162553p:plain


これ以外は一応dionaeaの名前は表示されていなかったので、okとします。では一度再起動かけて再びnmapでポートスキャンを行って見ましょう。
f:id:thinline196:20180907165332p:plain


一応dionaeaの名前は消えたのでハニーポットとはバレなくなりましたが、下にメッセージが出るようになりました。どうやら手元にない情報の帰り方をすると、情報提供してね、って通知されているようです。ハニーポットってバレなくはなったのでとりあえずよしとします。



では色々とサービスを見て見ます。




ftp

File Transfer Protocol.

特定のコンピュータ間でファイル転送する時に使用するアプリケーション層のプロトコルです。Telnet/SSHと同様、相手先コンピュータにログインした上でファイル転送を行います。FTPを利用すればファイルをFTPサーバにアップロードしたり、FTPサーバからダウンロードしたりできます。FTPでは、ログインする際にやりとりするユーザ名とパスワード情報は、暗号化されずにそのまま送信されるのでセキュアなFTP通信を行いたい場合、FTPS(FTP over SSL/TLS)や、SFTP(SSH FTP)を使用します。
https://www.infraexpert.com/study/tcpip20.html

ftptcpで通信するので、udpのポートは開けてません。ウェルカムメッセージは接続時に表示されるものなので、適当に編集しても大丈夫そう。編集後自宅ネットワークからftpで繋いでみると、今設定したメッセージが初めに届いてることが確認できるかと思います。けど実際に動かそうとしたらget,putあたりで接続切れてしまいました。そこまで実装されていない感じでしょうか?/opt/dionaea/etc/dionaea/services-enabled/ftp.yamlのrootで指定したフォルダがftpに接続した時に初めに到達する場所になってます。なので本来はここ以下にftpでやり取りした結果が保存されていくのでしょう。

telnet

telnetは外部のコンピュータにアクセスするコマンド。パソコンやネットワークが今ほど発達していない時代は、メインコンピュータという1台の大型コンピュータに端末という形で複数のユーザーが接続し、利用していた。
https://eng-entrance.com/linux-command-telnet

telnettcpでの接続とのことなのでiptablesでの許可もtcpのみ。



http

これは特に調べる必要はないかと。80ポートはtcp,udp共にhttpで予約されているとのことですが、あくまでtcpを使用せよとの規定になっているので、tcpのみを開けておけばokです。/opt/dionaea/var/dionaea/roots/www/にindex.html等のページを設置しておけば、ブラウザからアクセス可能になります。http.yamlのrootでそのフォルダを設定しているのでそこを見てください。後の設定はちょっとまだわからないです。ごめんなさい。



microsoft-ds

Direct Hosting SMB Serviceで445ポートが使用されている。ネットワークを通じてファイルやプリンタを共有するプロトコルらしいです。



mssql

Microsoft SQL Serverで1433ポートで待っている。phpとかでlinuxからサーバへアクセスができるっぽいです。


pptp

PPTP (Point-to-Point Tunneling Protocol) は、TCP/IP ベースのデータ ネットワーク上に仮想プライベート ネットワーク (VPN:Virtual Private Network) を作り出すことにより、リモート ユーザーから企業のサーバーへの安全なデータ転送を可能にするためのネットワーク プロトコルです。PPTP は、インターネットのような公共のネットワークを経由して、オンデマンドで接続可能で、マルチプロトコルがサポートされる仮想的なプライベート ネットワークを構築可能にします。
https://technet.microsoft.com/ja-jp/library/Gg983536.aspx

ポートは1723でした。

mysql

省略。

sip

Session Initiation Protocol. TCP/IPネットワーク上の複数の地点間で固定的な通信路(セッション)の確立や切断などを行うためのプロトコル(通信規約)の一つ。主に音声通話のような双方向のリアルタイム通信を行うために用いられる。
SIP(Session Initiation Protocol)とは - IT用語辞典




まとめ

内容がなんか薄い気がしますが、無知なゆえ致し方なし。ログの取り方とか、サービスの待ち受け方とか自分でカスタマイズしていかなければいけないのかなと、調べてるうちに感じてきました。多分できますよね。頑張ります。