0x1 本周话题TOP3
话题1:请教大家一个问题,获取客户端请求的真实IP地址,通过XFF的方式,伪造只能在左侧伪造吧,不考虑本地代理的问题,XFF里面总会有一个真实IP地址吧。
A1:可以这么理解,一般xff左侧是外部发来的,右侧是内部反代的,去掉右侧内部的反代ip,然后最靠近内部反代ip的就可以认为是真实ip,当然前提是内部反代转发xff的时候不给瞎改。
A2:好的,只要能获取到真实ip就可以。
A3:有些应用原来没有xff字段,攻击者伪造了,通过xff取出来的就都是假ip。客户端-waf-elb-源站,获取到ip总是不对。
A4:有一些CDN会有防伪造xff的功能,如果没上CDN,如果代理 ip是从左边加,那在取真实IP的时候,最好是从右向左取。要看xff是谁塞的IP,可不可信。
A5:waf也是说可以防止xff伪造的,结果测试结果waf取的xff就是从客户端传过来的xff
A6:这次攻防演练就碰到伪造xff的攻击队了。
A7:如果没有防伪造的能力,联动防火墙封禁就是一场灾难。
A8:用x-real-ip取到的是waf的ip。
Q:xff字段在哪里加的?
A9:这个不一定吧,碰到过XFF插多个IP的恶意请求。
A10:好像要看你们负载设备的规则,有时候真实IP是在最左侧,有的设备是最右侧。
A11:我在本地做了个实验。
nginx配置如下:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
nginx获取的访问日志如下
X-Real-IP 100.125.86.111
X-Forwarded-For 1.1.1.1, 2.2.2.2, 3.3.3.3, 103.102.193.26, 124.70.125.49, 100.125.86.111
X-Real-IP值为ELB的IP
XFF值内容:伪造IP, 伪造IP, 伪造IP, 客户端真实IP, WAF的IP, ELB的IP
X-Real-IP 如果是直接访问的请求,可能是客户端真实的 IP 地址,但是中间若经过了层层的代理,就是最后一层代理的 IP 地址。
A12:这个nginx把remote_addr给了x-real-ip,所以取到的值是elb的ip,如果直接取x-real-ip,这个值就是waf的ip地址。xff建议泳公司内部命名的xff 不要用标准的。
A13:一般这么搞:自己可信环境内的第一层,把收到的remoteip或者xff的最右填入x-real-ip(如果下游非七层设备,甚至放remoteip),xff留着分析链路用,伪造确实是左侧伪造。
Q:没有考虑多层浮在的情况,如果前面是CDN呢?
A14:xff只要有一层是真实的客户端ip就可以的
A15:没有cdn
A16:其实就是网关要删除自带xff和xri。
A17:如果你不需要分析链路,甚至可以除了第一层设备,后面的全都不插xff。
A18:这样xff的最右就是真实ip。不删除,后面系统没法识别真假。
A19:waf和elb都是7层的产品,最xff最右侧的值不能伪造就可以的。
A20:那就取过代理前最右侧的值。
A21:这个会比较麻烦,有的地方取倒数第三个,有的地方也需要倒数第四个。
A22:一般安全设备做不了,只能写代码取最内网IP前面的那个公网IP。
Q:上层代理没有透传他拿到的remote-addr么?
A23:为什么要相信xff这种本身就不完全信任的值
A24:拿第一层设备的remoteip是最妥当的,也就是两组数据。
A25:上层设备比如cdn, waf一般都会在hdr里加上remote-addr的映射, 取那个值透传就行。
A26:是这么想的,可惜厂商不支持。
A27:我们是在waf前面加个header头,然后前面nginx取真实ip的时候,定位到waf的ip,往前取一位,再然后往后传realip字段。
A28:谢谢群里大佬给的解答,已经找到解决方法了,只要XFF值waf前面的IP不能伪造,就取这个IP。
A29:如果是外部有cdn,内部有waf反代的,那还要跟cdn那边协商统一字段,好像还挺麻烦的。
A30:CDN可以直接要求对方将取到的值放到XFF回源回来。
话题2:ips检测到攻击流量,发送reset包重置TCP。恶意攻击者感知到后,可以做到让目标忽略reset继续通信吗?
A1:做不到吧。可以忽略的,但是没用,因为都是双向reset。
A2:嗯,MITRE说响应手段向两台主机发送reset不好,攻击者是恶意的,可以知道有个ips还可以忽略重置。
A3:我没想明白目标侧怎么忽略?三次握手都没完成应该控制不了。
reset可以在任何时候断开链接。原来最早ips都是单向reset,被忽略多了,现在基本都是双向 或者拦截包不透传。
在有的架构下只能用reset方式,比如云。总之双向reset不能忽略对吧,总是成功的(只要更快)。
c/s 黑客在c的话,发向s的reset 黑客去不掉啊。中间的设备会向 c 以及 s 同时发。
A4:我也是这么理解的。所以我理解不了MITRE为啥那么说
A5:同在内网,是可以iptables忽略的吧。
A6:我认为总是只能忽略发向攻击机的,不能忽略受害机的,所以连接还是建立不起来。
A7:对,发往s的可以忽略。成功率还得考虑延迟的问题。
A8:某家IPS是用的RST实现阻断么。如果是旁路的就可能会有延迟。取决于部署模式,不是透明方式,旁路的肯定reset。
A9:日常使用中,始终感觉rst阻断有失败的呢。rst对udp包没法拦截。web3.0要是普及了,这种拦截模式就不灵了。
A10:嗯,URL也没法精准。URL级别的拦截。比如被黑的网站,整体OK,某几个链接恶意。双向rst如果有办法对付的话,也就能用来那啥了。因为那啥也是双向rst。
A11:某个云函数地址,不过由于发双向rst无法做到万无一失。所以我试过用这个那啥,还是可以的。当然如果用这个思路来打攻击流量,可能会造成海量告警。
话题3:各位大佬请教一下,如何评价乙方安全测试的效果?例如渗透测试、app代码审计等,每一项测试每年只请一家乙方安全公司做。甲方要看到效果,从数据上或者从必要性上。可问题是怎么横向对比,或者有没有更好的办法进行评价?
A1:通过提交问题的数量和质量?
A2:一开始有个A厂商来,发现了100个漏洞,之后有个B厂商来,发现了6个漏洞,谁的价值大?
A3:如果今年的和去年都差不多呢?
A4:嗯,就是要定期换厂商,可是换之前可能有人问为啥换,服务更好还是价格更便宜。所以又回到如何评价上来了。
A4:不一样厂家测试渗透测试方法不一样,你又没费用让大家都来测试一下,那就只能换着来。
Q:不应该是找多厂商横向比对吗?
A5:众测会不会好点?
A6:甲方人员应该需要定期抽检并具备验证的能力。
A7:签合同只有一家,没办法横向。
A8:众测不好算费用,预算可能hold不住,也可能全剩下。
A9:不过话说还有种办法就是搞比赛,做实战演练,给内部应用地址。
A10:一开始众测费用肯定高的,后面会少很多,但要有专业技术人员(懂业务等)可以评估。
Q:评估是否是漏洞吗?
A11:组织比赛免费测,然后给奖金。评估漏洞的危害及可利用难易程度。嗯,类似众测了。
A12:对根据漏洞给奖金,这样可以避免某友商的问题。
Q:众测的会不会出现公司一次性接受不了那么多的漏洞的情况,一次性挖的太多。
A13:以前遇到,内部漫游了,但是内部重要系统层层防御,干不进去拿不了分,最后变成免费渗透的情况。
A14:先做渗透把一些基础常见的漏洞都干掉后,再做这个,这样发现的也都是相比较价值高的。
A15:嗯,看来集思广益还是很好的。大家的思路都是在安全测试后进行二次测试(众测、组织比赛给奖励、自主测试等),还有其他思路吗?
A16:两者纯比较数字有些不合理,我个人认为应该要看漏洞重复率、系统漏洞发现点重复率、漏洞常见率等指标吧。
A17:我这边购买渗透测试服务,通常会选HVV排名靠前的公司,要求必须得有参加演练活动的人参与此次项目。
另外付费模式是采用按效果付费,一定程度上防止摸鱼的行为。
A18:一把打穿的漏洞才算真漏洞。
Q:要求必须得有参加演练活动的人参与此次项目,请问这个如何保证呢?因为经常有实习生挂高级title这种情况。
A19:大型攻防演习活动,我们也参加攻击方,有些圈子的。或者可以面试。
A20:面试渗透队员吗?我不知道怎么看,只能看有些选手有点面相年轻。
A21:实在不知道问啥你就让他介绍自己的成果。
A22:对我们来说不存在这种问题。本身就是红队出身的,问一两句就知道啥水平了。你们可以招个之前打红队的。
另外年轻才可能是一线,稍微年纪大点打不动一线了。我参加大型攻防演习现场一天只睡三四个小时,连轴两周,结束一个月胸口都还是疼的。年纪大的根本熬不动。
A23:打的时候这么苦?一帮小弟呢?
A24:分数咬的死的时候,真的大家都拼命搞的。多搞个目标下来才能拉开身位。不是大家理解的最后阶段再搏一搏。一般最后两天基本都打不动了。就是眼睛看着电脑,脑子已经转不动了。
A25:你们是参加红队呀,我还以为群里大都蓝队。
A26:红队转蓝队了,所以说找没有参加活动的问个一两句就知道是真的假的了。
A27:红队转蓝队,感觉是要降维打击啊。
A28:也没有,做甲方只做技术肯定是不行的。
A29:蓝队转红队更降维点。
A30:转不了的,蓝队没法转红队,一线对抗经验是真的花时间精力磨出来的。你搞几年蓝队思路都是蓝队思路,路数骚不起来的。
比如钓鱼这个东西,台本多的就是花里胡哨的让人家中招。免杀对抗思路这些,免杀对抗思路这些,现在红队卷的很,每年的打法都在进步。手里没点0day凭啥参加活动,没0day就是去给人家垫底的,免杀做的不好,白浪费打的点。钓鱼惊到鱼了,这几天你都不好钓了,毕竟活动就那几天。
我记得我在现场有个最有意思的事情,就是有个队,拿网上出轨的小作文改了改投放到某家防守方那边去了。被立马通报批评了。说这种对人家人身攻击,被扣了2000走。
还有个,来的时候可装逼了,说专打金融和电网,第一天就踩了电网的蜜罐,一分都没有倒扣2000,当时给我们都乐坏了,当时给我们都乐坏了被完整溯源了。
A31:那是连隐蔽都不做。
A32:咱也不知道他们是咋玩的,就各种花里胡哨的。
Q:常规渗透测试的人天数大家一般是怎么估算的?有啥比较好用的计算方法吗?
A33:看功能点,看系统功能和大小 。
A34:测试方有个项目经理在,他说多少就是多少。用人就要充分信任。有时候人家加班到深夜,一天算1.5,算2都可以。另外还是事先要沟通好,我之前都是让他们报给我 只要没太大出入,都给过。
A35:渗透测试一般按系统和资产数量来核算工作量。当然你自己有工单系统,有漏洞平台和流量审计,也有签到打卡。但这些东西我都不怎么看的,你真心对他们好,小兄弟们也会真心帮你认真测。以前有个特别贱的单位就是你去他现场测,他现场跟你看着算工时。
0x2 本周精粹
0x3 群友分享
【安全资讯】
紧急通知!快更新iPhone!苹果发现两大严重安全漏洞!黑客能完全操控你手机
【安全技术】
共性成果 | 安全保护框架,一张“神图”出品的故事
网络安全能力成熟度模型(C2M2)中文版发布
安全运营中心能力成熟度模型专题【三】-金融行业能力安全运营能力成熟度模型(FCSO-CMM)
——————————————————————————–
【金融业企业安全建设实践群】和【企业安全建设实践群】每周讨论的精华话题会同步在本公众号推送(每周)。根据话题整理的群周报完整版——每个话题甲方朋友们的展开讨论内容——每周会上传知识星球,方便大家查阅。
往期群周报:
对当下热点事件的探讨,以及对“数字化”及“数字化转型”背景下企业信息安全建设路径的思考| 总第160周
针对堡垒机的攻击场景或风险有哪些,关于补丁更新的探讨等| 总第159周
如何进群?
如何下载群周报完整版?
请见下图:
原文始发于微信公众号(君哥的体历):通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周