申明:本文为靶机EMPIRE:BREAKOUT学习笔记,相关操作仅在测试环境中进行,严禁任何危害网络安全的恶意行为。本文主要记录了一些关键知识点,仅供学习!

一、 安装说明

靶机在https://www.vulnhub.com/上面直接下载后通过虚拟机启动就可以了。

二、 信息收集

信息收集部署仍然是存活主机检查、开放端口及操作系统检测,检测到开放端口后,可以逐个对端口进行访问,观察返回的内容,这里记录一下比较关键的几个点:

1、通过curl依次访问几个开放的端口,其中80、10000、20000均可以访问,访问80端口的时候可以看到最后面的提示类似++++++[>+>这些字符,如下:

curl http://192.168.2.10   

Empire Breakout学习体会_getcap

根据提示查看这是一种BrainF*ck语言编写的内容,对上述字符在​​https://www.splitbrain.org/services/ook​

进行解密得到.2uqPEfj3D<P'a-3

2、在浏览器进一步访问10000、20000端口为登录页面,根据提示信息猜测10000端口为管理员页面,20000为普通用户页面。

在这两个页面尝试进行猜解,发现都不成功。继续看之前端口扫描出来的信息,其中还包括139和445端口。

3、尝试使用enum4linux进行samba信息枚举:

enum4linux -a 192.168.2.10

Empire Breakout学习体会_empire breakout_02

最后有一个cyber的本地用户信息。

4、现在使用已经得到的用户及pass信息再登录一下两个页面,其中端口为20000的页面可以登录,登录后可以浏览器一下相关的页面,这几个页面暴露了好些敏感信息,另外还有Upload and Download目录可以进行上传、下载等操作,且下载的资源控制得不严,可以下载/etc/passwd文件,浏览器到/var/backups目录里面有一个.old_pass.bak的隐藏文件,但是这个文件在WEB页面下载不下下来。另外在尝试上传一句话木MA的时候,一直报“Bad file descriptor”,未知其原因。最后在最下面有一个类似进入控制台的按钮,如下:

Empire Breakout学习体会_empire breakout_03

5、点击之后确实进入到后台,但是权限为cyber普通用户权限。

Empire Breakout学习体会_empire breakout_04

三、 进一步利用

1、在KALI上通过nc启动一个端口监听,然后反弹一个SHELL回KALI

2、KALI上已经获得了SHELL。查看有两个文件,一个user.txt,得到字符串:3mp!r3,并且提示已经达到了突破该靶机的安全访问。

Empire Breakout学习体会_getcap_05

3、用getcap命令搜索有执行权限的文件:

Empire Breakout学习体会_getcap_06

刚好该目录下的tar命令具有执行权限。

前面提到在/var/backups/目录下有一个old_pass.bak的备份文件。

4、使用tar命令将该文件打包到当前目录来:

Empire Breakout学习体会_empire breakout_07

5、然后再解压:

Empire Breakout学习体会_empire breakout_08

6、查看文件内容:

Empire Breakout学习体会_empire breakout_09

cyber@breakout:~$ cat var/backups/.old_pass.bak

cat var/backups/.old_pass.bak

Ts&4&YurgtRX(=~h

7、这里又得到一个pass字符串,再尝试一下切换root:

Empire Breakout学习体会_getcap_10

8、通过su成功切换到root用户:

Empire Breakout学习体会_empire breakout_11

在rOOt.txt文件中得到成功获取系统权限的提示,进一步通过python3 -c "import pty;pty.spawn('/bin/bash')"命令获取到BASH提示符。

四、 知识点总结:

该靶机中不像其他靶机有比较多的漏洞可以直接利用,通过暴PO没有能够获得WEB的登录权限,获得cyber用户登录WEB的权限后,可以看到有好几个疑似存在漏洞的WEB功能点,泄露了好些敏感信息,但是又都无法利用,感觉像是这个靶机故意这样设置,在网上看了好几个师傅的博客,感觉有好几个知识点都是以前没有接触的,在这里做一下相关的总结:

1、 BrainF*ck(简称BF)加解密:根据网上介绍这其实是一种极少化的编程语言,读起来就像是天数,几乎不具有可读性。好在有现成的网站实现明文与BF语言的转换。网站地址:​​https://www.splitbrain.org/services/ook​​,还有一种类似的OOK语言在该网站上也可以进行转换。

2、 KALI内置命令Enum4linux用于枚举samba信息,包括对象基本信息、网络共享信息、用户组及用户、操作系统,enum4linux –help可以查看帮助信息:

Options are (like "enum"):

    -U        get userlist

    -M        get machine list*

    -S        get sharelist

    -P        get password policy information

    -G        get group and member list

    -d        be detailed, applies to -U and -S

    -u user   specify username to use (default "") 

    -p pass   specify password to use (default "")  

 

3、getcap用getcap命令搜索有执行权限的文件:

[cyber@breakout ~]$ getcap -r / 2> /dev/null

 Linux内核从2.2版本开始,就加进的Capabilities的概念与机制,并随着版本升高逐步得到改进。在linux中,root权限被分割成一下29中能力:
CAP_CHOWN:修改文件属主的权限
CAP_DAC_OVERRIDE:忽略文件的DAC访问限制
CAP_DAC_READ_SEARCH:忽略文件读及目录搜索的DAC访问限制
CAP_FOWNER:忽略文件属主ID必须和进程用户ID相匹配的限制
CAP_FSETID:允许设置文件的setuid位
CAP_KILL:允许对不属于自己的进程发送信号
CAP_SETGID:允许改变进程的组ID
CAP_SETUID:允许改变进程的用户ID
CAP_SETPCAP:允许向其他进程转移能力以及删除其他进程的能力
CAP_LINUX_IMMUTABLE:允许修改文件的IMMUTABLE和APPEND属性标志
CAP_NET_BIND_SERVICE:允许绑定到小于1024的端口
CAP_NET_BROADCAST:允许网络广播和多播访问
CAP_NET_ADMIN:允许执行网络管理任务
CAP_NET_RAW:允许使用原始套接字
CAP_IPC_LOCK:允许锁定共享内存片段
CAP_IPC_OWNER:忽略IPC所有权检查
CAP_SYS_MODULE:允许插入和删除内核模块
CAP_SYS_RAWIO:允许直接访问/devport,/dev/mem,/dev/kmem及原始块设备
CAP_SYS_CHROOT:允许使用chroot()系统调用
CAP_SYS_PTRACE:允许跟踪任何进程
CAP_SYS_PACCT:允许执行进程的BSD式审计
CAP_SYS_ADMIN:允许执行系统管理任务,如加载或卸载文件系统、设置磁盘配额等
CAP_SYS_BOOT:允许重新启动系统
CAP_SYS_NICE:允许提升优先级及设置其他进程的优先级
CAP_SYS_RESOURCE:忽略资源限制
CAP_SYS_TIME:允许改变系统时钟
CAP_SYS_TTY_CONFIG:允许配置TTY设备
CAP_MKNOD:允许使用mknod()系统调用
CAP_LEASE:允许修改文件锁的FL_LEASE标志

cap_chown=eip是将chown的能力以cap_effective(e),cap_inheritable(i),cap_permitted(p)三种位图的方式授权给相关的程序文件。