# HW

时间

2024 年:常态化发展 持续了两个月 7 月持续到 9 月

流程

准备阶段==>自查阶段==>预演习==>正式开始

薪资

一般会在蓝队,红队是以大厂团队为基础的

# 蓝队

2024 年 HW

  • 初级蓝队:800 + 元 / 天
  • 中级蓝队:1.5k + 元 / 天
  • 高级蓝队(蓝队负责人):3k + 元 / 天

职责

名词 说明
监控(监测)组 看设备的 web 页面(奇安信...)
研判组 看 http 请求包
应急处置组 被攻击后的处理
溯源组 溯源攻击者的信息
反制组 收集到对方的信息进行进攻

# 红队

攻击方式

  1. 常规漏洞攻击
  2. 0day 漏洞攻击
  3. 社会工程学

# 经验 —— 注意事项

联系人

  • 如果我是外部人员,不能告诉甲方(比如奇安信)最好开始先问清楚如果有人问,要怎么回答

差旅

  • 要明确 HW 过程中谁出费用

值守范围

  • XXX 数据局的下属分县的 XXX 局
  • 要不要去理会所属下级部

现场环境确认

  • 所属资产确认

招聘

  • HW 2-3 周开始投递

# 资产安全加固

# Windows 安全基线检查加固

账户

在操作系统中,账户是操作系统进行权限管理的基本单元。

用户

  • 本地用户、域用户

    • 本地用户:只能对本地计算机有效

    • 域用户:对整个安全域有效

用户组

  • 由多个用户组成的一个群体

措施

  • 修改安全策略

日志分析

查看日志:按 "Window+R",输入 ”eventvwr.msc“ 也可以直接进入 “事件查看器

# 审核策略

事件 ID

事件 ID 说明
4624 登录成功
4625 登录失败
4634 注销成功
4647 用户启动的注销
4672 使用超级用户(如管理员)进行登录
4720 创建用户

登录类型

登录类型 描述 说明
2 交互式登录(Interactive) 用户在本地进行登录。
3 网络(Network) 最常见的情况就是连接到共享文件夹或共享打印机时。
4 批处理(Batch) 通常表明某计划任务启动。
5 服务(Service) 每种服务都被配置在某个特定的用户账号下运行。
7 解锁(Unlock) 屏保解锁。
8 网络明文(NetworkCleartext) 登录的密码在网络上是通过明文传输的,如 FTP。
9 新凭证(NewCredentials) 使用带 / Netonly 参数的 RUNAS 命令运行一个程序。
10 远程交互,(RemoteInteractive) 通过终端服务、远程桌面或远程协助访问计算机。
11 缓存交互(CachedInteractive) 以一个域用户登录而又没有域控制器可用

# 日志分析工具

https://www.cnblogs.com/starrys/p/17129993.html

# Linux 安全基线检查加固

# 用户类型

linux 用户类型:超级用户、系统用户、普通用户

用户账号文件: /etc/passwd

root : x :0    :0     :root   :/root:/bin/bash
用户名:密码:用户 ID: 主组 ID: 用户全称:主目录:shell

用户密码文件: /etc/shadow

root :xxx:19821       :0            :999999 :7 : : :
用户名:密码:修改密码的时间:修改时间后的天数:两次修改:密码间隔的最多天数:提前几天警告用户密码过期:密码过期几天禁用用户:过期时间:保留字段

用户组文件: /etc/group

root:x  :0     :
组名:口令:组标识号:组内用户列表

# 日志分析

默认日志存放路径: /var/log

比较重要的几个日志:

  • 登录失败记录: /var/log/btmp ,对应命令: lastb
  • 最后一次登录: /var/log/lastlog ,对应命令: lastlog
  • 登录成功记录: /var/log/wtmp ,对应命令: last
  • 登录日志记录: /var/log/secure
  • 目前登录用户信息: /var/run/utmp ,对应命令: wwhousers
  • 历史命令记录: history ,其中仅清理当前用户: history -c

# 日志分析技巧

# 显示 file 文件里匹配 foo 字串的行以及上下 5 行
grep -C 5 foo file
# 显示 foo 及前 5 行
grep -B 5 foo file
# 显示 foo 及后 5 行
grep -A 5 foo file
查找含有模糊字符串的所有文件
grep -rn "hello,world!"

1、定位有多少 IP 在爆破主机的 root 帐号:

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

2、定位哪些 IP 在爆破:

grep "Failed password" /var/log/secure | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | uniq -c

3、爆破的用户名相关字典:

grep "Failed password" /var/log/secure | perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}' | uniq -c | sort -nr

4、登陆成功的 IP 有哪些:

grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

5、登陆成功的日期、用户名、IP:

grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

6、增加用户的日志:

grep "useradd" /var/log/secure

7、删除用户的日志:

grep "userdel" /var/log/secure

8、su 切换用户日志如下:

May 31 21:36:25 centos su: pam_unix(su-l:session): session opened for user test by root(uid=0)

9、sudo 授权执行日志如下:

May 31 21:37:31 centos sudo:    root : TTY=pts/2 ; PWD=/root ; USER=root ; COMMAND=/bin/ls

10、软件安装日志文件 /var/log/yum.log ,检索该文件可查看软件安装相关记录:

[root@localhost ~]# head -5 /var/log/yum.log
Jan 11 16:51:30 Installed: xmlstarlet-1.6.1-1.el7.x86_64
Jan 18 16:55:31 Erased: libzip-devel-0.10.1-8.el7.x86_64
Jan 18 16:55:32 Erased: libzip-0.10.1-8.el7.x86_64
Jan 18 17:06:50 Installed: libzip-0.10.1-8.el7.x86_64
Jan 18 17:06:50 Installed: libzip-devel-0.10.1-8.el7.x86_64
[root@localhost ~]#

11、根据端口列进程:

netstat -ntlp | grep ":80 " | awk '{print $7}' | tr '/' "\t"

其中, grep 命令后面为你需要检索的端口。

12、查找较多的 SYN 链接:

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

其中, grep 命令后面也可为不同的链接,如: ESTABLISHEDCLOSE_WAIT

13、查看服务当前的并发连接数和 TCP 连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(key in S) print key,"\t",S[key]}'

# 附:所有事件 ID

### 用户操作事件 id ###
1102 - 清理审计日志
1105 - 自动备份事件日志
4624 - 帐户已成功登录
4625 - 帐户登录失败
4634 - 帐户被注销包括锁屏
4647 - 用户发起注销
4648 - 使用显式凭据尝试登录
4649 - 检测到重播攻击
4657 - 修改注册表值
4665 - 尝试创建应用程序客户端上下文。
4666 - 应用程序尝试了一个操作
4670 - 对象的权限已更改
4672 - 给新登录分配特权
4674 - 尝试对特权对象执行操作
4692 - 尝试备份数据保护主密钥
4696 - 主要令牌已分配给进程
4697 - 添加服务
### 计划任务事件 id ###
4698 - 已创建计划任务
4699 - 计划任务已删除
4700 - 已启用计划任务
4701 - 计划任务已禁用
4702 - 计划任务已更新
4703 - 令牌权已经调整
4704 - 已分配用户权限
4705 - 用户权限已被删除
4706 - 为域创建了新的信任
4707 - 已删除对域的信任
4709-IPsec 服务已启动
4710-IPsec 服务已禁用
4713-Kerberos 策略已更改
4717 - 系统安全访问权限已授予帐户
4718 - 系统安全访问已从帐户中删除
4719 - 系统审核策略已更改
4720 - 已创建用户帐户
4722 - 用户帐户已启用
4723 - 尝试更改帐户的密码
4724 - 尝试重置帐户密码
4725 - 用户帐户已被禁用
4726 - 用户帐户已删除
4727 - 已创建启用安全性的全局组
4728 - 已将成员添加到启用安全性的全局组中
4729 - 成员已从启用安全性的全局组中删除
4730 - 已删除启用安全性的全局组
4731 - 已创建启用安全性的本地组
4732 - 已将成员添加到启用安全性的本地组
4733 - 成员已从启用安全性的本地组中删除
4734 - 已删除已启用安全性的本地组
4735 - 已启用安全性的本地组已更改
4737 - 启用安全性的全局组已更改
4738 - 用户帐户已更改
4740 - 用户帐户已被锁定
4741 - 已创建计算机帐户
4742 - 计算机帐户已更改
4743 - 计算机帐户已删除
4744 - 已创建禁用安全性的本地组
4745 - 已禁用安全性的本地组已更改
4746 - 已将成员添加到已禁用安全性的本地组
4747 - 已从安全性已禁用的本地组中删除成员
4756 - 已将成员添加到启用安全性的通用组中
4765-SID 历史记录已添加到帐户中
4767 - 用户帐户已解锁
4768 - 请求了 Kerberos 身份验证票证(TGT)
4769 - 请求了 Kerberos 服务票证
4770 - 更新了 Kerberos 服务票证
4774 - 已映射帐户以进行登录
4775 - 无法映射帐户以进行登录
4776 - 域控制器尝试验证帐户的凭据
4777 - 域控制器无法验证帐户的凭据
4778 - 会话重新连接到 Window Station
4782 - 密码哈希帐户被访问
4794 - 尝试设置目录服务还原模式管理员密码
4797 - 试图查询帐户是否存在空白密码
4798 - 枚举了用户的本地组成员身份。
4799 - 已枚举启用安全性的本地组成员身份
4800 - 工作站已锁定
4801 - 工作站已解锁
4802 - 屏幕保护程序被调用
### 域相关事件 id ###
4820-Kerberos 票证授予票证(TGT)被拒绝,因为该设备不符合访问控制限制
4821-Kerberos 服务票证被拒绝,因为用户,设备或两者都不符合访问控制限制
4822-NTLM 身份验证失败,因为该帐户是受保护用户组的成员
4823-NTLM 身份验证失败,因为需要访问控制限制
4825 - 用户被拒绝访问远程桌面。默认情况下,仅当用户是 Remote Desktop Users 组或 Administrators 组的成员时才允许用户进行连接
### 5024-5037### 防火墙策略事件 id
4946 - 已对 Windows 防火墙例外列表进行了更改。增加了一条规则
4947 - 已对 Windows 防火墙例外列表进行了更改。规则被修改了
4948 - 已对 Windows 防火墙例外列表进行了更改。规则已删除
5024-Windows 防火墙服务已成功启动
5025-Windows 防火墙服务已停止
### 5136-5145 ### 目录服务事件 id
5137 - 已创建目录服务对象
5140 - 访问了网络共享对象
5142 - 添加了网络共享对象。
5145 - 检查网络共享对象以查看是否可以向客户端授予所需的访问权限
### ------- ###
5156-Windows 筛选平台允许连接
5157-Windows 筛选平台已阻止连接
更新于