五四运动的胜利成果从排查端⼝弱⼝令研究打造完美防御的思路
很多公司要排查⾼危端⼝的弱⼝令⼯作,我觉得是很有代表性的⼯作,我构思⼀个思路总结下当个典型发出来。这⼯作虽然看似简单,如果要做好还是有些复杂,所以写⼀篇⽂章做个总结。主要考虑⼀些企业安全应该考虑的⼀些影响结果的因素。如果你们公司或者部门喜欢追求⾼标准⾼精确度,这篇⽂章或许是⼀个不错的参考。
⾸先说说现实⽭盾,企业希望员⼯多⼲活只会关注你完成了什么,质量的话考核⽅也不懂,如果你想KPI变的漂亮,本⽂可能不适合你,本⽂只适合⾼质量加固的场景,⽐如某些机密的部门或者资产做弱⼝令漏洞排查,如果你说你俩⼩时就可以⼜快⼜好的完成任务,那我只想给你说你说的很对。
⽬的:出企业暴露在公⽹的⾼危端⼝,然后探测它存在的弱⼝令进⾏整改,防⽌因为弱⼝令漏洞被⿊客⼊侵。
放图片⼀般流程:使⽤nmap或者扫描软件扫描3306/3389/27017……等等常见端⼝,然后从⽹上到各种常见弱密码字典如xx-top100,xx-top1000,等常见密码字典,然后使⽤hydra等⼯具爆破⼀下,项⽬结束写报告,估计很多⼈都是这么⼲的,应付⼯作⾜够了!
上⾯流程常规来看没啥问题,很标准的流程,但是避免不了被⿊客⼊侵,因为该策略存在漏洞会遗漏不少项⽬,有⾜够细⼼和耐⼼的⿊客基本都能再爆破进来。严格来说⽬的只达到了⼀半,应付公司考核⾜够了,但本⽂就⽐较较真要研究完善的⽅案!
静悄悄类似的词语说说分析⽅法
物理学告诉我们我们处于⼀个客观的物质世界,复杂的事物是有多个简单的事物组成,运⾏⼜遵守⼀定的运⾏规律,那么我们可以分析⼀下企业端⼝扫描涉及哪些基本的事物,然后我们怎么做才能让这个项⽬⽆懈可击,⾝为处⼥座,都喜欢完美的事物呵呵,我们从各个⼦因素下⼿,分析这个弱⼝令扫描的项⽬的各个侧⾯,每个侧⾯包含哪些短板或者容易影响结果质量的点,然后把各个侧⾯分析好,然后使⽤什么策略,这就是我的攻防哲学认识。
涉及的因素
这个⼯作涉及哪些因素呢,⾸先IP地址范围、⽤户名列表、密码列表、端⼝范围列表、服务列表和识别,扫描器的选择,扫描策略,⽹络策略和延迟、管理(⾯向未来可能出现的弱⼝令),这些因素都直接影响了结果的质量。如果你不明⽩可以看下⽂分析。
基本流程:确定IP和服务->确定服务对应的⽤户名列表->确定密码字典列表->端⼝范围扫描+服务识别->确认⽹络策略和⽹络环境->进⾏扫描->结果输出和整改
江西省高安市邮编确定要扫描的服务:要确定可以进⾏账号爆破的服务,服务有明显的OS特征,Linux和win差异很⼤,服务类型⼀定要覆盖⾯要全,常见的MySQL、MsSQL、ssh这些你知道,但是snmp、rtsp这种常见的企业应⽤你可能忽略,你忽略不代表⿊客发现不了,所以服务要覆盖全⾯,做个列表。
确定要扫描的IP:看需求你是只扫描⽣产还是⽣产+测试,你如何获取这些IP、这些IP的准确度能否保证、有没有变动、是不是根据IP段扫描更准确⼀些?这样保证了IP的覆盖的全⾯性
什么是钓鱼执法端⼝确认:这个阶段⽐较容易忽略⼀点,因为⼤家都知道MySQL是3306,但有不少IP把MySQL开放到5306怎么
办,ssh开放到22222怎么办,你⽤nmap的-F或者-p1-10000是扫描不出来的,会有遗漏的端⼝,你扫
不出来不代表攻击者扫描不出来,另外还有你探测端⼝的时候因为⽹络丢包问题没检查出来该端⼝的服务怎么办?所以需要收集识别你
击者扫描不出来,另外还有你探测端⼝的时候因为⽹络丢包问题没检查出来该端⼝的服务怎么办?所以需要收集识别你整理的各种服务的nmap脚本,使⽤nmap加载脚本进⾏端⼝探测,探测范围1-65535个端⼝,记得加上-sV参数,否则可能脚本不会加载。另外为了数据准确性,防⽕墙策略要any :any,扫描建议晚上业务低峰期,⽹络状态⽐较好的时候使⽤tcp完全探测,这样你就得到了⼀个准确的IP:port的列表了。
字典收集:字典收集包含⽤户名字典和密码字典,⽤户名字典分两部分,⼀种是各种默认⽤户名,⼀部分是运维常⽤的⽤户名,⽤户名字典应该覆盖到各种服务默认的⽤户名和运维常⽤的⽤户名字典,建议从⽹上搜集⽤户名字典然后挑选出来哪些会⽐较常⽤的,这样保证覆盖⾯和扫描效率。密码字典也是⼀样的道理,有各种服务的常见默认密码,也有⽹上常见的弱⼝令,那么多弱⼝令怎么选,有top100,top500,甚⾄top5000,只⽤top100是不安全的,所以建议
top1000外加常见的复杂度⽐较⾼的弱密码。另外补充⼀点是这⾥所说的Topxx是只中国的弱密码,你别⽹上随便个看都不看直接⽤,⽹上很多TOPxx都是外国常⽤的密码,你打开⼀看都是常⽤英⽂单词⼀看就不是中国的(这⾥不是说中国⼈英语不好不配⽤单词是中国⼈真不会常⽤),原则上是保持
字典短⼩⼜要有⾜够的覆盖⾯,最好控制在5000以内⼜能覆盖⾜够的常⽤密码。另外要注意空⼝令也要包含进去!
⽐如这种弱密码字典,它可能名字也叫常⽤字典TOP100,但是你打开看看⾥⾯的英语单词,baseball?michelle?中国⼈不会⽤的。
⽹络策略和延迟:在公司⽹络中会有很多⽹络策略,你扫描器扫描的时候发现扫描器处的位置到某些⽹络有些IP不通,这不是开玩笑么,你肯定会遗漏⼀部分机器的,因为你没扫描到被有耐⼼的⿊客发现怎么办?所以要保证⽹络的畅通。还有就是公司⽹络环境下会有⼀些⽼设备,你要出来单独进⾏
扫描,因为你发包稍微⾼⼀点它可能就拒绝服务了,⼀把⽼⾻头性能跟不上新时代发展啊,还有就是⽹络映射,隧道等吧,有⼀些机器有公⽹映射的、端⼝转发的等等,都要考虑到,以避免⼈家⼀个公⽹IP直接爆破你内⽹。
扫描器如何选:根据我的测试,⼀般的扫描器⽆法满⾜需求,包括nmap/nessus/openvas/nexpose/hydra等等主流的扫描器,为什么呢,1.因为有⼀些服务没有开在标准端⼝,但是常规扫描器会默认标准端⼝,⽐如它扫MySQL就扫3306。2.扫描器可能不⽀持⾃定义字典功能,那你收集的字典还怎么⽤?不同服务的⽤户名也不⼀样的,你没法定制。
3.多个IP不同端⼝⼀批扫描,⽐如你有个IP列表1000个IP,⾥⾯你也不知道哪些IP开了哪些端⼝哪些服务,你⽤hydra 怎么扫?所以最后没有满⾜我们需求的扫描器,那么解决⽅案是什么呢?解决⽅案就是基于Linux写shell脚本读取列表⽂件调⽤hydra进⾏批量扫描,这样可以满⾜需求。所以推荐使⽤shell编程+hydra,你根据每个IP对应的端⼝和服务,⾃动把端⼝号和服务当参数传给hydra⾃动爆破,这是最快捷省时省⼒的⽅法,因为⽹上的各种脚本不会满⾜你需求,你要阅读源码再修改调试bug,耗时⽐较久,⾃⼰原⽣写保证了时效!
扫描策略:⾸先你要保证hydra的线程和频率问题,如果你线程设置的⽐较⾼,它可能丢包,识别不出来弱⼝令的,所以线程不能设置太⾼,如果你说你家公司有的是钱,你们公司内⽹都是⽤光纤不存在损耗和丢包带宽⼤的不得了,那这条当我没说。还有就是扫描时间建议晚上宽带占⽤低的时候可以保证丢包率和误报。
管理和周期任务:为啥加管理呢,因为对⼀个公司来说端⼝和IP都是动态变化的,因为新业务上线可能要加端⼝,IP和域名等等,很多⼈要开通账户的时候账户会是增加的,不⽤的账号也会销毁,所以要加强管理防⽌出现新的弱⼝令。但是通过以上管理⼯作可能会出现遗漏,这需要对⽬标进⾏周期性的扫描防⽌有遗漏的条⽬。
实施阶段从上⾯那些因素可以看到,要完整做需要多个部门协调的,尤其是⽹络策略和资产上需要做
好⽀撑,本⽂思路也适应⾼危漏洞修复的场景。
保湿精华液排行榜重要补充
看完上⾯的⽂章,你有没有感觉有遗漏的地⽅?作为⼀个⽹络安全⼈员缜密的思维和细致的观察⼒,其实上⾯的⽅案存在⼀个连⼀般攻击者都不容易发现的漏洞,那就是SSH和MySQL的账号问题,⼀般的公司可能有些SSH会有多个账号,这些账号是员⼯的姓名拼⾳全拼,⽽且这些账号是最容易出弱密码的地⽅!当然MySQL也有类似场景!但是为了扫描效率的话,你可以联系运维获取⼀个这样的机器的IP列表,或者加载⼏个中国姓名TOP10⾥的⽤户名去扫描,保证了时间效率。
值得提的⼀点是⼤部分⼤公司都是员⼯姓名拼⾳+序号当员⼯账号或者邮箱,既然有员⼯姓名拼⾳+数字当⽤户名,那么我们怎么做⼀份⾼质量的⽤户名字典呢?这边有个⽅案推荐,个中国使⽤⼈名最多的姓名top100,排第⼀的你给它后⾯的数字从1到99,排第⼆的数字从1加到98,排第三的从1加到97,以此类推,这样差不多产⽣了4500个姓名拼⾳+数字的⽤户名字典,去撞的话很⼤概率会撞到,另外还有⼀个捷径就是通过公司的通讯录,能⽤SSH或者Mysql的都是研发测试或者运维⼈员,你把这些⼈的邮箱都提取出来做成⼀个字典更加⾼效。
类似这样的⼀个⽤户名字典,排第⼀的zhangwei数字加到99,第⼆的wangwei数字加到98
总结
从上⾯各个环节来分析,我们覆盖了⽐较全⾯的⽬标IP,对IP开放的⾼危端⼝进⾏了⾼质量的精准的识别,对⽤户名和密码保证了覆盖率,然后保证了⽹络策略的畅通和性能,实施完成后能得到准确的结果了,这基本上是个完美的结果,你就可以编写报告提交给各个部门进⾏推进修复了!这样既保证了时效效率⼜不会在细枝末节上花费太久,很好的平衡了时间和结果。如果你有什么更好的⽅案或者想法欢迎评论!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论