靶机下载地址:https://download.vulnhub.com/breach/Breach-2_final2.1.zip
需要配置仅主机模式
主机发现
靶机IP:192.168.110.151
kali:192.168.110.128
扫描端口
这里需要使用全端口扫描,默认扫描只能扫常用端口和一些nmap内置的扫描端口
全端口扫描通过-p参数指定所有端口1-65535,也可使用-p-
开放了三个端口,65535端口是ssh服务
攻击ssh使80端口开放
ssh连接, 提示说peter的密码在source中,其实就是字面意思,密码是inthesource
而且这里的peter是全小写
用户名:peter 密码:inthesource
连接失败,密码应该是对的,只是故意不给连接
再次扫端口,竟然跑出来了个80端口的http服务,就是ssh连接peter用户成功才开放的
这作者的脑子真是我擦嘞
web渗透
访问网站
查看源码,又是两句看不懂的废话,真是说话自带加密算法
扫目录,发现blog
是一个博客, 在搜索框输入测试语句1' or 1=1#,发现存在sql注入,用sqlmap跑下看看
成功跑出来了,爆库blog
最后只找到个类似有用的用户密码
md5解密:https://www.cmd5.com/
尝试ssh和blog网站登录都失败,只能另寻他法
经过测试,这个网站没有对用户输入进行任何过滤
搜索框存在反射型XSS、注册页面存在存储型XSS
由于注册时没有对输入的用户名进行防护,导致将构造的XSS语句存入了数据库,查看个人信息将会触发用户名的XSS语句
用户名插入一句XSS,密码和邮箱随便填,点击注册
注册成功之后点击Members可触发XSS
这里可利用存储型xss获取webshell
XSS拿shell
结合网站首页图片的提示,可用beef框架进行攻击,beef是一个专门利用xss进行攻击的框架,集成了许多xss攻击的模块,反正就是很牛逼
利用kali安装beef即可
将下面的xss语句插入到注册用户的username中,密码邮箱随意,点击注册,然后再访问Members触发xss
等等触发xss,beef成功连接上,
这里需要等一段时间,因为靶机会自己去触发这个xss漏洞,只能等,而且不能注入有弹窗xss,不然靶机会触发xss失败,导致beef无法连上靶机
采用msf的浏览器攻击模块获取会话,因为靶机用的是火狐浏览器,所以选用火狐模块攻击
打开msf,用search命令搜索
选用模块,设置参数,执行
生成一个链接,靶机访问就会利用浏览器漏洞建立一个会话
通过beef的Redirect Browser(重定向)访问生成的链接
成功建立会话
sessions查看是否有会话,没有则继续等继续刷新,并将会话迁移到meterpreter便于后续操作
选meterpreter会话,当前用户正是peter,因为刚刚peter连接ssh时被踢出来了,所以先看看ssh的配置文件,
可以看到,登录peter就执行一个startme程序,查看源码,就是开启apache服务, 所以登录成功peter才开放80端口,而之所以登录成功就被踢出来,则是因为ssh连接peter用户只执行了startme程序就断开连接
用户主目录下有个隐藏文件.bashrc,每次执行bash时都会加载,也可以这样理解,当登录peter用户时就会去加载peter主目录下的.bashrc,因为当前用户是peter,所以对peter主目录下的文件拥有可写权限,只要在.bashrc文件下写入exec sh,那么就能在ssh连接peter用户时就会执行exec sh命令,从而调用一个命令行
再次使用ssh连接peter用户成功
提权
信息收集
除了peter还有两个用户milton、blumbergh
有个陌生的2323端口正处于监听状态,使用telnet连接下
是一个坐标,用谷歌地图搜索
这个坐标刚好是休斯顿(houston)的坐标,以刚刚得到的用户名milton、blumbergh进行登录
ssh爆破、su切换命令都不行,最后才知道要在靶机的登录界面才行,我在想,这在真实案例中,我去目标的机房用console线连接是否可以登录呢,还不如直接一斧头下去给他砸了
账户:milton 密码:Houston
登录成功但只有几句提示又被弹出来了,根据有个提示Whose stapler is it?,这句话不可能凭空重新,肯定是某个程序执行产生的,使用grep全局搜索看看是哪个文件打印出来的
查看/usr/local/bin/cd.py文件源码
分析源码,问题答案是mine,如果在三秒内没有回答正确,就会杀死进程,那么再尝试登录并在3秒内输入mine,成功登录
继续收集信息,没有找到提权的方法,不过又找出来一个陌生的8888端口处于监听状态,用telnet再搞一下
提示输入^] 字符逃出
看着就像是个http服务啊,用nmap再扫下端口
又多了个服务
有个oscommerce/目录,前面的sql注入就在这个库里面爆了个用户名密码
admin admin
密码都有了,肯定是扫后台了,重定向了
成功登录后台,找上传点上传木马
有个文件管理器
includes目录下有个可写目录work
使用msf生成php木马,直接复制生成的木马源码
在work目录下新建文件breach2.php,将木马源码粘贴进去保存
kali使用msf的exploit模块开启监听
浏览器访问木马文件,成功反弹blumbergh用户权限
sudo -l发现可用sudo提权的tcpdump程序
提权方法参考:https://www.cnblogs.com/zlgxzswjy/p/10346043.html
tcptump命令详解参考:https://www.fujieace.com/linux/man/tcpdump-8.html
在tmp目录下创建执行脚本,将blumbergh的权限提升为root权限,并给予执行权限
kali监听1234端口
靶机执行下面命令
成功反弹root权限
或者将blumbergh提升到root并且无密码登录
总结
权限大的用户不一定可以提升到更高权限 ,权限小的却有可能直接提权到root