对于初步涉足网络安全领域的计算机爱好者,从漏洞挖掘到漏洞利用,从工具学习到渗透测试,这些个听起来充满冒险与挑战的名词,可能是他们在入行时的最大动力源。在这篇文章里,我将分享我的第一次渗透测试:

我将一次渗透测试的一般流程可视化展示如下,这也是我本文的行文逻辑:

 

攻击环境均在VMware虚拟机上安全进行

攻击主机:kali linux     192.168.142.132

目标主机:windows 7   192.168.142.133

利用漏洞:MS17-010

使用Kali复现漏洞不得不提及的一个攻击工具MSF(Metasploit Framework)

在kali终端上输入命令msfconsole,打开MSF

由于这次测试以复现漏洞为主要目的,在目标主机存在漏洞已知的情况下进行搜索,使用命令行——search ms17_010

上图是在msf漏洞收集库中找到的EternalBlue漏洞原型,其中紫色高亮的区域是我们需要使用的部分,接下来输入命令——use 0(“0”是指第一个exploit首行的编码)

之后我们就切换到了exploit状态,这里我省略了漏洞利用前的扫描步骤,因为在攻击之前我们已经采用了适用此漏洞的windows 7 无补丁版本,在一般的渗透测试之前会再次将选取漏洞与目标主机进行适配性测试,以防止对方已经规避此漏洞的情况。

在攻击之前的最后一步是调试我们的攻击参数,如上图我们在切换exploit之后通过options命令打开了配置器界面,可以通过观察required目录分辨哪些参数需要我们进一步配置,不难发现是RHOSTS项后面缺少了受击主机的IP地址(地址段),因此我们通过set命令补全这一项。

配置完目标之后,我们仍需要检查一下payload载荷情况,需要适用于我们的x64系统,并确定我们攻击主机的IP(192.168.142.132)以及负载攻击使用的端口(4444)

最后我们只需要调节target指向我们攻击的目标windows 7

至此,我们攻击之前的部署工作准备完毕,但为了测试工作的严谨性,我们再次使用命令options查看参数情况。

确认各参数无误后,我们就可以让工具run起来了。

上图可以很明显看到我们最终攻击目标主机“win”了!

接下来出现的meterpreter命令行,代表我们已经成功入侵目标主机,渗透目标主机后的第一步便是核对我们攻击目标主机的各项参数以及我们目前拿到的权限,这标志着我们正式进入后渗透阶段。

可以看到我们通过getuid命令得知我们拿到了windows最高权限system,通过sysinfo发现我们攻击目标的各项基本数据。

既然我们已经获得最高权限,那么也就意味着我们可以直接管理目标的shell文件,这就是永恒之蓝的可怕之处,我们通过shell命令进入控制终端,可以看到是直接在system32目录之下,进一步说明我们获得了对方的最高控制权限。

在运行一些简单的windows命令之后,我们发现会出现诸多乱码,这是因为我们的终端缺少国际标准编码,这时需要执行一个命令:

/*可以参考:

常用代码页对照表

代码页             编码                   说明

65001             UTF-8            国际标准编码

936                  GBK             中文简体(Windows 默认)

950                   Big5            中文繁体

437               IBM ASCII        英语(美国)

852                  Latin-2          中欧语言

1252         Windows Latin-1   西欧语言*/

在这项命令执行过后就不会出现有乱码的情况了。

除了可以获得对方终端的控制权之外,我们还可以远程控制目标主机截屏、打开摄像头等夸张的操作,只要权限允许,我们可以收集到目标主机所有我们想收集的信息。

这里就展示如何利用目标主机进行截屏:

从图中可以看到,我的第一次控制截屏发生了报错,后续我还进行了多次的尝试,但仍然出现了报错的问题,这里可能是目标主机的设置问题导致的,但是我们仍然可以通过别的方式绕过进行截图:

在执行espia命令后,我们改用命令screengrab命令就可以实现截屏,尾部显示把我们的截屏储存到了攻击主机的root目录下,我们只需要在攻击主机的对应文件下打开就可以看到目标主机目前运行的情况。

我们还可以试着查看该主机的有哪些用户,以及最近各个用户的使用情况:

同时我们可以通过ps命令去查看目标主机目前的各项进程以及对应的PID编码:

通过netstat命令可以查看目标主机网络连接情况,以便于我们进行横向移动或者持久化(除此之外,还可以通过netstat -an命令来查看哪些端口属于监听状态):

以上我简要列举了一些后渗透的可控操作,但是我们不能一直执着于建立连接,因为我们入侵的同时,在目标主机的任务管理器中,我们已经暴露在正在进行的任务当中,因此巩固连接比建立连接更佳重要,警惕的攻击者往往会在建立连接之初就隐藏自己或者开始设置“后门”,这是以便于我们能为收集信息争取更多的时间。

而在这两种方式之外,我们还可以通过爆破该用户的用户名和登录密码来实现这样连接的可持续化:

我们只需要一个命令就可以收集到这些信息,唯一需要注意的是该用户的密码解析出来时会以哈希加密的形式呈现,不过这并不难处理,我们只需要去利用别的解密工具来解析出密码即可,这里我使用的cmd5这一解释器:

输入对应的哈希码后就可以解密成功了!这时我们要再次连接该目标主机,只需要借助远程桌面连接的软件输入ip地址以及用户名和密码就可以了!

最终我们需要打扫攻击现场,使用clearev以清除我们攻击的痕迹,以至于对方无法通过查看日志的方式发现我们的操作行为。

这便是我的第一次渗透体验,上述的一些处理办法比较稚嫩,而且仍有非常多的后渗透思路需要学习,但这一次的渗透得以彻底激发出一个网安学习者的学习动力,也应证了一个网络安全前辈说得一句话:

网络安全就是—— “ 向海而生,探索无限。”

 

 

 

更多推荐