DC-4靶场练习

news2024/11/15 17:39:22

今天抽时间做了下DC-4的实验,整理了实验步骤,并提炼总结方法论。

    • 内网存活主机扫描命令

nmap -sP 192.168.101.0/24
arp-scan -l

以上IP地址使用排除法,最后得出192.168.101.79是靶机地址。

    • 探测目标开放的端口

推荐masscan+nmap

快速扫描:

masscan --rate=100000 -p 1-65535 192.168.101.67

端口扫描:

nmap -T4 -sV -p22,80,111,48009 -A 192.168.101.67

以上的结果只能看出nginx的版本,看不出更具体的信息可以利用。

    • 找漏洞

    • 打开80端口的网站收集信息

http://192.168.101.79

该网页是个登陆页面,登陆页面的两个思路,一个是sql注入,一个是暴力破解。利用sqlmap没有跑出漏洞,所以此处应该是暴力破解。

    • Burp suite暴力破解

详细爆破步骤见CSDN博客:https://blog.csdn.net/u013930899/article/details/127482373

爆破出admin的密码为happy。

使用admin/happy登陆网页:

看到System Tools里面是Command,点进去:

Run,执行结果如下:

到此处判断接下来利用的漏洞是命令注入。

    • 利用命令注入漏洞

打开Burp suite,抓包查看网页点击Run之后提交的数据包:

可以看到提交的命令格式是ls+-l,命令与参数之间使用+连接。

将截取的数据包发送到重放攻击模块,利用数据包重放攻击模块对系统执行定制化命令操作。

将ls+-l换成whoami+,结果可以看到当前用户为www-data:

将ls+-l换成ls+-l+/home,结果可以看到有三个用户charles,jim,sam:

使用ls+-l+/home逐个/home下的文件,发现jim用户下有个文件old-passwords.bak,想到大概率是jim用户的密码文件:

使用cat+/home/jim/backups/old-passwords.bak查看密码文件内容,并将文件内容复制保存下来,方便接下来对jim用户的ssh进行爆破:

    • 爆破jim用户

使用保存下来old-passwords.bak内容的文件,结合hydra爆破ssh密码:

hydra -l jim -P jim_pass.txt ssh://192.168.101.79

jim的密码为jibril04

    • 登陆jim用户

ssh jim@192.168.101.79

登陆jim不是目的,目的是从jim找方法提权到root。

使用find命令查找能够提权的命令:

find / -user root -perm -4000 -exec ls -ldb {} \;

查到结果中有一条命令/usr/sbin/exim4,考虑是否能用exim4做提权。

查看exim4的版本:

/usr/sbin/exim4 --version

DC-4靶机的exim4版本为4.89。

    • 提权

在kali上搜索exim4相关的提权文件:

searchsploit exim

只有Exim 4.87 - 4.91 - Local Privilege Escalation | linux/local/46996.sh满足版本和提权的要求。

将46996.sh文件传到DC-4靶机:

scp /usr/share/exploitdb/exploits/linux/local/46996.sh jim@192.168.101.79:/home/jim

进入jim账号下执行46996.sh提权脚本:

到此提前成功。

    • 备注

如果遇到执行脚本的时候提示“/bin/bash^M: bad interpreter: No such file or directory” 的错误是由于脚本文件是 dos 格式,即每一行结尾以 \r\n 来标识,而 unix 格式的文件结尾以 \n 来标识。

可以执行以下命令将46996.sh文件转换格式:

dos2unix /usr/share/exploitdb/exploits/linux/local/46996.sh
    • exim知识点

Exim是基于GPL协议的开放源代码软件,由英国剑桥大学的Philip Hazel开发。Exim是一个MTA,负责邮件的路由,转发和投递。Exim被作者设计成可运行于绝大多数的类UNIX系统上,包括了Solaris、AIX、Linux等。

Exim和其他开源的MTA相比,最大的特点是配置极其灵活。Exim的配置文件是一个文本文件,支持String Expansion技术。能够执行诸如条件判断、字符转换等功能。

Exim有两种称为Driver的元素:Router和Transport。Router对一个邮件地址进行操作,决定如何投递,即交给那个Transport,或对地址进行转换。Transport将邮件从Exim的队列中投递到目的地。Exim有本地和远程两种类型的Transport。邮件被Router成功处理后,交给Ttansport。如果一封邮件有多个收件人,它可能同时被多个不同的Transport处理。每个Router必须指定一个Transport,当Router运行成功时,即把邮件交给Transport来投递。通过String Expansion,Exim几乎有了无限的扩展能力,实现无限复杂的需要。邮件系统管理员可以根据自己的需要,设计相应的数据格式,然后通过String Expansion进行转换和判断。

    • 获取flag

cd /root家目录,查看flag.txt

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

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

相关文章

【谷粒商城基础篇】整合SpringCloud、SpringCloud alibaba

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念(第一、二章)基础环境搭建(第三章)整合SpringCloud整合SpringCloud、SpringCloud alibaba(第四、五章)前端知…

【ACWING】【4645选数异或】

给定一个长度为 n 的数列 A1,A2,,An 和一个非负整数 x,给定 m 次查询,每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x。 输入格式 输入的第一行包含三个整数 n,m,x。 第二行包含 n 个整数 A1,A2,,An。 接下来 m 行,每行包含…

单片机基础之初识串口

目录 一、初识串口 1、串口基本知识 2、串口的特点 3、了解下全双工和半双工的区别 二、关于串口的电器标准和协议 1、RS-232 2、RS-422 3、RS-485 三、关于串口的电平 1、RS232 电平 2、TTL电平 四、串口通信 1、串口接线方式 2、串口编程要素 3、波特率 4、编…

【练习】day02(未完成版)

努力经营当下直至未来明朗! 文章目录一、选择二、编程1. 全排列2. 全排列II答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 此代码片段输出正确的值是( ) public class CharToString {public static void main(String[] ar…

Flink窗口的生命周期

🍊在 Apache Flink 中,窗口是对数据流中的一个固定数量的元素或者一段时间内的元素进行分组的一种抽象概念。窗口有自己的生命周期,即从窗口的开始到窗口的结束。 🍊窗口的开始和结束可以是以下几种情况之一: 按数据…

WALLET 通证减半:早期用户分配将降至 4%

WALLET 通证即将满 1 年,这意味着根据 Ambire 钱包白皮书,它的年度早期用户供应量将削减至 4%,随着应用率的增长,通货膨胀率将大幅降低。 WALLET 一周年 根据官方消息,WALLET 通证的生成(token generation …

差分矩阵(二维)

题目: 输入一个 n行 m列的整数矩阵,再输入 q个操作,每个操作包含五个整数 x1,y1,x2,y2,c其中 (x1,y1)(x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上 c。 请你将进行完所有…

React Native 路由篇 react-navigation

1.我这边使用的是react-navigation,参照官网安装完启动,执行 npm install react-navigation/native。在安卓模拟器会报这个错误“invariant violation: requirenativecomponent: “rncsafeareaprovider” was not found in the uimanager”,其…

Java网络编程

一、IO模型 IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式: BIONIOAIO 1.BIO 1.1基本介绍 Blocking I/O,同步阻塞(传统阻塞型),服务器实现模式为一个连接一个线程&…

CSS初级教程(轮廓)【第五天】

CSS初级教程【第五天】【1】CSS 框模型【2】CSS 轮廓【3】CSS 轮廓宽度【4】CSS 轮廓颜色【5】CSS 轮廓简写【6】CSS 轮廓偏移【7】所有 CSS 轮廓属性CSS上回学习链接 CSS初级教程 颜色【第一天】 CSS初级教程 背景【第二天】 CSS初级教程 边框【第三天】 CSS初级教程 边距、高…

数据压缩算法PCA使用指南

来源:投稿 作者:小灰灰 编辑:学姐 PCA主成分分析算法 PCA的使用范围 PCA(principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据压缩算法。 在PCA中,数据从原来的坐标系转换到新的坐标…

【2023.01.03】定时执行专家 V6.5 更新日志 - TimingExecutor V6.5 Change Log

目录 ◆ 最新版下载链接 ◆ 软件更新日志 – TimingExecutor Full Change Log ▼ 2023-01-03 V6.5 ▼ 2022-12-25 V6.4 ▼ 2022-11-15 V6.3 ▼ 2022-10-01 V6.2 ▼ 2022-07-30 V6.1(Build 769.30072022) ▼ 2022-06-30 V6.0 ▼ 2022-…

《学术规范与论文写作》总结

文章目录一、写作规范二、写作准备三、论文架构3.1 标题3.2 摘要3.3 关键词(可省)3.4 引言3.5 相关工作(研究背景)3.6 实现细节3.7 实验部分3.8 结论四、写作技巧五、其他技巧5.1 算法伪代码5.2 图片5.3 写作语言一、写作规范 写…

短视频剪辑素材在哪里找?

视频剪辑没素材,推荐5个网站帮你解决,免费可商用,建议收藏! 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 网站有超多视频素材,全部都是高清无水印,各种类型都有,像自然、城市…

【Linux】文件操作|文件描述符|重定向

文章目录1.文件操作系统调用的几个基本接口openwritereadlseekwrite read close lseek ,对比C文件相关接口2.如何理解文件操作?3.文件描述符fd文件描述符的分配规则重定向使用 dup2 系统调用进行重定向4.在自己的shell中添加重定向功能:1.文件操作系统调…

唯品会api_sign分析

本次分析的案例是唯品会app,版本号:7.45.6 抓个包,请求头中有个api_sign,该字段就是本次分析的对象。 1.jadx 静态分析 直接搜索关键词:api_sign= 跟进去,来到这里。 这里用到了VCSPSecurityBasicService.apiSign()方法,双击两下,找到函数的定义地方。 这里引用到的方…

【机器学习实战】四、实现线性回归模型案例

线性回归案例 一、初始化方法 1.对数据进行预处理模块,调用prepare_for_training方法,得到返回值data_processed, features_mean, features_deviation 2.得到所有的特征个数,即data的特征维数的列(行shape[0],列shape[1]) 3.初始…

怎么获取level2行情接口数据?

怎么获取level2行情接口数据比较方便呢?其实level2行情接口可以实时计算沪深所有股票数据,主要是可以让交易者方便引用和计算公式再进入股票池,就比如说一个分笔数据含有10-20个分笔数据,用分笔数据计算的资金流入数据不准确&…

< Linux > 进程控制

目录 1、进程创建 fork函数 fork函数返回值 写时拷贝 fork常规用法 fork调用失败的原因 2、进程终止 2.1、进程退出常见场景 2.2、进程退出码 2.3、进程常见退出方法 _exit函数 exit函数 return退出 2.4、关于终止,内核做了什么 3、进程等待 3.1、进程等待必要性…

解决VS2019+Qt5+Vcpkg工程无法调试但Release正常运行的问题

前言——这个问题可能比较小众,但是因为解决了我自己的问题,所以特此把解决方法分享出来,以给特定的人提供必要的帮助。 项目原因,一直使用VS2019Qt5Vcpkg,无奈程序一直无法进行调试,Release模式倒是正常运…