蓝队面经速查手册

news2024/11/28 8:23:06

文章目录

  • 常见安全设备
  • 溯源
  • 应急响应+入侵排查思路
  • 日志文件
  • 安全加固
  • 常用排查命令
  • 主机后门webshell的排查思路
  • Webshell工具的流量特征
  • Linux 的 Selinux
  • windows 日志分析工具
  • Linux 日志分析技巧命令
  • 安全基线规范检查
  • 中间件基线规范(APACHE)
  • 中间件常见漏洞
  • 常见中间件的配置文件路径
  • 常用的安全工具以及常见的设备
  • 威胁情报库
  • 怎么发现有没有被攻击?
  • sql注入(面了几家问了几家)
  • SSRF
  • 反序列化


常见安全设备

安全厂商
深信服、浪潮、奇安信、绿盟、山石网科、启明星辰、安恒、360、新华3
防火墙
按照过滤规则(IP,端口,协议等),对数据报的报头进行过滤,决定对数据报放行或丢弃。防火墙不会拆包查看数据包内容。
防火墙无法阻断内部的攻击,比如内部员工点击了木马文件,主动向攻击者发起连接。事后也无法对攻击信息进行调查取证(无法溯源)。
IDS
入侵检测(detection)系统。它是并联(旁路)部署的,对流到web服务器的流量进行记录。只对流量进行记录,如果是攻击流量,会“眼睁睁”地看着它攻击,不阻断攻击。“只记录,不拦截”。
IPS
入侵防御(protection)系统,对恶意数据包进行检测,对攻击流量进行阻断。又检测又阻断。串联在网络中,一个一个地核实身份(所以速度会慢一些)。“又记录,又拦截”。
waf
web应用防火墙,主要监控的是应用层的http、https流量。
上网行为管理器
对主机用户行为进行检测,可以看用户在干什么,比如可以检测员工是不是上班摸鱼,深信服有这个(我在b站看过up主测评这个)。上网行为管理功能主要是为了防止企业员工或学校学生在上班或者上课期间浏览无关网站,而带来多方面的不良影响。
数据库审计系统
采集所有数据库的访问流量。审计可信人员(运维、员工等)对数据库的非法操作,它能记录谁(user)在什么时候(when)什么时候地方(ip地址、mac地址)对哪些库表做了什么操作(sql语句的增删查改)及相应操作返回的结果。
无法阻断非法攻击,方便事后取证、定责。比如有员工对公司怀恨在心,删库跑路,数据库审计系统记录下该员工的对数据库的非法操作(drop database),事后公司对该员工进行定责(坐牢)。
全流量设备
采集、存储所有网络流量,被攻击后方便还原攻击链,溯源取证等工作。
蜜罐
像IDS、IPS、waf这些安全设备,是基于特征库匹配的,意味着攻击流量(行为)匹配了特征库,就会产生告警。但是像0day漏洞,是新型的攻击手法,特征库不存在这种攻击特征,就无法产生告警。部署一些诱饵主机、网络服务和信息,诱导黑客去攻击,会记录黑客的所有操作攻击行为,就像开了上帝的眼一样。
态势感知
收集海量的数据(日志+流量),使用由深度学习、威胁情报、AI等训练的模型进行分析,最后用大屏显示分析结果。一般用户看到的就是酷炫的分析结果。

溯源

溯源
1.攻击源获取
这就和安全事件的确定有关系。比如说领导告诉你我的主机有点卡或者web页面被篡改了等等。这时候就要去判断对方的攻击手段。然后去找攻击的痕迹。痕迹的寻找就是三个点,日志,网路痕迹,进程信息。这三点进行结合查看。
2.针对IP或者域名通过公网已有的开放信息进行查询
比如说我在日志里找到了对应的攻击者IP,那么我们就要对ip进行识别他的网络资产,比如站长之家识别一下,查看一下有无域名,对域名进行反查一下,看是否可以搜索到攻击者相关信息。
还有就是如果这些信息无法获取,只知道了对方的ip,那就直接对对方进行反向渗透。进行取证,取证的主要是对方的office文件,各种第三方社交软件,比如说微信有个缓存文件db后缀结尾的,里面有聊天记录,拿去破解一下。
3.信息反查
取证,想尽办法搜索到和他相关的所有信息。
4.反制
反制分为技术手段和非技术手段
技术手段:1.分析对方工具的漏洞2.蜜罐
非技术手段:1.钓鱼和反钓鱼2.从攻击者目的思考反向获取对方信息
反制还分为直接反制和钓鱼反制
直接反制就是对对方主机进行攻击。
钓鱼反制就是引诱对方进入。这里要说一下,让我们做蜜罐时候,一定要做的像内网的真实主机,不能让对方一眼识别。比如说网卡啊,虚拟机可以用别人测试的游戏虚拟机,相关文件,敏感文件,各种服务。OA啊,等等,做的真实一点点。


应急响应+入侵排查思路

应急响应流程
收集信息:收集客户信息和中毒主机信息,包括样本
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等抑制范围:隔离使受害⾯不继续扩⼤
深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
产出报告:整理并输出完整的安全事件报告

windows入侵排查思路
1.收集信息:收集与系统安全相关的信息,包括日志文件,进程列表,网络连接,系统配置等。

2.分析信息:对收集到的信息进行分析,确定异常行为和潜在威胁


BTAB 蓝队分析工具箱,专注于攻击特征分析。可以辅助安全运营人员在客户现场较苛刻环境下(无网、无python环境)的流量包分析、木马分析等场景,目前已集成流量包检测、SQL注入检测、Webshell检测、bash命令执行检测,以及解码序列化等工具。
https://github.com/Martin2877/btab/releases/tag/v0.3.3
在这里插入图片描述


3.确认威胁:确认系统存在威胁,并确定其类型和程度。
4.阻止攻击:采取相应的措施,尽快阻止攻击并减少损失。
5.恢复系统::对受到攻击的系统进行恢复,确保其正常运行。

具体来说,可以采取以下几种方法进行入侵排查:
1. 使用防病毒软件:定期使用防病毒软件扫描系统,及时发现并清除潜在的威胁。
2. 定期更新系统:定期更新系统和安全补丁,以确保系统的安全性。
3. 监控网络连接:监控网络连接情况,及时发现异常连接和流量,以及非法访问尝试。
4. 分析日志文件:分析日志文件,了解系统的使用情况和异常行为,及时发现威胁。
5. 使用安全工具:使用安全工具,如入侵检测系统、网络监控系统等,帮助发现和阻止威胁。
6. 加强用户教育:加强用户教育,提高用户安全意识,减少人为因素对系统安全的影响


Linux入侵排查思路
1. 收集基础信息:收集系统的版本、配置文件和日志等信息,了解系统的正常运行状态。

查看Linux系统版本信息的几种方法:

查看Linux内核版本命令(两种方法)

cat /proc/version

在这里插入图片描述

uname -a

在这里插入图片描述
查看Linux系统版本的命令(3种方法):

lsb_release -a,即可列出所有版本信息:
这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。
cat /etc/redhat-release,这种方法只适合Redhat系的Linux:
cat /etc/issue,此命令也适用于所有的Linux发行版。

在这里插入图片描述

lsb_release -a:查看Linux发行版和版本信息。

ifconfig或ip addr show:查看网络接口、IP地址和相关配置信息。

cat /etc/resolv.conf:显示DNS配置信息。

cat /etc/hosts:查看本地主机名解析配置。

cat /etc/fstab:显示文件系统挂载配置。
  1. 分析异常行为:通过比较正常状态与异常状态的差异,分析系统上出现的任何异常行为,例如不寻
    常的进程、网络流量或文件更改。
  2. 确认入侵点:确定攻击者可能入侵的方式,并检查是否存在未修复的漏洞。
  3. 隔离受感染的系统:及时隔离受感染的系统,以限制损害并避免进一步传播。
  4. 恢复系统:清除恶意代码并修复受损部分,通过备份恢复数据和配置文件,确保系统安全。
  5. 收集证据:收集入侵事件的详细信息,包括攻击的时间、入侵的方式、影响范围、损失情况等,以便后续追踪和定位攻击者。

在实际操作中,需要结合专业的工具和技能进行排查,例如使用抓包工具Wireshark分析网络流量、使用进程监控工具ps、top、htop等查看进程运行情况。同时,还需要不断学习更新各种安全相关的技能和知识,以提高排查入侵事件的能力

在 Linux 系统中,可以通过以下方式查看登录日志:

  1. /var/log/auth.log文件:该文件记录了所有用户的认证信息,包括 SSH 登录、sudo 访问以及 su 切换等操作。
  2. /var/log/secure文件:该文件用于记录系统身份验证和授权消息,通常在 Red Hat 系统上使用。其中包括 SSH 登录、sudo 访问以及 su 切换等操作。
  3. /var/log/messages文件:该文件记录了系统的运行消息,包括启动和关闭服务、内核消息以及其
    他重要事件。
  4. w命令:可以查看当前已登录的用户和他们的会话信息。
  5. last命令:可以查看最近所有登录和注销会话的用户列表以及日期和时间。
  6. lastlog命令:可以查看所有用户最后一次登录的时间和位置。
    需要注意的是,在某些系统中这些文件名可能会有所不同,例如 Ubuntu 系统中的 /var/log/auth.log 文件可能是 /var/log/auth.log.1、/var/log/auth.log.2.gz等形式。因此,在查看登录日志时,最好先了解当前系统的具体情况
    在这里插入图片描述

日志文件

Windows

  1. 系统事件记录器:Event Viewer 应用程序中提供了 Windows 系统的事件日志管理工具。这些日志文件通常存储在 C:\Windows\System32\winevt\Logs 目录中。
  2. 应用程序日志:包括应用程序特定的事件、错误和警告等信息,可以使用 Event Viewer 应用程序进行查看。这些日志文件通常存储在应用程序的安装目录下或者 Windows 系统目录中。
  3. 安全日志:记录有关系统安全性的重要信息,例如登录、注销、权限更改等。这些日志文件通常存储在 C:\Windows\System32\winevt\Security.evtx 文件中。

Linux

  1. 系统日志:Linux 系统中的所有日志都存储在 /var/log 目录下。主要的日志文件包括:
    /var/log/messages:记录系统启动期间的消息以及其他系统级别的消息。
    /var/log/syslog:记录核心系统日志,也包括其他应用程序的日志。
    /var/log/auth.log:记录用户登录和其他身份验证相关事件的日志文件。
  2. 各种服务/软件的日志文件:各种服务或软件分别根据自己的命名规范来命名相应的日志文件,其中一些可能位于 /var/log 目录下,而另一些则可能位于 /var/log/service 目录下。
    需要注意的是,日志文件在系统运行一段时间后可能会变得非常庞大,因此需要定期进行归档和清理,以释放磁盘空间并提高系统性能。

安全加固

Windows 安全加固

  1. 更新操作系统和软件:及时安装 Windows 操作系统和软件的安全更新。
  2. 禁用 SMBv1:由于 SMBv1 协议存在一些严重的漏洞,建议禁用 SMBv1 协议。

SMB(Server Message Block)是一种用于文件共享、打印机共享和通用网络通信的协议。不同版本的 SMB(如
SMB1、SMB2、SMB3)在功能和特性方面有所不同。

  1. 启用 UAC:启用用户账户控制(UAC),以限制非管理员用户的系统访问权限。

用户账号控制(User Account Control) 为WindowsVista推出的一项安全技术,其原理是通过限制安全应用软件对系统层级的访问,提升Windows操作系统的安全性。

  1. 配置防火墙:使用 Windows 防火墙过滤不必要的网络流量,并确保只允许合法的流量通过。
  2. 使用 BitLocker 或类似的加密工具:对重要数据和文件进行加密存储,以避免数据泄漏。

Bitlocker 可以拆分为bit locker,直接翻译的话就是比特锁,意思是每个 bit 都加密。Bitlocker 使用 AES
加密算法加密整个卷来保护数据。简单来说,BitLocker 会将 Windows的安装分区或者其他用于保存文件的分区进行加密,并将密钥保存在硬盘之外的地方,并对早期启动组件完整性检查,合并到一起来增强数据保护。
BitLocker 主要有两种工作模式:TPM 模式和 U盘模式,同时为了实现更高程度的安全,我们还可以同时启用这两种模式。

  1. 配置组策略:使用本地组策略或 Active Directory 组策略来限制用户和计算机的访问权限。
  2. 检查安全事件日志:定期检查 Windows 安全事件日志,了解系统中发生的任何异常事件。
  3. 定期备份数据:定期备份重要数据至外部存储设备,以防止数据丢失和系统损坏。

Linux 安全加固:

  1. 更新所安装的软件包:定期更新系统中所有软件包以修复已知漏洞。
  2. 禁用不必要的服务:禁用不必要的网络服务,减少攻击面。
  3. 配置防火墙:使用防火墙限制入站和出站网络流量,只允许合法的流量通过。
  4. 加强密码策略:设置强密码策略并启用多因素身份验证。
  5. 禁用 root 登录:禁止使用 root 用户登录系统,并将 sudo 和 su 访问权限限制到必要的人员或
    组。
  6. 使用 SELinux 或 AppArmor:使用 SELinux 或 AppArmor 来实现更细粒度的应用程序和文件访问
    控制。
  7. 配置 SSH 访问:使用 SSH 协议连接服务器时配置限制 IP 地址和端口号等安全措施。
  8. 定期备份数据:定期备份重要数据至外部存储设备,以防止数据丢失和系统损坏

常用排查命令

linux

  1. top:显示当前系统中最占用 CPU 和内存的进程。

  2. ps:显示当前系统所有运行的进程列表。

  3. netstat:显示网络连接状态和统计信息,例如打开的端口、TCP/UDP 连接和网络接口等。

  4. ifconfig/iwconfig:显示网络接口的状态和配置信息。

  5. ping/traceroute:用于测试网络是否连通以及检测网络故障的工具。

  6. df/du:显示磁盘使用情况,包括已用空间和可用空间等信息。

  7. ls/lsof:用于查看打开的文件、目录和文件描述符。

  8. strace/ltrace:跟踪应用程序执行期间的系统调用和库函数调用。

  9. tcpdump:捕获网络数据包并将其记录到日志文件中,以便进行后续分析。

  10. who :命令查看当前登录用户(tty本地登陆 pts远程登录)

  11. history : 表示输出最近使用的5条命令

  12. tail:实时监视日志文件,并显示最新添加的日志信息。

windows
query user 查看当前登录账户
logoff ID 注销用户id
net user 查看用户
net user username 查看用户登录情况
lusrmgr.msc 打开本地用户组
regedit 注册表查看账户,确认系统是否存在隐藏账户
netstat -ano 异常端口进程,一般是查看已经成功建立的连接
msconfig 启动项检查,查看系统启动项
Cmd下运行schtasks 查看系统定时任务(win7系统利用at)
Services.msc 查看系统服务
运行窗口中输入“%UserProfile%\Recent”。查看最近打开的文件,


主机后门webshell的排查思路

windows主机后门排查思路
针对主机后门windows,linux,在对方植入webshell后,需要立即响应,排查出后门位置,以及排查对外连接,端口使用情况等等

排查对外连接状态:
借助工具:pchunter 火绒剑 均可,不方便情况下cmd查看对外连接状态,进程状态,端口信息等
思路1:pchunter查看到异常的对外连接
定位该exe文件,上传微步沙箱显示异常
思路2:cmd窗口查看对外链接状态:
netstat -anpt cmd查看进程状态:tasklist
**思路3:pchunter查看进程,**大多数木马文件在没有做屏蔽等措施,在厂商归属,指纹信息会显示异常,或者无任何厂商归属信息,可以借助为参考
火绒剑查看网络情况:系统监控存在连接状态,

启动项后门的排查
启动项后门命令:
REG ADD “HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /V “backdoor” /t REG_SZ /F /D “C:\shell.exe”
这是一个用于在Windows注册表中添加启动项的命令。该命令将在当前用户的注册表路径下的"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"键中添加一个名为"backdoor"的值,其值数据为"C:\shell.exe"。
pchunter,火绒剑等均可查看启动信息
映像劫持,隐藏账户,均可借助工具查看,

linux的后门排查也可以netstat -anpt查看连接状态研判 ,发现异常连接kill进程

rootkit情况说明
linux被rootkit上线:无法查看到对外连接,在受害机执行命令可以做到隐藏进程,文件等
处置:Gscan上传受害机环境直接运行(包含检测rootkit,可以作为其他的Linux应急)(未检测出rootkit)
目前开源自动化工具均无法检测rootkit
目前内存马和rootkit对于蓝队无法百分百解决检测

Webshell工具的流量特征

菜刀流量分析
payload特征:
PHP: <?php @eval($_POST['caidao']);?>
ASP: <%eval request(“caidao”)%
ASP.NET: <%@ Page
Language=“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>
数据包流量特征
1,请求包中:ua头为百度,火狐
2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码,固定的
4,存在&z0 z1 z2 z3

蚁剑流量分析
payload特征:
Php中使用assert,eval执行,
asp 使用eval
在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征
数据包流量特征:
使用普通的一句话都存在以下特征:
每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符
响应包的结果返回格式为:
随机数
响应内容
随机数
使用base64加密的payload,数据包存在以下base加密的eval命令执行,数据包的payload内容存在几个分段内容,分别都使用base加密,解密后可以看到相关的路径,命令等
响应包的结果返回格式为:
随机数
编码后的结果
随机数

冰蝎流量分析
paylaod分析:
php在代码中同样会存在eval或assert等字符特征
在aps中会在for循环进行一段异或处理
在jsp中则利用java的反射,所以会存在ClassLoader
getClass().getClassLoader()等字符特征
冰蝎2.0流量特征:
第一阶段请求中返回包状态码为200,返回内容必定是16位的密钥
请求包存在:Accept: text/html, image/gif, image/jpeg, ; q=.2, /; q=.2
建立连接后的cookie存在特征字符
所有请求 Cookie的格式都为: Cookie: PHPSESSID=; path=/;
冰蝎3.0流量特征:
请求包中content-length 为5740或5720(可能会根据Java版本而改变)
每一个请求头中存在
Pragma: no-cache,Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/*;q=0.8,application/signed-exchange;v=b3;q=0.9
哥斯拉流量特征
payload特征:
jsp会出现xc,pass字符和Java反射(ClassLoader,getClass().getClassLoader()),base64加解码等特征
php,asp则为普通的一句话木马

哥斯拉流量分析:
作为参考:
所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
所有响应中Cache-Control: no-store, no-cache, must-revalidate,
同时在所有请求中Cookie中后面都存在;特征


Linux 的 Selinux

SELinux(Security-Enhanced Linux)是一个针对 Linux 内核的安全模块,它可以限制进程和用户的访问权限,并提供更加细粒度的访问控制。SELinux 基于强制访问控制(MAC)模型,将每个进程/对象分配到不同的安全上下文中,并通过策略文件来定义这些上下文之间的关系。

在 Linux 中,SELinux 可以通过以下步骤进行设置:

  1. 检查 SELinux 状态:使用命令 getenforce 或者 sestatus 来检查当前 SELinux 的状态,例如 enforcing、permissive 或者 disabled 等。
  2. 修改 SELinux 配置文件 /etc/selinux/config:可以修改 SELINUX 参数的值为 enforcing(强制模
    式)、permissive(宽容模式)或者disabled(禁用 SELinux)等。
  3. 安装和管理 SELinux 策略包:使用 yum 命令安装和管理 SELinux 相关的策略包,例如
    policycoreutils 和 selinux-policy 等。
  4. 设定 SELinux 上下文:使用 chcon、semanage 和 restorecon 等命令来更改文件或目录的安全上
    下文。
  5. 确认 SELinux 日志:在排除 SELinux 相关问题时可以使用命令 ausearch、ausearch、auditctl 等
    来确认 SELinux 日志。
    需要注意的是,在对 SELinux 进行设置和管理时,需要有一定的 Linux 系统管理经验和 SELinux 相关知
    识。因为错误的配置可能会导致系统不稳定或者无法启动,所以在操作前应仔细阅读相关文档并进行备
    份。


windows 日志分析工具

  1. Event Viewer:Windows 自带的日志管理工具,可以查看和分析 Windows 系统中的各种事件日
    志。
  2. Log Parser:一款免费的命令行工具,可以查询和分析日志文件、IIS 日志、Windows 注册表、
    Active Directory 等数据源。
  3. Microsoft Message Analyzer:一款强大的网络协议分析工具,可以捕获和分析 Windows 操作系
    统上的网络流量和事件日志。
  4. Syslog-ng:一个高性能的日志管理工具,可以帮助用户收集和分析来自不同平台的日志信息。
  5. Graylog:一款开源的日志管理工具,可以帮助用户收集、存储和分析来自不同来源的日志信息,
    并提供直观易用的用户界面。
  6. Splunk:一款商业化的日志管理工具,可以帮助用户实时监控、搜索、分析和可视化来自不同来源
    的日志信息。

Linux 日志分析技巧命令

  1. grep 命令:用于在文本文件中搜索指定的字符串和模式,例如可以使用 grep error
    /var/log/messages 命令来查找系统日志中的错误信息。
  2. tail 命令:实时监视日志文件,并显示最新添加的日志信息,例如可以使用 tail -f
    /var/log/messages 命令来实时监视系统消息。
  3. sed 和 awk 命令:可以用来编辑和处理文本文件,例如可以使用 awk ‘/error/ {print $0}’
    /var/log/messages 命令来筛选出包含 error 字符串的日志信息。
  4. journalctl 命令:用于查询和查看 systemd 系统日志,例如可以使用 journalctl -u nginx.service
    命令来查看 Nginx 服务的日志信息。
  5. dmesg 命令:用于打印内核环境变量缓冲区的内容包

安全基线规范检查

Linux 基线规范
Linux 基线规范是指为了保证 Linux 系统安全性和可靠性,制定的一系列最佳实践和标准化要求。Linux
基线规范通常包括以下几个方面:

  1. 安全加固:禁用不必要的服务、配置防火墙、强化密码策略等。
  2. 用户和权限管理:创建普通用户账号、限制 root 账号访问、使用 sudo 进行授权等。
  3. 日志管理:启用系统日志、日志文件备份和归档、监控日志信息等。
  4. 文件系统和目录结构规范:对重要数据进行加密、使用 ext4 文件系统、分区管理等。
  5. 网络安全:检查网络连接状态、限制入站和出站流量、使用 SELinux 或 AppArmor 等。
  6. 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
  7. 数据备份与恢复:定期备份和恢复系统数据和设置等

需要注意的是,不同的公司或组织可能会有不同的基线规范要求。在实践中,我们可以根据自己的需求
和安全风险评估情况,设计并实施相应的基线规范,并定期进行评估和调整。这样可以帮助我们规范化
Linux 系统的管理和维护,并提高系统的可靠性和安全性。

Windows 安全基线检查
Windows 安全基线检查是指通过对 Windows 操作系统进行安全配置和最佳实践检查,来评估系统的安
全性和完整性。Windows 安全基线包括以下几个方面:

  1. 用户和权限管理:创建普通用户账号、限制管理员账号访问、使用 UAC 进行授权等。
  2. 密码策略:设置强密码策略,并启用多因素身份验证。
  3. 网络安全:配置防火墙、禁用不必要的服务、加密敏感数据传输等。
  4. 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
  5. 日志管理:启用系统日志、监控日志信息、建立日志归档等。
  6. 文件和目录权限:配置文件系统和目录结构规范、限制文件和目录访问权限等。
  7. 数据备份与恢复:定期备份和恢复系统数据和设置等

为了进行 Windows 安全基线检查,可以使用 Microsoft Security Compliance Toolkit 工具,该工具包
含安全基线和最佳实践检查工具,并提供安全配置模板和分析报告。此外,还可以使用第三方商业化工
具,例如 SolarWinds、McAfee 等,来帮助进行 Windows 安全基线检查。


中间件基线规范(APACHE)

Apache 是一款常用的 Web 服务器软件,为了保障其安全可靠地运行,可以制定中间件基线规范。以下
是 Apache 中间件基线规范的一些重要措施:

  1. 版本号管理:定期检查并更新 Apache 版本,及时安装最新版本的补丁与安全更新。
  2. 配置文件规范:对 Apache 的配置文件进行规范化和审计,限制网站访问权限、禁止目录浏览等。
  3. 日志管理:启用 Apache 访问日志和错误日志,定期清理日志文件并做好备份、归档等工作。
  4. 安全加固:如禁用不必要的模块、关闭 TRACE 请求响应、限制 HTTP 方法等。
  5. SSL/TLS 加强:设置 TLS 选项、开启 HSTS、使用证书身份验证等。
  6. 防火墙和反向代理策略:通过防火墙等技术来过滤恶意流量,使用反向代理策略限制直接连接到
    Web 服务器的 IP 地址。
  7. 应用安全:对 Web 应用程序进行安全审计,确保程序的漏洞被修复、未受到攻击等。
    需要注意的是,以上这些措施只是 Apache 中间件基线规范的一部分,实际操作中还需要根据具体情况
    进行评估和调整。同时,要保障 Apache 服务器的安全性和可靠性,还需要定期备份数据、优化性能等
    工作

中间件常见漏洞

中间件是指应用程序和操作系统之间的软件组件,常见的中间件漏洞有以下几种:

  1. Web服务器漏洞:针对Web服务器(如Apache、Nginx)的攻击通常包括利用目录遍历、文件包
    含、SQL注入等技术。
  2. 数据库漏洞:数据库(如MySQL、Oracle、SQL Server)的漏洞通常涉及未授权的访问、SQL注入
    等方面。
  3. 应用服务器漏洞:应用服务器(如Tomcat、JBoss、WebLogic)的漏洞通常会导致远程执行代
    码、拒绝服务等问题。
  4. 消息队列漏洞:消息队列(如RabbitMQ、Kafka)的漏洞通常涉及未授权访问、拒绝服务等问题。
  5. 缓存服务器漏洞:缓存服务器(如Redis、Memcached)的漏洞通常包括未授权访问、命令注入等
    问题。
  6. 中间件配置问题:中间件的错误配置也可能导致安全问题,比如弱密码、不安全的协议配置等。
    需要注意的是,中间件漏洞是日益增多的,因此建议及时更新和修补中间件的安全漏洞。

常见中间件的配置文件路径

不同的中间件软件有不同的配置文件路径。以下是几种常见中间件软件的配置文件路径:

  1. Apache Web 服务器:httpd.conf 文件通常位于 /etc/httpd/ 或者 /usr/local/apache2/conf/ 目录
    下。
  2. Nginx Web 服务器:nginx.conf 文件通常位于 /etc/nginx/ 或者 /usr/local/nginx/conf/ 目录下。
  3. MySQL 数据库:my.cnf 文件通常位于 /etc/mysql/ 或者 /usr/local/mysql/etc/ 目录下。
  4. PostgreSQL 数据库:postgresql.conf 和 pg_hba.conf 文件通常位于 /var/lib/pgsql/data/ 或者
    /etc/postgresql//main/ 目录下。
  5. Oracle 数据库:initSID.ora 和 listener.ora 文件通常位于 $ORACLE_HOME/dbs/ 目录下。
  6. Tomcat 应用服务器:server.xml、context.xml 和 web.xml 文件通常位于 /conf/ 目录下。
  7. JBoss 应用服务器:standalone.xml 和 standalone-full.xml 文件通常位于 /standalone/configuration/ 目录下。

需要注意的是,这些路径可能会根据不同的操作系统而有所不同,并且也会随着中间件版本的更新而变
化。因此,在进行中间件配置时,建议查询官方文档或参考相关文献以获取最新的配置文件路径信息。

常用的安全工具以及常见的设备

常用的安全工具和设备有很多,以下是其中一些常见的:

  1. 防火墙(Firewall):防火墙可以过滤网络流量,保护网络不受外部攻击。常见的防火墙包括硬件
    防火墙和软件防火墙。
  2. 入侵检测系统(Intrusion Detection System, IDS):IDS 可以监控网络流量、检测恶意行为和入
    侵事件,并向管理员发出警报。
  3. 入侵防御系统(Intrusion Prevention System, IPS):IPS 可以在 IDS 的基础上主动预防入侵事
    件,并进行自动化响应。
  4. 统一威胁管理平台(Unified Threat Management, UTM):UTM 是一种集成了防火墙、
    IDS/IPS、VPN、反病毒等多种功能的综合性安全解决方案。
  5. 脆弱性扫描器(Vulnerability Scanner):脆弱性扫描器可以发现系统中可能存在的漏洞,并提供
    修补建议。
  6. 安全信息和事件管理系统(Security Information and Event Management, SIEM):SIEM 可以对
    安全事件和日志数据进行收集、分析和报告,帮助管理员更好地了解和响应安全事件。
  7. 代理服务器(Proxy Server):代理服务器可以过滤流量、检查内容和访问控制,提供额外的安全
    保护。
  8. 负载均衡器(Load Balancer):负载均衡器可以平衡网络流量,分担服务器负载,提高网络性能
    和可用性。
  9. 加密设备:加密设备可以对数据进行加密处理,防止数据被窃取或篡改。

需要注意的是,以上只是其中一些常见的安全工具和设备,实际应用中还有很多其他的安全工具和设
备。在选择和使用安全工具和设备时,需要根据具体情况进行评估和选择,并确保其符合实际需求和安
全标准。

威胁情报库

  1. 微步在线(ThreatBook):微步在线是国内领先的网络安全威胁情报服务提供商,其威胁情报库
    包括恶意软件、攻击源IP、域名等方面的信息。
  2. 国家互联网应急中心(CNCERT):CNCERT 是中国政府统一组织和协调全国互联网安全工作的部
    门,其威胁情报库包括漏洞、恶意代码、攻击事件等方面的信息。
  3. 安恒威胁情报中心(ATIS): ATIS 是安恒信息安全研究院旗下的威胁情报中心,其威胁情报库涵
    盖了APT攻击、Web攻击、恶意邮件、移动恶意软件等方面的信息。
  4. 漏洞盒子(KnownSec):漏洞盒子是一家致力于网络安全防御和攻防技术研究的公司,其威胁情
    报库包括漏洞、恶意代码等方面的信息。
  5. 360威胁情报中心(360 TI Center):360 威胁情报中心聚焦于威胁情报、安全事件响应和恶意代
    码研究等领域,其威胁情报库包括APT攻击、恶意URL等方面的信息。
    需要注意的是,以上威胁情报库只是其中一部分,实际应用中还有很多其他的威胁情报库。在使用威胁
    情报库时,需要根据具体需求进行评估和选择,并确保数据来源可靠、及时和准确。

怎么发现有没有被攻击?

发现自己是否被攻击是网络安全管理中非常重要的一环。以下是几种常见的发现被攻击的方法:

  1. 安全日志监控:对系统和应用程序的安全日志进行监控,可以及时发现异常活动和安全事件。例
    如,登录失败、异常访问、恶意软件入侵等。
  2. 网络流量分析:通过对网络流量进行监控和分析,可以发现可能存在的攻击行为。例如,大量来自
    某个 IP 地址或特定端口的流量、恶意脚本和代码注入等。
  3. 主机基线监测:通过对应用程序、操作系统和数据文件等资源进行基线监测,可以及时发现可能存
    在的异常变化和不正常的活动。
  4. 脆弱性扫描:通过使用脆弱性扫描工具,可以发现系统中可能存在的漏洞,并提供修补建议。
  5. 威胁情报监测:通过使用威胁情报库和服务,可以了解到当前存在的威胁活动,及时采取防御措
    施。
  6. 安全演练:通过进行安全演练,可以模拟真实的攻击场景,评估自身的安全状态,及时发现和修复
    存在的问题。

需要注意的是,以上方法只是其中一部分,实际应用中还有很多其他的发现被攻击的方法。在进行网络
安全管理时,需要综合使用多种方法,并不断更新和完善自身的防御措施,以提高安全水平和减少被攻
击的风险

sql注入(面了几家问了几家)

sql注入原理:
用户的可控的输入嵌入到sql语句中并被服务端执行,导致应用程序的信息泄露以及攻击者写入webshell
sql注入分类:
请求头的注入、联合查询注入、报错注入、布尔盲注、堆叠注入、时间盲注 、宽字节注入
讲一讲报错注入、时间盲注主要用到的函数
报错:updataxml、extractvalue 时间:sleep
sql注入防御:
使用预编译;
黑名单:对特殊的字符例如括号斜杠进行转义过滤删除;
白名单:对用户的输入进行正则表达式匹配限制;
规范编码以及字符集,否者攻击者可以通过编码绕过检查;
参数化查询:原理是将用户输入的查询参数作为参数传,而不直接将它们拼接到SQL语而言,将SQL语句和参数分离开来,并通过占位符(一般使用问号“?”)将它们关联起来,这样用户的输入只会被当作参数
宽字节注入原理:
由于PHP utf-8编码 数据库GBK编码,PHP发送请求到mysql时经过一次gbk编码,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出来
sql注入如何写入webshell:
?id=1’ union select 1,“<?php @eval($_POST['shell']);?>”,3 into outfile ‘C:\phpstudy\WWW\sqli\shell.php’#
?id=1’ union select 1,“<?php @eval($_POST['shell']);?>”,3 into dumpfile ‘C:\phpstudy\WWW\sqli\shell.php’#
into outfile ‘C:/wamp64/www/shell.php’ lines terminated by ‘<?php phpinfo()?>’;
into outfile ‘C:/wamp64/www/shell.php’ lines starting by ‘<?php phpinfo()?>’;
讲一讲sqlmap中的risk和level的区别:
risk风险等级 越大则测试的语句越多 强调数量
level探测的深度 越大则测试的范围越广 例如cookie host 等等都会测试 强调范围

SSRF

讲一讲SSRF原理

服务端提供了能够从其他服务器应用获取数据的功能,我们服务端请求的目标都是与该请求服务器处于同一内网的资源服务,但是如果没有对这个请求的目标地址、文件等做充足的过滤和限制,攻击者可通过篡改这个请求的目标地址来进行伪造请求,进行未授权访问。

讲一讲SSRF常用的协议:
file 用于读取文件
dict 用于探测一些端口 以及数据库信息
LDAP 目录扫描
TFTP 它允许客户端从远程主机获取文件或将文件上传至远程主机 上传shell
sftp、gopher

反序列化

讲一讲java反序列化的原理:

Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。如果Java应用对用户输入(即不可信数据)做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的类或对象,这个类或对象在产生过程中就有可能带来任意代码执行。

讲一讲shiro反序列化原理

Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。

讲一讲fastjson反序列化原理:

fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。

讲一讲log4j RCE
Log4j 是Apache 的一个开源项目,是一款基于Java 的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到${后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

验证码项目(java实现)

1、Kaptcha详细配置 配置项 配置说明 默认值 kaptcha.border 图⽚边框&#xff0c;合法值&#xff1a;yes , no yes kaptcha.border.color 边框颜⾊&#xff0c;合法值&#xff1a; r,g,b (and optional alpha) 或者 white,black,blue black kaptcha.image.width 图⽚宽 200…

golang语言系列:Scrum、Kanban等敏捷管理策略

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 golang语言系列 文章&#xff0c;主要对编程通用技能 Scrum、Kanban等敏捷管理策略 进行学习 1.什么是敏捷开发 敏捷是一个描述软件开发方法的术语&#xff0c;它强调增量交付、团队协作、持续规划和持续学习。…

ZKFair 创新之旅,新阶段如何塑造财富前景

在当前区块链技术的发展中&#xff0c;Layer 2&#xff08;L2&#xff09;解决方案已成为提高区块链扩容性、降低交易成本和提升交易速度的关键技术&#xff0c;但它仍面临一些关键问题和挑战&#xff0c;例如用户体验的改进、跨链互操作性、安全性以及去中心化程度。在这些背景…

基于springboot+vue+Mysql的某银行OA系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

JimuReport积木报表 v1.7.4 正式版本发布,免费的JAVA报表工具

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…

Php_Code_challenge16

题目&#xff1a; 答案&#xff1a; 解析&#xff1a; 所以科学计数法绕过即可。

AI预测福彩3D第23弹【2024年4月1日预测--第5套算法开始计算第5次测试】

今天&#xff0c;咱们继续进行本套算法的测试&#xff0c;本套算法目前也已命中多次。今天为第五次测试&#xff0c;仍旧是采用冷温热趋势结合AI模型进行预测。好了&#xff0c;废话不多说了。直接上结果~ 仍旧是分为两个方案&#xff0c;1大1小。 经过人工神经网络计算并进行权…

element-ui alert 组件源码分享

今日简单分享 alert 组件源码实现&#xff0c;主要从以下四个方面来分享&#xff1a; 1、alert 组件的页面结构 2、alert 组件的属性 3、alert 组件的 slot 4、alert 组件的方法 一、alert 组件的页面结构 二、alert 组件的属性 2.1 title 属性&#xff0c;标题&#xff…

python爬虫+django新闻推荐系统可视化分析

1. 安装python3.7.0 2. 更新pip 控制台执行 python -m pip install -U pip 3. 安装依赖库 pip install -r requirements.txt 4. 更改mysql数据库配置 修改newsServer/settings.py中的数据库连接配置&#xff0c;比如修改下方PASSWORD密码为本机mysql密码&#xff1…

网络套接字补充——TCP网络编程

六、TCP网络编程 6.1IP地址字符串和整数之间的转换接口 //字符串转整数接口 #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int inet_aton(const char *cp, struct in_addr *inp); int inet_pton(int af, const char *strptr, …

Golang 哈希表底层实现原理

1、本文讨论Golang的哈希表 Golang哈希表的实现&#xff0c;底层数据结构是数组单链表&#xff0c;链表节点由8个key、value和键的高八位组成的。为了方便理解&#xff0c;先简单看一个图快速理解。 我们来看一下Golang哈希表的结构体定义 简单介绍一下结构体中几个关键的…

提高三维模型的立面出图技术

提高三维模型的立面出图技术 摘要&#xff1a;立面出图是三维模型应用中常见的需求&#xff0c;它能够将三维模型呈现为平面立面图&#xff0c;用于建筑设计、室内装饰等领域。本文将介绍几种常用的立面出图技术&#xff0c;包括投影法、剖面法和渲染技术&#xff0c;并分析它们…

C语言动态内存讲解+通讯录2.0

文章目录 前文malloc和freecallocrealloc枚举常量的简单说明及使用 通讯录2.0动态开辟通讯录,满了就扩容保存数据和载入数据 通讯录2.0演示推荐好用的软件 前文 本文主要介绍动态开辟的几个函数,以及改进之前的通讯录。 我们局部变量等是在栈区上开辟空间的,而我们动态开辟的空…

Python学习笔记 - 如何在google Colab中显示图像?

这里是使用的opencv进行图片的读取&#xff0c;自然也是想使用opencv的imshow方法来显示图像&#xff0c;但是在google Colab中不可以使用&#xff0c;所以寻找了一下变通的显示方法。 方法1&#xff1a;使用matplotlib 使用plt需要交换一下r、b通道&#xff0c;否则显示不正常…

conda使用记录

linux 使用conda创建新一个新的python环境过程 conda create -n recommendation_env python3.8.18 # 指定python版本 conda env list # 查看所有的环境 conda activate recommendation_env # 激活创建的新环境 pip install flask # 安装依赖 或者 pip install flask版本号 或者…

鸿蒙(HarmonyOS)ArkTs语言基础教程开发准备

本文档适用于HarmonyOS应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉HarmonyOS应用开发流程。 在开始之前&#xff0c;您需要了解有关HarmonyOS应用的一些基本概…

Intel FPGA (4):状态机

Intel FPGA (4)&#xff1a;状态机 前提摘要 个人说明&#xff1a; 限于时间紧迫以及作者水平有限&#xff0c;本文错误、疏漏之处恐不在少数&#xff0c;恳请读者批评指正。意见请留言或者发送邮件至&#xff1a;“Email:noahpanzzzgmail.com”。本博客的工程文件均存放在&am…

学习Linux推荐的书籍

我记得有人曾经说过&#xff0c;征服一个男人最好的途径就是抓住他的胃。 ‍‍‍‍ 学习Linux&#xff0c;最重要的就是要先搞懂Linux是啥&#xff0c;有啥&#xff0c;为啥&#xff1f;‍‍‍‍‍‍‍‍‍‍‍‍‍ 所以&#xff0c;我推荐的第一本书就是-《Unix编程艺术》。…

力扣热题100_链表_142_环形链表 II

文章目录 题目链接解题思路解题代码 题目链接 142. 环形链表 II 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中…

深度学习_NLP常用库报错问题解决

1、SpaCy can‘t find model ‘zh_core_web_sm‘. It doesn‘t seem to be a python package or a valid path to a data 或者 can‘t find model ‘en_core_web_sm‘. It doesn‘t seem to be a python package or a valid path to a data 安装最新的版本&#xff1a; en_…