通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周

admin 2022年8月28日16:50:23企业安全评论1 views5090字阅读16分58秒阅读模式


‍‍

通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周

通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周

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取到的是wafip。

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值为ELBIP

XFF值内容:伪造IP, 伪造IP, 伪造IP, 客户端真实IP, WAFIP, ELBIP

X-Real-IP 如果是直接访问的请求,可能是客户端真实的 IP 地址,但是中间若经过了层层的代理,就是最后一层代理的 IP 地址。

A12:这个nginxremote_addr给了x-real-ip,所以取到的值是elbip,如果直接取x-real-ip,这个值就是wafip地址。xff建议泳公司内部命名的xff 不要用标准的。

A13:一般这么搞:自己可信环境内的第一层,把收到的remoteip或者xff的最右填入x-real-ip(如果下游非七层设备,甚至放remoteip),xff留着分析链路用,伪造确实是左侧伪造。

Q:没有考虑多层浮在的情况,如果前面是CDN呢?

A14:xff只要有一层是真实的客户端ip就可以的

A15:没有cdn

A16:其实就是网关要删除自带xffxri。

A17:如果你不需要分析链路,甚至可以除了第一层设备,后面的全都不插xff。

A18:这样xff的最右就是真实ip。不删除,后面系统没法识别真假。

A19:wafelb都是7层的产品,最xff最右侧的值不能伪造就可以的。

A20:那就取过代理前最右侧的值。

A21:这个会比较麻烦,有的地方取倒数第三个,有的地方也需要倒数第四个。

A22:一般安全设备做不了,只能写代码取最内网IP前面的那个公网IP。

Q:上层代理没有透传他拿到的remote-addr么?

A23:为什么要相信xff这种本身就不完全信任的值

A24:第一层设备的remoteip是最妥当的,也就是两组数据

A25:上层设备比如cdn, waf一般都会在hdr里加上remote-addr的映射, 取那个值透传就行

A26:是这么想的,可惜厂商不支持。

通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周


A27:我们是在waf前面加个header头,然后前面nginx取真实ip的时候,定位到wafip,往前取一位,再然后往后传realip字段

A28:谢谢群里大佬给的解答,已经找到解决方法了,只要XFFwaf前面的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的话,发向sreset 黑客去不掉啊。中间的设备会向 c 以及 s 同时发。

A4:我也是这么理解的。所以我理解不了MITRE为啥那么说

A5:同在内网,是可以iptables忽略的吧。

A6:我认为总是只能忽略发向攻击机的,不能忽略受害机的,所以连接还是建立不起来。

A7:对,发往s的可以忽略。成功率还得考虑延迟的问题。

A8:某家IPS是用的RST实现阻断么。如果是旁路的就可能会有延迟。取决于部署模式,不是透明方式,旁路的肯定reset。

A9:日常使用中,始终感觉rst阻断有失败的呢。rstudp包没法拦截。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 群友分享

【安全资讯】

云隔离的梦想

2022黑帽大会:关注供应链安全与资产漏洞管理

紧急通知!快更新iPhone!苹果发现两大严重安全漏洞!黑客能完全操控你手机

【安全技术】

张欧:数字银行可信网络实践

共性成果 | 安全保护框架,一张“神图”出品的故事

网络安全能力成熟度模型(C2M2)中文版发布

安全运营中心能力成熟度模型专题【三】-金融行业能力安全运营能力成熟度模型(FCSO-CMM)

--------------------------------------------------------------------------------

【金融业企业安全建设实践群】和【企业安全建设实践群】每周讨论的精华话题会同步在本公众号推送(每周)。根据话题整理的群周报完整版——每个话题甲方朋友们的展开讨论内容——每周会上传知识星球,方便大家查阅。

往期群周报:

对当下热点事件的探讨,以及对“数字化”及“数字化转型”背景下企业信息安全建设路径的思考| 总第160周

针对堡垒机的攻击场景或风险有哪些,关于补丁更新的探讨等| 总第159周

重大演练活动期间大佬们在讨论些什么...?| 总第158周

如何进群?

如何下载群周报完整版?

请见下图:

通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周

原文始发于微信公众号(君哥的体历):通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月28日16:50:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  通过XFF获取客户端请求的真实IP地址的讨论,攻击者能否让目标忽略reset继续通信?如何评价乙方渗透测试效果?|总第161周 http://cn-sec.com/archives/1259238.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: