前期准备:
靶机地址:Empire: Breakout ~ VulnHub
kali 攻击机ip:192.168.146.131
靶机 ip:192.168.146.149
目录
一、信息收集
1.使用nmap对目标靶机进行扫描
nmap -A -p 1-65535 192.168.146.149
发现开了80、139、445、10000、20000端口。
二 目录扫描
目录扫描,发现没有什么
访问80端口
没有发现,查看源代码
发现了一个线索,上面的英文翻译是:
别担心没有人会到达这里,与你分享我的访问权限是安全的。其加密:)
这种加密一看就是 Brainfuck/Ook! 加密,解得:.2uqPEfj3D<P'a-3
继续访问其他端口 10000端口
是个登录界面。
20000端口
也是个登录界面,和10000端口的不一样。
三 枚举信息
enum4linux是Kali Linux自带的一款信息收集工具。它可以收集Windows系统的大量信息,如用户名列表、主机列表、共享列表、密码策略信息、工作组和成员信息、主机信息、打印机信息等等。该工具主要是针对Windows NT/2000/XP/2003,在Windows 7/10系统,部分功能受限。总的来说,一个工具可以获取这么多的信息,也算非常强大了。
发现得到用户名:cyber
发现了用户名,登陆一下10000跟 20000 端口,密码是上面解密的密码
发现10000端口登不上,20000端口登上去了
在这里找到了一个command shell(如下图标红的框的地方),发现能登陆后台,在网页上打开控制台
vim 写入 反弹 shell
写完文件要记得赋予这个文件执行的权限
使用kali进行nc 连接
这个user.txt应该是第一个flag
四 权限提升
寻找suid权限程序提权
在shell 中寻找 suid 程序:
find / -perm -u=s -type f 2>/dev/null
没有什么发现,换种方法
查看一下文件
在CTF 中每当看到二进制文件的副本时
都应该检查一下其 Capabilities(功能)和 suid 程序。
查询当前目录下 tar 文件的功能:
getcap tar
cap_dac_read_search=ep 功能,能读取文件
还可以加参数-r 递归查询:
getcap -r / 2>/dev/null
发现了2个文件
可以尝试查找一些敏感文件,使用tar读取
信息收集获取root密码
使用以下命令查询有pass关键字的文件
find /-name'*pass*' 2</dev/null
发现三个有关密码的文件
bak后缀应该是一个备份文件我们尝试查看这个文件
不过这个文件只能root用户读取
之前发现 tar 可以读取任意文件,那就用 tar 读取文件,尝试使用 tar 压缩
./tar -cf bak.tar /var/backups/.old_pass.bak
tar -xf bak.tar
cat var/backups/.old_pass.bak
得到密码:Ts&4&YurgtRX(=~h
使用
su root
查看root用户下的文件,得到flag
总结:
整体来说该靶机难度比较简单,前面的信息搜集完了之后,可以先从webmin入手,去挖80端。从80端口的源码中发现一个brainfuck加密的数据,解密后得到了一个密码。又去看samba服务,收集到一个cyber用户,以此为账号密码登录webmin 成功,最后从web后台界面找到一个 可以执行 command shell 的地方 反弹shell成功。
提权 依靠 cyber用户下 存在一个 具有可执行的root权限的 tar命令,又找到一个root的密码备份文件,以发现的tar命令压缩备份文件(.tar),又以当前用户的tar命令解压(tar)出该文件,权限就变为cyber用户的权限,读取到密码,su root 提权成功。