当前位置:首页 > 渗透破解 > 正文内容

esp黑客( *** 安全esp)

hacker2年前 (2022-05-31)渗透破解107
本文导读目录:

黑客X档案的《黑客免杀入门》这本书怎么样?

A1Pass大牛写的,国内实力派黑客团队EST(邪恶八进制)成员……

我就是在百度知道里认识他的,为人比较低调。^_^

这本书还有EST老大 冰雪封情 的写的推荐序,貌似阵容很强大!!

这本书我买了,讲的全面并且深入,个人认为还不错。

以下是我在他博客摘录的:

***********************************************

定价:32元(240页,140千字)

简介:

现在的 *** 病毒木马横行,每天都有数百种新型病毒与木马出现,而这其中相当大的一部分其实就是经过骇客们免杀处理的变种。因此为了使想研究免杀技术的病毒防御工作者与黑客技术爱好者更加透彻与系统的了解免杀技术,我在黑客X档案的支持下写了这本书,意在给需要它的人一个详尽的参考,并对免杀技术做一个比较系统的阐述。

《黑客免杀入门》是现在国内仅有的几本免杀技术书籍之一。鉴于免杀技术的性质与其它已上市图书的特点,本书除了详尽的介绍了免杀 *** 外,更兼顾了免杀原理与思路突破的介绍,并驳斥了 *** 与书本上关于免杀技术的一些错误理论,而且对圈内的部分模糊概念作了详尽的澄清,真正做到了一些具有突破性质的原理介绍,作者之所以下如此大的精力研究这些,只是为争取使本书的读者更加透彻的了解免杀技术。

除此之外,书中使用简单易懂的语言阐述了现在某些专业杀毒防毒书籍中都未曾提到起的一些珍贵资料,使您在反向更加了解现有免杀 *** 的优点与缺点。因此,相信本书会成为一本初学者与高手都认为物有所值的著作,更相信本书会使您爱上免杀技术。

涉及内容:

各种免杀技术、手动脱壳、改壳、汇编、简单的逆向工程、汉化等

适合读者:

1、对杀毒或黑客技术感兴趣的朋友。

这本书将带领您进入免杀这个没有硝烟的智力战场。

2、免杀爱好者。

这本书将是您很好的参考手册

3、电脑病毒防御工作人员。

正可谓知己知彼,百战不殆!在您了解了各种免杀原理与思想后,相信会帮助您在杀毒软件发展与创新方面快速取得灵感。

4、对软件加密、解密感兴趣的朋友。

一、和我一起来认识免杀

1.1 什么是免杀

1.2 免杀的发展史

1.3 免杀能做什么

二、组建试验环境

2.1 我们需要什么

2.2 安装虚拟机

2.2.1 影子系统的安装与使用

2.2.2 VMware虚拟机的安装与使用

2.3 杀毒软件的安装与设置

2.4 认识我们的免杀利器

三、免杀基础知识

3.1 杀毒软件的原理与杀毒技术简介

3.1.1 杀毒软件工作原理

3.1.2 基于文件扫描的杀毒技术

3.1.3 基于内存扫描的杀毒技术

3.1.4 杀毒技术前沿

3.1.5 杀毒技术展望

3.2 了解PE文件

3.2.1 什么是PE文件

3.2.2 认识PE文件

3.3 文件免杀原理

3.3.1 什么是特征码

3.3.2 文件免杀原理

3.4工具脱壳技巧

3.4.1 专用脱壳工具脱壳

3.4.2 使用通用脱壳工具

四、特征码免杀技术

4.1 战前热身——脚本木马免杀实例

4.1.1理想状态下的免杀

4.1.2脚本木马也要玩“花指令”

4.2 特征码定位原理

4.2.1 CCL特征码定位原理

4.2.2 MYCCL特征码定位原理

4.2.3 MultiCCL特征码定位原理

4.3 脚本木马定位特征码技巧

4.4 MYCCL查找文件特征码

4.4.1 MYCCL的典型应用

4.4.2 针对MYCCL的一点思考

4.5 MYCCL查找内存特征码

4.6 MultiCCL使用技巧

4.6.1 MultiCCL介绍

4.6.2 MultiCCL定位文件特征码

4.6.3 MultiCCL定位内存特征码

4.6.4 由MultiCCL想到的

4.7 特征码修改 ***

4.7.1 简单的特征码修改

4.7.2 特征码修改进阶

五、其他免杀技术

5.1 改文件头免杀

5.1.1 操作篇

5.1.2 原理篇

5.2 入口点免杀技术

5.2.1 操作篇

5.2.2 原理篇

5.3 使用Vmprotect加密

5.3.1 操作篇

5.3.2 原理篇

5.4 Restorator资源修改

5.4.1 操作篇

5.4.2 原理篇

5.5 Overlay附加数据处理及应用

5.5.1 操作篇

5.5.2 原理篇

5.6 Sys免杀修改技巧

5.6.1 sys文件的常见免杀 ***

5.6.2 sys文件的手工免杀思路

5.7 补丁在免杀中的应用

5.7.1 操作篇

5.7.2 原理篇

5.8 免杀根基——PE文件介绍

5.8.1 PE文件格式

5.8.2 虚拟内存的简单介绍

5.8.3 PE文件的内存映射

5.9 PE文件中的免杀技术

5.9.1 移动PE文件头位置免杀

5.9.2 输入表移动免杀

5.9.3 输出表移动免杀

5.10 网页木马的免杀技术

5.10.1 脚本木马免杀

5.10.2小论网页木马的免杀

六、免杀与花指令

6.1 什么是花指令

6.2 脚本木马的花指令应用

6.3 花指令根基——了解汇编语言

6.3.1 认识汇编

6.3.2 由汇编语言想到的——通过反汇编添加任意功能

6.4 花指令入门

6.5 花指令在免杀领域的应用

6.5.1 花指令的应用技巧

6.5.2 花指令的修改技巧简介

6.5.3 空白区域寻找与加空白区段

6.6 花指令的高级应用

6.6.1 花指令的提取与快速应用

6.6.2 SEH异常的应用

七、免杀与壳

7.1 什么是壳

7.2 壳的基础知识

7.3 壳在免杀领域的应用

7.3.1 加壳的免杀原理

7.3.2 FreeRes多重加壳

7.4 壳的修改技巧

7.4.1 壳的初级修改

7.4.2 *** 通用补丁

7.5 手工脱壳技巧

7.5.1 手工脱壳基础

7.5.2 SFX自解压法脱壳

7.5.3 出口标志法脱dePack壳

7.5.4 单步跟踪法脱壳

7.5.5 经典的ESP定律脱壳

7.5.6 最后一次异常法脱壳

7.5.7 内存镜像法脱壳

7.5.8 模拟跟踪法脱壳

7.5.9 非完美脱壳后的程序修复

八、免杀技术前沿

8.1 杀毒与免杀技术的发展

8.2 启发式杀毒原理

8.2.1 启发式杀毒原理

8.2.2 启发性标志详解

8.3 针对启发式杀毒的免杀 ***

8.4 主动防御的原理

8.4.1 初探主动防御

8.4.2 主动防御的原理

8.5 针对主动防御的免杀 ***

8.5.1 剖析主动防御的弱点

8.5.2 修改时间攻破卡巴斯基

8.5.3 通过主动防御特征码来突破瑞星主防

8.5.4 手工打造突破主动防御

8.6 与杀毒软件的对抗

九、免杀技术补白

9.1 综合免杀实例

9.1.1 策划安排

9.1.2 设计免杀流程与免杀对策

9.1.3 设计免杀执行方案

9.1.4 按照执行方案执行免杀操作

9.2 免杀中的汉化技术

9.2.1 VB程序的汉化与修改

9.2.2 C程序的汉化与修改

9.2.3 Delphi程序的汉化与修改

9.3 病毒命名规则初探

9.4 关于免杀的几个FAQ

****************************************************

给点奖励分吧……

AH和ESP有什么区别?它们各自使用在什么场合?

ah比esp少了一个整体包的加密功能。而 ESP 与 AH 各自提供的认证其根本区别在于它们的覆盖范围。ipsec vpn包括三个部分:ah esp ike。ah关注ip包头的完整性,认证,而没有数据部分的加密。esp主要是完整性,认证,和数据部分的加密。但是esp不能针对ip包头。只针对数据部分。就像是一个火车。ah是火车司机长只负责火车头的安全。esp是列车长,负责除了火车头之外的整个车厢的安全。 所以,是不同的。

AH和ESP认证的区别是什么?

两者的区别在于IP数据报的ESP负载部分的内容不同。在隧道模式中,整个IP数据/FONTMD5(HMAC是一种SHA和MD5都支持的对称式认证系统)的支持。 AH既可以

黑客的原理是什么啊?

1.熟练掌握 C语言,汇编语言

基本上黑客新手都要学到disassemble(反汇编),就是通过一个程序运行的汇编套路来分析其源代码。并用c语言进行测试。汇编要掌握到(stack,protected mode,data segment,ESP,EBP...),C语言(bit-field, stdcall...)

2.计算机原理

分析程序数据没有十进制,只有2进制和16进制(就是0101 0010或0xFF...),要懂得基本运算。还有big/little-endian等基本术语,会用WinHex/UltraEdit或VS的dempbin分析程序。

3. *** :TCP/IP(TCP,UDP,ICMP,DNS,IP等许多协议),会截取数据包,还有分析frame,结合telnet/ftp/c语言的socket等命令进行 *** 打劫!这部分最难最枯燥,建议看understanding TCP/IP这本书

4.系统的认知!了解Windows内部API,sockets编程,IP proxy(IPv6更好也学),真正的黑客是几乎漏不出马脚的!

这些就是基础,然后熟练掌握各种操作流程,可以强行进行telnet,或进行TCP hijack,或夺取远程sid等。。。还有很多要学,根本数不完。

推荐你看一下几本书(我看过许多书,走过弯路,这是整理后的更优选择)

1.Assembly language step-by-step

掌握汇编语言,和CPU运行机制,内存模式等

2.the C programming language

C语言的灵魂 ***

3.(C++可以了解一下)C++ from ground up或C++ premier

C++在底层其实代替不了C

4.Understanding TCP/IP

TCP/IP *** 的精髓,最黑客的前提!

黑客的知识

我也正在学习黑客呵呵,我现在可以不太费力摧毁一个简单的C语言写的密码保护机制程序。截取TCP/IP数据包,还有一些比较基本的。

具体说一下,掌握的技术

1.熟练掌握 C语言,汇编语言

基本上黑客新手都要学到disassemble(反汇编),就是通过一个程序运行的汇编套路来分析其源代码。并用c语言进行测试。汇编要掌握到(stack,protected mode,data segment,ESP,EBP...),C语言(bit-field, stdcall...)

2.计算机原理

分析程序数据没有十进制,只有2进制和16进制(就是0101 0010或0xFF...),要懂得基本运算。还有big/little-endian等基本术语,会用WinHex/UltraEdit或VS的dempbin分析程序。

3. *** :TCP/IP(TCP,UDP,ICMP,DNS,IP等许多协议),会截取数据包,还有分析frame,结合telnet/ftp/c语言的socket等命令进行 *** 打劫!这部分最难最枯燥,建议看understanding TCP/IP这本书

4.系统的认知!了解Windows内部API,sockets编程,IP proxy(IPv6更好也学),真正的黑客是几乎漏不出马脚的!

这些就是基础,然后熟练掌握各种操作流程,可以强行进行telnet,或进行TCP hijack,或夺取远程sid等。。。还有很多要学,根本数不完。

推荐你看一下几本书(我看过许多书,走过弯路,这是整理后的更优选择)

1.Assembly language step-by-step

掌握汇编语言,和CPU运行机制,内存模式等

2.the C programming language

C语言的灵魂 ***

3.(C++可以了解一下)C++ from ground up或C++ premier

C++在底层其实代替不了C

4.Understanding TCP/IP

TCP/IP *** 的精髓,最黑客的前提!

这些都是技术,接下来再看专门的黑客辅导书

1.No Scrach.Hacking the art of exploiting

太经典了,C+汇编+TCP/IP 叫你很多黑客 ***

2.Hacking assembly

详解程序反汇编,跟汇编关系很大,3.Hacking Exposed

一些黑客实例,巩固一下实力。

进程 *** 信息发现219.141.140.10连出,危险吗?

你太神经了。 。

SvcHost

进程文件: svchost.dll

进程名称: Trojan.W32.Agent

英文描述: svchost.dll is a module which is registered as a trojan. This Trojan allows attackers to access your computer from remote locations, stealing passwords, Internet banking and personal data. This process is a security risk and should be removed from your system.

进程分析: svchost.exe是一个属于微软Windows操作系统的系统程序,用于执行DLL文件。这个程序对你系统的正常运行是非常重要的。注意: svchost.exe也有可能是W32.Welchia.Worm病毒,它利用WindowsLSASS漏洞,制造缓冲区溢出,导致你计算机关机。更多详细信息参考:http://www.microsoft.com/technet/security/bulletin/ms04-011.mspx,该进程的安全等级是建议立即删除。

安全等级 (0-5): N/A (N/A无危险 5最危险)

间碟软件: 否

广告软件: 否

病毒: 是

木马: 是

系统进程: 否

应用程序: 否

后台程序: 是

使用访问: 是

访问互联网: 是

大家都要知道Svchost.exe,是系统必不可少的一个进程,很多服务都会多多少少用到它,但是我想大家也知道,由于它本身特殊性,高明的"黑客们" 肯定是不会放过的,前段时间的Svchost.exe木马风波,大家应该是记忆犹新吧,而且现在还是有很多机器里都藏有此木马,因为它伪装和系统进程 Svchost.exe一样,所以很多人分不清,那个是进程,那个是木马....

好的,还是让我们详尽了解一下Svchost.exe进程吧

1.多个服务共享一个 Svchost.exe进程利与弊

windows 系统服务分为独立进程和共享进程两种,在windows NT时只有服务器管理器SCM(Services.exe)有多个共享服务,随着系统内置服务的增加,在windows 2000中ms又把很多服务做成共享方式,由svchost.exe启动。windows 2000一般有2个svchost进程,一个是RPCSS(Remote Procedure Call)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中,则一般有4个以上的svchost.exe服务进程,windows 2003 server中则更多,可以看出把更多的系统内置服务以共享进程方式由svchost启动是ms的一个趋势。这样做在一定程度上减少了系统资源的消耗,不过也带来一定的不稳定因素,因为任何一个共享进程的服务因为错误退出进程就会导致整个进程中的所有服务都退出。另外就是有一点安全隐患,首先要介绍一下 svchost.exe的实现机制。

2. Svchost原理

Svchost本身只是作为服务宿主,并不实现任何服务功能,需要Svchost启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost,启动这些服务时由svchost调用相应服务的动态链接库来启动服务。

那么svchost如何知道某一服务是由哪个动态链接库负责呢?这不是由服务的可执行程序路径中的参数部分提供的,而是服务在注册表中的参数设置的,注册表中服务下边有一个Parameters子键其中的ServiceDll表明该服务由哪个动态链接库负责。并且所有这些服务动态链接库都必须要导出一个ServiceMain()函数,用来处理服务任务。

例如rpcss(Remote Procedure Call)在注册表中的位置是 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs,它的参数子键Parameters里有这样一项:

"ServiceDll"=REG_EXPAND_SZ:"%SystemRoot%system32 pcss.dll"

当启动rpcss服务时,svchost就会调用rpcss.dll,并且执行其ServiceMain()函数执行具体服务。

既然这些服务是使用共享进程方式由svchost启动的,为什么系统中会有多个svchost进程呢?ms把这些服务分为几组,同组服务共享一个svchost进程,不同组服务使用多个svchost进程,组的区别是由服务的可执行程序后边的参数决定的。

例如rpcss在注册表中 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs 有这样一项:

"ImagePath"=REG_EXPAND_SZ:"%SystemRoot%system32svchost -k rpcss"

因此rpcss就属于rpcss组,这在服务管理控制台也可以看到。

svchost的所有组和组内的所有服务都在注册表的如下位置: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost,例如windows 2000共有4组rpcss、netsvcs、wugroup、BITSgroup,其中最多的就是netsvcs=REG_MULTI_SZ: EventSystem.Ias.Iprip.Irmon.Netman.

Nwsapagent.Rasauto.Ra *** an.Remoteaccess.SENS.Sharedaccess.Tapisrv.Ntmssvc.wzcsvc..

在启动一个svchost.exe负责的服务时,服务管理器如果遇到可执行程序内容ImagePath已经存在于服务管理器的映象库中,就不在启动第2个进程svchost,而是直接启动服务。这样就实现了多个服务共享一个svchost进程。

3. Svchost代码

现在我们基本清楚svchost的原理了,但是要自己写一个DLL形式的服务,由svchost来启动,仅有上边的信息还有些问题不是很清楚。比如我们在导出的ServiceMain()函数中接收的参数是ANSI还是Unicode?我们是否需要调用 RegisterServiceCtrlHandler和StartServiceCtrlDispatcher来注册服务控制及调度函数?

这些问题要通过查看svchost代码获得。下边的代码是windows 2000+ service pack 4 的svchost反汇编片段,可以看出svchost程序还是很简单的。

主函数首先调用ProcCommandLine()对命令行进行分析,获得要启动的服务组,然后调用SvcHostOptions()查询该服务组的选项和服务组的所有服务,并使用一个数据结构 svcTable 来保存这些服务及其服务的DLL,然后调用PrepareSvcTable() 函数创建 SERVICE_TABLE_ENTRY 结构,把所有处理函数SERVICE_MAIN_FUNCTION 指向自己的一个函数FuncServiceMain(),最后调用API StartServiceCtrlDispatcher() 注册这些服务的调度函数。

; =============================== Main Funcion =======================================

.text:010010B8 public start

.text:010010B8 start proc near

.text:010010B8 push esi

.text:010010B9 push edi

.text:010010BA push offset sub_1001EBA ; lpTopLevelExceptionFilter

.text:010010BF xor edi, edi

.text:010010C1 call ds:SetUnhandledExceptionFilter

.text:010010C7 push 1 ; uMode

.text:010010C9 call ds:SetErrorMode

.text:010010CF call ds:GetProcessHeap

.text:010010D5 push eax

.text:010010D6 call sub_1001142

.text:010010DB mov eax, offset dword_1003018

.text:010010E0 push offset unk_1003000 ; lpCriticalSection

.text:010010E5 mov dword_100301C, eax

.text:010010EA mov dword_1003018, eax

.text:010010EF call ds:InitializeCriticalSection

.text:010010F5 call ds:GetCommandLineW

.text:010010FB push eax ; lpString

.text:010010FC call ProcCommandLine

.text:01001101 mov esi, eax

.text:01001103 test esi, esi

.text:01001105 jz short lab_doservice

.text:01001107 push esi

.text:01001108 call SvcHostOptions

.text:0100110D call PrepareSvcTable

.text:01001112 mov edi, eax ; SERVICE_TABLE_ENTRY returned

.text:01001114 test edi, edi

.text:01001116 jz short loc_1001128

.text:01001118 mov eax, [esi+10h]

.text:0100111B test eax, eax

.text:0100111D jz short loc_1001128

.text:0100111F push dword ptr [esi+14h] ; dwCapabilities

.text:01001122 push eax ; int

.text:01001123 call InitializeSecurity

.text:01001128

.text:01001128 loc_1001128: ; CODE XREF: start+5Ej

.text:01001128 ; start+65j

.text:01001128 push esi ; lpMem

.text:01001129 call HeapFreeMem

.text:0100112E

.text:0100112E lab_doservice: ; CODE XREF: start+4Dj

.text:0100112E test edi, edi

.text:01001130 jz ExitProgram

.text:01001136 push edi ; lpServiceStartTable

.text:01001137 call ds:StartServiceCtrlDispatcherW

.text:0100113D jmp ExitProgram

.text:0100113D start endp

; =============================== Main Funcion end ===========================================

由于svchost为该组的所有服务都注册了svchost中的一个处理函数,因此每次启动任何一个服务时,服务管理器SCM都会调用 FuncServiceMain() 这个函数。这个函数使用 svcTable 查询要启动的服务使用的DLL,调用DLL导出的ServiceMain()函数来启动服务,然后返回。

; ============================== FuncServiceMain() ===========================================

.text:01001504 FuncServiceMain proc near ; DATA XREF: PrepareSvcTable+44o

.text:01001504

.text:01001504 arg_0 = dword ptr 8

.text:01001504 arg_4 = dword ptr 0Ch

.text:01001504

.text:01001504 push ecx

.text:01001505 mov eax, [esp+arg_4]

.text:01001509 push ebx

.text:0100150A push ebp

.text:0100150B push esi

.text:0100150C mov ebx, offset unk_1003000

.text:01001511 push edi

.text:01001512 mov edi, [eax]

.text:01001514 push ebx

.text:01001515 xor ebp, ebp

.text:01001517 call ds:EnterCriticalSection

.text:0100151D xor esi, esi

.text:0100151F cmp dwGroupSize, esi

.text:01001525 jbe short loc_1001566

.text:01001527 and [esp+10h], esi

.text:0100152B

.text:0100152B loc_100152B: ; CODE XREF: FuncServiceMain+4Aj

.text:0100152B mov eax, svcTable

.text:01001530 mov ecx, [esp+10h]

.text:01001534 push dword ptr [eax+ecx]

.text:01001537 push edi

.text:01001538 call ds:lstrcmpiW

.text:0100153E test eax, eax

.text:01001540 jz short StartThis

.text:01001542 add dword ptr [esp+10h], 0Ch

.text:01001547 inc esi

.text:01001548 cmp esi, dwGroupSize

.text:0100154E jb short loc_100152B

.text:01001550 jmp short loc_1001566

.text:01001552 ; =================================================

.text:01001552

.text:01001552 StartThis: ; CODE XREF: FuncServiceMain+3Cj

.text:01001552 mov ecx, svcTable

.text:01001558 lea eax, [esi+esi*2]

.text:0100155B lea eax, [ecx+eax*4]

.text:0100155E push eax

.text:0100155F call GetDLLServiceMain

.text:01001564 mov ebp, eax ; dll ServiceMain Function address

.text:01001566

.text:01001566 loc_1001566: ; CODE XREF: FuncServiceMain+21j

.text:01001566 ; FuncServiceMain+4Cj

.text:01001566 push ebx

.text:01001567 call ds:LeaveCriticalSection

.text:0100156D test ebp, ebp

.text:0100156F jz short loc_100157B

.text:01001571 push [esp+10h+arg_4]

.text:01001575 push [esp+14h+arg_0]

.text:01001579 call ebp

.text:0100157B

.text:0100157B loc_100157B: ; CODE XREF: FuncServiceMain+6Bj

.text:0100157B pop edi

.text:0100157C pop esi

.text:0100157D pop ebp

.text:0100157E pop ebx

.text:0100157F pop ecx

.text:01001580 retn 8

.text:01001580 FuncServiceMain endp ; sp = -8

; ============================== FuncServiceMain() end ========================================

由于svchost已经调用了StartServiceCtrlDispatcher来服务调度函数,因此我们在实现DLL实现时就不用了,这主要是因为一个进程只能调用一次StartServiceCtrlDispatcher API。但是需要用 RegisterServiceCtrlHandler 来注册响应控制请求的函数。最后我们的DLL接收的都是unicode字符串。

由于这种服务启动后由svchost加载,不增加新的进程,只是svchost的一个DLL,而且一般进行审计时都不会去 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost 检查服务组是否变化,就算去检查,也不一定能发现异常,因此如果添加一个这样的DLL后门,伪装的好,是比较隐蔽的。

4. 安装服务与设置

要通过svchost调用来启动的服务,就一定要在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下有该服务名,这可以通过如下方式来实现:

1) 添加一个新的服务组,在组里添加服务名

2) 在现有组里添加服务名

3) 直接使用现有服务组里的一个服务名,但本机没有安装的服务

4) 修改现有服务组里的现有服务,把它的ServiceDll指向自己

其中前两种可以被正常服务使用,如使用第1种方式,启动其服务要创建新的svchost进程;第2种方式如果该组服务已经运行,安装后不能立刻启动服务,因为svchost启动后已经把该组信息保存在内存里,并调用API StartServiceCtrlDispatcher() 为该组所有服务注册了调度处理函数,新增加的服务不能再注册调度处理函数,需要重起计算机或者该组的svchost进程。而后两种可能被后门使用,尤其是最后一种,没有添加服务,只是改了注册表里一项设置,从服务管理控制台又看不出来,如果作为后门还是很隐蔽的。比如EventSystem服务,缺省是指向es.dll,如果把ServiceDll改为EventSystem.dll就很难发现。

因此服务的安装除了调用CreateService()创建服务之外,还需要设置服务的ServiceDll,如果使用前2种还要设置svchost的注册表选项,在卸载时也更好删除增加的部分。

注: ImagePath 和ServiceDll 是ExpandString不是普通字符串。因此如果使用.reg文件安装时要注意。

5. DLL服务实现

DLL程序的编写比较简单,只要实现一个ServiceMain()函数和一个服务控制程序,在ServiceMain()函数里用RegisterServiceCtrlHandler()注册服务控制程序,并设置服务的运行状态就可以了。

另外,因为此种服务的安装除了正常的CreateService()之外,还要进行其他设置,因此更好实现安装和卸载函数。

为了方便安装,实现的代码提供了InstallService()函数进行安装,这个函数可以接收服务名作为参数(如果不提供参数,就使用缺省的 iprip),如果要安装的服务不在svchost的netsvcs组里安装就会失败;如果要安装的服务已经存在,安装也会失败;安装成功后程序会配置服务的ServiceDll为当前Dll。提供的UninstallService()函数,可以删除任何函数而没有进行任何检查。

为了方便使用rundll32.exe进行安装,还提供了RundllInstallA()和RundllUninstallA()分别调用InstallService()及UninstallService()。因为rundll32.exe使用的函数原型是:

void CALLBACK FunctionName(

HWND hwnd, // handle to owner window

HINSTANCE hinst, // instance handle for the DLL

LPTSTR lpCmdLine, // string the DLL will parse

int nCmdShow // show state

);

对应的命令行是rundll32 DllName,FunctionName [Arguments]

DLL服务本身只是创建一个进程,该程序命令行就是启动服务时提供的之一个参数,如果未指定就使用缺省的svchostdll.exe。启动服务时如果提供第二个参数,创建的进程就是和桌面交互的。

6

扫描二维码推送至手机访问。

版权声明:本文由黑客技术发布,如需转载请注明出处。

本文链接:http://w-123.com/164076.html

标签: esp黑客

“esp黑客( *** 安全esp)” 的相关文章

全球 76% 的公司在过去一年中曾遭遇因技术问题导致的业务中断

Atlas VPN的新研究显示,全球76%的公司在过去一年中遭遇过服务停机。原因包括系统崩溃、人为错误和网络攻击是造成停机的主要原因。此外,许多IT经理对越来越多的政治驱动的网络攻击感到担忧。 系统崩溃被认为是公司停机的首要原因,52%的人不得不处理这个问题。42.3%的IT经理认为人为错误是导致公...

德国摧毁俄罗斯暗网市场 Hydra 九头蛇 收缴价值 2500 万美元的比特币

据德国媒体报道,德国执法机构在最近的执法行动中扣押俄罗斯暗网市场Hydra的服务器,同时收缴价值2500万美元的比特币。不知道这个黑市的创始人是不是漫威的粉丝,所以才会起九头蛇这个名字。 目前访问该市场会弹出德国执法机构挂出的提示,而收缴的2500万美元比特币只是很小的一部分,具体来说是4月5日的一...

俄罗斯外卖应用的泄露数据中包含 GRU 特勤人员的用餐习惯

据The Verge报道,根据Bellingcat的调查结果,俄罗斯外卖平台Yandex Food的一次大规模数据泄漏暴露了属于那些与俄罗斯秘密警察有关的递送地址、电话号码、姓名和配送指示。 Yandex Food是俄罗斯大型互联网公司Yandex的子公司,于3月1日首次报告了数据泄漏事件,将其归...

QNAP 修复了关键的 QVR 远程命令执行漏洞

近期,QNAP发布了几项安全公告,其中一项针对严重的安全问题,该问题允许在易受攻击的QVR系统上远程执行任意命令,该公司的视频监控解决方案托管在NAS设备上。QVR IP视频监控系统支持多重频道和跨平台视频解码,专为监控家庭和办公环境而设计。该漏洞编号为CVE-2022-27588,严重程度得分为...

安全研究人员通过苹果 AirTag 追踪伪装机构 最终指向德国联邦宪法保卫局

一位研究人员将苹果公司的一个AirTags发送到德国一个神秘的”联邦机构”,以确定其真正的办公室,并帮助证明它确实是一个情报机构的一部分。苹果公司的AirTags已经在涉及追踪个人的案件中被用得有声有色,但现在一位德国研究人员在揭露政府机密时使用了一个。 活动家Lilith Wittmann声称,...

Google 研究人员:Pegasus iPhone 攻击是有史以来最复杂的漏洞之一

现在已经打了补丁的Pegasus iPhone攻击是近年来看到的最复杂的攻击之一。在研究了多次成为头条新闻的iMessage安全漏洞后,来自Project Zero的Google研究人员将其描述为“技术上最复杂的漏洞之一”。 他们称,NSO集团的工具在复杂程度上跟民族国家间谍工具不相上下。而NSO...

评论列表

孤央莺时
2年前 (2022-05-31)

MYCCL查找文件特征码4.4.1 MYCCL的典型应用4.4.2 针对MYCCL的一点思考4.5 MYCCL查找内存特征码4.6 MultiCCL使用技巧4.6.1 MultiCCL介绍4.6.2 MultiCCL定位文件特征码4.6.3 MultiCCL定位内存特征

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。