【转载】一次攻防实战演习复盘总结

最近参加的几家机构的防守方防护方案评估,部分防守方缺乏对攻击者的正确认知,攻击者的手法已经比较高超了,不扫描,不落地,污染日志等都很普及了。同时也要正确认知对手:攻防演练中,攻击者并非无所不能,他们面临着和防御方一样的问题:时间紧,任务重。所以攻击者的攻击目标,攻击手法也是有迹可循的。一、知彼 攻击者也是讲成本的,因此防守方最好的策略是:做的比其他防守方好一点点即可。好一点的含义:不在低级问题上犯错(弱密码、互联网应用远程RCE、管理后台暴露、重要服务器未打补丁等)。对于“时间紧、任务重”的防守方来说,修建固若金汤的防线显然意味着大成本投入,以及最紧缺的时间,因此本文不会面面俱到,只选择性价比高值得快速投入的安全措施和大家分享。 攻击者一般:目标明确、步骤清晰、控制成本、反检测,反清理、三流分立。 目标明确:攻击者只攻击得分项,和必要路径(外网入口,内网立足点),对这些目标采取高等级手段,会隐蔽操作;对非必要路径顺路控制下来的服务器,并不怕被发现,用起来比较随意,甚至主动制造噪音,干扰防守方。 步骤清晰:信息收集-控制入口-横向移动-维持权限-攻击目标系统。每一步都是经典操作和教科书式手法。 控制成本: 优先攻击高权限账号,如管理员,目标系统负责人账号; 优先攻击运维/安全人员账号和终端,这些人往往有服务器root账号,安全设备管理员账号,可以进一步深入控制; 优先攻击集中管控设施,如域控,集中身份认证系统,终端管理系统,攻陷单系统即获得公司内大部分系统的权限; 优先攻击基础设施,如DNS,DHCP,邮件系统,知识分享平台,oa系统,工单系统;这些系统有内置高权限账号,或可以帮助攻击者隐蔽痕迹。或Git/SVN等开发源代码管理服务器,通过代码审计发现应用0day漏洞。 反检测,反清理: 样本隐蔽技术(白利用(带微软签名的程序执行未签名的黑dll),样本不落地执行(从网上加载样本,只运行在内存,不落盘不惊动杀软)); 快速扩散(攻击者会将攻击包做成自动化工具,降低人力投入,快速控制一批有漏洞发服务器); 停止日志外发,日志清除(脚本优先停止常见日志外发工具;同时有开源自动化工具来劫持日志产生的进程,使得系统不产生日志;使用完后删除access.log等日志); 减少扫描,通过分析日志、分析配置文件、管理员来源IP等方式来获取内网的其他机器IP信息,而不是扫描。 三流分立: 扫描流:用来大批量扫描内网存活IP和漏洞,扫描源通常不被攻击者重视,被清除也不会影响到攻击计划,高水平攻击者通常使用扫描行为来分散防守方精力。 数据流:用来向外网大量传输非关键数据,通常是有互联网权限的终端或服务器(终端较多),很少有隧道行为或扫描行为,通过简单的https,sftp方式传输数据 控制流:用于接受和传递远控指令的服务器,攻击者最重视的设施,使用起来最为谨慎,和远控中心进行交流,常用组件cobaltstrike, empire;有隧道行为,且数据传输量很少,会连接若干个IP和域名(避免外网封禁),传输必定加密,不使用自签名证书。…

Continue Reading →

[转载]常见web安全漏洞修复方案

第一章 SQL注入漏洞 第一节 漏洞介绍 概述:SQL注入攻击包括通过输入数据从客户端插入或“注入”SQL查询到应用程序。一个成功的SQL注入攻击可以从 数据库中获取敏感数据、修改数据库数据(插入/更新/删除)、执行数据库管理操作 (如关闭数据库管理系统)、恢 复存在于数据库文件系统中的指定文件内容,在某些情况下能对操作系统发布命令。SQL注入攻击是一种注入攻击。 它将SQL命令注入到数据层输入,从而影响执行预定义的SQL命令。由于用户的输入,也是SQL语句的一部分,所以 攻击者可以利用这部分可以控制的内容,注入自己定义的语句,改变SQL语句执行逻辑,让数据库执行任意自己需要 的指令。通过控制部分SQL语句,攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接 获取数据库服务器的系统权限。 潜在风险:高 第二节 JAVA漏洞代码示例 //拼接SQL语句,直接插入数据库查询 第三节 修复建议 使用参数化查询接口或在代码级对带入SQL语句中的外部参数进行转义或过滤: 1.…

Continue Reading →