HW 蓝队面试题整理(应急响应细节题)

B. 细节题

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

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

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

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

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

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

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

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

3.windows日志分析工具

Log Parser、LogParser Lizard、Event Log Explorer

4.Linux日志分析技巧命令

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

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
  • 定位有哪些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
  • 爆破用户名字典是什么?

grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print"$1\n";}'|uniq -c|sort -nr
  • 登录成功的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}'
  • 增加一个用户kali日志:

Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,home=/home/kali, shell=/bin/bashJul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali#grep "useradd" /var/log/secure
  • 删除用户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
  • su切换用户:

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

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

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

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

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

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

  • 借助日志分析工具

如 LogForensics 腾讯实验室 https://security.tencent.com/index.php/opensource/detail/15

6.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

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

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

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

8.获得文件读取漏洞,通常会读哪些文件,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 配置信息

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

分析数据包请求头中的 xff、referer 等收集有用的信息https://www.freebuf.com/articles/web/245585.html

10.windows端口进程间转换

  • 端口->进程

  • netstat -ano | findstr “port”查看目前的网络连接,定位可疑的 ESTABLISHED

  • 根据netstat 定位出的 pid,再通过tasklist命令进行进程定位 tasklist | findstr “PID”

图片

11.查看进程对应的程序位置

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

查看 Windows 服务所对应的端口

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

12.查看windows进程的方法

  • 查看进程的方法

  • 开始 – 运行 – 输入msinfo32 命令,依次点击 “软件环境 – 正在运行任务” 就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期以及启动时间等

  • 打开D盾_web查杀工具,进程查看,关注没有签名信息的进程

  • 通过微软官方提供的 Process Explorer 等工具进行排查

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

  • 没有签名验证信息的进程

  • 没有描述信息的进程

  • 进程的属主

  • 进程的路径是否合法

  • CPU 或内存资源占用长时间过高的进程

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

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

  • Java:上传 jsp 代码

  • Asp/Aspx

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

14.文件上传攻击特征?

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

15.文件上传加固方法?

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

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

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

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

16.用过Nmap扫描工具吗

  • nmap 扫描基础命令

  • -sT TCP (全)连接扫描,准确但留下大量日志记录

  • -sS TCP SYN (半)扫描,速度较快,不会留下日志

  • -sN null 扫描,标志位全为 0,不适用 Windows

  • -sF FIN 扫描,标志位 FIN=1,不适用 Windows

  • -O 查看目标主机系统版本

  • -sV 探测服务版本

  • -A 全面扫描

图片

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

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

18.暴力破解加固方法?

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

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

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

  • 定期排查弱口令

19.Sql注入加固措施?

  • 对于输入的字符进行过滤

  • 使用 PDO 预编译语句处理

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

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

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

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

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

ips,ids,hids,堡垒机等

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

xshell、xftp、finalshell

23.你用过微步吗?

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

24.什么是跨域,JSONP与CORS

  • 同源策略

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

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

  • 什么是跨域?

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

  • JSONP跨域

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

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

  • CORS跨域

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

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

  • JSONP和CORS的优缺点

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

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

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

  • 应用场景

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

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

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

25.http状态与无连接

  • 无连接

  • 每一个访问都是无连接,服务器挨个处理访问队列里的访问,处理完一个就关闭连接,这事儿就完了,然后处理下一个新的

  • 无连接的含义是限制每次连接只处理一个请求服务器处理完客户的请求,并收到客户的应答后,即断开连接

  • 无状态

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

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

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

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

26.什么是路由表

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

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

  • 链路层协议发现的路由(即是直连路由)

  • 静态路由

  • 动态路由协议 RIP、OSRF 发现的路由

27.非sql数据库

Zookeeper,HBase、Redis、MongoDB、Couchbase、LevelDB

28.常见OA系统

  • 28.PHP:通达OA、泛微 Eoffice

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

  • ASP:启莱OA

29.横向越权漏洞的修复

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

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

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

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

30.如何打击黑灰产工具

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

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

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

31.如何反爬

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

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

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

  • 以上的组合

32.Linux下查找服务端口的命令

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

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

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

图片

33.如何发现钓鱼邮件

  • 钓鱼邮件发现途径如下:

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

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

  • 钓鱼邮件处置

https://www.freebuf.com/articles/es/264037.html
  • 屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问

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

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

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

  • 屏蔽钓鱼邮件

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

2.屏蔽钓鱼邮件来源 IP

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

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

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

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

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

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

4.删除钓鱼邮件

5.系统改密

6.全盘扫毒

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

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

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

  • 遇到.exe文件如何处理?

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

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

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

SELINUX=disabled

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

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

  • 网络层

  • 日志分析ELK的使用和分析

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

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

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

37.awk sed的使用

  • Log4j

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

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

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

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是黑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值