近期一次护网蓝队面试记录分享
前言
以下为近期的一次蓝队面试记录,答案为本人回答仅作参考,错误之处,多多包涵
面试过程及回答
自我介绍
如实回答学校经历,是否参与项目,尽量简短把你参与的项目和成功说出来就行
使用过哪些设备,出现误报怎么办(在校生未使用,网上搜的,背诵就行)
天眼,EDR,全流量警告,态势感知,APT,蜜罐设备
先去查看设备的完整流量日志等信息确认是否为误报,误报就是规则处理,上报处置,提供规则优化建议
怎么判断攻击是否真实,是否攻击成功
分析请求包、响应包,分析攻击特征,payload和告警不匹配,多数为误报,也可以查看攻击方向,如果是内对内,多半就是误报,也要具体去分析流量,看响应包内容,请求包如果有执行whoami命令,响应包有root那肯定执行成功了,如果有大批量告警,可以看有没有特殊的响应包判断,重点关注200的数据包,实在无法判断是否攻击成功,自己去复现一下
webshell流量特征
首先通过一些高危的函数判断是否为webshell,会有频繁的HTTP请求,异常的请求方法,base64编码的数据
菜刀:使用HTTP协议通信,请求的payload为base64编码,UA中存在百度或者火狐,大多为POST请求,请求的地址为webshell地址,请求体中有固定字符QGluaV9zZXQo
蚁剑:很多代码源于菜刀,流量也会比较相似,使用AES算法进行加密,使用的UA是固定的,请求中比较明显的特征为@ini_set("display_errors","0"),加密后的参数多数是0x=这种形式
冰蝎:老版本的话会有个密钥协商过程,这个过程是明文传输的,响应包就会有16位的密钥,新版本各种语言的webshell中都会存在16位数的连接密码,默认变量为K,像Content-type、Accept为固定的
webshell检测思路
通过匹配特征码,特征值,危险函数来查找webshell ,webshell如果传到服务器了,在执行函数时这些对于系统调用、系统配置、数据库、文件的操作动作都是可以作为判断依据,Linux下就是nobody用户起了bash,Windows下就是IIS User启动 cmd,这些都是动态特征。再者如果黑客反向连接的话,那很更容易检测了,Agent 和IDS都可以抓现行,Webshell总有一个 HTTP 请求,如果我在网络层监控 HTTP,并且检测到有人访问了一个从没访问过的文件,而且返回了 200,则很容易定位到webshell。使用webshell一般不会在系统日志中留下记录,但是会在网站的 web日志中留下webshell页面的访问数据和数据提交记录
应急响应流程
收集信息:收集告警信息、客户反馈信息、设备主机信息等
判断类型:判断攻击的类型,是ddos还是被挂马了还是被控制了
控制范围:隔离目标网络不让危害扩大
寻找原因:还原攻击者的攻击链,溯源攻击者的整个过程
修复防御:直接封掉攻击者ip,对于产生的原因进行对应防御
恢复业务:将业务恢复正常
写报告:总结整个过程,反思不足之处,优化应急方案
溯源有哪些思路
通过分析设备的告警、钓鱼邮件、木马病毒找到攻击者IP,先去一些威胁情报平台搜索相关信息,判断攻击者为代理服务器还是跳板机还是国内的云服务器,查一查相关注册信息,对攻击者进行反向渗透,针对攻击者去搭建蜜罐,如果是云服务器,可以寻找到相关厂商,联系客服说自己忘记密码了,看看能不能获取到云服务器购买者信息,对于获取到的信息可以通过各种社工库搜一搜,各大搜索引擎去搜索看看能不能获取到更多信息,也可以直接把服务器厂商打下来,肯定就可以知道购买者的信息了,如果把跳板机拿下就可以去查看桌面的敏感信息,登录日志,历史执行命令这样一步一步去获取更多的信息。
怎么防范邮件钓鱼
定期组织员工安全讲座,提供员工的安全意识,企业内邮件系统使用可信赖的邮件服务,员工企业邮箱不得使用弱口令等,如果被感染了也要让大家清楚该做什么,例如直接拔网线等操作
针对dnslog的反制
对于常见的dnslog平台,直接屏蔽,如果是自己搭建的dnslog平台,批量的去ping,恶意制造各种垃圾dnslog数据,让他无法获取到有效的信息,具体可以写一个脚本进行批量探测存活,httplog也一样,使用爬虫批量进行request请求
网络基线加固思路
先看防护软件有没有升级,先升级最新版本,进行全盘扫毒,查看高危端口,高危服务,查看主机有没有被爆过漏洞的软件
windows:重命名administrator账户、禁用GUEST账户、清理系统无效账户、配置密码策略账户锁定策略 Linux:删除无用账号、检查特殊账号、添加口令策略、禁止root直接登录、设置隐藏文件属性、关闭不必要服务、更改ssh端口号防爆破
怎么修改TTL值
windows下是修改Default注册表文件,linux是修改etc/sysctl.conf文件
网页被挂马了,可能有哪些原因
服务器已经被拿下了、通过漏洞修改了前端文件、存储型XSS、可能被上传了木马病毒
怎么排查java内存马
直接利用内存马检测工具去找,github也有很多检测脚本,手工的话可以分析web日志,filter或者listener类型的内存马,会有大量路径相同参数不同的url请求,或者页面不存在但是返回200的请求,分析web.xml文件,内存马的Filter是动态注册的,web.xml是没有配置的,也有可能是中间件漏洞通过代码执行加载内存马,这就可以去排查中间件的错误日志,像哥斯拉和冰蝎的内存马也会有跟webshell相似的特征,分析特殊的classloader加载,攻击者喜欢利用TemplatesImpl和bcel加载内存马,因为内存马是驻留在内存里的,本地无class文件,通过检测Filter对应的ClassLoader目录下是否存在class文件来判断,也可以把内存中所有的Filter的class dump出来,使用工具分析是否存在恶意代码
win登录日志怎么看,判断是否登录成功
事件查看器里面有windows日志文件,在下面安全性就可以看到很多日志,登录成功的话就会有对应的事件id,登录失败就会有不同的事件id
反弹shell的原理是什么
利用TCP协议传了一个bash环境
Linux有哪些提权思路
常用的就内核提权、sudo滥用提权、suid提权、一些高权限运行的应用服务提权,例如mysql、python、vi、定时任务提权、etc/passwd滥用提权
说一下Linux利用passwd提权
这个需要对passwd有写入权限,正常root用户的uid为0,如果自己写进去一个用户把它的uid改为0的话,用这个用户登录,系统就会切到root用户了
Linux后门排查哪些东西
查看用户信息相关的文件,看看有没有多余的账户、特权账户、隐藏账户、可以远程登录的账户、sudo权限的账户,检查一下网络连接、异常进程,检查定时任务、开机启动、服务、端口、可疑的文件,检查系统日志
Linux怎么查看程序调用了哪些文件
lsof -c 指定的程序,查看多个程序的话直接在后面加就可以
SQL注入特征,误报原因,怎么处理告警
肯定会有sql语句,一些关键字select、where、order、union、update、delete,还有一些常见的函数if、user、sleep、substr、ascii等,误报的话就是正常的流量被识别成攻击流量了,可能用户误输入了一些特殊字符触发了告警
根据数据包回显内容,响应时间判断是否攻击成功,如果只是一直在进行扫描,封掉ip然后上报
文件上传怎么绕过
因为是黑盒测试,你不知道它的检测规则是怎么样的,看看对哪方面做了检测,有可能只是前端检测,再针对的去绕过,一般的话我先根据后端语言去跑一遍后缀名字典,然后去尝试各种方法,例如变换大小写,插入各种特殊字符像%00、单引号、换行符,去构造一些畸形的数据包
SSRF用哪些协议、函数,怎么绕过,修复
file、dict、ldap、gopher,可以利用curl函数、file_get_contents()函数、fsockopen()
绕过:使用短网址、进制转换、302跳转、DNS重绑
修复:禁止不需要的协议、设置URL白名单、统一返回信息、限制请求的端口
xss可以使用哪些标签
这个太多了,常用的就
<script><a<iframe<EMBED<svg<body <object<form<img
Mssql xp_cmdshell被禁用了怎么办
先看看能不能手动启用,不能的话看看有没有其他的扩展存储可以利用,有的可以执行系统命令,记得有的可以直接操作注册表,也可以利用CLR技术,类似于mysql中的UDF吧,可以直接使用16进制代码来创建自定义函数
XXE中PCDATA和CDATA有什么区别
PCDATA就是被解析的字符数据,会被解析,CDATA属于不会被解析器解析的文本
了解哪些中间件漏洞
IIS有解析漏洞,PUT任意文件写入漏洞,短文件漏洞,Apache也有解析漏洞,然后目录遍历遇到的比较多,Tomcat的话war后门部署、远程代码执行,jBoss和WebLogic的话就反序列化漏洞,weblogic还有ssrf漏洞,任意文件上传
struts2有哪些漏洞,有什么特征
文件上传、命令执行、ognl表达式注入
比较明显的就是访问的目录为.action或者.do,content-Type的值是默认的,返回的页面也可能会有struts2等字样,ognl表达式注入就会使用ognl语法,请求参数会有${},%{}字符
jboss反序列化漏洞特征,判断是否攻击成功
攻击者请求了JBOSS漏洞页面,请求体中有相关llections.map.LazyMap、keyvalue.TiedMapEntry攻击链特征,包含了命令执行语句,如果返回了500,页面报错内容有命令执行的结果那肯定就是攻击成功了
log4j有什么特征,怎么判断是否攻击成功
payload为${jndi:ldap://***}格式,如果攻击成功,目标主机会加载攻击者指定的恶意类,查看有没有相关流量,如果有源ip与dnslog或者ldap服务的外联日志记录那大概率是攻击成功了
CS攻击流量特征
UA头里面可能会有相关特征,http请求中可能包含与C2服务器通信的命令,会有心跳包,每隔几分钟传输一个信息,请求的地址是一个Jquery js文件,不同指令的心跳包也都有相关的特征,SSL证书流量也有特征,不同的becon特征也不一样
fastjson不出网且无回显怎么办
BCEL的打法进行命令执行,无回显的话尝试将执行命令结果去写入到js文件或者一些静态文件里面,然后从web去访问
psexec和wmic区别
psexec会有大量的日志,wmic就不会
PTT有哪些攻击方法
MS14-068、金票、银票
详细讲一下金票以及需要的信息
AS认证中返回的TGT是由krbtgt用户的密码Hash加密的,有krbtgt的密码hash就可以自己制作任意的TGT
需要域名、域SID、要模拟的用户名、krbtgt的hash
读hash读取不到怎么办
用工具把lsass进程dump下来,然后本地去读,或者转储sam文件,AD数据库的话可以用dcsync的方式转出来
dcsync的利用条件
需要配置两个ACL的权限就可以了
详细讲一下ACL
ACL就是访问权限,windows下不同的用户组有默认的ACL配置,你也可以单独添加权限,这样就算普通用户也可以给他添加向域管组添加用户的权限
其他
其他的问了我一些漏洞的具体挖掘过程,问了一下我在护网中遇到过哪些问题,无论技术上还是沟通上,是怎么解决的。上面很多问题回答的都比较笼统,具体师傅们可以去深入研究下
标签:webshell,文件,请求,漏洞,蓝队,面试,攻击者,日志,护网 From: https://www.cnblogs.com/guangen/p/18214983