Netfilter漏洞提权利用(CVE-2023-35001)
前言
Netfilter是一个用于Linux操作系统的网络数据包过滤框架,它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式,以实现网络安全、网络地址转换(Network Address Translation,NAT)、数据包过滤等功能。
漏洞成因
在netfilter中存在这nft_byteorder_eval函数,该函数的作用是将寄存器中的数据以主机序或网络序存储。具体代码如下,若采用的操作是NFT_BYTEORDER_NTOH则是将数据从主机序转化为网络序,而NFT_BYTEORDER_HTON则是从网络序转换为主机序。具体转换多少个字节则是用priv->size指定的,在该操作下可以转换二、四、八字节。该漏洞也是由于在对两字节数据进行大小端序转存时出现了错误所导致的。
可以看到代码【1】中使用了联合体存储了源地址和目的地址,联合体的变量分别是u32与u16分别代表的是四字节与两字节的空间大小。然后在代码【2】与【3】处源地址是直接取出u16的变量存储到目的地址的u16变量中。
乍一看似乎很符合常理,因为在处理双字节的时候,联合体中的变量就以u16存储,若处理四字节就转化为u32存储,但是这里存在个问题,在C语言中,联合体的存储空间是以最大空间为标准,换句话说无论联合体取出的变量是u16还是u32,联合体的大小都是占用四个字节的,而不会出现双字节的情况,因此在对s与d两个联合体进行遍历时,会以四字节为单位找到下一个位置。但是在计算长度时是以双字节进行计算的,因此就会导致拷贝时发生溢出。
File: linux-5.19\net\netfilter\nft_byteorder.c
26: void nft_byteorder_eval(const struct nft_expr *expr,
27: struct nft_regs *regs,
28: const struct nft_pktinfo *pkt)
29: {
...
33: 【1】union { u32 u32; u16 u16; } *s, *d; //使用联合体存储源地址与目的地址
...
39: switch (priv->size) {
...
72: case 2:
73: switch (priv->op) {
74: case NFT_BYTEORDER_NTOH:
75: for (i = 0; i < priv->len / 2; i++)
76: 【2】d[i].u16 = ntohs((__force __be16)s[i].u16);//将源地址的数据拷贝到目的地址的低16位中
77: break;
78: case NFT_BYTEORDER_HTON:
79: for (i = 0; i < priv->len / 2; i++)
80: 【3】d[i].u16 = (__force __u16)htons(s[i].u16);
81: break;
82: }
83: break;
84: }
85: }
举个例子,我们自定义一个联合体数组dest,分别向下标0、1以及2进行赋值。
union {short a;long b;} dst[10];
int main()
{
dst[0].a = 0x1122;
dst[1].a = 0x3344;
dst[2].a = 0x5566;
return 0;
}
按照设想的情况,在使用双字节变量进行遍历的时候会以双字节为单位进行遍历,但是实际的情况如下图。可以发现即使每次赋值都是对双字节的变量进行赋值,但是再遍历的时候还是按照联合体中最大的存储空间(四字节)进行遍历的。
因此漏洞的成因如下,因此在使用nft_byteorder函数转换双字节的大小端序时溢出。
模块地址泄露
在nft_byteorder_eval函数内部,溢出的地址是在寄存器下方。因此可以通过控制寄存器的下标值选择需要泄露的地址。
在此需要观察通过nft_byteorder_eval函数可以溢出的范围,priv->len是可以人为控制的,只要满足reg * 4 + priv->len <= 0x50即可,reg代表寄存器的下标值,由于下标为0-4是属于状态值,因此不能通用,我们的reg的值需要从4开始计算起, 那0x50 - 0x10 = 0x40就是我们priv->len能设置最大的值,(0x40 / 2) * 4 = 0x80,因此(0xaf8 ~ 0xaf8 + 0x80)范围内都是可以访问到的。但是现在存在一个问题,虽然我们可以越界访问,但是每次只能获取四字节中的低两个字节。
...
75: for (i = 0; i < priv->len / 2; i++)
76: 【2】d[i].u16 = ntohs((__force __be16)s[i].u16);//将源地址的数据拷贝到目的地址的低16位中
...
将下列值传参给nft_byteorder_eval函数
/*
dst:18
src:8
priv->op:NFT_BYTEORDER_HTON
priv->len:24
priv->size:2
*/
rule_add_byteorder(r, 18, 8, NFT_BYTEORDER_HTON, 24, 2);
泄露的值如下,可以发现高两个字节的值是无法泄露的,因为在nft_byteorder_eval中,每次只拷贝了u16的变量。因此每次泄露只能获取低两字节的值。因此需要寻找其他方法进行地址的泄露。
nf_trace_fill_rule_info函数用于跟踪数据包,并且会将rule->handle的值放进数据包中回传给用户。
想要正常执行nf_trace_fill_rule_info函数需要绕过条件
rule不能为空,并且rule->is_last需要为0,即当前rule不是最后一个
info->type不能是NFT_TRACETYPE_RETURN以及info->verdict->code不能NFT_CONTINUE
/*函数递归
nft_do_chain
->
nft_trace_packet
->
__nft_trace_packet
->
nft_trace_notify
->
nf_trace_fill_rule_info
*/
File: linux-5.19\net\netfilter\nf_tables_trace.c
126: static int nf_trace_fill_rule_info(struct sk_buff *nlskb,
127: const struct nft_traceinfo *info)
128: {
129: if (!info->rule || info->rule->is_last)
130: return 0;
131:
132: /* a continue verdict with ->type == RETURN means that this is
133: * an implicit return (end of chain reached).
134: *
135: * Since no rule matched, the ->rule pointer is invalid.
136: */
137: if (info->type == NFT_TRACETYPE_RETURN &&
138: info->verdict->code == NFT_CONTINUE)
139: return 0;
140:
141: return nla_put_be64(nlskb, NFTA_TRACE_RULE_HANDLE,
142: cpu_to_be64(info->rule->handle),
143: NFTA_TRACE_PAD);
144: }
因此想要通过nf_trace_fill_rule_info函数获取数据的第一步是伪造rule。
在regs变量的下方存在jumpstack变量
结构体nft_jumpstack的构成如下,由chain、rule、last_rule组成,并且该结构体变量在regs下方,并且通过byteorder操作可以访问到jumpstack结构体,那么利用byteorder操作篡改rule。
struct nft_jumpstack {
const struct nft_chain *chain;
const struct nft_rule_dp *rule;
const struct nft_rule_dp *last_rule;
};
接下来看一下nft_rule_dp结构体,可以发现is_last是调用nf_trace_fill_rule_info函数的条件,handle是泄露的值。
struct nft_rule_dp {
u64 is_last:1,
dlen:12,
handle:42; /* for tracing */
unsigned char data[]
__attribute__((aligned(__alignof__(struct nft_expr))));
};
在进入nf_trace_fill_rule_info函数内部前需要经历规则与表达式的遍历。
File: linux-5.19\net\netfilter\nf_tables_core.c
255: for (; rule < last_rule; rule = nft_rule_next(rule)) { //遍历rule
256: nft_rule_dp_for_each_expr(expr, last, rule) { //遍历expr
257: if (expr->ops == &nft_cmp_fast_ops)
258: nft_cmp_fast_eval(expr, ®s);
259: else if (expr->ops == &nft_cmp16_fast_ops)
260: nft_cmp16_fast_eval(expr, ®s);
261: else if (expr->ops == &nft_bitwise_fast_ops)
262: nft_bitwise_fast_eval(expr, ®s);
263: else if (expr->ops != &nft_payload_fast_ops ||
264: !nft_payload_fast_eval(expr, ®s, pkt))
265: expr_call_ops_eval(expr, ®s, pkt); //执行expr->ops
266:
267: if (regs.verdict.code != NFT_CONTINUE)
268: break;
269: }
270:
271: switch (regs.verdict.code) {
272: case NFT_BREAK:
273: regs.verdict.code = NFT_CONTINUE;
274: nft_trace_copy_nftrace(&info);
275: continue;
276: case NFT_CONTINUE:
277: nft_trace_packet(&info, chain, rule,
278: NFT_TRACETYPE_RULE); //跟踪数据包
279: continue;
280: }
281: break;
282:
遍历规则的宏定义如下,若是rule->dlen没有进行改写,那么会根据rule->dlen找到下一个rule,但是当前的rule是伪造的,因此会导致在取出expr会报错。倘若将rule->dlen修改为0,则下个rule的位置就是当前rule + 8。
由于不定长数组unsigned char data[],在sizeof操作中的值为0,因此sizeof(*rule)的值为8。此时将last_rule改写成rule + 8就可以直接跳出循环。
#define nft_rule_next(rule) (void *)rule + sizeof(*rule) + rule->dlen
在完场上述流程后,就可以顺利进入nft_trace_packet函数内部,nft_trace_packet函数也比较简单,实际是调用了__nft_trace_packet函数
File: linux-5.19\net\netfilter\nf_tables_core.c
37: static inline void nft_trace_packet(struct nft_traceinfo *info,
38: const struct nft_chain *chain,
39: const struct nft_rule_dp *rule,
40: enum nft_trace_types type)
41: {
42: if (static_branch_unlikely(&nft_trace_enabled)) {
43: const struct nft_pktinfo *pkt = info->pkt;
44:
45: info->nf_trace = pkt->skb->nf_trace;
46: info->rule = rule;
47: __nft_trace_packet(info, chain, type);
48: }
49: }
可以发现想要进入nft_trace_notify函数需要满足info->trace或info->trace不为空。
File: linux-5.19\net\netfilter\nf_tables_core.c
24: static noinline void __nft_trace_packet(struct nft_traceinfo *info,
25: const struct nft_chain *chain,
26: enum nft_trace_types type)
27: {
28: if (!info->trace || !info->nf_trace)
29: return;
30:
31: info->chain = chain;
32: info->type = type;
33:
34: nft_trace_notify(info);
35: }
使用meta表达式可以设置skb->nf_trace,将skb->nf_trace设置为非空就可以进入到nft_trace_notify函数。
File: linux-5.19\net\netfilter\nft_meta.c
...
443: case NFT_META_NFTRACE:
444: value8 = nft_reg_load8(sreg);
445:
446: skb->nf_trace = !!value8;
447: break;
...
在nft_trace_notify函数内部,还会判断是否订阅NFNLGRP_NFTRACE。没订阅则无法继续执行。
File: linux-5.19\net\netfilter\nf_tables_trace.c
...
176: if (!nfnetlink_has_listeners(nft_net(pkt), NFNLGRP_NFTRACE))
177: return;
...
在libnml库中使用mnl_socket_setsockopt函数进行netlink的组订阅,由于在使用宏NFNLGRP_NFTRACE编译时会提示找不到该值,因此这里使用实际值代替了。
static int group = 9;
if (mnl_socket_setsockopt(nleak, NETLINK_ADD_MEMBERSHIP, &group,
sizeof(int)) < 0) {
perror("mnl_socket_setsockopt");
exit(EXIT_FAILURE);
}
接下来就需要具体如何伪造rule,通过byteorder操作可以首先可以将原先的chain、rule以及last_rule的地址泄露,但是只能泄露四字节。
由于我们需要找到符合上述条件的rule,并且我们只有rule的最低两个字节,因此搜索范围不大,因此需要在泄露的rule_low附近寻找一个合适的模块地址。在存储泄露的rule之前存储利用immediate以及meta_set操作,我们选择其中一个进行泄露即可。
伪造的方式也比较简单,由于is_last与dlen都需要设置为0,因此我们只需要找到两个字节为0的值,作为伪造的rule即可,伪造的rule如下。
修改后的结果如下
由于handle实际是占用42比特,但是有3个比特被设置为0了,因此实际泄露的值只有39比特,但是由于模块地址的高4个字节都是固定的0xffffffff,因此不影响模块地址的泄露。通过从数据包中提取数据得到handle的值为后,简单移位操作就可以还原。
module = ((leak << 13) >> 16);
最后泄露模块基地址成功。
总结
总结一下模块基地址的泄露流程
1. 构造基础链
设置NFT_JUMP表达式
通过meta设置为NFT_META_NFTRACE
2. 泄露链
byteorder表达式触发漏洞,第一次读chain、rule以及last_rule,第二次改写为chain,fake rule以及fake last_rule
dynset表达式泄露chain、rule、last_rule
3. 订阅NFNLGRP_NFTRACE组,接收数据包
4. 后续接着分享如何绕过kaslr以及最终提权的利用。
原版exp使用go语言写的,我使用c语言重写了一版。
完整exp:https://github.com/h0pe-ay/Vulnerability-Reproduction/tree/master/CVE-2023-35001(nftables)(c语言)
网络安全日报 2024年04月25日
1、研究人员披露一种名为Sharpil RAT的恶意软件
https://www.gdatasoftware.com/blog/2024/04/37894-sharp-info-stealer Sharpil RAT由C#编写,运行后立即尝试与Telegram bot建立连接。攻击者利用Telegram bot与恶意软件进行通信,发送命令以收集系统信息以及计算机中已安装的浏览器信息(如Google Chrome、Yandex、Brave、Edge、Slimjet、Comodo和UR浏览器)。此外,它还从Minecraft游戏服务器“Vime World”收集受害者的地理位置和用户信息。该恶意软件中使用的Telegram bot指向一个使用俄语的攻击
2、黑客利用eScan更新机制中的缺陷传播GuptiMiner
https://decoded.avast.io/janrubin/guptiminer-hijacking-antivirus-updates-for-distributing-backdoors-and-casual-mining/ 研究人员发现并分析了一个恶意软件活动,该活动劫持了反病毒产品eScan的更新机制中的缺陷,通过执行中间人攻击投放后门和挖矿程序。GuptiMiner是一种长期存在的恶意软件,可以追溯到2018年或者更早的时间。研究人员发现,通过观察Kimsuky使用的键盘记录器与GuptiMiner中部分操作之间的相似之处,GuptiMiner可能与APT组织Kimsuky
3、WordPress响应式主题中存在安全漏洞
https://cybersecuritynews.com/wordpress-responsive-theme-flaw-let-attackers-inject-malicious-html-scripts WordPress响应式主题中存在一个安全漏洞,允许攻击者将任意HTML内容注入至网站。该漏洞被标记为CVE-2024-2848,对网站完整性和用户安全构成严重风险。该漏洞是在响应式主题的页脚部分发现的,这个安全漏洞是由于save_footer_text_callback功能中缺少功能检查,攻击者可以在未经授权的情况下修改页脚文本而无需身份验证。响应式主题的开发人员已在最新更新中解决
4、UnitedHealth已向勒索组织支付赎金
https://www.bleepingcomputer.com/news/security/unitedhealth-confirms-it-paid-ransomware-gang-to-stop-data-leak UnitedHealth集团已确认向网络犯罪分子支付赎金,以保护在2月下旬勒索软件攻击期间被盗的敏感数据。该公司称,此次网络攻击造成了8.72亿美元的经济损失。研究人员检查了RansomHub勒索组织的数据泄露网站,可以确认攻击者已将UnitedHealth从其受害者名单中删除。该公司向患者保证,只有22张被盗文件的屏幕截图被发布在暗网上,其中一些包含个人身份信息,目前没有
5、LockBit声称从Tyler Technologies窃取数据
https://www.securityweek.com/ransomware-gang-leaks-data-allegedly-stolen-from-government-contractor LockBit勒索组织声称从政府承包商Tyler Technologies窃取了数据。该勒索组织声称拥有800Gb与DISB、美国证券交易委员会(SEC)、特拉华州银行机构和其他金融机构相关的数据,并威胁说除非支付赎金,否则将会泄露这些数据。这些数据似乎是在3月下旬从DISB的STAR系统客户端窃取的,当时该组织对公共部门的软件和服务提供商Tyler Technologies进行了网络攻击。在4
6、CoralRaider 利用 CDN 缓存传播恶意软件
https://www.freebuf.com/news/399090.html 近日,有研究人员发现,在针对美国、英国、德国和日本系统的攻击活动中,有黑客使用了网络缓存来传播恶意软件。研究人员认为,该活动的幕后黑手是 CoralRaider。该组织曾发起过多次窃取凭证、财务数据和社交媒体账户的攻击活动。此外该黑客还提供 LummaC2、Rhadamanthys 和 Cryptbot 信息窃取程序,这些信息窃取程序可在恶意软件即服务平台的地下论坛上获得,但需要支付订阅费。
7、北约举行全球规模最大的“锁定盾牌”年度网络安全演习
https://www.secrss.com/articles/65489 北约于4月22日至26日举行年度“锁定盾牌”网络安全演习,乌克兰将首次参加北约“锁定盾牌”网络演习。
8、谷歌修复了严重的 Chrome 漏洞
https://www.securityweek.com/google-patches-critical-chrome-vulnerability/ Google 修补了 CVE-2024-4058,这是一个关键的 Chrome 漏洞,研究人员因此获得了 16,000 美元的奖励。
9、思科针对“ArcaneDoor”零日攻击 ASA 防火墙平台发出警报
https://www.securityweek.com/cisco-raises-alarm-for-arcanedoor-zero-days-hitting-asa-firewall-platforms/ 思科警告称,国家支持的黑客正在利用其 ASA 防火墙平台中的至少两个零日漏洞在电信和能源部门网络上植入恶意软件。
10、美国悬赏1000万美元征集四名伊朗黑客的信息
https://securityaffairs.com/162205/cyber-warfare-2/162205us-sanctioned-4-iranian-nationals.html 美国财政部外国资产控制办公室 (OFAC) 对四名伊朗国民实施制裁,因为他们参与了针对美国的网络攻击。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年04月24日
1、APT28组织利用Windows Print Spooler漏洞进行攻击
https://www.microsoft.com/en-us/security/blog/2024/04/22/analyzing-forest-blizzards-custom-post-compromise-tool-for-exploiting-cve-2022-38028-to-obtain-credentials 研究人员称,APT28组织利用Windows Print Spooler漏洞进行攻击活动,并使用以前未知的黑客工具GooseEgg升级权限并窃取凭据和数据。APT28组织至少从2020年6月开始,最早可能在2019年4月,一直在使用此工具利用CVE-2022-38028
2、Sandworm组织针对乌克兰20个关键基础设施进行攻击
https://cert.gov.ua/article/6278706 根据乌克兰计算机应急响应小组(CERT-UA)的一份报告,俄罗斯黑客组织Sandworm针对乌克兰20个关键基础设施进行攻击。该组织也被称为BlackEnergy、Seashell Blizzard、Voodoo Bear和APT44。CERT-UA的报告称,2024年3月,Sandworm开展了针对乌克兰10个地区能源、水和供暖供应商的信息通信系统的攻击活动。Sandworm还将先前记录的恶意软件与新的恶意工具(适用于Linux的BIASBOAT和LOADGRIP)相结合,以获得访问权限并在网络中进行横向移动。
3、Citrix UberAgent工具中存在安全漏洞
https://cybersecuritynews.com/citrix-uberagent-privilege-escalation Citrix的uberAgent是一种监控工具,用于增强Citrix平台的性能和安全性,已被确定存在安全漏洞。该漏洞被标记为CVE-2024-3902,可能允许攻击者提升权限,从而对使用受影响软件版本的组织构成重大威胁。该漏洞影响Citrix uberAgent 7.1.2之前的版本。Citrix已向所有受影响的uberAgent版本的客户发出紧急公告,要求他们立即将其软件更新到版本7.1.2或更高版本。
4、医疗实验室Synlab Italia遭受勒索软件攻击
https://www.bleepingcomputer.com/news/security/synlab-italia-suspends-operations-following-ransomware-attack Synlab Italia遭受勒索软件攻击,并已暂停其所有医疗诊断和测试服务。该公司称在4月18日凌晨发生了安全事件,这迫使其关闭了所有计算机以限制网络攻击活动。受此事件影响,所有化验分析及样本采集服务均已暂停,恢复时间将另行通知。建议客户使用电话联系Synlab,因为其电子邮件通信服务处于离线状态。该公司在最新更新的公告中称,他们已开始逐步重新启动一些服务,包括专科门诊就诊和
5、在法国请求合作后,西班牙重启对Pegasus间谍软件案的调查
https://www.securityweek.com/spain-reopens-a-probe-into-a-pegasus-spyware-case-after-a-french-request-to-work-together/ 一名西班牙法官在收到与法国类似调查合作的请求后,重新启动了对西班牙首相手机涉嫌间谍活动的调查。
6、西门子工业产品受到PaloAlto防火墙漏洞的影响
https://www.securityweek.com/siemens-industrial-product-impacted-by-exploited-palo-alto-firewall-vulnerability/ Palo Alto Networks 防火墙漏洞 CVE-2024-3400 作为零日漏洞被利用,影响西门子工业产品。
7、美国政府成功举办第九次网络风暴演习
https://www.secrss.com/articles/65414 美国网络安全和基础设施安全局(CISA)宣布,第九次“网络风暴”演习(Cyber Storm IX)已于 4 月 16 -18 日成功举办,来自 100 多个组织超过 2000 名参与者参与实时演练。
8、BlackTech 瞄准亚太的科技、研究和政府部门
https://thehackernews.com/2024/04/blacktech-targets-tech-research-and-gov.html 作为最近网络攻击浪潮的一部分,亚太地区的技术、研究和政府部门已成为一个名为 BlackTech 的威胁攻击者的目标。
9、大语言模型存在多轮越狱漏洞,多个AI模型无一幸免
https://www.freebuf.com/articles/paper/398416.html 人工智能初创公司Anthropic于2024年04月03日发表的一篇针对人工智能安全的论文,该公司在本论文中宣布的一种新的“越狱”技术,名为Many-shot Jailbreaking(多轮越狱)。文章详细描述了目前大语言模型(LLM)中存在的一种安全漏洞,这种技术可以用来规避LLM开发人员所设置的安全护栏,而该漏洞可能会被威胁行为者利用并诱使AI模型提供原本被程序设定规避的回复。
10、报告称Microsoft 和谷歌是网络诈骗中被模仿最多的品牌
http://www.anquan419.com/knews/24/6806.html 根据 Check Point 的一份报告,Microsoft 和 Google 是 2024 年第一季度网络钓鱼攻击中最常被冒充的品牌。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年04月23日
1、Octapharma Plasma遭受BlackSuit勒索软件攻击
https://www.theregister.com/2024/04/18/ransomware_octapharma_plasma 由于遭受网络攻击,Octapharma Plasma在美国各地的150多个中心的网络系统持续关闭。一位知情人士表示,Octapharma Plasma遭受的是BlackSuit勒索软件攻击,攻击者通过入侵该公司的VMware系统投放该勒索软件。BlackSuit是一种相对较新的勒索软件,它与Royal共享代码,甚至可能是该勒索组织的重塑。
2、Mobile Guardian发生数据泄露事件
https://www.straitstimes.com/singapore/app-managing-students-personal-learning-devices-at-127-schools-hacked-names-e-mail-addresses-leaked-moe 新加坡教育部在其网站上的一份声明中表示,Mobile Guardian的用户管理门户在其总部因未经授权的访问事件而受到损害,这导致新加坡5所小学和122所中学的家长和教师的姓名及电子邮件地址泄露。这意味着新加坡大约三分之一的中小学受到这次事件的影响。泄露的信息包括父母的名字和姓氏,他们的电子邮件地址,学生就读的
3、纽约州立法机构遭受网络攻击
https://uk.news.yahoo.com/cyberattack-hits-ny-capitol-amid-012534971.html 纽约州立法机构的计算机基础设施遭到了网络攻击,该事件减缓了已经逾期数周的州预算谈判的进展,并迫使该州转向使用20世纪的备份系统。为了应对此次事件,法案起草办公室使用1994年过时的计算机归档系统,该系统在20多年前被替换。此次事件的确切原因或动机尚不清楚。
4、攻击者声称窃取World-Check数据库中的数据
https://www.databreachtoday.com/hacker-threatens-to-expose-sensitive-world-check-database-a-24909 攻击者声称窃取了伦敦证券交易所维护的关键数据库World-Check中的数据。World-Check是银行和其他机构用来打击金融犯罪数据库。名称为“GhostR”的攻击者表示窃取了该数据库中的530万条记录,并很快将公开其中的一部分。攻击者称其通过一家具有World-Check访问权限的新加坡公司访问了该数据库,该公司有一个持续集成服务器,默认情况下具有管理访问权限。伦敦证券交易所集团向证实了第三方
5、研究人员在Chirp Systems的应用中发现安全漏洞
https://www.securitylab.ru/news/547516.php 研究人员在由Chirp Systems软件控制的智能锁中发现安全漏洞。攻击者可以利用该漏洞进行远程解锁。该漏洞是由于Chirp安卓应用程序中具有硬编码的密码和私钥,这些数据可用于访问智能锁的API,从而对智能锁进行远程管理。目前该漏洞已经被标识为CVE-2024-2197,CVSS评分为9.1/10。美国网络安全和基础设施保护局(CISA)也就该漏洞发出警告,指出Chirp尚未采取必要措施来解决该漏洞。
6、Akira 勒索软件肆虐,250 多家机构惨遭毒手
https://www.freebuf.com/news/398648.html 据美国联邦调查局(FBI)和其他当局称,在不到一年的时间里,以多重勒索策略著称的 "Akira "勒索软件团伙已从250多个受影响的组织中获得了约 4200 万美元的勒索软件收益。
7、GPT-4 会自己发起漏洞攻击,成功率高达87%
https://www.freebuf.com/news/398651.html 近日,伊利诺伊大学香槟分校的研究团队揭示了一项关于人工智能模型进行黑客攻击的新研究:只需要阅读CVE漏洞描述,GPT-4就可以瞬间化身黑客,成功实施漏洞攻击,综合成功率达到了惊人的87%。
8、Quishing 网络钓鱼攻击猛增十倍,附件有效载荷减半
https://www.infosecurity-magazine.com/news/quishing-attacks-tenfold/ Egress发布的报告显示,冒充攻击仍然普遍存在,其中77%冒充知名品牌,尤其是DocuSign和Microsoft。社会工程学策略有所加强,占网络钓鱼攻击的 16.8%,而网络钓鱼电子邮件的长度自 2021 年以来增长了三倍,这可能归因于生成式人工智能的使用。
9、《严阵以待》遭黑客攻击,数据库被洗劫一空
https://news.zol.com.cn/866/8665548.html 据了解,这次数据泄露事件的主要内容包括《严阵以待》游戏的所有源代码,其中涉及到该游戏在PlayStation 4测试工具上运行的图片以及构建数据,还有Xbox One、Xbox Series X|S和PlayStation 5上的构建数据。
10、OfflRouter 恶意软件在乌克兰躲避检测近十年
https://www.anquanke.com/post/id/295771 OfflRouter 的作案手法几乎保持不变,VBA 宏嵌入的 Microsoft Word 文档会删除名为“ctrlpanel.exe”的 .NET 可执行文件,然后该文件会感染系统和其他设备上发现的具有 .DOC(而非 .DOCX)扩展名的所有文件。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
一次奇妙的任意用户登录实战
刚刚进行了微信sessionkey的学习,正准备实战一下,就发现了这个神奇的网站,预知后事如何。请继续向下看去
1. 目标
2. 开局一个登录框
3. 首先,直接弱口令走起来,万一留有测试的账号呢
尝试,1311111111,13333333333.13888888888,未果
测试多了还有验证码防止爆破,也就不再继续尝试爆破了
弱口令g
4. 点击微信快捷登录,发现sessionkey(步入正题)
点击允许,数据包发现sessionkey参数
找到我们github上找到的sessionkey利用插件,把session_key(加密解密的key)encrypt_data(向数据库提交的值)iv(偏移量)的值都复制到工具上进行利用
但是怎么找到这个系统用户的手机号呢(万能的贴吧,抖音等地方获得了老师的手机号)
成功登录,任意用户登录加1
5. 发现这个接收了sessionkey的加密数据后,还会发送一个绑定手机号的数据包(又一个任意用户登录)
修改请求包的user参数,发现没有鉴权,直接输入用户手机号即可绑定登录
感觉离谱,任意用户登录又加1
6.输入名字即可查看学生学籍信息(编码解码后名字为张杰)
敏感信息泄露加1
7. 维修处可以上传图片,尝试利用
准备试试绕过,结果白名单加黑名单过滤,文件上传gg
但是删除文件发现是直接DELETE请求,还是直接删路径,只能说开发太牛了,真的离谱
测试不同用户文件可以直接删除,没有进一步尝试(害怕系统崩溃),任意文件删除加1
8. 发现这个还有一个预约平台,鉴于上个系统的离谱,继续尝试利用(非原图,原图特征太明显了)
进入后发现只有验证码登录
尝试爆破四位数验证码
成功登录,任意用户登录又加1
总结:
第一次碰见这么多的任意用户登录,建议加强鉴权,隐藏sessionkey值,登录设置次数要求,防止爆破。另外,进行漏洞挖掘,建议证明即可,未经客户允许禁止扩大危害,盲目扩大危害可能有法律风险。
网络安全日报 2024年04月22日
1、攻击者通过虚假的游戏作弊器传播Redline窃密木马
https://www.mcafee.com/blogs/other-blogs/mcafee-labs/redline-stealer-a-novel-approach/ 研究人员称,新的Redline窃密木马利用Lua字节码来规避检测,将恶意软件注入合法进程,并利用即时(JIT)编译。攻击者通过虚假的“Cheat Lab”和“Cheater Pro”的游戏作弊工具传播Reline窃密木马。该恶意软件以ZIP文件的形式进行传播,其中包含一个MSI安装程序,该安装程序在启动时解压缩两个文件(compiler.exe和lua51.dll),并释放一个包含恶意Lua字节码的“readme.txt
2、研究人员披露一种名为“MadMxShell”的后门
https://www.zscaler.com/blogs/security-research/malvertising-campaign-targeting-it-teams-madmxshell 从2024年3月开始,研究人员发现攻击者利用一组伪装成合法IP扫描软件的网站,传播一种未曾发现的后门。攻击者使用拼写错误的手段注册了多个相似的域名,并利用Google广告将这些恶意域名推送到针对特定搜索关键字的搜索引擎结果顶部,从而引诱受害者访问这些网站。此次新发现的后门使用了多种技术,例如DLL侧加载、滥用DNS协议与命令和控制(C2)服务器通信、以及规避内存取证。研究人员将此后门命名为“Ma
3、R00TK1T组织声称窃取了雀巢公司的机密数据
https://cybersecuritynews.com/r00tk1t-claims/ 名为R00TK1T的黑客组织称,他们成功进入雀巢公司的系统,并获得了机密数据,但该组织尚未公布有关该事件的更多细节。雀巢公司尚未就该事件发表正式声明。然而,公司内部消息人士表示,内部调查正在进行中。
4、美国医疗保健供应商Cherry Health遭受勒索软件攻击
https://cybernews.com/news/cherry-health-ransomware-attack/ 在2024年4月16日的数据泄露通知信中,Cherry Health表示,他们经历了一起涉及患者个人数据的数据泄露事件。Cherry Health遭受了勒索软件攻击,勒索组织渗透受害者的网络、窃取和加密数据,然后要求支付赎金以换取失窃数据。涉及的数据包括名字和姓氏以及以下一个或多个数据元素的组合:名字、地址、电话号码、出生日期、健康保险信息、健康保险身份证号码、患者 ID 号、提供程序名称、服务日期、诊断/治疗信息、处方信息、财务账户信息、社会安全号码。
5、Junos OS中存在多个安全漏洞
https://cybersecuritynews.com/juniper-networks-flaws/ Junos OS中存在多个与拒绝服务(DoS)、路径遍历和跨站点脚本(XSS) 相关的安全漏洞。这些漏洞分别是CVE-2024-30409、CVE-2020-1606 和 CVE-2020-1607。这些漏洞的严重性介于5.3(中)到 7.5(高)之间。瞻博网络已经对这些漏洞进行了修复,并发布了相关的安全更新来解决这些问题。建议使用Junos OS和Junos OS演进产品的用户升级到最新版本,以防止攻击者利用这些漏洞。
6、网络钓鱼即服务平台LabHost被执法部门关闭,37人被捕
https://cybernews.com/news/labhost-seized-by-law-enforcement/ 网络钓鱼即服务平台LabHost已被执法部门关闭,并有37名嫌疑人被逮捕。根据欧洲刑警组织的说法,LabHost曾经是全球网络犯罪分子的重要工具,因为网络犯罪即服务已成为犯罪世界中发展最快的商业模式之一。通过按月订阅,LabHost提供了网络钓鱼工具包、用于托管页面的基础设施、用于与受害者互动的交互式功能以及活动概述服务。在2024年4月14日至17日期间,37名嫌疑人被确认并被逮捕。
7、HelloKitty勒索组织更名为HelloGookie
https://www.bleepingcomputer.com/news/security/hellokitty-ransomware-rebrands-releases-cd-projekt-and-cisco-data HelloKitty勒索组织声称他们将名称更改为“HelloGookie”,并公开了以前窃取的CD Projekt源代码、思科网络信息和一些解密密钥。发布该公告的攻击者名为“Gookee/kapuchin0”,声称是现已解散的HelloKitty勒索组织的原创始人。攻击者同时发布了4个可用于解密旧攻击活动中加密文件的解密密钥、2022年从思科窃取的内部信息,以及2021
8、联合国开发计划署遭受网络攻击
https://www.bleepingcomputer.com/news/security/united-nations-agency-investigates-ransomware-attack-claimed-by-8Base-gang/ 联合国开发计划署(UNDP)正在调查一起网络攻击事件。该组织透露,攻击者于3月下旬入侵了哥本哈根的IT基础设施。3月27日,联合国开发计划署收到威胁情报,称有攻击者窃取了数据,其中包括某些人力资源和采购信息。虽然UNDP尚未将这次攻击事件与特定的攻击组织联系起来,但8Base勒索组织于3月27日在其暗网数据泄露网站上将UNDP列为受害者。UNDP目前
9、CrushFTP更新修复了一个被利用的零日漏洞
https://www.bleepingcomputer.com/news/security/crushftp-warns-users-to-patch-exploited-zero-day-immediately/ CrushFTP在发布的新版本中修复了一个被积极利用的零日漏洞,并敦促使用该产品的用户立即更新。该零日漏洞能使未经身份验证的攻击者逃脱用户的虚拟文件系统(VFS)并下载系统文件。该公司警告服务器仍在运行CrushFTP v9的客户立即升级到v11或通过仪表板进行更新。安全研究团队已经看到CrushFTP零日漏洞被用于有针对性的攻击。攻击者的目标是多个美国组织的CrushFTP服
10、MITRE表示攻击者通过Ivanti零日漏洞入侵其网络
https://medium.com/mitre-engenuity/advanced-cyber-threats-impact-even-the-most-prepared-56444e980dc8 MITRE Corporation表示,一个攻击组织于2024年1月通过两个Ivanti VPN零日漏洞入侵了其系统。该事件是在MITRE的网络实验、研究和虚拟化环境(NERVE)上检测到可疑活动后发现的。攻击者还通过使用会话劫持来绕过多因素身份验证(MFA)防御,这允许他们使用被劫持的管理员帐户横向移动被破坏网络的VMware基础架构。在整个事件中,攻击者结合使用了复杂的Web Shell和
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年04月19日
1、FIN7组织针对美国汽车行业进行网络钓鱼攻击活动
https://blogs.blackberry.com/en/2024/04/fin7-targets-the-united-states-automotive-industryfin7-targets-american-automakers-it-staff-in-phishing-attacks/ FIN7组织针对一家美国大型汽车制造商,向其IT部门的员工发送鱼叉式网络钓鱼电子邮件,以投递Anunak后门。电子邮件中的链接将指向“advanced-ip-sccanner[.]com”,该域名对合法域名“advanced-ip-scanner[.]com”进行了模仿。研究人员发现,该虚假
2、攻击者针对存在漏洞的Atlassian服务器部署Cerber勒索软件
https://www.cadosecurity.com/blog/cerber-ransomware-dissecting-the-three-heads 攻击者正在针对存在漏洞的Atlassian服务器部署Cerber(又名C3RB3R)勒索软件的Linux变种。这些攻击利用了CVE-2023-22518(CVSS 评分:9.1),这是一个影响Atlassian Confluence数据中心和服务器的严重安全漏洞,允许未经身份验证的攻击者重置Confluence并创建管理员帐户。研究人员称,已观察到出于经济动机的网络犯罪组织滥用新创建的管理员帐户来安装Effluence Web shel
3、研究人员披露名为SoumniBot的新型安卓恶意软件
https://securelist.com/soumnibot-android-banker-obfuscates-app-manifest/112334 研究人员近期发现一种名为“SoumniBot”的新安卓恶意软件,使用一种不太常见的混淆方法,该方法使SoumniBot能够规避安卓手机中的标准安全措施并执行信息窃取操作。清单文件(“AndroidManifest.xml”)位于每个应用的根目录中,包含有关组件(服务、广播接收器、内容提供商)、权限和应用数据的详细信息。恶意APK可以使用Zimperium的各种压缩技巧来欺骗安全工具并规避分析,但研究人员发现,SoumniBot使用了三种
4、僵尸网络利用TP-LINK AX21漏洞CVE-2023-1389进行大规模传播
https://www.fortinet.com/blog/threat-research/botnets-continue-exploiting-cve-2023-1389-for-wide-scale-spread 2023年,研究人员披露了一个命令注入漏洞CVE-2023-1389,并为TP-Link Archer AX21(AX1800)的 Web管理界面开发了修复程序。最近,研究人员观察到针对该漏洞的多次攻击活动,主要涉及Moobot、Miori、基于Golang的代理“AGoent”和Gafgyt Variant等僵尸网络。尽管漏洞CVE-2023-1389已在去年被披露,但许多
5、Oracle发布2024年4月安全更新解决了372个漏洞
https://cybersecuritynews.com/alert-oracle-releases-critical-patch-update-2024 Oracle发布了2024年4月的安全更新,解决了多个产品中的372个漏洞。关键补丁更新修复了Oracle产品中的安全漏洞,包括数据库服务器、融合中间件、企业管理器、电子商务套件、供应链产品套件、Siebel CRM、Oracle Sun产品、Java SE等。此次更新包括对几个关键安全漏洞的修复,这些漏洞可能允许攻击者远程执行代码、操作数据或未经授权访问系统。修复的漏洞跨越多个严重级别,其中34个被归类为“Critical”,这意味着
6、美国最大的医疗服务提供商因网络攻击损失 8.72 亿美元
https://www.freebuf.com/news/398310.html 联合健康集团(UnitedHealth Group)报告称,自 2 月份以来,勒索软件攻击扰乱了美国的医疗系统,并已经给其造成了 8.72 亿美元的损失。勒索软件攻击造成的影响包括 5.93 亿美元的直接网络攻击响应成本和 2.79 亿美元的业务中断成本。
7、研究表明,全球互联网流量竟有一半来自机器人
https://cybernews.com/news/most-internet-traffic-comes-from-bots/ 报告称,早期的恶意机器人规避技术依赖于伪装成合法人类用户常用的用户代理(浏览器),现在,伪装成移动用户的机器人将占到了所有机器人流量的 44%。
8、Chirp Systems软件控制的智能锁被发现严重的安全漏洞
https://www.securitylab.ru/news/547516.php 该漏洞是由于密码和私钥被硬编码在 Chirp Android 应用程序中。这些数据可用于访问智能锁供应商奥古斯特的 API,从而远程控制锁具。
9、Kimsuky 利用许可性 DMARC 政策伪造电子邮件
https://www.inforisktoday.com/kimsuky-uses-permissive-dmarc-policies-to-spoof-emails-a-24857 Kimsuky 黑客利用电子邮件诱使受害者下载携带恶意软件的文档,同时将其作为主要情报收集工具,通过冒充记者或智库工作人员向目标征求分析意见。
10、Meta虚假信息泛滥,俄罗斯被指借此干预欧盟选举
https://www.freebuf.com/news/398315.html 据非营利性分析机构 AI Forensics 的一份新报告称,一个已知网络一直在 Meta 平台(Facebook、Instagram、Messenger 和 Threads)上针对法国和德国的欧盟选举进行亲俄宣传。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
CTF中常见的四种python逆向
说在前面:
什么是pyc文件?
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,pyc 文件是 Python 编译过的字节码文件。它是 Python 程序在运行过程中由源代码(通常是 .py 文件)自动或手动编译产生的二进制文件。
而且pyc是一种跨平台的字节码,是由[Python]的虚拟机来执行的,这个是类似于[Java]或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。
为什么需要pyc文件?
因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版本的pyc文件的话,就需要自己动手了,不过你可以自己修改python的源代码中的opcode文件,重新编译python,从而防止不法分子的破解。
pyc文件
解法:uncompyle6直接反编译
eg.
def check():
flag=1+1
if(flag==2):
return "right"
return "error"
print(check())
这是我们所写的一个简单的python例子
现在我们来生成pyc文件 这里用的是python3
pyhton -m test.py
pyc文件也是可以运行的
我们在对应的文件夹的搜索框下输入powershell
然后输入
python .\test.pyc
可以看到即使是运行py文件也是可以运行的
但区别的是我们没法看到pyc文件里面是什么东西,即使拖进IDA里面也无济于事
所以这里我们需要下载一个工具
uncompyle6.exe
在终端打开并输入
pip install uncompyle
安装后包含uncompyle6 但是版本为3.8.0 会导致一些软件的反编译失败建议使用下面命令回到3.7.4版本
pip install uncompyle6==3.7.4
安装以后,我们回到我们的tmp目录并打开powershell输入
uncompyle6.exe .\test.py
这里我们就得到了源码
接下来的操作就跟windows逆向别无二致了
txt里面是pyc字节码
解法:
读py字节码
根据opcode文件查询意思
我们先来得到我们test.py例子的字节码
在powershell下先输入python 然后输入
import dis,marshal
f=open("test.pyc", "rb").read()
f
dis和marshal库 一个是装载库 一个是反编译字节码的库
我们可以将我们的test.pyc导入010Editor中配合着一起看
python2的前八个字节是python2的魔术字
python3的前十六个字节是python3的魔术字
所以我们可以不用读前十六位 我们只需要读后十六位的东西
code=marshal.loads(f[16:])
code
现在我们读进来的是二进制数据,我们可以用dis来进行反编译 就会得到python的字节码 可以理解成python的汇编读出来了
dis.dis(code)
这就是python的汇编
我们这里是直接将pyc文件uncompyle6回去的,但是在CTF中一般都是把python的汇编直接复制粘贴出来丢给我们...
所以我们只能硬看...或者配合点东西 比如python的opcode一起看
补充一点:python2是3个字节为1个指令 python3是2个字节为1个指令
比如test.pyc中LOAD_CONST 指令就占用了0,1两个字节
所以下条指令就从3开始了
1 0 LOAD_CONST 0 (<code object keyinit at 0x0000028C1CC11D20, file "crackPYC.py", line 1>)
2 LOAD_CONST 1 ('keyinit')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (keyinit)
8 8 LOAD_NAME 1 (__name__)
10 LOAD_CONST 2 ('__main__')
12 COMPARE_OP 2 (==)
14 POP_JUMP_IF_FALSE 250
9 16 LOAD_NAME 2 (print)
18 LOAD_CONST 3 ('Can you crack pyc?')
20 CALL_FUNCTION 1
22 POP_TOP
10 24 LOAD_NAME 3 (input)
26 LOAD_CONST 4 ('Plz give me your flag:')
28 CALL_FUNCTION 1
30 STORE_NAME 4 (str) #将输入的字符存入str内
11 32 LOAD_CONST 5 (108)
34 LOAD_CONST 6 (17)
36 LOAD_CONST 7 (42)
38 LOAD_CONST 8 (226)
40 LOAD_CONST 9 (158)
42 LOAD_CONST 10 (180)
44 LOAD_CONST 11 (96)
46 LOAD_CONST 12 (115)
48 LOAD_CONST 13 (64)
50 LOAD_CONST 14 (24)
52 LOAD_CONST 15 (38)
54 LOAD_CONST 16 (236)
56 LOAD_CONST 17 (179)
58 LOAD_CONST 18 (173)
60 LOAD_CONST 19 (34)
62 LOAD_CONST 20 (22)
64 LOAD_CONST 21 (81)
66 LOAD_CONST 22 (113)
68 LOAD_CONST 15 (38)
70 LOAD_CONST 23 (215)
72 LOAD_CONST 24 (165)
74 LOAD_CONST 25 (135)
76 LOAD_CONST 26 (68)
78 LOAD_CONST 27 (7)
12 80 LOAD_CONST 28 (119)
82 LOAD_CONST 29 (97)
84 LOAD_CONST 30 (45)
86 LOAD_CONST 31 (254)
88 LOAD_CONST 32 (250)
90 LOAD_CONST 33 (172)
92 LOAD_CONST 34 (43)
94 LOAD_CONST 35 (62)
96 BUILD_LIST 32 #建立容量为32的列表
98 STORE_NAME 5 (text) #以上32个数据为text数组的数值
13 100 LOAD_NAME 6 (len)
102 LOAD_NAME 4 (str)
104 CALL_FUNCTION 1
106 LOAD_CONST 36 (32)
108 COMPARE_OP 3 (!=)
110 POP_JUMP_IF_TRUE 140 #判断str即输入字符串的长度是否为32,不是则跳转到140
112 LOAD_NAME 4 (str)
114 LOAD_CONST 37 (0)
116 LOAD_CONST 27 (7)
118 BUILD_SLICE 2
120 BINARY_SUBSCR
122 LOAD_CONST 38 ('DASCTF{')
124 COMPARE_OP 3 (!=)
126 POP_JUMP_IF_TRUE 140 #判断str字符串的前七位是否为'DASCTF{',不是则跳转到140
128 LOAD_NAME 4 (str)
130 LOAD_CONST 39 (31)
132 BINARY_SUBSCR
134 LOAD_CONST 40 ('}')
136 COMPARE_OP 3 (!=)
138 POP_JUMP_IF_FALSE 154 #判断str字符串的最后一位也就是31位是否为'}',不是则跳转到154
#因为如果不跳转继续执行的话就会执行到输入字符串符合的一段代码使程序 #退出
14 >> 140 LOAD_NAME 2 (print)
142 LOAD_CONST 41 ('Bye bye~~')
144 CALL_FUNCTION 1
146 POP_TOP
15 148 LOAD_NAME 7 (exit)
150 CALL_FUNCTION 0
152 POP_TOP #退出程序
16 >> 154 LOAD_NAME 8 (list)
156 LOAD_NAME 4 (str)
158 CALL_FUNCTION 1
160 STORE_NAME 9 (st) #创建列表st
17 162 BUILD_LIST 0
164 STORE_NAME 10 (key)
18 166 LOAD_NAME 0 (keyinit)
168 LOAD_NAME 10 (key)
170 CALL_FUNCTION 1
172 POP_TOP
19 174 SETUP_LOOP 48 (to 224)
176 LOAD_NAME 11 (range)
178 LOAD_CONST 36 (32)
180 CALL_FUNCTION 1
182 GET_ITER
>> 184 FOR_ITER 36 (to 222)
186 STORE_NAME 12 (i) #相当于for i in range(0,32)
20 188 LOAD_NAME 13 (ord)
190 LOAD_NAME 4 (str)
192 LOAD_NAME 12 (i)
194 BINARY_SUBSCR
196 CALL_FUNCTION 1
198 LOAD_NAME 10 (key)
200 LOAD_NAME 12 (i)
202 LOAD_NAME 6 (len)
204 LOAD_NAME 10 (key)
206 CALL_FUNCTION 1
208 BINARY_MODULO #key元素少于str元素,所以要把i和key的长度取余避免越界
210 BINARY_SUBSCR
212 BINARY_XOR
214 LOAD_NAME 9 (st)
216 LOAD_NAME 12 (i)
218 STORE_SUBSCR #此处代码将str和key中的元素进行异或处理后存入st
220 JUMP_ABSOLUTE 184 #相当于st[i] = ord(str[i]) ^ key[i % len(key)]
>> 222 POP_BLOCK
21 >> 224 LOAD_NAME 9 (st)
226 LOAD_NAME 5 (text)
228 COMPARE_OP 2 (==)
230 POP_JUMP_IF_FALSE 242 #对比st数组和text数组,不相等则跳转到地址242处
22 232 LOAD_NAME 2 (print)
234 LOAD_CONST 42 ('Congratulations and you are good at PYC!')
236 CALL_FUNCTION 1
238 POP_TOP
240 JUMP_FORWARD 8 (to 250)
24 >> 242 LOAD_NAME 2 (print)
244 LOAD_CONST 43 ('Sorry,plz learn more about pyc.')
246 CALL_FUNCTION 1
248 POP_TOP
>> 250 LOAD_CONST 44 (None)
252 RETURN_VALUE
Disassembly of <code object keyinit at 0x0000028C1CC11D20, file "crackPYC.py", line 1>:
2 0 LOAD_CONST 1 (0)
2 STORE_FAST 1 (num)
3 4 SETUP_LOOP 42 (to 48)
6 LOAD_GLOBAL 0 (range)
8 LOAD_CONST 2 (8)
10 CALL_FUNCTION 1
12 GET_ITER
>> 14 FOR_ITER 30 (to 46)
16 STORE_FAST 2 (i) #相当于for i in range(0,8)
#从这里我们可以知道key的长度为8
4 18 LOAD_FAST 1 (num)
20 LOAD_CONST 3 (7508399208111569251)
22 BINARY_SUBTRACT
24 LOAD_CONST 4 (4294967295)
26 BINARY_MODULO
28 STORE_FAST 1 (num)
5 30 LOAD_FAST 0 (key)
32 LOAD_METHOD 1 (append)
34 LOAD_FAST 1 (num)
36 LOAD_CONST 5 (24)
38 BINARY_RSHIFT #不理解这一句的意思
40 CALL_METHOD 1 #但这一段代码就是给key赋值
42 POP_TOP
44 JUMP_ABSOLUTE 14
>> 46 POP_BLOCK
>> 48 LOAD_CONST 0 (None)
50 RETURN_VALUE
这段代码的总体意思就是将输入的str字符串与key数组进行异或加密后存入st数组并于text数组进行对比我们可以从代码中得之text数组的元素值也可以知道str的前七位必为’DASCTF{’,最后一位必为’}’,而key数组只有8位,所以对str的加密是8位8位的进行的又因为异或具有自反性,所以可以据’DASCTF{‘字符串与text前7个元素做异或处理得出前7位,再将’}'与text最后一位进行异或 处理得出第8位,就可以得到key的整个数组
这段汇编最关键的部分如下
Disassembly of <code object keyinit at 0x0000028C1CC11D20, file "crackPYC.py", line 1>:
2 0 LOAD_CONST 1 (0)
2 STORE_FAST 1 (num)
3 4 SETUP_LOOP 42 (to 48)
6 LOAD_GLOBAL 0 (range)
8 LOAD_CONST 2 (8)
10 CALL_FUNCTION 1
12 GET_ITER
>> 14 FOR_ITER 30 (to 46)
16 STORE_FAST 2 (i) #相当于for i in range(0,8)
#从这里我们可以知道key的长度为8
4 18 LOAD_FAST 1 (num)
20 LOAD_CONST 3 (7508399208111569251)
22 BINARY_SUBTRACT
24 LOAD_CONST 4 (4294967295)
26 BINARY_MODULO
28 STORE_FAST 1 (num)
5 30 LOAD_FAST 0 (key)
32 LOAD_METHOD 1 (append)
34 LOAD_FAST 1 (num)
36 LOAD_CONST 5 (24)
38 BINARY_RSHIFT #不理解这一句的意思
40 CALL_METHOD 1 #但这一段代码就是给key赋值
42 POP_TOP
44 JUMP_ABSOLUTE 14
>> 46 POP_BLOCK
>> 48 LOAD_CONST 0 (None)
50 RETURN_VALUE
首先就是一个num的初始化 因为LOAD_CONST推送到堆栈
然后STORE_FAST将TOS(python的栈)存储到本地中
这两条结合起来 其实意思就是
num=0
接下来 SETUP_LOOP(delta)
将一个循环的块推送到块堆栈。该块跨越当前指令,大小为delta字节。
LOAD_GLOBAL 定义一个全局变量 range LOAD_CONST定义一个常量 8
配合着utools里面程序员手册里面的Python库硬看
for i in range(8):
然后关键的这一步
首先LOAD_FAST 将num压入栈堆,然后又把一个常量(7508399208111569251)推送到堆栈中
然后又执行BINARY_SUBTRACT 也就是减操作 即栈的后一位减去栈顶,对应到代码中也就是num减去这个常量
然后又推了个值4294967295 然后进行BINARY_MODULO操作 这是栈顶后一位取余栈顶的值
最后STORE_FAST 存储到num这个变量
所以这关键的一步python代码应该是
num=(num-7508399208111569251)%4294967295
后面干的操作大体就是 LOAD_FAST num 然后LOAD_CONST 24 然后BINARY_RSHIFT 主要是就是栈顶后一位右移栈顶数据的值 然后存储到key里面 大概就是这么个意思
print(num>>24)
结合起来就是这样的
num=0
for i in range(8):
num=(num-7508399208111569251)%4294967295
print(num>>24)
这样我们就得到这道题的密钥
40
80
121
161
202
242
27
67
然后采用每八个字节都去异或一下这个密钥,flag就出来了
s=[108,17,42,226,158,180,96,115,64,24,38,236,179,173,34,22,81,113,38,215,165,135,68,7,119,97,
45,254,250,172,43,62]
key=[]
flag=''
num=0
for i in range(8):
num=(num-7508399208111569251)%4294967295
key.append(num>>24)
for i in range(32):
flag += chr(key[i%len(key)] ^ s[i])
print(flag)
打包成exe的pyc文件
解法:
通过脚本变成结构体和一个文件
重点:再把时间属性和版本的魔术字放回去保存
uncompyle6即可
下载完题目发现这是个exe文件 但是图标又是很明显的pyc文件
所以这是个打包成exe的py文件
这里我们需要用到一个工具pyinstxtractor.py
把这个py文件复制到我们的题目文件夹里面
在搜索框中输入powershell 在打开的终端中输入
python .\pyinstxtractor.py .\attachment.exe
运行后生成attachment.exe_extracted文件夹,进入之后看到一些源文件,由于我电脑上的python是3.8版本,解包要3.6版本,所以生成了不正常的入口文件login而不是login.pyc,想要变成正常的可反编译的pyc文件就要对生成文件进行修改。(如果不嫌麻烦可以换一下python3.6的环境)
现在开始修改login入口文件,这里用的是winhex。
修改之前需要了解一点,在将python文件打包成exe文件的过程中,会抹去pyc文件前面的部分信息,所以在反编译之前需要检查并添加上这部分信息,这部分信息可以通过struct文件获取。
windex中打开struct文件后,把struct文件前几个字节插入login开头。(具体要插入几个字节还是要看解包后的文件,我的文件是E3字节码前面的丢失,那么就只需要看struct中E3之前的字节码有哪些,ctrl + c复制,然后在login开头ctrl + v 粘贴即可。)
修改后如下
保存后 将login后缀名修改为.pyc即可
将login.pyc复制粘贴到题目的文件夹后打开powershell终端
并且调用uncompyle6.exe
uncompyle6.exe .\login.pyc
就可以看到源码了
import sys
input1 = input('input something:')
if len(input1) != 14:
print('Wrong length!')
sys.exit()
else:
code = []
for i in range(13):
code.append(ord(input1[i]) ^ ord(input1[(i + 1)]))
code.append(ord(input1[13]))
a1 = code[2]
a2 = code[1]
a3 = code[0]
a4 = code[3]
a5 = code[4]
a6 = code[5]
a7 = code[6]
a8 = code[7]
a9 = code[9]
a10 = code[8]
a11 = code[10]
a12 = code[11]
a13 = code[12]
a14 = code[13]
if (a1 * 88 + a2 * 67 + a3 * 65 - a4 * 5 + a5 * 43 + a6 * 89 + a7 * 25 + a8 * 13 - a9 * 36 + a10 * 15 + a11 * 11 + a12 * 47 - a13 * 60 + a14 * 29 == 22748) & (a1 * 89 + a2 * 7 + a3 * 12 - a4 * 25 + a5 * 41 + a6 * 23 + a7 * 20 - a8 * 66 + a9 * 31 + a10 * 8 + a11 * 2 - a12 * 41 - a13 * 39 + a14 *
print('flag is GWHT{md5(your_input)}')
print('Congratulations and have fun!')
else:
print('Sorry,plz try again...')
看到一堆数字 就明白这是要解方程 用z3库来写方便点
from z3 import *
#初始化变量
a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 = Ints("a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14")
x = Solver()
#根据题目来添加限制
x.add(a1 * 88 + a2 * 67 + a3 * 65 - a4 * 5 + a5 * 43 + a6 * 89 + a7 * 25 + a8 * 13 - a9 * 36 + a10 * 15 + a11 * 11 + a12 * 47 - a13 * 60 + a14 * 29 == 22748)
x.add(a1 * 89 + a2 * 7 + a3 * 12 - a4 * 25 + a5 * 41 + a6 * 23 + a7 * 20 - a8 * 66 + a9 * 31 + a10 * 8 + a11 * 2 - a12 * 41 - a13 * 39 + a14 * 17 == 7258)
x.add(a1 * 28 + a2 * 35 + a3 * 16 - a4 * 65 + a5 * 53 + a6 * 39 + a7 * 27 + a8 * 15 - a9 * 33 + a10 * 13 + a11 * 101 + a12 * 90 - a13 * 34 + a14 * 23 == 26190)
x.add(a1 * 23 + a2 * 34 + a3 * 35 - a4 * 59 + a5 * 49 + a6 * 81 + a7 * 25 + a8 * 128 - a9 * 32 + a10 * 75 + a11 * 81 + a12 * 47 - a13 * 60 + a14 * 29 == 37136)
x.add(a1 * 38 + a2 * 97 + a3 * 35 - a4 * 52 + a5 * 42 + a6 * 79 + a7 * 90 + a8 * 23 - a9 * 36 + a10 * 57 + a11 * 81 + a12 * 42 - a13 * 62 - a14 * 11 == 27915)
x.add(a1 * 22 + a2 * 27 + a3 * 35 - a4 * 45 + a5 * 47 + a6 * 49 + a7 * 29 + a8 * 18 - a9 * 26 + a10 * 35 + a11 * 41 + a12 * 40 - a13 * 61 + a14 * 28 == 17298)
x.add(a1 * 12 + a2 * 45 + a3 * 35 - a4 * 9 - a5 * 42 + a6 * 86 + a7 * 23 + a8 * 85 - a9 * 47 + a10 * 34 + a11 * 76 + a12 * 43 - a13 * 44 + a14 * 65 == 19875)
x.add(a1 * 79 + a2 * 62 + a3 * 35 - a4 * 85 + a5 * 33 + a6 * 79 + a7 * 86 + a8 * 14 - a9 * 30 + a10 * 25 + a11 * 11 + a12 * 57 - a13 * 50 - a14 * 9 == 22784)
x.add(a1 * 8 + a2 * 6 + a3 * 64 - a4 * 85 + a5 * 73 + a6 * 29 + a7 * 2 + a8 * 23 - a9 * 36 + a10 * 5 + a11 * 2 + a12 * 47 - a13 * 64 + a14 * 27 == 9710)
x.add(a1 * 67 - a2 * 68 + a3 * 68 - a4 * 51 - a5 * 43 + a6 * 81 + a7 * 22 - a8 * 12 - a9 * 38 + a10 * 75 + a11 * 41 + a12 * 27 - a13 * 52 + a14 * 31 == 13376)
x.add(a1 * 85 + a2 * 63 + a3 * 5 - a4 * 51 + a5 * 44 + a6 * 36 + a7 * 28 + a8 * 15 - a9 * 6 + a10 * 45 + a11 * 31 + a12 * 7 - a13 * 67 + a14 * 78 == 24065)
x.add(a1 * 47 + a2 * 64 + a3 * 66 - a4 * 5 + a5 * 43 + a6 * 112 + a7 * 25 + a8 * 13 - a9 * 35 + a10 * 95 + a11 * 21 + a12 * 43 - a13 * 61 + a14 * 20 == 27687)
x.add(a1 * 89 + a2 * 67 + a3 * 85 - a4 * 25 + a5 * 49 + a6 * 89 + a7 * 23 + a8 * 56 - a9 * 92 + a10 * 14 + a11 * 89 + a12 * 47 - a13 * 61 - a14 * 29 == 29250)
x.add(a1 * 95 + a2 * 34 + a3 * 62 - a4 * 9 - a5 * 43 + a6 * 83 + a7 * 25 + a8 * 12 - a9 * 36 + a10 * 16 + a11 * 51 + a12 * 47 - a13 * 60 - a14 * 24 == 15317)
print(x.check())
print(x.model())
得到下面这些玩意
[a13 = 88,
a3 = 10,
a4 = 7,
a10 = 108,
a12 = 74,
a1 = 119,
a7 = 28,
a6 = 43,
a9 = 52,
a14 = 33,
a5 = 104,
a8 = 91,
a2 = 24,
a11 = 88]
也就是[119, 24, 10, 7, 104, 43, 28, 91, 52, 108, 88, 74, 88, 33]
按照ord(input1[i]) ^ ord(input1[i + 1])进行异或, 反推回input
然后反推一个异或:注意这里源代码中code和a不是一一对应的....就是源码中a1=code[2]这些的
aim = [119, 24, 10, 7, 104, 43, 28, 91, 52, 108, 88, 74, 88, 33] #a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14
aim = [10, 24, 119, 7, 104, 43, 28, 91, 108, 52, 88, 74, 88, 33] #code[0]=a3,code[1]=a2.....源码中的....
print(len(aim))
flag = [0 for i in range(14)]
flag[13] = aim[13]
for i in range(12, -1, -1):#从12开始 到-1终止,每一步是-1
flag[i] = aim[i] ^ flag[i+1]
print(flag)
[85, 95, 71, 48, 55, 95, 116, 104, 51, 95, 107, 51, 121, 33], 转换为字符串
c = [85, 95, 71, 48, 55, 95, 116, 104, 51, 95, 107, 51, 121, 33]
for i in c:
print(chr(i), end="")
print("\n")
最后得到U_G07_th3_k3y! 交上去是不对的,还需要将其转换为md5才可以
加花指令的pyc
解法:
根据uncompyle6和字节码判断花
读取co_code的长度
去掉花 并修改co_code长度
保存uncompyle6即可
不加花指令的代码
def check():
flag=5+5
if(flag==10):
return "right"
return "Wrong"
#input=raw_input("Input something")
print(check())
我们先分别运行一下加了花指令和没有加花指令的pyc文件,看看加了花指令的pyc文件是否能输出right
我们可以看到 加了花指令的pyc文件 即Pz_error.pyc也是可以输出right的
因为会把加了花指令的指令直接跳过去,就导致执行是没什么问题的
但是如果调用uncompyle6来反编译出源代码的话,加了花指令的pyc文件就会报错
最下面报错的信息给我们的是 tuple index out of range 数组下标越界
我们先来得到Pz_error.pyc的字节码,然后用code.marshal,loads(f[8:])读取魔术字8位后的东西,并将其反编译,看看花指令是加在哪条指令上了
我们可以看到 JUMP_ABSOLUTE将字节码计数器设置为目标 强制跳转到18
18也就是正常指令之后
LOAD_CONST 255 我们没有加花指令的py文件 就那么点代码 哪来的255,所以明显花指令就是在这里了。
所以我们现在定位到了花指令的地方,我们要做的就是把花指令去掉 并且修改co_code长度 也就是整个pyc文件的长度
那么我们来进行第二步 读取co_code的长度
len(code.co_code)
我们可以看到是27个字节
我们把Pz_error.pyc丢进Winhex里面 那么我们该怎么在Winhex里面定位到我们所要找的花指令呢?
我们要借助python2程序里面的opcode.h工具
已知花指令是JUMP_ABSOLUTE 在opcode.h里面搜索JUMP_ABSOLUTE
113转换为16进制就是71
在Winhex里面找的71那条 因为python2是3个字节码为1个指令
接下来 我们找LOAD_CONST这条指令在opcode.h对应的数字
100对应的16进制数字就是64 255对应的16进制数就是FF
所以基本可以确定 71 12 00 64 FF 00 这六个就是我们要找的花指令
然后delete键删掉
现在我们到了第三步 修改co_code的长度
我们刚读出来Pz_error.pyc字节码长度是27 27-6=21
27对应的16进制数是1B
21对应的16进制数是15
我们在winhex里面将找的1B修改为15,然后保存,这样我们的Pz_error.pyc就修好了
现在我们来试试看uncompyle6能否反编译出来
大功告成!
网络安全日报 2024年04月18日
1、VPN软件Libreswan存在安全漏洞,影响数百万用户
https://cybersecuritynews.com/popular-vpn-software-flaw/ 流行的虚拟专用网络(VPN)软件Libreswan中存在一个严重漏洞,使数百万用户处于危险之中。该漏洞被标记为CVE-2024-3652,可能允许攻击者使受影响的系统崩溃,从而可能中断关键服务并泄露敏感数据。该漏洞影响Libreswan的3.22至4.14版本,该问题已在该软件的高版本中得到解决,Libreswan 3.0 – 3.21、4.15及更高版本以及5.0及更高版本不受该漏洞的影响。
2、Ivanti警告其Avalanche MDM中存在安全缺陷
https://www.bleepingcomputer.com/news/security/ivanti-warns-of-critical-flaws-in-its-avalanche-mdm-solution/ Ivanti近期发布了安全更新,以修复其Avalanche移动设备管理(MDM)解决方案中的27个漏洞,其中2个安全漏洞可被用于进行远程命令执行。这两个关键的安全漏洞分别是CVE-2024-24996和CVE-2024-29204。它们都是由基于堆的缓冲区溢出引起的,这些漏洞可让未经身份验证的远程攻击者在不需要用户交互的低复杂度攻击中对易受攻击的系统执行任意命令。Ivanti还
3、思科披露针对VPN及SSH服务的大规模暴力破解攻击活动
https://blog.talosintelligence.com/large-scale-brute-force-activity-targeting-vpns-ssh-services-with-commonly-used-login-credentials/ 思科警告说,攻击者正在针对全球思科、CheckPoint、Fortinet、SonicWall和Ubiquiti设备上的VPN和 SSH服务进行大规模的凭据暴力破解活动。该攻击活动中的暴力破解尝试组合使用通用用户名和特定组织的有效用户名。这些攻击的目标似乎不是针对特定地区或行业的。用于进行攻击的一些服务包括且不限于TOR、VPN
4、Chrome 124、Firefox 125 修补高严重性漏洞
https://www.securityweek.com/chrome-124-firefox-125-patch-high-severity-vulnerabilities/ Chrome 和 Firefox 安全更新解决了超过 35 个漏洞,其中包括十几个高严重性错误。
5、Cerber 勒索软件的 Linux 变体针对 Atlassian 服务器
https://securityaffairs.com/161962/cyber-crime/cerber-ransomware-cve-2023-22518-atlassian.html 威胁参与者正在利用 Atlassian 服务器中的 CVE-2023-22518 缺陷来部署 Cerber(又名 C3RB3R)勒索软件的 Linux 变体
6、研究表明,全球互联网流量竟有一半来自机器人
https://www.freebuf.com/news/398215.html 据Cyber News消息,Thales Imperva Bad Bot近期做了一份报告,显示在2023年有49.6%的互联网流量竟来自机器人,比上一年增长 2%,达到自2013年以来观察到的最高水平。
7、乌克兰黑客声称已入侵俄罗斯无人机开发商 Albatross
https://therecord.media/russia-albatross-drones-alleged-data-leak-ukraine-cyber-resistance 乌克兰黑客声称入侵了俄罗斯无人机开发商 Albatross,泄露了 100 千兆字节的数据,包括内部文档、技术数据和各种无人机的图纸。
8、Muddled Libra将勒索攻击的重点转向SaaS和云计算
https://thehackernews.com/2024/04/muddled-libra-shifts-focus-to-saas-and.html 该威胁行为者战术演变的关键方面是利用侦察技术识别管理用户,伪装成技术支持人员通过电话获取其密码时进行定位。
9、Debian 修复了多个 GTKWave 漏洞
https://tuxcare.com/blog/several-gtkwave-vulnerabilities-fixed-in-debian/ 最近,Debian 安全团队修复了 GTKWave(VCD 文件的开源波形查看器)中的几个问题。这些漏洞如果被利用,可能会导致执行任意代码,给用户带来重大风险。
10、《网络安全运维实施指南》等3项国家标准公开征求意见
https://www.secrss.com/articles/65260 全国网络安全标准化技术委员会归口的《网络安全技术 网络安全运维实施指南》等3项国家标准现已形成标准征求意见稿。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年04月17日
1、开源流处理平台Apache Kafka存在安全漏洞
https://cybersecuritynews.com/apache-kafka-security-flaw Apache Kafka是一个开源流处理平台,提供高性能的流式处理分析、数据集成和其他用途。研究人员在Apache Kafka中发现了一个新的不正确的访问控制漏洞,该漏洞可能允许攻击者破坏受影响资源上的CIA(机密性、完整性和可用性)。该漏洞被标记为CVE-2024-27309。受此漏洞影响的产品包括Apache Kafka版本3.5.0、3.5.1、3.5.2、3.6.0和3.6.1。建议使用Apache Kafka的用户升级到最新版本,以防止攻击者利用此漏洞。
2、美国环境保护署正对数据泄露事件进行调查
https://cybernews.com/news/epa-data-leak-investigation-already-public-info/ 美国环境保护署(EPA)证实,他们正在调查上周末由攻击者在黑客论坛上发布的涉嫌数据泄露的内容。该攻击者的用户名为“USDoD”,声称拥有三个EPA数据库文件,其中包含从世界各地的关键基础设施收集的联系信息。在进行初步分析后,美国环保署表示,这些数据似乎是已经向公众公开的业务联系信息。美国环保署没有提供进一步的信息,并表示他们仍在对此事进行调查。
3、沃尔玛证实其数据遭到泄露
https://cybernews.com/news/walmart-employee-data-breach/ 沃尔玛表示,一名员工在2023年9月至2024年3月期间访问了同事的就业管理账户。通过访问这些账户,该员工可能已经查看了某些工资单记录,并更改了一些员工的工资单信息,以进行工资欺诈活动。沃尔玛声称,一些敏感的员工数据可能遭到泄露,如名字、、电话号码、电子邮件地址、邮寄地址、社会安全号码、出生日期、银行帐号和路由号码。
4、LastPass公司称有攻击者对其进行Deepfake攻击
https://cybernews.com/news/password-manager-lastpass-deepfake-scam/ LastPass称他们经历了一次未遂的深度伪造攻击。该公司的一名员工收到了一系列电话、短信和至少一封语音邮件,其中包含攻击者在WhatsApp上冒充公司首席执行官卡里姆·图巴(Karim Toubba)的音频深度伪造。由于WhatsApp不是该公司常用的沟通渠道,因此此次事件引起了该员工的怀疑,并向安全团队报告了这一事件。该公司的安全团队表示,此次事件未对公司的整体安全造成影响。
5、Daixin勒索组织声称攻击Omni Hotels
https://www.bleepingcomputer.com/news/security/daixin-ransomware-gang-claims-attack-on-omni-hotels Daixin Team勒索组织声称最近对Omni Hotels & Resorts进行了网络攻击,并威胁受害者支付赎金。尽管Daixin Team现在已将这家连锁酒店添加到他们的数据泄漏站点,但攻击者尚未发布能够证实他们说法数据样本,只是称他们将很快泄露据从Omni Hotels服务器中窃取的信息。该团伙还声称窃取的数据中包括敏感数据,包括从2017年至今所有访客的记录。
6、严重的 PuTTY 漏洞允许密钥恢复
https://www.securityweek.com/critical-putty-vulnerability-allows-secret-key-recovery/ PuTTY 的开发人员发布了一个更新来修补一个可用于恢复密钥的严重漏洞。 PuTTY 是一个适用于 SSH、Telnet 和其他网络协议的开源客户端程序,支持与远程服务器的连接和文件传输。 德国波鸿鲁尔大学的两名研究人员发现,客户端和相关组件“在NIST P-521的情况下生成严重偏差的 ECDSA 随机数”,从而实现完全密钥恢复。该漏洞被追踪为CVE-2024-31497。
7、多个云平台命令行工具存在数据泄露风险
https://www.securityweek.com/cloud-users-warned-of-data-exposure-risk-from-command-line-tools/ 云安全专家发现与 Azure、AWS 和 Google Cloud 命令行工具相关的数据暴露风险。
8、iOS 间谍软件LightSpy 再次针对南亚开展间谍活动
https://securityaffairs.com/161908/intelligence/ios-spyware-lightspy-asia.html 研究人员警告称,苹果 iOS 间谍软件 LightSpy 将再次针对南亚用户发起网络间谍活动。这种复杂的移动间谍软件在沉寂几个月后重新出现,新版本的 LightSpy 被称为“F_Warehouse”,支持具有广泛间谍功能的模块化框架。
9、微软将限制Exchange Online批量电子邮件以打击垃圾邮件
https://www.bleepingcomputer.com/news/microsoft/microsoft-will-limit-exchange-online-bulk-emails-to-fight-spam/ Exchange Online 强制执行 10,000 个收件人的收件人速率限制。2,000 个 ERR 限制将成为这 10,000 个收件人速率限制内的子限制。
10、新的 SteganoAmor 攻击利用隐写术攻击全球 320 个组织
https://www.bleepingcomputer.com/news/security/new-steganoamor-attacks-use-steganography-to-target-320-orgs-globally TA558 黑客组织开展的一项新活动正在使用隐写术将恶意代码隐藏在图像内,从而将各种恶意软件工具传递到目标系统上。这些攻击从包含看似无害的文档附件(Excel 和 Word 文件)的恶意电子邮件开始,这些附件利用了 CVE-2017-11882 缺陷,这是 2017 年修复的一个常见目标 Microsoft Office 公式编辑器漏洞。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第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页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

