vulnhub靶场之hackableⅢ

hackable3

前言

这里使用virtual box加载靶机

靶机:hackable3

攻击:kali

 

主机发现

使用arp-scan -l扫描

 

信息收集

使用nmap扫描

 

这里明显:

  1. 22端口ssh服务可能过滤了

  2. 80端口开启apachehttp服务

 

网站目录扫描

使用dirsearch扫描,或者gobusterffufdirbdirbuster

 

 

进一步信息收集

测试22端口是否可用,可能设置条件了

 

直接访问页面,并查看源代码

 

根据上面的目录扫描,访问HTTP服务

访问/robots.txt 文件,这个目录算是信息泄露

 

访问/config,有一个1.txt文件,打开后是经过编码处理的数据,尝试解码

 

base64解码后,是一串数字10000,不过这也不确定是否是base64编码

继续访问其他目录/backup

访问发现有一个txt文件,访问发现算是字典

 

登录界面的源码/login.php

 

首先是POST接收,那么就需要使用burp进行测试

分析

  1. 首先接收user赋值给usuario,接收pass赋值给senha

  2. 从数据库中查询表usuarios,对用户的输入进行判断。正确会返回数据库的值

  3. 当数据库有返回的时候,会把用户名赋值给session

这里还有一张图片,并且没有路径,可能在当前目录下,直接访问,使用wget下载到本地

然后使用steghide检测是否有隐藏信息,这里如果有passphrase的话,是需要输入的,这里并不知道,直接回车

 

访问login_page/login.html

 

 

 

访问/config.php文件,这里提示,默认设置root无密码,对于mysql服务

 

访问css目录,访问发现2.txt,打开也是一段编码的字符

 

尝试进行解码,之前碰到过,其实就是brain

 

 

信息总结

  1. 可能有用户jubiscleudo

  2. 获取两个端口,65535、100004444

  3. 数据库是mysql数据库

  4. 连接数据库的用户root没设置密码

  5. login.php可以返回表的所有数据

  6. 有一个字典

 

漏洞寻找

在 Linux 系统中有一个名为 “knock” 的命令行工具,它用于实现端口敲门功能。通过这个工具,用户可以在命令行下轻松地发送端口敲门序列。例如,如果要按照前面提到的端口序列(1000、2000、3000)进行敲门,在安装并配置好 “knock” 工具后,可以使用类似 “knock < 服务器 IP 地址 > 1000 2000 3000” 的命令来触发服务器上对应的安全策略。

 

根据上面来说,是进行了安全策略,需要按照之前获取的1.txt、2.txt、3.txt所解出的端口进行顺序

简单来说,就是像一种暗号一样,对了才能访问SSH服务

 

现在可以正常访问ssh服务,然后根据前面获取的,可能存在用户jubiscleudo,也给出一个字典,尝试对其进行爆破

 hydra -l jubiscleudo -P wordlist.txt ssh://192.168.1.38 -vV -f
 //该字典使用的是网站给出的

 

漏洞利用

获取成功,密码为onlymy,登录,然后发现还有一个用户。

 

使用find寻找具有SUID权限

 

尝试使用sudo进行查看

 

这样提权不行,搜索一些敏感文件的关键字,如*user*、*pass*、*back*等等

 

发现之前没有看到的php文件,去查看,可以看到在进行与mysql服务连接时,设置的用户名和密码

 

用户名hackable_3,密码TrOLLED_3,不过这里的密码是作为数据库连接的,不知道是否是其本身密码

测试发现可以,就是其密码,这里需要注意,id命令时的lxd

 

尝试sudo提权,发现不行

 

lxd提权

环境配置

https://github.com/saghul/lxd-alpine-builder.git从这里下载项目

 

root身份进行搭建

 

然后在该目录下开启一个简易的http服务,然后在靶机中下载

 

 

使用lxc导入该包到镜像中,并起别名为test

 lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias test

然后使用lxc image list列出镜像

 

进行lxd初始化,一直回车即可

 

提权使用

生成一个初始化容器

 lxc init test dijia -c security.privileged=true
 //这里的test就是前面初始化的镜像别名

 

把磁盘挂载

 lxc config device add dijia mydevice disk source=/ path=/mnt/root recursive=true

启动创建的dijia容器

 lxc start dijia

 

 

容器执行/bin/sh

 lxc exec dijia /bin/sh

23

 

清除痕迹

 lxc stop dijia      //暂停容器dijia
 lxc delete dijia //删除容器dijia
 lxc image delete test //删除镜像test
 rm -rf alpine-v3.13-x86_64-20210218_0139.tar.gz snap //删除下载的文件

history -c

history -r

 

 

 

总结

  1. 对于信息的收集,只要有可能,都记录下来

  2. 编码加密的一些使用,要会解码解密

  3. 对于网站的目录,最好的方式就是都看一看页面源代码

  4. 这里的ssh服务开启某种安全策略,所以需要特定的序号端口进行访问才能打开22端口

  5. 密码爆破,hydra的使用

  6. lxd、lxc的使用,容器,感觉用法其实和现在的docker很相似。

 

posted @ 2024-11-29 22:11  whitehe  阅读(46)  评论(0)    收藏  举报  来源