大家好,又见面了,我是你们的朋友全栈君。
之前整理的有关于蓝队方面的面试题适合作为 hw 防守方,很久没更了放放存货?,整理自网络侵删,如有帮助点赞支持,之后会继续更新面试题系列
OCEAN’S 安全面试题整理系列文章:
文章目录
- ?️应急响应?️
-
- ⬆️宏观题
-
- 1.基本思路流程
- 2.Windows入侵排查思路
- 3.Linux入侵排查思路
- Linux的登录日志查看文件
- Linux常用排查命令
- Linux基线规范
- Windows 安全基线检查
- 中间件基线规范(APACHE)
- 中间件常见漏洞
- Linux、Windows安全加固
- 框架漏洞&常见命令注入漏洞?php? Strust2 ?
- 常见安全工具、设备
- 绿盟设备
- 你拿到的cnvd
- **工作经历
- 攻防演练
- 护网的分组和流程?
- 简历有护网经历,你能谈谈护网的情况吗
- 蓝队研判
- 蓝队组成
- SQL注入检测
- DDOS CC应急思路以及如何防范
- 挖矿病毒判断&挖矿常见手段&处理
- 服务器存在webshell,如何处理?
- 排查 shell 应该用什么命令来进行排查
- 如何检测webshell
- Webshell管理工具的流量特征
- 常见端口漏洞
- 三次握手与四次挥手
- 一个大范围影响的0day被曝光,作为甲方安全工程师,应该如何处理(★★)
- 服务器操作系统的安全防范?
- 怎么发现有没有被攻击
- ⬆️细节题
-
- 你能大概说一下,比如数据包或者日志,你的分析思路是什么,以及你会用到哪些工具或者那些网站进行查询?
- 文件上传和命令执行,有看过相关日志吗
- windows日志分析工具
- Linux日志分析技巧命令
- 给你一个比较大的日志,应该如何分析
- Windows在应急响应中的安全日志以及对应场景
- 设备误报如何处理
- Windows和Linux的日志文件放在哪里
- 常见中间件的配置文件路径
- 如何查看系统内存 shell
- Java 内存马排查
- 如何修改WEB端口?如果不能修改端口还有什么利用方法?
- 获得文件读取漏洞,通常会读哪些文件,Linux和windows都谈谈
- 如何分析被代理出来的数据流
- windows端口进程间转换
- 查看进程对应的程序位置
- 查看windows进程的方法
- 你能说明文件上传的原理吗?
- 文件上传攻击特征?
- 文件上传加固方法?
- 用过Nmap扫描工具吗
- 你做过渗透测试的工作吗?
- 暴力激活成功教程加固方法?
- Sql注入加固措施?
- 一台主机在内网进行横向攻击,你应该怎么做?
- 你还用过其他态势感知的产品吗?
- 命令行工具用的什么比较多?
- 你用过微步吗?
- 什么是跨域,JSONP与CORS
- http状态与无连接
- 什么是路由表
- 非sql数据库
- 常见OA系统
- 横向越权漏洞的修复
- 如何打击黑灰产工具
- 如何反爬
- Linux下查找服务端口的命令
- 如何发现钓鱼邮件
- 钓鱼邮件处置
- 如何查看区分是扫描流量和手动流量
- 遇到.exe文件如何处理?
- Linux 的 Selinux 是什么?如何设置 Selinux?
- iptables 工作在 TCP/IP 模型中的哪层?
- 日志分析ELK的使用和分析
- awk sed的使用
- Log4j
- ⬆️入侵检测&防御
- ?️溯源
- 脑图
?️应急响应?️
⬆️宏观题
1.基本思路流程
- 收集信息:收集客户信息和中毒主机信息,包括样本
- 判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
- 抑制范围:隔离使受害⾯不继续扩⼤
- 深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
- 清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
- 产出报告:整理并输出完整的安全事件报告
2.Windows入侵排查思路
-
检查系统账号安全
-
查看服务器是否有弱口令,远程管理端口是否对公网开放(使用
netstat -ano
命令、或者问服务器管理员) -
lusrmgr.msc
命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉 -
用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号
-
结合日志,查看管理员登录时间、用户名是否存在异常
检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”,导出 Windows 日志–安全,利用 Log Parser 进行分析
-
-
检查异常端口、进程
netstat -ano
检查端口连接情况,是否有远程连接、可疑连接- 任务管理器-进程
-
检查启动项、计划任务、服务
-
检查系统相关信息
查看系统版本以及补丁信息
查找可疑目录及文件
-
日志分析
3.Linux入侵排查思路
-
账号安全
who 查看当前登录用户(tty本地登陆 pts远程登录) w 查看系统信息,想知道某一时刻用户的行为 uptime 查看登陆多久、多少用户,负载
1、用户信息文件/etc/passwd root:x:0:0:root:/root:/bin/bash account:password:UID:GID:GECOS:directory:shell 用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell 注意:无密码只允许本机登陆,远程不允许登陆 2、影子文件/etc/shadow root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7::: 用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
/etc/passwd
存储一般的用户信息,任何人都可以访问;/etc/shadow
存储用户的密码信息,只有 root 用户可以访问 -
历史命令
通过 .bash_history 查看帐号执行过的系统命令 1、root的历史命令 histroy 2、打开 /home 各帐号目录下的 .bash_history,查看普通帐号的历史命令 历史操作命令的清除:history -c 但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录
-
检查异常端口
netstat -antlp|more 查看下pid所对应的进程文件路径, 运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)
-
检查异常进程
ps aux | grep pid
-
检查开机启动项
开机启动配置文件
/etc/rc.local /etc/rc.d/rc[0~6].d
-
检查定时任务
crontab -l 列出某个用户cron服务的详细内容 Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务) crontab -e 使用编辑器编辑当前的crontab文件 如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件 2、利用anacron实现异步定时任务调度
重点关注
/var/spool/cron/* /etc/crontab /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/ /etc/anacrontab /var/spool/anacron/*
-
检查服务
chkconfig –list 命令,可以查看系统运行的服务
-
检查异常文件
-
检查系统日志
Linux的登录日志查看文件
- 日志默认存放位置:/var/log/
- 查看可登录的账户 cat/etc/passwd|grep ‘/bin/bash’
- 查看所有用户最后的登录信息 lastlog
- 查看用户最近登录信息 last 其中,/var/log/wtmp 存储登录成功的信息、btmp 存储登录失败的信息、utmp 存储当前正在登录的信息
- 查看当前用户登录系统情况 who
Linux常用排查命令
这个问题就是 linux 入侵排查排查的一部分
https://cloud.tencent.com/developer/article/1822210
系统信息
- 查看当前系统状态 top
- 操作系统信息 uname -a
- 查看当前系统进程信息 ps
- 查看历史命令 history
- 列出本机所有的连接和监听的端口 netstat
- 查看谁在使用某个端口 lsof
用户登录
-
查看当前用户登录系统情况 who
-
分析超级权限账户 awk-F: ‘{if($3==0)print $1}’/etc/passwd
-
查看可登录的账户 cat/etc/passwd|grep ‘/bin/bash’
-
查看用户错误的登录信息 lastb
-
查看所有用户最后的登录信息 lastlog
-
查看用户最近登录信息 last
/var/log/ 其中,/var/log/wtmp 存储登录成功的信息、btmp存储登录失败的信息、utmp存储当前正在登录的信息
-
查看空口令账户 awk-F: ‘length($2)==0 {print $1}’/etc/shadow
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
- 不允许 root 账号直接登录系统,
文件系统
- 设置 umask 值
vi /etc/profile
添加行umask 027
- 设置登录超时
vi /etc/profile
修改配置文件,将以TMOUT=
开头的行注释,设置为TMOUT=180
日志
-
启用 syslogd 日志,配置日志目录权限,或者设置日志服务器
-
记录所有用户的登录和操作日志,通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查
https://www.alibabacloud.com/help/zh/faq-detail/49809.htm
IP 协议安全要求
- 远程登录取消 telnet 采用 ssh
- 设置 /etc/hosts.allow 和 deny
- 禁止 ICMP 重定向
- 禁止源路由转发
- 防 ssh 激活成功教程,iptables (对已经建立的所有链接都放行,限制每分钟连接 ssh 的次数)+ denyhost (添加 ip 拒绝访问)
Linux 安全基线检查
Linux:https://cloud.tencent.com/developer/article/1668982
Windows 安全基线检查
Windows:https://cloud.tencent.com/developer/article/1668937
主要包括五个方面:身份鉴别、访问控制、安全审计、资源控制、剩余信息保护
-
身份鉴别
更改缺省账户
检查Guest用户是否禁用
密码复杂性要求
密码长度最小不能小于8位
-
访问控制
共享账户检查
远程关机授权
本地关机
授权帐户登陆
-
安全审计
用户登录日志记录
系统日志完备性检查
登录超时管理
-
资源控制
登录超时管理
远程登录超时配置
-
剩余信息保护
不显示上次的用户名
关机前清除虚拟内存页面
不启用可还原的加密来存储密码
中间件基线规范(APACHE)
https://www.alibabacloud.com/help/zh/faq-detail/52981.htm
配置
- 账号
- 授权
- 日志
- session 过期时间(防ddos)
- 绑定监听地址
禁止
- 目录权限
- 访问外部文件
- CGI
- 非法HTTP方法(PUT DELETE)
隐藏
- 服务版本号
- 重定向错误页面
删除
- 配置文件
- 默认安装的无用文件
中间件常见漏洞
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远程代码执行
Linux、Windows安全加固
IIS 服务器应该做哪些方面的保护措施?
整理来源:http://www.williamlong.info/archives/118.html
- 保持 Windows 升级
- 使用 IIS 防范工具
- 移除缺省的 Web 站点
- 如果你并不需要 FTP 和 SMTP 服务,请卸载它们
- 有规则地检查你的管理员组和服务:
- 严格控制服务器的写访问权限
- 设置复杂的密码
- 减少/排除 Web 服务器上的共享
- 禁用 TCP/IP 协议中的 NetBIOS
- 使用 TCP 端口阻塞
- 仔细检查 .bat 和 .exe 文件:每周搜索一次 .bat
- 管理 IIS 目录安全
- 使用 NTFS 安全
- 管理用户账户
- 审计你的 Web 服务器
Linux系统安全加固需要注意的内容
- 关闭不必要的系统服务
- 更改 SSH 默认端口
- 禁止 root 用户远程 ssh 登录
- 限制用户使用 su 命令切换 root
- 密码复杂度策略
- 检查密码重复使用次数限制
- 检查是否存在空口令账号
- 禁止同时按下 ctrl+alt+del 重启
- 禁用 telnet 服务
框架漏洞&常见命令注入漏洞?php? Strust2 ?
- Struts2 OGNL 注入
- weblogic
- fastjson
- TP5 代码执行
- laravel:debug mode 远程代码执行漏洞(CVE-2021-3129)
- Spring Expression Language SPEL 表达式注入
- Spring Security Oauth2 远程代码执行
- Spring框架漏洞总结
常见安全工具、设备
工具
- 端口及漏洞扫描: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:反病毒系统
- IDS
-
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 等资源,目前的应付手段有:
- 优化资源消耗高位置的代码
- 增加硬件设备
- 上云
- 购买专业安全公司的安全服务
- 除此之外,隐藏服务器的真实 IP、上云 WAF、CDN、 负载均衡等设备,或者暂时将域名解析到公安网警网站等也是可以作为选择方案
- 网络设备设施
- 拼带宽,加大带宽,但是成本太高
- 使用硬件防火墙
- 选用高性能设备
- 抗 D 思想和方案
- 负载均衡
- 花钱买流量清洗服务
- CDN:web 层,比如 cc 攻击
- 分布式集群防御
- 高防:防大部分攻击,udp、大型的 cc 攻击
- 预防为主
- 系统漏洞
- 系统资源优化
- 过滤不必要的服务和端口
- 限制特定流量:检查访问来源做适当限制
挖矿病毒判断&挖矿常见手段&处理
挖矿木马占用系统资源进行挖矿行为,一般电脑会有以下特征
- 系统响应缓慢
- CPU/显卡使用率过高
- 内存/带宽占用高
登录进可疑主机后,可以通过以下方式确认挖矿木马(即入侵排查流程)
- 查看进程(系统命令 ps、Is 有可能被替换)
- 检查日志、检查系统用户
- 发现异常文件
挖矿常用手段
- 未授权访问或弱口令:Redis 未授权访问、Docker API 未授权访问、Hadoop Yarn 未授权访问、NFS 未授权访问、Rsync 弱口令、PostgreSQL 弱口令、Tomcat 弱口令、SSH 弱口令、Telnet 弱口令、Windows 远程桌面弱口令
- 远程命令执行漏洞:WebLogic XML 反序列化漏洞、Jenkins 反序列化、Jboss 远程代码执行、Spring 远程代码执行、ElasticSearch 命令执行、永恒之蓝、Struts2 系列漏洞、常见 CMS 的远程命令执行漏洞
- 新爆的高危漏洞:一般每次爆发新的高危漏洞,都会紧跟一波大规模的全网扫描利用和挖矿
清除挖矿木马
原因排查
一旦发现服务器被挖矿,应该首先查看挖矿进程所属的用户,根据挖矿进程的运行用户去排查该用户下是否还运行着其它进程,确定这些进程是否有上述经常被黑客利用的漏洞。如果有常见的漏洞,则应该重点对此进行排查找到原因
清除木马
-
及时隔离主机
部分带有蠕虫功能的挖矿木马在取得本机的控制权后,会以本机为跳板机,对同一局域网内的其他主机进行已知漏洞的扫描和进一步利用, 所以发现挖矿现象后,在不影响业务的前提下应该及时隔离受感染主机,然后进行下一步分析
-
删除文件、阻断与矿池通讯
iptables -A INPUT -S xmr.crypto- pool.fr -j DROP iptables -A OUTPUT -d xmr.crypto- pool.fr -j DROP
-
清除定时任务
大部分挖矿进程会在受感染主机中写入定时任务来完成程序的驻留,当安全人员只清除挖矿木马时,定时任务会再次从服务器下载挖矿进程或者直接执行挖矿脚本,导致挖矿进程清除失败
-
清除启动项
有的挖矿进程为了实现长期驻留,会向系统中添加启动项来确保系统重启后挖矿进程还能重新启动,所以在清除时还应该关注启动项中的内容如果有可疑的启动项,也应该进行排查,确认是挖矿进程后,对其进行清除
-
kill 挖矿进程
对于单进程挖矿程序,直接结束挖矿进程即可。但是对于大多数的挖矿进程,如果挖矿进程有守护进程,应先杀死守护进程再杀死挖矿进程,避免清除不彻底
在实际的清除工作中,应找到本机上运行的挖矿脚本,根据脚本的执行流程确定木马的驻留方式, 并按照顺序进行清除, 避免清除不彻底 -
清除公钥文件
在用户 home 目录的 .ssh 目录下放置 authoruzed_keys 文件,从而免密登录该机器也是一种常见的保持服务器控制权的手段。在排查过程中应该查看该文件中是否有可疑公钥信息,有的话直接删除,避免攻击者再次免密登录该主机
服务器存在webshell,如何处理?
网站被植入 webshell,意味着网站存在可利用的高危漏洞,攻击者通过利用漏洞入侵网站,写入 webshell 接管网站的控制权
- 及时隔离主机
- 定位事件范围,查看文件 webshell 文件的创建时间,对 webshell 取证样本
- 通过创建时间结合日志分析可疑行为,以及启动用户的其他进程确定漏洞
- 清除 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 只使用了 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 的连接关系
- 第一次握手:客户端发送
SYN
报文,并进入SYN_SENT
状态,等待服务器的确认 - 第二次握手:服务器收到
SYN
报文,需要给客户端发送ACK
确认报文,同时服务器也要向客户端发送一个SYN
报文,所以也就是向客户端发送SYN + ACK
报文,此时服务器进入SYN_RCVD
状态 - 第三次握手:客户端收到
SYN + ACK
报文,向服务器发送确认包,客户端进入ESTABLISHED
状态。待服务器收到客户端发送的ACK
包也会进入ESTABLISHED
状态,完成三次握手
四次挥手(Four-Way-Wavehand)
当我们的应用程序不需要数据通信了,就会发起断开 TCP 连接。建立一个连接需要三次握手,而终止一个连接需要经过四次挥手
- 第一次挥手:客户端发送一个
FIN
,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1
状态 - 第二次挥手:服务端收到
FIN
后,发送一个ACK
给客户端,确认序号为收到序号 +1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT
状态 - 第三次挥手:服务端发送一个
FIN
,用来关闭服务端到 客户端的数据传送,服务端进入LAST_ACK
状态 - 第四次挥手:客户端收到
FIN
后,客户端进入TIME_WAIT
状态,接着发送一个ACK
给服务端,确认序号为收到序号 +1,服务端进入CLOSED
状态,完成四次挥手
一个大范围影响的0day被曝光,作为甲方安全工程师,应该如何处理(★★)
- 首先是评估 0day 对自身系统的影响(这部分评估需要根据漏洞利用的利用点、是否需要交互、是否会影响系统的 CIA,是否有在野利用 poc,影响资产是否暴露在公网等很多因素决定,详情可以参考 CVSS )
- 如果确定有影响的话且有 poc,第一件事是先分析 poc 执行后会在什么地方留下痕迹,我们有什么样的设备去采集这些痕迹所留下的数据,比如说 ntlm relay 这种,可以考虑从 Windows 事件日志当中 event_id 等于 4769 的事件入手编写对应的规则,这样的话可以利用 SIEM 或者实时日志分析平台跑起来,可以建立起初步的感知防线,后期触发告警,人肉运营也可以快速止损
- 日常建立完整的纵深防御体系,不要依赖于某一道防线
服务器操作系统的安全防范?
- 停止运行不需要的软件(很可能成为外部攻击的入口)
- 定期实施漏洞防范措施(选定软件时确认软件的升级状况,确定打补丁方式,关注各种漏洞信息,确认漏洞后调查补丁状况以及防范对策,并制定对应计划)
- 对不需要对外公开的端口或者服务加以访问限制(通过端口扫描确认各端口服务状态)
- 提高认证强度
怎么发现有没有被攻击
攻击判断可以建立在设备的基础上,利用设备的告警,如果没有设备的话可以参考以下
网站被攻击:网站被跳转到赌博网站,网站首页被篡改,百度快照被改,网站被植入 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日志分析技巧命令
-
定位有多少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=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
-
删除用户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 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
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 rootC:\Windows\php.ini
//php 配置信息C:\Windows\my.ini
//Mysql 配置信息
如何分析被代理出来的数据流
分析数据包请求头中的 xff、referer 等收集有用的信息
windows端口进程间转换
端口->进程
netstat -ano | findstr “port”
查看目前的网络连接,定位可疑的 ESTABLISHED- 根据
netstat
定位出的 pid,再通过tasklist
命令进行进程定位tasklist | findstr “PID”
查看进程对应的程序位置
任务管理器–选择对应进程–右键打开文件位置运行输入 wmic,cmd界面 输入 process
查看 Windows 服务所对应的端口
%system%/system32/drivers/etc/services
(一般 %system% 就是 C:\Windows)
查看windows进程的方法
- 开始 – 运行 – 输入
msinfo32
命令,依次点击 “软件环境 – 正在运行任务” 就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期以及启动时间等 - 打开D盾_web查杀工具,进程查看,关注没有签名信息的进程
- 通过微软官方提供的 Process Explorer 等工具进行排查
查看可疑的进程及其子进程。可以通过观察以下内容:
- 没有签名验证信息的进程
- 没有描述信息的进程
- 进程的属主
- 进程的路径是否合法
- CPU 或内存资源占用长时间过高的进程
你能说明文件上传的原理吗?
-
PHP:如果系统中存在可以上传文件的功能点,就可以上传后门脚本文件,通过一些方法绕过上传限制,如果能访问后门的的话,系统存在文件上传漏洞,可以借助后门执行命令
-
Java:上传 jsp 代码
-
Asp/Aspx
-
Python:因为脚本需要译后生成 pyc 字节码文件,所以不存在文件上传
文件上传攻击特征?
能够上传文件的接口,应用程序对用户上传文件类型不校验或者校验不严格可绕过,导致任意类型文件上传,攻击者可上传 webshell 拿到服务器权限,在这个过程中攻击者必然会上传恶意脚本文件
文件上传加固方法?
-
后端限制文件上传白名单,头像不允许上传 svg
-
上传后文件随机重命名,不要输出保存文件位置
-
图片文件可以二次渲染,使用对象存储 oss
-
文件目录取消执行权限,PHP 设置 basedir
用过Nmap扫描工具吗
nmap 扫描基础命令
- -sT TCP (全)连接扫描,准确但留下大量日志记录
- -sS TCP SYN (半)扫描,速度较快,不会留下日志
- -sN null 扫描,标志位全为 0,不适用 Windows
- -sF FIN 扫描,标志位 FIN=1,不适用 Windows
- -O 查看目标主机系统版本
- -sV 探测服务版本
- -A 全面扫描
你做过渗透测试的工作吗?
首先信息收集,收集子域名、Whois、C段、旁站、Web 系统指纹识别,然后测试 web 系统的漏洞
暴力激活成功教程加固方法?
-
添加强度较高的验证码,不易被激活成功教程
-
修改密码设置规则,提高用户的密码强度
-
同一账号登陆次数锁定,生成锁定日志
-
定期排查弱口令
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的优缺点
-
JSONP 的主要优势在于对浏览器的支持较好;虽然目前主流浏览器都支持 CORS,但 IE9 及以下不支持 CORS
-
JSONP 只能用于获取资源(即只读,类似于 GET 请求);CORS 支持所有类型的 HTTP 请求,功能完善
-
JSONP 只会发一次请求;而对于复杂请求,CORS 会发两次请求
应用场景
如果需要兼容IE低版本浏览器,无疑,JSONP
如果需要对服务端资源进行操作,无疑,CORS
其他情况的话,根据自己的对需求的分析来决定和使用
http状态与无连接
无连接
- 每一个访问都是无连接,服务器挨个处理访问队列里的访问,处理完一个就关闭连接,这事儿就完了,然后处理下一个新的
- 无连接的含义是限制每次连接只处理一个请求服务器处理完客户的请求,并收到客户的应答后,即断开连接
无状态
-
协议对于事务处理没有记忆能力
-
对同一个 url 请求没有上下文关系
-
每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况
-
服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器
什么是路由表
在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)路由表中含有网络周边的拓扑信息路由表建立的主要目标是为了实现路由协议和静态路由选择
每个路由器中都有一个路由表和 FIB(Forward Information Base) 表:路由表用来决策路由,FIB 用来转发分组路由表中有三类路由:
- 链路层协议发现的路由(即是直连路由)
- 静态路由
- 动态路由协议 RIP、OSRF 发现的路由
非sql数据库
Zookeeper,HBase、Redis、MongoDB、Couchbase、LevelDB
常见OA系统
PHP:通达OA、泛微 Eoffice
Java:泛微OA/云桥、致远OA、蓝凌OA、用友OA
ASP:启莱OA
横向越权漏洞的修复
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源
纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源
对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限来避免
为了防止横向越权,我们可以使用缓存来进行辅助,当登录成功或者进行操作时,我们在缓存中存储一对由用户名和一个唯一的数字组成的数据(token),然后返回放入的唯一数据在重置密码时我们的参数不仅需要用户名和密码还需要前面生成的唯一数字,根据用户名在缓存中取出对应的数字,如果取出的数字和参数中传入的想等,则证明重置的当前用户的密码,否则不是,且不予以重置
如何打击黑灰产工具
-
全面监控和快速响应(溯源):对黑灰进行长期跟进,了解黑灰产工具的传播链条和路径,第一时间捕获活跃的黑灰产工具(建立特征词监控,数据取样、交叉分析)
-
建立软件指纹库,增加风险识别能力
-
建立黑灰产情报共享,最大化情报价值
如何反爬
-
后台对访问进行统计,如果单个 IP 访问超过阈值,予以封锁
-
后台对访问进行统计,如果单个 session 访问超过阈值,予以封锁
-
后台对访问进行统计,如果单个 userAgent 访问超过阈值,予以封锁
-
以上的组合
Linux下查找服务端口的命令
Linux下查找服务端口的命令?一句话查找80端口服务的命令?
使用grep 命令 要使用 grep 命令在Linux 中查找指定服务的默认端口号,只需运行
grep <port> /etc/services
grep services /etc/services
如何发现钓鱼邮件
钓鱼邮件发现
发现途径如下:
邮件系统异常登录告警、员工上报、异常行为告警、邮件蜜饵告警
推荐接入微步或奇安信的情报数据。对邮件内容出现的 URL 做扫描,可以发现大量的异常链接
钓鱼邮件处置
https://www.freebuf.com/articles/es/264037.html
-
屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问
根据办公环境实际情况可以在上网行为管理、路由器、交换机上进行屏蔽
邮件内容涉及域名、IP 均都应该进行屏蔽
对访问钓鱼网站的内网 IP 进行记录,以便后续排查溯源可能的后果
-
屏蔽钓鱼邮件
屏蔽钓鱼邮件来源邮箱域名
屏蔽钓鱼邮件来源 IP
有条件的可以根据邮件内容进行屏蔽
删除还在邮件服务器未被客户端收取钓鱼邮件
-
处理接收到钓鱼邮件的用户
-
根据钓鱼邮件发件人进行日志回溯
此处除了需要排查有多少人接收到钓鱼邮件之外,还需要排查是否公司通讯录泄露。采用 TOP500 姓氏撞库发送钓鱼邮件的攻击方式相对后续防护较为简单。如果发现是使用公司通讯录顺序则需要根据通讯录的离职情况及新加入员工排查通讯录泄露时间。毕竟有针对性的社工库攻击威力要比 TOP100、TOP500 大很多
-
通知已接收钓鱼邮件的用户进行处理
-
删除钓鱼邮件
-
系统改密
-
全盘扫毒
-
-
后续:溯源、员工培训提升安全意识
如何查看区分是扫描流量和手动流量
(扫描数据量大,请求有规律,手动扫描间隔较少)
遇到.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 产品有三种
-
云 Waf
用户不需要在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,它的主要实现方式是利用 DNS 技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器
-
Web 防护软件
安装在需要防护的服务器上,实现方式通常是 Waf 监听端口或以 Web 容器扩展方式进行请求检测和阻断
-
硬件 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
如果现在要你写一个检测命令注入的脚本?
你会怎么写,有哪些要注意的地方,如果别人的脚本检测出来了你的脚本没检测出来你觉的你的脚本会存在什么问题,脚本检测过程中如果没有回显你会怎么做
?️溯源
⬆️基本步骤
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 信息泄露
主动防御
- 浏览器指纹技术
- 网络欺骗技术,蜜罐蜜网
流量溯源
可利用流量工具 wireshark 进行溯源:
- 查看 eval、 z0、 shell whoami 等关键字,查看出现次数过多的时候, 需要查看是哪个页面发起的请求,有可能是 webshell
- 通过 WireShark 工具快速搜索关键字,定位到异常流量包
- 找出异常 IP 和所上传的内容,查看是否为 webshell
如何定位到攻击IP:
-
首先通过选择 – 统计 – 对话查看流量的走向情况, 定位可疑的 IP 地址
-
根据定位到的 IP 地址,尝试对上传的 webshell 进行定位
ip.addr == ip && http matches "uploadllevallselectlxp_cmdshell" && http.request.method == "POST"
-
查找到 webshell 后尝试溯源漏洞位置
http.request.uri contains "webshell.php"
定位到最开始 webshell 执行或上传的时候
-
根据最开始的 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 等
优秀文章
⬆️其他
对蜜罐的了解
脑图
图源网络侵删
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149171.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...