ring0 进程隐藏实现】的更多相关文章

最近在学习内核编程,记录一下最近的学习笔记. 原理:将当前进程从eprocess结构的链表中删除 无法被! process 0 0 看见 #include "HideProcess.h" #ifdef WIN64 #define ACTIVEPROCESSLINKS_EPROCESS 0x188 #define IMAGEFILENAME_EPROCESS 0x2e0 //16个字节组成的单字数组 #else #define ACTIVEPROCESSLINKS_EPROCESS 0x…
原文链接:http://www.blogfshare.com/ssdthook-hide-protect.html 原文作者:AloneMonkey SSDT Hook实现简单的进程隐藏和保护 AloneMonkey 2014年7月21日  有前面对SSDT的了解之后,如果还有不是很了解的同学,请参考SSDT详解及Win32 API到系统服务描述符表调用的完整过程.已经讲的很详细了. 一.SSDT HOOK原理 其实 SSDT Hook 的原理是很简单,从前篇的分析,我们可以知道在 SSDT 这…
文章目录:                   1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ring0 实现进程保护: 6. 隐藏进程列表和保护进程列表的维护: 7. 小结: 1. 引子 – Demo 实现效果: 上一篇<进程隐藏与进程保护(SSDT Hook 实现)(一)>呢把 SSDT 说得差不多了, 博文地址: http://www.cnblogs.com/BoyXiao/archiv…
论文关键字: 内核 拦截 活动进程链表 系统服务派遣表 线程调度链 驱动程序简介    论文摘要:信息对抗是目前计算机发展的一个重要的方向,为了更好的防御,必须去深入的了解敌人进攻的招式.信息对抗促使信息技术飞速的发展.下面我选取了信息对抗技术的中一个很小一角关于windows内核级病毒隐藏技术和反病毒侦测技术作为议题详细讨论.   1.为什么选驱动程序   驱动程序是运行在系统信任的Ring0环境下在代码,她拥有对系统任何软件和硬件的访问权限.这意味着内核驱动可以访问所有的系统资源,可以读取所…
零.背景 在应急响应中,经常碰到ps命令和top命令查不到恶意进程(异常进程)的情况,会对应急响应造成很大的影响.轻则浪费时间,重则排查不出问题,让黑客逍遥法外.所以这篇博客研究学习如何对抗linux进程隐藏的手段. 一.用户态隐藏 这是一类简单的隐藏方法,同时也是相对容易破解的方法. 1.命令替换 替换ps.top.ls等命令的文件,破解方法很简单,查看文件修改时间和HASH值,如果与默认时间,或正常命令文件的HASH值不符,则被替换.破解方法,传回来一个正常的文件重新使用命令操作即可 #查看…
想必能找到这里的都是被吴一民的操作系统大作业坑过的学弟学妹了,当初我也是千辛万苦才把这个作业完成了,本着服务后辈的宗旨,尽量让学弟学妹少走弯路,我会把实现的大概思路记录下来.本系列一共三篇文章,分别实现了三种进程隐藏的方法. 实验目标 ps和top命令列出了unix中当前所有进程的相关信息,作业要求在linux中增加两个系统调用,功能如下: hide():执行此系统调用后,隐藏当前进程,即当前进程不能够被ps和top命令查看到. unhide():执行此系统调用后,取消隐藏当前进程,即当前进程恢…
前面我们介绍了如何修改/proc目录读取函数的方法实现进程隐藏.这篇博文将介绍另一种方法—— 劫持系统调用实现进程隐藏. 其基本原理是:加载一个内核模块(LKM),通过劫持系统调用sys_getdents()来针对进程文件进行适当的过滤,从而达到隐藏进程文件的目的. 由于实验方法一时,已经修改过了proc_pid_readdir函数,这会影响方法二的实现,因此必须把方法一中所做的修改恢复.打开proc_pid_readdir所在的源文件fs/proc/base.c 在其中加入DEBUG_PROC…
通过一个内核模块拦截文件系统的回调函数来实现进程隐藏. VFS(Virtual File System)是Linux在实际文件系统(如ext3,ext4,vfat等)上抽象出的一个文件系统模型,简单来说,VFS像是一个抽象类,为访问文件系统的内核线程提供了统一的接口,而各个具体文件系统是这个抽象类的子类,因此,可以说VFS用到了面向对象的思想. proc文件系统也是VFS抽象类的一个具体子类,与其它文件系统不同的是,它是存在与内存中的虚拟文件系统,以文件系统的方式为访问内核数据的操作提供接口.在…
文章目录: 1. 引子: 2. 获取当前系统下所有进程: 3. 服务管理(安装,启动,停止,卸载): 4. 应用程序和内核程序通信: 5. 小结: 1. 引子: 关于这个 SSDT Hook 实现进程隐藏和进程保护呢,这是最后一篇博文了,在文章的结尾处你可以下载到整个项 目的实例程序以及代码,程序可以在 XP.Server.Win7 上运行的,当然我说的是32 位操作系统. 这一篇博文介绍的则是在 Ring3 下编写 MFC 应用程序,并且让应用程序与内核程序通信,即由应用程序 将需要隐藏的进程…
1.命令替换 实现方法 替换系统中常见的进程查看工具(比如ps.top.lsof)的二进制程序 对抗方法 使用stat命令查看文件状态并且使用md5sum命令查看文件hash,从干净的系统上拷贝这些工具的备份至当前系统,对比hash是否一致,不一致,则说明被替换了. 注:需要在bin目录下执行. 2.Hook系统调用 以ps 工作原理为例说明这些进程信息查看工具的原理 我们知道/proc是一个虚拟文件系统,是VFS的一个实现形式,/proc中包含了内核信息,硬件信息,进程信息等,ps等工具就是通…
---恢复内容开始--- 首先,我要说一件很重要的事,本人文采不好,如果哪里说的尴尬了,那你就尴尬着听吧...... SSDT HOOK最初貌似源于Rookit,但是Rookit之前有没有其他病毒使用,这就不清楚了,总之这个功能很不错,那么什么是SSDT呢,SSDT全称是(System Services Descriptor Table),它将ring3的Win32 API和ring0的内核函数联系起来,SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基…
读了这篇文章终于明白大致怎么回事了 文章目录:                   1. 引子 – Hook 技术: 2. SSDT 简介: 3. 应用层调用 Win32 API 的完整执行流程: 4. 详解 SSDT: 5. SSDT  Hook 原理: 6. 小结: 1. 引子 – Hook 技术: 前面一篇博文呢介绍了代码的注入技术(远程线程实现),博文地址如下: http://www.cnblogs.com/BoyXiao/archive/2011/08/11/2134367.html…
大二时候的代码以及笔记,当时暂时记录在QQ上在,现在发出来分享一下. 为了写驱动装一大堆的软件插件啥的,还常常失败. 这里就顺带总结下SDK下载和WinDbg symbol路径设置正确WinDbg却总是无法找到symbol文件的问题.(当然我的失败解决或者说问题原因的解决不是屡试不爽的,这里仅供您参考和我个人总结.) 1.SDK安装失败的问题        SDK装的有八九次,总是失败,第二天才成功,我是通过Visual Studio联网来下载WIN10的SDK模块自动安装的的,也有同学是通过微…
1.EPROCESS结构体 EPROCESS块来表示.EPROCESS块中不仅包含了进程相关了很多信息,还有很多指向其他相关结构数据结构的指针.例如每一个进程里面都至少有一个ETHREAD块表示的线程.进程的名字,和在用户空间的PEB(进程环境)块等等.EPROCESS中除了PEB成员块在是用户空间,其他都是在系统空间中的. 2.查看EPROCESS结构 kd> dt_eprocessntdll!_EPROCESS   +0×000 Pcb              : _KPROCESS  …
unhide 是一个小巧的网络取证工具,能够发现那些借助 rootkit.LKM 及其它技术隐藏的进程和 TCP/UDP 端口.这个工具在 Linux.UNIX 类.MS-Windows 等操作系统下都可以工作.根据其 man 页面的说明: Unhide 通过下述三项技术来发现隐藏的进程. 进程相关的技术,包括将 /proc 目录与 /bin/ps 命令的输出进行比较. 系统相关的技术,包括将 /bin/ps 命令的输出结果同从系统调用方面得到的信息进行比较. 穷举法相关的技术,包括对所有的进程…
在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB.把它们放到一起是因为这三个数据结构及其外延和windows中进程的表示关系密切,我们在做进程隐藏和进程枚举的时候一定会涉及到这3类数据结构,所以这里有必要及时做一下总结,做个学习笔记,理清思路. 1. 相关阅读材料 <windows 内核原理与实现> --- 潘爱民 <深入解析windows操作系统(第4版,中文版)> --- 潘…
目录 SSDT Hook效果图 SSDT简介 SSDT结构 SSDT HOOK原理 Hook前准备 如何获得SSDT中函数的地址呢 SSDT Hook流程 SSDT Hook实现进程保护 Ring3与Ring0的通信 如何安装启动停止卸载服务 参考文献 源码附件 版权 SSDT Hook效果图 加载驱动并成功Hook  NtTerminateProcess函数: 当对 指定的进程进行保护后,尝试使用“任务管理器”结束进程的时候,会弹出“拒绝访问”的窗口,说明,我们的目的已经达到: SSDT简介…
要编写一个类似于 Windows 任务管理器的软件,首先遇到的问题是如何实现枚举所有进程.暂且不考虑进入核心态去查隐藏进程一类的,下面提供几种方法.请注意每种方法的使用局限,比如使用这些 API 所需要的操作系统是什么(尤其是是否能在 Windows Mobile 下使用). 本文参考用户态枚举进程的几种方法,原文对于每一种方法都给出了完整的代码,被我照抄下来.还有一篇:如何用 Win32 APIs 枚举应用程序窗口和进程.基于我现学现卖的本质,对我演绎的部分请抱着批判的眼光来看,另外代码也没有…
零.proc目录简介 proc目录是虚拟文件系统(VFS)的一种实现,保存了进程信息(pid目录)和一些系统信息. 一.系统的信息 1.cpuinfo和meminfo两个文件 查看CPU和内存相关信息 2.kmsg文件.mounts文件.modules文件 分别记录内核输出日志,挂载目录情况和内核模块(lsmod的原理)情况 3.uptime文件.version文件 存启动时间信息,和内核版本信息 4.net目录 存储协议连接情况,netstat的原理就是查看这里,当然输出是格式化了的,与进程号…
原作者:Bypass 原文链接:转自Bypass微信公众号 0x00 前言 攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,本文介绍Linux下的几种隐藏技术. 0x01 隐藏文件 Linux 下创建一个隐藏文件: touch .test.txt touch 命令可以创建一个文件,文件名前面加一个 点 就代表是隐藏文件,如下图: 一般的Linux下的隐藏目录使用命令ls -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令:ls -al 这里,我…
写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我. 你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核--简述 ,方便学习本教程.   看此教程之前,问几个问题,基础知识储备好了吗?保护模式…
目录 . Rootkit相关知识 . BROOTKIT源码分析 . 关键技术点 . 防御策略 1. Rootkit相关知识 关于rootkit的相关其他知识,请参阅以下文章 http://www.cnblogs.com/LittleHann/p/3918030.html http://www.cnblogs.com/LittleHann/p/3910696.html http://www.cnblogs.com/LittleHann/p/3879961.html http://www.cnblo…
目录 . Chkrootkit Introduce . Source Code Frame . chklastlog.c . chkwtmp.c . ifpromisc.c . chkproc.c . chkdirs.c . check_wtmpx.c . strings.c . chkrootkit的使用场景及其局限 1. Chkrootkit Introduce chkrootkit是一个Linux系统下的查找检测rootkit后门的工具,需要明白的是,chkrootkit是一款ring3级…
目录 . The Purpose Of Rootkit . Syscall Hijack . LKM Module Hidden . Network Communication Hidden . File Hidden . Process Hidden . Hidden Port Remote Reverse Connections . Programe Replacing 1. The Purpose Of Rootkit Basically, the purpose of rootkit i…
目录 . 引言 . LRK5 Rootkit . knark Rootkit . Suckit(super user control kit) . adore-ng . WNPS . Sample Rootkit for Linux . suterusu . Rootkit Defense Tools . Linux Rootkit Scanner: kjackal 1. 引言 This paper attempts to analyze the characteristics from the…
目录 . 学习Rootkit需要了解的基础知识 . 挂钩(HOOKING) . 直接内核对象操作 . LSM框架(Linux Security Module)于LKM安全 . rootkit检测技术及工具 1. 学习Rootkit需要了解的基础知识 0x1: 什么是rootkit rootkit是允许某人控制操作系统的特定方面而不暴露他或她的踪迹的一组代码.从根本上说来,用户无法察觉这种特性构成了rootkit.rootkit会想尽办法去隐藏自己的网络.进程.I/O等信息(注意,这里所谓的隐藏,…
目录 SSDT Hook效果图 SSDT简介 SSDT结构 SSDT HOOK原理 Hook前准备 如何获得SSDT中函数的地址呢 SSDT Hook流程 SSDT Hook实现进程保护 Ring3与Ring0的通信 如何安装启动停止卸载服务 参考文献 源码附件 版权 SSDT Hook效果图 加载驱动并成功Hook  NtTerminateProcess函数: 当对 指定的进程进行保护后,尝试使用“任务管理器”结束进程的时候,会弹出“拒绝访问”的窗口,说明,我们的目的已经达到: SSDT简介…
原文链接:和Taskmgr过不去篇(无厘头版) Hook入门级文章,主要想培养一下偶写文章的感觉,老鸟无视…我想看看技术文章能不能无厘头的写,如果效果不错的话,准备更上一层-----用我的原创漫画表达.:) 
(警告1:文章中有部分“限制级”词语,请11岁以下弟弟妹妹误入)
(警告2: 修正警告1,不是“误入”,是“勿入”哦,我没有做暗示哦…) 时间: 终结者2018年场景: 地下泡泡澡堂故事: 纯属虚构 在一场残酷的西红柿大战后,最终邪恶阿宝使用卑鄙无耻的招数轻松战胜了单纯的加菲,于是哥俩一起…
EPROCESS KPROCESS PEB <寒江独钓>内核学习笔记(2)     在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB.把它们放到一起是因为这三个数据结构及其外延和windows中进程的表示关系密切,我们在做进程隐藏和进程枚举的时候一定会涉及到这3类数据结构,所以这里有必要及时做一下总结,做个学习笔记,理清思路. 1. 相关阅读材料 <windows 内核原理与实现>…
@author: dlive IAT Hook时如果要钩取的API不在IAT中(LoadLibrary后调用),则无法使用该技术.而Inline Hook不存在这个限制. 0x01 Inline Hook原理 原理比较简单,将API代码的前5个字节修改为JMP xxxxxx 指令来钩取API.调用执行被钩取的API时,JMP XXXXXX指令被执行,转而跳转至Hook函数. 0x02 相关API 用户模式下检测进程的相关API通常分为如下两类: CreateToolhelp32Snapshot(…