rootkit

dump出Linux内核所有的slab对象缉拿内核Rootkit

筅森魡賤 提交于 2020-08-15 03:02:48
前面的文章介绍了很多种隐藏进程,隐藏TCP连接,隐藏内核模块的方法,总结起来和大多数网上介绍Rootkit的文章种介绍的方法不同点在于: 网上大多数文章均是hook procfs来达到隐藏对象的目的。 我的方法则是直接将对象从链表等数据结构中摘除。 无疑,我的方法更简单,因为很显然,hook procfs需要修改大量关于VFS API调用相关的代码。 但是,跑了和尚跑不了庙,虽然进程,TCP连接,内核模块等摘了链表,它还是在slab中啊!我们只需要dump特定的slab对象,就能找到它们: dump出名字为TCP的kmem cache所有slab对象,就能找到隐藏的TCP连接。 dump出名字为task_struct的kmem cache所有slab对象,就能找到隐藏的进程。 … 然而,内核并没有提供dump所有slab对象的方法。 我们知道,/proc/slabinfo里面的信息完全不足够,这里面仅仅是伴随着slab对象的分配和释放,Linux内核记录的一些统计信息,那么,我们必须自己实现所有slab的dump操作。 来吧,让我实现它。 slab位于buddy系统的上层,从buddy系统拿page,所以我们需要从page上做文章。 让人恼火的是,作为slab的默认实现的slub kmem_cache,竟然没有字段保存自己保有了那些page! 一旦对象被分配了,它就和kmem

窃取Linux内核page以构建窝藏自己的Rootkit

落爺英雄遲暮 提交于 2020-08-15 00:44:56
窃取内核的page?是的,偷page意味着我们绕过page分配的一切规则和接口,直接从freelist中摘取一个空闲的page来用。 直接看个POC吧,我来模拟一个task_struct的分配过程: # include <linux/module.h> # include <linux/mm.h> # include <linux/sched.h> static void * page_steal ( unsigned int j ) { void * addr = NULL ; int i = 0 ; for_each_online_node ( i ) { unsigned long spfn , epfn , pfn ; spfn = node_start_pfn ( i ) ; epfn = node_end_pfn ( i ) ; for ( pfn = spfn ; pfn < epfn ; ) { struct page * page = pfn_to_page ( pfn ) ; // 找到空闲页面,并且没有被偷走的,就摘除它,偷走它,占有它! if ( page_count ( page ) == 0 && pfn == j && ( page -> lru . prev != LIST_POISON2 && page -> lru . next != LIST

[网络安全自学篇] 九十.远控木马详解及APT攻击中的远控

℡╲_俬逩灬. 提交于 2020-08-14 13:38:25
这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了软件来源分析,结合APT攻击中常见的判断方法,利用Python调用扩展包进行溯源。这篇文章将详细讲解远控木马及APT攻击中的远控,包括木马的基本概念和分类、木马的植入方式、远控木马的通信方式、APT攻击与远控木马等。作者之前分享了多篇木马的文章,但这篇更多是讲解远控型木马,基础性文章,希望对您有所帮助~ 作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~ 文章目录 一.木马的基本概念和分类 二.木马的植入方式 三.远控木马的通信方式 1.正向连接 2.反向连接 3.通信协议 四.远控木马的常见功能及意图 1.文件管理 2.进程管理 3.服务管理 4.注册表管理 5.屏幕控制 6.键鼠操作 7.屏幕截取 8.语音视频截获 9.键盘记录 五.APT攻击与远控木马 1.APT攻击与远控木马的关系 2.普通远控木马与APT远控木马的区别 3.APT攻击中的典型远控木马 六.总结

Eleethub:使用 Rootkit 进行自我隐藏的加密货币挖矿僵尸网络

穿精又带淫゛_ 提交于 2020-08-11 07:11:56
原文: Eleethub: A Cryptocurrency Mining Botnet with Rootkit for Self-Hiding 译者:知道创宇404实验室翻译组 Unit 42研究人员发现了一个新的使用Perl Shellbot的僵尸网络活动,旨在挖掘比特币,同时使用专门制作的rootkit以避免检测。 该僵尸网络传播的方式是将一个恶意的shell脚本发送到一个受攻击的设备,然后该设备下载其他脚本。在受害者设备执行下载的脚本之后,它开始等待来自其命令和控制(C2)服务器的命令。尽管Perl编程语言因其广泛的兼容性而在恶意软件中流行,但这种僵尸网络不仅可能影响基于unix的系统,还可能影响使用Linux子系统的Windows 10系统。 本次发现的新活动使用了一个名为libprocesshider.so的共享库来隐藏挖掘过程,并且用一个专门制作的rootkit来避免检测。该恶意活动幕后者使用“Los Zetas”这个名字,暗指一个墨西哥犯罪组织,该组织被认为是该国最危险的贩毒集团之一。尽管如此,他们实际上不太可能是这个犯罪组织的一部分。此外,这个僵尸网络还连接到最大的IRC(Internet中继聊天)网络之一的UnderNet,讨论了包括恶意软件和网络犯罪在内的各种主题。 而且,僵尸网络在被发现时仍在开发中。但是,重要的是在攻击者危害更多设备之前阻止它。我们观察到

USTC信息安全期末重点

依然范特西╮ 提交于 2020-08-11 00:36:50
一、ARP协议问题 1. ARP协议的作用是什么。 地址解析协议,即IP地址和MAC地址之间的转换。 2. 引入ARP缓存的功能是什么。 将这一映射关系保存在 ARP 缓存中,使得不必重复运行 ARP 协议。 3. ARP缓存中毒的攻击方法和效果是什么。 方法:因为 ARP 缓存中的映射表并不是一直不变的,主机会定期发送 ARP 请求来更新它的 ARP 映射表,利用这个机制,攻击者可以伪造 ARP 应答帧使得主机错误的更新自己的 ARP 映射表,这个过程就是 ARP 缓存中毒。 效果:要么使主机发送 MAC 帧到错误的 MAC 地址,导致数据被窃听;要么由于 MAC 地址不存在,导致数据发送不成功。 二、IP协议安全问题 1. 为什么IP要进行分片? 考虑到效率和正确性,每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU。在以太网的环境中可传输的最大IP报文为1500字节。 2. IP分片如何进行重组? 在IP头里面16bit的TOTAL LENGTH表示当前的分片长度。16bit的IDENT唯一记录了一个IP包的标识符,用以确定分片是否属于同一个数据包,具有同一个IDENT的IP分片才会从新组装。13bit的片偏移FRAGMENT OFFSET记录了一个IP分片相对于整个数据包的位置。3bit的标志位FLAGS记录了该分片后面是否还有新的分片,第一位现在一般都是0

2020上半场已结束,揭露上半年瞄准PC端目标的十大“危险分子”

柔情痞子 提交于 2020-08-09 09:57:04
时至7月,2020年上半年已告一段落。2020年,这个本该寄托无数憧憬的年份,却因一场席卷而来的疫情危机的到来而全球震荡。流年不利、人心惶惶,这些糟糕的词语已经无法准确描述这场疫情为全球人民生活造成的灰暗。 伴随着疫情夜幕的降临,生活在黑暗中的生物们也相继“苏醒”。勒索病毒、蠕虫木马、钓鱼邮件,横向渗透、变形虫攻击等黑客攻击如同洪流般裹挟泥沙席卷而来,各路玩家粉墨登场。在疫情的掩护下,将人们本已步履维艰的生活搅乱的更加浑浊。 360 安全大脑对上半年全球范围内针对PC端异常活跃的十大网络攻击威胁,包括疫情下流行病毒的趋势,以及伴随疫情出现的全新攻击面和攻击技术进行了梳理和总结,以此提醒广大企业和个人用户提高警惕,未雨绸缪而有备无患。 Top1 、勒索病毒独占鳌头 进入2020年,发展迅猛的勒索病毒没有丝毫放缓脚步,以更加来势汹汹的态势在全球横冲直撞“所向披靡”。在GandCrab家族一年半内赚下20亿美金的鼓舞下,上半年间,花样繁多的勒索病毒大有星火燎原之势,如同早已约定好上台表演次序一般,你方唱罢我登场,几乎每周都有勒索病毒“新起之秀”亮相,在广大用户身上刮下一层“油水”后,乘兴而来乘胜而归。 2020 上半年勒索病毒花样频出 上半年中占比最高的勒索病毒增长趋势图 2020 年上半年,勒索病毒繁多的变种更加趋于常态化,新型勒索病毒越演越烈的增长态势也愈发不可收拾。近两年来

Linux系统创建系统侦测不到的隐形进程(Rootkit技术必备)

半世苍凉 提交于 2020-08-07 12:45:52
在前面的文章中,我不止一次谈到隐藏一个进程的方法,该方法在我看来引以为豪地彻底又直接: 将task从tasks链表摘除。 将task从pid链表摘除。 如此一来除非你扫描run queue或者扫描内存进行特征匹配,否则很难找到这个被隐藏的进程: task即使被隐藏也要进入run queue运行。 task的字段值或者其地址本身具有特征。 当然,前面提到的perf probe/trace,dump stack之类的侦测技术无疑也属于扫描run queue或者特征匹配的范畴。 方法是好方法,确实也可以吊打那些hook procfs的方法,但是有个漏洞: task_struct是从kmem cache中分配的,而kmem cache是slab统一管理的! 我们将task从各类链表摘除,无非就是想做一件事,那就是让该task脱离管制,task所属的链表可以随意摘除,但是task出生的场所却不可改变! 我们把task的各类链表看作是它的身份证,户口本之类,属于task本身的合法性证件,那么管理task的kmem cache就是task出生的医院以及接生护士,携带着出生证明,在系统中,它就是task_struct_cachep。 身份证,户口本可以伪造,可以撕毁,但是task出生的医院却无法搬移! 只要我们扫描task_struct_cachep中的所有活动对象,那么定然可以找到所有task

信息安全 学习笔记(7)—— 【复习纲要】

被刻印的时光 ゝ 提交于 2020-08-06 15:01:04
信息安全课程:复习纲要 问答题[60分]: 一、ARP协议问题。 ARP协议的作用是什么。 引入ARP缓存的功能是什么。 ARP缓存中毒的攻击方法和效果是什么。 二、IP协议安全问题 为什么IP要进行分片? IP分片如何进行重组? 泪滴攻击(teardrop)的原理是什么? 包过滤防火墙,通过过滤SYN包,防止外部链接。攻击者可以如何绕过这个过滤? 三、ICMP协议安全。 什么是SMURF攻击?如何防止? 什么是ICMP重定向攻击?如何防止? 四、TCP协议安全。 什么是SYN flooding攻击?效果是什么?如何防止? 端口扫描的原理是什么? nmap -sS和nmap -sT的区别是什么? nmap -sA扫描的原理是什么? nmap idle扫描的原理是什么? 五、防火墙。 iptables是状态防火墙。状态防火墙相比于包过滤防火墙的优点是什么? NAT的作用是什么? sudo iptables –P INPUT DROP; iptables -A INPUT -p tcp --sport 80 -j ACCEPT 这两条语句的作用是什么? 六、Rootkit。 什么是rootkit? LKM的好处是什么? 请描述系统调用劫持的过程。 请解释,为何Unix可以做到一切皆文件。 七、缓冲区溢出。 什么是返回地址? 汇编语言中,call指令的作用是什么? 请描述当函数调用发生时

联发科芯片 Rootkit 漏洞分析(CVE-2020-0069)

∥☆過路亽.° 提交于 2020-08-06 00:54:55
作者:启明星辰ADLab 原文链接: https://mp.weixin.qq.com/s/ohMZkfyS_B_HVg3Xm0THbQ 一、漏洞背景 2020年3月,谷歌修补了一个存在于联发科芯片中的安全漏洞(CVE-2020-0069),漏洞影响20余款联发科芯片和数百万Android设备。该漏洞存在于MediaTek Command Queue驱动(CMDQ命令队列驱动),允许本地攻击者实现对物理内存地址的任意读写,从而导致权限提升。 二、受影响国产手机型号 Huawei GR3 TAG-L21 Huawei Y5II Huawei Y6II MT6735 series Lenovo A5 Lenovo C2 series Lenovo Tab E7 Lenovo Tab E8 Lenovo Tab2 A10-70F Meizu M5c Meizu M6 Meizu Pro 7 Plus Oppo A59 series Oppo A5s Oppo A7x -- up to Android 8.x Oppo F5 series/A73 -- up to A.39 Oppo F7 series -- Android 8.x only Oppo F9 series -- Android 8.x only Oppo R9xm series Xiaomi Redmi 6/6A

rootkit 能够“ root”一台主机并不意味着能持续地控制它,因为管理员完全可能发现了主机遭受入侵并采取清理措施。因此Rootkit的初始含义就在于“能维持root权限的一套工具”

孤者浪人 提交于 2020-08-05 05:12:34
rootkit Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。 外文名 rootkit rootkit是什么 在悬念迭起的中外谍战片里,对战双方中的一派势力通常会派遣特工人员潜伏到对手阵营中。这名卧底人员良好的伪装使得对手对此长时间毫无察觉;为了能够长期潜伏他不贸然采取高风险 行为以免过早暴露自己;他赢得敌人的信任并因此身居要职,这使得他能够源源不断地获取重要情报并利用其独特渠道传送回去。 从某种意义上说这位不速之客就是Rootkit——持久并毫无察觉地驻留在目标计算机中,对系统进行操纵、并通过隐秘渠道收集数据的程序。Rootkit的三要素就是:隐藏、操纵、收集数据。 “Rootkit”中root术语来自于unix领域。 由于unix主机系统管理员账号为root账号,该账号拥有最小的安全限制,完全控制主机并拥有了管理员权限被称为“root”了这台电脑。然而能够“ root”一台主机并不意味着能持续地控制它,因为管理员完全可能发现了主机遭受入侵并采取清理措施。因此Rootkit的初始含义就在于“能维持root权限的一套工具”。 简单地说,Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息