hvv面试题总结归纳

cvestone 发布于 2024-05-23 560 次阅读 22787 字 预计阅读时间: 2 小时


蓝队

Top10漏洞篇

owasp top10(最新2021版)有哪些?

官方报告

  • Broken Access Control 破损的访问控制
    (通常会导致未经授权的信息泄露、修改或销毁所有数据,或在用户权限之外执行业务功能。

防御:使用一次性的访问控制机制;除了公共部分其他部分默认拒绝访问;限制应用程序接口和控制器的访问权限,最大限度地减少自动攻击工具的危害等)

  • Cryptographic Failures 加密故障
    (重点关注与密码学有关的故障,这一类别通常会导致敏感数据暴露或系统受损。

防御:确保对敏感数据采用最新和强大的标准算法、协议和密钥;密钥应以密码随机方式生成,并以字节数组形式存储在内存中;使用安全协议加密传输中的所有数据;对包含敏感数据的响应禁用缓存等)

  • Injection 注入
    (应用程序未对用户提供的数据进行验证、过滤;SQL 或命令等包含恶意操作的恶意数据等,总之就是各种注入类漏洞。

防御:使用安全的api;使用积极的服务器端输入验证等)

  • Insecure Design 不安全的设计
    (重点关注与设计缺陷相关的风险,造成不安全设计的因素之一是缺乏对所开发软件或系统固有业务风险的分析,因而无法确定需要何种级别的安全设计。

防御:对关键的身份验证、访问控制、业务逻辑和关键流程进行威胁建模;建立和使用安全开发生命周期等模型,对系统做一些安全评估等措施)

  • Security Misconfiguration 安全误配置
    (即各种不安全的配置或启用不必要的功能等导致的漏洞,特别注意XXE外部实体漏洞现在也属于这一范畴。

防御:遵循最小权限原则配置;对于XXE则过滤用户提交的XML数据,禁用外部实体)

  • Vulnerable and Outdated Components 存在漏洞的过期组件

防御:删除未使用的依赖项、不必要的功能、组件等;及时更新并打补丁;定期使用带指纹识别的漏扫工具扫描)

  • Identification and Authentication Failures 身份认证失效
    (如明文密码传输、弱口令、默认密码、可爆破的密码等。

防御:实施多因素身份验证;弱密码检查;限制失败的登录尝试;配置较强的密码策略等)

  • Software and Data Integrity Failures 软件和数据完整性故障
    (如应用程序依赖于来自不可信来源、存储库和 (CDN) 的插件、库或模块。不安全的管道可能会带来未经授权的访问、恶意代码或系统泄露。

防御:使用数字签名或类似机制来验证软件或数据来源;确保库和依赖项使用受信任的资源库)

  • Security Logging and Monitoring Failures 安全日志和监控故障
    (该类别旨在帮助检测、升级和应对主动入侵。没有日志记录和监控,就无法发现漏洞。日志记录、检测、监控和主动响应不足的情况随时都会发生。

防御:确保对日志数据进行正确编码,防止对日志或监控系统进行注入或攻击;确保所有登录、访问控制和服务器端输入验证失败都能以足够的用户上下文进行记录,以识别可疑或恶意账户;制定或采用事件响应和恢复计划)

  • Server-Side Request Forgery 服务端请求伪造(SSRF)
    (当网络应用程序在未验证用户提供的 URL 的情况下获取远程资源时,就会出现 SSRF 漏洞。

防御:网络层将远程资源访问功能划分到不同的网络中,阻止除必要内网流量以外的所有流量;应用层对客户提供的所有输入数据进行过滤和验证,禁用 HTTP 重定向等)

SQL注入

1、原理?
指的是web应用程序对用户输入中的可控参数没有进行严格的过滤和验证,导致攻击者可以将自己构造的恶意sql语句拼接在可控参数中,在管理员不知情的情况下代入到数据库中解析,从而造成信息泄露,一般来说只要能够成功利用sql注入,sql语句能做什么攻击者就能做什么。


2、sql注入的分类?
分为有回显的注入和无回显的注入。
无回显的注入又称为盲注,盲注有三大类:布尔盲注、时间盲注以及报错盲注。
根据sql注入各自的特点可以分为:联合注入、二次注入、宽字节注入、堆叠注入等
根据注入点在http数据包头中的不同位置又分为cookie注入、referer注入、x-forwarded-for注入等。


3、sql盲注的原理?
盲注就是在注入过程中,获取的数据不能回显至前端页面,需要找到一个参照物来判断注入的有效性,此类型一般常出现于增删改操作时,且在实际黑盒环境中常用于解决常规联合查询注入行不通时,利用时攻击者需要通过页面的回显内容来判断注入的字符是否正确,然后逐个字符去猜测。


4、宽字节注入的原理?
向系统提交表单或查询请求时,将一些特殊的字符以另外的编码方式提交给服务器,让服务器错误的解读字符,从而使请求出现异常。
数据库使用 gbk 编码; 使用反斜杠进行转义


5、堆叠注入的原理?
即通过结束符;同时执行多条sql语句,第一次的语句没有任何攻击性;但是第二次语句注入之后,会和第一个语句产生作用从而导致sql注入


6、二次注入的原理?
即先将sql注入拼接语句想办法带入到数据库中,然后数据库在其他功能点或其他操作需要获取该数据时再带出,然后拼接到另外一条sql语句中再在数据库中执行


7、dnslog注入原理?
利用 load_file() 函数读取共享文件
共享文件形式:\\hex(user()).dnslog.cn/ 或者 \\host\
利用 mysql 的 load_file() 函数解析拼接过的 dnslog 域名,进而带出数据


8、联合注入的步骤?
找传参点
判断闭合符
判断列数
判断显示位
查询database()
查表
数据


9、SQL注入绕过方式?
大小写绕过 、编码绕过、注释绕过、关键字/关键函数替换、参数污染、缓存区溢出、特殊符号等


10、报错注入用到的函数以及原理?
函数:updatexml、floor、exp、group by、extractvalue、rand

原理:updatexml()一共有三个参数,第一个是xml内容、第二个参数是update的位置XPATH路径、第三个参数是更新后的内容;

这里报错的主要原理是利用第二个参数,当其校验输入的内容是否符合XPATH格式的时候,不符合就报错,我们将第二个参数替换为version()或者database()等等,因为不满足XPATH格式所以会输出错误,输出错误的时候将sql代码(verson()/database()等)执行了。


11、sql盲注时都用到哪些函数?
if() 、sleep() 、substr() 、left() 、limit 、ascii() 、length()


12、常用的sql注入延时函数?
SLEEP
benckmark
GET_LOCK
RLIKE


13、判断闭合符方式?
构造真和假:id=1 and 1=1 、id=1' and 1=2 、=1" or 1=1 、') or 1=2 、and 234=234 、and 1 、or 1 、and 1^1 、&&1 、||0


14、sql注入绕waf
代替空格:/**//*!*/+%09%0a%00 、括号
关键字:16进制 、char() 、字符串拼接
等价函数替换:sleep()==benchmark()if()==case when then else end
ascii()==ord()substr()==substring()
内联注释:/*! */


15、Oracle数据库注⼊绕过?
a. 空格替换:
id=1 and 1=1例,fuzz可以替换空格的常⻅字符:
%2d、%2e 、%0a、%0b、%2b、%0c、%0d、%00、%20、%09
其他字符如/*//60001//!*/+()也可以替换空格
b. 大小写替换:
对关键字进⾏⼤⼩写随机替换
c. 拼接换⾏回⻋符:
Oracle中⽤CHR(10)表示换⾏、CHR(13)表示回⻋、字符串拼接使⽤||,那么回⻋换⾏即是chr(13)||chr(10)
只要是select from XXX中的都可以拼接回⻋或换⾏,*不限于列名、字段名、正常字符串。
如:
http://192.168.150.6/oracle.php?id=-1 uNIon ALl sELEct 1,'2',(SelEct chr(1 3)||uSEr fROm test wHEre id=1) fROm dUAl --
d. 替换注⼊⽅法&结合替换:
有的时候,真的⼀直⽆法显错注⼊、报错注⼊,这种时候,不妨试试盲注,虽然盲注获取数据难,
耗费时间⻓,但是注⼊成功率却⽐显错、报错更⾼。
e. 分块传输:
编码之后发送数据包即可成功绕过。
f. 万能脏数据:
waf对于每⼀个数据包都进⾏检测,这是很耗费资源的,所以⼀般只会在固定⻓度范围内进⾏检
测,那么这⾥在语句中插⼊⼤量⽆⽤字符,便可以成功绕过。


16、sqlmap常用参数?
-r :用于post型注入,指定 txt 文件的 post 数据包
-u :指定url,通常用于 get 型注入
-p :指定注入点,例如: python sqlmap.py -u http://127.0.0.1/index.php?id=1&mid=2&page=3 -p "page"
* :指定注入点,例如:python sqlmap.py -u http://127.0.0.1/index.php?id=1*&mid=2&page=3*

注意:*号也可以用于伪静态的注入,用法同前面一样,直接在注入点后面加*
-m :用于sqlmap批量跑注入,指定一个含有多个 url 的 txt 文件
--os-shell :用户获取 shell
--os-cmd :执行系统命令
--tamper :指定绕过用的脚本文件
--level 3 :指定测试等级,等级越高,检查项越多,共 1-5 个等级
--risk 3 :指定风险等级,等级越告,payload 越复杂,共 1-3 个等级
--random-agent :指定随机 agent 头
--batch :默认选项
--dbms :指定数据库类型


17、sql注入获取 webshell 的方式/ sql注入提权
写文件(需要写权限)

写日志文件(不要写权限,但是需要通过命令开启日志记录功能,而且还需要把日志文件的路径指定到网站根路径下面)


18、sql注入如何防御?
a. waf规则过滤输入中的sql注入敏感字符,例如:information_schemainto out_fileinto dump_file'"()
b. 限制输⼊⻓度;
c. 限制好数据库权限,drop/create/truncate等权限谨慎grant;
d. 预编译,我们的攻击指令被预编译之后就不会被当成SQL语句了,然后再拼接到mysql中,或者说我们已经编译过一次了,在mysql中就不会再被编译了;
e. 站库分离:增加攻击者的时间成本、防止通过数据库拿到webshell;
f. php可以利用PDO:即PHP数据对象(PHP Data Objects,PHP的一个扩展库,用于与数据库进行交互。PDO提供了一种统一的接口,使得PHP开发者能够轻松地连接和操作各种不同类型的数据库),PDO提供了参数化查询,通过将SQL查询语句与参数分离,将参数的值作为占位符传递给数据库。这样,数据库可以将参数视为数据而不是SQL代码的一部分,从而有效地防止恶意用户通过注入SQL代码来破坏查询的安全性。


19、mysql提权方式?
mof提权
udf提权


20sql注⼊的读写应⽤条件?
my.ini中的secure_file_priv='' 值为空或NULL


21、mysql危害?
a. 数据库信息泄露
b. ⽹⻚篡改
c. ⽹站被挂⻢,传播恶意软件
d. 数据库被恶意操作
e. 服务器被植⼊后⻔
f. 破坏硬盘或者服务器等硬件设备


XSS跨站脚本攻击

1、原理(简称为跨站脚本攻击)?
浏览器解析js代码触发我们的攻击,js开发人员没有做好过滤,导致我们可以闭合标签进而插入并执行恶意JS代码


2、漏洞类型?

  • 存储型XSS:攻击者将恶意脚本存储在数据库中,当用户浏览页面时,恶意脚本会从数据库中取出并执行,从而攻击用户,会造成持久性的攻击。
  • 反射型XSS:攻击者通过URL或者表单提交等方式将恶意脚本注入到页面中,用户打开页面后,恶意脚本会被执行,从而攻击用户,没有存储在数据库里。
  • DOM型XSS:攻击者通过修改页面的DOM节点,注入恶意脚本,当用户与页面交互时,恶意脚本会被执行,从而攻击用户,由DOM文档完成解析。

3、常用的JS函数?
document.cookie() :弹出当前网址的浏览器 cookie
console.log('xss') :在控制台输出日志


4、绕过方式?
改变大小写: <SCript>
编码绕过( html 实体编码、 十进制十六进制八进制编码、 unicode 编码)、
关闭标签:利用大于号 > 关闭标签使得xss生效
双写饶过:<scr<script>ipt>
可以使用 空格 , 换行 ,tab 键或者 /**/ , /*!a*/,的形式绕过关键词的检测

/代替空格
用 反引号 代替 括号 、双引号
用 throw 代替括号
用 html 实体编码 : 代替 冒号
用 jsfuck 编码绕过大部分字符过滤

5、扫描工具?
xsstrick


6、XSS钓鱼平台?
kali工具:BEEF-能做什么

免费平台:https://xss.pt/

钓鱼语句:<img src=https://xss.pt/hook.js>

Xss平台


7、XSS漏洞的预防措施?
过滤用户输入的数据,特别是用户的HTML、JavaScript等代码,以防止注入攻击。

对用户输入的数据进行编码,例如使用HTML实体编码、URL编码等。

限制用户输入的数据长度,避免攻击者通过输入超长数据来进行攻击。

及时更新Web应用程序的安全补丁,避免已知的安全漏洞被攻击者利用。

对于需要认证的页面,需要验证用户的身份,以避免攻击者通过伪造用户身份进行攻击。

使用HTTP-only,禁止javaScript读取cookie。

XXE:外部实体注入

1、漏洞原理:
服务器对XML解析时没有禁掉外部实体的引⽤与解析,导致攻击者构造的在DTD中声明外部实体的XML⽂档可以成功传⼊服务器并被直接解析,从⽽加载外部实体资源,造成⽂件读取、信息泄露、RCE等


2、漏洞特点
传参数据是以 xml 标签的形式
响应包里的 Content-type:text/xml

3、攻击手法
利用 file 协议读取文件

利用 http 协议进行端口探测,例如:http://127.0.0.1:22

利用 php 伪协议读取文件

4、xxe盲注利⽤⽅法有哪些?
核心:加载执行远程xml文件,造成数据外发的效果

5、防御
关闭外部实体功能:libxml_disable_entity_loader(ture);

使用验证器和解析器,清除不信任的输入数据,以防止注入攻击。

文件上传

1、原理?
指的是由于程序员在对⽤户⽂件上传功能实现代码没有严格限制⽤户上传⽂件后缀以及⽂件类型或者处理缺陷,⽽导致攻击者可以越过本身权限向服务器上传⽊⻢去控制服务器。


2、危害?
操作⽊⻢⽂件提权,获取⽹站权限


3、绕过方法?
前端验证:
修改前端代码相应值、burp抓包修改或在浏览器关闭前端 JS 功能

⿊名单绕过:
a. 特殊后缀名绕过,尝试.php5.phtml等后缀名,通过修改httpd.conf文件实现解析任意后缀名
b. 上传.htacess实现解析任意后缀名
c. 上传.user.ini文件,利用包含实现getshell
d. ⼤⼩写绕过
e. 在数据包中 后⽂件缀名前加空格
f. 点绕过,windows 不允许出现点结尾的文件名,会自动去掉文件名后面的点,linux 允许出现点结尾的文件
g. 流文件绕过,windows 中,::$DATA符号后面的内容会被当成字节流数据,上传之后会自动去掉::$DATA以及后面的内容
h. 空格绕过,利用的是 windows 和 linux 不允许文件名出现包括空格在内的特殊字符,例如上传:1.php[空格]
i. 双写绕过,例如上传1.pphphp,只适用于将 php 替换为空的情况
j. 未循环验证,可以使⽤x.php..类似的⽅法

⽩名单绕过(⼀般需要配合其他漏洞⼀起利⽤):
a. %00截断
b. 图⽚⻢
c. 条件竞争


4、对文件上传内容进行绕过?
填充垃圾字符、免杀


5、防护措施?
a. 后端验证:采⽤服务端验证模式
b. 后缀验证:基于⽩名单,⿊名单过滤
c. MIME验证:基于上传⾃带类型检测
d. 内容检测:⽂件头,完整性检测
e. ⾃带函数过滤
f. WAF防护软件:宝塔、云盾等


文件包含

1、原理?
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。在包含文件的过程中,如果被包含文件能进行控制,则存在文件包含漏洞,并且包含后,访问还会执行。


2、文件包含函数有?
a. php:
include:在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行
include_once:功能和前者⼀样,区别在于当重复调⽤同⼀⽂件时,程序只调⽤⼀次
require:函数出现错误的时候,会直接报错并退出程序的执行
require_once:功能和前者⼀样,区别在于当重复调⽤同⼀⽂件时,程序只调⽤⼀次

b. java:
java.io.Filejava.io.FileReader

c. ASP.NET
System.IO.FileStreamSystem.IO.StreamReader


3、文件包含类型?
本地包含-Local File Include-LFI
很少见了,因为高版本默认关闭对应开关

远程包含-Remote File Include-RFI
php.ini中环境配置文件开关(如allow_url_includeallow_url_fopen)决定,开启
后可以直接执⾏任意代码。


3、文件包含支持的php伪协议?


4、利用条件?
即文件包含类型中远程包含需要开启相应的开关才可以利用。


5、利用方式?
a. 读取敏感⽂件
b. 远程包含shell
c. 图⽚上传并包含图⽚shenll
d. 使⽤伪协议
e. 包含⽇志⽂件GetShell
f. 截断包含


6、防御措施?
a. 禁⽌远程⽂件包含开关,即allow_url_include=off
b. 配置open_basedir=指定⽬录,限制访问区域;
c. 过滤../等特殊符号;
d. 修改Apache⽇志⽂件的存放地址;
e. 开启魔术引号magic_quotes_qpc=on
f. 尽量不要使⽤动态变量调⽤⽂件,直接写要包含的⽂件


文件下载

1、原理:
是指攻击者利用Web应用程序中的漏洞,通过某种方式下载到了应该不被公开访问的文件,这些文件可能包含敏感信息,如用户凭证、密码等,从而造成安全风险。

7、为了防止文件下载漏洞,应该采取的措施
对文件下载链接进行严格的访问控制,只有经过授权的用户才能访问;

验证用户请求中的参数,防止攻击者利用构造的请求进行攻击;

对应用程序进行安全测试,及时发现和修复漏洞。

命令/代码执行漏洞

1、命令执行漏洞的原理?
命令执行漏洞是指攻击者能够通过向应用程序或系统发送恶意输入,从而使其执行未经验证或不受信任的命令。


2、命令执行漏洞的防御措施?
输入验证:应用程序必须对所有输入数据进行严格验证,以防止攻击者提交恶意数据。
输入过滤:应用程序必须过滤掉不必要的字符和符号,以确保输入数据不包含任何恶意代码。
最小权限原则:应用程序应该以最小的权限级别运行,以减少攻击者利用漏洞获取系统权限的可能性。


3、代码执行漏洞的原理?
代码执行漏洞是指攻击者能够在Web应用程序中执行自己的恶意代码。这种漏洞可能会导致攻击者控制整个应用程序,从而窃取敏感信息、篡改数据、甚至在服务器上执行命令。


4、代码执行漏洞预防措施?
对于用户输入的数据,需要进行严格的过滤和验证,避免用户输入的数据被当做代码执行。
在服务器上,需要正确设置文件和目录的访问权限,避免攻击者利用目录遍历漏洞在服务器上执行命令。


5、命令执行的函数都有哪些?
a. PHP代码执行函数:
eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()等

b. PHP命令执行函数:
system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()等

c. python代码/命令执行:
eval exec subprocess os.system commands

eval()和exec()函数主要用于执行Python代码,而subprocess模块和os.system()函数用于执行外部命令;commands已过时

d. java代码/命令执行:
Java中没有类似php中eval函数这种直接可以将字符串转化为代码执行的函数,
但是有反射机制,并且有各种基于反射机制的表达式引擎,如: OGNL、SpEL、MVEL等。


CSRF:客户端跨站请求伪造漏洞

1、原理?
攻击者会诱使用户的网络浏览器在用户已通过身份验证的可信网站上执行不必要的操作。这是通过利用浏览器自动包含任何相关 cookie(凭证)这一事实来实现的,允许攻击者伪造并代表用户(通过浏览器)提交未经授权的请求。攻击者的网站可能包含 HTML 表单或 JavaScript 代码,旨在向目标网络应用程序发送查询,csrf允许攻击者绕过部分同源策略。


2、CSRF攻击的过程可以简单描述为?
a. 攻击者构造恶意请求,其中包含攻击目标的关键操作,例如转账、修改密码等。
b. 攻击者将恶意请求嵌入到诱骗用户点击的链接、图片等元素中。
c. 用户在登录状态下访问包含恶意请求的页面时,浏览器会自动发送请求,攻击目标就会执行,从而达到攻击者的目的。


3、危害?
a. 对⽹站管理员进⾏攻击
b. 修改受害⽹站上的⽤户账户和数据
c. 账户劫持
d. 传播CSRF蠕⾍进⾏⼤规模攻击
e. 利⽤csrf进⾏拖库
f. 利⽤其他漏洞进⾏组合拳攻击
g. 针对路由器的csrf攻击


4、如何防御?
a. 在关键操作之前,先进行多重身份验证;
b. 尽量使⽤POST,限制GET;
c. 在Web应用程序中加入随机令牌机制,防止攻击者伪造请求;
d. 使用HTTP-only,禁止javaScript读取cookie。


SSRF:服务器端请求伪造漏洞

1、原理?
一种由攻击者构造形成由服务端发起请求的一个安全漏洞;一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。


2、SSRF攻击的过程简单描述下?

  • 攻击者构造恶意请求,其中包含攻击目标的关键操作,例如读取文件、获取机密信息等。
  • 攻击者将恶意请求发送给Web应用程序,Web应用程序将恶意请求发送到内部网络中的其他服务。
  • 内部网络中的其他服务执行了恶意请求,将敏感信息或者控制权返回给攻击者。

3、危害?
a. 探测内⽹信息,⽤协议探测如ftp%26ip={ip}%26port={port}
b. 攻击内⽹或本地其他服务
c. 穿透防⽕墙


4、漏洞可能存在的功能点?举例?
a. 能够对外发起⽹络请求的地⽅
b. 请求远程服务器资源的地⽅
c. 数据库内置功能
d. 邮件系统
e. ⽂件处理
f. 在线处理⼯具

例子:

  • 社交分享功能:获取超链接的标题等内容进行显示
  • 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
  • 在线翻译:给网址翻译对应网页的内容
  • 图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
  • 图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验
  • 云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
  • 网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
  • 数据库内置功能:数据库的比如mongodb的copyDatabase函数
  • 邮件系统:比如接收邮件服务器地址
  • 编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
  • 未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法加上这些关键字去寻找SSRF漏洞

5、支持的协议?

  • http://
    Web常见访问,如http://127.0.0.1
  • file:///
    从文件系统中获取文件内容,如,file:///etc/passwd
  • dict://
    字典服务器协议,访问字典资源,如dict:///ip:6739/info:
  • sftp://
    SSH文件传输协议或安全文件传输协议
  • ldap://
    轻量级目录访问协议
  • tftp://
    简单文件传输协议
  • gopher://
    分布式文档传递服务,可使用gopherus生成payload,由于有部分协议http这类不支持,可以gopher来进行通讯(mysql,redis等)
    应用:漏洞利用 或 信息收集与相关服务通讯的时候

6、绕过方法?

  • 采用http基本身份认证的方式绕过,如:http://www.xxx.com@www.xxyy.com
    有时候根据具体情况还需要加可选特殊字符,如:
    当url中限制必须包含ctfshow字符串,可绕过如下:
    url=http://ctf.@127.0.0.1/flag.php#show
    这里的@是基于http(s)身份认证的用法,前面是用户名后面是主机名,如果用户名不存在,大多数时候会忽略掉,因此只解析后面的主机名。而后缀中,由#开头表示的是片段标识符部分(fragment,可选项),用于指定文档中的特定位置或目标,这里就巧妙地将必须包含的另一字符串show作为片段标识符部分。

或者:
url=http://ctf.@127.0.0.1/flag.php?show
这样构造主要就是把show作为传递的参数部分,前面都一样。

  • 利用ip地址特殊的省略模式绕过,如[::]127.1等绕过localhost
  • 利用dns域名解析IP绕过,如自己搭建的服务器ip指向127.0.0.1
  • 长度限制ip绕过,如:http://127.1/flag.phphttp://0/flag.php
  • 利用重定向解析绕过
  • 利用各种进制表示的ip地址绕过

7、防护措施?

  • 过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。
  • 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
  • 限制请求的端口为http常用的端口,比如80,443,8080,8090。
  • 黑名单内网ip。避免应用被用来获取获取内网数据,攻击内网。
  • 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。

未授权访问漏洞

1、原理
需要身份认证的⽹站应⽤/⽬录或是服务器组件等在未经身份认证的情况下就被成功访问,服务器可
能缺乏访问控制,⽂件权限/ACL/数据库权限错误配置,以及系统、服务或资源本身存在安全漏洞


反序列化漏洞

1、反序列化漏洞原理
序列化是指Java对象转化为二进制文件的过程,反序列化指的是这个文件再转化为Java对象的过程,本身是个正常过程,但如果被转化的这个文件是个恶意的,转化后的对象也是会是恶意的,由此可造成命令执行等等威胁。


2、反序列化漏洞修复建议
一般我们遇到的反序列化漏洞,基本都是使用了具有反序列化漏洞的组件或者类造成的,一般我们打补丁或者升级到最新版本就可以防御。


3、php的什么伪协议可以配合反序列化利用?
phar://,用于访问和操作PHAR(PHP Archive)文件(是一种将多个PHP文件打包成单个可执行文件的格式),攻击者可以利用该伪协议先构造一个恶意的PHAR文件,然后利用php反序列化漏洞指向该恶意文件,当应用程序尝试对该部分反序列化时,包含的恶意代码将被执行,从而导致RCE。


java安全补充

JWT

1、是什么?
JSON Web Token(JWT)。它遵循JSON格式,将用户信息加密到token里,服务器不保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证token,通过token验证用户身份。基于token的身份验证可以替代传统的cookie+session身份验证方法。这使得JWT成为高度分布式网站的热门选择,在这些网站中,用户需要与多个后端服务器无缝交互。


中间件漏洞

Apache

解析漏洞:多后缀名解析漏洞(从后往前解析,一直解析到可识别的后缀)、罕见后缀名解析漏洞、.htaccess解析漏洞

命令执行漏洞:CVE-2021-42013

IIS

1、 IIS中间件PUT⽂件写⼊的修复建议?
a. 把PUT⽅法禁了
b. 使⽤PUT⽅法时,对身份进⾏验证
c. 通过ACL禁⽌未授权⽤户对⽬录进⾏写⼊操作
d. 对⽂件名和内容进⾏输⼊验证
e. ⽂件上传⽬录隔离,并不要将路径反馈给客户端
f. 上传⽂件扩展名⽩名单


文件名解析漏洞,从前往后解析,遇到分号就截断,忽略分号后面的内容,例如:1.asp;.jpg

罕见后缀名,例如:.asa、.cer、.cdx

IIS 5.X/6.0的文件夹解析漏洞,例如:将文件夹以1.asp命名,该文件夹中的所有文件都会被当做asp文件执行:1.asp/1.jpg、1.asa/1.jpg、1.cer/1.jpg、1.cdx/1.jpg

IIS 7.0/IIS 7.5的CGI解析漏洞,例如上传1.jpg然后访问1.jpg/.php

IIS PUT文件上传漏洞

HTTP.sys远程代码执行漏洞:MS15-034

Nginx

CGI解析漏洞,例如上传1.jpg然后访问1.jpg/.php

Tomcat

后台部署war包、PUT文件上传漏洞、反序列化漏洞、样例目录session操控漏洞

Weblogic

1、SSRF(CVE-2014-4210)利用原理?
a. 问题出在SearchPublicRegistries.jsp下的operator参数,其参数值可以请求服务器内部资源,由此探测出内⽹ip端口6379的开放确定Redis的存在。
b. 然后这⾥也是利⽤了⼀波Redis未授权,SSRF通过Gopher协议直接操纵Redis数据库,命令就是将恶意代码写⼊计划任务,操作就是将payload进⾏url编码拼接在Redis的ip端⼝后⾯。
c. 注意这⾥需要利⽤Weblogic的特性,结合CRLF(回车换行符,在网络协议中,CRLF通常用于表示换行,即在文本中表示一行的结束)传⼊%0a%0d来注⼊换⾏符,可以使Redis服务器在执行命令时错误地将CRLF后的内容解析为命令的一部分,从而达到执行恶意代码的目的。


2、未授权访问(CVE-2020-14882)利用原理?
远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic 管理控制台。 攻击者
可以构造特殊请求的URL,即可未授权访问到管理后台⻚⾯,访问后台后是⼀个低权限的⽤ 户,⽆法安
装应⽤, 也⽆法直接执⾏任意代码。


3、未授权访问(CVE-2020-14883)利用原理?
允许后台任意⽤户通过HTTP协议执⾏任意命令。结合CVE-2020-14882组成利用链,可通过⼀个HTTP 请求在远程Weblogic 服务器上以未授权的任意⽤户身份执⾏命令。


4、存在漏洞的特定类?
com.tangosol.coherence.mvel2.sh.ShellSession

在受漏洞影响的WebLogic版本中,该类可能存在漏洞,使得攻击者可以通过构造恶意请求来执行系统命令。攻击者可以通过该漏洞获取远程命令执行权限,并在受影响的系统上执行任意命令。

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

在某些WebLogic版本中,该类存在漏洞,可被攻击者利用。通过构造特定的请求,攻击者可以加载和执行恶意的XML配置文件,从而可能导致远程代码执行或其他安全问题。


5、常见的反序列化?
a. CVE-2016-0638 Weblogic:基于t3协议引起远程代码执⾏的反序列化漏洞,漏洞实为CVE-2015-4852绕过,拜Oracle⼀直以来的⿊名单修复⽅式所赐
b. CVE-2016-3510:基于t3协议引起远程代码执⾏的反序列化漏洞
c. CVE-2017-3248:基于t3协议引起远程代码执⾏的反序列化漏洞,属于Weblogic JRMP反序列化
d. CVE-2018-2628:基于t3协议引起远程代码执⾏的反序列化漏洞,属于Weblogic JRMP反序列化
e. CVE-2018-2893:基于t3协议引起远程代码执⾏的反序列化漏洞,漏洞实为CVE-2018-2628绕过,同样拜Oracle⼀直以来的⿊名单修复⽅式所赐

T3协议是Oracle WebLogic Server中的⼀种专有协议,⽤于在客户端和服务器之间进⾏通信。

Jboss

后台部署war包、一堆反序列化

Redis

未授权访问与权限获取

1、原理?
Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公⽹上,如果在没有开启认证的情况下,可以导致任意⽤户在可以访问⽬标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利⽤Redis的相关⽅法,可以成功在Redis服务器上写⼊公钥,进⽽可以使⽤对应私钥直接登录⽬标服务器。


2、条件?
a、redis 服务以 root 账户运⾏
b、redis ⽆密码或弱密码进⾏认证
c、redis 监听在 0.0.0.0 公⽹上


3、利用方法?
a、通过Redis的INFO命令。可以查看服务器相关的参数和敏感信息,可以使用这些信息来了解服务器的配置和运行情况,进而寻找可能的漏洞和潜在的攻击路径。
b、上传SSH公钥获得SSH登录权限。
c、通过crontab反弹shell。如果能够访问Redis服务器上的crontab任务,并且其中的任务脚本存在漏洞,可以利用这个漏洞来执行恶意的shell命令,从而RCE。
d、利用redis的主从模式。如果Redis服务器配置了主从模式,并且从服务器没有正确的安全配置,可以利用这个漏洞来获取对Redis数据库的未授权访问权限。

d这里的“漏洞”具体实现方式可能如下:
如果从节点没有设置密码或具有弱密码,攻击者可以直接连接到从节点,实现访问,而无需进行身份验证;
如果从节点的网络访问控制列表(ACL)配置不正确,攻击者可以绕过访问限制,实现访问;
如果从节点的防火墙规则不正确,攻击者可以通过特定的网络请求绕过防火墙,实现访问。

Redis的slave主从模式是一种分布式架构模式,用于在Redis集群中实现数据的复制和冗余备份。在这种模式下,一个Redis节点被指定为主节点(master),而其他节点则被指定为从节点(slave)。主节点和从节点之间通过Redis的异步复制机制实现数据同步,主节点负责处理所有的客户端请求,并管理Redis的数据,当主节点接收到写操作时,它会将更新的数据同步给所有从节点;而从节点是只读的,客户端可以向从节点发送读请求,从而减轻主节点的负载,但注意不能进行写操作!


4、防护措施?
a. 设置合理的密码和访问控制策略,遵循“最小权限”原则,确保只有授权的用户能够访问Redis服务器。
b. 限制Redis服务器的网络访问,只允许授权的IP地址/IP段进行访问;或修改Redis的默认端口。
c. 安全配置好redis,关闭不必要且存在风险的开关。
d. 确保crontab中的任务脚本没有漏洞,对用户的输入进行验证和过滤,防止命令注入等攻击,可以通过waf等安全设备配置好规则加以防护。
e. 对于主从模式,强化从节点的安全配置,配置好正确的ACL,另外将Redis服务器放置在可信任的网络环境中,并限制与外部网络的连接,实现必要的网络隔离。


5、具体该如何结合SSRF实现redis权限获取的利用?
a. 首先可以尝试利用ssrf完成以下基本流程:内网服务扫描,利用获取到的banner识别服务;主要利用get请求方式就可实现的漏洞利用(如sql注入、Struts2等),以获取进一步的权限或敏感信息;利用支持文件读取的伪协议(如file://)读取一些敏感文件;在云计算环境(如AWS、Google Cloud)中,可以尝试调用内网ECS的API,进而操作内网资源。
b. 然后利用ssrf通过gopher协议操作内网的Redis,将恶意shell代码写入crontab定时任务中,为了绕过,还需要对该恶意请求进行url编码,特别是特殊字符替换成对应url编码(如\r替换成%0d%0a)。


目录遍历漏洞

目录遍历通常是由于web服务器配置错误,或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以使web根目录以外的文件),甚至执行系统命令。

组件/框架漏洞

Fastjson

1、是啥?
阿里巴巴公司开源的json解析器组件,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。


2、反序列化原理?
Fastjson提供了反序列化功能,允许用户在输入JSON串时通过@type键对应的value指定任意反序列化类名,由此造成反序列化漏洞。


3、黑盒中如何判断目标使用了Fastjson组件?
可以在提交的包中找找json格式的数据,重点看⼀下有⽆rmi或者出⽹的⼀些⾏为(在⼗六进制中可能会呈现ACED开头),主要还是弱特征,识别特征较多,有较大不确定性。


4、针对fastjson的1.2.25版本,payload应做哪些变动?
由于@type多了个⿊名单鉴定,我们传⼊的类以L开头分号结尾,如:
Lcom.sun.rowset.JdbcRowSetImpl;


5、针对fastjson的1.2.42版本,payload应做哪些变动?
@type⼜多了个⿊名单,但是变检测正数和倒数第⼆个了,所以我们payload变成LL开头,两分号 结尾,如:
LLcom.sun.rowset.JdbcRowSetImpl;;


6、黑盒中如何判断目标使用了fastjson组件?
a. 请求包是否以json格式传值并且内容@type开头
b. 通过提交特殊字符拿到错误信息看这个接⼝是不是调⽤了json
c. F12网络中请求的所有资源文件中检索代码中是否含fastjson关键字


7、fastjson这个@type在java中是啥?
@type是fastjson库中的⼀个特殊注解,⽤于在json序列化和反序列化过程中指定对象的类型信息,确保在反序列化时将JSON字符串正确地映射到相应的Java对象上。


8、无回显怎么办?
a. ⼀种是直接将命令执⾏结果写⼊到静态资源⽂件⾥,如html、js等,然后通过http访问就可以直接看到结果
b. 通过dnslog进⾏数据外带,但如果⽆法执⾏dns请求就⽆法验证了
c. 直接将命令执⾏结果回显到请求Poc的HTTP响应中


Log4j(Log4j2)

1、是啥?
Apache的一个开源项目,是一个基于Java的日志记录组件。


2、反序列化原理?
由于log4j的lookup接口的机制,Log4j在处理日志时,当遇到${时,会将表达式内容分割成前缀(prefix)和键(key),然后通过前缀找到对应的lookup对象,并调用lookup方法来解析键,最后,将解析后的键作为参数执行。

攻击者利用这个漏洞的方法是构造符合要求的表达式,以供系统执行。在正常的日志处理过程中,Log4j检测到${这两个紧邻的字符,并触发替换机制,将表达式的内容替换为解析后的值,而不是表达式本身。攻击者可以构造恶意的表达式,通过jndi接⼝引⽤(这种引用过程可能触发反序列化操作,导致反序列化漏洞)到dns/rmi/ldap等协议接⼝。其中,dns可以利用dnslog解析请求;rmi和ldap则可以⾃启⼀个服务器,通过精⼼构造的payload让⽬标服务器去请求攻击者构造的服务器,以及攻击者⾃定义的内容,攻击者的服务器就会⾃动⽣成恶意的java类,然后通过HTTP端⼝下发给⽬标服务器。⽬标服务器收到之后就直接把它加载到内存中执⾏,从而实现远程代码执行。


Shiro

1、是啥?
Java安全框架,能够用于身份验证、授权、加密和会话管理。


2、反序列化原理?
Shiro提供了RememberMe的功能,用于在用户关闭浏览器后仍能保持登录状态,下次访问时无需重新登录即可访问,这种功能通常通过在用户登录时生成一个RememberMe Cookie,并将其存储在用户浏览器中实现。Shiro对RememberMe的Cookie做了加密处理,在CookieRememberMeManaer类中将Cookie中RememberMe字段内容分别进行序列化、AES加密、Base64编码等操作,但是默认的加密AES Key是硬编码进去的,攻击者可以通过逆向工程等手段获取到这个硬编码的AES Key。攻击者可以伪造一个恶意的RememberMe Cookie,并在其中注入恶意数据,当Shiro进行反序列化操作时,恶意数据会被反序列化成Java对象,从而触发攻击者构造的RCE攻击。


3、黑盒中如何判断目标使用了shiro框架?
a. 登录界⾯的“记住我”“记住密码”等关键词
b. 勾选“记住我”功能后抓包,请求包Cookie中存在rememberMe=字段(强特征)
c. 返回rememberMe=deleteMe字段


4、 shiro550shiro721是什么?它们的区别,原理、利⽤⽅式以及修复?
参考文章
a. 是什么:均是Apache Shiro框架中的安全漏洞名。
b. 区别:550可通过爆破碰撞出默认key结合反序列化利用,而shiro721加了补丁不行,它的key一般情况下猜不到,是系统随机生成的,需要⼀个登录成功有效用户状态下的cookie才可以进一步利用。
c. 原理:shiro550(shiro <=1.2.4)中的aes key是硬编码在源码中,因此只要有任何有权访问源代码的人都能知道该默认加密密钥,因此黑盒时有几率爆破出该key,然后创建一个恶意对象,利用服务器的shiro识别身份时加解密的处理流程:序列化->aes加密->base64编码,攻击者对该对象进行同样顺序的处理,然后将其作为cookie的rememberme字段值发送给服务器,最终服务器中的shiro通过相反流程对该数据还原回对象,从而导致恶意对象被解析成功,这样就利用了反序列化(前提是目标有可利用的CC链)造成RCE;shiro721则无法爆破,但采用的是AES-128-CBC模式加密,该模式加密的rememberme字段存在问题,可结合shiro的漏洞Padding Oracle Attack,通过不断尝试不同的填充方式,逐步推断出加密秘钥,从而加密恶意攻击数据,拼接到原来有效的rememberme字段值后,从而利用反序列化攻击。

Commons Collections,是一个流行的Java库,其中包含许多可重用的数据结构和算法。由于其中的某些类存在反序列化漏洞,攻击者可以将多个CC链接成一条攻击链,构造恶意序列化数据,通过这些漏洞实现远程代码执行。

关于Padding Oracle Attack(填充提示攻击):分组密码的填充中分组带来⼀个问题,就是明⽂不可能恰好是block的整数倍,对于不能整除剩余的部分数据就涉及到填充操作。 在解密时会校验明⽂的填充是否满⾜该规则,如果是以N个0x0N结束,则意味着解密操作执⾏成功,否则解密操作失败。

d. 利用方式:使用ysoserial工具构造恶意的序列化payload,并将其中的命令指向已处于监听状态的JRMP(Java的远程调用协议,攻击者通过监听该端口来接收远程命令执行的连接)端口,然后将该payload注入在cookie的rememberme字段中,一旦发送给目标服务器,服务器解析后将连接到攻击者的JRMP服务器,然后ysoserial自动通过CC链中的内容从而将反弹shell的命令发送给目标服务器,从而实现getshell。
e. 修复:升级到Shiro 1.6.0或更高版本


5、 shiro的key爆破成功有什么特征?
响应包中不会出现rememberme=deleteme(实际上就是非登录失败的特征)


struts2

1、是啥?


2、攻击特征?
a. RCE试图传⼊的命令以及执⾏结果
b. 参数伪造,试图传⼊OGNL表达式


3、struts2漏洞常见特征?
a. .do.action后缀常会出现,.jsp也可能

然而,需要注意的是,Spring Web框架也可以使用相同的后缀来定义相关接口。因此,仅凭后缀无法明确判断是否存在Struts2漏洞。

b. 通过在相关接口追加actionErrors参数触发报错

为了验证是否存在Struts2漏洞,可以在相关接口的URL中追加actionErrors参数,并发送请求。如果应用程序是基于Struts2的,它会触发错误并返回相关报错信息。而对于Spring框架,类似user.do/user.do的访问结果应该是相同的,不会触发报错。

c. 能够成功解析OGNL表达式

黑盒下,在各个可能注入点注入包含OGNL语法的恶意输入,观察应用程序的响应和行为;用漏扫或攻击框架尝试利用已知的与OGNL相关漏洞。

d. Struts2-045漏洞可通过Content-Type进行利用

Struts2-045是指Struts2框架中的一个漏洞,可用于实现远程命令执行。该漏洞的利用方式涉及检查HTTP请求中的Content-Type头信息。通过特殊的Content-Type,攻击者可以构造恶意请求,从而实现命令执行。


ThinkPHP

1、存在过哪些漏洞?
a. ⽂件包含
b. SQL注⼊
c. RCE
d. 敏感信息泄露
e. ⽂件上传


网络问题

1、HTTP头部的server字段的值一般有哪些信息?
⼀般包括服务器软件的相关信息——服务器名称+版本号
包括可能出现中间件和操作系统的版本
这项字段⼀般隐藏,否则不安全


2、tcp三次握手?


3、xff头的用处?


4、常见状态码以及代表的含义


5、正反向代理的区别?
正向代理一般由客户端搭建,帮助客户端访问远程不可直接访问到的资源,比如挂梯子
而反向代理由服务器搭建,⽐如nginx,是在服务器和客户端之间,客户端⽆察觉,访问服务器时其实请求包的流向先是⾛向反代然后再转发给服务器的,反代一般用于帮助服务器做负载均衡与安全防护。


设备问题

通用

1、waf的功能和⼀般原理?
功能:
a. 监控和过滤传⼊流量
b. WAF使⽤预定义的规则集以及正则匹配来判断流量
c. 拦截恶意流量
d. ⾼级WAF能够进⾏⾏为分析,检测异常活动,如⽤户请求频率、请求头、UA等
e. ⼀些现代的 WAF 具有学习功能,能够⾃适应地调整其规则以适应新的攻击模式。
f. WAF 通常会记录所有传⼊流量的活动,并⽣成报告

WAF 的⼀般原理是通过监视、分析和过滤传⼊的⽹络流量,以识别和阻⽌各种类型的⽹络攻击,从⽽保护 Web 应⽤程序的安全性。


2、常⻅的安全设备?

  • 防⽕墙 utm 负载均衡设备
  • IPS IDS(HIDS基于主机型⼊侵检测系统)
  • 堡垒机
  • 蜜罐
  • ⽹闸
  • waf
  • 扫描器
  • soc(ossim开源安全信息管理系统)

天眼

1、在天眼设备中,各个字段的含义?(sip和dip?sport和dport?)
sip为源ip,dip为目的ip;sport为源端口,dport为目的端口。


2、天眼分析平台中DNS协议中的dns type字段含义是什么?
DNS请求类型;0表示DNS请求、1表示DNS响应。


3、dns_type中addr代表什么?
表示该host对应的IP地址信息;可能会有多个记录。


4、天眼可以捕捉到cmd命令嘛?
可以捕捉到远程执行的,比如攻击者远控你内网机器,执行cmd并返回结果。


5、天眼告警可以显示的结果,除了成功和失败还有什么嘛?
成功、失败、尝试、未知
未知:一般是告警生成错误了,可以忽略。
尝试:是可能成功也可能失败, 需要全部分析。


6、内网横向有哪些告警类型?
cs相关告警、隧道类告警、内网段的漏洞扫描、暴力破解。
内网主机对内部其他主机的攻击行为,使得该主机可能被黑客控制沦为跳板机,企图控制更多的内网其他主机


7、使用天眼,如何判断资产是否失陷?
受害资产不断外联恶意地址,并且有shell连接或者隧道类的告警。


8、出现受害ip为源的时候是什么情况?
可能是当网络攻击者使用了IP欺骗或伪造技术。


9、在天眼分析中,威胁告警检索字段中 attack sip 字段表示的含义是什么?
表示攻击者的IP。


10、在天眼分析平台中,proto字段表示的含义是? 举两个邮件应用协议的例子
proto字段表示协议,
邮件应用协议有:
SMTP 协议 (简单邮件传送协议)、MIME 协议、POP3 协议、IMAP 协议


11、在天眼分析平台中,IOC代表什么含义、反映了什么?
表示匹配成功的威胁情报。
IOC反映了主机或网络失陷特征信息,包括入侵工具、恶意软件和攻击者的属性。


12、天眼中如何搜索一个日志里指定的端口?怎样把两个端口连接在一起查询?
搜索一个日志的指定端口:sport eq 80。
把两个端口连接在一起查询:sport eq 80 or sport eq 443。


13、一个告警的目的ip是114.114.114,端口是53,这样的告警,我应该对他的ip和端口进行封禁吗?
不能对其ip和端口进行封禁,该目的ip很明显为dns服务器转发的地址和端口,需要进一步确认真实受害资产的ip信息


14、在天眼分析平台中,如何搜索源IP为A,目的IP为B的网络日志?运算符(AND)是大写还是小写?
搜索源IP为A,目的IP为B的网络日志为ip(A) AND dip(B)。
运算符需要大写。


15、在天眼分析平台中,运算符都有哪些?
天眼运算平台里,运算符包括:AND、OR、NOT。


16、天眼分析平台中,发件人的字段是什么?
天眼分析平台中,发件人的字段是from。


17、天眼分析平台模糊搜索,应该怎么写查询语句?
模糊搜索应该直接在日志检索模块去搜索你要输入的关键字,并且使用*加部分名称进行检索。


18、GEO字段代表什么?
GEO字段代表ip对应的地理位置。


19、不出网的主机通过哪种代理方式建立连接?
不出网的主机通过正向代理建立连接。


20、天眼里的小工具用过吗?
用过,可以做一些常见编码的解码等,比如base64解码、url解码


21、天眼告警主机外联的排查思路?
主机外联主要判断主机请求的外网地址是否是恶意,或者是dnslog相关平台域名,若地址在威胁情报查询是恶意或请求dnslog相关域名次数较多,可判断主机异常。


23、天眼中成功利用的告警如何处理?
根据告警类型,分析回显特征是否利用成功。若数据包无法判断,可以复现漏洞判断。判断告警如果确实利用成功,立刻通报到研判组或客户。


24、告警成功怎么处理?
首先验证一下是否是成功有效的,如果是有效的就写下问题的详情,然后同步给研判组或者客户。
失败的话,我们再判断攻击者是手动进行攻击还是使用工具进行攻击;
使用分析平台进一步分析,查看攻击IP是否存在其他攻击行为,记录攻击结果,将发现时间及攻击行为反馈给护网客户。


25、客户端部署的WAF和天眼,流量先过WAF再进天眼,这种情况下天眼告警中源ip却是WAF的ip,这是为什么?
因为部署的防御措施太多了,WAF⽤来检测和过滤WEB请求,⽽天眼进⾏态势感知,实时监控分析⽹络流量,WAF作为第⼀道防线拦截和过滤恶意流量,然后将检测后的再扔给天眼进⼀步分析,那么天眼此时看到WAF的ip表明这些流量是被WAF处理过的。


26、使⽤天眼如何查看⽇志?
登录后有⽇志查看功能,选择⽇志源,还可以过滤⽇志数据,⽇志详情⾥包括时间戳、⽇志级别、来源IP、事件类型、详细描述等信息


椒图

1、在椒图平台日志分析中result字段表示的含义是?
拦截结果;0表示已拦截,1表示未拦截。


2、在椒图平台中如何配置针对服务器非白名单账号和登录IP的监控?
通过威胁检测—异常登录—违规登录—登录规则设置,添加白名单账户和IP。


3、在椒图平台下发web类安全策略需要使用哪个功能?
安全防护—功能设置


4、在椒图平台日志分析中P字段是攻击者IP还是受害者IP呢?
攻击者IP


5、告警分析中,payload大概在什么位置?
通常在请求包中的请求头url中,post数据包也可能存在。


6、什么告警不难很快分析出来?
部分sql注入因为无明显回显,所以不能很快的分析出来。


7、分析中心有什么日志?
告警日志、原始日志、终端日志。


8、Referer字段是什么?
Referer是HTTP请i求header中的一部分,当浏览器向web服务器发送请求时,头信息里包含Referer字段。


9、如何确定web攻击是真实攻击还是误报攻击,从多角度回答,举例说明?
真实攻击查看请求报文和响应报文。比如:sql注入,特殊字符,比如and、or、union、select,再查看响应码为200,且出现success等字样。


10、护网期间,如果客户的流量特别大,面对很多条告警应该去首先关注筛选哪些的告警?
遇着这种情况一方面优先分析成功告警的,再分析成功之外的其他高危告警,如webshell、命令执行、shell连接等。最后分析剩余告警, 同时对于攻击频率较高的攻击ip及时上报封禁,可有效减少告警量。


11、哪个模块看告警的全部信息?
威胁感知模块


12、msf用过吗,设备上怎么分析的?
可能会存在执行系统命令的相关告警或shell告警


13、攻击者利用永恒之蓝漏洞攻击之后的日志特征是什么?
安全日志中,存在4624登录成功日志,登录类型为3


14、永恒之蓝漏洞查看日志的特征?
利用端口为445,且存在很多系统命令执行的流量,且该资产存在被端口扫描的告警


15、eval函数在木马中的作用?
eval()函数把字符串按照PHP代码来执行


16、如何确定web攻击是真实攻击还是误报攻击,从多角度回答,举例说明?
真实攻击查看请求报文和响应报文。比如:sql注入,特殊字符,比如and、or和id' 以及union select。再查看状态码为200,且出现success等字样

查看防火墙、邮件网关以及安全产品告警


常用的webshell管理工具的流量特征

菜刀流量特征

它的流量特征较为明显,国内主流防病毒软件/终端安全类软件都将中国菜刀视为黑客类工具进而加入病毒特征库隔离,因此大多都会报毒。

  1. payload中含eval/assert
  2. payload含(base64_decode($_POST[z0])),作用是将攻击payload进行Base64解码,因为菜刀默认是使用Base64编码,以避免被检测;
  3. payload有默认的固定开头&z0=QGluaV9zZXQ,该部分是传递攻击payload,此参数z0对应$_POST[z0]接收到的数据,base64解码后可以看到对应代码

注:

  • 有少数时候eval方法会被assert方法替代;
  • POST也会被_GET$_REQUEST替代;
  • z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名;
  • 菜刀流量是base64加密,并且解码出来,里面有z0z1z2参数

蚁剑流量特征

很多源码来自菜刀,所以链接流量特征与中国菜刀很相似,但是蚁剑的扩充性很好可以对进行加密,混淆等绕过处理。蚁剑默认支持 ASP以及PHP的Webshell链接,还可以通过插件来扩展其功能。

  1. 抓包看每个请求体都是@ini_set(“display_errors”,“0”);@set_time_limit(0)开头,这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,但是有的客户端会将这段编码或者加密,而蚁剑是明文,所以较好发现;
  2. 蚁剑的payload中也含eval/assert,带有base64编码解码的字符特征;
  3. 由于蚁剑中包含了很多加密、绕过插件,所以导致很多流量被加密后无法识别,但是蚁剑混淆加密后还有一个比较明显的特征,即参数名大多以_0x…=”这种形式(下划线可替换为其他),后面为加密数据的数据包

冰蝎流量特征

冰蝎是一款动态二进制加密 Web 远程管理客户端,以进行动态流量加密,且加密密钥是由使用者来设定,但是该拦截器对 webshell 的需求比较高,无法连接一句话木马。

a. 冰蝎2.0:
AES+base64,动态获取密钥,UA头频繁切换
b. 冰蝎3.0:
AES+base64,固定密钥,请求时UA头频繁切换
Content-Type=application/octet-stream
webshell都有e45e329feb5d925b⼀串密钥
c. 冰蝎4.0:
UA头频繁切换
弱特征如Accept、Content-Type;
连接的端⼝有特征,⼤端⼝49700左右;
使⽤⻓连接Connection:Keep-Alive
有固定的响应头和请求头,请求字节头dFAXQV1LORcHRQtLRlwMAhwFTAg/M
响应字节头:TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd
默认时,冰蝎 webshell都有e45e329feb5d925b⼀串密钥

冰蝎3.0和4.0的区别

a. 4.0加密算法更⽜逼
b. 4.0流量混淆和伪装
c. 4.0更多的命令控制和功能,⽐3.0特征更多
d. 通信频率和模式不同,⼼跳包不同
e. 数据传输的隐蔽性
f. 4.0连接端⼝是⼤端⼝

哥斯拉流量特征

和冰蝎类似,哥斯拉为加密的通讯流量,因此通过流量进行检测会有很大的难度,由于 WAF 等流量检测型安全设备无法对加密的流量进行解密,因此只能采用一些比较宽泛的匹配规则进行检测。如哥斯拉客户端使用JAVA 语言编写,在默认的情况下,如果不修改 UserAgent,User-Agent 会包含Java 版本信息。

  1. jsp会出现xc、pass字符和Java反射(ClassLoadergetClass().getClassLoader() )base64加解码等特征;
  2. UA和Accept字段弱特征,攻击者可去除或修改;
  3. Cookie最后有个分号;
  4. 响应体数据特征,把⼀个32位的md5字符串按照⼀半拆分,分别放在base64编码的数据前后,即md5前16位+base64+md5后16位

c2框架流量特征

CobaltStrike

1、shellcode特征?

  • RWX(可读可写可执⾏)权限的内存空间
  • 异或密钥固定,版本3.x 是 0x69,4.x 是 0x2e
  • 命名管道名称字符串,如:
    \\\\.\\pipe\\MSSE-1676-server
    %c%c%c%c%c%c%c%cMSSE-%d-sever

内网渗透相关

1、内⽹渗透的基本流程?
拿到跳板后,先探测⼀波内⽹存活主机,⽤net user /domain命令查看跳板机是否在域内,探测存活主机、提权、提取hash、进⾏横向移动,定位dc位置,查看是否有能直接提权域管的漏洞,拿到dc控制权后进⾏提权,然后制作⻩⾦票据做好维权,清理⼀路过来的⽇志擦擦脚印。


2、常见内网提权漏洞?
a. MS14-068、内核提权
b. 打印机提权
c. 委派提权
d. 系统错配提权
e. 计划任务
f. ⼟⾖
g. linux提权
h. 数据库提权:udf、mof、mssql


3、linux的常见提权⽅式?
a. 利⽤内核栈溢出提权
b. 明⽂ root 密码提权
c. 密码复⽤
d. sudo 滥⽤
e. NFS
f. suid
g. 计划任务


4、⽩银票据与⻩⾦票据的原理?
黄金票据:
在 Kerberos 认证中,Client 通过 AS(Authentication Service,身份认证服务)认证后,AS 会给 Client⼀个Logon Session Key(登录会话密钥) 和 TGT(Ticket Granting Ticket,票据授予票据),⽽ Logon Session Key 并不会保存在 KDC(Key Distribution Center,密钥分发中心)中,krbtgt(Kerberos Ticket Granting Ticket)的NTLM Hash ⼜是固定的,所以只要得到 krbtgt 的 NTLM Hash,就可以伪造TGT 和Logon Session Key 来进⼊下⼀步Client 与 TGS 的交互。⽽已有了⾦票后,就跳过AS 验证,不⽤验证账户和密码,所以也不担⼼域管密码修改。

白银票据:
如果说⻩⾦票据是伪造的 TGT,那么⽩银票据就是伪造的 ST(Service Ticket,服务票据)。在 Kerberos 认证的第三步,Client 带着 ST 和Authenticator3(发送给服务器的一种验证器,包含了客户端的身份信息和时间戳,并使用Session Key进行加密。服务器通过解密Authenticator3并验证身份信息,确保请求的合法性)向 Server 上的某个服务进⾏请求,Server 接收到 Client 的请求之后,通过⾃⼰的 Master Key 解密 ST,从⽽获得Session Key。通过 Session Key 解密 Authenticator3,进⽽验证对⽅的身份,验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server ⽤户的Hash 就可以伪造出⼀个 ST,且不会经过 KDC,但是伪造的银票只对部分服务起作⽤

⾦票和银票的区别:
a. 获取的权限不同
b. 认证流程不同
c. 加密⽅式不同


5、⻩⾦票据的条件要求?
a. 域名称 (可以通过AD PowerShell模块的命令(Get-ADDomain).DNSRoot来获取)
b. 域的SID值 (可以通过使用AD PowerShell模块的命令(Get-ADDomain).DomainSID.Value来获取,注意这里要去掉SID值的最后一部分)
c. ⽬标服务器的 FQDN (完全限定域名)
d. 可利⽤的服务 (以便在生成黄金票据后可以访问这些服务)
e. krbtgt NTLM Hash
f. 需要指定伪造的⽤户名 (这通常是具有特权的用户或域管理员。⼀旦攻击者拥有管理员访问域控制器的权限,就可以使⽤Mimikatz来提取krbtgt帐户密码哈希值)


6、针对Kerberos的攻击有哪些?
a. ⽤户名爆破
b. 密码喷洒和密码爆破
c. Kerberoasting
d. ASRepRoasting
e. ⻩⾦票据和⽩银票据
f. MS14-068
g. ⾮约束委派、约束委派、基于资源的约束委派
h. 票据传递(ptt/ptk/ptc)
i. mimikatz加密降级攻击(万能钥匙)
j. 使⽤恶意的kerberos证书做权限维持


7、内网隐藏痕迹的方式?
a. 跳板(隐藏真实身份和位置,使得攻击的来源看起来像是跳板服务器,而不是攻击者自己,增加攻击追踪的难度)
b. 代理服务器(中转和隐藏真实的网络请求,从而隐藏真实IP地址和具体位置)
c. Tor(匿名网络,通过多层加密和多个中间节点的转发,隐藏了真实IP地址和网络活动)
d. ⽇志(可以尝试删除或篡改系统日志,以隐藏入侵和活动的痕迹。通过清除或修改关键日志记录,可以减少被检测和追踪的风险。这需要对受感染系统的管理员权限)
e. 清除历史记录
f. 粉碎⽂件(使用某些特殊算法和技术的文件粉碎工具,彻底删除攻击所涉及的文件,使文件无法恢复。)


渗透测试相关

1、渗透测试流程?
a. 项⽬前期准备⼯作
b. 信息收集:whois、⽹站源IP、旁站、C段⽹站、服务器系统版本、容器版本、程序版本、数据库类
型、⼆级域名、防⽕墙、维护者信息
c. 漏洞扫描:Nessus, AWVS
d. ⼿动挖掘
e. 验证漏洞
f. 修复建议
g. (如果有)基线检查/复验漏洞
h. 输出报告


2、拿到webshell不出⽹情况下怎么办?
即拿到 Webshell 后,在没有互联网连接的情况下执行进一步的操作,这种情况下可以采用侧信道探测活动的方式。

侧信道是指通过非正常的通信渠道传输信息,通常用于在限制或监测严格的网络环境中进行数据传输。在这种情况下,您可以使用内部网络协议(如DNS或ICMP)或其他通信通道来传输数据,而不必依赖外部互联网连接。
探测活动是指在内部网络中发现和识别其他系统、服务或漏洞的过程。通过使用内部网络协议(如DNS或ICMP),您可以发送特定的数据包或请求,以便与其他系统进行通信并获取有关网络拓扑、主机配置或其他相关信息。

具体实现方法:

  • 利用注册表来存储 Webshell,并通过注册表执行某种连接操作。这样可以绕过传统的网络监测和防火墙,与远程目标建立正向连接。
  • 探测网络协议。例如通过 DNS 协议或 ICMP 协议发送特定的数据包,以便与其他系统进行通信或进行侧信道传输。

3、常见的端口与相对应的漏洞?
a. web类:

b. 数据库类(扫描弱口令):

c. 特殊服务类(未授权/命令执⾏等漏洞):

d. 常⽤端⼝类(扫描弱⼝令/端⼝爆破):


信息打点

1、如何绕过CDN查真实IP?

  • 多地ping看是否有cdn
  • 邮件订阅或者rss订阅
  • ⼆级域名可能不会做cdn
  • nslookup http://xxx.com 国外dns
  • 查找域名历史解析记录,因为域名在上CDN之前⽤的IP,很有可能就是CDN的真实源IP地址
  • phpinfo上显示的信息
  • cloudflare github可以获取真实IP
  • ⼀个⽹站有icon 可以根据icon hash 来查找真实IP
  • ⼦域名绑定 测试⼦域可能回源

漏洞利用思路

1、登录页面可能存在的漏洞?

  • 注⼊点以及万能密码
  • 敏感信息泄露
  • 验证码绕过
  • ⽆限注册帐号
  • 任意密码重置
  • 明⽂传输
  • 越权漏洞
    2024-05-22-09-30-41

应急响应与研判

1、应急响应的基本流程?

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

2、⽹站被挂马如何应急?

  • 取证。
    登录服务器,备份,检查服务器敏感⽬录,查毒(搜索后⻔⽂件-注意⽂件的时间、⽤户、后缀等属性),调取⽇志(系统,中间件⽇志,WAF⽇志等);
  • 处理。
    恢复备份(快照回滚最近⼀次),确定⼊侵⽅法(漏洞检测并进⾏修复)
  • 溯源。
    查⼊侵IP,确定⼊侵⼿法(⽹路攻击事件)等
  • 记录。
    归档-预防-事件检测-抑制-根除-恢复-跟踪-记录通⽤漏洞的应对等其他安全应急事件

3、Windows中毒了如何应急?
a. 检查系统账号安全

  • 查看服务器是否有弱⼝令、可疑账号、隐藏账号、克隆账号,远程管理端⼝是否对公⽹开放。
  • Win+R 打开运⾏,输⼊eventvwr.msc打开操作系统⽇志,查看管理员登录时间、⽤户名是否存在异常

b. 检查异常端⼝、进程

  • 使⽤netstat -ano检查端⼝连接情况,是否有远程连接、可疑连接(主要定位 ESTABLISHED状态)。
  • 根据netstat定位出的 pid,再通过tasklist命令进⾏进程定位:tasklist | findstr "PID"
  • 也可以使⽤D 盾_web 查杀⼯具⽕绒剑XueTr 等⼯具进⾏判断可疑进程(如蓝⾊、红⾊进程、没有签名验证信息的进程、没有描述信息的进程、进程的属主、进程的路径是否合法、 CPU 或内存资源占⽤⻓时间过⾼的进程)

c. 检查启动项、计划任务、服务

  • 检查服务器是否有异常的启动项,如:Win+R 打开运⾏,输⼊ msconfig看⼀下启动项是否存在可疑启动,注册表run键值是否存在可疑启⽤⽂件,组策略运⾏gpedit.msc 查看脚本启动是否存在启⽤⽂件等
  • 检查计划任务,如单击【开始】>【设置】>【控制⾯板】>【任务计划】,查看计划任务属性,便可以发现⽊⻢⽂件的路径
  • 检查服务⾃启动,如Win+R 打开运⾏,输⼊services.msc,注意服务状态和启动类型,检查是否有异常服务。

d. 检查系统相关信息

  • 查看系统版本以及补丁信息
    检查⽅法:Win+R 打开运⾏,输⼊ systeminfo,查看系统信息是否打了补丁
  • 查找可疑⽬录及⽂件
    检查⽅法:
  1. 查看⽤户⽬录,新建账号会在下面的⽬录⽣成⼀个⽤户⽬录,查看是否有新建⽤户⽬录。
    Window 2003 -> C:\Documents and Settings
    Window 2008R2 -> C:\Users\
  2. Win+R 打开运⾏,输⼊%UserProfile%\Recent,分析最近打开分析可疑⽂件。
  3. 在服务器各个⽬录,可根据⽂件夹内⽂件列表时间进⾏排序,查找可疑⽂件。

e. ⾃动化查杀
360卡巴斯基等病毒查杀系统病毒⽊⻢,Web 可以⽤D 盾河⻢⼯具查杀 Webshell 后⻔

f. ⽇志分析
360 星图⽇志分析⼯具进⾏分析攻击痕迹或⼿⼯结合EmEditor进⾏⽇志分析


4、研判思路?

  • 导出最近七天的日志。
    日志条件:源地址,目的地址,事件名称,时间,规则ID,发生次数等
  • 根据动作、地址、事件名称、时间等信息进行研判
  • 分析攻击结果、攻击范围、攻击深度
    攻击告警真实性研判 攻击事件调查 失陷范围排查 攻击过程还原 防守方成果报告整理 攻击清除处置建议

5、windows⼊侵排查思路?

  • 检查系统账号安全
  • 历史命令
  • 检查异常端⼝、进程
  • 检查启动项、计划任务、服务
  • ⽇志分析
    a. ⽇志中搜索关键字:如:union,select等
    b.分析状态码:
1xx information
200 successful
300 redirection
4xx client error
5xx server error
  • 查找可疑⽂件

6、Linux⼊侵排查思路?

  • 账号安全
  • 历史命令
  • 检查异常端⼝
  • 检查异常进程
  • 检查开机启动项
  • 检查定时任务
  • 检查服务
  • 检查异常⽂件
  • 检查系统⽇志

7、linux应重点关注哪些目录是否存在恶意脚本?
/etc/passwd 用户信息文件
/etc/shadow 存储 Liunx 系统中的用户的密码信息
.bash_history 普通用户历史记录
/etc/rc.local 开机启动项配置文件
/etc/rc.d/rc[0~6]
/var/log/ 日志默认存放位置


8、linux如何进一步定位到恶意执行脚本?
首先关注重点目录后,判断出存在恶意脚本,然后根据进程看进程号,再由进程号定位到路径,找到脚本


9、linux如何排查计划任务?
首先用crontab -l命令查看计划任务


10、挖矿病毒如何应急响应?

通常来说,当我们的服务器或PC资源(CPU)使用率接近或超过100%,并持续高居不下导致服务器或PC操作延缓,我们就可以判定被挖矿,一般挖矿的攻击者是不会去找一些复杂的入侵手段的,目前市面上比较多的挖矿都是未授权访问和RCE漏洞。在整个处理挖矿的应急响应过程中,我们应该严格执行做好记录与备份工作。包括对分析过程中的命令、分析的文件都做好记录与备份。

  1. 确认告警是否属于挖矿
    通常我们都是通过告警的形式得知服务器或PC被挖矿。这个时候我们首先需要判断告警是否属于误报,如果不是误报那么需要确认告警是否真的属于恶意挖矿,如果不属于需要丢到其它的应急响应流程中,如果属于挖矿就需要进行后续的处理。
  • windows确认挖矿常用方法:
    a.通过资源管理器找到占用CPU资源较高的服务或进程,获取其PID信息;
    b.利用获取的PID信息在任务管理器中的详细信息一栏中找到对应的程序,右键打开文件位置,获取异常文件目录;
    进入到异常文件目录中,对文件进行分析,确认是否属于挖矿程序,可以使用使⽤wmic分析进程参数:
# 获取所有进程详情并将结果输出到tmp.txt文件
wmic process get caption,commandline /value >> tmp.txt

# 获取单一进程详情
wmic process where caption=”svchost.exe” get caption,commandline /value

# 获取子进程的父进程信息
wmic process where Name="svchost.exe" get ParentProcessID

还可以使用第三方工具分析:
Process Monitor:无需安装
Process Hacker:无需安装
火绒剑:需安装,界面展示更友好

c. 查看启动项,查看不明来历的⾃启脚本
d. 扫描恶意软件
e. 检查⽹络连接,有没有⼤量流量被送到挖矿池或不明IP
f. 审查⽇志,找异常活动/错误信息
g. 检查防⽕墙规则(有没有被篡改)
h. 查找挖矿程序

  • linux确认挖矿常用方法:
    a. 使用top命令查看系统性能,找出消耗资源较高的进程PID;
    b. 根据获取的PID信息利用ps -ef -p PID命令找出系统进程详细信息;
    c. 根据进程详细信息定位到文件位置,进入文件位置进行文件分析,确认是否属于挖矿程序。
  1. 确认挖矿后的清理工作

先分析再删除,更多是为了不破坏被攻击的环境方便溯源;但是如果我们在整个过程中做好完整的备份与记录,先删除再分析也OK。

  • windows清理挖矿常用方法
    先对挖矿程序进行备份。然后先关闭对应的服务与进程,再删除对应的定时任务,最后删除对应的文件。在删除文件之后,反向再查询一遍定时任务、进程与服务,最好是在间隔一定时间段后再复查一次。
  • linux清理挖矿常用方法
    确认挖矿以后,也同样需要备份挖矿程序,再执行响应的操作:
    停止服务:systemctl stop *.service
    杀掉进程:kill 9 PID,很多时候不光杀掉一个进程;
    删除文件:rm -fr abnormal_file,删除文件时可以使用find / -name abnormal_file查找出系统中所有的恶意文件;
    清理定时任务:crontab -e
    与Windows相同的是在删除完成后我们需要反向操作一次与间隔一定时间后再复查一次是否清理干净。

11、告警中发现源是DNS设备,告警类型是⽊⻢病毒,这是因为什么,⽤不⽤关注?
a. 可能是DNS设备遭受了⽊⻢感染
b. 可能DNS设备被攻击者利⽤(可能DNS劫持)
c. 误报
d. 这个还是需要关注⼀下的,除了误报来说,DNS设备受攻击的可能性存在的,需要检查⼀下
DNS设备的⽇志和流量数据,确保安全


12、命令执⾏设备告警,怎样排除是误报?
a. 看命令具体执⾏情况
b. 审查⽇志有没有异常⾏为和异常命令执⾏记录
c. 确认payload的来源,如果是外⾯未知来源,并且可能绕过了检测,那就是了(被防⽕墙waf啥的阻⽌了的就不是了)
d. 看具体的系统,漏洞利⽤的可能性,它的脆弱性,不是0day的话,全⽹搜索确实存在就可能是
真的,如果脆弱性很低,那是误报的概率就⼤


13、安全设备出现误报怎么办?
可以对事件进⾏分析如果确认不构成实际危害(通常体现在部分web低危攻击事件)考虑对事件进⾏加⽩(白名单),如不能加⽩(通常体现在内⽹僵⼫⽹络、⽊⻢事件、蠕⾍等等)需要对安全事件进⾏更细致的分析,定位问题发⽣点。


14、负载均衡的告警如何判断ip?
a. 如果攻击 IP 是负载均衡器的地址,可以尝试查看负载均衡器的⽇志,以确定哪个后端服务器处理了
请求。
b. 还可以检查⽹络设备的⽇志,如防⽕墙或路由器,它们可能记录了原始的源 IP 地址。
c. 利用Wireshark等工具进行⽹络流量分析


15、为什么蓝队要使用蜜罐?
a. 识别攻击者的攻击⽅式
b. 收集威胁情报,包括攻击源IP、攻击载荷、攻击⽬标等
c. 减少⻛险损失,不会对真实业务产⽣影响
d. 欺骗和迷惑攻击者,耗费其精⼒
e. 捕捉0day


16、EDR有⼤量的内⽹扫描告警,防守怎么应急?
a. 对发起攻击的内⽹主机进⾏检查,看是通过dmz打进来的还是钓进来的,排查攻击者打的隧
道,内⽹横向的痕迹
b. ⽹络流量监控,看看是否存在异常的通信模式
c. 看IDS和IPS的告警、⽇志
d. 漏扫⼀波
e. 检查防⽕墙和安全软件的⽇志,看有没有阻⽌过的恶意⾏为记录
f. 应急:隔离攻击的主机,清除恶意软件,打补丁,恢复数据和系统,调查和溯源,通报沟通

DMZ是Demilitarized Zone(非军事区)的缩写,它是指位于企业网络与外部网络之间的一个中间网络区域。DMZ区域通常用于放置公共服务器、Web应用程序、邮件服务器等需要对外提供服务的系统。上述中意味着攻击者可能通过DMZ区域中的某个公共服务器或Web应用程序发起内网扫描。


17、域控被打穿如何排查?
a. 加固krbtgt hash、钻⽯蓝宝⽯
b. acl策略改写
c. 排查是否存在域控伪造
d. ssp注⼊
e. ⾼权限域⽤户--dcsync
f. 看约束性委派、⾮约束性委派、基于资源的约束性委派


18、web是192.168.1.2的机⼦,经研判192.168.3.4被上线CS,如何应急?
a. ⾸先就是看他跟3.4通不通,如果本身就是通的他直接能打
b. 如果不通,就检查多⽹卡主机,攻击者可能跳板打隧道过去的


19、外连怎么判断?
a. 设备⼤量告警
b. 提取外连ip,上微步查


20、sql注⼊成功了的特征?
a. 数据包的异常查询语句
b. 错误信息返回
c. 异常响应时间
d. 数据库错误⽇志
e. 系统⾏为异常
f. 异常的数据交互


21、⽂件上传成功了的特征?
a. 上传的后缀、类型,是服务器不允许的
b. ⽂件名异常
c. 看⽇志、有没有频繁上传、异常⽂件名称
d. 上传后的⽂件可访问,可解析
e. 上传⽂件⼤⼩超限
f. 上传⽂件在服务器的存储位置不正确
g. 应⽤程序异常


22、服务器被上传了webshell怎么排查/10w字代码被写⼊了webshell怎么排查?

  • webshell:
    ⅰ. 审查服务器⽂件系统,看有没有奇怪的⽂件,后缀
    ⅱ. 检查⼀波⽇志,看看有敏感⽂件名的http请求
    ⅲ. 发现可疑⽂件就检查⼀波内容
    ⅳ. 检查服务器进程/端⼝,可能已经被连了,那就会产⽣进程/占⽤端⼝
    ⅴ. 已经被连了的话还可以看⼀波管理⼯具的特征
  • 10w字:
    ⅰ. ⾸先肯定判断webshell的存在,搜索这个创建后⻔的代码,eval什么的,或者是调⽤系统命
    令的地⽅
    ⅱ. 然后确认这个webshell的来源,是写进⽇志要被包含呢,还是通过正常上传但被做了点免
    杀,这就⼜要看⼀些设备拦截记录
    ⅲ. 看⽂件变更记录,创建时间、修改时间
    ⅳ. 扫描整个⽂件系统
    ⅴ. 监控流量,webshell的恶意操作
    ⅵ. 彻底清除恶意代码

23、⽹站被劫持如何应急?

  • 排查第三⽅⼴告、统计插件、⽹站优化等⾮本站代码(劫持重灾区);
  • 排查⽹站⾃身是否存在可疑的JS代码;
  • 使⽤模拟IP访问⽹站,定位劫持问题

24、linux⽇志被删除如何处理?
将⽂件/proc/544/fd/7拷⻉到/var/log/messages,重新启动 rsyslog 服务即可恢复被删除的⽇志⽂件


25、内存马排查思路?

  • 先查看检查服务器web⽇志,查看是否有可疑的web访问⽇志。⽐如说filter或者listener类型的内存⻢,会有⼤量url请求路径相同但参数不同或⻚⾯不存在但返回200的请求。
  • 如在web⽇志中并未发现异常,可以排查是否为中间件漏洞导致代码执⾏注⼊内存⻢。排查中间件的error.log⽇志查看是否有可疑的报错,根据注⼊时间和⽅法根据业务使用的组件排查是否可能存在java代码执⾏漏洞以及是否存在过webshell,排查框架漏洞、反序列化漏洞。
  • 查看是否有类似哥斯拉、冰蝎特征的url请求,哥斯拉和冰蝎的内存⻢注⼊流量特征与普通webshell的流量特征基本吻合。
  • 通过查找返回200的url路径对⽐web⽬录下是否真实存在⽂件,如不存在⼤概率为内存⻢。

26、apache⽇志位置?
/var/log/apache2/


27、被攻击扣分,在外⽹没看到其他流量和⽇志,可能是什么原因?如何应急?
可能的原因:

  • 机器没纳⼊设备管理
  • 用的是0day

应急方案:

  • 查看外连流量
  • 查看操作记录
  • 抓包看流量、设备加⼿⼯分析
  • 精准排查
    快速定位⽅法:查看hids定位哪台机器异常

溯源

1、溯源思路?

  • 通过恶意样本⽂件特征进⾏溯源,渠道如github、⽹盘、博客、论坛等
  • 域名、IP反查⽬标个⼈信息
  • 微信、⽀付宝、淘宝等平台查找姓⽒
  • 蜜罐:浏览器指纹技术、⽹络欺骗技术

2、只给csdn id溯源?
爆破⼿机号(前三后四爆破,⼿机号社⼯库查)


3、对攻击者进⾏身份画像有哪些?

  • 虚拟身份:ID、昵称、⽹名
  • 真实身份:姓名、物理位置
  • 联系⽅式:⼿机号、qq/微信、邮箱
  • 组织情况:单位名称、职位信息

4、蜜罐主要可以抓取到那些信息?

  • 设备指纹
  • 社交信息
  • 位置信息

其他非技术性的问题

1、客户和经理同时给发了任务,这时候冲突了,听谁的,做谁的
听项⽬经理的


  • alipay_img
  • wechat_img
此作者没有提供个人介绍
最后更新于 2024-05-28