Windows用户层技术工具与源码分享

1 篇文章 0 订阅
1 篇文章 0 订阅

Windows用户层技术工具与源码分享



   最近看了《Windows黑客编程技术详解》一书,结合《逆向工程核心原理》中的一些知识,我把Windows用户层的编程技术编写成了一个工具,其中涉及到系统安全和恶意代码的一些技术功能,在这分享出来与大家学习交流一下。

  
  工具是用MFC写得,这程序分为两个版本,32位和64位的,有些功能只能32用,有些只能64位用,界面如下

在这里插入图片描述

  

一、注入与隐藏

1.窗口界面介绍

  首先使用遍历进程的技术,遍历所有进程显示在MFC列表控件上。

  其次我还写了分辨出32位程序和64位程序的功能,在执行注入的时候,方便观察了,因为32位注入程序难以注入64位,反之亦然。

  还有PID 和 SESSION两拦。PID我就不介绍了,SESSION就是会话ID, 该ID为0则表示系统进程,非零是用户进程。默认情况下,这两种进程是不能互相通信的,所以要注入SESSION位的0的进程,需要使用特殊方法。

  还有一个要点,我写了一个模块栏窗口,这样就方便查看是否注入了可以DLL了。

在这里插入图片描述
  

2.远程线程注入

  利用关键函数CreateRemoteThread,最常见的注入功能,将dllt拖拽或者打开,右键点击注入就OK了。
在这里插入图片描述

  

3.APC注入

  利用关键函数QueueUserAPC 在APC线程队列中注入DLL,值得注意的是,用这种方法注入DLL后,进程的大多数线程都挂钩了DLL,所以卸载的时候,需要多卸载几次才能完全把DLL卸载。
  

4.突破SESSION0隔离的远程注入

  这种注入过程原理与远程线程注入完全一样,就是创建远程线程时调用的更底层的API ZwCreateRemoteThread。

  这种注入方法能将DLL注入进SESSION ID为0的进程,其他方法是很难注入的。
  

5.代码注入

  代码注入原理也和远程线程类似,只是注入的DLL换成了注入代码。原理就是开辟一块内存空间存放代码,创建一个远线程执行它。详情请参考《逆向工程核心原理》。

  我这里的代码是固定的,我构造了一段shellcode ,功能就是弹窗加确定后关闭程序。

  如下图,我代码注入了一个截图软件,当我点击确定后,该截图软件会被关闭。

在这里插入图片描述
  

6.全局注入DLL

  先创建快照遍历进程,然后分别对每个进程都进行远程线程注入。
  

7.全局卸载DLL

  先创建快照遍历进程,然后分别对每个进程都进行卸载DLL。
  

8.单个卸载DLL

  首先把DLL拖进窗口,用FreeLibrary 远程线程卸载DLL,注意卸载APC注入的程序时,需要卸载多次才能卸载干净。
  

9.全局消息钩子技术

  全局钩子我用在了隐藏进程和保护进程功能当中,还有全局钩子卸载也一样。保护进程只支持32位,64位的方法我还没研究出来…
  

10.隐藏进程

  使用全局消息钩子技术,自动注入进会遍历进程的程序当中,比如说任务管理器。我这里只写了注入64位程序的功能,因为WIN10打开任务管理器,默认都是64位。

  效果展示,首先打开64位任务管理器(默认的),注意观察,可以看到QQ窗口在应用栏里显示着,当我全局钩子注入后,QQ就消失了。当卸载后,QQ又变回来了。

在这里插入图片描述
  

11.伪装进程

  在内存中修改进程信息,使用procexp64打开观察时,发现图标、描述、路径被伪装成explorer.exe 程序,当然,程序名没改,那需要在PE文件上修改。
在这里插入图片描述
  

12.傀儡进程

  只支持32位,傀儡内容同样是弹窗加关闭程序,而且我傀儡的进程是固定的,就是32位的 svchost.exe。这是一个系统文件,傀儡原理就是,打开该程序直接修改指令寄存器EIP,让EIP直接跳转到我们的shellcode上面,这样打着是系统程序的名义,却执行的是恶意代码。

在这里插入图片描述

13.模块窗口DLL高亮显示

  当注入了DLL,而DLL文件被拖拽到了窗口,目标程序中的该DLL就会高亮显示。如下图,我注入了扫雷外挂DLL,结果DLL高亮呈红色

在这里插入图片描述

  

二、自动启动功能

1.界面展示

在这里插入图片描述
  

2.注册表自启动

  将程序路径添加到注册表自启动的项里面就行了。首先打开程序,点击相应按钮就行,我还贴心的写了打开注册表和快速启动目录的功能,这样当添加自启动后,就可以在对应窗口看到他。比如我添加一个注册表自启:

在这里插入图片描述
  

3.快速启动目录

  将程序复制或者将程序快捷图标复制到快速启动目录,就能实现自动启动。我这里使用方法是找到程序,然后创建该程序的快捷图标到快速启动目录。点击打开启动目录如下:

在这里插入图片描述
  

4.计划任务

  将程序添加到任务计划程序里面,就实现开机自启,要注意的是,这个技术需要管理员权限。

在这里插入图片描述

  

5.系统服务自启

  创建系统服务程序,这个程序再来打开我们需要自启动的程序。

  这种方法比较复杂,同时也需要管理员权限启动,而且系统服务进程与用户层的通信比较困难,比如我让他弹个窗都要写十多行代码,但正是因为种种困难,这才是较为高级的一种方法。

在这里插入图片描述
  

三、提权与加壳

  因为本工具本身就涉及到好几个提权的地方,有兴趣的看一下代码就行了。

  至于加壳我就不介绍了,对加壳有兴趣的请看书《黑客免杀攻防》结合我之前的C++写壳基础篇和高级篇,相信就能写出一个比较让自己满意的加密/压缩壳。
  

四、Hash与加密

1.Hash信息

  使用Windows自导的API实现,直接拖拽文件到窗口中,即刻显示文件Hash信息。

在这里插入图片描述
  

2.AES加密

  使用Windows自带Crypt系列的API进行AES加密,AES是一种对称加密,逆向时能够得到密钥,想要破解不难。它的有点就是加密解密速度超快,而且也不会造成程序体积过度的膨胀。
  

3.RSA加密

  使用Windows自待Crypt系列的API进行RSA加密

  RSA使用的是一种非对称加密算法,首先会获取公钥和私钥,公钥负责对别人加密,私钥就自己藏着,所以安全性非常高。使用RSA加密,%99.99的情况下都不能被破解。当然暴力破解也能破解成功,不过当咱们入土为安的时候,不知道电脑有没有计算完毕…

  但是RSA加密有个重要的缺点,加密速度极慢,用时是AES加密的1000倍以上,而且会造成数据膨胀。所以使用RSA加密,一般都只加密关键数据段。

  友情提示:正因为以上两种方法的优缺点,勒索病毒一般使用的加密方式为 AES+RSA 混合加密,也称为数字信封!

  我这加密了程序的路径字符串,展示如下:

在这里插入图片描述
  

五、VS垃圾清理

  其中涉及到了文件遍历、文件删除技术。可以自定义要删除的文件类型,这个功能对于喜欢VS编译器的朋友比较友好,用于清理VS项目中的垃圾文件,方便把源代码上传或者发送给别人。

在这里插入图片描述
  

六、技术功能

在这里插入图片描述
  

1.压缩与解压

  压缩库推荐Zlib,aPlib,这两个库都有个优点就是压缩慢,解压却是秒解,常用于加壳程序。压缩率能达到一半以上!

  我使用的aPlib库压缩,只支持32位,因为Zlib有3M多,而aPlib只有14K。
  

2. 桌面截屏

  点击了之后就是在相对路径下生成一张图片,这就不展示了。
  

3. 按键记录

  提起按键记录,我就想起了我当年被盗过的N个QQ号,那些病毒木马可能就是这样盗了我的号!

  会显示在哪个窗口上,按了哪些键,我展示一下我写的的按键记录:

在这里插入图片描述

  

4.远控CMD

  我感觉这才是技术功能里面的重头戏。

  远控首先涉及到网络通讯知识,我这里使用的是socket 的TCP通讯。

  原理就是服务端安装在目标电脑上,客户端就是我们这些控制者。通过远程命令,操作别人的电脑。

  演示:我开启了一个win10虚拟机,把服务端在虚拟机上启动,让真机通过cmd操控虚拟机,并且会返回数据,显示在真机的客户端程序上。
在这里插入图片描述
  
  我输入了ipconfig指令,让虚拟机的IP地址显示到了真机上。我还在真机上操作,让虚拟机在C盘里创建了一个名为“九阳道人”的文件夹
在这里插入图片描述

  

5.文件监控

  监控一个目录或者根目录下的文件是否被赠删查改。我监控了自己的d:\图片\这个目录,当我操作文件时,实时显示操作文件的结果。如下图:

在这里插入图片描述
  

6.U盘监控

  当插入或者拔出U盘时,得到插入拔出的是哪个盘,并提示我们。

在这里插入图片描述

7.程序自杀

  我写了两种程序自杀,一种需要重启电脑才能删除,而且这种需要管理员权限。
  一种是批处理的删除,因为批处理能立马删除,所以我演示批处理的程序自杀,这个不需要管理权限,更好用一点,我设置了等待5秒的时间就自杀,展示如下:
在这里插入图片描述
  

七、便捷功能

  还有些功能我没提及,比如释放资源、创建互斥体执行单一运行、创建信号量用来传递PID、读取配置文件读取存档等,都写在了源码里面。有兴趣的可以在源码里面翻来看看。

1.贴边隐藏

  这个软件我自己每天都在用它,让它成为开机自启的程序,它开机自启后,会像QQ一样,靠在边上隐藏起来,等待主人的召唤。这个效果开机也会自动显示,这是使用了读档与存档的功能来实现的。

在这里插入图片描述
  

2.电源操作

  最后我还写了电源的一些常用操作,如睡眠、休眠、关机、重启。

  睡眠、休眠、重启是我经常用,每天都要用好几次的功能,但是每次都要移动鼠标,然后点击再点击,浪费力气得很。所以我可就给他们设置了全局的快捷键,我用着特别方便,自我感觉非常好用,半秒不到就关机!
在这里插入图片描述
  

八、声明与提示

  本工具与源码仅供交流与学习,下载后请在24小时之内删除。

  根据国家法律规定,任何利用黑客技术攻击他人计算机的行为都属于违法行为,开发外挂营销也属于违法行为,希望朋友们不要使用本工具与源码的内容做坏事,否则后果自负。
  

九、工具与源码下载地址

  点击我的上传,我上传到CSDN资源里面了,或者进入看雪下载。连接在下面:
  https://bbs.pediy.com/thread-263360.htm

在这里插入图片描述

sysinternals程序和部分程序源码 Sysinternals_Source/ AccessEnumSource filemon434 NtfsInfoSource TokenmonSource AdRestoreSource fmifs procfeatures TVcache AutologonSource FundeleteSource regmon435 VcMonSource CacheSetSource JunctionSource SDeleteSource VxDMonSource Ctrl2CapSource NetstatpSource SecDemoSource DiskExt NewSidSource ShareEnumSource SysinternalsSuite/ accesschk.exe Diskmnt.hlp PHYSMEM.EXE Reghide.exe AccessEnum.exe Diskmon.exe pipelist.exe regjump.exe AdExplorer.chm DISKMON.HLP PORTMON.CNT Regmon.exe ADExplorer.exe DiskView.exe portmon.exe REGMON.HLP ADInsight.chm DMON.SYS PORTMON.HLP RootkitRevealer.chm ADInsight.exe du.exe procexp.chm RootkitRevealer.exe adrestore.exe efsdump.exe procexp.exe sdelete.exe Autologon.exe Eula.txt ProcFeatures.exe ShareEnum.exe autoruns.chm Filemon.exe procmon.chm ShellRunas.exe autoruns.exe FILEMON.HLP Procmon.exe sigcheck.exe autorunsc.exe handle.exe psexec.exe streams.exe Bginfo.exe hex2dec.exe psfile.exe strings.exe Cacheset.exe junction.exe psgetsid.exe sync.exe Clockres.exe ldmdump.exe Psinfo.exe tcpvcon.exe Contig.exe Listdlls.exe pskill.exe tcpview.chm Coreinfo.exe livekd.exe pslist.exe Tcpview.exe ctrl2cap.amd.sys LoadOrd.exe psloggedon.exe TCPVIEW.HLP ctrl2cap.exe logonsessions.exe psloglist.exe Volumeid.exe ctrl2cap.nt4.sys movefile.exe pspasswd.exe whois.exe ctrl2cap.nt5.sys newsid.exe psservice.exe Winobj.exe dbgview.chm ntfsinfo.exe psshutdown.exe WINOBJ.HLP Dbgview.exe pagedfrg.exe pssuspend.exe ZoomIt.exe Desktops.exe pagedfrg.hlp Pstools.chm diskext.exe pdh.dll psversion.txt Diskmnt.exe pendmoves.exe RegDelNull.exe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值