电话

15169028800

【内网渗透】防踩坑秘籍之横向移动总结

标签: 局域网怎么创建 2023-06-03 

  在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围。通过此类手段,攻击者最终可能获得域控制器的访问权限,甚至完全控制基于Windows操作系统的整个内网环境,控制域环境下的全部机器。

  执行net share命令,可以获得Windows默认开启的网络共享,其中C$为C盘共享,ADMIN$为系统目录共享,还有一个IPC$共享。

  IPC(Internet Process Connection)是共享”命令管道”的资源,为了让进程间通信而开放的命令管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。

  实战中往往会建立IPC$连接,因为通过IPC$连接,不仅可以进行所有文件共享操作,还可以实现其他远程管理操作,如列出远程主机进程、在远程主机上创建计划任务或服务等。

  353:找不到网络路径,可能是 IP 地址错误、目标未开机、目标 Lanmanserver 服务未启动、有 防火墙等问题

  51219:提供的凭据和已存在的凭据集冲突,说明已建立 IPC$,需要先删除

  71792:目标 NetLogon 服务未启动,连接域控常常会出现此情况

  SMB(Server Message Block,服务器消息块),又称CIFS(Common Internet File System,网络文件共享系统),主要功能是使网络上的计算机能够共享计算机文件、打印机、串行端口和通信等资源。SMB消息一般使用NetBIOS协议或TCP发送,分别使用端口139或445,目前倾向于使用445端口。

  Certutil 是Windows自带的命令行工具,用于管理Windows证书并作为证书服务器的一部分安装。Certutil提供了从网络下载文件的功能。

  BITSAdmin用于创建、下载和上传作业,监视其进度。Windows7及以后的系统自带BitsAdmin工具。

  在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?

  使用 at&schtasks 命令,创建计划任务,在已知目标系统的用户明文密码的基础上,直接可以在远程主机上执行命令。

  获取到某域主机权限-minikatz 得到密码(明文,hash)-用到信息收集里面域用户的列表当做用户名字典-用到密码明文当做密码字典-尝试连接-创建计划任务(atschtasks)-执行文件可为后门或者相关命令

  \3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本

  利用已建立的IPC连接或指定用户凭据的方式在远程主机上创建计划任务shell

  也可以通过计划任务执行系统命令,将执行结果写入文件,然后使用type命令查看文件

  攻击载荷在远程主机上时,可以直接使用UNC路径代替常规的本地路径,让目标主机直接在测试人员搭建的Smb共享中加载攻击载荷并执行。这样可以省去手动上传载荷的步骤。

  创建远程服务需要拥有两端主机的管理员权限(要创建服务)和IPC连接,具体操作:

  利用已建立的共享连接向远程主机上传攻击载荷reverse_tcp.exe

  前期除了收集明文密码HASH等,还收集了用户名,用户名配合密码字典,用python打包成.exe可执行文件

  psExec是微软官方提供的一个Windows远程控制工具,可以根据凭据在远程系统上执行管理操作,并且可以获得与命令行几乎相同的实时交互性。该工具在MSF框架中也有集成。

  psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开方3389端口,只需要对方开启admin$共享 (该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于PsExec是Windows提供的工具,所以杀毒软件将其列在白名单中。

  对方主机开启了 admin$ 共享,如果关闭了admin$共享,会提示:找不到网络名

  如果是工作组环境,则必须使用administrator用户连接(因为要在目标主机上面创建并启动服务),使用其他账号(包括管理员组中的非administrator用户)登录都会提示访问拒绝访问。

  如果是域环境,即可用普通域用户连接也可以用域管理员用户连接。连接普通域主机可以用普通域用户,连接域控只能用域管理员账户。

  # 若字段值为0,则表示已启动RDP;若为1,则表示禁用RDP开启远程桌面

  # 关闭“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”(鉴权)4

  Windows系统下,tscon可被用来切换远程桌面的会话。正常情况下,切换会话时需要提供登录密码,但通过特殊的利用方法能够绕过验证,不输入密码实现未授权登录。

  sharp rdp可以通过远程桌面协议在远程主机上执行系统命令,且不需要GUI客户端。

  在横向移动时,可以利用WMI提供的管理功能,通过以获取的用户凭据,与本地或远程主机进行交互,并控制其执行各种行为。目前两种常见的利用方法:

  1、 通过调用WMI的类方法进行远程调用,如Win32_Process类中的Create方法可以在远程主机上创建进程,Win32_Product类的Install方法可以在远程主机上安装恶意的MSI

  通过调用Win32_Process.Create方法在远程主机上创建进程,启动CMD来执行命令

  由于WMIC在执行命令时没有回显,因此可以将执行结果写入文件,然后通过别的方式读取文件

  Impacket项目的Wmiexec.py能够以全交互或半交互的方式,通过WMI在远程主机上执行命令。该工机需要远程主机开启135和445端口,其中445端口用于传输命令执行的回显。

  其中触发事件的具体条件被称为“事件过滤器”(Event Filter),如用户登录、新进程创建等;对指定事件发生做出相应的称为“事件消费者”(Event Consumer),包括一系列具体的操作,如运行脚本、记录日志、发送邮件等。

  COM(Component Object Model,组件对象模型)是微软的一套软件组成的二进制接口标准,使得跨编程语言的进程间通信、动态对象创建成为可能。COM指定了一个对象模型和编程要求,使COM对象能够与其他对象交互。这些对象可以在单个进程中,也可以在其它进程中,甚至可以在远程计算机中。在Windows中,每个COM对象都由唯一的128位的二进制标识符标识,即GUID。

  DCOM(Distracted Component Model,分布式组件对象模型)是基于COM的一系列概念和程序接口,支持不同机器上的组件间通信。利用DCOM,客户端程序对象可以请求来自网络中另一台计算机上的服务器程序对象。

  部分DCOM组件公开的接口中可能包含不安全的方法。执行以下命令,可以列出计算机上所有的DCOM程序组件

  在远程主机上执行命令时,必须使用域管的administrator账户或者目标主机具有管理员权限的账户

  WinRM是通过执行WS-Management协议(用于远程软件和硬件管理的Web服务协议)来实现远程管理的,允许处于一个共同网络内的Windows计算机彼此之间互相访问和交换信息,对应的端口是5985。在一台计算机启用WinRM服务后,防火墙会自动放行其相关通信端口,在另一台计算机便能通过WinRM对其进行远程管理了。

  ① Winrs,允许远程执行命令的命令行工具,利用了WS-Manage协议

  ② Winrm(Winrm.cmd),内置系统管理命令行工具,允许管理员配置本机的WinRM服务。

  在默认情况下,无法通过WinRM连接到目标系统。可能出现错误:Winrs error:WinRM客户端无法处理该请求。可以将默认身份验证与IP地址结合使用:

  ① 传输为HTTPS或目标位于TrustedHosts列表中,并且提供显式凭据

  winrs是Windows上远程管理提供的客户端程序,允许通过提供的用户凭据,在运行WinRM的服务器上执行命令。要求通信双方都安装了WinRM服务。

  winrm.cmd允许WMI对象通过WinRm传输进行远程交互,在本地或远程计算机上枚举WMI对象实例或调用WMI类方法。比如可以通过调用Win32_Process类的Create方法来创建远程实例。

  PTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。

  PTK:打补丁前不能连接,打补丁后才能任意用户都可以连接(采用 aes256 连接)

  PTT 攻击的部分就不是简单的 NTLM 认证了,它是利用 Kerberos 协议进行攻击的,三种常见的攻击方法:

  Impacket项目中具有远程执行功能的几个脚本几乎都可以进行哈希传递攻击,常见的有:

  #-hashes 指定用户完整的哈希,如果LM哈希被废弃,就将其指定为0或者空3

  # 此示例通过Task Scheduler服务在目标计算机上执行命令,并返回已执行命令的输出。5

  # 需要开放139和445端口,通过Windows Management Instrumentation使用的半交互式shell,它不需要在目标服务器上安装任何服务/代理,以管理员身份运行,非常隐蔽。7