文章来源|MS08067 红队培训班 第6期
本文作者:tIn7erface(红队培训班讲师)
掌握impacket工具包:使用--原理--编写 == 大成
https://github.com/SecureAuthCorp/impacket
dnspy
HXD
SoftEther VPN
Windows Admin center 微软出品,用来远程管理电脑
Autoruns 开机启动项管理工具https://github.com/lintstar/LSTAR
cs插件继承fscan
课外阅读:https://cloud.tencent.com/developer/article/1769697
渗透测试本质是信息收集,内网对抗本身是对Windows的对抗,Linux较少。
所有命令行其实都是二进制的可执行文件。如果cmd 是 c:\Windows\system32\whoami.exe
可以做个小实验,设置自己的exe到任意目录。
查看环境变量:set
设置环境变量:
set tempname = uunicodesec
查询环境变量:set | findstr r
3.2.1 Magic number
即幻数,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。数头(Magic number)
3.2.2 PE 文件
MZ头
3.2.3 文件时间
3.2.3 ACL
ICACLS
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中
以便将来与 /restore 一起使用。请注意,未保存 SACL、
所有者或完整性标签。ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
[/C] [/L] [/Q]
将存储的 DACL 应用于目录中的文件。
ICACLS name /setowner user [/T] [/C] [/L] [/Q]
更改所有匹配名称的所有者。该选项不会强制更改所有
身份;使用 takeown.exe 实用程序可实现
该目的。
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
查找包含显式提及 SID 的 ACL 的
所有匹配名称。
ICACLS name /verify [/T] [/C] [/L] [/Q]
查找其 ACL 不规范或长度与 ACE
计数不一致的所有文件。
ICACLS name /reset [/T] [/C] [/L] [/Q]
为所有匹配文件使用默认继承的 ACL 替换 ACL。
ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel Level:policy[...]]
/grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r,
这些权限将替换以前授予的所有显式权限。
如果不使用 :r,这些权限将添加到以前授予的
所有显式权限。
/deny Sid:perm 显式拒绝指定的用户访问权限。
将为列出的权限添加显式拒绝 ACE,
并删除所有显式授予的权限中的相同权限。
/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用
:g,将删除授予该 SID 的所有权限。使用
:d,将删除拒绝该 SID 的所有权限。
/setintegritylevel [(CI)(OI)]级别将完整性 ACE 显式
添加到所有匹配文件。要指定的级别为以下级别
之一:
L[ow]
M[edium]
H[igh]
完整性 ACE 的继承选项可以优先于级别,但只应用于
目录。
/inheritance:e|d|r
e - 启用继承
d - 禁用继承并复制 ACE
r - 删除所有继承的 ACE
注意:
Sid 可以采用数字格式或友好的名称格式。如果给定数字格式,
那么请在 SID 的开头添加一个 *。
/T 指示在以该名称指定的目录下的所有匹配文件/目录上
执行此操作。
/C 指示此操作将在所有文件错误上继续进行。
仍将显示错误消息。
/L 指示此操作在符号
链接本身而不是其目标上执行。
/Q 指示 icacls 应该禁止显示成功消息。
ICACLS 保留 ACE 项的规范顺序:
显式拒绝
显式授予
继承的拒绝
继承的授予
perm 是权限掩码,可以指定两种格式之一:
简单权限序列:
N - 无访问权限
F - 完全访问权限
M - 修改权限
RX - 读取和执行权限
R - 只读权限
W - 只写权限
D - 删除权限
在括号中以逗号分隔的特定权限列表:
DE - 删除
RC - 读取控制
WDAC - 写入 DAC
WO - 写入所有者
S - 同步
AS - 访问系统安全性
MA - 允许的最大值
GR - 一般性读取
GW - 一般性写入
GE - 一般性执行
GA - 全为一般性
RD - 读取数据/列出目录
WD - 写入数据/添加文件
AD - 附加数据/添加子目录
REA - 读取扩展属性
WEA - 写入扩展属性
X - 执行/遍历
DC - 删除子项
RA - 读取属性
WA - 写入属性
继承权限可以优先于每种格式,但只应用于
目录:
(OI) - 对象继承
(CI) - 容器继承
(IO) - 仅继承
(NP) - 不传播继承
(I) - 从父容器继承的权限
示例:
icacls c:\windows\* /save AclFile /T
- 将 c:\windows 及其子目录下所有文件的
ACL 保存到 AclFile。
icacls c:\windows\ /restore AclFile
- 将还原 c:\windows 及其子目录下存在的 AclFile 内
所有文件的 ACL。
icacls file /grant Administrator:(D,WDAC)
- 将授予用户对文件删除和写入 DAC 的管理员
权限。
icacls file /grant *S-1-1-0:(D,WDAC)
- 将授予由 sid S-1-1-0 定义的用户对文件删除和
写入 DAC 的权限。
3.2.3 Windows 目录结构
Users文件夹内包含着用户的一些信息和资料
program files
Program Files 指的是程序文件,也就是Windows 操作系统,也包括其它的操作系统各种软件默认安装到的目录。位于C盘分区("C:\Program Files","%ProgramFiles%")。
AppData
Appdata文件位于系统盘(一般是C盘)→用户→Default 目录下,里面还包含了Locallow、Local转、Loaming等文件夹,具体功能如下。
1、locallow:共享数据存放文件,一般都可以清理一些无用的共享文件。
2、Local:本地保存文件,其中本地临时文件,AppData\Local\Temp\下面的文件可以删除(注意是Temp)。
3、Roaming:保存应用程序运行后的数据信息,如果删除应用程序运行配置数据会丢失
ProgramDate
ProgramDate文件夹属于电脑 C盘的一个系统文件夹,它是公用的被创建文件夹或文件存放的地方,这些文件夹或文件仅由创建者完整控制。
tracert baidu.com
route print
netstat -r
route add 70.34.197.181 mask 255.255.255.255 192.168.103.1
route delete 192.168.0.0
安全蓝队 : windows日志检索和分析
Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。这些功能使服务非常适合在服务器上使用,或者需要长时间运行的功能(不会影响在同一台计算机上工作的其他用户)的情况。还可以在与登录用户或默认计算机帐户不同的特定用户帐户的安全性上下文中运行服务。
一项服务在其生存期内会经历几个内部状态。首先,服务会安装到它将在其上运行的系统上。此过程执行服务项目的安装程序,并将该服务加载到该计算机的服务控制管理器 中。服务控制管理器是Windows 提供的用于管理服务的中央实用程序。
必须在服务加载完成后启动它。启动该服务以允许它开始运行。可以从服务“服务控制管理器” 、“服务器资源管理器” ,或从通过调用 Start 方法的代码来启动服务。Start 方法将处理进程传递给应用程序的OnStart 方法,并处理在那里定义的任何代码。
正在运行的服务可以在此状态下无限期地存在,直到它停止或暂停,或者直到计算机关闭。服务可以三种基本状态之一存在:Running、Paused 或 Stopped。该服务还可以报告挂起命令的状态:ContinuePending、PausePending、StartPending 或 StopPending。这些状态指示命令已发出(例
如,暂停正在运行的服务的命令),但尚未执行。可以查询 Status 以确定服务所处的状态,或者在出现其中任一状态时使用 WaitForStatus 执行操作。
可以从“服务控制管理器” 、“服务器资源管理器” ,或通过调用代码中的方法来暂停、停止或恢复服务。其中的每个操作都可以调用服务中的相关过程(OnStop、OnPause 或 OnContinue),可以在其中定义在服务更改状态时执行的其他处理进程。
4.1.1 services.msc
在 Windows 中,打开 “服务”桌面应用程序。按“Windows 徽标键+R”以打开“运行”框,然后输入services.msc
并按 Enter 或单击“确定” 。你会看到 “服务”中列出的服务按其设置的显示名称的字母顺序显示。
每一行列出了服务的五个基本属性 (名称、描述、状态、启动类型、登录为)。其中我们比较关心的是服务的 状态 和 启动类型,状态有三种基本状态,分别是 Running、Paused 、 Stopped。启动类型则有如下四种类型 : 手动、自动、自动(延迟启动)、禁用。
手动 :服务只会在明确被调用的时候才会启动自动 :服务会在系统启动时启动
自动(延迟启动):服务会在系统启动一段时间后启动。此选项在 windows Vista 中引用,目的是
降低等待时间。
禁用 :服务被停用。
通过 services.msc 可以轻松对服务的属性进行编辑。
4.1.2 使用 SC 控制服务
描述:
SC 是用来与服务控制管理器和服务进行通信
的命令行程序。
用法:
sc <server> [command] [service name] <option1> <option2>... <server> 选项的格式为 "\\ServerName"
可通过键入以下命令获取有关命令的更多帮助: "sc [command]"
命令:
query-----------查询服务的状态,
或枚举服务类型的状态。
queryex---------查询服务的扩展状态,
或枚举服务类型的状态。
start-----------启动服务。
pause-----------向服务发送 PAUSE 控制请求。
interrogate-----向服务发送 INTERROGATE 控制请求。
continue--------向服务发送 CONTINUE 控制请求。
stop------------向服务发送 STOP 请求。
config----------更改服务的配置(永久)。
description-----更改服务的描述。
failure---------更改失败时服务执行的操作。
failureflag-----更改服务的失败操作标志。
sidtype---------更改服务的服务 SID 类型。
privs-----------更改服务的所需特权。
managedaccount--更改服务以将服务帐户密码
标记为由 LSA 管理。
qc--------------查询服务的配置信息。
qdescription----查询服务的描述。
qfailure--------查询失败时服务执行的操作。
qfailureflag----查询服务的失败操作标志。
qsidtype--------查询服务的服务 SID 类型。
qprivs----------查询服务的所需特权。
qtriggerinfo----查询服务的触发器参数。
qpreferrednode--查询服务的首选 NUMA 节点。
qmanagedaccount-查询服务是否将帐户
与 LSA 管理的密码结合使用。
qprotection-----查询服务的进程保护级别。
quserservice----查询用户服务模板的本地实例。
delete ----------(从注册表中)删除服务。
create----------创建服务(并将其添加到注册表中)。
control---------向服务发送控制。
sdshow----------显示服务的安全描述符。
sdset-----------设置服务的安全描述符。
showsid---------显示与任意名称对应的服务 SID 字符串。
triggerinfo-----配置服务的触发器参数。
preferrednode---设置服务的首选 NUMA 节点。
GetDisplayName--获取服务的 DisplayName。
GetKeyName------获取服务的 ServiceKeyName。
EnumDepend------枚举服务依赖关系。
以下命令不需要服务名称:
sc <server> <command> <option>
boot------------(ok | bad)指示是否应将上一次启动另存为
最近一次已知的正确启动配置
Lock------------锁定服务数据库
QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
sc start MyService
QUERY 和 QUERYEX 选项:
如果查询命令带服务名称,将返回
该服务的状态。其他选项不适合这种
情况。如果查询命令不带参数或
带下列选项之一,将枚举此服务。
type= 要枚举的服务的类型(driver, service, userservice, all)
(默认 = service)
state= 要枚举的服务的状态 (inactive, all)
(默认 = active)
bufsize= 枚举缓冲区的大小(以字节计)
(默认 = 4096)
ri= 开始枚举的恢复索引号
(默认 = 0)
group= 要枚举的服务组
(默认 = all groups)
语法示例
sc query - 枚举活动服务和驱动程序的状态
sc query eventlog - 显示 eventlog 服务的状态
sc queryex eventlog - 显示 eventlog 服务的扩展状态
sc query type= driver - 仅枚举活动驱动程序
sc query type= service - 仅枚举 Win32 服务
sc query state= all - 枚举所有服务和驱动程序
sc query bufsize= 50 - 枚举缓冲区为 50 字节
sc query ri= 14 - 枚举时恢复索引 = 14
sc queryex group= "" - 枚举不在组内的活动服务
sc query type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS - 枚举所有 NDIS 驱动程序
sc 常用命令
sc \\ServerName query spooler // 查看远程机器的服务状态
sc qc spooler // 查询服务的配置信息
sc start spooler // 停止指定服务
sc start spooler // 开启指定服务
sc query | findstr Manager // 查询所有服务名中有 Manager 的服务
sc delete <ServerName> // 删除指定服务
sc create WindowsUpdate binPath="cmd /K C:\windows\beacon.exe"
DisplayName="WindowsUpdate" // 创建名为 WindowsUpdate 的服务
sc create WindowsUpdate binPath="cmd /k C:\windows\beacon.exe"
DisplayName="WindowsUpdate" start=auto // 创建名为 WindowsUpdate 的服务并设置启动状 态为自启动
sc sdshow spooler // 显示服务的安全描述符
Windows 防火墙(在Windows 10 中正式称为Windows Defender 防火墙),是MicrosoftWindows的防火墙组件。它首先包含在Windows XP和Windows Server 2003 中。在 2004 年发布Windows XP Service Pack 2之前,它被称为Internet 连接防火墙。随着 2017 年 9 月 Windows10 版本 1709 的发布,它更名为 Windows Defender 防火墙。
5.1 windows防火墙
Windows Defender高级安全防火墙提供基于主机的双向网络流量筛选,并阻止未经授权的网络流量流入或流出本地设备
windows系统默认的规则:默认阻止入站连接,默认允许出站连接。也就是说,凡是入站连接,任何程序和端口都要在防火墙上配置入站规则,否则都会被禁止
三种配置文件的区别:
域 | 连接到可检测计算机加入域的域控制器的网络时,应用于网络适配器。 |
---|---|
专用 | 家中或在工作中信任网络上的人和设备的网络。选择专用网络时,网络发现会打开,但文件和打印机共享会关闭。专用配置文件设置应该比域配置文件设置更为严格。 |
公用 | 公共场所的网络。此位置可防止其他计算机看到该计算机。当公共网络是选定的网络位置时,网络发现以及文件和打印机共享将关闭。由于计算机连接到无法控制安全性的公用网络,因此公用配置文件设置应该最为严格。 |
配置文件的具体配置相关
防火墙状态。您可以为每个配置文件单独打开或关闭防火墙。
入站连接。您可以阻止与任何活动防火墙规则不匹配的连接(这是默认设置),无论入站规则规范如何,都阻止所有连接,或允许与活动防火墙规则不匹配的入站连接。出站连接。您可以允许与任何活动防火墙规则不匹配的连接(这是默认设置)或阻止与活动防火墙规则不匹配的出站连接。
受保护的网络连接。您可以选择希望 Windows 防火墙帮助保护的连接(例如,本地连接)。您可以配置显示通知和单播响应,以及通过组策略分发的合并规则。您可以配置和启用日志记录。
IPsec 设置。您可以为 IPsec 配置配置默认值。IPSEC
在通信之前和期间提供相互身份验证。
强制双方在沟通过程中表明自己的身份。
通过 IP 流量加密和数字数据包身份验证实现机密性。
WF.msc
打开“控制面板”,然后输入 允许应用或功能通过Windows Defender防护墙 你会看到 “高级安全Windows Defender防火墙” 或 按“Windows 徽标键+R”以打开“运行”框,然后输入WF.msc
并按 Enter
或单击“确定” 。
入站规则 出战规则 连接安全规则 监视 4个列表
入站规则:其他网络设备或机器访问自己机器的触发的规则。
出站规则:自己机器去访问其他网络设备或机器触发的规则。
netsh在渗透中的利用
1.开启防火墙
netsh advfirewall set allprofiles state on
2.关闭防火墙
netsh advfirewall set allprofiles state off
3.恢复防火墙默认设置
netsh advfirewall reset
4.添加远程桌面入站规则允许端口3389
netsh advfirewall firewall add rule name=远程桌面(TCP-In-3389) protocol=TCP
dir=in localport=3389 action=allow
5.删除规则(可以删除特定的防火墙规则)
netsh advfirewall firewall delete rule name=远程桌面(TCP-In-3389)
6.导出防火墙配置到文件
netsh advfirewall export c:\xxx.pol
7.导入防火墙配置文件到系统中
netsh advfirewall import c:\xxx.pol
1.关闭所有配置文件的防火墙
Set-NetFirewallProfile -All -Enabled False
2.打开所有配置文件的防火墙
Set-NetFirewallProfile -All -Enabled True
3.设置允许专业配置文件 80 443端口入站规则
New-NetFirewallRule -DisplayName 'HTTP-Inbound' -Profile @('Private') - Direction Inbound -Action Allow -Protocol TCP -LocalPort @('80', '443')
4.允许特定ip入站规则连接3389
New-NetFirewallRule -DisplayName "AllowRDP" –RemoteAddress 192.168.2.200 - Direction Inbound -Protocol TCP –LocalPort 3389 -Action Allow
1.查看所有端口代理参数
netsh interface portproxy show all
2.将本地1337端口流量转发到192.168.1.2 的8000端口
netsh interface portproxy add v4tov4 listenport=6666 connectport=8000 connectaddress=192.168.1.2
端口转发配置是保存在注册表的
Get-ItemProperty -Path
HKLM:\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp
3.删除端口转发的规则
netsh interface portproxy delete v4tov4 listenport=6666
HVV行动-红队攻防 第6期
还可以插班哦~
课程费用
报名方式
1.可直接登录官网在线报名,报名地址:https://www.ms08067.com/my/course/12
2.加客服微信报名
学习资源
上课时间
上课方式
讲师介绍
讲师B:MS08067安全实验室核心成员,主要从事渗透测试、安全开发等方向研究。多次参加国家护网行动,拥有多年红队经验。
讲师C:MS08067安全实验室核心成员,前知名乙方研究员,擅长免杀。
全新课程目录6.0版
第1天课 | 信息收集总体概念 被动信息收集 信息收集的总体概念以及在整个红队流程中的位置; 被动信息收集的基本结构和基本逻辑; 被动信息收集的常见手段(网络空间搜索、被动信息收集工具、传统搜索); 被动信息收集后的信息处理; 被动信息收集工具的底层原理以及如何编写; |
第2天课 | 主动信息收集 信息收集完成之后的信息综合处理 主动信息收集的基本结构和基本逻辑; 主动信息收集的常见手段(仅限扫描的nmap和扫描带有poc的goby); 主动信息收集后的信息处理; 主动信息收集工具的底层原理以及如何编写; 如何将主动信息收集和被动信息收集的信息综合处理; 收集到的信息如何衔接到下一步的红队流程中; |
第3天课 | 社会工程学 社会工程学的含义以及实际应用; 社会工程学的知识体系; 社会工程学的学习方法; |
第4天课 | 社会工程学中的交互 社会工程学中的常见钓鱼方式以及应用; 社会工程学中如何根据收集到的信息利用目标的社会属性弱点进行交互; 社会工程学中的信任获得和信任利用方式; |
第5天课 | 实战中的快速审计 寻找源码中的多种途径; 快速查找源码中可利用的脆弱点; 使用工具发现脆弱点; |
第6天课 | POC的编写 POC编写应具备的哪些条件; Idea工具的安装; 本地IO进行内容读写; 网络请求进行发包模拟; POC实战; |
第7天课 | 红队之反溯源 工作机器;攻击资源; 匿名攻击; 识别反制; 反溯源案例; |
第8天课 | Windows内网提权 Potato家族提权;补丁提权;系统配置错误提权; 第三方服务提权;组策略提权;Bypassuac; 数据库提权;令牌窃取;密码收集提权; |
第9天课 | Liunx内网提权 系统内核提权;第三方服务提权; 数据库提权;密码收集提权; 键盘记录提权;Suid提权; Sudo提权;反弹shell提权; |
第10天课 | 内网穿透 内网穿透概述及正向代理和反向代理; 花生壳内网穿透;Frp内网穿透; Ngrok内网穿透;reGeorg+Proxifier; 向日葵代理及teamviewer; 最小化渗透概述;云函数;域前置; |
第11天课 | 外网打点技巧和Kerberos认证原理 入口权限获取;java中间件Nday; php集成环境;开源程序Nday; 边界网络设备利用;基础服务getshell; kerberos认证;kerberos认证流程; |
第12天课 | 域内信息收集及域信任 域内信息收集概述; 域内用户组收集;域信任关系收集; 用户目录收集;预控日志收集; Arp信息收集;Tcpdump;Sshkey收集; 铭感配置读取;网络拓扑架构分析判断; |
第13天课 | 域渗透工具实操实战 Setspn;Nslookup;AdFind; Psloggendon;360safebrowserdecrypt; SchtaskBackDoorWebshell;regeditBypassUAC; |
第14天课 | 票据伪造、域委派攻击、域控攻击 PTH认证过程解析;票据伪造攻击原理; Mimikatz实现票据伪造攻击; 域委派原理;域委派攻击方法; zerologin;nopac |
第15天课 | 域林渗透 域林渗透概述和父域子域及域信任关系分析;大型域渗透思路; 预控定位;Pth喷射;域信任攻击; 组策略漏洞;Web及系统漏洞;逃逸漏洞; |
第16天课 | Windows权限维持 Windows权限维持概述及隐藏技巧;关闭杀软; 注册表自启动;组策略脚本; 计划任务;服务自启动; 内存码;进程劫持;隐蔽隧道; |
第17天课 | Liunx权限维持 Liunx权限维持概述及隐藏技巧; 添加用户;SUIDshell; SSH公私钥;软连接; crontab计划任务;Strace后门;Openssh后门; 隐蔽隧道;关杀软; |
第18天课 | 痕迹清理 Windows操作系统的痕迹清理; Windows痕迹清理的基本思路和思考逻辑; Windows清理登录痕迹、操作痕迹及时间痕迹; Linux操作系统的痕迹清理; Linux痕迹清理的基本思路和思考逻辑; Linux清理登录痕迹、操作痕迹及时间痕迹; |
第19天课 | Meterpreter木马分析 反编译meterprter源码; 分析meterpreter源码; 源码级别免杀深入浅出; |
第20天课 | 免杀代码基础 编程语言基础; windowsapi基础; socket编程基础; shellcode加载器基础; |
第21天课 | shellcode基础 现代远控的基本结构; shellcode生成方式与可以使用的类型; shellcode源码内容; |
第22天课 | 代码上的免杀 杀毒软件基本原理; 杀毒软件基础复现; 针对杀毒软件特点免杀; 护网过程中如何手动和自动识别恶意代码; |
第23天课 | 人工层面的免杀 通信的加密; 通信内容的伪造; ip地址的保护; 护网过程中如何识别通信特征与内容; 反调试; |
第24天课 第25天课 | 实际红队案例分享、红队攻击思路 红队模拟面试; 实际红队案例分享; 红队攻击思路;红队护网准备工具及蓝队分析反制方法及思路 红队准备工具; 邮件溯源工作; 水坑反制案例; |
如何提前预习
为更顺利的完成课程相关内容,请同学一定要提前预习相关知识点,已经报名的同学,请购买实验室出版的《内网安全攻防:渗透测试实战指南》一书或参加转发朋友圈赠送“内网知识星球”活动,学习相关的内容。
你距离红队大佬,只差一个决定
报名咨询联系小客服
扫描下方二维码加入星球学习
加入后邀请你进入内部微信群,内部微信群永久有效!