实战打靶集锦-006-Stapler
**写在前面:**记录博主的一次打靶经历。
目录
- 1. 主机发现
- 2. 端口发现
- 3. 服务枚举
- 4. 服务探查
- 4.1 FTP探查
- 4.1.1 匿名登录
- 4.1.2 Elly用户
- 4.1.3 John用户
- 4.1.4 EXP搜索
- 4.2 dnsmasq探查
- 4.2.1 基础信息获取
- 4.2.2 EXP搜索
- 4.3 WEB应用探查
- 4.3.1 浏览器访问
- 4.3.2 目录扫描
- 4.3.2.1 dirsearch扫描
- 4.3.2.2 dirb 扫描
- 4.3.3 EXP搜索
- 4.4 MySQL探查
- 4.4.1 命令行访问
- 4.4.2 爆破mysql
- 4.5 Apache探查
- 4.5.1 浏览器访问
- 4.5.2 目录枚举
- 4.5.2.1 dirsearch扫描
- 4.5.2.2 dirb 扫描
- 4.5.3 EXP搜索
- 4.6 Samba探查
- 4.6.1 EXP搜索
- 4.6.2 EXP利用
- 5. 获取flag
1. 主机发现
目前只知道目标靶机在56.xx网段,通过如下的命令,看看这个网段上在线的主机。
$ nmap -sP 192.168.56.0/24

锁定靶机IP地址为56.109。
2. 端口发现
通过下面的命令,对靶机进行一下全端口扫描。
$ sudo nmap -p- 192.168.56.109

额,这个靶机上开放的端口比较多,可以说是琳琅满目了,FTP、WEB、数据库,等等。
3. 服务枚举
通过下面的命令,对端口上的服务进行枚举。
$ sudo nmap -p20,21,22,53,80,123,137,138,139,666,3306,12380 -A -sV -sT 192.168.56.109

内容还是挺多的,将来我们可能要搜索的公共EXP也会比较多,先逐个探查一下服务。
4. 服务探查
4.1 FTP探查
4.1.1 匿名登录
直接命令行登录。

anonymous登录直接进去了,接下来看看里面有些啥。

貌似只有一个note文件,下载下来看看里面都有些啥。

这个note挺有意思的,貌似是John给Elly的留言,并且Elly的FTP账户下面很有可能有“payload information”。先记下这些,接着到其它目录看看。

好奇怪,提示切换目录成功了,但是列出来的文件还是note,并且修改日期、大小、权限等等都跟之前是一样的。不管了,作为note2下载下来看看内容再说。

确认是同一个文件,这说明目录没有切换成功。从目前的来看,基本上anonymous用户可以看到的内容就是唯一的一个note文件。既然note中提到了Elly和John两个用户,尝试分别用这两个用户登录FTP和SSH试试看。
4.1.2 Elly用户
首先用elly用户登录FTP,并且简单试用一下弱密码elly、123、elly123。

均以失败告终,也可能是elly用户确实不存在。再用这个用户尝试SSH登录试试看。

同样均以失败告终,后面如果需要的话,回过头来尝试爆破一下。
4.1.3 John用户
在用john用户登录FTP和SSH的时候同样是失败的。
不过这里想更进步一点点,FTP登录的时候会提示Harry,SSH登录的时候会提示Barry,这也有可能是两个用户名,分别用相同的方式试一下,也失败了。后面有空的时候爆破一下。
4.1.4 EXP搜索
$ searchsploit vsftpd

从搜索结果来看,还是有EXP可以利用的,先看一下代码再说。

从代码来看,需要用户名和密码,这一点显然目前是不具备的,但是我们可以使用anonymous用户和空密码试一下。
接下来,修改一下host为目标靶机IP地址,用户名修改为anonymous,密码置空。

然后通过python3运行一下。

尽管已经提供了相关的参数,但是无论怎么调测都报这个错误,有些奇怪,实在不行的时候再回来啃这个硬骨头。
4.2 dnsmasq探查
4.2.1 基础信息获取
见识有些少,先看看dnsmasq是个啥再说,度娘给的结果还算明确。

4.2.2 EXP搜索
虽然知道了dnsmasq是个啥,但是还不知道怎么使用,这个上手可能也会浪费一些时间,接下来简单做一下公共EXP搜索。

虽然不知道怎么用,但是看上去貌似可以利用的漏洞不少。
4.3 WEB应用探查
4.3.1 浏览器访问

嗯,80端口是开着的,但是貌似页面找不到。
4.3.2 目录扫描
既然端口开着,那就进行一下目录扫描吧,看看能够扫描出些什么内容。
4.3.2.1 dirsearch扫描
通过下面的命令,采用dirsearch扫描一下。
$ dirsearch -u http://192.168.56.109

4.3.2.2 dirb 扫描
鉴于上次的经验教训,这里通过dirb挂上字典扫描一下。
$ dirb http://192.168.56.109 /usr/share/wordlists/dirb/big.txt
$ dirb http://192.168.56.109 /usr/share/wordlists/dirb/big.txt -X .php

貌似确实没有扫出更多的内容。先查看一下这几个扫出来的内容吧。先看看.bash_logout。

没啥干货,再看看.bashrc和.profile,都没啥干货。
4.3.3 EXP搜索
搜索一下对应版本的WEB应用服务器版本。

无论怎么优化关键字,搜索结果都不太合适。反正我也不知道这个PHP的cli server是啥,先google一下吧。

大概意思是,CLI是PHP的一个内置web server,这样在开发代码的时候,就不需要部署庞大的Apache或者Nginx等web服务器了。并且进一步查出了从PHP的5.4.0版本之后,都内置了CLI Server。

感觉这个CLI Server也只能本机访问,无法在网络上使用,暂时放弃吧。
4.4 MySQL探查
4.4.1 命令行访问
既然3306端口是开放的,那就从命令行访问一下,或者爆破一下试试看。

看来还是有些问题,直接用hydra爆破一下试试看。
4.4.2 爆破mysql
通过下面的命令,挂在rockyou字典爆破一下mysql的root用户。
$ hydra -l root -P /usr/share/wordlists/rockyou.txt 192.168.56.109 mysql

需要等待的时间比较长,等待大半个小时没有结果就停止它吧(最后确实放弃了,没有爆破出来)。
4.5 Apache探查
在服务枚举阶段,我们还枚举出了12380端口上运行的Apache httpd。我们在这里探查一下。
4.5.1 浏览器访问
先直接通过浏览器访问一下这个端口(分别用http和https)看看。

是http,就是一个人畜无害的普通静态页面啊,除了右下角的两个超链接,也没有其它关键信息。点击一下两个超链接试试看。
第一个Creative Tim连接到一个外部站点,如下。

先放到一边,说不定后面构建攻击字典的时候可以用上。再来看看那个Download的链接。

也是连接到了外部站点,对于外部站点,暂时不做分析,后面用到了再说。
4.5.2 目录枚举
既然到了这里,那就对12380端口也进行一下目录枚举吧。
4.5.2.1 dirsearch扫描
通过下面的命令,采用dirsearch扫描一下。
$ dirsearch -u http://192.168.56.109:12380

有些意外啊,竟然是空的,没法解释啊,看看上面提到的txt文件和log看看。

确实没有这个txt文件,接下来看看log有没有。

也是空的,太令人失望了,白等了半天。
4.5.2.2 dirb 扫描
通过dirb挂上字典扫描一下。
$ dirb http://192.168.56.109:12380 /usr/share/wordlists/dirb/big.txt

还是一无所获,暂时放弃这条线。
4.5.3 EXP搜索
搜索一下有没有适用于Apache 2.4.18的公共EXP。

貌似有一个提权漏洞和一个内存泄露的漏洞适用于靶机版本,这个漏洞利用会比较复杂,暂时放一边。
4.6 Samba探查
最后,探查一下Samba服务,之所以放在最后是因为这一块根本不了解,靶机上的版本是4.3.9版本。先连接一下试试看。

尝试发送消息试试看。

还是失败。
4.6.1 EXP搜索
现在本人对于139端口的理解,就是一张白纸,直接搜索一下看看有没有可用的公共EXP吧。

搜索下来,貌似就只有42084这一个EXP符合我们靶机的版本要求,貌似是一个任意模块加载的漏洞,先快速浏览一下代码再说。

ruby代码,除了注释,其它基本都看不懂,并且还需要Metasploit,针对的漏洞编号是CVE-2017-7494。
4.6.2 EXP利用
既然看不懂ruby的EXP代码,直接百度一下这个CVE-2017-7494的漏洞吧。
从网上搜索了一下,基本原理是这样的:Samba允许连接一个远程的命名管道,并且在连接建立之前会调用is_known_pipename()函数验证管道名称是否合法;但是在is_known_pipename()函数中,并没有对管道名称的规范性进行检查,这将会导致管道名称中可以包含特殊字符,攻击者可以构造使用包含特殊字符管道名称的恶意动态链接库文件并使用is_known_pipename()函数加载,用于执行任意代码。并且这个漏洞貌似可以直接在Metasploit里面利用,那就试试看吧。
说明:这里重点参照了网络大神的帖子(https://blog.csdn.net/dgjkkhcf/article/details/125902865)。
首先启动Metasploit控制台。
$ msfconsole

接下来,通过use命令使用is_known_pipename攻击模块。
msf6 > use exploit/linux/samba/is_known_pipename

通过set命令设置一下主机地址和端口参数,并通过show命令查看是否设置成功。
msf6 exploit(linux/samba/is_known_pipename) > set RHOSTS 192.168.56.109
msf6 exploit(linux/samba/is_known_pipename) > set RPORT 139
msf6 exploit(linux/samba/is_known_pipename) > show options

配置完成后,直接通过run命令运行一下漏洞利用模块。
msf6 exploit(linux/samba/is_known_pipename) > run

这是第一次用Metasploit,从上图中最后两行的输出来看,貌似是直接发现了shell并自动创建了反弹shell,直接试试看吧。

我靠,这也太神奇了,怪不得OSCP不让用Metasploit啊,还没弄明白具体的漏洞是咋回事就攻进去了,并且是突破边界+提权一条龙服务,直接获得了root权限。
5. 获取flag

相关文章:
实战打靶集锦-006-Stapler
**写在前面:**记录博主的一次打靶经历。 目录1. 主机发现2. 端口发现3. 服务枚举4. 服务探查4.1 FTP探查4.1.1 匿名登录4.1.2 Elly用户4.1.3 John用户4.1.4 EXP搜索4.2 dnsmasq探查4.2.1 基础信息获取4.2.2 EXP搜索4.3 WEB应用探查4.3.1 浏览器访问4.3.2 目录扫描4.…...
致远OAA6版安装
准备工作,操作系统winserver2019,sqlserver2019。致远OA安装包0.SeeyonInstall.zip相关下载:winserver2019下载地址:cn_windows_server_2019_updated_july_2020_x64_dvd_2c9b67da.iso magnet:?xturn:btih:22A410DEA1B0886354A34D…...
python实用脚本(六)—— pandas库的使用(生成、读取表格)
本期主题: python的pandas使用 往期链接: python实用脚本(一)—— 批量修改目标文件夹下的文件名python实用脚本(二)—— 使用xlrd读取excelpython实用脚本(三)—— 通过有道智云AP…...
字符集、ASCII、GBK、UTF-8、Unicode、乱码、字符编码、解码问题等
编码解码一、背景二、字符的相关概念三、字符集3.1 ASCII[ˈski]3.1.1 ASCII的编码方式3.1.2 EASCII3.2 GBK3.2.1 GB 2312-803.2.2 GBK的制订3.2.3 GBK的实现方式3.3 Unicode(统一码、万国码)3.3.1 Unicode的出现背景3.3.2 Unicode的编写方式3.3.3 Unico…...
Java 布隆过滤器
你在么?在!一定在么?不在!一定不在么? 你想要100%的准去性,还是99%的准确性附带较高的速度和较小的资源消耗。 任何算法,任何经营收到的背后,都是时间效益 资源消耗 准确性的平衡&am…...
vscode连接服务器(腾讯云)
文章目录1. vscode远程总是报错2. vscode能连上腾讯云但密码不对或者登录后不能打开文件或文件夹1. vscode远程总是报错 报错如图所示 Could not establish connection to *** 过程试图写入的管道不存在。 在百度、csdn找了好久都是说删掉.ssh文件下的某个文件但我压根没有&a…...
IOS崩溃文件符号化实践
1.背景与项目难点 1.1 背景 由于公司之前使用的友盟要收费,filebase服务由谷歌提供,存在数据合规风险。需要实现稳定性分析功能,通过支持app崩溃信息实时采集、实时上报、实时自动解析并定位出代码问题,帮助研发同学及时定位崩溃…...
设计模式之适配器模式与桥接模式详解和应用
目录1 适配器模式1.1 定义1.2 应用场景1.3 适配器角色1.4 类适配器1.5 对象适配器1.5 接口适配器1.6 实战1.7 源码1.8 适配器与装饰器的对比1.9 适配器模式的优缺点1.10 总结2 桥接模式2.1 原理解析2.2 角色2.3 通用写法2.4 应用场景2.5 业务场景中的运用2.6 源码2.7 桥接模式优…...
Winform控件开发(14)——NotifyIcon(史上最全)
前言: 先看个气泡提示框的效果: 代码如下: 在一个button中注册click事件,当我们点击button1时,就能显示气泡 private void button1_Click(object sender, EventArgs e){notifyIcon1.Visible = true;notifyIcon1...
Verilog 学习第四节(从计数器到可控制线性序列机——LED实验进化六部曲)
从计数器到可控制线性序列机——LED实验进化六部曲一:让LED灯按照亮0.25s,灭0.75s的状态循环亮灭二:让LED灯按照亮0.25s,灭0.5s,亮0.75s,灭1s的状态循环亮灭三:让LED灯按照指定的亮灭模式亮灭&a…...
操作SSH无密登录配置
例如小编有三台服务器需要相互访问,就需要配置三台,这三台分别是hadoop102,hadoop103 , hadoop1041.打开三个服务器,分别生成hadoop102,hadoop103 , hadoop104的公钥和私钥输入命令,然后一直回车,这时候什么…...
Websocket详细介绍
需求背景 在某个资产平台,在不了解需求的情况下,我突然接到了一个任务,让我做某个页面窗口的即时通讯,想到了用websocket技术,我从来没用过,被迫接受了这个任务,我带着浓烈的兴趣,就…...
大数据书单(100本)
大数据书单(100本) 序号 书名 作者 出版社 1 Hadoop权威指南:大数据的存储与分析(第4版)(修订版)(升级版) Tom White 清华大学出版社 2 Hive编程指南 卡普廖洛 (Edward Capriolo) / 万普勒 (Dean Wampler) / 卢森格林 (Jason Rutherglen) / 曹坤 人民邮…...
python实战应用讲解-【语法基础篇】初识Python(附示例代码)
目录 前言 Python基础 基本概念: 为什么使用Python? Python2.x与3.x版本区别...
【2023保研夏令营】网安、CS(西交、华师、科、南等)
文章目录一、基本情况二、投递和入营情况三、考核情况1. 西交软院(面试)2. 川大网安(笔试面试)3. 华东师范数据学院(机试面试)4. 人大信息学院专硕(机试面试,保密)5. 南大…...
Qt COM组件导出源文件
文章目录摘要dumpcpp.exe注册COM组件COM 组件转CPP参考关键字: Qt、 COM、 组件、 源文件、 dumpcpp摘要 由于厂家提供的库不是纯净C库,是基于COM组件开的库,在和厂家友好交流无果下,只能研究下Qt 如何调用,好在Qt 的…...
各数据库数据类型的介绍和匹配
各数据库数据类型的介绍和匹配1. Oracle的数据类型2. Mysql的数据类型3. Sql server的数据类型4. 类型匹配5. Awakening1. Oracle的数据类型 数据类型介绍 VARCHAR2 :可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749; NCHAR :根据字符集而定的固定长度字…...
Rancher 部署 MySQL
文章目录创建 pvc部署 MySQL前置条件:安装 rancher,可参考文章 docker 部署 rancher 创建 pvc MySQL 数据库是需要存储的,所以必须先准备 pvc 创建 pvc 自定义 pvc 名称选择已经新建好的 storageclass,storageclass 的创建可参考…...
Python语言零基础入门教程(二十五)
Python OS 文件/目录方法 Python语言零基础入门教程(二十四) 39、Python os.openpty() 方法 概述 os.openpty() 方法用于打开一个新的伪终端对。返回 pty 和 tty的文件描述符。 语法 openpty()方法语法格式如下: os.openpty()参数 无 返…...
蓝桥杯算法训练合集十五 1.打翻的闹钟2.智斗锅鸡3.文件列表
目录 1.打翻的闹钟 2.智斗锅鸡 3.文件列表 1.打翻的闹钟 问题描述 冯迭伊曼晚上刷吉米多维奇刷的太勤奋了,几乎天天迟到。崔神为了让VonDieEman改掉迟到的坏毛病,给他买了个闹钟。 一天早上,老冯被闹钟吵醒,他随手将闹钟按掉丢…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
