蓝队面试题汇总(包含常见工具、网络安全术语、常识、设备名称)

原文链接

https://developpaper.com/blue-team-interview-questions-sorting-hw-defense-questions-sorting-2/#cnvd_467

全文

工具

  • 端口及漏洞扫描:Namp、Masscan
  • 抓包:Wireshark,Burpsuite、Fiddler、HttpCanary
  • Web自动化安全扫描:Nessus、Awvs、Appscan、Xray
  • 信息收集:Oneforall、hole
  • 漏洞利用:MSF、CS
  • Webshell 管理:菜刀、蚁剑、冰蝎、哥斯拉

设备

网络安全设备常识

常见的 HW 设备有:公安部网防G01、K01、360网康/网神防火墙、微步威胁情报、安恒云-Web应用防火墙(玄武盾)、默安蜜罐、知道创宇蜜罐、山石防火墙

 

 

即客户拥有物理的基础设施(自建机房、自购设备、网络)

  • NGAF/NGFW:下一代 Web 应用防火墙(Next Generation Application Firewall,通防火墙和下一代防火墙的区别),聚合了以下功能

    • IDS
      • HIDS:基于主机的入侵检测系统
      • NIDS:基于网络的入侵检测系统
      • HIDS+NIDS:基于混合数据源的入侵检测系统
    • IPS:入侵防御系统
    • AV:反病毒系统
  • EDR:主机安全管理\终端检测和响应

    EDR 实时监测终端上发生的各类行为,采集终端运行状态,在后端通过大数据安全分析、机器学习、沙箱分析、行为分析、机器学习等技术,提供深度持续监控、威胁检测、高级威胁分析、调查取证、事件响应处置、追踪溯源等功能,可第一时间检测并发现恶意活动,包括已知和未知威胁,并快速智能地做出响应,全面赋予终端主动、积极的安全防御能力

    简单来说就是给内网环境中所有主机安装管理软件终端,可以在管理平台集中管理和数据分析过滤,基本所有安全厂商都有自己的 EDR 产品

  • 运维审计和管理平台(堡垒机)

  • DAS:数据库安全审计平台

  • LAS:日志审计安全平台

  • AC:上网行为管理系统

  • 伪装欺骗系统(蜜罐、蜜网)

  • SIP:安全态势感知平台

    这个算是让整套系统性能得到提升的灵魂了,定位为客户的安全大脑,是一个集检测、可视、响应处置于一体的大数据安全分析平台。产品以大数据分析为核心,支持主流的安全设备、网络设备、操作系统等多源数据接入,利用大数据、关联分析、告警降噪等技术,实现海量数据的统一挖掘分析

云网络

云网络包括私有云和公有云

  • 云主机安全
  • 云防火墙
  • 云堡垒机
  • 云蜜罐
  • 云 DDOS 防护
  • 等等

绿盟设备

  • 堡垒机 SAS-H Series,堡垒机采用“物理旁路,逻辑串联”的部署思路
  • 绿盟威胁情报云 NTI https://nti.nsfocus.com/
  • 抗拒绝服务攻击系统 ADS
  • 安全和漏洞管理 AIRO
  • 网络入侵防护系统 IDPS
  • web 应用防火墙

你拿到的cnvd

工作经历

安全服务工程师

参加渗透测试、地方服务、HW

根据客户方要求对所给资产进行了详细细致的渗透测试。挖掘漏洞,发现漏洞的第一时间与客户方汇报,使客户方能够及时整改修补问题漏洞,防止造成漏洞危害扩大

攻防演练

攻防演练中担任什么角色

护网的分组和流程?

护网的分组是在领导小组之下分为防护检测组,综合研判组,应急溯源组。流程大致分为备战,临战,决战三个阶段

备战阶段,主要任务是进行两方面的操作,一是减少攻击面,即资产梳理,减少暴露面;二是排查风险点,即通过漏洞扫描,渗透测试,弱口令等进行自查

 

临战阶段,主要任务也大致可以分为两个部分,一是进行内部演练,发现疏忽处并进行相应整改;二是可以适当增加安全设备,比如WAF,IPS,IDS,SOC,堡垒机等

决战阶段,作为新人,主要就是坚守岗位,有应急日志就看自己能不能解决,不能就上报,服从上级安排,优化防护,持续整改

简历有护网经历,你能谈谈护网的情况吗

参加过护网蓝队,负责事件研判工作,主要使用 ips,ids 等设备做流量监控与日志分析工作判断安全事件是否为误判

监控、研判、处置、溯源

对安全管理中心发出的态势排查单进行排查,并将排查结果反馈给安全管理中心,对安全管理中心发出的封堵工单和解封工单进行对应的封堵与解封,每两小时反馈一次排查结果、设备巡检报告、封堵情况。查看呼池 DDOS 设备,记录并排查告警信息

蓝队研判

研判工作要充分利用已有安全设备(需要提前了解客户的网络拓扑以及部署设备情况),分析其近期的设备告警,将全部流量日志(日志条件:源地址,目的地址,端口,事件名称,时间,规则 ID,发生 次数等)根据研判标准进行筛选(像挖矿、蠕虫、病毒、拒绝服务这类不太可能为攻击方发起的攻击的事件,直接过滤掉,减少告警数量),一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击

对于告警结合威胁情报库如:微步、奇安信威胁情报中心、绿盟威胁情报云等对于流量日志的原 IP 地址进行分析,判断其是否为恶意攻击,推荐使用微步的插件,如果确认为攻击行为或者不能确认是否为攻击行为,进行下一步操作,在之前准备好的表格中查找 IP 是否为客户内网部署的设备,如果不是,继续进行下一步,在事件上报平台查看是否有其他人提交过,如果没有,则上报

然后根据流量日志,对请求数据包和返回数据包分析判断其是否为误报,需要留意 X-Forwarded-For(简称XFF)和 x-real-ip 可以了解些 webshell 工具的流量特征,尤其是免杀 webshell,有可能不会被设备识别

最后上报事件时,尽可能提供完整的截图,包括源 ip、目的ip,请求包请求体,响应包响应体等重要信息,以方便后续人员研判溯源

注:不要任意忽略内网告警,适当情况下可以往前推排查时间

蓝队组成

蓝队的主要工作包括前期安全检查、整改与加固,演习期间进行网络安全监测、预警、分析、验证、处置,后期复盘总结现有防护工作中的不足之处,为后续常态化的网络安全防护措施提供优化依据

监控、研判、处置、溯源

SQL注入检测

SQL注入攻击检测可根据入侵事件发生的前后进行区分,在入侵前可以对 Payload 进行检测等方式以预防 SQL 注入攻击。在入侵检测后可以通过对数据库、IIS 日志等进行检查以进行判断

传统的SQL注入检测方法通常根据经验提取特征,然后基于规则库匹配的方法来检测是否为 SQL 注入语句,其设计一般较为复杂,且规则模式更新频繁,在此采用机器学习的方式尝试对 SQL 注入语句进行检测

DDOS CC应急思路以及如何防范

目前对于低网络层的 DDoS 攻击有一些有效的防护手段,如丢弃第一次 SYN 包,上流量防护设备,上 WAF 封禁地址等

比较难缠的是第七层,第八层的 CC 攻击,它会找到目标网站上比较消耗资源的关键位置,重复发起攻击以消耗 CPU/内存/数据库/IO 等资源,目前的应付手段有:

  1. 优化资源消耗高位置的代码
  2. 增加硬件设备
  3. 上云
  4. 购买专业安全公司的安全服务
  5. 除此之外,隐藏服务器的真实 IP、上云 WAF、CDN、 负载均衡等设备,或者暂时将域名解析到公安网警网站等也是可以作为选择方案
  • 网络设备设施
    • 拼带宽,加大带宽,但是成本太高
    • 使用硬件防火墙
    • 选用高性能设备
  • 抗 D 思想和方案
    • 负载均衡
    • 花钱买流量清洗服务
    • CDN:web 层,比如 cc 攻击
    • 分布式集群防御
    • 高防:防大部分攻击,udp、大型的 cc 攻击
  • 预防为主
    • 系统漏洞
    • 系统资源优化
    • 过滤不必要的服务和端口
    • 限制特定流量:检查访问来源做适当限制

挖矿病毒判断&挖矿常见手段&处理

挖矿病毒,自己搜搜

挖矿木马占用系统资源进行挖矿行为,一般电脑会有以下特征

  1. 系统响应缓慢
  2. CPU/显卡使用率过高
  3. 内存/带宽占用高

登录进可疑主机后,可以通过以下方式确认挖矿木马(即入侵排查流程)

  1. 查看进程(系统命令 ps、Is 有可能被替换)
  2. 检查日志、检查系统用户
  3. 发现异常文件

挖矿常用手段

  1. 未授权访问或弱口令:Redis 未授权访问、Docker API 未授权访问、Hadoop Yarn 未授权访问、NFS 未授权访问、Rsync 弱口令、PostgreSQL 弱口令、Tomcat 弱口令、SSH 弱口令、Telnet 弱口令、Windows 远程桌面弱口令
  2. 远程命令执行漏洞:WebLogic XML 反序列化漏洞、Jenkins 反序列化、Jboss 远程代码执行、Spring 远程代码执行、ElasticSearch 命令执行、永恒之蓝、Struts2 系列漏洞、常见 CMS 的远程命令执行漏洞
  3. 新爆的高危漏洞:一般每次爆发新的高危漏洞,都会紧跟一波大规模的全网扫描利用和挖矿

清除挖矿木马

原因排查

一旦发现服务器被挖矿,应该首先查看挖矿进程所属的用户,根据挖矿进程的运行用户去排查该用户下是否还运行着其它进程,确定这些进程是否有上述经常被黑客利用的漏洞。如果有常见的漏洞,则应该重点对此进行排查找到原因

清除木马

  1. 及时隔离主机

    部分带有蠕虫功能的挖矿木马在取得本机的控制权后,会以本机为跳板机,对同一局域网内的其他主机进行已知漏洞的扫描和进一步利用, 所以发现挖矿现象后,在不影响业务的前提下应该及时隔离受感染主机,然后进行下一步分析

  2. 删除文件、阻断与矿池通讯

    iptables -A INPUT -S xmr.crypto- pool.fr -j DROP
    iptables -A OUTPUT -d xmr.crypto- pool.fr -j DROP
  3. 清除定时任务

    大部分挖矿进程会在受感染主机中写入定时任务来完成程序的驻留,当安全人员只清除挖矿木马时,定时任务会再次从服务器下载挖矿进程或者直接执行挖矿脚本,导致挖矿进程清除失败

  4. 清除启动项

    有的挖矿进程为了实现长期驻留,会向系统中添加启动项来确保系统重启后挖矿进程还能重新启动,所以在清除时还应该关注启动项中的内容如果有可疑的启动项,也应该进行排查,确认是挖矿进程后,对其进行清除

  5. kill 挖矿进程

    对于单进程挖矿程序,直接结束挖矿进程即可。但是对于大多数的挖矿进程,如果挖矿进程有守护进程,应先杀死守护进程再杀死挖矿进程,避免清除不彻底
    在实际的清除工作中,应找到本机上运行的挖矿脚本,根据脚本的执行流程确定木马的驻留方式, 并按照顺序进行清除, 避免清除不彻底

  6. 清除公钥文件

    在用户 home 目录的 .ssh 目录下放置 authoruzed_keys 文件,从而免密登录该机器也是一种常见的保持服务器控制权的手段。在排查过程中应该查看该文件中是否有可疑公钥信息,有的话直接删除,避免攻击者再次免密登录该主机

服务器存在webshell,如何处理?

网站被植入 webshell,意味着网站存在可利用的高危漏洞,攻击者通过利用漏洞入侵网站,写入 webshell 接管网站的控制权

  1. 及时隔离主机
  2. 定位事件范围,查看文件 webshell 文件的创建时间,对 webshell 取证样本
  3. 通过创建时间结合日志分析可疑行为,以及启动用户的其他进程确定漏洞
  4. 清除 webshell 及残留文件,修复漏洞,参考上题

排查 shell 应该用什么命令来进行排查

find 命令

find /var/www/html -name "*.php" |xargs egrep 'assert|eval|phpinfo\(\)|\(base64_decoolcode|shell_exec|passthru|file_put_contents\(\.\*$|base64_decode\('

如何检测webshell

主机层面

  • 静态检测

    静态检测通过匹配特征码,特征值,危险函数函数来查找 webshell 的方法,只能查找已知的 webshell

  • 动态检测

    webshell 传到服务器了,在执行函数时这些对于系统调用、系统配置、数据库、文件的操作动作都是可以作为判断依据

  • 日志检测

    使用 webshell 一般不会在系统日志中留下记录,但是会在网站的 web 日志中留下 webshell 页面的访问数据和数据提交记录

  • 语法检测

    语法语义分析形式,是根据 php 语言扫描编译的实现方式,进行剥离代码、注释,分析变量、函数、字符串、语言结构的分析方式,来实现关键危险函数的捕捉方式这样可以完美解决漏报的情况但误报上

流量层面

Webshell管理工具的流量特征

冰蝎动态二进制加密WebShell特征分析

常见WebShell客户端的流量特征及检测思路

菜刀

菜刀 webshell 只使用了 url 编码 + base64 编码

shell 特征就是传输参数名为 z0,还存在int_set("display_erros","0")字符串特征

蚁剑

默认的蚁剑 shell,连接时会请求两次,其请求体只是经过 url 编码,其流量中也存在和蚁剑一样的代码

第一次请求,关闭报错和 magic_quotes,接下来去获取主机的信息

第二次请求,会把主机目录列出来

冰蝎2.0

使用 aes 加密发起三次请求

第一次请求服务端产生密钥写入 session,session 和当前会话绑定,不同的客户端的密钥也是不同的

第二次请求是为了获取 key,第三次使用 key 的 aes 加密进行通信

冰蝎3.0

使用 aes 加密发起两次请求

3.0 分析流量发现相比 2.0 少了动态密钥的获取的请求,不再使用随机生成 key,改为取连接密码的 md5 加密值的前 16 位作为密钥

一次请求为判断是否可以建立连接,少了俩次 get 获取冰蝎动态密钥的行为,第二次发送 phpinfo 等代码执行,获取网站的信息

哥斯拉

支持 n 种加密

采用了和冰蝎 3.0 一样的密钥交换方式,哥斯拉建立连接时会发起三次请求,第一次请求数据超级长,建立 session,第二三次请求确认连接

常见端口漏洞

数据库类(扫描弱口令)

  • 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

三次握手与四次挥手

https://www.eet-china.com/mp/a44399.html

背景:TCP 位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP 协议采纳三次握手四次挥手策略

三次握手(three-way handshaking)

TCP 三次握手,其实就是 TCP 应用在发送数据前,通过 TCP 协议跟通信对方协商好连接信息,建立起 TCP 的连接关系

  1. 第一次握手:客户端发送 SYN 报文,并进入 SYN_SENT 状态,等待服务器的确认
  2. 第二次握手:服务器收到 SYN 报文,需要给客户端发送 ACK 确认报文,同时服务器也要向客户端发送一个 SYN 报文,所以也就是向客户端发送 SYN + ACK 报文,此时服务器进入 SYN_RCVD 状态
  3. 第三次握手:客户端收到 SYN + ACK 报文,向服务器发送确认包,客户端进入 ESTABLISHED 状态。待服务器收到客户端发送的 ACK 包也会进入 ESTABLISHED 状态,完成三次握手

四次挥手(Four-Way-Wavehand)

当我们的应用程序不需要数据通信了,就会发起断开 TCP 连接。建立一个连接需要三次握手,而终止一个连接需要经过四次挥手

  1. 第一次挥手:客户端发送一个 FIN,用来关闭客户端到服务端的数据传送,客户端进入 FIN_WAIT_1 状态
  2. 第二次挥手:服务端收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号 +1(与SYN相同,一个FIN占用一个序号),服务端进入 CLOSE_WAIT 状态
  3. 第三次挥手:服务端发送一个 FIN,用来关闭服务端到 客户端的数据传送,服务端进入 LAST_ACK 状态
  4. 第四次挥手:客户端收到 FIN 后,客户端进入 TIME_WAIT 状态,接着发送一个 ACK 给服务端,确认序号为收到序号 +1,服务端进入 CLOSED 状态,完成四次挥手

一个大范围影响的0day被曝光,作为甲方安全工程师,应该如何处理(★★)

  1. 首先是评估 0day 对自身系统的影响(这部分评估需要根据漏洞利用的利用点、是否需要交互、是否会影响系统的 CIA,是否有在野利用 poc,影响资产是否暴露在公网等很多因素决定,详情可以参考 CVSS )
  2. 如果确定有影响的话且有 poc,第一件事是先分析 poc 执行后会在什么地方留下痕迹,我们有什么样的设备去采集这些痕迹所留下的数据,比如说 ntlm relay 这种,可以考虑从 Windows 事件日志当中 event_id 等于 4769 的事件入手编写对应的规则,这样的话可以利用 SIEM 或者实时日志分析平台跑起来,可以建立起初步的感知防线,后期触发告警,人肉运营也可以快速止损
  3. 日常建立完整的纵深防御体系,不要依赖于某一道防线

服务器操作系统的安全防范?

  1. 停止运行不需要的软件(很可能成为外部攻击的入口)
  2. 定期实施漏洞防范措施(选定软件时确认软件的升级状况,确定打补丁方式,关注各种漏洞信息,确认漏洞后调查补丁状况以及防范对策,并制定对应计划)
  3. 对不需要对外公开的端口或者服务加以访问限制(通过端口扫描确认各端口服务状态)
  4. 提高认证强度

怎么发现有没有被攻击

攻击判断可以建立在设备的基础上,利用设备的告警,如果没有设备的话可以参考以下

网站被攻击:网站被跳转到赌博网站,网站首页被篡改,百度快照被改,网站被植入 webshell 脚本木马,网站被 DDOS、CC 压力攻击

服务器被黑:服务器系统中木马病毒,服务器管理员账号密码被改,服务器被攻击者远程控制,服务器的带宽向外发包,服务器被流量攻击,ARP攻击(目前这种比较少了,现在都是基于阿里云,百度云,腾讯云等云服务器)

对登录记录、系统日志、web 日志等进行分析

⬆️细节题

你能大概说一下,比如数据包或者日志,你的分析思路是什么,以及你会用到哪些工具或者那些网站进行查询?

用流量监测的安全设备,比如天眼,查看报文,分析报文里和 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析

看一下请求的网站路径,源 IP 与目的 IP 地址,host 字段的值以及发包内容等

工具有 wireshark,网站的话微步在线等威胁情报中心

文件上传和命令执行,有看过相关日志吗

文件:可能在系统有上传功能或者有文本编辑器,看一下是否有 base64 加密或者 url 加密,解码验证一下是否有恶意代码

系统日志:有没有 web 容器做了一些危险行为,比如 bash 反弹 shell 等

网络应用日志:有没有异常的网站文件,类似 webshell 等,就有可能是命令执行

windows日志分析工具

Log Parser、LogParser Lizard、Event Log Explorer

Linux日志分析技巧命令

  1. 定位有多少IP在爆破主机的root帐号:

    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
  2. 定位有哪些IP在爆破:

    grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
  3. 爆破用户名字典是什么?

    grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print"$1\n";}'|uniq -c|sort -nr
  4. 登录成功的IP有哪些

    grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    登录成功的日期、用户名、IP
    grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
  5. 增加一个用户kali日志:

    Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
    Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,
    home=/home/kali
    , shell=/bin/bash
    Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
    #grep "useradd" /var/log/secure
  6. 删除用户kali日志:

    Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
    Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
    Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
    # grep "userdel" /var/log/secure
  7. su切换用户:

    Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by
    root(uid=0)
    sudo授权执行:
    sudo -l
    Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ;
    COMMAND=/sbin/shutdown -r now

给你一个比较大的日志,应该如何分析

  • 攻击规则匹配,通过正则匹配日志中的攻击请求
  • 统计方法,统计请求出现次数,次数少于同类请求平均次数则为异常请求
  • 白名单模式,为正常请求建立白名单,不在名单范围内则为异常请求
  • HMM 模型,类似于白名单,不同点在于可对正常请求自动化建立模型,从而通过正常模型找出不匹配者则为异常请求
  • 借助日志分析工具,如 LogForensics 腾讯实验室 https://security.tencent.com/index.php/opensource/detail/15

Windows在应急响应中的安全日志以及对应场景

设备误报如何处理

(日志)

Windows和Linux的日志文件放在哪里

  • Windows 主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志

    系统日志:%SystemRoot%\System32\Winevt\Logs\System.evtx

    应用程序日志:%SystemRoot%\System32\Winevt\Logs\Application.evtx

    安全日志:%SystemRoot%\System32\Winevt\Logs\Security.evtx

  • Linux

    日志默认存放位置:/var/log/
    查看日志配置情况:more /etc/rsyslog.conf

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

  • apache:/etc/httpd/conf
  • nginx:/etc/nginx
  • iis7:C:\Windows\System32\inetsrv\config\

如何查看系统内存 shell

  • 文章汇总:link
  • 查杀内存马:link
  • php、python、java内存马分析:link

Java 内存马排查

https://www.freebuf.com/articles/web/274466.html

如果我们通过检测工具或者其他手段发现了一些内存webshell的痕迹,需要有一个排查的思路来进行跟踪分析,也是根据各类型的原理,列出一个排查思路。

如果是jsp注入,日志中排查可疑jsp的访问请求。

如果是代码执行漏洞,排查中间件的error.log,查看是否有可疑的报错,判断注入时间和方法

根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。

如果是servlet或者spring的controller类型,根据上报的webshell的url查找日志(日志可能被关闭,不一定有),根据url最早访问时间确定被注入时间。

如果是filter或者listener类型,可能会有较多的404但是带有参数的请求,或者大量请求不同url但带有相同的参数,或者页面并不存在但返回200

如何修改WEB端口?如果不能修改端口还有什么利用方法?

修改 web 端口:修改中间件配置文件中的 web 服务端口即可

不能修改的话可以使用端口映射,使用 nginx 反向代理也可以

获得文件读取漏洞,通常会读哪些文件,Linux和windows都谈谈

通用

  • 找 Web 应用的配置文件,指不定有外联数据库
  • 找 Web 中间件的配置文件,指不定有 Tomcat 配置界面的用户密码
  • 找系统文件

linux

  • etc/passwd、etc/shadow直接读密码

  • /etc/hosts # 主机信息

  • /root/.bashrc # 环境变量

  • /root/.bash_history # 还有root外的其他用户

  • /root/.viminfo # vim 信息

  • /root/.ssh/id_rsa # 拿私钥直接ssh

  • /proc/xxxx/cmdline # 进程状态枚举 xxxx 可以为0000-9999 使用burpsuite

  • 数据库 config 文件

  • web 日志 access.log, error.log

  • ssh 日志

    /root/.ssh/id_rsa
    /root/.ssh/id_rsa.pub
    /root/.ssh/authorized_keys
    /etc/ssh/sshd_config
    /var/log/secure
    /etc/sysconfig/network-scripts/ifcfg-eth0
    /etc/syscomfig/network-scripts/ifcfg-eth1
  • /var/lib/php/sess_PHPSESSID # 非常规问题 session 文件( 参考 平安科技的一道session包含 http://www.jianshu.com/p/2c24ea34566b)

windows

  • C:\boot.ini //查看系统版本
  • C:\Windows\System32\inetsrv\MetaBase.xml //IIS 配置文件
  • C:\Windows\repair\sam //存储系统初次安装的密码
  • C:\Program Files\mysql\my.ini //Mysql 配置
  • C:\Program Files\mysql\data\mysql\user.MY D //Mysql root
  • C:\Windows\php.ini //php 配置信息
  • C:\Windows\my.ini //Mysql 配置信息

如何分析被代理出来的数据流

分析数据包请求头中的 xff、referer 等收集有用的信息

基于网络欺骗与浏览器指纹的WEB攻击溯源

windows端口进程间转换

端口->进程

  1. netstat -ano | findstr “port”查看目前的网络连接,定位可疑的 ESTABLISHED
  2. 根据netstat定位出的 pid,再通过tasklist命令进行进程定位tasklist | findstr “PID”

0f372fbe3d21

 

查看进程对应的程序位置

任务管理器–选择对应进程–右键打开文件位置运行输入 wmic,cmd界面 输入 process

查看 Windows 服务所对应的端口

%system%/system32/drivers/etc/services(一般 %system% 就是 C:\Windows)

查看windows进程的方法

  1. 开始 – 运行 – 输入msinfo32 命令,依次点击 “软件环境 – 正在运行任务” 就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期以及启动时间等
  2. 打开D盾_web查杀工具,进程查看,关注没有签名信息的进程
  3. 通过微软官方提供的 Process Explorer 等工具进行排查

查看可疑的进程及其子进程。可以通过观察以下内容:

  • 没有签名验证信息的进程
  • 没有描述信息的进程
  • 进程的属主
  • 进程的路径是否合法
  • CPU 或内存资源占用长时间过高的进程

你能说明文件上传的原理吗?

  • PHP:如果系统中存在可以上传文件的功能点,就可以上传后门脚本文件,通过一些方法绕过上传限制,如果能访问后门的的话,系统存在文件上传漏洞,可以借助后门执行命令

  • Java:上传 jsp 代码

  • Asp/Aspx

  • Python:因为脚本需要译后生成 pyc 字节码文件,所以不存在文件上传

文件上传攻击特征?

能够上传文件的接口,应用程序对用户上传文件类型不校验或者校验不严格可绕过,导致任意类型文件上传,攻击者可上传 webshell 拿到服务器权限,在这个过程中攻击者必然会上传恶意脚本文件

文件上传加固方法?

  1. 后端限制文件上传白名单,头像不允许上传 svg

  2. 上传后文件随机重命名,不要输出保存文件位置

  3. 图片文件可以二次渲染,使用对象存储 oss

  4. 文件目录取消执行权限,PHP 设置 basedir

用过Nmap扫描工具吗

nmap 扫描基础命令

  • -sT TCP (全)连接扫描,准确但留下大量日志记录
  • -sS TCP SYN (半)扫描,速度较快,不会留下日志
  • -sN null 扫描,标志位全为 0,不适用 Windows
  • -sF FIN 扫描,标志位 FIN=1,不适用 Windows
  • -O 查看目标主机系统版本
  • -sV 探测服务版本
  • -A 全面扫描

0428229581ae

 

你做过渗透测试的工作吗?

首先信息收集,收集子域名、Whois、C段、旁站、Web 系统指纹识别,然后测试 web 系统的漏洞

暴力破解加固方法?

  1. 添加强度较高的验证码,不易被破解

  2. 修改密码设置规则,提高用户的密码强度

  3. 同一账号登陆次数锁定,生成锁定日志

  4. 定期排查弱口令

Sql注入加固措施?

对于输入的字符进行过滤

使用 PDO 预编译语句处理

一台主机在内网进行横向攻击,你应该怎么做?

确定攻击来源,是不是员工内部误操作,比如询问运维是否有自动化轮训脚本

如果没有,确定是攻击,结合时间点,根据设备信息,看一下安全事件,进程,流量

找到问题主机,开始应急响应流程:准备、检测、遏制、根除、恢复、跟踪,具体的操作要交给现场运维去处理

你还用过其他态势感知的产品吗?

ips,ids,hids,堡垒机等

命令行工具用的什么比较多?

xshell、xftp、finalshell

你用过微步吗?

微步在线是一个威胁情报中心,可以通过 ip 或域名查询其是不是恶意的,对于判断恶意链接具有一定的参考性,他还有一个插件可以在页面选中就能进行查询,还是一个比较好用的工具

什么是跨域,JSONP与CORS

同源策略

同源策略:域名、协议、端口均相同

浏览器执行 JavaScript 脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行

什么是跨域?

跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制!

JSONP跨域

利用 js script 标签中 src 属性可以跨域的特性,使用 callback 参数的函数名来接收数据

只支持 GET 请求,不支持 POST 等其它请求,也不支持复杂请求,只支持简单请求

CORS跨域

支持所有的请求,包含 GET、POST、OPTOIN、PUT、DELETE 等既支持复杂请求,也支持简单请求

JSONP 与 CORS 的使用目的相同,并且都需要服务端和客户端同时支持,但 CORS 的功能更加强大

JSONP和CORS的优缺点

  1. JSONP 的主要优势在于对浏览器的支持较好;虽然目前主流浏览器都支持 CORS,但 IE9 及以下不支持 CORS

  2. JSONP 只能用于获取资源(即只读,类似于 GET 请求);CORS 支持所有类型的 HTTP 请求,功能完善

  3. JSONP 只会发一次请求;而对于复杂请求,CORS 会发两次请求

应用场景

如果需要兼容IE低版本浏览器,无疑,JSONP

如果需要对服务端资源进行操作,无疑,CORS

其他情况的话,根据自己的对需求的分析来决定和使用

http状态与无连接

无连接

  1. 每一个访问都是无连接,服务器挨个处理访问队列里的访问,处理完一个就关闭连接,这事儿就完了,然后处理下一个新的
  2. 无连接的含义是限制每次连接只处理一个请求服务器处理完客户的请求,并收到客户的应答后,即断开连接

无状态

  1. 协议对于事务处理没有记忆能力

  2. 对同一个 url 请求没有上下文关系

  3. 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况

  4. 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器

什么是路由表

在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)路由表中含有网络周边的拓扑信息路由表建立的主要目标是为了实现路由协议和静态路由选择

每个路由器中都有一个路由表和 FIB(Forward Information Base) 表:路由表用来决策路由,FIB 用来转发分组路由表中有三类路由:

  1. 链路层协议发现的路由(即是直连路由)
  2. 静态路由
  3. 动态路由协议 RIP、OSRF 发现的路由

非sql数据库

Zookeeper,HBase、Redis、MongoDB、Couchbase、LevelDB

常见OA系统

PHP:通达OA、泛微 Eoffice

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

ASP:启莱OA

横向越权漏洞的修复

横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源

纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源

对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限来避免

为了防止横向越权,我们可以使用缓存来进行辅助,当登录成功或者进行操作时,我们在缓存中存储一对由用户名和一个唯一的数字组成的数据(token),然后返回放入的唯一数据在重置密码时我们的参数不仅需要用户名和密码还需要前面生成的唯一数字,根据用户名在缓存中取出对应的数字,如果取出的数字和参数中传入的想等,则证明重置的当前用户的密码,否则不是,且不予以重置

如何打击黑灰产工具

  1. 全面监控和快速响应(溯源):对黑灰进行长期跟进,了解黑灰产工具的传播链条和路径,第一时间捕获活跃的黑灰产工具(建立特征词监控,数据取样、交叉分析)

  2. 建立软件指纹库,增加风险识别能力

  3. 建立黑灰产情报共享,最大化情报价值

如何反爬

  1. 后台对访问进行统计,如果单个 IP 访问超过阈值,予以封锁

  2. 后台对访问进行统计,如果单个 session 访问超过阈值,予以封锁

  3. 后台对访问进行统计,如果单个 userAgent 访问超过阈值,予以封锁

  4. 以上的组合

Linux下查找服务端口的命令

Linux下查找服务端口的命令?一句话查找80端口服务的命令?

使用grep 命令 要使用 grep 命令在Linux 中查找指定服务的默认端口号,只需运行

grep <port> /etc/services
grep services /etc/services

1c70a4be642c

 

如何发现钓鱼邮件

钓鱼邮件发现

发现途径如下:

邮件系统异常登录告警、员工上报、异常行为告警、邮件蜜饵告警

推荐接入微步或奇安信的情报数据。对邮件内容出现的 URL 做扫描,可以发现大量的异常链接

钓鱼邮件处置

https://www.freebuf.com/articles/es/264037.html

  1. 屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问

    根据办公环境实际情况可以在上网行为管理、路由器、交换机上进行屏蔽

    邮件内容涉及域名、IP 均都应该进行屏蔽

    对访问钓鱼网站的内网 IP 进行记录,以便后续排查溯源可能的后果

  2. 屏蔽钓鱼邮件

    屏蔽钓鱼邮件来源邮箱域名

    屏蔽钓鱼邮件来源 IP

    有条件的可以根据邮件内容进行屏蔽

    删除还在邮件服务器未被客户端收取钓鱼邮件

  3. 处理接收到钓鱼邮件的用户

    • 根据钓鱼邮件发件人进行日志回溯

      此处除了需要排查有多少人接收到钓鱼邮件之外,还需要排查是否公司通讯录泄露。采用 TOP500 姓氏撞库发送钓鱼邮件的攻击方式相对后续防护较为简单。如果发现是使用公司通讯录顺序则需要根据通讯录的离职情况及新加入员工排查通讯录泄露时间。毕竟有针对性的社工库攻击威力要比 TOP100、TOP500 大很多

    • 通知已接收钓鱼邮件的用户进行处理

    • 删除钓鱼邮件

    • 系统改密

    • 全盘扫毒

  4. 后续:溯源、员工培训提升安全意识

如何查看区分是扫描流量和手动流量

(扫描数据量大,请求有规律,手动扫描间隔较少)

遇到.exe文件如何处理?

首先看它的来源和去向,然后可以下载但不运行,放入微步沙箱中,看是否有后门,若有后门,就用 IDA 反汇编得到恶意攻击者的有用信息,再进一步描绘出攻击者画像进行溯源

Linux 的 Selinux 是什么?如何设置 Selinux?

SELinux 是一种安全子系统,它能控制程序只能访问特定文件使用 setup 工具进入图形化关闭搜索或者修改/etc/sysconfig/selinux 文件

SELINUX=disabled

防火墙打开使用 service iptables start 或则/etc/init.d/iptables start

iptables 工作在 TCP/IP 模型中的哪层?

网络层

日志分析ELK的使用和分析

https://www.zhihu.com/question/21427267

  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
  • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

举例-阿里规范 用户历史命令记录

缺点:安全性不够。使用x-pack实现安全认证及权限管理功能

awk sed的使用

Log4j

log4j 是 javaweb 的日志组件,用来记录 web 日志

去指定下载文件的 url 在搜索框或者搜索的 url 里面,加上 ${jndi:ldap://127.0.0.1/test} ,log4j 会对这串代码进行表达式解析,给 lookup 传递一个恶意的参数指定,参数指的是比如 ldap 不存在的资源 $ 是会被直接执行的。后面再去指定下载文件的 url,去下载我们的恶意文件。比如是 x.class 下载完成后,并且会执行代码块

修复:升级 Log4j 到最新版本,根据业务判断是否关闭 lookup

⬆️入侵检测&防御

WAF产品如何来拦截攻击?

Waf 产品有三种

  1. 云 Waf

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

  2. Web 防护软件

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

  3. 硬件 Web 防火墙

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

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

当前市场上 Waf 产品核心的防护机制是“规则”,每一个请求、会话,经过抓包,“开包检查”,每一项规则都会检查到,一旦检查不通过,就会被认为是非法访问,拒绝处理

WAF有哪些防护方式?

  • Web基础防护

    可防范常规的 web 应用攻击,如 SQL 注入攻击、XSS 跨站攻击等,可检测 webshell,检查 HTTP 上传通道中的网页木马,打开开关即实时生效

  • CC 攻击防护

    可根据 IP、Cookie 或者 Referer 字段名设置灵活的限速策略,有效缓解 CC 攻击

  • 精准访问防护

    对常见 HTTP 字段进行条件组合, 支持定制化防护策略如CSRF防护,通过自定义规则的配置,更精准的识别恶意伪造请求、保护网站敏感信息、提高防护精准性

  • IP 黑白名单

    添加终拦截与始终放行的黑白名单 IP,增加防御准确性

  • 地理位置访问控制

    添加地理位置访问控制规则,针对来源 IP 进行自定义访问控制

  • 网页防篡改

    对网站的静态网页进行缓存配置,当用户访问时返回给用户缓存的正常页面,并随机检测网页是否被篡改

  • 网站反爬虫

    动态分析网站业务模型,结合人机识别技术和数据风控手段,精准识别爬虫行为

  • 误报屏蔽

    针对特定请求忽略某些攻击检测规则,用于处理误报事件

  • 隐私屏蔽

    隐私信息屏蔽,避免用户的密码等信息出现在事件日志中

  • 防敏感信息泄露

    防止在页面中泄露用户的敏感信息,例如:用户的身份证号码、手机号码、电子邮箱等

不安全的第三方组件的漏洞如何做前置规避?

第三方组件缺陷又被归结为供应链安全问题,供应链安全需要多方面考虑。没有万能方案,但是组织可以用分层防御的组合来保护供应链

  • 安全战略评估

    要评估风险与合规性,需要针对业务挑战、需求和目标评估现有的安全治理框架——包括数据隐私、第三方风险和IT法规合规需求及差距。安全风险量化、安全开发、法规和标准合规性以及安全教育和培训是关键

  • 事件响应计划与编排

    提前为入侵、关闭或中断做好准备,并拥有稳健的事件响应计划很重要。通过实践、测试和易执行的响应计划和补救措施,防止损失

https://www.freebuf.com/articles/neopoints/261681.html

如果现在要你写一个检测命令注入的脚本?

你会怎么写,有哪些要注意的地方,如果别人的脚本检测出来了你的脚本没检测出来你觉的你的脚本会存在什么问题,脚本检测过程中如果没有回显你会怎么做

🅰️溯源

c15deaebe230

 

⬆️基本步骤

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/微信、邮箱
    组织情况:单位名称、职位信息

技巧

  1. 域名、ip 反查目标个人信息
  2. 支付宝转账,确定目标姓氏
  3. 淘宝找回密码,确定目标名字
  4. 企业微信手机号查公司名称
  5. REG007 查注册应用、网站
  6. 程序 PDB 信息泄露

主动防御

基于网络欺骗与浏览器指纹的WEB攻击溯源

  1. 浏览器指纹技术
  2. 网络欺骗技术,蜜罐蜜网

流量溯源

可利用流量工具 wireshark 进行溯源:

  1. 查看 eval、 z0、 shell whoami 等关键字,查看出现次数过多的时候, 需要查看是哪个页面发起的请求,有可能是 webshell
  2. 通过 WireShark 工具快速搜索关键字,定位到异常流量包
  3. 找出异常 IP 和所上传的内容,查看是否为 webshell

如何定位到攻击IP:

  1. 首先通过选择 – 统计 – 对话查看流量的走向情况, 定位可疑的 IP 地址

  2. 根据定位到的 IP 地址,尝试对上传的 webshell 进行定位

    ip.addr == ip && http matches
    "uploadllevallselectlxp_cmdshell" && http.request.method == "POST"
  3. 查找到 webshell 后尝试溯源漏洞位置

    http.request.uri contains "webshell.php"

    定位到最开始 webshell 执行或上传的时候

  4. 根据最开始的 HTTP 上传包或者其他漏洞特征定位漏洞类型

wireshark

wireshark 简单的过滤规则

  • 过滤ip:

    过滤源 ip 地址:ip.src1.1.1.1

    目的 ip 地址:ip.dst1.1.1.1

  • 过滤端口:

    过滤80端口:tcp.port == 80

    源端口:tcp.srcport == 80

    目的端:tcp.dstport == 80

  • 协议过滤:直接输入协议名即可,如 http 协议 http

  • http 模式过滤:过滤 get/post 包 httprequest.mothod == “GET/POST”

常用取证工具

Wireshark、xplico、 Volatility、 FastlR Collector、Autopsy、 Dumplt、 FTK Imager、Foremost、Scalpel、 Bulk_ exetractor 等

优秀文章

域前置溯源方法思考

⬆️其他

对蜜罐的了解

脑图

图源网络侵删
Blue team interview questions sorting (HW defense questions sorting)

请登录后发表评论

    没有回复内容