网络安全日报 2022年06月14日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、研究人员展示了特斯拉钥匙卡功能如何被滥用来偷车
https://www.securityweek.com/researcher-shows-how-tesla-key-card-feature-can-be-abused-steal-cars 2、Drupal 修补了"高危"第三方库漏洞
https://www.securityweek.com/drupal-patches-high-risk-third-party-library-flaws 3、HelloXD 勒索软件在目标系统上部署持久访问后门
https://securityaffairs.co/wordpress/132207/malware/helloxd-ransomware-installs-microbackdoor.html 4、研究人员证明WiFi 连接探测请求会暴露用户数据
https://securityaffairs.co/wordpress/132193/mobile-2/wifi-probe-requests-track-users.html 5、与俄有关的 APT 利用 Follina RCE 漏洞攻击乌克兰
https://securityaffairs.co/wordpress/132227/apt/cert-ua-sandworm-follina-rce.html 6、研究人员披露了 Mitel 企业 IP 电话中的两个漏洞
https://thehackernews.com/2022/06/researchers-disclose-rooting-backdoor.html 7、多个勒索软件正在利用Atlassian Confluence中的漏洞
https://securityaffairs.co/wordpress/132186/cyber-crime/ransomware-gangs-cve-2022-26134-rce-atlassian-confluence.html 8、华盛顿州7万名凯萨医疗机构患者的个人信息被泄露
https://portswigger.net/daily-swig/kaiser-permanente-data-breach-exposed-healthcare-records-of-70-000-patients 9、FBI表示不到25%的NetWalker勒索软件受害者报告了事件
https://therecord.media/fbi-doj-say-less-than-25-of-netwalker-ransomware-victims-reported-incidents/ 10、 尼日利亚警方破获计划对10家银行进行网络攻击的团伙
https://www.govinfosecurity.com/nigerian-police-bust-gang-planning-cyberattacks-on-10-banks-a-19320
网络安全日报 2022年06月13日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、LenelS2 HID Mercury门禁控制器中的漏洞允许黑客解锁门
https://www.securityweek.com/vulnerabilities-hid-mercury-access-controllers-allow-hackers-unlock-doors 2、Chrome 102 更新修复高危漏洞
https://www.securityweek.com/chrome-102-update-patches-high-severity-vulnerabilities 3、研究人员发现一种针对 Apple M1 CPU 的新攻击技术:PACMAN
https://securityaffairs.co/wordpress/132154/hacking/pacman-attack-apple-m1-cpus.html 4、研究人员发现可以对蓝牙信号进行指纹识别以跟踪智能手机
https://thehackernews.com/2022/06/researchers-find-bluetooth-signals-can.html 5、MakeMoney恶意广告活动诱导用户安装虚假的Firefox更新
https://blog.malwarebytes.com/threat-intelligence/2022/06/makemoney-malvertising-campaign-adds-fake-update-template/ 6、研究人员表示越来越多的恶意软件团伙开始利用Follina漏洞
https://www.theregister.com/2022/06/09/symantec-follina-microsoft/ 7、Lycaeum组织利用基于.NET的DNS后门攻击能源和电信行业
https://www.bleepingcomputer.com/news/security/iranian-hackers-target-energy-sector-with-new-dns-backdoor/ 8、研究人员分享了Linux恶意软件Symbiote的详细信息
https://www.securityweek.com/highly-evasive-linux-malware-symbiote-infects-all-running-processes 9、富士通云存储漏洞可使攻击者破坏虚拟备份
https://portswigger.net/daily-swig/separate-fujitsu-cloud-storage-vulnerabilities-could-enable-attackers-to-destroy-virtual-backups 10、针对Atlassian RCE漏洞的PoC已在线发布
https://cyware.com/news/poc-exploits-for-atlassian-rce-bug-exploit-released-online-463354a9
网络安全日报 2022年06月10日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、'Follina' 漏洞被Qbot、AsyncRAT 和其他恶意软件利用
https://www.securityweek.com/follina-vulnerability-exploited-deliver-qbot-asyncrat-other-malware 2、研究人员发现了一种高度隐蔽的 Linux 恶意软件Symbiote
https://securityaffairs.co/wordpress/132113/malware/symbiote-linux-malware.html 3、新的 Emotet 变体从 Google Chrome 窃取用户信用卡数据
https://securityaffairs.co/wordpress/132090/cyber-crime/emotet-google-chrome-info-stealer.html 4、Black Basta勒索软件现在支持加密VMware ESXi服务器
https://securityaffairs.co/wordpress/132037/hacking/black-basta-ransomware-vmware-esxi.html 5、网络钓鱼活动利用Facebook Messenger诱导用户查看广告
https://www.bleepingcomputer.com/news/security/massive-facebook-messenger-phishing-operation-generates-millions/ 6、Linux僵尸网络正在利用Atlassian Confluence的高危漏洞
https://www.bleepingcomputer.com/news/security/linux-botnets-now-exploit-critical-atlassian-confluence-bug/ 7、谷歌因侵犯隐私向居民赔偿1 亿美元
https://www.freebuf.com/news/335570.html 8、网络犯罪者使用自动 Bot 服务在大规模范围内绕过 2FA 身份验证
https://www.techrepublic.com/article/cybercriminals-automated-bot-bypass-2fa 9、MyEasyDocs 暴露了 30GB 的以色列和印度学生 PII 数据
https://www.hackread.com/myeasydocs-exposed-30gb-israel-india-students-pii-data 10、越来越多的自动驾驶汽车引发网络安全担忧
https://thehill.com/driving-into-the-future/3514634-increasingly-autonomous-cars-raise-cybersecurity-fears/
网络安全日报 2022年06月09日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、研究发现 80% 的勒索软件受害者遭二次攻击
https://www.securityweek.com/it-doesnt-pay-pay-study-finds-eighty-percent-ransomware-victims-attacked-again 2、美国司法部和FBI查封了 SSNDOB 网络犯罪市场
https://securityaffairs.co/wordpress/132061/cyber-crime/us-seized-ssndob-marketplace.html 3、Owl Labs 修补了视频会议设备中的严重漏洞
https://www.securityweek.com/owl-labs-patches-severe-vulnerability-video-conferencing-devices 4、0Patch 为新 DogWalk Windows 0day漏洞发布非官方安全补丁
https://securityaffairs.co/wordpress/132070/hacking/unofficial-security-patch-dogwalk.html 5、Apple 推出用于应用程序和网站的无密码身份验证
https://www.helpnetsecurity.com/2022/06/07/apple-passkeys/ 6、FakeCrack恶意软件通过中毒的CCleaner搜索结果进行传播
https://www.bleepingcomputer.com/news/security/poisoned-ccleaner-search-results-spread-information-stealing-malware/ 7、马萨诸塞州一医疗公司的数据泄露影响了200万患者
https://www.securityweek.com/data-breach-shields-health-care-group-impacts-2-million-patients 8、Mandiant否认被 LockBit 勒索组织窃取数据
https://www.bleepingcomputer.com/news/security/mandiant-no-evidence-we-were-hacked-by-lockbit-ransomware/ 9、SVCReady恶意软件正在发起新的钓鱼邮件攻击
https://thehackernews.com/2022/06/researchers-warn-of-spam-campaign.html 10、Red TIM Research发现Resi上一个命令注入高危漏洞
https://securityaffairs.co/wordpress/131985/security/resi-critical-command-injection.html
记一次服务器应急排查"新"路历程
0x01 事情概述
前一段时间接到了销售给过来的消息说某单位服务器出现问题了,但是出问题的是某云服务器,出现外联德国的行为,告警行为远控,可能没有日志,还比较急,让先支持处置,有可能的话帮忙溯源好抓人,给了个处置对的第三方师傅。
0x02 分析
毕竟给的信息是外联远控,如果是外联的情况下一般就要考虑是否是灰黑产,这种情况下出现在个人终端的可能下要大于服务器,所以这个时候基本上就是杀毒,沙箱运行看是否会出现外联行为,如果是远控类木马的情况下,一般服务器被上传的可能性比较高,钓鱼类的可能是个人终端,这是基于服务关系来分析的。
0x03 远程处置
第三方老师傅给了个vpn让先给远程看一下,正常情况下肯定是先要考虑备份镜像,在镜像中做操作,如果需要备份镜像的话这里我推荐使用``FTK``,备份之后再转格使用vm打开就ok了,比较容易上手操作。在物理机上直接操作会破坏证据,但是根据给的外联地址去进行信息搜集肯定是攻击者挂的代理地址,没有实际意义,没有高交互的蜜罐的条件下想要实现反制和溯源的基本上是没有可能的。
0x04 排查
火绒杀毒
windows日志查询
eventvwr
发现日志并未被清除,如果说是实现了远控,起码就操作者行为来讲,还是讲武德的。
windows日志分为五类
应用程序日志
安全日志
Setup日志 #安装日志
系统日志
Forwarded Events日志 #转发日志
这里主要看应用程序日志和安全日志即可,应用程序日志即安装应用程序产生的事件,安全日志主要记录用户操作产生的日志,例如登入/登出,清除日志等。
事实上并没有异常的登录事件,从出现问题到服务器关掉的登录事件以及操作日志来说也没有问题
查看定时任务
翻了一遍定时任务并未有新创建的定时任务
熟悉winserver2012的都清楚装机初始的自动任务都存在,另外无其他特殊的计划任务。
net user
无新增用户
就单纯从业务来讲,不牵涉到内网部分,所以也根本不担心内网横向的风险。断网条件下是无法通过查看连接状态判断是什么程序触发的,分析业务盘的文件
这个时候服务没有起,可以发现使用的中间件,jar包是2017年的,但是有没有打补丁不清楚,因为我没找到的patch文件以及其它像是weblogic的补丁jar包,这里可能会有人有疑问,没看见包就没打补丁么,不接受杠精提问,只是分析而已,这个时候跟开发和运维对接可以确定中间件服务对公网有映射,查看文件目录,因为查杀结果并没有出来,在文件目录下发现存在恶意文件
冰蝎马不是吗?
但是问题来了文件的属性日期不会欺骗人,出现问题的时间是今年,但是这个文件属性是去年的,这就有点儿意思了,除非还有一种可能,有其它木马或者说是之前被利用未告警的。查看杀毒结果
找到文件分析,该木马家族:CoinMiner的行为特征
根据情报库去找
归属地是德国的,其实这种情况下已经可以交差了。但是令我比较在意的是中间件的RCE,因为涉及到数据问题,第三方的师傅要求到单位使用镜像内网复现。
确实找到了上传点,确定上传路径
xxx/xxx/x/x/x/x/x/x/mages/shell2.jsp
http://10.xxxxxxxxxxxxxxxxxx/images/shell2.jsp
连接木马可成功
这时候有从云厂商那里要来的日志,量很少,但是没有关于weblogic利用的日志
这是比较有意思的,到这里其实只有一种情况,服务器是去年被入侵的,但是收到的通知是异常外联远控,可能只是基于情报库而不是从很长一段时间的监测为根据,只能说是意外发现了。
实验推荐
实验:内存镜像取证(蚁景网安实验室) https://www.yijinglab.com/expc.do?ec=ECID6a2f-ed6f-4f85-9363-731535a5c3c4>>
网络安全日报 2022年06月08日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、研究人员发布了最近修补的 Zyxel 防火墙漏洞技术细节
https://www.securityweek.com/technical-details-released-recently-patched-zyxel-firewall-vulnerabilities 2、Evil Corp 团伙开始使用 LockBit Ransomware 以逃避制裁
https://securityaffairs.co/wordpress/132031/cyber-crime/evil-corp-lockbit-ransomware.html 3、Black Basta 勒索软件利用 QBot恶意软件进行横向扩展攻击
https://securityaffairs.co/wordpress/132018/hacking/black-basta-ransomware-qbot.html 4、Follina 在网络钓鱼攻击中被利用
https://cyware.com/news/follina-exploited-in-phishing-attacks-16fca1ae 5、苹果的新功能将自动安装安全更新,无需完整的操作系统更新
https://thehackernews.com/2022/06/apples-new-feature-will-install.html 6、意大利巴勒莫市关闭所有系统以抵御网络攻击
https://www.bleepingcomputer.com/news/security/italian-city-of-palermo-shuts-down-all-systems-to-fend-off-cyberattack/ 7、格洛斯特市议会的IT系统遭黑客攻击近六个月后仍未完全运行
https://www.infosecurity-magazine.com/news/gloucester-council-it-systems/ 8、研究人员观察到传播SVCReady恶意软件的网络钓鱼活动
https://thehackernews.com/2022/06/researchers-warn-of-spam-campaign.html 9、谷歌通过 2022 年 6 月更新修补了关键的 Android 漏洞
https://www.securityweek.com/google-patches-critical-android-vulnerabilities-june-2022-updates 10、加密货币骗局在美或已造成超10亿美元损失
https://www.bleepingcomputer.com/news/security/americans-report-losing-over-1-billion-to-cryptocurrency-scams/
网络安全日报 2022年06月07日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、GitLab 企业版修复了高危帐户接管漏洞
https://www.securityweek.com/critical-account-takeover-vulnerability-patched-gitlab-enterprise-edition 2、U-Boot存在严重漏洞可通过本地网络写入任意数据
https://www.securityweek.com/critical-u-boot-vulnerability-allows-rooting-embedded-systems 3、Lockbit 勒索软件团伙声称已入侵网络安全巨头 Mandiant
https://securityaffairs.co/wordpress/132011/cyber-crime/lockbit-claims-mandiant-hack.html 4、微软摧毁了与伊朗有关的 Bohrium APT 使用的 41 个域名
https://securityaffairs.co/wordpress/132002/apt/microsoft-seized-bohrium-apt-domains.html 5、暗网市场AlphaBay被国际执法行动捣毁5年后,重新回归
https://www.wired.com/story/alphabay-dark-web-market-ranking/ 6、匿名者黑客组织泄露了1TB俄罗斯顶级律师事务所数据
https://www.hackread.com/anonymous-hacktivists-leak-1tb-russia-law-firm-data/ 7、挖矿木马WatchDog新一轮活动瞄准Docker 和 Redis 服务器
https://cyware.com/news/watchdog-targets-docker-and-redis-servers-in-new-cryptojacking-campaign-a5681a92 8、CISA 发出警告:美国多州使用的投票机存在软件漏洞
https://www.cnbeta.com/articles/tech/1276043.htm 9、在过去一年中,近四分之三的公司因DNS攻击而停工
https://www.infosecurity-magazine.com/news/threequarters-suffer-downtime/ 10、数百个Elasticsearch数据库遭到勒索攻击
https://www.bleepingcomputer.com/news/security/hundreds-of-elasticsearch-databases-targeted-in-ransom-attacks/
网络安全日报 2022年06月06日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、CISA 警告 Illumina 基因分析设备存在严重漏洞
https://www.securityweek.com/cisa-warns-critical-vulnerabilities-illumina-genetic-analysis-devices 2、Atlassian Confluence 服务器0day漏洞(CVE-2022-26134)被广泛利用
https://www.securityweek.com/atlassian-confluence-servers-hacked-zero-day-vulnerability 3、数百万使用 UNISOC 芯片的廉价智能手机易受远程 DoS 攻击
https://www.securityweek.com/millions-budget-smartphones-unisoc-chips-vulnerable-remote-dos-attacks 4、匿名博客平台Telegraph正被网络钓鱼者积极利用
https://www.bleepingcomputer.com/news/security/telegram-s-blogging-platform-abused-in-phishing-attacks/ 5、Korenix JetPort工业串行设备服务器存在后门帐户
https://www.securityweek.com/vendor-refuses-remove-backdoor-account-can-facilitate-attacks-industrial-firms 6、美国国家安全局将军证实美国在俄乌战争中的进攻性网络行动
https://www.theregister.com/2022/06/02/nakasone_us_hacking_russia/ 7、Conti勒索软件团伙拥有利用英特尔固件漏洞的PoC
https://www.theregister.com/2022/06/02/conti_rasomware_intel_firmware/ 8、639个含有银行木马的金融应用程序被下载超过10亿次
https://www.bleepingcomputer.com/news/security/top-10-android-banking-trojans-target-apps-with-1-billion-downloads/ 9、微软破坏了Bohrium黑客组织的鱼叉式网络钓鱼攻击
https://www.bleepingcomputer.com/news/security/microsoft-disrupts-bohrium-hackers-spear-phishing-operation/ 10、报告显示勒索软件和社会工程是网络安全人员面临的主要挑战
https://threatpost.com/old-hacks-die-hard-ransomware-social-engineering-top-verizon-dbir-threats-again/179864/
网络安全日报 2022年06月02日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Horde Webmail 服务器存在高危漏洞
https://www.securityweek.com/unpatched-vulnerability-exposes-horde-webmail-servers-attacks 2、LockBit 2.0 勒索软件攻击了富士康在墨西哥的一家工厂
https://www.securityweek.com/ransomware-group-claims-have-breached-foxconn-factory 3、欧洲刑警组织宣布摧毁了FluBot 移动间谍软件
https://www.securityweek.com/europol-announces-takedown-flubot-mobile-spyware 4、新的 XLoader 僵尸网络版本使用新技术来隐藏其 C2 服务器
https://securityaffairs.co/wordpress/131860/cyber-crime/xloader-botnet-obscures-c2.html 5、研究人员在全球范围内发现了超过 360 万台可访问的 MySQL 服务器
https://securityaffairs.co/wordpress/131851/security/3-6-million-mysql-servers-accessible-online.html 6、Hive 勒索软件团伙攻击了哥斯达黎加的公共卫生服务
https://securityaffairs.co/wordpress/131837/cyber-crime/costa-rica-cccs-hive-ransomware.html 7、FDA 发布医疗器械网络安全指南
https://www.meddeviceonline.com/doc/fda-releases-guidance-on-cybersecurity-in-medical-devices-0001 8、乌克兰在2022年第一季度观察到近1400万起网络安全事件
https://www.govinfosecurity.com/ukraine-observed-nearly-14m-cyber-incidents-in-q1-2022-a-19175 9、英国政府就云、数据中心安全征求意见
https://www.theregister.com/2022/05/30/uk_government_security_consultation/ 10、南非总统的个人信贷数据泄露
https://www.secrss.com/articles/42993
二进制固件函数劫持术-DYNAMIC
背景介绍
固件系统中的二进制文件依赖于特定的系统环境执行,针对固件的研究在没有足够的资金的支持下需要通过固件的模拟来执行二进制文件程序。依赖于特定硬件环境的固件无法完整模拟,需要hook掉其中依赖于硬件的函数。
LD_PRELOAD的劫持
对于特定函数的劫持技术分为动态注入劫持和静态注入劫持两种。静态注入指的是通过修改静态二进制文件中的内容来实现对特定函数的注入。动态注入则指的是在运行的过程中对特定的函数进行劫持,动态注入劫持一方面可以通过劫持PLT表或者GOT表来实现,另一方面可以通过环境变量LD_PRELOAD来实现。
在《揭秘家用路由器0day漏洞挖掘》中作者针对D-link DIR-605L(FW_113)路由器中的Web应用程序boa,通过hook技术劫持 apmib_init()和apmib_get()函数修复boa对硬件的依赖,使得qemu-static-mips可以模拟执行,在文中作者通过LD_PRELOAD环境变量实现对函数的劫持。网上针对LD_PRELOAD的劫持也有大量的描述。但是LD_PRELOAD仍旧不是普适的。
存在的问题
LD_PRELOAD环境变量的开关在编译生成ulibc的时候指定,当关闭该选项的时候,无法使用LD_PRELOAD来预加载指定的动态链接库文件。
固件的二进制文件中会将二进制文件中的Section信息去除掉,只保留下Segment的信息,使得无法通过patchelf来增加动态链接库实现劫持。patchelf 支持对二进制文件的patch修改,或者添加执行过程中的链接lib。
本文方案思路
在ELF文件中,存在DYNAMIC Segment,ld.so通过该段内容来加载程序运行过程中需要的lib文件,图1为在IDA中反编译后查看的DYNAMIC段的内容。
图1 Elf32_Dyn结构体数组
DYNAMIC段介绍
dynamic 段开头包含了由N个Elf32_Dyn组成的结构体,该结构体的D_tag代表了结构体的类型。d_un为通过union 联合的指针d_ptr或者对应的结构体的值d_val。
typedef struct {
Elf32_Sword d_tag;
union {
Elf32_Word d_val;
Elf32_Addr d_ptr;
} d_un;
}Elf32_Dyn;
d_tag字段保存了类型的定义参数,详见ELF(5)手册。下面列出了动态链接器常用的比较重要的类型值
1-DT_NEEDED 该类型的数据结构保存了程序所需要的共享库的名字相对字符串表的偏移量
2-DT_SYMTAB 动态符号表的地址,对应的节名为.dynsym
3-DT_HASH 符号散列表的名称,对应的节名为.hash又称为.gnu.hash
4-DT_STRTAB 符号字符串表的地址,对应的节名为 .dynstr
5-DT_PLTGOT 全局偏移表的地址
如上各个字段对应到 IDA 中显示如下,d_tag字段代表了动态段的类型,当该值为1的时候。表示程序依赖的共享库的名字,其对应的d_val表示了是要加载的lib的名称在string table中的偏移。
共享库文件名对应的结构体的类型值为0x01,如图2所示,0x4001C4-0x4001E4保存有5个二进制文件所依赖的共享库名字,其D_VAL的值是指向string table的偏移量。
图2 DT_NEEDED 共享库依赖图
DYNAMIC段的定位
从二进制文件头起始定位DYNAMIC段的流程如下:
ELF_HEADER->Program Header -> DYNAMIC Program
ELF_HEADER中保存有Program Header的偏移
图3 ELF Header
Program Header中保存有Dynamic Segment 的相关结构体信息
图4 Program Header
展开该结构体,可以找到Dynamic段在文件中的偏移量0x140h
Program Header结构体
DT_NEEDED伪造
动态段由dynamic的结构体数组组成,dynamic的结构体定义如下:
在dynamic和elf_hash之间仍存在一段空余空余可填充空间。本文利用该段空间填充,实现特定lib的加载。
本文方案实验与测试
利用dynamic和elf_hash之间的空余区域,在该区域伪造出新的dynamic的一个数组。如下图,不修改二进制文件大小,伪造增添ibcjson.so,使得二进制文件加载 ibcjson.so。在ibcjson.so中编写对应的劫持函数。
思路: 将原有的Elf32_Dyn数组元素依次后移,并在该数组的首部添加伪造的ibcjson.so,该lib的命名可以选用string table中的任一字符串即可。
核心移动代码,将Elf32_Dyn中的元素依次后移一个,dynamic段 dynamic[0]元素作为要伪造填充的数据,在本文的实验中,将dynamic[0]中的value值加1。由于在MIPS下存在大小端两种架构,在小端机器上的代码解决大端架构的填充伪造时要注意大小端的转换问题。
void move_dynamic(char* buf){
int x = 0;
Elf32_Dyn* dyn = (Elf32_Dyn *)buf;
while(1){
if(dyn[x].d_tag == 0 && dyn[x].d_un.d_ptr == 0){
break;
}
x++;
if(x>100) {
printf("Error break\n");
break;
}
}
while(x--){
//printf("the index x is %x\n",x);
mem_cpy(&dyn[x],&dyn[x+1],8);
}
dyn[x+1].d_un.d_val = b2l(l2b(dyn[x+1].d_un.d_val) + 1);
}
测试环境
TOTOLink N210RE中boa程序,劫持函数参考DIR605A,劫持apmib_init以及apmib_get
该固件的ld,关闭了LD_PRELOAD程序选项,未提供/etc/ld.preload
劫持函数代码,采用了《揭秘家用路由器漏洞挖掘》提供的示例代码如下,在原有的基础上,增加printf来查看显示是否劫持成功。
#include<stdio.h>
#define MIB_HW_VER 0x250
#define MIB_IP_ADDR 170
#define MIB_CAPTCHA 0x2C1
int apmib_init(void){
printf("helllo");
return 1;
}
int fork(void){
return 0;
}
void apmib_get(int code,int *value){
switch(code){
case MIB_HW_VER:
*value = 1;
break;
case MIB_IP_ADDR:
*value = 1;
break;
case MIB_CAPTCHA:
*value = 1;
break;
}
return;
}
通过mips-linux-gcc进行编译,这里注意mips-linux-gcc在编译过程中的编译文件的位置要位于参数之后(踩坑了!!!!)
mips-linux-gcc -Wall -fPIC -shared apmib.c -o ibcjson.so
通过如下代码,给原有的boa二进制文件添加一个dynamic
#include<stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include "elf.h"
#define PATCH "boa_patch"
int b2l(int be)
{
return ((be >> 24) &0xff )
| ((be >> 8) & 0xFF00)
| ((be << 8) & 0xFF0000)
| ((be << 24));
}
char* buf = NULL;
int l2b(int le) {
return (le & 0xff) << 24
| (le & 0xff00) << 8
| (le & 0xff0000) >> 8
| (le >> 24) & 0xff;
}
static char *_get_interp(char *buf)
{
int x;
// Check for the existence of a dynamic loader
Elf_Ehdr *hdr = (Elf_Ehdr *)buf;
Elf_Phdr *phdr = (Elf_Phdr * )(buf + l2b(hdr->e_phoff));
printf("the phdr address is: 0x%x 0x%x 0x%x 0x%x\n",phdr,l2b(hdr->e_phoff),buf,sizeof(hdr->e_phoff));
for(x = 0; x < hdr->e_phnum; x++){
if(l2b(phdr[x].p_type) == PT_DYNAMIC){
// There is a dynamic loader present, so load it
return buf + l2b(phdr[x].p_offset);
}
}
return NULL;
}
int mem_cpy(char* src,char* dst,int len){
printf("the src addr is %x , %x\n",src-buf,dst-buf);
for(int x=0;x<len;x++){
dst[x]=src[x];
}
return 0;
}
/*
1 2 3 4
temp = 2
strcpy(1,2)
1 2
strcpy()
*/
void move_dynamic(char* buf){
int x = 0;
Elf32_Dyn* dyn = (Elf32_Dyn *)buf;
//Elf32_Dyn tmp_dyn;
//mem_cpy()
while(1){
if(dyn[x].d_tag == 0 && dyn[x].d_un.d_ptr == 0){
printf("the x is %d\n",x);
break;
}
x++;
if(x>100) {
printf("Error break\n");
break;
}
}
while(x--){
//printf("the index x is %x\n",x);
mem_cpy(&dyn[x],&dyn[x+1],8);
}
dyn[x+1].d_un.d_val = b2l(l2b(dyn[x+1].d_un.d_val) + 1);
//FILE* fw = fopen("")
}
void analyse(char* buf){
char* phdr_address = NULL;
phdr_address = _get_interp(buf);
printf("phdr address: 0x%x\n",phdr_address-buf);
move_dynamic(phdr_address);
}
void save_binary(char* buf,int size){
FILE* fw = fopen(PATCH,"wb");
fwrite(buf,size,1,fw);
fclose(fw);
}
int main(int argc,char *argv[],char* envp[]){
if(argc < 2){
printf("not enough argc\n");
}
FILE* fp = fopen(argv[1],"rb");
fseek(fp,0,SEEK_END);
int size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
buf = malloc(size);
fread(buf,size,1,fp);
analyse(buf);
save_binary(buf,size);
free(buf);
return 0;
}
Makefile如下
all: elf.h analyse_ph.c
gcc analyse_ph.c -m32 -g3 -o analyse
./analyse boa_real_n210
针对N210RE 的测试截图如下,通过export LD_LIBRARY_PATH使得程序加载ibcjson.so,成功劫持boa,输出helllo
Ubuntu下rand函数劫持测试
rand函数的头文件是stdlib.h
编写rand.c
#include<stdio.h>
#include<stdlib.h>
int main(){
int a = 0;
a = rand()%100;
printf("the a is %d\n",a);
return 0;
}
//gcc -m32 rand.c -o rand
编写rand_hook.so
#include<stdio.h>
int rand(){
printf("hook !\n");
return 100;
}
//gcc -fPIC -Wall -shared -m32 rand_hook.c -o rand_hook.so
使用LD_PRELOAD测试,成功实现对该函数的劫持
使用patch,针对dynamic段元素添加伪造,测试rand_patch,依赖的库文件增加了ibc.so.6,ibc.so.6需要通过export LD_LIBRARY_PATH导入ibc.so.6的文件路径
实现对rand的劫持
总结
本文通过研究二进制文件中的dynamic段,通过修改二进制文件增加依赖共享库,可以解决在模拟固件的过程时,固件缺少节信息且固件函数无法通过LD_PRELOAD劫持的问题。该方案仍有不足之处,对于ld加载共享库的依赖顺序、共享库劫持的底层原理尚未深入探究。
参考
《揭秘家用路由器0day挖掘技术》
《二进制分析实战》
第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页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

