freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

以真实渗透视角剖析等级保护要求的防御能力
2023-11-23 10:05:17

首先我们以最通俗易懂的方式解释下,什么是渗透测试?

简单来说它是一种检查计算机系统安全性的方法。就好像你拥有一把锁,你想知道这把锁有没有问题,是否容易开启。渗透测试就是一个人(渗透测试人员)尝试去开锁,看是否能够成功进入系统。

在渗透测试中,这位测试人员会使用一些技术和工具来搜索系统的弱点和漏洞,就像在找锁上的缺陷一样。他们在系统中寻找安全漏洞,就像黑客可能会做的那样,来发现可能让黑客入侵的地方。一旦找到了这些漏洞,测试人员会尝试利用它们来进入系统,并得到一些特殊权限。通过这种方式,他们可以发现系统在哪些地方可能变得不安全,并提供改善和修复的建议。

渗透测试的目的是帮助组织发现并解决在系统中可能存在的安全问题,以确保系统的安全性和保护用户的数据不受到黑客的攻击。

1700702803_655eaa53220d3c974fec5.png!small?1700702804107

一般渗透测试会有如下几个步骤,信息收集→漏洞探测→漏洞利用→内网穿透。渗透测试人员首先收集和分析与目标系统有关的信息,收集到对应目标资产目标后使用各种工具和技术来扫描目标系统寻找可能存在的漏洞,包括端口扫描、服务识别、安全配置检查等活动。在发现了系统的漏洞后,渗透测试人员会尝试利用这些漏洞来获取更高级别的访问权限,之后便进行内网穿透,模拟攻击者在网络内部的行为。尝试拿下服务器、数据库、应用系统等相应权限。

一、信息收集、漏洞探测(打点)阶段

信息收集是渗透测试的第一步:收集关于目标系统和网络的信息,例如 IP 地址、域名、框架、协议、端口等。一般而言,在没给特定资产的情况下,渗透测试人员会通过 网络空间搜索引擎(如fofa、鹰图等)等手段去收集目标相关信息。

这里我们假设攻击方已收集到了目标的公网IP 或者网站地址,测试人员就会使用扫描工具探测目标系统中开放的端口和服务,这可以帮助他们确定系统暴露了哪些服务给外部。一旦目标系统的开放端口和服务被确定,渗透测试人员将利用漏洞扫描工具检查这些服务是否存在已知的漏洞。

1700703270_655eac2601650c10a8231.png!small?1700703271827

那么针对上述的攻击行为,等保工作中会有什么应对方式呢?在我们的安全区域边界测评大点中,有相应的入侵防范测评点,我们一起来看一看对应要求:

a)应在关键网络节点处检测、防止或限制从外部发起的网络攻击行为;

1700703301_655eac451d0d61c4f457a.png!small?1700703302058

1700703315_655eac53610a016809bef.png!small?1700703316373

这条要求我们检测从外部发起的网络攻击,所以常见方式是在关键网络节点(一般是与外部网络相连处,如互联网交互区)上部署防火墙、IPS、APT态势感知等设备,用于监控和检测网络流量,并对潜在的攻击行为进行阻断或限制。防火墙可以根据预先设定的规则来过滤和阻止不符合安全策略的流量,IPS可以实时监测网络流量,通过识别已知的攻击签名或异常行为来检测并阻止攻击,而APT态势感知系统通过综合分析网络流量、日志数据、安全事件和威胁情报等信息,提供对网络中潜在APT攻击的全局视图和实时状态的感知。

并且根据“网络安全等级保护高风险判定指引”,要求对应设备策略库、规则库进行及时更新。未及时更新设备的规则库意味着设备无法识别和阻止最新的恶意活动和攻击,这样的设备就如同虚设。

1700703382_655eac969867e372b08ce.png!small?1700703383957

那么此时攻击方的相关信息已经被我们的设备记录,例如攻击时间、攻击IP、攻击端口、攻击类型等,且有人值守的话我们就能第一时间响应,例如常见的封禁攻击IP地址,防止目标进一步实施网络攻击。

1700703454_655eacded485becf42229.png!small?1700703456328

注:图片来自于网络

二、漏洞利用(getshell)阶段 

如果很不幸,在第一阶段如果我们未实时监测边界设备(这个要求比较难)日志情况,然后这个攻击者的手法比较高明,通过构造恶意payload,绕过设备的规则匹配库,从而拿到了一个webshell(漏洞有很多种,这里简单讨论webshell这种方式),就可以与我们的web服务器进行相应的交互。

payload:指攻击者在利用某个漏洞时用来实施攻击的恶意代码或数据包

webshell:指一种在Web服务器上植入的恶意脚本或程序,用于远程控制和管理受感染的服务器

那么针对第二步,等保工作中又是如何去预防这种情况发生的呢?在我们的安全计算环境测评大点中,有相应的入侵防范测评点,我们一起来看一看对应要求:

e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;

1700703515_655ead1b7b7be6b5ed95a.png!small?1700703516454

首先我们会对测评的目标系统进行相应的漏洞扫描以及渗透测试,在发现高风险问题时要求客户进行及时整改。同时“网络安全等级保护高风险判定指引”也明确指出了若是互联网设备或者应用系统,一旦存在“可通过互联网利用对应系统高危漏洞”的情况,那么就是一票否决。

1700703541_655ead35ddef8f1cdf207.png!small?1700703542868

1700703557_655ead45c473a441660db.png!small?1700703559070

但随着时间的推移,新的安全漏洞和威胁不断被发现,这种测试具有相应的时效性,仅仅能代表测评时的情况。并且等保渗透人员与真实红蓝对抗专职人员,渗透测试水平也会有一定差距,就如上述所说,攻击者如若水平高超,绕过设备的规则匹配库从而发起攻击,而我们之前的测试却都被设备拦截在外,可能隐藏的威胁就无法直观发现。或是直接采用零日漏洞进行攻击,这种更是防不胜防,只能寄希望于自身内网防护做到位,避免近一步扩大损失。

三、内网提权

在拿到webshell后,攻击者第一步会进行提权操作,利用系统或应用程序中的漏洞,以获取管理员或超级用户权限,一般 Windows系统为sysytem权限,Linux系统为root权限。然后接下来他就在该台服务器上进行信息收集,准备实施内网横向入侵。

1700703584_655ead6068558ae25be35.png!small?1700703585172

例如该场景使用的就是“烂土豆”(一款渗透工具)提权

1700703679_655eadbfb1ee577777600.png!small?1700703680465

对此感兴趣的同学也可以利用下述方法,探测本机是否存在被提权的可能:通过systeminfo这个命令,我们能获取到当前机器的补丁更新情况

1700703699_655eadd373533dec9cdf8.png!small?1700703700277

1700703713_655eade1c376d1895aab8.png!small?1700703714700

以及Linux常见的pkexec 本地提权(CVE-2021-4034),只要有一个普通权限的交互式shell,运行对应的脚本文件,我们就能提升至root权限

1700703730_655eadf2f22688b424e24.png!small?1700703731791

那么等保工作中又是如何去预防这种情况发生的呢。在我们的安全计算环境测评大点中,同样在入侵防范测评点,ef条款作出了相应要求:

e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;

1700703756_655eae0c669855f1ebac7.png!small?1700703757505

这条条款意思也明确,要求我们服务器补丁需要及时更新,但是很多客户怕影响业务的正常运行,一般非必要的情况下不会去更新系统漏洞补丁,并且一些漏洞补丁通过外部的扫描并不能发现,有些漏洞是需要登录到服务器后才能发现这个漏洞是否存在的(例如 Linux 提权CVE-2021-4034,需要一个普通用户权限才能确定是否存在该漏洞)。这样就存在一个信息差,以为自身的系统是安全的。并且即使扫描发现存在高危漏洞,但该漏洞无法直接通过互联网被利用,可以降低风险等级为中,这样就不影响等保的通过。外“强”内“弱”已是当前网络安全的常态。

f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。

1700703909_655eaea57e79f13a92cb2.png!small?1700703911489

这条条款比上述条款更具有操作性,一般我们会安装对应的安全软件来保证系统的安全性。常见免费的有360、火绒、以及自带的Windows defender,均有一定的入侵防御能力,抵御一些常见的攻击不在话下,当然我们要记得开启各个软件的入侵防御功能,切记要点自动阻止。

1700703922_655eaeb25bfb0d70c961b.png!small?1700703923284

1700703932_655eaebc242104456e1ee.png!small?1700703933090

1700703940_655eaec410d8a274f4dae.png!small?1700703940946

1700703950_655eaece3c5b8ba5b8630.png!small?1700703951268

同时在我们的安全计算环境测评大点中,在恶意代码防范测评点,有如下要求:

a)应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断。

1700703972_655eaee4b1a33794db0f0.png!small?1700703973691

要求我们的服务安装相应的杀毒软件,并且保持规则库实时更新,一个月内未更新病毒库则认为是高风险问题,必须整改。

同时要注意一点的就是记得自动处理,而不是询问,误删可通过隔离区恢复。

1700703988_655eaef4635a3535405e9.png!small?1700703989361

通过下图也可看见杀毒软件对webshell也有一定的查杀能力,未做免杀的exe恶意软件也会报警通知,并自动拦截,这会大大增加攻击者入侵的难度。

1700703999_655eaeff70fc6867544ba.png!small?1700704000301

1700704007_655eaf07a3ce7621c25b5.png!small?1700704008550

当然如果你非常不幸运,碰到的攻击选手实力强劲,不但绕过你网络层的防护,同时主机层的防护也被他拿下,该台服务器直接沦为了傀儡机,他马上要进行下一步攻击,实施内网横向穿透,这时我们又该如何应对呢?

四、内网信息收集

有兄弟可能不太明白为什么攻击者会有第三步,因为通过提权操作可以访问系统中的敏感资源和数据,同时在很多情况下内网渗透工具也需要拥有管理员权限才能运行,并且做高系统权限的权限维持以及信息收集,更有利于后面的内网横向穿透。所以也就会有我们常见的提权这么一说。假设攻击者已经获取了管理员权限,直接进行内网扫描动静太大,内网有安全设备的均会报警,有应急响应人员的话,好不容易拿到的权限就丢失了。攻击者一般会先在本机进行相应的信息收集,然后利用已有的信息横向拿下其他系统权限,方面隐藏第一入口点。这边拿mimikatz 工具进行简单介绍,Mimikatz 是一款开源的安全工具,主要用于演示和验证系统中的凭证盗取和滥用漏洞,Mimikatz 的主要功能包括:

  1. 提取凭证:Mimikatz 可以提取 Windows 系统中的明文密码、哈希密码、NTLM 口令等凭证信息。这些凭证信息通常存储在操作系统的内存和注册表中。
  2. 注入凭证:Mimikatz 可以将提取的凭证注入到操作系统中,从而使攻击者能够获得系统中授权用户的访问权限,进而执行敏感操作。
  3. 解密凭证:Mimikatz 可以解密 Windows 系统中存储的加密凭证。这包括存储在操作系统内存中的凭证、浏览器中的密码、本地帐户和域帐户等重要信息。

例如获取本机帐号密码,Windows会把用户的明文密码放在内存里面所以它可以从内存中提取纯文本密码,哈希和kerberos票证。 [windows server 2012以上就不储存明文](但是也可以通过修改注册列表开启,然后静静的等待管理员访问)

1700704051_655eaf33608011d335b8c.png!small?1700704052663

获取系统保存的RDP密码

1700704076_655eaf4cd211ec138dcaf.png!small?1700704078620

所以和我们的办公习惯也有关系,有些运维人员习惯性的用记住密码,这里就能获取到所有记住密码的RDP连接。还有一些人员习惯在第三方远程软件上记住密码,这些都是一些不安全的办公行为,同样我们也能获取到明文密码。下图为xshell软件获取明文密码

1700704092_655eaf5c69895de934304.png!small?1700704094175

还有通过history获取到敏感信息的,例如mysql口令

1700704110_655eaf6e086169dfdb17c.png!small?1700704110896

另外我们通过web系统漏洞进入的应用服务器,中间件配置文件中也一般留存了数据库的明文帐号密码,我们就可以用正常连接的手段去访问数据库,从而不会导致内网安全设备告警。并且能从数据库中获取大量数据。

1700704248_655eaff8bbd260bf400c9.png!small?1700704250332

甚至有的管理员为了方便管理,会在服务器上留有一个记录存有ip、帐号、密码的txt文本,无疑就是给攻击者提供了直通车。

通过获取到的密码,可以推断管理员设置密码的习惯,内网中的口令一般有规律可循,就可以制作相应的密码本,这为攻击者下一步实施内网横向攻击提供便利。

那么对于内网信息收集这阶段,等保工作中也有相应的条款作了对应要求,在数据保密性以及剩余信息保护中作出了规范:

数据保密性b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

1700704269_655eb00da0475fce7d700.png!small?1700704270691

这里查到过有的客户中间件配置文件数据库口令那块是做了加密存储的,这样攻击者就无法通过获取应用服务器权限,来横向进一步获取数据库权限。退一步说数据库被拿下后,数据库内的数据采用加密存储,重要字段(如姓名、身份z、手机号、住址等)采用加密方式存储,使攻击者看不懂,这样也能避免相应损失。但这样做的客户其实很少,毕竟安全和方便是相对的,越“安全”的东西越“不方便”。中间件配置文件以及数据库重要数据一般明文,鉴别数据大多会采用MD5进行存储,在口令不够复杂的情况下,采用MD5算法无法抵抗彩虹表攻击。攻击者通过获取数据库内存储的应用系统存储的口令MD5值,就通过撞库获取明文,这么多账号一般来说肯定有存在弱口令的情况,从而登录应用系统。

剩余信息保护b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。

1700704308_655eb0346990f6ccf6f6c.png!small?1700704309807

像在这里就会去查Linux中HISTSIZE,去查看他history记录的命令条数。这点能力验证也有考过,要求centos操作系统不记录shell历史命令。

另外在管理测评部分也有要求,如应对各类人员进行安全意识教育和岗位技能培训,并告知相关的安全责任和惩戒措施;应针对不同岗位制定不同的培训计划,对安全基础知识、岗位操作规程等进行培训;等类似测评条款,如果这些安全意识落实到位,像记住密码,密码本未加密存储,shell指令记录敏感信息的问题就可以避免。本文我们主要讨论技术硬性措施,管理部分就不做过多说明。

五、内网横向穿透

经过上轮的内网信息收集,此时很多的资产可能已经被“无感”拿下了。接着比较常见的就是进行内网的扫描渗透了,安全届内网有这么一句传言 “内网fscan一把梭”,虽然这玩意好用,但是动静也是贼大。主要功能有

1.信息搜集:存活探测(icmp),端口扫描;

2.爆破功能:各类服务爆破(ssh、smb、rdp等),数据库密码爆破(mysql、mssql、redis、psql、oracle等);

3.系统信息、漏洞扫描:netbios探测、域控识别、获取目标网卡信息、高危漏洞扫描(ms17010等);

4.Web探测功能:webtitle探测、web指纹识别(常见cms、oa框架等)、web漏洞扫描(weblogic、st2等,支持xray的poc)

5.漏洞利用:redis写公钥或写计划任务、ssh命令执行、ms17017利用(植入shellcode),如添加用户等

可以看出功能确实还是比较强大的,通过扫描器发现的漏洞,攻击者便可以进一步获取内网系统权限。

那么针对内网横向穿透,等保工作又是如何去感知以及防御这种攻击行为的呢?在我们安全区域边界入侵防范控制点中:

b)应在关键网络节点处检测、防止或限制从内部发起的网络攻击行为;

1700704418_655eb0a2230c89ac60b27.png!small?1700704420000

这条要求我们去部署相应的安全设备,通过监控内网流量,检测从内部发起的网络攻击行为,并确保规则库已及时更新,且配置合理,能覆盖网络中所有关键节点。这样攻击者一但发起大规模扫描行为,我们就能第一时间发现,采取相应的应急措施。

c)应采取技术措施对网络行为进行分析,实现对网络攻击特别是新型网络攻击行为的分析;

这条要求我们改变传统的被动防御策略,采用主动防御方法,基于程序行为进行自主分析和判断攻击行为,实现实时防范,例如:使用了诱骗技术的沙箱技术和蜜罐技术、异常流量分析技术、大数据分析技术等。

d)当检测到攻击行为时,记录攻击源IP、攻击类型、攻击目标、攻击时间,在发生严重入侵事件时应提供报警。

1700704470_655eb0d6f042c1a4c9fd5.png!small?1700704471991

同时在我们检测到攻击行为时,记录对应的攻击源IP、攻击类型、攻击目标、攻击时间等内容,同时能提供相应的报警功能,及时通知相应的管理人员,发生攻击事件后做到立即响应。例如通过攻击源IP,我们可以确认受害机地址设置相应的隔离区,把影响降低到最小(可以使用安全软件把危险文件进行隔离,如果整台电脑完全沦陷,可以考虑“拔网线”)。

但上述发起攻击的机子很可能只是被攻击者“无感”拿下的一台,并做为了横向跳板对内网发起攻击,很有可能攻击者手上还有很多其他的机子,单纯的靠网络监测来防御显然不适合,所以单机的加固显得尤为重要。

通过上述工具的简单介绍,我们知道会有暴力破解的攻击手段,这是最常见也是最能奏效的攻击,通过弱口令我们就能直接拿下目标系统的控制权。在等保测评中安全计算环境身份鉴别控制点作出了相关要求:

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

1700704512_655eb100b0ad10b89e2cb.png!small?1700704513690

要求我们的口令必须复杂,且要定期更换,同时在高风险判例中还要求了不允许使用相同口令,这样攻击者就很难做出相应的密码本,为攻击加大难度

1700704595_655eb1538be67fb341ce0.png!small?1700704596943

同时在访问控制 控制点中

b)应重命名或删除默认账户,修改默认账户的默认口令;

1700704619_655eb16b7cf6d35ad9274.png!small?1700704620452

要求重命名默认账户,例如Administrator、root、admin等,暴力破解成功是需要用户名+口令均正确,重命名后增加了一个猜解用户名的步骤,就能大大提升攻击者爆破成功难度 。

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;

1700704643_655eb1831566eae7551b2.png!small?1700704644428

并设定相应的登录失败处理功能,相同账户连续登录失败次数过多后,将该账户锁定。

同时在入侵防范控制点中要求:

c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制;

这条是直接远程端口就给你做了限制,若不是授权终端你根本无法远程访问对应的服务器。可以看到,如果上述措施均已做到位,攻击者想要通过暴力破解这一条路子来突破权限的话还是比较困难的。但根据以往的经验,内网弱口令是真真实实存在的,并且在每次的演练活动中也是占比最高的一个漏洞。

针对漏洞利用方面,上面的内容已经大致涵盖,例如安装防病毒、入侵防御软件,及时更新系统漏洞补丁,定期进行漏洞扫描,及时发现存在的威胁等。同时内网存在可被利用的高危漏洞必须要整改,提权以及远程代码执行漏洞是攻击者比较喜欢利用的两种,例如MS17-010(永恒之蓝),我们就可以直接获取目标机器命令行交互界面,并且提升权限直至完全控制目标机器。

1700704842_655eb24a5cf6ed33d3cfc.png!small?1700704843446

六、总结

由于篇幅关系,具体每个步骤的技术细节可能没法直接展现到位,但通过上述的攻击步骤,以及等保相关条款要求(还有很多其他涉及的条款,这里仅仅挑选了部分最切合的进行举例说明),从大体上看确实可以规避大部分的安全风险。

但等保通过并不要求每条条款均为符合,并且具有相应的“时效性”,网络威胁和攻击技术以及安全防护策略都在不断地发展和演进,若只是当时为了等保通过,配备了相应人员与设备,但后续却未实际用起来,例如后续规则库未及时更新,网络安全监测岗位人员未落实到位,人员网络安全意识淡薄等等,均会引发网络安全问题。

所以,我们必须认识到网络安全是一个不断进行的工作。因此,持续监控网络状况、定期评估并改进安全措施,以及及时学习和了解最新的安全威胁和攻击技术,都是至关重要的。

1700704781_655eb20d39699b4bffb4a.png!small?1700704782923

以上内容提供了一些关键概念和建议,但可能有些地方没有详细展开或是有所偏颇。如果有任何不正确的地方,请指出并补充正确的信息,感谢您的观看。

# 渗透测试 # 系统安全 # 等保安全 # 等保评测 # 等保合规
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录