0x01 命令和脚本解释器
- powershell
- cmd
- js
- vb(s)
- python
0x02 客户端漏洞利用
- 客户端漏洞利用
0x03 进程间通讯
3-1 组件对象模型
- 组件对象模型,COM 是本机 Windows 应用程序编程接口 (API) 的进程间通信 (IPC) 组件,它支持软件对象或实现一个或多个接口的可执行代码之间的交互。
- 暴露的各种 COM 接口可被滥用以通过各种编程语言(如 C、C++、Java 和Visual Basic)调用任意执行。
- 作用
- 收集信息
- 持久化
- 执行进程
- 计划任务
- Bypass UAC
3-2 DDE
0x04 计划任务
- 通过
schtasks
程序创建计划任务 - 通过COM编程创建计划任务,C#的TaskService类NewTask方法,以及PowerShell的
Schedule.Service
对象可以创建计划任务 - 图形界面(实战不适合)
- 检测方法1(进程)
- 父进程
svchost.exe -k netsvcs -p -s Schedule
,但是win10以前版本看不到-s Schedule
- 在以前系统中(win7),计划任务的进程树
svchost.exe -> taskeng.exe -> [SpecialTaskProcess]
- 而在win10系统中,不再有taskeng.exe了,在 Win7 上该进程名为:taskhost.exe,在Win8上该进程名为:taskhostex.exe。
- 父进程
- 检测方法2(文件)
- %SystemRoot%\System32\Tasks
检测方法3(注册表)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule
不完全隐藏(进行全局查询查不到,但是如果知道任务名可以查到):
- SYSTEM权限下,修改注册表
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\{TaskName}
的Index的值为0 - 删除%SystemRoot%\System32\Tasks 下任务对应的 XML 文件(win10不影响任务执行,以下系统影响)
- SYSTEM权限下,修改注册表
完全隐藏
- 删除
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\{TaskName}\SD
- 删除 %SystemRoot%\System32\Tasks 下任务对应的 XML 文件
- 原理:因为 SD 就是安全描述符,它的作用主要是为了给操作系统提供判断来访对象的权限,但被删除后,无法判断用户是否有权限查看该任务信息,导致系统直接判断无权限查看
- 删除
- Windows计划任务的进阶
0x05 软件部署工具
- 攻击者可能会访问并使用安装在企业网络中的第三方软件套件,从而实现执行与横向移动
0x06 windows 系统服务
- sc.exe创建服务
- API创建服务
CreateService
,StartService
- PsExec等横向移动执行工具
- http://hacky.ren/2021/12/24/深入剖析PsExec/
0x07 用户执行
- 恶意链接,图片,文件
0x08 Windows管理规范
0x09 常见的技术
- 命令和脚本解释器
- API
- 用户执行
- 计划任务
- 服务
- WMI
- 组件对象模型