一种有效的进程隐藏方案实现

合集下载

Windowsserver2008inaoWSSeW艮务器进程隐藏机制的研究与实现

Windowsserver2008inaoWSSeW艮务器进程隐藏机制的研究与实现

法就是调用系统AP I ; C r e a t e To o l He l p 3 2 S n a p s h o t 、 E n u m P r o c e s s 、 E n u m P r o c e s s Mo d u l e s 等, 它们是获取进程列表 的第一 层手段 , 调用这几个AP I 函数 , 就可 以得带系统当前运行进程的返
回列 表 。
这几 个API 在 接到请 求后会 调用Zw Qu e r y S ys t e m I n f o r ma t i o n, Z w Q u e r y S t s t e m I n f o r ma t i o n, 会 调 用 Ki S y s t e m S e r v i c e 切入 内核进入r i n g 0  ̄限 , 然后 自S S D T 表( S y s t e m S e r v i c e D e s c r i p t o r T a b l e , 系统服务分配表) 中查得Nt Q u e r y S y s t e m I n -
HOO K, 而在之后进行H O0 K则是内核模 式HO OK, 后者需要驱动 才能实现 。 它 比前几种技术更为成熟 。 这种技术使得木马不必将 自 技术 的发展方 向, 有助于采取更有力的应对措施 。 了解进程 隐藏技 己插入到其他进程 中, 即可实现 自身信息的 隐藏 。 术, 是开发防病毒和木马软件 的基础 , 同时也助于促 进信息安全技 更为高级的技术是D KO M一直接 内核对象修改技术 , 是 由木 术的发展 。
应 用研 究
_ 4 。 { l 与 应 用 蘩
do ws s e r ve r 2 00 8
服务器进程隐藏机制的研究与实现

Windows环境木马进程隐藏技术研究

Windows环境木马进程隐藏技术研究

0 引言随着计算机技术的迅速发展和网络应用的日益普及,恶意代码出现的频率越来越高。

目前,隐藏功能已成为很多恶意代码的一个重要特征,分析恶意代码使用的隐藏手段和相关的技术,可以让我们更好地提高防范意识,并据此采取相应的防御和检测措施。

特洛伊木马(简称木马)是具有较强隐藏功能的一类恶意代码。

它通常伪装成合法程序或隐藏在合法程序中,通过执行恶意代码,为入侵者提供非授权访问系统的后门[1]。

本文首先简单介绍了木马实现的常用技术,接着重点分析了Windows环境下木马实现进程隐藏经常使用的技术。

1 木马实现常用技术1.1 注册表修改很多木马在实现时都会修改注册表,修改的目的通常是:借助于注册表来实现启动或隐藏。

在注册表的多个项目中都包含启动项。

启动项的数值可以设置为用户指定的、伴随系统启动或服务启动而自动运行的程序的绝对路径。

因此,将启动项的数值设置为木马程序的路径,就可以实现木马的启动。

但是,使用注册表编辑器能够很容易地将注册表项的数值删除,为此,很多木马在使用时都加入了时间控制程序段,以监视注册表中相应的数据是否存在,一旦发现被删除则会立即重新写入。

1.2 反向连接反向连接就是被攻击者主动连接攻击者的过程,通常是运行木马的服务端进程主动连接客户端控制进程并进行通信的过程,也称为反弹技术[2] [3]。

其基本原理是利用防火墙对由内到外的连接疏于防范的弱点来实现由内到外的主动连接。

NameLess木马实现时也用到了反向连接,它使用嗅探原理来取得控制端的IP地址,然后实现反向连接。

1.3 端口复用端口复用是指在一个端口上建立了多个连接,而不是在一个端口上面开放了多个服务。

一种常用的端口复用技术,就是利用系统实际存在的系统的合法端口进行通讯和控制,如21、23、80等,使一个端口除了完成正常的功能外,还可用于木马通信,而不是使用一个新开的端口号[2]。

这样的好处就是非常隐蔽,不用自己开端口也不会暴露自己的访问,因为通讯本身就是系统的正常访问。

基于远程线程注入的进程隐藏技术研究

基于远程线程注入的进程隐藏技术研究
维普资讯
第2 8卷
20 0 8年 6月

计 算机应 用
Co u e p iai n mp t rAp lc t s o

Vo . 128
Jn 0 8 u e2 0
文章编号 :0 1— 0 12 0 ) 1一 O 2— 3 10 9 8 ( 0 8 S O9 0
大多数 R oKt oti具有一个 主要 的 目的 : 对计算机进行 持续 访问, 为入侵者提供潜行 能力 , 隐藏入侵者在系统 中各项行为 的存 在。R o i包括 了多种 隐藏入 侵者 在系 统 中存 在 的功 ot t K 能, 这其 中就 包 含 允 许 入 侵 者 隐 藏 当前 系统 中 的 进 程信
0 引言
特 洛伊木马作为一种危 害性大 、 隐藏性高 的远 程控制 工 具, 一直是 H ce 技术的后 门控制技 术 R o i 2得 以蓬 勃发展 。 ot t ] K u-
1 Widw oti进 程隐藏 n o sR o t K
ma e u e o PC me h n s t e l e an w t c t t g dn r c s .F n l e d t t n t h oo ae n t e d s A c a im o r ai e at k s a e o h i g p o e s i a y t ee i e n lg b s d o f z a r y f i l h c o c y h p n il P c a im s i r v d I a tt i atc to s mo e c n e e , S tc n c n rn oma id n i f cp e o A C me h n s wa mp o e . n f c s t k me d i l o c a d O i a o f tn r l h d e f h a h l o

恶意代码的实现技术

恶意代码的实现技术

恶意代码的实现技术摘要:本文着重讲述恶意代码实现技术中的攻击渗透技术和隐藏技术。

关键词:本地攻击网络攻击进程隐藏通讯隐藏在实现恶意代码的过程中,主要涉及到攻击渗透技术、自动升级技术、随机启动技术、隐藏技术、远程控制技术、破坏技术等六大技术体系。

这些技术中,攻击渗透技术和隐藏技术是对恶意代码编写者要求较高的技术,也是影响最为深远的技术,这两种技术的重大创新可能会影响整个安全防护体系。

下面我将对这两种技术做详细的阐述。

1 攻击渗透技术攻击渗透技术的任务是保证恶意代码能够植入到目标主机中去。

常见的攻击渗透方式有两种:本地攻击和网络攻击。

本地攻击是早期病毒常用的攻击方法,主要攻击对象是本地存储体,包括磁盘的引导区或者是磁盘上存储的文件等。

网络攻击过程包括邮件攻击和漏洞攻击两种方式。

邮件攻击的主要方式是通过获取受害主机内部存储的邮件地址列表作为邮件接收者,然后将恶意代码自身作为邮件的附件发送出去。

漏洞攻击技术主要有弱口令漏洞攻击和缓冲溢出漏洞攻击。

典型的黑客网络攻击过程包括信息搜集、弱点分析、攻击渗透、痕迹清除、潜伏等待五个阶段。

恶意代码的攻击过程和典型的黑客攻击过程并不完全相同,由于恶意代码本身短小精悍,功能相对单一,不可能完成过多的功能,并且具有自主攻击能力的恶意代码,一般都会有明显异常的网络行为,如果受害对象具有较强的安全意识,采取必要的安全措施,相对来说是比较容易防范的,只有在受害对象的网络安全意识不强的情况下才能完成攻击任务。

所以,恶意代码的攻击渗透过程很少考虑到清除痕迹,或者只是简单的进行日志清理工作。

恶意代码的攻击过程为:创造攻击环境、构造攻击目标、实施攻击过程、等待攻击结果。

创造攻击环境的方法和具体攻击方法有关。

在利用邮件进行攻击的时候,创造的条件需要能够发送邮件,实现方式可以控制现有的邮件发送程序,比如outlook,也可以自己利用socket 接口实现邮件传输协议,编写自己的邮件发送程序。

基于Windows内核的进程隐藏工具的设计与实现本科毕业设计

基于Windows内核的进程隐藏工具的设计与实现本科毕业设计

毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。

除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。

对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。

本人完全意识到本声明的法律结果由本人承担。

2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。

本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。

3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。

4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。

论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。

论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。

对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。

学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。

本人完全了解大学有关保存,使用毕业论文的规定。

同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。

本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。

如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。

本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。

本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。

隐藏应用的方法

隐藏应用的方法

隐藏应用的方法
隐藏应用的方法有多种,以下是一些常用的方法:
1. 文件夹隐藏法:将应用图标拖动到一个新建的文件夹内,然后将文件夹中的所有图标都移出,使文件夹内没有任何图标显示。

这样,应用图标就会被隐藏起来。

2. 搜索隐藏法:在应用列表或桌面上,使用搜索功能来查找应用程序,然后打开应用。

在应用打开后,按住返回键或者主页键,将应用切换到后台运行,这样应用图标就不会在桌面或应用列表中显示。

3. 第三方应用隐藏法:有一些第三方应用可以帮助隐藏应用图标。

这些应用通常会创建一个隐藏应用的专用空间,只有在输入特定的密码或手势后才能显示和访问隐藏的应用图标。

4. 设置中的隐藏法:某些Android手机系统提供了隐藏应用的设置选项。

可以在“设置”-“应用”或“应用管理器”中找到要隐藏的应用,然后选择隐藏或禁用该应用,这样它就不会在应用列表或桌面上显示。

请注意,隐藏应用的方法可能因不同品牌和型号的手机而有所差异。

所以建议在操作前先查找相关资料或咨询手机厂商的官方支持。

hidetoolz 用法

hidetoolz 用法

hidetoolz 用法
hidetoolz是一款常用的隐藏进程工具,可以有效地保护您的电脑安全。

下面是 hidetoolz 的使用方法:
1. 下载并安装 hidetoolz 软件。

2. 打开 hidetoolz 软件后,选择“Hide Process”选项卡。

3. 在列表中选择你要隐藏的进程,并点击“Hide”按钮,即可将该进程隐藏起来。

4. 若要取消隐藏某个进程,点击“Unhide”按钮即可。

5. 在“Advanced”选项卡中,可以选择将隐藏进程设为系统进程、隐藏进程文件等高级操作。

6. 在“Settings”选项卡中,可以设置自动隐藏某些进程、开机自启动等选项。

需要注意的是,hidetoolz 可能会引起某些杀毒软件的警报,建议在使用时先关闭杀毒软件,并谨慎使用该软件。

以上就是 hidetoolz 的使用方法,希望对大家有所帮助。

- 1 -。

几种隐藏批处理运行窗口的方法

几种隐藏批处理运行窗口的方法

⼏种隐藏批处理运⾏窗⼝的⽅法(1)通过批处理命令实现。

缺点:会看到⼀个窗⼝⼀闪⽽逝。

优点:简单,直接添加即可。

@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:begin::以下为正常批处理命令,不可含有pause set/p等交互命令pause(2)利⽤vbs脚本实现隐藏。

缺点:调⽤⿇烦点。

优点:基本看不到痕迹(⾮绝对的,指⼀般⽤户)HideRun.vbsCreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0其中D:/test.bat是你的批处理路径.....................................................................................................................................另⼀思路为把bat转换成vbs,然后vbs⽣成⼀个临时bat⽂件,然后WScript.Shell.Run隐藏启动这个临时bat。

HideRun.batecho CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbscscript.exe /e:vbscript $tmp.vbsdel $tmp.vbs这个批处理其实不能使其批处理本⾝隐藏,但是下⾯⼤部分隐藏调⽤批处理的原理和基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种有效的进程隐藏方案实现作者:任雁军来源:《电脑知识与技术》2020年第05期摘要:該文从Windows操作系统的进程的运行机制出发,简要介绍了Windows操作系统的进程的分类及管理机制,对常见的基于Windows操作系统的进程隐藏技术进行了概要的介绍并对各类隐藏技术的优势和不足进行的分析阐述,最后从实用的角度出发,结合几种不同的进程隐藏技术的特点与优势,给出了一种有效的进程隐藏方案,并详细地分析解读了实现这一方案的主要技术方法。

关键词:进程隐藏;动态链接库;DLL劫持中图分类号:TP393 文献标识码:A文章编号:1009-3044(2020)05-0244-02开放科学(资源服务)标识码(OSID):进程是操作系统中正在运行的一个应用程序,是系统进行资源分配和调度的基本单位,微软的Windows是目前在PC机上应用最广的多用户操作系统,Window系统的进程大致可分为:系统核心进程、系统进程、服务进程及用户进程。

使用Win-dows自带动任务管理器可以查看并管理一部分显式存在的进程,然而还有很多进程则是以隐性的方式存在的,无法用任务管理器或其他工具对其进行查看、终止及删除。

1 常见进程隐藏技术所谓的进程隐藏,通俗地讲就是让可执行程序以隐蔽的方式被加载并且使其进程尽可能地长期驻留在内存中的方法。

1.1 进程伪装1)简单地将程序改名与系统进程相同或者相似,早期的木马或病毒多使用这种方法隐身,显然很容易被识别。

2)将自身注册为DLL模式的系统服务这样在系统进程列表中就能实现隐身,这种方法虽简单,但需要较高的权限。

3)借助系统程序Rund1132.exe启动dll程序也能实现简单的进程隐藏,但隐身的强度不高。

4)通过修改进程PEB中的命令行参数实现伪装,这种方法容易被杀毒软件查杀。

1.2代码注入将自身代码动态地写入目标进程的内存而实现隐身,这种方法用在系统进程中很难实现,在一般进程中的存活时间取决于目标进程的存活期,极易被杀毒软件查杀。

1.3 HOOK隐藏使用API HOOK函数捕获系统消息而实现进程隐藏,这种方法需要较高的权限,也是杀毒软件紧盯的目标。

1.4 DLL劫持利用系统加载DLL的顺序,将伪造的同名Dll插在目标Dll之前被加载,这种方法很巧妙,但随着windows系统安全防护性能的不断改进,在win7之后已经很难找到可以劫持的系统关键Dll了。

可见前面介绍的每一种进程隐藏方法都有自身的优势和缺陷,在现实中那些与系统进程密切接触的方法(比如HOOK和注入等)已经成了杀毒软件紧盯的目标,正确的做法是:让你的动作尽量接近正常!同时综合使用多种方法和策略,也能达到取长补短的效果。

2 一种进程隐藏方案实现2.1实现原理1) Dll劫持原理:Windows可执行文件输入表中列出的函数名实体存身在不同的动态链接库(Dynamic Link Library,缩写为DLL)文件中,只有当函数被调用时,系统才加载所需的DLL文件到内存中,由于输入表只指定了DLL文件名而没有指定具体路径,所以系统加载器按照:当前目录一系统目录一环境路径的顺序查找并加载同名DLL文件。

如果将含有相同输出表的同名DLL文件放在可执行文件所在的目录下就可抢先加载这个伪DLL文件,当然之后还需将原DLL加载以免系统报错。

2)劫持Version.dll实现加载并存活:由于Windows安全防护机制的不断进步,win7之后系统关键DLL(如:kerne132.dll、ws2_32.dll、lpk.dll等)已经无法劫持了,所以被劫持的DLL文件的选择需要满足两个条件:非系统关键文件并且使用率较高。

本方案选择Version.dll 作为被劫持对象,常见用户进程(比如IE、WINWord等)都会调用它,可以保证“伪Version.dll”的加载成功,当然“伪Version.dll”会伴随调用它的用户进程的终止而退出。

3)利用Rund1132隐身:在“伪Version.dll”中创建一个独立的Rund1132进程加载真正需要隐身的xx. dll进程。

命令行参数为:Rund1132 xx,函数名。

2.2 实现示意图图1进程隐藏方案实现示意图2.3 主要代码A>使用预处理命令向原Version.dll直接转发导出函数#pragma comment(linker, "/EXPORT: VerFindFileA=version-Org.VerFindFileA,@1”)#pragma comment(linker, "/EXPORT:VerFindFileW=version-Org.VerFindFileW,@2")….#pragma comment(linker, "/EXPORT: VerInstaIIFileA=_AheadLib_VerInstaIIFileA,@8”)#pragma comment(linker, "/EXPORT: VerInstaIIFileW=_AheadLib_VerInstaIIFileW,@9")….‘#pragma comment(linker, "/EXPORT:VerLanguageNameA=_AheadLib_VerLanguageNameA, @12 ")#pragma comment(linker, "/EXPORT:VerLanguageNameW=_AheadLib_VerLanguageNameW, @13 ")B>+iJ断 xx进程是否存在,确保内存中只有_Ai xx进程BOOL isMypro(HANDLE hPro,DWord dwPID)TCHAR szCommandLine[MAX_PATH] = {0};DWord dwThreadld = 0;DWord dwExitCode = 0;DWord dwReaded = 0;HANDLEhThread=CreateRemoteThread (hPro,NULL,NULL,(LPTHREAD_START_ROUTINE)GetCommandLine,NULL, 0, &dwThreadld); if (hThread){WaitForSingleObj ect (hThread, 20);GetExitCodeThread(hThread, &dwExitCode);ReadProcessMemory(hPro,(LPCVOID)dwExitCode, szCom-mandLine,MAX_PATH, &dwReaded);CloseHandle(hThread);if(strlen《char *)szCommandLine)! =strlen《char *)szShell》 re-turn FALSE;else if(lstrcmp《char *)szCommandLine,(char *)szShell)==O)re-turn TRUE;} return FALSE;}BOOL IfExitPr00{HANDLE hPtoSnap = NULL;BOOL bR = FALSE;PROCESSENTRY32 pe = {0};hProSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPRO-CESS, 0);if (hProSnap == INVALID_HANDLE_VALUE) return FALSE;pe.dwSize = sizeof(PROCESSENTRY3 2);if (Process32First(hProSnap, &peD{do{DWord pi=pe.th32ProcessID;HANDLE hPro;hPro=OpenProcess(PROCESS_ALL_ACCESSIIPRO-CESS_VM_READ,O, pi);if(hPro !=NULL && isMypro(hPro,pi》{CloseHandle (hProSnap);CloseHandle(hPro);return TRUE;}}while (Process32Next(hProSnap, &pe》; }CloseHandle (hProSnap);return (FALSE);}C>启动J Rund1132加载 XX.dllunsigned char szShell[64l={" Rundl132 XX,Work" };CaIIMyDlIO{ if(!lfExitPr00 ){STARTUPINFO si={0};PROCESS_INFORMATION pi={0};si.dwFlags=STARTF_USESHOWWINDOW;si.wShowWindow =SW_HIDE;if(CreateProc:ess(NULL,(char *)szShell,0, 0,0,0, O,O,&si,&pi》 { CloseHandle(pi.hThread);CloseHandle(pi.hProcess);D>入口函数DlIMain(HINSTANCE hlnstance, DWord dwReason, LPVOIDlpReserved)[ UNREFERENCED_PARAMETER(lpReserved);if (dwReason == DLL_PROCESS_ATTACH){ TRACEO("VERSION.DLL Initializing!\n");if (!AfxInitExtensionModule(VersionDLL, hlnstance》 return 0;new CDynLinkLibrary(VersionDLL);CaIIMyDlIO; }else if (dwReason == DLL_PROCESS_DETACH){TRACEO("VERSION.DLL Terminating!\n");AfxTerruExtensionModule(VersionDLL); }return l; }3 總结进程隐藏是一把双刃剑,既能让你的程序在无形中常驻内存,得到良好的用户体验;又能使计算机病毒与木马实现隐身,逃避杀毒软件的追杀。

从技术探讨的角度出发,多了解一些这方面的知识与技能可以提高我们自身的安全防范意识和整体技术素养。

参考文献:[1] Jeffrey Richter,(法)Christophe Nasarre.Windows核心编程[M].5版.北京:清华大学出版社,2010.[2]甘迪文.Windows黑客编程技术详解[M].北京:人民邮电出版社,2018.【通联编辑:唐一东】收稿日期:2019 -11-15作者简介:任雁军(1964-),女,福建福州人,本科,高级工程师,研究方向为计算机知识与技术。

相关文档
最新文档