网络安全日报 2024年08月22日
1、Blind Eagle组织利用鱼叉式钓鱼在拉丁美洲部署木马
https://securelist.com/blindeagle-apt/113414/ 研究人员披露了一个名为“盲眼鹰”(Blind Eagle)的威胁组织,该组织长期以来在哥伦比亚、厄瓜多尔、智利、巴拿马等拉丁美洲国家进行针对性的网络攻击。盲眼鹰也被称为APT-C-36,自2018年起活跃,其攻击对象包括政府机构、金融公司以及能源和石油天然气公司。攻击的初期阶段,该组织通过压缩的ZIP文件中的Visual Basic脚本来下载下一阶段的恶意载荷,这些载荷往往经过隐写处理,隐藏在图像托管站点、Pastebin或类似服务中。最终,利用内存注入技术执行木马程序,绕过传统的防御机制。他们的活动
2、捷克用户遭遇新型银行凭证盗窃骗局
https://www.welivesecurity.com/en/eset-research/be-careful-what-you-pwish-for-phishing-in-pwa-applications/ 捷克共和国的移动用户正遭遇一种新型的钓鱼攻击,该攻击利用渐进式Web应用程序(PWA)窃取银行账户凭证。据研究人员的报告,这一攻击针对了捷克的Československá obchodní banka(CSOB)、匈牙利的OTP银行和格鲁吉亚的TBC银行。研究人员表示,攻击者通过钓鱼网站诱使iOS用户将PWA添加到主屏幕,而Android用户则需通过浏览器中的自定义弹窗确认安装这
3、数千个Oracle NetSuite站点面临泄露客户信息风险
https://appomni.com/blog/oracle-netsuite-data-exposure-analysis/ 研究人员警告发现数千个面向外部的Oracle NetSuite电子商务站点存在泄露敏感客户信息的风险。研究表明,NetSuite的SuiteCommerce平台存在潜在问题,这一问题源于对自定义记录类型(CRTs)的访问控制配置错误。虽然这并非NetSuite产品的安全漏洞,但客户配置不当会导致机密数据的泄露,包括注册用户的完整地址和手机号码。攻击者可以利用这种配置错误,通过使用NetSuite的记录和搜索API访问数据。为成功进行攻击,攻击者需知道正在使用的CR
4、丰田确认第三方数据泄露影响客户信息
https://www.bleepingcomputer.com/news/security/toyota-confirms-third-party-data-breach-impacting-customers/ 丰田公司确认其客户数据在一起第三方数据泄露事件中被暴露。黑客组织ZeroSevenGroup在一个黑客论坛上泄露了240GB的被盗数据。丰田回应称,虽然公司意识到此事件,但此次泄露并非系统全面性问题,受影响范围有限。丰田表示已与受影响方进行接触,并将提供必要的援助,但尚未公布具体发现时间、攻击途径及受影响人数。丰田北美公司发言人补充道,丰田北美系统并未遭到入侵,泄露数据来源于一个
5、严重身份验证缺陷影响GitHub Enterprise Server
https://www.securityweek.com/critical-authentication-flaw-haunts-github-enterprise-server/ GitHub 发布了针对 GitHub Enterprise Server 产品中三个安全缺陷的紧急修复程序,并警告称黑客可以利用其中一个缺陷获取网站管理员权限。
6、新型钓鱼攻击可绕过iOS和安卓安全保护窃取银行凭证
https://www.securityweek.com/new-phishing-technique-bypasses-security-on-ios-and-android-to-steal-bank-credentials/ 反恶意软件供应商 ESET 警告称,一种新的网络钓鱼策略针对 iOS 和 Android 用户,其网络应用程序模仿合法银行软件来绕过安全保护并窃取登录凭据。
7、Google Play 漏洞赏金计划即将关闭
https://www.securityweek.com/google-play-bug-bounty-program-shutting-down/ 谷歌最近开始通知参与该计划的漏洞赏金猎人,它正在逐步终止 GPSRP,并指出其决定是在看到可操作的漏洞报告减少之后做出的,“这是由于 Android 操作系统安全态势和功能强化力度的全面提升”。
8、Ubuntu 修复多个 OpenJDK 8 漏洞
https://tuxcare.com/blog/ubuntu-addresses-multiple-openjdk-8-vulnerabilities 最近,OpenJDK 8 中发现了几个漏洞,这些漏洞可能会导致拒绝服务、信息泄露、任意代码执行,甚至绕过 Java 沙盒限制。作为回应,Canonical 发布了针对多个 OpenJDK 版本的安全修复程序,包括受影响的 Ubuntu 版本上的OpenJDK 21、OpenJDK 17、OpenJDK 11和OpenJDK 8
9、FFmpeg 中发现严重堆溢出漏洞
https://securityonline.info/cve-2024-7272-critical-heap-overflow-vulnerability-discovered-in-ffmpeg-poc-published/ CVE-2024-7272 是流行多媒体框架 FFmpeg 中发现的一个严重堆溢出漏洞。该漏洞影响最高 5.1.5 版本,CVSS 评分为 8.8。
10、微软修复Copilot Studio 关键漏洞,可导致敏感数据泄露
https://thehackernews.com/2024/08/microsoft-patches-critical-copilot.html 网络安全研究人员披露了影响 Microsoft Copilot Studio 的一个严重安全漏洞,该漏洞可能被利用来访问敏感信息。该漏洞的编号为 CVE-2024-38206(CVSS 评分:8.5),被描述为源自服务器端请求伪造(SSRF)攻击的信息泄露漏洞。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年08月21日
1、Xeon Sender工具滥用云API发起大规模短信钓鱼攻击
https://www.sentinelone.com/labs/xeon-sender-sms-spam-shipping-multi-tool-targeting-saas-credentials/ 研究人员在报告上指出,恶意行为者正在利用名为Xeon Sender的云攻击工具,进行大规模的短信钓鱼和垃圾邮件活动。该工具通过合法的SaaS服务提供商发送消息,滥用诸如Amazon SNS、Nexmo、Plivo等服务。值得注意的是,这种攻击并未利用这些服务提供商的固有漏洞,而是通过合法的API进行批量短信发送。
2、新型UULoader恶意软件在东亚传播Gh0st RAT
https://cyberint.com/blog/research/meet-uuloader-an-emerging-and-evasive-malicious-installer/ 研究人员发现一种名为UULoader的新型恶意软件,该软件用于分发Gh0st RAT和Mimikatz等恶意工具。UULoader以合法应用程序的恶意安装程序形式传播,主要针对韩国和中文用户。分析显示,这种恶意软件可能由中文使用者开发,因为其程序数据库(PDB)文件中含有中文字符串。UULoader的核心文件被打包在一个Microsoft Cabinet存档(.cab)文件中,其中包含两个主要的可执行文件(
3、多个macOS版Microsoft 应用程序易受库注入攻击
https://www.darkreading.com/remote-workforce/multiple-microsoft-apps-for-macos-vuln-to-malicious-library-injection-attacks 微软已将此问题归类为低严重性,并且尚未发布任何修复程序,Teams 和 OneNote 应用程序除外。Excel、Outlook、PowerPoint 和 Word 应用程序仍然容易受到攻击。
4、严重Jenkins 漏洞可能被利用于勒索软件攻击
https://thehackernews.com/2024/08/cisa-warns-of-critical-jenkins.html 继勒索软件攻击利用该漏洞之后,美国网络安全和基础设施安全局 (CISA) 将影响 Jenkins 的严重安全漏洞添加到其已知利用漏洞 ( KEV ) 目录中。该漏洞的编号为CVE-2024-23897(CVSS 评分:9.8),是一个路径遍历缺陷,可能导致代码执行。
5、数千个 Oracle NetSuite 站点面临泄露客户信息的风险
https://thehackernews.com/2024/08/thousands-of-oracle-netsuite-sites-at.html 网络安全研究人员警告称,发现数千个面向外部的 Oracle NetSuite 电子商务网站容易泄露敏感客户信息。AppOmni 的 Aaron Costello表示:“NetSuite 的 SuiteCommerce 平台存在一个潜在问题,由于自定义记录类型 (CRT) 的访问控制配置错误,攻击者可能能够访问敏感数据。”
6、研究人员发现针对 Azure K8S集群的TLS Bootstrap攻击
https://thehackernews.com/2024/08/researchers-uncover-tls-bootstrap.html 网络安全研究人员披露了一个影响 Microsoft Azure Kubernetes 服务的安全漏洞,如果成功利用该漏洞,攻击者可以提升其权限并访问集群使用的服务的凭据。谷歌旗下的 Mandiant 表示:“在受影响的 Azure Kubernetes 服务集群内运行的 Pod 中执行命令的攻击者可以下载用于配置集群节点的配置,提取传输层安全性 (TLS) 引导令牌,并执行 TLS 引导攻击来读取集群内的所有机密。 ”
7、黑客利用 PHP 漏洞部署隐秘的 Msupedge 后门
https://thehackernews.com/2024/08/hackers-exploit-php-vulnerability-to.html 据称,可能有助于部署 Msupedge 的初始访问载体涉及利用最近披露的影响 PHP 的严重漏洞(CVE-2024-4577,CVSS 评分:9.8),该漏洞可用于实现远程代码执行。
8、数百万张 RFID 卡存在重大漏洞,可实现即时克隆
https://www.securityweek.com/major-backdoor-in-millions-of-rfid-cards-allows-instant-cloning/ 法国安全服务公司 Quarkslab 发现中国领先的芯片制造商上海复旦微电子集团生产的数百万张非接触式卡中存在重要漏洞。可让用于开启世界各地办公室门和酒店房间的 RFID 智能卡被瞬间克隆。
9、GiveWP WordPress 插件严重漏洞影响数十万个网站
https://www.securityweek.com/critical-flaw-in-donation-plugin-exposed-100000-wordpress-sites-to-takeover/ GiveWP WordPress 插件中存在一个严重漏洞,可被利用来执行远程代码和任意文件删除。
10、F5 修补 BIG-IP、NGINX Plus 中的高严重性漏洞
https://www.securityweek.com/f5-patches-high-severity-vulnerabilities-in-big-ip-nginx-plus/ F5 最新的季度安全通知包含九条警告,其中四条针对 BIG-IP 和 NGINX Plus 中的高严重漏洞。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年08月20日
1、攻击者仿冒WACC赛事网站钓鱼传播恶意软件
https://cyble.com/blog/world-agricultural-cycling-competition-wacc-participants-targeted-for-havoc-c2-dissemination/ 研究人员发现一个仿冒“世界农业自行车比赛”(WACC)官方网站的钓鱼网站。这一伪造网站通过轻微的修改,难以与真实网站区分,意图欺骗不明真相的访客。
2、FIN7网络犯罪集团新基础设施曝光
https://www.team-cymru.com/post/fin7-the-truth-doesn-t-need-to-be-so-stark 研究人员发现了与FIN7网络犯罪集团相关的新基础设施。这些基础设施由来自俄罗斯的Post Ltd和爱沙尼亚的SmartApe提供,表明FIN7通过这些IP地址进行通信。最新的分析显示,这些主机可能是通过Stark的经销商采购的。研究发现,FIN7的基础设施与至少15个Stark分配的主机和16个其他主机进行了通信。Stark在负责任的披露后已暂停这些服务。
3、研究人员揭露CryptoCore诈骗集团复杂的加密货币诈骗活动
https://decoded.avast.io/martinchlumecky1/cryptocore-unmasking-the-sophisticated-cryptocurrency-scam-operations/ 随着数字货币的快速增长,加密货币诈骗也日益猖獗,对投资者和用户构成了重大风险。CryptoCore是一个以其复杂手法著称的诈骗集团,利用深度伪造技术和被劫持的YouTube账户,通过伪造的名人视频和精心设计的网站来欺骗受害者。这些诈骗常以高额回报的承诺吸引目标,利用人工智能和虚假视频来提高欺骗的可信度。CryptoCore利用这些技术通过各大平台进行诈骗,包括曾经劫持过
4、微软修复了朝鲜APT组织Lazarus利用的零日漏洞
https://thehackernews.com/2024/08/microsoft-patches-zero-day-flaw.html 微软修复了一个被朝鲜国家赞助的Lazarus集团利用的零日漏洞,该漏洞被追踪为CVE-2024-38193,CVSS评分为7.8。该漏洞存在于Windows Ancillary Function Driver(AFD.sys)中,允许攻击者通过特权升级获取SYSTEM权限。该漏洞在2024年6月被发现,并在微软的Patch Tuesday更新中得到修复。
5、Rhysida以5比特币拍卖《华盛顿时报》内部文件
https://www.securitylab.ru/news/551155.php 《华盛顿时报》成为了最新的Rhysida勒索软件攻击受害者,攻击者计划在暗网拍卖这家报纸的被盗数据,起拍价为5比特币,相当于292030美元。Rhysida给出了七天的准备时间,并发布了部分被盗数据样本,包括公司文件、银行对账单、员工文件、德克萨斯州驾驶执照复印件和社会保障卡。
6、出于"国家安全"考虑,美国议员要求对TP-Link 展开调查
https://www.securityweek.com/us-lawmakers-want-investigation-into-tp-link-over-chinese-hacking-fears/ 议员们希望网络巨头 TP-Link 接受商务部的调查,因为担心该公司的 Wi-Fi 路由器可能让中国轻松访问美国系统。
7、网络犯罪分子利用热门软件搜索传播 FakeBat 恶意软件
https://thehackernews.com/2024/08/cybercriminals-exploit-popular-software.html 网络安全研究人员发现,恶意软件感染激增源于传播一种名为 FakeBat 的加载程序的恶意广告活动。
8、WPS Office两个严重漏洞曝光,已被在野利用
https://www.freebuf.com/news/408961.html WPS Office作为一款用户基数超过2亿的广泛使用的办公套件,被发现存在两个关键漏洞(CVE-2024-7262和CVE-2024-7263),这些漏洞可能导致用户遭受远程代码执行攻击。这两个漏洞的CVSS评分为9.3,表明它们的严重性很高,且易于被利用。其中CVE-2024-7262已经被武器化,ESET的安全研究人员发现它正在野外被积极利用。
9、X私自用6000万用户数据训练大模型,或面临大规模诉讼
https://www.secrss.com/articles/69159 据NOYB称,X公司未经告知或征得用户同意,擅自使用超过6000万欧洲用户个人数据训练其大型语言模型“Grok”,这一行为严重违反了GDPR原则。
10、2024上半年勒索软件受害企业至少支付了32亿元赎金
https://www.secrss.com/articles/69242 安全内参8月16日消息,最新报告显示,2024年上半年勒索软件攻击者从受害者那里敲诈了超过4.59亿美元(约合人民币32.93亿元)。这表明勒索软件危机日益严重,影响了从大型企业到地方政府和医院的所有组织。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
LLVM IR 深入研究分析
前置知识
LLVM是C++编写的构架编译器的框架系统,可用于优化以任意程序语言编写的程序。
LLVM IR可以理解为LLVM平台的汇编语言,所以官方也是以语言参考手册(Language Reference Manual)的形式给出LLVM IR的文档说明。既然是汇编语言,那么就和传统的CUP类似,有特定的汇编指令集。但是它又与传统的特定平台相关的指令集(x86,ARM,RISC-V等)不一样,它定位为平台无关的汇编语言。也就是说,LLVM IR是一种相对于CUP指令集高级,但是又是一种低级的代码中间表示(比抽象语法树等高级表示更加低级)。
LLVM IR即代码的中间表示,有三种形式:
.ll 格式:人类可以阅读的文本(汇编码) -->这个就是我们要学习的IR
.bc 格式:适合机器存储的二进制文件
内存表示
下面给出.ll格式和.bc格式生成及相互转换的常用指令清单:
.c -> .ll:clang -emit-llvm -S a.c -o a.ll
.c -> .bc: clang -emit-llvm -c a.c -o a.bc
.ll -> .bc: llvm-as a.ll -o a.bc
.bc -> .ll: llvm-dis a.bc -o a.ll
.bc -> .s: llc a.bc -o a.s
那么我们以一道CTF赛题来分析实验,学习LLVM IR
实验解析
题目附件直接给出了中间表示.II文件
打开查看一下汇编码,毕竟.II文件是人类可以阅读的文本,这边笔者使用的是Sublime Text(使用VScode查看即可)代码量不多,大概600行
题目初步分析
我们直接寻找一下main函数
我们可以看出题目经历了两次RC4,然后Base64,我们从上面可以看到密文,RC4_key,我们直接一把锁,cyberchef启动,会发现解不出来,那么程序应该做了其他的操作,最朴素的,我们可以想到把RC4魔改了,base64魔改等等。
So!继续学习研究ing
.II详细分析
所以本着学习的态度,我们这时候应该掏出LLVM Language Reference Manual(官方文档)来简单了解学习一些常见指令、符号标识以及特性。这边给出一些分析 .ll 中间文件的算法流程
@ - 全局变量
% - 局部变量
alloca - 在当前执行的函数的堆栈帧中分配内存,当该函数返回到其调用者时,将自动释放内存
i32 - 32位4字节的整数
align - 对齐
load - 读出,store写入
icmp - 两个整数值比较,返回布尔值
br - 选择分支,根据条件来转向label,不根据条件跳转的话类型goto
label - 代码标签
call - 调用函数
首先看到一些全局变量,知道了RC4_key = llvmbitccipher = "TSzkWKgbMHszXaj@kLBmRrnTxsNtZsSOtZzqYikCw="
我们继续分析,重点分析各个function
b64encode
b64encode 魔改
每三个字符,24位,切分成4断,每段6位。
将6位对应的值 (value+ 59)&0xff 则是编码后的值。
%22 = getelementptr inbounds i8, i8* %19, i64 %21 // 取出当前处理字符
%23 = load i8, i8* %22, align 1
%24 = zext i8 %23 to i32 // 类型强制转化
%25 = ashr i32 %24, 2 // 算数右移两位 input[i]>>2
%26 = add nsw i32 %25, 59 // input[i]+59
%27 = trunc i32 %26 to i8 // 强制转化 相当于 &0xff
%28 = load i8*, i8** %6, align 8
%29 = load i32, i32* %9, align 4
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds i8, i8* %28, i64 %30 // 存储base64 编码串
store i8 %27, i8* %31, align 1
%32 = load i8*, i8** %4, align 8
%33 = load i32, i32* %7, align 4
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds i8, i8* %32, i64 %34
%36 = load i8, i8* %35, align 1
%37 = zext i8 %36 to i32
%38 = and i32 %37, 3 // 获取第一个字符 低两位
%39 = shl i32 %38, 4 // 左移四位
RC4_init
RC4_init 正常,无魔改
define dso_local void @Rc4_Init(i8*, i32) #0 { //RC4_init function
%3 = alloca i8*, align 8
%4 = alloca i32, align 4
%5 = alloca i32, align 4
%6 = alloca i32, align 4
store i8* %0, i8** %3, align 8
store i32 %1, i32* %4, align 4 //初始化S,T盒
call void @llvm.memset.p0i8.i64(i8* align 16 getelementptr inbounds ([256 x i8], [256 x i8]* @s, i64 0, i64 0), i8 0, i64 256, i1 false)
call void @llvm.memset.p0i8.i64(i8* align 16 getelementptr inbounds ([256 x i8], [256 x i8]* @t, i64 0, i64 0), i8 0, i64 256, i1 false)
store i32 0, i32* %5, align 4
br label %7
7: ; preds = %26, %2
%8 = load i32, i32* %5, align 4
%9 = icmp slt i32 %8, 256
br i1 %9, label %10, label %29 //如果 %9 为真(即 %8 小于 256),跳转到标签 %10;否则跳转到标签 %29,根据t打乱s盒
10: ; preds = %7
%11 = load i32, i32* %5, align 4
%12 = trunc i32 %11 to i8
%13 = load i32, i32* %5, align 4
%14 = sext i32 %13 to i64
%15 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %14
store i8 %12, i8* %15, align 1
%16 = load i8*, i8** %3, align 8
%17 = load i32, i32* %5, align 4
%18 = load i32, i32* %4, align 4
%19 = urem i32 %17, %18
%20 = zext i32 %19 to i64
%21 = getelementptr inbounds i8, i8* %16, i64 %20
%22 = load i8, i8* %21, align 1
%23 = load i32, i32* %5, align 4
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [256 x i8], [256 x i8]* @t, i64 0, i64 %24
store i8 %22, i8* %25, align 1
br label %26
26: ; preds = %10
%27 = load i32, i32* %5, align 4
%28 = add nsw i32 %27, 1
store i32 %28, i32* %5, align 4
br label %7
29: ; preds = %7
store i32 0, i32* %6, align 4
store i32 0, i32* %5, align 4
br label %30
30: ; preds = %54, %29
%31 = load i32, i32* %5, align 4
%32 = icmp slt i32 %31, 256
br i1 %32, label %33, label %57
33: ; preds = %30
%34 = load i32, i32* %6, align 4
%35 = load i32, i32* %5, align 4
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %36
%38 = load i8, i8* %37, align 1
%39 = zext i8 %38 to i32
%40 = add nsw i32 %34, %39
%41 = load i32, i32* %5, align 4
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [256 x i8], [256 x i8]* @t, i64 0, i64 %42
%44 = load i8, i8* %43, align 1
%45 = zext i8 %44 to i32
%46 = add nsw i32 %40, %45
%47 = srem i32 %46, 256
store i32 %47, i32* %6, align 4
%48 = load i32, i32* %5, align 4
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %49
%51 = load i32, i32* %6, align 4
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %52
call void @swap(i8* %50, i8* %53) //call swap function
br label %54
RC4_enc
RC4_enc 魔改 多了一层xor 89
define dso_local void @Rc4_Encrypt(i8*, i32) #0 { //RC4_enc function
%3 = alloca i8*, align 8
%4 = alloca i32, align 4
%5 = alloca i8, align 1
%6 = alloca i8, align 1
%7 = alloca i8, align 1
%8 = alloca i8, align 1
store i8* %0, i8** %3, align 8
store i32 %1, i32* %4, align 4
store i8 0, i8* %6, align 1
store i8 0, i8* %7, align 1
store i8 0, i8* %8, align 1
br label %9
9: ; preds = %14, %2
%10 = load i8, i8* %8, align 1
%11 = zext i8 %10 to i32
%12 = load i32, i32* %4, align 4
%13 = icmp ult i32 %11, %12
br i1 %13, label %14, label %64
14: ; preds = %9
%15 = load i8, i8* %6, align 1
%16 = zext i8 %15 to i32
%17 = add nsw i32 %16, 1
%18 = srem i32 %17, 256
%19 = trunc i32 %18 to i8
store i8 %19, i8* %6, align 1
%20 = load i8, i8* %7, align 1
%21 = zext i8 %20 to i32
%22 = load i8, i8* %6, align 1
%23 = zext i8 %22 to i64
%24 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %23 //生成密钥流
%25 = load i8, i8* %24, align 1
%26 = zext i8 %25 to i32
%27 = add nsw i32 %21, %26
%28 = srem i32 %27, 256
%29 = trunc i32 %28 to i8
store i8 %29, i8* %7, align 1
%30 = load i8, i8* %6, align 1
%31 = zext i8 %30 to i64
%32 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %31
%33 = load i8, i8* %7, align 1
%34 = zext i8 %33 to i64
%35 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %34 //经典Swap了再加
call void @swap(i8* %32, i8* %35)
%36 = load i8, i8* %6, align 1
%37 = zext i8 %36 to i64
%38 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %37
%39 = load i8, i8* %38, align 1
%40 = zext i8 %39 to i32
%41 = load i8, i8* %7, align 1
%42 = zext i8 %41 to i64
%43 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %42
%44 = load i8, i8* %43, align 1
%45 = zext i8 %44 to i32
%46 = add nsw i32 %40, %45
%47 = srem i32 %46, 256
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [256 x i8], [256 x i8]* @s, i64 0, i64 %48
%50 = load i8, i8* %49, align 1
store i8 %50, i8* %5, align 1
%51 = load i8, i8* %5, align 1
%52 = zext i8 %51 to i32
%53 = xor i32 %52, 89 //xor 89
%54 = load i8*, i8** %3, align 8
%55 = load i8, i8* %8, align 1
%56 = zext i8 %55 to i64
%57 = getelementptr inbounds i8, i8* %54, i64 %56
%58 = load i8, i8* %57, align 1
%59 = zext i8 %58 to i32
%60 = xor i32 %59, %53 //xor k
%61 = trunc i32 %60 to i8
store i8 %61, i8* %57, align 1
%62 = load i8, i8* %8, align 1
%63 = add i8 %62, 1
store i8 %63, i8* %8, align 1
br label %9
64: ; preds = %9
ret void
}
main
main函数逻辑cipher -->RC4_init-->RC4_enc-->RC4_enc-->b64encode需要注意一下在RC4_enc的参数中,传入的数据块长度是固定的16,所以说程序进行两次RC4_enc的原因也就确定了,是为了分两次对程序进行加密,也算是一点点小手段,总之,即使让你好好分析.II代码,考察对软件分析的细节,耐心,嘻嘻。
OK,理清楚逻辑,就可以试着敲代码解密啦。
解密
逆向分析过程明了之后,那么写代码就简单多了
#include<stdio.h>
unsigned char s[300],t[300];
void b64decode(unsigned char * enc,unsigned char* dec);
void Rc4_dec1(int len, unsigned char *enc);
void Rc4_Init(char *key,int len);
void Rc4_dec2(int len, unsigned char *enc);
int main() {
unsigned char enc[50]="TSz`kWKgbMHszXaj`@kLBmRrnTxsNtZsSOtZzqYikCw=";
unsigned char dec1[50]={0x00};
char key[10] ="llvmbitc";
unsigned char a[50];
int i=0;
b64decode(enc,dec1);
Rc4_Init(key,8);
Rc4_dec1(16,&dec1[16]);
for(i=0;i<16;i++) {
dec1[i+16]^=dec1[i];
}
Rc4_Init(key,8);
Rc4_dec2(16,dec1);
printf("%s",dec1);
return 0;
}
void b64decode(unsigned char * enc,unsigned char* dec) {
int i=0,j=0;
for(i=0;i<40;i+=4) {
dec[j] = ((enc[i]-59)<<2)&0xfc | (((enc[i+2]-59)>>4))&3;
dec[j+1] = (((enc[i+2]-59)&0xf)<<4) | (((enc[i+1]-59)>>2)&0xf);
dec[j+2] = (((enc[i+1]-59)&3)<<6) | ((enc[i+3]-59)&0x3f);
j+=3;
}
dec[j] = ((enc[i]-59)<<2)&0xfc | (((enc[i+1]-59)>>4))&3;
dec[j+1] = (((enc[i+2]-59)>>2)&0xf) | (((enc[i+1]-59)<<4)&0xf0);
dec[j+2]=0;
}
void Rc4_Init(char *key,int len) {
int i=0,v5=0;
unsigned char temp;
for(i=0;i<256;i++) {
s[i] =i;
t[i] = key[i%len];
}
for(i=0;i<256;i++) {
v5=(s[i]+t[i]+v5)%256;
temp = s[i];
s[i]= s[v5];
s[v5]=temp;
}
}
void Rc4_dec1(int len, unsigned char *enc) {
int v3=0,v5=0,i,j;
unsigned char temp;
for(i=0;i<len;i++) {
v3=(v3+1)%256;
v5=(s[v3]+v5)%256;
temp=s[v3];
s[v3]=s[v5];
s[v5]=temp;
}
v5=v3=0;
for(i=0;i<len;i++) {
v3=(v3+1)%256;
v5 = (s[v3]+v5)%256;
temp = s[v3];
s[v3]=s[v5];
s[v5]=temp;
enc[i]^=s[(s[v5]+s[v3])%256]^0x59;
}
}
void Rc4_dec2(int len, unsigned char *enc) {
int v3=0,v5=0,i,j;
unsigned char temp;
v5=v3=0;
for(i=0;i<len;i++) {
v3=(v3+1)%256;
v5 = (s[v3]+v5)%256;
temp = s[v3];
s[v3]=s[v5];
s[v5]=temp;
enc[i]^=s[(s[v5]+s[v3])%256]^0x59;
}
}
flag{Hacking_for_fun@reverser$!}
总结
通过这么一道CTF题目,深入学习LLVM IR的冰山一角,认真实验,细细分析,相信会对你有极大帮助。当然,如果单从解题来说,对于解决这道题有很多的办法,比如说将.II转化为可执行文件,然后IDA分析,但我们旨在学习LLVM IR,这里不再过多赘述。
网络安全日报 2024年08月19日
1、AutoCanada披露网络攻击影响内部IT系统
https://investors.autocan.ca/2024/08/autocanada-announces-cybersecurity-incident/ AutoCanada近日遭遇网络攻击,影响了该汽车经销商集团的内部IT系统。该公司立即采取了措施以保护其网络和数据,并聘请了外部网络安全专家协助进行控制和修复工作。目前的调查尚未确定是否有数据在此次事件中被泄露。AutoCanada表示,尽管“业务运营目前仍在进行中,但事件可能会导致相关系统恢复期间的运营中断。”AutoCanada是一家大型汽车经销商,拥有超过4700名员工,运营66家在加拿大的特许经销商,涵盖25个汽车品牌,同
2、SolarWinds发布Web Help Desk关键漏洞修复补丁
https://security.paloaltonetworks.com/CVE-2024-5914 2024年8月15日,SolarWinds已发布补丁以修复其Web Help Desk软件中的一个关键安全漏洞,该漏洞可能被利用来在受影响的实例上执行任意代码。此漏洞被标记为CVE-2024-28986,CVSS评分为9.8,属于反序列化漏洞。SolarWinds在公告中指出,这一Java反序列化远程代码执行漏洞如果被攻击者利用,可能允许其在主机上执行命令。尽管报告显示该漏洞为未经身份验证的漏洞,但SolarWinds在彻底测试后未能在未经身份验证的情况下重现该漏洞。这一漏洞影响Solar
3、新恶意软件针对macOS的100多种浏览器扩展进行攻击
https://www.elastic.co/security-labs/beyond-the-wail 2024年8月16日,研究人员发现了一种新型的恶意软件——Banshee Stealer,该软件专门针对Apple的macOS系统。Banshee Stealer在网络黑市上的售价高达每月3000美元,支持x86_64和ARM64架构。该恶意软件具有广泛的攻击能力,能够针对包括Google Chrome、Mozilla Firefox、Brave等在内的多种浏览器以及大约100种浏览器扩展和多种加密货币钱包进行攻击。它还能够收集系统信息、iCloud Keychain密码和Notes数据
4、多阶段ValleyRAT利用高级战术针对用户展开攻击
https://www.fortinet.com/blog/threat-research/valleyrat-campaign-targeting-chinese-speakers 研究人员揭示了一项针对用户的复杂恶意软件攻击活动。该活动使用了名为ValleyRAT的多阶段恶意软件,具有高度的隐蔽性和攻击性。ValleyRAT通过各种技术监控和控制受害者,并通过在内存中直接执行shellcode减少了其在系统中的文件足迹。攻击过程始于伪装成合法应用程序的第一阶段加载程序,例如“工商年报大师.exe”或“补单对接更新记录txt.exe”。执行这些伪装文件后,恶意shellcode被加载并进入
5、阿拉巴马心脏科诊所数据泄露影响28.1万患者
https://www.acgsecurityincident.com/ 阿拉巴马心脏科集团(Alabama Cardiology Group)近期披露,约28.1万名当前及过去的患者、医生和员工的敏感信息遭遇黑客攻击。该集团隶属于Grandview医疗中心,涉及的敏感数据包括个人身份信息、社会保险号、健康保险信息、用户名及密码等,甚至包括金融信息如信用卡和银行账户信息。黑客攻击发生在2023年6月6日至7月2日之间,攻击者通过网络服务器获得了这些信息。阿拉巴马心脏科集团在7月2日发现网络遭到未授权访问后,将网络与互联网断开,并随即通知了执法部门和联邦监管机构。专家指出,此次攻击可能与凭证滥
6、黑客利用Azure和Google搜索传播虚假信息与恶意软件
https://www.bleepingcomputer.com/news/security/azure-domains-and-google-abused-to-spread-disinformation-and-malware/ 研究人员报道了一个新兴的虚假信息传播活动,涉及多个Microsoft Azure和OVH云子域名以及Google搜索。这一活动利用Android手机上的Google搜索通知,诱导用户点击虚假的信息链接,进而引导他们访问伪装成资讯文章的欺诈网站。这些网站不仅散布有关名人的虚假健康谣言,还通过重定向用户到含有恶意软件、垃圾信息和伪造软件的网站来实施攻击。多个名人如哈
7、攻击者利用暴露的.env 文件入侵云账户进行勒索
https://thehackernews.com/2024/08/attackers-exploit-public-env-files-to.html 一场大规模勒索活动利用包含与云和社交媒体应用程序相关的凭据的可公开访问的环境变量文件 (.env),危害了各个组织。
8、Google Pixel预装应用存在漏洞,数百万设备面临风险
https://thehackernews.com/2024/08/google-pixel-devices-shipped-with.html 自 2017 年 9 月起在全球发售的 Google Pixel 设备被发现预装了一个名为 Showcase.apk 的应用程序,这使得它们容易受到潜在攻击和恶意软件感染。
9、CISA警告Vonets WiFi 存在严重漏洞,尚无可用补丁
https://securityonline.info/cisa-warns-critical-vulnerabilities-in-vonets-wifi-bridge-devices-no-patch-available/ 这些漏洞可能允许攻击者执行任意代码、泄露敏感信息或破坏设备功能,对依赖这些设备的工业和商业网络构成重大威胁。
10、英国一核设施曝严重网络安全缺陷,已造成国家安全威胁
https://www.secrss.com/articles/69143 英国塞拉菲尔德核设施承认违规行为可能威胁国家安全,目前正等待最终判决,这是首个因IT安全问题被起诉的核设施。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
2024网安高峰论坛 | 蚁景科技获首批“长沙市网络安全工匠培养基地”
8月9日至10日,2024网络安全技术创新与人才教育高峰论坛在长沙隆重召开。中国工程院院士方滨兴、杨宏、孔志印,以及来自全国各地的500多名网络安全领域的专家、学者、企业界人士汇聚一堂,聚焦网络空间安全领域面临的新兴技术安全挑战和人才缺乏现状,开展交流研讨。
本次高峰论坛由中国网络空间新兴技术安全创新论坛(新安盟)、中国网络空间安全人才教育论坛(网教盟)、国务院学位办网络空间安全学科评议组和广州大学联合举办。湖南蚁景科技有限公司作为“新安盟”和“网教盟”的成员单位,受邀出席了本次大会。
新安盟、网教盟理事长,中国工程院方滨兴院士
主论坛上,方滨兴院士详细介绍了“方班研讨厅”教学模式。“方班研讨厅”由方滨兴院士设计并全程参与教学,采用“学生讲、师生问、专家评”的课堂形式,致力于更好地培养网络空间安全相关专业人才。自2018年9月在广州大学开设第一期研究生班以来,已陆续扩展至40多所高校,数十名院士参与教学。
孔志印院士分享了对网络安全人才培养教育的认识。数字化时代,网络安全已经成为国家安全、经济安全和社会安全的重要组成部分。新兴技术不断应用,网络攻击的手段和方式也愈加多样化和复杂化。对于网安人才培养需注重融合、注重实效、扩展视野,方班在这些方面已经开展了大量创新探索与实践,对于推动网络安全领域的教育和产业发展具有重要意义。
蚁景科技还出席了本次大会的“网络安全人才培养与认证分论坛”,并参与多项议程。在长沙市网络安全工匠基地授牌仪式上,长沙市工信局人工智能与数字产业处处长熊菁为湖南蚁景科技有限公司授予了首批“长沙市网络安全工匠培养基地”荣誉牌匾。蚁景科技将进一步发挥自身在网安实战技能培养领域的专长,不断推动网安工匠基地实战型网络安全人才培养,助力网安技能队伍建设。
本次高峰论坛探讨了网络空间安全产业发展与技术创新,分享了网络空间安全学科建设、人才培养经验和模式。为与会者提供了一个深入了解网络空间安全技术前沿发展趋势、人才培养教育创新实践的平台,也进一步促进了产学研用深度融合交流。
未来,蚁景科技将汇聚产、学、研、用多方力量,用工匠精神和创新思路与业界共建网络安全人才培养新生态,为网络安全人才培养贡献力量。
网络安全日报 2024年08月16日
1、Gafgyt僵尸网络新变种通过SSH攻击入侵主机进行挖矿
https://www.aquasec.com/blog/gafgyt-malware-variant-exploits-gpu-power-and-cloud-native-environments/ 研究人员发现了一种Gafgyt僵尸网络新变种,该变种通过弱SSH密码攻击机器,最终利用被攻陷实例的GPU计算能力进行加密货币挖矿。最新的攻击链涉及暴力破解SSH服务器的弱密码,以部署下一阶段的有效载荷,促进使用“systemd-net”的加密货币挖矿攻击,但在此之前会终止已在被攻陷主机上运行的竞争性恶意软件。它还执行一个蠕虫模块,一个基于Go的SSH扫描器名为ld-musl-x86,负责扫描
2、Windows TCP/IP RCE会影响所有启用IPv6的系统
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38063 微软在最近的安全公告中强调了一个严重的TCP/IP远程代码执行漏洞,该漏洞可能影响所有启用IPv6的Windows系统。昆仑实验室的XiaoWei发现了这一漏洞,并追踪为CVE-2024-38063。微软警告用户,攻击者可以利用这一漏洞执行任意代码,且攻击的复杂度较低。微软还指出,由于过去有类似漏洞被利用的案例,这一新发现的漏洞更有可能吸引攻击者,并可能被快速利用。因此,微软建议用户立即应用安全更新,以防止潜在的攻击。对于那些无法立即更新的用户,微软建议作
3、GitHub漏洞“ArtiPACKED”导致存储库面临被接管的风险
https://unit42.paloaltonetworks.com/github-repo-artifacts-leak-tokens/ 研究人员最近揭露了一个名为“ArtiPACKED”的GitHub漏洞,该漏洞可能允许攻击者接管代码库并访问组织的云环境。该漏洞通过配置错误和安全漏洞的结合,导致令牌泄露,包括GitHub令牌,使得恶意行为者能够未授权地访问代码库,并通过CI/CD工作流程污染源代码。GitHub的工件允许用户在工作流程中共享数据,这些数据在完成后可保留90天,包括构建和日志文件等。该漏洞还暴露了一个未记录的环境变量ACTIONS_RUNTIME_TOKEN,攻击者可能利
4、RansomHub勒索攻击者武器库新增"EDRKillShifter"破坏工具
https://news.sophos.com/en-us/2024/08/14/edr-kill-shifter/ 研究人员近日发现,一名犯罪团伙在对一组织发起名为RansomHub的勒索软件攻击时,尝试部署了一款新型的EDR(端点检测和响应)破坏工具“EDRKillShifter”。虽然这次勒索软件攻击没有成功,但事后分析揭露了这一专为终止端点保护软件而设计的工具。
5、GitHub正式推出Copilot Autofix帮助开发人员修复代码漏洞
https://www.securityweek.com/github-makes-copilot-autofix-generally-available/ 代码托管平台 GitHub 周二宣布推出 Copilot Autofix,这是一项由人工智能驱动的漏洞修复功能,旨在帮助开发人员更快地解决代码中的错误。Copilot Autofix现已在 GitHub Advanced Security (GHAS) 中正式推出,它可以分析拉取请求中发现的安全缺陷,并提供解释和修复建议。开发人员可以忽略、编辑或提交建议。
6、研究人员发现 Microsoft Outlook 的新漏洞
https://www.infosecurity-magazine.com/news/research-uncovers-new-microsoft/ 安全研究人员在 Microsoft Outlook 中发现了一个新漏洞,标记为 CVE-2024-38173,CVSS 评分为 6.7。此表单注入 RCE 漏洞与 2024 年 7 月修补的先前漏洞 CVE-2024-30103 类似。
7、SolarWinds 在披露严重 RCE 漏洞后敦促用户升级
https://www.infosecurity-magazine.com/news/solarwinds-upgrade-critical-rce-bug/ SolarWinds 建议客户升级其 Web Help Desk 平台,因为 Inmarsat 政府研究人员发现了一个严重漏洞 CVE-2024-28986。该漏洞允许通过 Java 反序列化执行远程代码。
8、腾讯回应14亿泄露不属实,黑产利用历史资料拼凑、注水而成
https://www.ithome.com/0/788/376.htm 外媒 HackRead 于 13 日报道称,名为“Fenice”的黑客于 8 月 6 日在暗网论坛上泄露 27 亿美国用户(此前称为 29 亿)社保信息之后,再次发帖曝料称手握 14 亿腾讯用户账号信息。该黑客声称窃取了海量数据库,其中包括 14 亿条 Tencent.com 相关的记录,压缩数据容量为 44GB,解压之后将达到 500GB。
9、谷歌挫败了与伊朗有关的 APT42 发起的黑客活动
https://securityaffairs.com/167095/security/google-disrupted-apt48-hacking-campaign.html 谷歌挫败了与伊朗有关的 APT 组织 APT42 针对美国总统大选发起的黑客攻击活动。
10、2024 年第二季度针对工业企业的勒索软件攻击激增
https://www.securityweek.com/ransomware-attacks-on-industrial-firms-surged-in-q2-2024/ Dragos 发现 2024 年第二季度针对工业组织的勒索软件攻击与上一季度相比显著增加。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年08月15日
1、SAP严重漏洞可使远程攻击者绕过身份验证
https://support.sap.com/en/my-support/knowledge-base/security-notes-news/august-2024.html 2、研究人员发现AI驱动的Azure Health Bot存在严重漏洞
https://www.tenable.com/blog/compromising-microsofts-ai-healthcare-chatbot-service 研究人员在微软的Azure Health Bot服务中发现了两个安全漏洞,这些漏洞如果被利用,可能允许恶意行为者在客户环境中实现横向移动并访问敏感的患者数据。这些关键问题现已被微软修复。
3、Windows SmartScreen绕过漏洞自3月以来被攻击者利用
https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38213 微软披露了一项被攻击者利用的Mark of the Web(MotW)安全绕过漏洞,并在2024年6月的补丁星期二中进行了修复。该漏洞(CVE-2024-38213)允许攻击者绕过SmartScreen保护。尽管该漏洞可以被未认证的威胁行为者通过低复杂度攻击远程利用,但需要用户交互,使得成功利用变得更加困难。攻击者需要向用户发送恶意文件并说服他们打开它。研究人员发现该漏洞从2024年3月起在野外被利用,并向微软报告。微软在6月的补丁星期二中修补了该漏洞,
4、勒索软件攻击导致Kootenai Health 40多万患者数据泄露
https://www.maine.gov/agviewer/content/ag/985235c7-cb95-4be2-8792-a1252b4f8318/e7d7e967-7420-4ed1-878b-e2f6916c5ad0.html Kootenai Health披露了一起数据泄露事件,导致超过464000名患者的个人信息被3AM勒索软件团伙盗取并泄露。Kootenai Health是位于爱达荷州的非营利医疗服务提供商,运营着该地区最大的医院,提供急诊、手术、癌症治疗、心脏护理和骨科等广泛的医疗服务。
5、英特尔、AMD发布安全补丁修复超过 110 个漏洞
https://www.securityweek.com/chipmaker-patch-tuesday-intel-amd-address-over-110-vulnerabilities/ 英特尔和 AMD 已分别向客户通报其产品中发现并修补的数十个漏洞。 英特尔发布了 43 条新公告,共涵盖约 70 个安全漏洞。其中 9 条公告描述了高严重性漏洞。AMD在周二补丁日发布了 8 条新公告,向客户通报 46 个漏洞。
6、伊朗中央银行及其他伊朗银行遭大规模网络攻击
https://securityaffairs.com/167066/hacking/cyberattack-central-bank-of-iran.html 据伊朗新闻媒体报道,伊朗中央银行 (CBI) 和其他几家银行遭受了重大网络攻击,导致业务中断。
7、特朗普和马斯克连麦直播遭网络攻击
https://www.freebuf.com/news/408606.html 东时间12日晚8时,埃隆·马斯克将对第60届美国总统大选候选人唐纳德·特朗普进行一次连麦直播访谈,并在X平台上通过马斯克和特朗普的个人账号进行现场直播。然而,当直播时间开始用户访问两人的直播间时,系统却提示“此直播间不可用”。直至40多分钟后,直播平台才恢复正常。这次直播延时事故,并非简单的技术故障,而是一次有针对性的网络攻击活动。访谈结束后,马斯克在其X平台账号上发文称X平台遭受了大规模的DDoS攻击。
8、IBM 推出AI网络安全助手用于威胁检测和响应服务
https://www.ithome.com/0/788/072.htm 近日,IBM 宣布在其托管威胁检测和响应服务中引入生成式 AI 功能,供 IBM Consulting (IBM 咨询)的分析人员使用,从而协作客户推进和简化安全运营。
9、俄罗斯黑客访问了英国内政部的电子邮件和数据
https://cybernews.com/security/russian-hackers-accessed-uk-home-offices-emails/ 根据记录,内政部于5月2日向英国数据保护监管机构报告了这一事件。报告称,该部门的企业系统受到了“国家支持的供应商攻击”的影响。
10、Ewon Cosy+工业VPN网关存在严重漏洞
https://industrialcyber.co/industrial-cyber-attacks/critical-vulnerabilities-found-in-ewon-cosy-industrial-vpn-gateways/ 在Ewon Cosy+工业VPN网关中检测到安全漏洞,允许未经身份验证的攻击者获得对设备的root访问权限。通过这种访问和进一步的分析,SySS GmbH的研究人员发现了更多允许解密加密固件文件和加密数据(如配置文件中的密码)的问题。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
MFC框架软件逆向研究
MFC框架简介
什么是mfc?
MFC库是开发Windows应用程序的C++接口。MFC提供了面向对象的框架,采用面向对象技术,将大部分的Windows API 封装到C++类中,以类成员函数的形式提供给程序开发人员调用。
简单来说,MFC是一种面向对象,用于开发windows应用程序的框架,突出特点是封装了大部分windows API,便于开发人员使用(写win挂方便)。
MFC程序的运行过程分为以下四步:
利用全局应用程序对象theApp启动应用程序。
调用全局应用程序对象的构造函数,从而调用基类(CWinApp)的构造函数,完成应用程序的一些初始化工作,并将应用程序对象的指针保存起来。
进入WinMain函数。在AfxWinMain函数中获取子类的指针,利用指针实现上述的三个函数,从而完成窗口的创建注册等工作。
进入消息循环,一直到WM_QUIT。
那么问题来了,我们如何逆向mfc程序呢?因为其封装了大部分windows API,逆向起来也复杂了不少,因为需要了解大量的windows api 并且熟悉windows编程。下面进行讲解。
MFC如何逆向
如下图,是MFC框架软件的基本界面,可以看到,就是一堆button,主要逆向也是check button。
那么,对于MFC逆向,我们主要需要知道的是,当我们执行某个操作(点击某个按钮)的时候,程序会执行什么处理函数。在mfc中,程序是使用消息机制来实现操作响应的,这个是消息映射表的代码:
struct AFX_MSGMAP{
AFX_MSGMAP * pBaseMessageMap;
AFX_MSGMAP_ENTRY * lpEntries;
}
struct AFX_MSGMAP_ENTRY{
UINT nMessage; //Windows Message
UINT nCode //Control code or WM_NOTIFY code
UINT nID; //control ID (or 0 for windows messages)
UINT nLastID; //used for entries specifying a range of control id's
UINT nSig; //signature type(action) or pointer to message
AFX_PMSG pfn; //routine to call (or specical value)
}
其中这个AFX_MSGMAP_ENTRY中的最后一个成员AFX_PMSG就是一个函数指针,指向了当前控件绑定的函数。同时,这个nID成员描述的是当前控件的ID,利用这个ID就能确定我们所寻找的控件。然后这个AFX_MSGMAP结构体则会记录一个指向AFX_MSGMAP_ENTRY的指针,于是查找控件的注册函数的思路可以缩小为:
找到AFX_MSGMAP
找到控件的ID --- 关键就是找ID
那么,我们又该怎么找到控件ID呢,俗话说“工欲善其事,必先利其器”,作为逆向分析人员,肯定要选择好分析的工具了,很庆幸,我们站在巨人的肩膀上,针对mfc软件程序的逆向分析,前辈们已经开发了一些非常好用的小工具,我们可以直接使用它们。例如:
xspy
ResourceHacker
彗星小助手
其中我们主要用的是xspy,mfc分析利器如下图所示
逆向实验-以CTF赛题为例讲解
demo1 - MFC初探
打开程序软件
程序的标题Flag就在控件中,然后界面内容是让我们找一个key。很明显,我们需要找到两个东西
标题找Flag(也就是找窗口句柄)
内容找key
根据这些内容,告诉我们我们去找控件,然后这时候就要掏出xspy了。不然的话,我们如果使用老一套经典分析流程,die+ida对用架构分析,会发生下面这样的事。首先die查个架构,查个壳
好家伙,VMP壳,PE32ida走起,如下图,emmm....
这样的话,我们很难继续往下分析,所以我们使用xspy分析。使用方法如下图
首先我们找到了Flag_enc(944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b)我们知道特定的,窗口句柄叫 HWND
然后我们可以发现一条特殊的onMsgOnMsg:0464,func= 0x00402170(MFC1.exe+ 0x002170 )为什么特殊呢,因为只有它并不是以宏的形式出现,应该是作者自定义的消息,没有button等东西,所以程序怎么点击都无法触发任何效果;并且传入一个特殊数字0464,来触发效果。
那么,我们需要去发送这条消息来出发func函数以获取我们需要的key
#include<Windows.h>
#include<stdio.h>
int main()
{
HWND h = FindWindowA(NULL, "Flag就在控件里");
if (h)
{
SendMessage(h, 0x0464, 0, 0);
printf("success");
}
else printf("failure");
}
使用 API FindWindow 获取窗口句柄,SendMessage发送消息,得到了key{I am a Des key}
最后DES解密即可
flag{thIs_Is_real_kEy_hahaaa}
Junk_instruction-西湖论剑
下面,再讲解一道大型比赛的赛题来实验打开,看到这个朴素的界面可以鉴定是MFC框架。
我们看到了一个input,还有一个check button,很明显,我们首先就需要去找check button的id&注册函数。
xspy-MFC分析
check按钮的id为03e9,同时窗口存在OnCommand: notifycode=0000 id=03e9,func= 0x00C72420(Junk_Instruction.exe+ 0x002420 )函数。那么对应的check逻辑肯定在基址+偏移0x002420处。打开ida,找到check函数 sub_402420 ,如下图
可以看到有一个条件判断:if ( (unsigned __int8)sub_402600(v2 + 16) )。一眼顶针,两个分支分别是弹出正确和错误的对话框,为什么呢?if else函数体内容基本一样。当然我们还是动态调试一下
所以enc函数很明显就是sub_402600这个函数中就出现了很多垃圾指令了,也就对应上题目名称Junk_instruction了。
去花-IDA分析
爆红
花指令,经典call $+5起手,就是先用一个call压好返回地址,再把栈里的返回地址弹出来,改一下,压回去,如此反复。去掉也很简单,我们把下述累死指令块全部nop掉即可,有好几处,一模一样。
当然,我们使用idapython脚本自动去花
from ida_bytes import get_bytes, patch_bytes
import re
addr = 0x402600
end = 0x402fe3
buf = get_bytes(addr, end-addr)
def nopp(s):
s = s.group(0)
print("".join(["%02x"%i for i in s]))
s = b"\x90"*len(s)
return s
pattern = b"\xe8\x00\x00\x00\x00\x58\x89.*?\xc3.*?\x22"
buf = re.sub(pattern , nopp, buf, flags=re.I)
patch_bytes(addr, buf)
print("Done")
加密
去除花指令,简单审计发现是对程序进行RC4加密,最后还对输入进行了个倒叙
去花后,整理一下,代码如下
char __thiscall sub_402600(void *this, int a2)
{
const WCHAR *v2; // eax
void *v3; // eax
char v5[511]; // [esp+9h] [ebp-4BBh] BYREF
int v6; // [esp+208h] [ebp-2BCh]
char *v7; // [esp+20Ch] [ebp-2B8h]
int v8; // [esp+210h] [ebp-2B4h]
size_t Count; // [esp+214h] [ebp-2B0h]
int v10; // [esp+218h] [ebp-2ACh]
size_t v11; // [esp+21Ch] [ebp-2A8h]
char *v12; // [esp+220h] [ebp-2A4h]
char *v13; // [esp+224h] [ebp-2A0h]
int v14; // [esp+228h] [ebp-29Ch]
char v15[4]; // [esp+22Ch] [ebp-298h] BYREF
char *Source; // [esp+230h] [ebp-294h]
void *v17; // [esp+234h] [ebp-290h]
char cipher[32]; // [esp+238h] [ebp-28Ch]
const char *v19; // [esp+258h] [ebp-26Ch]
char *v20; // [esp+25Ch] [ebp-268h]
int i; // [esp+260h] [ebp-264h]
char *p_Destination; // [esp+264h] [ebp-260h]
char v23; // [esp+26Dh] [ebp-257h]
char v24; // [esp+26Eh] [ebp-256h]
char v25; // [esp+26Fh] [ebp-255h]
char v26[28]; // [esp+270h] [ebp-254h] BYREF
char v27[256]; // [esp+28Ch] [ebp-238h] BYREF
char key[256]; // [esp+38Ch] [ebp-138h] BYREF
char Destination; // [esp+48Ch] [ebp-38h] BYREF
char v30[39]; // [esp+48Dh] [ebp-37h] BYREF
int v31; // [esp+4C0h] [ebp-4h]
v17 = this;
v31 = 3;
cipher[0] = 91;
cipher[1] = -42;
cipher[2] = -48;
cipher[3] = 38;
cipher[4] = -56;
cipher[5] = -35;
cipher[6] = 25;
cipher[7] = 126;
cipher[8] = 110;
cipher[9] = 62;
cipher[10] = -53;
cipher[11] = 22;
cipher[12] = -111;
cipher[13] = 125;
cipher[14] = -1;
cipher[15] = -81;
cipher[16] = -35;
cipher[17] = 118;
cipher[18] = 100;
cipher[19] = -80;
cipher[20] = -9;
cipher[21] = -27;
cipher[22] = -119;
cipher[23] = 87;
cipher[24] = -126;
cipher[25] = -97;
cipher[26] = 12;
cipher[27] = 0;
cipher[28] = -98;
cipher[29] = -48;
cipher[30] = 69;
cipher[31] = -6;
v2 = (const WCHAR *)sub_401570(&a2);
v14 = sub_4030A0(v2);
v10 = v14;
v3 = (void *)sub_401570(v14);
sub_403000(v3);
sub_4012A0(v15);
Source = (char *)unknown_libname_1(v26);
v20 = Source;
v13 = Source + 1;
v20 += strlen(v20);
v11 = ++v20 - (Source + 1);
Count = v11;
Destination = 0;
memset(v30, 0, sizeof(v30));
strncpy(&Destination, Source, v11);
if ( sub_402AF0(&Destination) )
{
v23 = 0;
v25 = 0;
LABEL_7:
v24 = v25;
}
else
{
strcpy(key, "qwertyuiop"); // key
memset(&key[11], 0, 0xF5u);
memset(v27, 0, sizeof(v27));
memset(v5, 0, sizeof(v5));
v19 = key;
v7 = &key[1];
v19 += strlen(v19);
v6 = ++v19 - &key[1];
RC4_init((int)v27, key, v19 - &key[1]); // RC4_init
p_Destination = &Destination;
v12 = v30;
p_Destination += strlen(p_Destination);
v8 = ++p_Destination - v30;
RC4_crypt((int)v27, (int)&Destination, p_Destination - v30);// RC4_crypto
for ( i = 31; i >= 0; --i )
{
if ( v30[i - 1] != cipher[i] ) // 倒叙
{
v25 = 0;
goto LABEL_7;
}
}
v24 = 1;
}
LOBYTE(v31) = 0;
sub_403060(v26);
v31 = -1;
sub_4012A0(&a2);
return v24;
}
解密
首先提取密文,利用插件Lazy_ida 5BD6D026C8DD197E6E3ECB16917DFFAFDD7664B0F7E58957829F0C009ED045FA
key-->qwertyuiop
cyberchef 得解
flag{973387a11fa3f724d74802857d3e052f}
网络安全日报 2024年08月14日
1、韩国称朝鲜黑客窃取K2坦克和侦察机技术数据
https://www.hankyung.com/article/202408078398i 2024年8月12日,韩国执政党国民力量党(PPP)宣称朝鲜黑客窃取了关于韩国K2主战坦克以及“白头”和“金刚”侦察机的重要技术信息。据当地媒体报道,K2坦克数据泄露发生在其零部件制造商的工程师跳槽至竞争公司时,这些工程师带走了设计蓝图、开发报告和过压系统的详细信息。新雇主试图将这项技术出口到中东国家,因此泄露问题可能已超出韩国范围。关于白头和金刚侦察机,《东亚日报》报道称,生产包括这两架侦察机在内的军事设备操作和维护手册的韩国防务承包商被朝鲜黑客入侵。黑客窃取了两架侦察机的重要技术数据,包括技术细
2、 黑客假冒乌克兰安全局感染100台政府电脑
https://cert.gov.ua/article/6280345 乌克兰计算机应急响应小组(CERT-UA)披露,攻击者假冒乌克兰安全局(SSU)通过恶意垃圾邮件攻击该国政府机构的系统,成功感染了超过100台电脑,安装了AnonVNC恶意软件。这些攻击始于7月12日,攻击者利用带有链接的电子邮件,将收件人引导至一个名为Documents.zip的压缩文件,实则是下载一个包含恶意软件的Windows安装程序MSI文件。CERT-UA表示,这些攻击使得被追踪为UAC-0198的威胁组织能够秘密访问被妥协的电脑,尽管未提供恶意软件的具体功能描述。CERT-UA已确认超过100台受影响的电脑,
3、澳大利亚黄金生产商Evolution Mining遭遇勒索软件攻击
https://evolutionmining.com.au/storage/2024/08/2759355-Cyber-Security-Incident.pdf 澳大利亚著名黄金生产商Evolution Mining遭遇勒索软件攻击,导致其IT系统受到影响。该公司已聘请外部网络安全专家进行修复,目前攻击已被完全遏制。Evolution Mining是澳大利亚最大的黄金生产商之一,尽管此次勒索软件攻击对IT系统造成了干扰,但公司表示这不会对运营产生实质性影响。这表明,攻击者可能未加密任何系统或未攻击生产关键的工作站,矿业运营将继续不受影响。澳大利亚网络安全中心已被通知此次事件。截至目前,尚
4、FBI关闭了攻击了数十家公司的"Radar"勒索软件的服务器
https://www.fbi.gov/contact-us/field-offices/cleveland/news/international-investigation-leads-to-shutdown-of-ransomware-group?7194ef805fa2d04b0f7e8c9521f97343 FBI克利夫兰分局宣布成功破获了由网名“Brain”领导的勒索软件组织“Radar/Dispossessor”,并拆除了三台美国服务器、三台英国服务器、十八台德国服务器、八个美国域名和一个德国域名。自2023年8月成立以来,Radar/Dispossessor迅速发展成为一个国际
5、东谷理工学院数据泄露影响20万人
https://www.maine.gov/agviewer/content/ag/985235c7-cb95-4be2-8792-a1252b4f8318/e1ddfb24-c68c-48f2-9b14-79b5bb76048d.html 东谷理工学院(EVIT)通知超过200000名个人,他们的个人和健康信息在最近的数据泄露事件中被泄露。此次事件发生于1月9日,当时威胁行为者未经授权访问了EVIT的网络,获取了当前和前学生、教职员工及家长的敏感信息。可能被泄露的信息包括姓名、地址、电子邮件地址、社会安全号码、出生日期、驾驶执照、学生证号码、种族/民族信息、账户号码、医疗信息、助学金信息以
6、微软警告称六个 Windows 零日漏洞正被积极利用
https://www.securityweek.com/microsoft-warns-of-six-windows-zero-days-being-actively-exploited/ 微软周二警告称,Windows 系统中存在六个被积极利用的安全缺陷,微软的安全响应团队发布了有关 Windows 和操作系统组件中近 90 个漏洞的文档,并标记了多个属于主动利用类别的漏洞。
7、多款AMD CPU 受Sinkclose漏洞影响,AMD称不易被利用
https://www.securityweek.com/amd-says-new-sinkclose-cpu-vulnerability-only-affects-seriously-breached-systems/ 网络安全研究公司 IOActive 披露了影响 AMD 处理器的新漏洞的细节,但该芯片巨头指出,该漏洞不易被利用。 该漏洞被称为Sinkclose,编号为 CVE-2023-31315,针对的是系统管理模式 (SMM),这是 x86 处理器中用于低级系统管理功能的高权限操作模式。 据 IOActive 称,Sinkclose 漏洞已存在近二十年,可让攻击者获得对目标系统的深
8、NIST 正式公布后量子密码标准
https://www.securityweek.com/post-quantum-cryptography-standards-officially-announced-by-nist-a-history-and-explanation/ NIST 正式发布了其举办的竞赛中的三项后量子密码标准,旨在开发能够承受当前非对称加密预期的量子计算解密的密码技术。
9、针对严重 Ivanti vTM 漏洞的 PoC 代码现已发布
https://securityaffairs.com/166991/hacking/ivanti-virtual-traffic-manager-flaw.html Ivanti 解决了一个严重的身份验证绕过漏洞,编号为 CVE-2024-7593(CVSS 评分为 9.8),该漏洞影响虚拟流量管理器 (vTM) 设备,可能允许攻击者创建恶意管理员帐户。
10、《联合国打击网络犯罪公约》顺利通过
https://www.secrss.com/articles/69016 纽约时间8月8日下午,联合国打击网络犯罪公约特委会顺利通过公约草案。公约系网络领域首个由联合国主持制定的普遍性国际公约,将在全球范围内为打击网络犯罪国际合作提供法律框架,对网络空间国际法发展也有重大意义。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页 第208页 第209页 第210页 第211页 第212页 第213页 第214页 第215页 第216页 第217页 第218页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

