蓝队基础:安全运维防护浅析
字数 5468 2025-08-03 16:47:42

蓝队基础:安全运维防护浅析

日志分析

基础日志分析

Web服务器日志

日志文件位置

  • IIS

    • Windows Server 2003 iis6日志路径: C:\Windows\System32\LogFiles
    • Windows Server 2008 R2、2012、2016、2019 iis7以上日志路径:C:\inetpub\logs\LogFiles
  • Apache

    • Apache+Windows: D:\xampp\apache\logs\access.log
    • Apache+Linux: /var/log/apache/access.log/var/log/apache2/access.log/var/log/httpd/access.log
  • nginx: /usr/local/nginx/logs

常见日志格式内容

  • 访问的主机IP
  • 请求时间
  • 请求方法、请求的URL、采用的协议
  • HTTP状态码

基础分析方法

访问频率分析

  • 目录扫描:扫描的基本都是一些备份文件、敏感信息、后台目录、配置文件,一般是Head方法,状态码多数为404
  • 盲注
    • 常见盲注函数:sleep\mid\left\right\ord\ascii
    • 日志中请求的URL或者POST的内容每次大体都差不多,只改变个别字符
  • 账户密码暴破:短时间针对某一账号发起多次请求,返回值基本相同
  • Web漏洞扫描:根据User-Agent来判断,访问IP基本是一个VPS主机

特征字符串分析

  • SQL注入漏洞

    • 万能密码:admin' or '1'='1username = secpulse'=' password = secpulse'='ffifdyop

    • 报错注入:floor()extractvalue()updatexml()geometrycollection()

    • 关键字特征:unionorder byselect...from

    • 数据库类型判断

      • MySQL: id=2 and version()>0 返回正常
      • Access: and (select count(*) from sysobjects)>0 返回异常
      • SqlServer: and (select count(*) from sysobjects)>0 返回正常
      • Oracle: and length(select user from dual)>0 返回正常
  • XSS漏洞

    • JS标签:<script><a><p>、``等
    • JS属性:formactionactionhrefxlink:href
  • 文件上传漏洞

    • multipart/form-data(表示该请求是一个文件上传请求)
    • 存在boundary字符串(作用为分隔符)
    • Content-Dispositionfilenamenamefile
    • 常见工具:rebeyondAntSword
  • 文件包含漏洞

    • ../../../../
    • php://filter/convert.base64-encode/resource=
    • data://text/plain;base64,
  • 反序列化漏洞

    • aced 0005 7372(攻击者为了Bypass WAF可能会进行编码)
    • 工具:ysoserial

操作系统日志

Linux

  • 系统日志、安全日志、应用程序日志等

Windows

  • 系统日志:%SystemRoot%\System32\Winevt\Logs\System.evtx
  • 安全日志:%SystemRoot%\System32\Winevt\Logs\Security.evtx
  • 应用程序日志:%SystemRoot%\System32\Winevt\Logs\Application.evtx
  • PowerShell历史命令:%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

日志分析技巧

  1. 确定入侵的时间范围,以此为线索查找可疑日志
  2. 查找攻击者留下的后门文件作为线索

常用命令

# 列出当天访问次数最多的IP
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20

# 查看当天有多少个IP访问
awk '{print $1}' log_file|sort|uniq|wc -l

# 查看某一个页面被访问的次数
grep "/index.php" log_file | wc -l

# 查看每一个IP访问了多少个页面
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file

# 将每个IP访问的页面数进行从小到大排序
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n

# 查看某一个IP访问了哪些页面
grep ^111.111.111.111 log_file| awk '{print $1,$7}'

# 去掉搜索引擎统计当天的页面
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l

# 查看特定时间范围内有多少IP访问
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l

# 统计爬虫
grep -E 'Googlebot|Baiduspider' /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq

# 统计浏览器
cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100

# IP统计
grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10

# 统计网段
cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200

# 统计域名
cat /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more

# 统计URL
cat /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more

# URL访问量统计
cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort -rn | more

流量分析

常用工具:WireShark

WireShark 使用技巧

数据过滤

  • IP过滤:

    • ip.addr==192.168.111.169
    • ip.src==192.168.111.1
    • ip.dst==192.168.111.157
  • 端口过滤:

    • tcp.port==21
    • udp.port==53
  • 协议过滤:

    • 直接输入:HTTPHTTPSSMTPARP
  • 请求方法过滤:

    • http.request.method=="POST"
    • http.request.method=="GET"
    • http.request.uri=="/flag.php"
    • http contains flag(请求或响应中内容为flag)
  • 组合过滤:

    • ip.addr==x.x.x.x && tcp.port==21
    • tcp.port==21 or udp.port==53

数据统计

  • 文件属性统计
  • IP统计
  • 端口统计:在菜单中选择Statistics,然后选择Conversation

搜索功能

Command + F弹出搜索框:

  • Display Filter:显示过滤器
  • Hex Value:搜索数据中十六进制字符位置
  • String:字符串搜索
    • Packet list:搜索关键字匹配的flag所在帧的位置
    • Packet details:搜索关键字匹配的flag所包括数据的位置
    • Packet bytes:搜索关键字匹配的内容位置

TCP 数据流追踪(Follow TCP Stream)

红色部分为客户的请求request,蓝色为服务端响应response

HTTP 分析

在菜单中选择Statistics,选择HTTP,然后选择Requests(可以过滤IP)

流量包修复

wireshark打开流量包后提示包异常的情况,通过在线工具修复:
http://f00l.de/hacking/pcapfix.php

USB 流量分析

MacOS上使用tshark:

tshark -r password.pcap -T fields -e usb.capdata > usbdata.txt

现成的轮子:
https://github.com/WangYihang/UsbKeyboardDataHacker

磁盘内存分析

工具

  • EasyRecovery
  • MedAnalyze
  • FTK
  • Elcomsoft Forensic Disk Decryptor
  • Volatility

磁盘

常见的磁盘分区格式

  • Windows: FAT12 -> FAT16 -> FAT32 -> NTFS
  • Linux: EXT2 -> EXT3 -> EXT4

FAT 主磁盘结构

  • 删除文件:目录表中文件名第一字节 e5

VMDK
VMDK 文件本质上是物理硬盘的虚拟版,可以利用填充区域来隐藏数据

内存

  • 解析 Windows / Linux / Mac OS X 内存结构
  • 分析进程,内存数据
  • 根据题目提示寻找线索和思路,提取分析指定进程的特定内存数据

内存取证例题

volatility基础用法:

python vol.py -f [内存文件] --profile=[配置文件] <插件>

常用命令:

# 扫描内存中的进程
python vol.py -f ../../../Downloads/suspicion/mem.vmem psscan

# 识别内存映像相关信息
python vol.py -f ../../../Downloads/suspicion/mem.vmem imageinfo

# 列出运行的进程
python vol.py -f ../../../Downloads/suspicion/mem.vmem --profile=WinXPSP3x86 pslist

# 列举缓存在内存中的注册表
python vol.py -f ../../../Downloads/suspicion/mem.vmem --profile=WinXPSP3x86 hivelist

# 扫描文件
python vol.py -f ../../../Downloads/suspicion/mem.vmem --profile=WinXPSP3x86 filescan

# 将缓存文件导出
python vol.py -f ../../../Downloads/suspicion/mem.vmem --profile=WinXPSP3x86 dumpfiles

# 转储出可寻址的内存数据
python vol.py -f ../../../Downloads/suspicion/mem.vmem --profile=WinXPSP3x86 memdump -p 2012 -D ./outout

木马查杀与分析

WebShell查杀

  • 工具
    • D盾
    • 在线WebShell查杀:
      • https://scanner.baidu.com/
      • https://www.shellpub.com/

EXE木马

  • 杀软病毒查杀&虚拟机断网分析(监控进程,监控网络,行为分析)
  • 在线沙箱
    • 微步:https://s.threatbook.cn/
    • QAX:https://sandbox.ti.qianxin.com/
    • VT:https://www.virustotal.com/gui/home/upload
    • 大圣云沙箱:https://mac-cloud.riskivy.com/detect?theme=vulbox

应急响应

进程分析

Linux

Gscan工具:https://github.com/grayddq/GScan

功能包括:

  1. 主机信息获取
  2. 系统初始化alias检查
  3. 文件类安全扫描
  4. 各用户历史操作类
  5. 进程类安全检测
  6. 网络类安全检测
  7. 后门类检测
  8. 账户类安全排查
  9. 日志类安全分析
  10. 安全配置类分析
  11. Rootkit分析
  12. WebShell类文件扫描

文件排查

# 最近使用文件
find / -ctime -2

登录排查

  • /etc/shadow 密码登陆相关信息
  • uptime 查看用户登陆时间
  • /etc/sudoers sudo用户列表

弱口令排查

进程排查

  • w 命令,查看用户及其进程
  • 分析开机自启程序/脚本:/etc/init.d~/.bashrc
  • 查看计划或定时任务:crontab -l
  • 查看进程端口占用:netstat -anlsof

Windows

文件排查

  • 最近使用的文件:
    • C:\Documents and Settings\Administrator\Recent
    • C:\Documents and Settings\Default User\Recent
    • %UserProfile%\Recent

登录排查

  • lusrmgr.msc 查看账户变化
  • net user 列出当前登录账户
  • wmic UserAccount get 列出当前系统所有账户

弱口令排查

进程排查

  • netstat -ano 查看是否打开了可疑端口
  • tasklist 查看是否有可疑进程

开机启动项分析

  • (ProfilePath)\Start Menu\Programs\Startup 启动项
  • msconfig 启动选项卡
  • gpedit.msc 组策略编辑器

定时任务分析

  • C:\Windows\System32\Tasks\
  • C:\Windows\SysWOW64\Tasks\
  • C:\Windows\tasks\
  • schtasks
  • taskschd.msc
  • compmgmt.msc

已启动的服务services.msc

漏洞修复

信息泄露漏洞

Nginx目录遍历漏洞
修改nginx配置文件,autoindex=off;

IIS 目录遍历漏洞
在IIS的网站属性中,勾去"目录浏览"选项,重启IIS。

Apache 目录遍历漏洞
打开Apache配置文件httpd.conf,查找"Options Indexes FollowSymLinks",修改为"Options -Indexes"(减号表示取消),保存退出,重启Apache。

敏感文件泄露
删除svn、git、zip、rar等备份文件

SSRF

  1. 过滤返回信息,验证远程服务器对请求的响应
  2. 限制请求的端口为http常用的端口,比如,80,443,8080,8090
  3. 黑名单内网ip
  4. 禁用不需要的协议,仅允许http和https请求

注入漏洞

SQL注入、命令注入、模版注入等注入漏洞:

  1. 过滤注入漏洞所需要的关键字
  2. 采用预编译的方式进行SQL操作
  3. 设置命令执行白名单
  4. 严格编写正则
  5. 升级存在漏洞的版本

XSS

  1. 验证所有输入数据,有效检测攻击
  2. 对所有输出数据进行适当的编码
  3. 限制输入长度

CSRF

  1. 通过referer判断页面来源进行CSRF防护
  2. 重要功能点使用动态验证码进行CSRF防护
  3. 通过token方式进行CSRF防护(CSRF-Token)

文件上传漏洞

  1. 文件名随机重命名、目录随机
  2. 上传到静态不解析目录
  3. 文件上传白名单
  4. 设置单独的文件服务器

文件包含漏洞

  1. PHP:配置php.ini关闭远程文件包含功能(allow_url_include = Off)
  2. 严格检查变量是否已经初始化
  3. 严格编写正则(禁止../等特征字符串)

组件漏洞

Shiro

  • 升级到最新安全版本
  • 修改默认key

Struts2

  • 升级到最新安全版本

Tomcat

  • 修改管理后台弱口令
  • 避免被部署WAR包GetShell

Weblogic

  • 及时打补丁

Fastjson

  • 开启safeMode
  • 升级到安全版本

Fastjson安全配置方式

  1. 在代码中配置:
ParserConfig.getGlobalInstance().setSafeMode(true);
  1. 加上JVM启动参数:
-Dfastjson.parser.safeMode=true
  1. 通过fastjson.properties文件配置:
fastjson.parser.safeMode=true

安全配置与加固

端口安全

  1. 对外不开放高危端口,不启用无用的端口
  2. 只开放80、443、8080、8090等常规端口
  3. 如有需要ssh,ftp,mysql等数据库端口,需要排查弱口令后再对外外放
  4. 定期修改密码
  5. 检查是否存在未授权访问漏洞的端口

系统安全

  1. 及时打漏洞补丁
  2. 实施前面应急响应相关内容

密码安全

  1. 长度不少于8个字符
  2. 密码中同时存在大小写字母、数字和特殊符号
  3. 不存在于已有字典之中
  4. 定期修改密码

应用安全

  1. FTP

    • 禁止匿名登录
    • 修改Banner信息防止被识别
  2. SSH

    • 是否禁用root登录
    • 是否需要禁用密码连接
    • 采用ssh密钥登录
  3. VPN

    • 是否为最新安全版本
    • 账户密码定期修改
  4. 数据库应用

    • 文件写权限
    • 日志记录是否开启
    • 账户密码弱口令排查
蓝队基础:安全运维防护浅析 日志分析 基础日志分析 Web服务器日志 日志文件位置 : IIS : Windows Server 2003 iis6日志路径: C:\Windows\System32\LogFiles Windows Server 2008 R2、2012、2016、2019 iis7以上日志路径: C:\inetpub\logs\LogFiles Apache : Apache+Windows: D:\xampp\apache\logs\access.log Apache+Linux: /var/log/apache/access.log 或 /var/log/apache2/access.log 或 /var/log/httpd/access.log nginx : /usr/local/nginx/logs 常见日志格式内容 : 访问的主机IP 请求时间 请求方法、请求的URL、采用的协议 HTTP状态码 基础分析方法 访问频率分析 : 目录扫描 :扫描的基本都是一些备份文件、敏感信息、后台目录、配置文件,一般是Head方法,状态码多数为404 盲注 : 常见盲注函数: sleep\mid\left\right\ord\ascii 日志中请求的URL或者POST的内容每次大体都差不多,只改变个别字符 账户密码暴破 :短时间针对某一账号发起多次请求,返回值基本相同 Web漏洞扫描 :根据User-Agent来判断,访问IP基本是一个VPS主机 特征字符串分析 : SQL注入漏洞 : 万能密码: admin' or '1'='1 、 username = secpulse'=' password = secpulse'=' 、 ffifdyop 报错注入: floor() 、 extractvalue() 、 updatexml() 、 geometrycollection() 等 关键字特征: union 、 order by 、 select...from 数据库类型判断 : MySQL: id=2 and version()>0 返回正常 Access: and (select count(*) from sysobjects)>0 返回异常 SqlServer: and (select count(*) from sysobjects)>0 返回正常 Oracle: and length(select user from dual)>0 返回正常 XSS漏洞 : JS标签: <script> 、 <a> 、 <p> 、 `` 等 JS属性: formaction 、 action 、 href 、 xlink:href 等 文件上传漏洞 : multipart/form-data (表示该请求是一个文件上传请求) 存在 boundary 字符串(作用为分隔符) Content-Disposition 、 filename 、 name 、 file 常见工具: rebeyond 、 AntSword 文件包含漏洞 : ../../../../ php://filter/convert.base64-encode/resource= data://text/plain;base64, 反序列化漏洞 : aced 0005 7372 (攻击者为了Bypass WAF可能会进行编码) 工具: ysoserial 操作系统日志 Linux : 系统日志、安全日志、应用程序日志等 Windows : 系统日志: %SystemRoot%\System32\Winevt\Logs\System.evtx 安全日志: %SystemRoot%\System32\Winevt\Logs\Security.evtx 应用程序日志: %SystemRoot%\System32\Winevt\Logs\Application.evtx PowerShell历史命令: %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt 日志分析技巧 确定入侵的时间范围,以此为线索查找可疑日志 查找攻击者留下的后门文件作为线索 常用命令 : 流量分析 常用工具:WireShark WireShark 使用技巧 数据过滤 IP过滤 : ip.addr==192.168.111.169 ip.src==192.168.111.1 ip.dst==192.168.111.157 端口过滤 : tcp.port==21 udp.port==53 协议过滤 : 直接输入: HTTP 、 HTTPS 、 SMTP 、 ARP 等 请求方法过滤 : http.request.method=="POST" http.request.method=="GET" http.request.uri=="/flag.php" http contains flag (请求或响应中内容为flag) 组合过滤 : ip.addr==x.x.x.x && tcp.port==21 tcp.port==21 or udp.port==53 数据统计 文件属性统计 IP统计 端口统计 :在菜单中选择Statistics,然后选择Conversation 搜索功能 Command + F弹出搜索框: Display Filter:显示过滤器 Hex Value:搜索数据中十六进制字符位置 String:字符串搜索 Packet list:搜索关键字匹配的flag所在帧的位置 Packet details:搜索关键字匹配的flag所包括数据的位置 Packet bytes:搜索关键字匹配的内容位置 TCP 数据流追踪(Follow TCP Stream) 红色部分为客户的请求request,蓝色为服务端响应response HTTP 分析 在菜单中选择Statistics,选择HTTP,然后选择Requests(可以过滤IP) 流量包修复 wireshark打开流量包后提示包异常的情况,通过在线工具修复: http://f00l.de/hacking/pcapfix.php USB 流量分析 MacOS上使用tshark: 现成的轮子: https://github.com/WangYihang/UsbKeyboardDataHacker 磁盘内存分析 工具 EasyRecovery MedAnalyze FTK Elcomsoft Forensic Disk Decryptor Volatility 磁盘 常见的磁盘分区格式 : Windows: FAT12 -> FAT16 -> FAT32 -> NTFS Linux: EXT2 -> EXT3 -> EXT4 FAT 主磁盘结构 : 删除文件:目录表中文件名第一字节 e5 VMDK : VMDK 文件本质上是物理硬盘的虚拟版,可以利用填充区域来隐藏数据 内存 解析 Windows / Linux / Mac OS X 内存结构 分析进程,内存数据 根据题目提示寻找线索和思路,提取分析指定进程的特定内存数据 内存取证例题 : volatility基础用法: 常用命令: 木马查杀与分析 WebShell查杀 工具 : D盾 在线WebShell查杀: https://scanner.baidu.com/ https://www.shellpub.com/ EXE木马 杀软病毒查杀&虚拟机断网分析(监控进程,监控网络,行为分析) 在线沙箱 : 微步:https://s.threatbook.cn/ QAX:https://sandbox.ti.qianxin.com/ VT:https://www.virustotal.com/gui/home/upload 大圣云沙箱:https://mac-cloud.riskivy.com/detect?theme=vulbox 应急响应 进程分析 Linux Gscan工具 :https://github.com/grayddq/GScan 功能包括: 主机信息获取 系统初始化alias检查 文件类安全扫描 各用户历史操作类 进程类安全检测 网络类安全检测 后门类检测 账户类安全排查 日志类安全分析 安全配置类分析 Rootkit分析 WebShell类文件扫描 文件排查 : 登录排查 : /etc/shadow 密码登陆相关信息 uptime 查看用户登陆时间 /etc/sudoers sudo用户列表 弱口令排查 进程排查 : w 命令,查看用户及其进程 分析开机自启程序/脚本: /etc/init.d 、 ~/.bashrc 查看计划或定时任务: crontab -l 查看进程端口占用: netstat -an 、 lsof Windows 文件排查 : 最近使用的文件: C:\Documents and Settings\Administrator\Recent C:\Documents and Settings\Default User\Recent %UserProfile%\Recent 登录排查 : lusrmgr.msc 查看账户变化 net user 列出当前登录账户 wmic UserAccount get 列出当前系统所有账户 弱口令排查 进程排查 : netstat -ano 查看是否打开了可疑端口 tasklist 查看是否有可疑进程 开机启动项分析 : (ProfilePath)\Start Menu\Programs\Startup 启动项 msconfig 启动选项卡 gpedit.msc 组策略编辑器 定时任务分析 : C:\Windows\System32\Tasks\ C:\Windows\SysWOW64\Tasks\ C:\Windows\tasks\ schtasks taskschd.msc compmgmt.msc 已启动的服务 : services.msc 漏洞修复 信息泄露漏洞 Nginx目录遍历漏洞 : 修改nginx配置文件, autoindex=off; IIS 目录遍历漏洞 : 在IIS的网站属性中,勾去"目录浏览"选项,重启IIS。 Apache 目录遍历漏洞 : 打开Apache配置文件httpd.conf,查找"Options Indexes FollowSymLinks",修改为"Options -Indexes"(减号表示取消),保存退出,重启Apache。 敏感文件泄露 : 删除svn、git、zip、rar等备份文件 SSRF 过滤返回信息,验证远程服务器对请求的响应 限制请求的端口为http常用的端口,比如,80,443,8080,8090 黑名单内网ip 禁用不需要的协议,仅允许http和https请求 注入漏洞 SQL注入、命令注入、模版注入等注入漏洞: 过滤注入漏洞所需要的关键字 采用预编译的方式进行SQL操作 设置命令执行白名单 严格编写正则 升级存在漏洞的版本 XSS 验证所有输入数据,有效检测攻击 对所有输出数据进行适当的编码 限制输入长度 CSRF 通过referer判断页面来源进行CSRF防护 重要功能点使用动态验证码进行CSRF防护 通过token方式进行CSRF防护(CSRF-Token) 文件上传漏洞 文件名随机重命名、目录随机 上传到静态不解析目录 文件上传白名单 设置单独的文件服务器 文件包含漏洞 PHP:配置php.ini关闭远程文件包含功能( allow_url_include = Off ) 严格检查变量是否已经初始化 严格编写正则(禁止../等特征字符串) 组件漏洞 Shiro : 升级到最新安全版本 修改默认key Struts2 : 升级到最新安全版本 Tomcat : 修改管理后台弱口令 避免被部署WAR包GetShell Weblogic : 及时打补丁 Fastjson : 开启safeMode 升级到安全版本 Fastjson安全配置方式 : 在代码中配置: 加上JVM启动参数: 通过fastjson.properties文件配置: 安全配置与加固 端口安全 对外不开放高危端口,不启用无用的端口 只开放80、443、8080、8090等常规端口 如有需要ssh,ftp,mysql等数据库端口,需要排查弱口令后再对外外放 定期修改密码 检查是否存在未授权访问漏洞的端口 系统安全 及时打漏洞补丁 实施前面应急响应相关内容 密码安全 长度不少于8个字符 密码中同时存在大小写字母、数字和特殊符号 不存在于已有字典之中 定期修改密码 应用安全 FTP : 禁止匿名登录 修改Banner信息防止被识别 SSH : 是否禁用root登录 是否需要禁用密码连接 采用ssh密钥登录 VPN : 是否为最新安全版本 账户密码定期修改 数据库应用 : 文件写权限 日志记录是否开启 账户密码弱口令排查