本篇是内网渗透系列的第二篇,我们主要来聊一聊在内网渗透中都有哪些方法可以帮助我们进行横向移动。在开始之前,我们先简单介绍一下什么是横向移动,所谓横向移动就是当攻击者获得了某台内网机器的控制权限后,会以被攻陷的主机为跳板,继续访问或控制其他内网机器的过程,我们称之为横向移动。
有关更多概念可以参考内网渗透系列的上一篇文章《内网渗透—获取Windows内Hash密码方法总结》,话不多说,直接开始。
在上一篇文章中,我们介绍了如何获取Windows单机的Hash密码,这一步是进行横向移动的基础,接下来我们可以通过Windows自带的远程连接命令进行操作,也可以通过一些PTH的方法,将散列值或明文密码进行传递,当然这是后面的内容会介绍到的,这里我们先了解一下有关Windows自带的远程连接命令----IPC。
IPC$(Internet Process Connection)是“进程间通信”的简称,其本质是一个共享的“命名管道”资源,主要的作用是为了让进程间通信而开放一个命名管道,通过提供可信任的用户名和口令,从而到达连接双方可以建立一个安全的通道并以此进行加密数据交换的功能,最终显现出来的效果就是能够实现对远程计算机的访问。
其实说白了IPC$有点类似于共享目录,但功能比他多得多。通过IPC$与目标机建立连接,不仅可以访问目标机器中的文件,进行上传、下载,还可以在目标机上运行命令。使用下面的命令就可以很轻松地创建一个IPC$连接了。
Net use \<目标机IP>ipc$ “password” /user:”username”
看到上面的命令,我们可以知道,要想建立IPC连接必须要满足三个条件:
① 目标机开启了139和445端口;
② 目标主机管理员开启了ipc$默认共享;
③ 知道目标机的账户密码。
可能到这里会有一些人有疑问,为什么我都知道了目标机的用户名和密码还要使用IPC?因为在真实环境中,并不是内网的所有机器都开放了3389(远程桌面)让你登陆,对于一些没有开启该服务的机器想要控制它就必须得通过IPC连接的方法了。而且要想直接获取目标机的用户名和密码是比较困难的,在不知道口令的情况下想要直接通过远程桌面来进行爆破是行不通的,但是IPC不仅可以批量爆破,还允许匿名登陆,所以IPC连接具有更强的灵活性。
通过计划任务进行横向移动其实类似于我们再进行Linux反弹shell时所依赖的计划任务一样,都是通过计划任务机制,让其自动执行攻击者上传的木马,从而达到受控的目的。在Windows中,能够创建或修改计划任务的主要有两个命令:schtasks和at。其中at命令主要工作在WindowsServer 2008之前版本的操作系统中,在之后的版本主要工作的都是schtasks命令。
1)利用schtasks命令
具体的操作流程如下:
① 与目标机建立IPC连接
② 使用copy命令,将木马复制到目标机中
③ 目标机上创建计划任务,使其自动触发木马文件
攻击机:192.168.210.38(KaliLinux)
跳板机:192.168.20.35(Windows10)
目标机:192.168.210.102(Windows 10)
跳板机与目标机创建IPC连接
攻击机上生成木马
在跳板机上使用copy命令,将攻击机上生成的木马文件复制到目标机中
copy shell.exe \192.168.210.102c$
利用schtasks命令创建一个名为“hack”的计划任务,该任务每分钟执行一次shell.exe。
schtasks /create /s 192.168.210.102 /uusername /p password /tn hack /sc minute /mo 1 /tr c:shell.exe /ru system /f
除了利用木马获得权限外,还可以通过计划任务直接执行系统命令,但由于结果不会回显,所以我们需要先将结果保存在一个文件中,再通过type指令读取文件内容获得执行结果。
2)利用at命令
使用at命令与上面的schtasks命令类似,唯一有所区别的是利用at命令时的命令格式与schtasks不同。
攻击机:192.168.210.38(KaliLinux)
目标机:192.168.210.102(Windows 10)
跳板机:192.168.210.107(Windows Server 2008 R2)
跳板机与目标机建立IPC连接
使用at命令创建计划任务,让目标机运行木马程序
使用Windows服务来进行横向移动有点类似与上一部分的利用计划任务进行横向移动,其核心也是将木马文件传入目标机中,然后通过SC命令创建一个Windows服务用来指向传入的木马文件,最后启动该服务或者重启目标机即可触发该木马,实现横向移动。
具体的操作流程如下:
① 与目标机建立IPC连接
② 使用copy命令,将木马复制到目标机中
③ 利用sc命令创建一个Windows服务指向木马文件
④ 启动该服务触发木马
攻击机:192.168.210.38(KaliLinux)
跳板机:192.168.20.35(Windows10)
目标机:192.168.210.107(Windows Server 2008 R2)
先让跳板机与目标机建立IPC连接,然后利用Copy命令将木马文件shell1.exe复制到目标机中。
利用SC命令创建一个名为hacker的服务,命令如下:
sc \<IP> create <servicename>binpath=”<path>”
sc \192.168.210.107 create hackerbinpath=”c:shell1.exe” #创建服务
sc \192.168.210.107 start hacker #启动hacker服务
以上介绍的只是我们在内网渗透中进行横向移动的常见方法,下一期我们会介绍其他的横向移动方法,例如如何利用PTH的方法,将散列值或明文密码传入目标机中进行横向移动,或者利用Windows自带工具PsExec、WMI进行横向移动以及寻找域控的方法。
原文始发于微信公众号(第59号):安全实验室 | 内网渗透—Windows横向移动总结(上)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论