<vulnhub>-记一次实验Load of The Root

Load of The Root

一、信息收集

1.主机探测

探测到主机IP:192.168.88.159

image-20220723191329029

2.端口扫描

扫描到端口只开放了一个22端口
image-20220723191406182

尝试使用SSH连接

image-20220723191545226

Easy as 1,2,3

端口碰撞:端口上的防火墙通过产生一组预先指定关闭的端口进行连接尝试,一旦接收到正确的连接尝试序列,防火墙规则就会动态修改,以允许发送连接尝试的主机通过特定端口进行连接
这里我们使用ping命令冲撞三次试试1,2,3
命令:
hping3 -S 192.168.88.159 -p 1 -c 1
hping3 -S 192.168.88.159 -p 2 -c 1
hping3 -S 192.168.88.159 -p 3 -c 1

image-20220723191913693

通过ping碰撞后,防火墙规则会修改,再次端口扫描一次试试
image-20220723192208893

发现1337端口已经打开,访问试试

image-20220723192250913

发现这里面并没有什么线索,查看一下robots.txt文件

image-20220723192601543

查看一下源代码

image-20220723192625210

发现一串用Base64加密的值,我们解码查看一下

THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh

image-20220723192707662

Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!

发现还是一串base64加密的值,二次解码查看

image-20220723192750329

/978345210/index.php 

一看就知道是目录,我们访问试试

image-20220723192850905

目前不知道账户和密码,我们使用sqlmap进行基于登录表单的注入查看,检索数据库名称和登录凭证

sqlmap -o -u "http://192.168.88.159:1337/978345210/index.php" --forms --dbs

image-20220723193552151

查看webapp数据库中数据

sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T --tables

image-20220723194155880

sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users --columns

image-20220723194602032

sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users -C id,username,password --dump

image-20220723195315750

将这些用户名和密码保存在两个不同的文本中,使用msfconsole来破解SSH正确的账户密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNt7RRl1-1663660394270)(Load of The Root-image/Load of The Root/image-20220723195629747.png)]

image-20220723195810772

image-20220723200025171

结果

image-20220723200101648

账号密码:smeagol:MyPreciousR00t

二、提权方式

1.Linux内核提权

SSH登录

image-20220723200323161

查看内核版本

image-20220723200444924

查看到ubuntu 14.04的版本
image-20220723200757166

我们使用39166.c进行提权
image-20220723200950511

提取shell到本地,开启服务,准备上传shell

image-20220723201105558

通过python开启服务上传shell,并进行gcc编译,继续提权

image-20220723201314663

成功提权到root

2.以root身份运行Mysql提权

在我们查看进程的时候,发现mysql是以root权限在运行,同时查看到数据库的版本是5.5.44

image-20220724204011042

根据这个信息我们使用exploit进行反弹shell提权,继续所有数据库信息看看有哪些,咱们筛选一下信息

image-20220724204213388

image-20220724204305804

准备开始上传shell到smeagol用户下

image-20220724204707966

我们参考1518.c脚本内容进行命令输入,制作反弹shell

image-20220724204851476

在这里我们在数据中找mysql的root密码,一般都在/var/www目录下查找配置文件

image-20220724205043372

发现数据库密码是darkshadow,接下来按照步骤进行

image-20220724205154325

image-20220725124127789
image-20220725125056666

这样就拿到root权限了

image-20220725125106276

缓冲区溢出提权

学过缓冲区溢出提权,都会了解到SECRET文件夹目录,我们来找找

find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null

image-20220725125354756

每个文件夹都有一个可执行文件,需要输入字符串才能执行

image-20220725125559405

尝试是否在这里可以利用缓冲区溢出提权

易受攻击的文件会文件夹之间随机移动,要确认是哪个文件,可以使用file命令来比较每个文件的哈希值

file door1/file door2/file door3/file

image-20220725125814889

还可以比较使用ls -lahR创建的文件大小和日期
image-20220725130032895

还可以比较文件大小为du -b字节
image-20220725130114114

目前是door3
image-20220725130200411

将文件复制到bof目录下,方便进行进一步测试

为了确认是否受到攻击,使用python命令快速模糊找出崩溃的字符数

首先发送100个“A”不会执行任何操作

image-20220725130501673

经过测试发现,171是崩溃的确切位置
image-20220725130559180

二进制文件的快速替代方法是使用base64,使用base64的fileName编码二进制文件,将值复制到一个文本即可

image-20220725130919141

然后将base64.txt文件读入base64命令并解码为输出文件

image-20220725130858242

要进行下一步,检查下文件类型之前file door1/file 查看到的哈希值一样

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://JAVA.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>springMVC</display-name> <welcome-file-list> <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-mybatis.xml</param-value> </context-param> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <param-name>webAppRootKey</param-name> <param-value>keshe_C12_09.root</param-value> </context-param> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> </web-app>
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值