围观文件穿越操作
1. 打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走FSD irp
删除文件部分处理了删除正在运行的exe镜像部分,做法是方法是IAT Hook MmFlushImageSection
但是这样对于独占文件依旧不能处理,只好等到关机回调的时候ZwClose一下在检验
对于鬼影这种hook住微端口驱动的StartIo这种,直接判断驱动名字” hello_tt.sys” or “beep.sys”从里面硬编码一个原始StartIo的全局变量恢复,虽然看着比较2,但目前市面上就这一版鬼影在传播也就还好
而且并不是所有人的小端口驱动都是atapi,也许是为了处理nvgts之类的玩意儿。
2. 恢复FSD钩子,打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走irp,
hook MmFlushImageSection,然后删除文件之前先跑到其他进程里去关人家的句柄,这让可以删掉市面上大多数应用层***了。
3. 自己实现了所有Nt系列操作文件的功能(详见WRK),对文件的所有操作(包括目录的遍历)都会直接发送到FSD (为了实现这个目标还要自己实现一些Obxxxx的代码),当然FSD的irp/inline hook要处理
有一些irp操作不是你直接调用的,比如IRP_MJ_CLEANUP 是在ZwClose里面间接调用的,这里用到的方法是自己创建一个对象类型代替File类型,在打开文件时对对象类型进行了替换,这样ZwClose调用CloseProcedure就不再是IopCloseFile而是自己的函数。
文件删除部分有关闭其他进程里的句柄,IRP_MJ_LOCK_CONTROL,MJ的XCB大法(这个很久的文章以前分析过了)
这个文件穿透还是很强大的~~ 绕过了绝大多数菜鸟rootkit,大街上好rootkit还是太少了。
针对鬼影恢复了StartIo,目前只支持atapi的
还有一个功能貌似是测试网络连通性= =
这一篇和上一篇一样,读取和删除文件&注册表是查杀rootkit***用到的技术,“思路”的意思其实就是国内三款主流产品的一些原理= =
有兴趣的自己逆一下吧~
转载于:https://blog.51cto.com/hellxman/714750
相关文章:

图论 - 欧拉回路
Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N (…

学习 Linux,101: 引导系统
2019独角兽企业重金招聘Python工程师标准>>> 系列文章: http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?search_by%E5%AD%A6%E4%B9%A0linux101 从 BIOS 到运行 Linux 系统 引导顺序 在我们深入了解启动加载程序(比如 LI…

用Enter键取代tab键
1. this.TextBox1.Attributes.Add("OnKeyPress","<script>if keycode13 keycode9; return false;</script>");2. <input typetext οnkeydοwn"if (event.keyCode 13) event.keyCode 9;">
程序员:我受够了!不想再在小厂里干Java了!
你是否熟悉这样的情形:每天10点到公司,打开电脑:10个小时的增删改查,搬砖写代码的一天就这样开始了。刚毕业时候的你踌躇满志,按照自己的原定计划,这时候应该混到了阿里P6。可现在在小厂苦苦挣扎࿰…

iOS中UISearchBar(搜索框)使用总结
2019独角兽企业重金招聘Python工程师标准>>> iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar UISearchBar * bar [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)…

Linux常用性能检测命令
一、uptime Uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百…

怎样把DataGrid存放在ViewState中的无用数据卡掉
作者:无间道的博客http://www.cnblogs.com/wangsaokui/articles/10031.html 怎样把 DataGrid 存放在 ViewState 中的无用数据(有时候确实如此)卡掉,大家知道,一般而言DataGrid在ViewState中会存放表格中的所有数据,这样会导致View…
深度学习先驱 Yann LeCun 被骂到封推!AI 偏见真该甩锅数据集?
整理 | 夕颜出品 | CSDN(ID:CSDNnews)最近,人工智能领域又发生了一次热热闹闹的争论,随后演变成一场偏离轨道的争吵,目前以 Yann 道歉封推暂告一段落......争论来龙去脉这次争论的主角是图灵奖得主、人工智能标杆性人物…

JS加强学习-DOM学习01
JavaScript由三个部分组成:ECMAScript、DOM、BOM。前面已经学习了ECMAScript中的基础内容,现在可以开始学习DOM部分了,在DOM中更多的是实际效果的展现。 1. DOM定义 DOM:document object model 文档对象模型 它是将整个页面文档封…

android 游戏引擎libgdx demo cuboc分析
开始学习android游戏开发也有一段时间了,挑选libgdx这个游戏引擎来进行学习和开发。Libgdx是一款支持2D与3D游戏开发的游戏类库,并且它是夸平台的。例如你可以在windos下开发,同样的代码也可以运行在android上。 刚开始学习这个游戏引擎可能会感觉无从下手&#…
倒计时1天 | 张钹院士领衔,AI开发者大会20大论坛全攻略!
2020年7月3—4日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)(大会官网:https://aiprocon.csdn.net/)将以线上直播的形式与大家相见。本次大会历时2天,一次性设立6大主题、20大精彩分论…

在页面中导入文件
1. <% Response.WriteFile ("Yourfile.inc") %> 2. Server.Execute("Yourfile.inc")

How Tomcat works — 四、tomcat启动(3)
上一节说到StandardService负责启动其子组件:container和connector,不过注意,是有先后顺序的,先启动container,再启动connector,这一节先来看看container。 目录 Pipeline和VavleStandardEngine类和Standar…

DataList分页
<% Page Language"C#" %> <% Import Namespace"System.Data" %> <% Import Namespace"System.Data.OleDb" %> <Script Language"C#" Runat"Server"> /* Create By 飞刀 http://www.aspcn.com 20…

【中文】Joomla1.7扩展介绍之Googlemaps Plugin
Googlemaps Plugin 插件分类:Maps 支持版本:1.5 /1.6 /1.7 关注程度:【最流行的】 所属类型:插件、多语种 可以在 Joomla 1.5.x (native), 1.6.x and 1.7.x. 的内容条目、模块或者组件中显示一个(或多个)…
一文读懂:GoogleNet的Inception从v1到v4的演变
来源 | 机器学习炼丹术GoogleNet和VGG是ImageNet挑战赛中的第一名和第二名。共同特点就是两个网络的层次都更深了。但是:VGG继承了LeNet和AlexNet的一些框架结构而GoogleNet则做了更大胆的尝试,虽然深度有22层,但是参数却是Alexnet的1/12.而V…

几何画板画一个五边形内部的方法
五边形属于多边形里面比较简单的,就是在四边形的基础上增加一条边而已,五边形在平面几何学上指所有由五条边围衬成及有五个角的多边形。完美五边形和正五边形都是五边形的一种特殊类型。几何画板作为专业绘图工具,可以轻松就画出五边形&#…

GDAL Data Model(转)
即描述一个GDAL data store能够包含的信息的类型。 Dataset 一个dataset (即一个GDALDataset 对象)是一组相关的raster bands和一些属于它们的公共信息的集合。尤其是dataset有一个适用于它所有bands的关于raster size的概念,它是用pixels 和…
实战:人脸识别实战项目(源码共享)
首先我想问个问题:现在什么工程师最值钱?毫无疑问,我想超 90% 的都会说:人工智能工程师。也难怪,随着近几年人工智能的发展,已经逐渐渗透到了各个领域,比如:医疗、教育、机械自动化、…

Calendar如何只显示“一、二、三...日”,不显示“星期”
秋水无恨 asp.net Calendar DayNameFormat Globalization DayNames http://www.csdn.net/develop/Read_Article.asp?id15715 Calendar的DayNameFormat,如FirstLetter ,FirstTwoLetters ,Full ,Short 但是争对英文而言的…

gulp插件之browser-sync安装报错
2019独角兽企业重金招聘Python工程师标准>>> 最近做前端开发,一直用gulp来写一些自动化脚本。之前用的npm的镜像为edunpm,很简单,因为这个镜像非常的快。 但是不知道为什么browser-sync插件总是下载不成功。。。 后来用nrm切换到t…
TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?
出品 | AI科技大本营(ID:rgznai100)众所周知,在机器学习框架领域,PyTorch、TensorFlow已分别成为目前学界和业界使用最广泛的两大实力玩家,而紧随其后的Keras、MXNet等框架也由于其自身的独特性受到开发者的喜爱。 202…

结构成员访问的三种方法
结构成员访问的三种方法 #include "stdio.h"#include "string.h"#include <stdlib.h>main (){struct student{int num;char * name;int score;}stu;struct student *p&stu;stu.num1;(*p).name"tom";p->score78;printf("%d\n&q…

数据库字段命名及设计规范
1.设计原则 1) 标准化和规范化数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是…

更改管理GPO的域控制器
1.GPO先被存储到扮演PDC模拟器操作主机角色的域控制器,然后再由它将其复制到其他域控制器,域成员计算机再通过域控制器来应用GPO.2.可通过DC选项与组策略两种方式来将管理GPO的域控制器从PDC模拟器操作主机更改为其他域控制器。转载于:https://blog.51ct…

怎样使元素可编辑
作者:http://lucky.myrice.comE-mail:amxh21cn.com 在IE5.5中,可以设定元素的编辑属性。语法如下: object.contentEditable [ sEditable]; 其中的sEditable为下列三个之一: ◇inherit ◇false ◇true <script lang…

知乎多场景内容匹配方案荣获CSDN AI优秀案例奖
7月3日,由CSDN主办的2020 AI开发者大会拉开帷幕,以直播形式进行吸引了上万名技术从业者参与。大会颁发了2020 AI企业及技术应用系列奖项,其中知乎凭借“多场景内容匹配方案”荣获“AI优秀案例奖”。 过去一年,人工智能技术研发和…

批量创建用户和设置密码
(1) 首先创建用户名文件和密码文件 # touch user_name passwd active:/srv # cat passwd win00:123456 win01:123456 active:/srv # cat user_name win00:x:520:520::/home/win00:/bin/bash win01:x:521:521::/home/win01:/bin/bash (2) 然后执行命令导入用户名和密码 a…

Eclipse 小插件
http://www.junginger.biz/eclipse/
肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁
图源 | 视觉中国来源|Python编程时光(ID: Cool-Python)今天要给大家介绍的一个 Unix 下的一个 网络数据采集分析工具 -- Tcpdump,也就是我们常说的抓包工具。与它功能类似的工具有 wireshark ,不同的是,wireshark 有图…