从渗透角度分析防火墙策略部署

防火墙为网络中最为常见的边界防护设备,自从《网络安全法》颁布以来,业界越来越关注网络安全防护,防护墙也变得越来越普及,甚至一提起网络安全,第一个想到的设备就是防火墙了,由此可见防火墙在网络安全领域有着举足轻重的作用。

但另一方面,大多数的企事业单位,政府及公共机构并没有深刻体会到信息安全事故带来的严重后果,对网络安全防护并不十分关注,致使维护人员水平较低,大多数的场景下,防火墙并没有表现出应有的效果。

本文将从渗透角度出发,分析业界常见的防火墙策略部署方式中存在的隐患。

为了规避打广告的嫌疑,本人测试环境中使用pfsense这款开源防火墙软件进行渗透演示。另外,本文中所说的防火墙概念仅限于状态检测类防火墙,访问控制为四层以下,不讨论深度检测及四层以上的策略问题。

测试网络环境如下图。

环境说明:

WEB服务器:windows server 2008 R2+xampp+dvwa

互联网终端:windows7 64位

防火墙:pfsense 2.4.4

攻击机:Kali linux

模拟互联网IP:192.168.1.0/24

模拟内网IP:10.1.1.0/24

本环境基本上包含了常见部署方式中的大多数典型问题(除了不安全的管理方式,弱口令等问题)。我们一一来分析。

场景一:

小S为某单位的网络管理员,单位应上级要求需要增加一台防火墙用来保护网络,小S对网络安全不是很在行,在配置NAT时,服务器有大量端口需要映射,为了方便小S直接配置一对一的映射,将所有端口映射了出去。测试后网络访问正常,小S觉得有了防火墙的保护,以后可以高枕无忧了……

下面是测试环境中防火墙的配置

虚拟IP,用于做地址转换

1:1的地址转换

全部允许通过的访问控制规则

在此先为小S默哀3s,下面我们来尝试拿到服务器的管理员权限。

首先尝试利用nmap对目标进行扫描,由于没有访问控制的影响,可以得到大量的信息。

在得到的信息中,发现目标主扫描开放了445端口,并且主机类型为Windows Server 2008 R2,445这个端口的开放意味着很可能目标主机存在MS17-010漏洞,也就是当初被勒索病毒疯狂利用的“永恒之蓝”漏洞。

利用nmap脚本对445端口是否存在漏洞进行进一步验证。结果证实了目标确实存在此漏洞可以利用。

接下来就使用metasploit提供的利用脚本进行渗透,设置好exploit和payload,直接攻击。

成功拿到shell。

有了system权限我们就可以为所欲为了,先dump一下服务器密码吧。

利用john对密码hash值进行破解,得到明文密码

之后我们就可以远程桌面登录服务器了,不用客气,跟回自己家一样。

经验总结:

在某些需求下,一对一的地址转换是必须的,比如业务端口为动态端口的情况下,防火墙很难通过端口映射方式实现地址转换,这时就需要利用访问控制策略对访问进行限制,选择性的开放端口,屏蔽业务无关端口。切记不可以因为麻烦而将所有端口全部暴漏的互联网上。

场景二:

小S吸取了上一个次的教训,将防火墙的一对一映射改为端口映射,之开放80端口,这样从互联网上将无法对服务器进行直接扫描了。但是服务器有上网的需求,所以出方向还是要放行的,那就和互联网PC同样处理吧。做完这些,小S总算是睡了个好觉……

修改后的防火墙策略是这个样子滴

端口映射,只开放80端口

修改规则,只允许互联网访问服务器的80端口

在小S睡觉的时间,我们自然不能浪费时间,我们再来尝试拿到服务器的管理员权限。

第一步依然是扫描,目标是为了收集信息,但由于有了防火墙的拦截,除了80和8080(8080是我防火墙的管理端口)其他的端口都被过滤掉了。

既然只开放了80端口,那么就从WEB应用入手。在WEB应用中找到了一个文件上传漏洞(如何找漏洞不在本文讨论范围之内),可以利用这个漏洞上传webshell。

利用wevelly生成webshell,通过通过漏洞页面上传。

上传成功后,页面提示信息将路径暴漏了出来,记下这个路径。

利用weevely成功连接webshell。

为了使用起来现方便,我们可以通过反弹shell的方式,将weevely shell升级为meterpreter shell,反弹shell实际上就是利用服务器访问互联网不被防火墙限制的原因,主动向攻击机发起连接,从而达到获取shell的目的,这种技巧广泛用于绕过防火墙。

Weevely中使用的是metasploit 中php/meterpreter/reverse_tcp这个payload,利用metasploit监听本地4444端口,配合weevely即可连接meterpreter,这时可以看到,因为服务器环境配置不当,webshell是以administrator身份执行的,免去了提权的过程,直接达到了管理员权限,剩下的事情就不用我说了。

经验总结:

WEB应用漏洞往往为渗透开启了大门,而其中文件上传漏洞,本地命令执行漏洞和SQL注入漏洞这三类危害相当大。WEB应用防护不可忽视。

服务器主动访问互联网为反弹shell提供了条件,另外利用服务器主动访问互联网实现木马下载也是一种常见的攻击手段,所以限制服务器访问互联网尤为重要,尽量通过防火墙限制服务器访问互联网的目标IP可以有效避免反弹shell。

场景三:

经过两次的折磨,小S终于意识到了网络安全并没有想象中那么简单,所以下了些功夫去研究,他发现上一次被攻击之后,服务器总是主动访问一些不知道是哪里的IP,有经验的工程师告诉他可以对出方向的访问进行限制,这样就可以避免网站被黑。

小S又对防火墙访问策略进行了一次调整,这一次只允许服务器主动访问特定的一个IP地址,做完这些后,小S还是觉得心里有一些忐忑......

小S的忐忑是对的,我们再一次无情的去折腾小S的网站了。

这次假设WEB应用没有可利用的漏洞,换一个角度,通过内网渗透方式来搞定这台服务器。

因为服务器访问互联网已经被限制了,无法实现shell反弹,所以需要从其他途径下手,一般来讲PC机经常访问互联网,再加上用户使用习惯的问题,PC机的安全防护往往很薄弱,所以互联网PC机是最好的目标。

首先利用msfvenom生成木马,进行免杀以及适当伪装。Metasploit监听回连端口,等着目标上线。

通过社工手段或其他可利用的手段,将木马在目标网络的互联网PC上运行。(具体方法不在本文中讨论)。Meterpreter反弹shell成功,可以进一步进行渗透。

通过脚本抓取本地子网信息。

利用ARP扫描网络中的活动主机,这里发现了10.1.1.10这个主机。

扫描10.1.1.10这台主机开放的端口,其中445和3389最值得关注,基本可以确定这是一台windows主机,很可能存在“永恒之蓝”漏洞。

以PC为跳板,采用代理方式向10.1.1.10发起攻击,尝试利用“永恒之蓝”获得主机的控制权。

因为采用代理方式,所以payload直接bind_tcp端口,reverse_tcp不可用。配置好IP及端口后,直接进行攻击。

Meterpreter连接成功,直接得到了目标服务器的管理权限,之后又可以为所欲为了。

经验总结:

这一次渗透成功主要有两个方面的因素:

1,PC机安全防护不到位,在现实环境中能上互联网的PC机也同要很容易中招,尤其是以社工手段进行的攻击防不胜防。

2,PC机与服务器放到了同一网络中,并且没有做任何的安全隔离。

综合以上两点可以看出,不同功能的设施对安全的要求不同,需要在网络规划时以区域的形式进行划分,利用不同子网和不同的安全策略进行管控。严格限制办公终端到服务器的访问。

经过小S的不懈努力,历时一年,小S终于……被开除了……但小S的故事还没有结束,他犯下的错误在走后依旧没有被更正,其内容包括设备采用HTTP管理而不是HTTPS,登录密码过于简单,密码不经加密存放在个人电脑中等,这些小问题看似不起眼,但往往都给黑客们提供了非常大的便利。

最后再对本文内容做一下总结:

1,防火墙访问控制要细致,不可以贪图简便。

2,NAT和访问控制配合要紧密,避免业务无关的端口暴漏在公网上。

3,注意主动访问互联网的控制,不给木马留有活路。

4,不同区域之间要严格控制,避免内网渗透。

原文发布于微信公众号 - 吾生也有涯IT也无涯(UnlessITSkill)

原文发表时间:2019-07-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券