IPC$入侵计算机系统浅析
作者:随风 日期:2006-03-07 18:55:29
在黑客众多的入侵手段中,通过IPC$入侵成为目前比较常见的一种方式,其攻击步骤甚至可以说已经成为经典的入侵模式,许多朋友非常想搞清楚这是怎么回事。知己知彼,方能百战不殆,基于这种考虑,我们来了解一下这种入侵方式的基础知识。
IPC是Internet Process Connection的缩写,也就是远程网络连接。它是Windows NT/2000/XP特有的一项功能,就是在两个计算机进程之间建立通信连接。一些网络通信程序之间通信可以建立在IPC上面。打个比方,IPC连接就像是挖好的地道,程序可通过地道访问远程主机。默认情况下,IPC是共享的,也就是说微软已经为我们挖好了这个地道(IPC),因此,这种基于IPC的入侵也常常被简称为IPC入侵。
IPC后面的$是共享的意思,不过是隐藏的共享,微软系统中用“$”表示隐藏的共享,比如C$就是隐藏的共享C盘。也就是说C盘是共享的,但是C盘没有那个“托手”标志。IPC$是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码!当然对方机器必须打开IPC$共享,否则你是连接不上的。而利用这个空的连接,连接者还可以得到目标主机上的用户列表。
问:建立IPC连接需要什么条件?
答:建立IPC连接要求双方都是基于NT架构的系统。Windows Me/98/95都不可以。
问:怎么才能建立IPC连接呢?需要什么黑客工具呢?
答:建立IPC连接不需要任何黑客工具,在Windows里敲命令行就行了,但需要知道远程主机的用户名和密码。打开CMD后用如下命令:net use\\ip\ipc$ "password" /user:"username"进行连接。注意,如果远程服务器没有监听139或445端口,会话是无法建立的。也就是说IPC$需要对方开启139或445端口。
问:建立IPC$之后黑客能做什么?
答:如果黑客使用管理员权限的账号和目标连接IPC$,他就可以和对方系统做深入“交流”了。黑客可以使用各种命令行方式的工具,比如pstools系列、Win2000SrvReskit、telnethack等获得目标信息、管理目标的进程和服务等。如果目标开放了默认共享(没开的话,黑客会帮你开),黑客就可以上传木马并运行,也可以用tftp、ftp的办法上传,而dwrcc、VNC、RemoteAdmin等工具(木马)还具有直接控屏的功能,直接控制我们。如果是Win2000 server,黑客还会考虑开启终端服务以方便控制。
问:别人无法和自己建立IPC$是否意味着我就不能和对方建立IPC$呢?
答:不是的!发起IPC$和被建立IPC$是两个不同的概念。别人无法和自己建立IPC$并不影响自己是否能够和他人建立IPC$。
问:我听说有个空连接,这是怎么回事呢?
答:简单说来,空连接即不需要用户名和密码就可以建立IPC连接,但是这种连接是得不到什么权限的。建立空连接的命令:net use \\IP\ipc$ "" /user:""。空连接是在没有信任的情况下与服务器建立的会话(即未提供用户名与密码),但根据Win2000的访问控制模型,空会话的建立同样需要提供一个令牌,可是空会话在建立过程中并没有经过用户信息的认证,所以这个令牌中不包含用户信息,因此,这个会话无法在系统间发送加密信息,但这并不表示空会话的令牌中不包含安全标识符SID(它标识了用户和所属组),对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话的SID,用户名是:ANONYMOUS LOGON(这个用户名是可以在用户列表中看到的,但是无法在SAM数据库中找到,属于系统内置的账号),这个访问令牌包含下面伪装的组:Everyone,Network;在安全策略的限制下,这个空会话将被授权访问到上面两个组有权访问到的一切信息。
问:空连接有什么用?
答:对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问Everyone权限的共享,访问小部分注册表等,并没有什么太大的利用价值;对Win2000作用更小,因为在Win2000和以后版本中默认只有管理员和备份操作员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。从这些我们可以看到,这种非信任会话并没有多大的用处,但从一次完整的IPC$入侵来看,空连接是一个不可缺少的跳板,因为我们从它那里可以得到用户列表,空连接还可以列举用户和组,目标系统类型等。这对于一个老练的黑客已经足够了。
问:如何利用空连接得到远程主机的用户列表
答:首先,先建立一个空会话(需要目标开放ipc$),用命令:net use \\ip\ipc$ "" /user:""即可建立空连接。然后用命令:net view \\IP命令查看远程主机的共享资源,如果对方开了共享,就可以列出共享名、类型及其注释。最后再使用nbtstat -A IP命令就可以得到远程主机的NetBIOS用户名列表(需要打开自己的NBT)。注意,建立IPC$连接的操作会在EventLog中留下记录,不管你是否登录成功。
问:空连接和IPC$是一回事吗?
空连接和IPC$是不同的概念。空连接是在没有信任的情况下与服务器建立的会话,换句话说,它是一个到服务器的匿名访问。IPC$是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限。IPC$连接可以实现远程登陆及对默认共享的访问。
问:IPC$是个漏洞吗?
许多文章中都提到了IPC$漏洞,其实,IPC$并不是真正意义上的漏洞,它是为了方便管理员的远程管理而开放的远程网络登陆功能,而且还打开了默认共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$)。所有的这些,其初衷都是为了方便管理员的管理,但一些别有用心者会利用IPC$访问共享资源,导出用户列表,并使用字典工具进行密码探测,寄希望于获得更高的权限,从而达到不可告人的目的。从这个角度来说,IPC$常常被黑客所利用。
问:IPC$连接成功后,我用net uset kkk /add命令建立了一个账户,却发现这个账户在我自己的机器上,这是怎么回事?
答:IPC$建立成功只能说明你与远程主机建立了通信隧道,并不意味你取得了一个shell,只有在获得一个shell之后,你才能在远程建立一个账户,否则你的操作只是在本地进行。
问:我建立ipc$连接的时候返回如下信息:‘提供的凭据与已存在的凭据集冲突’,怎么回事?
答:这说明你与目标主机建立了一个以上的IPC$连接,这是不允许的,把其他的删掉吧。用如下命令计量:net use \\*.*.*.*\ipc$ /del。
问:IPC$与默认共享有什么联系?
答:默认共享是为了方便管理员远程管理而默认开启的共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$),我们通过ipc$连接可以实现对这些默认共享的访问,前提是对方没有关闭这些默认共享。
问:只要对方开放了139端口或者445端口就可以建立IPC$吗?
答:这种想法不一定正确!139、445端口开放了未必可以建立IPC$,但IPC$可建立则表示对方的139端口或445端口开放了。
问:怎样映射和访问默认共享?
答:使用命令net use z: \\目标IP\c$ "密码" /user:"用户名"命令,将对方的c盘映射为自己的z盘,其他盘类推。
如果已经和目标建立了IPC$,则可以直接用IP加盘符加$访问。比如执行copy muma.exe \\IP\d$\path\muma.exe命令,或者再映射也可以,只是无需用户名和密码了,例如输入:net use y: \\IP\d$命令。然后再执行copy muma.exe y:\path\muma.exe即可。当路径中包含空格时,须用""将路径全引住。
问:如何删除映射和ipc$连接?
答:用命令net use \\IP\ipc$ /del可以删除和一个目标的IPC$连接。用命令net use z: /del删除映射的Z盘,其他盘类推。而用命令net use * /del可以删除全部,在删除时会有提示要求按“y”键确认。
问:如何防范IPC$入侵?
答:首先要禁止空连接进行枚举(此操作并不能阻止空连接的建立)。运行regedit,找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA下的DWORD值RestrictAnonymous的键值改为:00000001。
然后输入net share察看本地共享资源,接下来输入如下命令删除共享:
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f等盘符可以同法删除)
接下来用记事本编辑如下内容的注册表文件,保存为任意名字的.Reg文件,使用时双击即可关闭默认共享和IPC$:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"AutoShareServer"=dword:00000000
"AutoSharewks"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"RestrictAnonymous"=dword:00000001
注意,上面的代码最后面一定要空上一行,否则不会成功。其中,键值AutoShareServer对应C$、D$一类的缺省共享,键值AutoSharewks对应ADMIN$缺省共享,键值RestrictAnonymous对应IPC$空连接。
除了上面的方法,你也可以通过屏蔽139,445端口来防范别人通过IPC$来入侵,因为没有139,445端口的支持是无法建立IPC$的,因此屏蔽139,445端口同样可以阻止IPC$入侵。139端口可以通过禁止NBT来屏蔽,方法是:选择本地连接→TCP/IP属性→高级→WINS→禁用TCP/IP上的NETBIOS即可(图1)。445端口可以通过修改注册表来屏蔽方法是:打开注册表到HKEY_LOCAL_MACHINE\System\Controlset\Services\NetBT\Parameters下,新建预告DWORD值SMBDeviceEnabled,将其键值设为0,然后修改完后重启机器即可。
再有,停止Server服务也是个不错的防范方法,具体方法是在CMD下输入:net stop server /y即可,注意重新启动电脑后Server服务会重新开启。所以,如果你觉得这样还不够安全,可以永久关闭ipc$和默认共享依赖的服务:Server服务,方法是:打开“控制面板”|“管理工具”|“服务”,找到Server服务(图2),用鼠标右键单击它,选择弹出菜单中的“属性”,再点击“常规”|“启动类型”|“已禁用”即可
安全配置向导为Win2003打造“铜墙铁壁”
作者:随风 日期:2006-03-02 22:52:58
Windows Server 2003是大家最常用的服务器操作系统之一。虽然它提供了强大的网络服务功能,并且简单易用,但它的安全性一直困扰着众多网管,如何在充分利用Windows Server 2003提供的各种服务的同时,保证服务器的安全稳定运行,最大限度地抵御病毒和黑客的入侵。Windows Server 2003 SP1中文版补丁包的发布,恰好解决这个问题,它不但提供了对系统漏洞的修复,还新增了很多易用的安全功能,如安全配置向导(SCW)功能。利用SCW功能的“安全策略”可以最大限度增强服务器的安全,并且配置过程非常简单,下面就一起来看吧!
厉兵秣马 先装“SCW”
大家都很清楚,Windows Server 2003系统为增强其安全性,默认情况下,很多服务组件是不被安装的,要想使用,必须手工安装。“SCW”功能也是一样,虽然你已经成功安装了补丁包SP1,但也需要手工安装“安全配置向导(SCW)”组件。
进入“控制面板”后,运行“添加或删除程序”,然后切换到“添加/删除Windows组件”页。下面在“Windows组件向导”对话框中选中“安全配置向导”选项,最后点击“下一步”按钮后,就能轻松完成“SCW”组件的安装。
安装过程就这么简单,接下来就能根据自身需要,利用“SCW”配置安全策略,增强Windows Server 2003服务器安全。
配置“安全策略” 原来如此“简单”
在Windows Server 2003服务器中,点击“开始→运行”后,在运行对话框中执行“SCW.exe”命令,就会弹出“安全配置向导”对话框,开始你的安全策略配置过程。当然你也可以进入“控制面板→管理工具”窗口后,执行“安全配置向导”快捷方式来启用“SCW”。
1.新建第一个“安全策略”
如果你是第一次使用“SCW”功能,首先要为Windows Server 2003服务器新建一个安全策略,安全策略信息是被保存在格式为XML 的文件中的,并且它的默认存储位置是“C:\WINDOWS\security\msscw\Policies”。因此一个Windows Server 2003系统可以根据不同需要,创建多个“安全策略”文件,并且还可以对安全策略文件进行修改,但一次只能应用其中一个安全策略。
在“欢迎使用安全配置向导”对话框中点击“下一步”按钮,进入到“配置操作”对话框,因为是第一次使用“SCW”,这里要选择“创建新的安全策略”单选项,点击“下一步”按钮,就开始配置安全策略。
三分种保证IIS自身的安全性
作者:随风 日期:2006-03-01 19:53:08
要构建一个安全的IIS服务器,必须从安装时就充分考虑安全问题。
1. 不要将IIS安装在系统分区上。
2. 修改IIS的安装默认路径。
3. 打上Windows和IIS的最新补丁。
IIS的安全配置
1. 删除不必要的虚拟目录
IIS安装完成后在wwwroot下默认生成了一些目录,包括IISHelp、IISAdmin、IISSamples、MSADC等,这些目录都没有什么实际的作用,可直接删除。
2. 删除危险的IIS组件
默认安装后的有些IIS组件可能会造成安全威胁,例如 Internet服务管理器(HTML)、SMTP Service和NNTP Service、样本页面和脚本,大家可以根据自己的需要决定是否删除。
3. 为IIS中的文件分类设置权限
当你喝醉了,你会给谁打电话?
作者:随风 日期:2006-02-25 23:16:27
“如果在你们分手后,他每次酒醉都会打电话给你,那么你也许已经失去了一个这辈子最爱你的人.虽然每天都装做很快乐,但是夜里他却偷偷的去买醉.因为他忘不了这辈子最深爱的女人.你不用担心,不久后他再也不会骚扰你了,就象从来没有在你的生活出现过.因为他的心已经死了. ”
我很佩服作者对生活的感悟。我想这是每个有过失去心爱女孩的共同表现。至少我是这样的。我没有真正谈过恋爱,但也曾在喝醉后给女生打电话。有很喜欢她的那种女生,也有当她是最好的朋友的那种女生。
也许只有醉了才有勇气说出自己的心里话。
心真的会死吗?
[隐藏日志]
作者:随风 日期:2006-02-25 23:03:33
展开菜单特效技巧
作者:随风 日期:2006-02-21 22:46:11
BBSXP这套论坛系统中就有这个功能,打开它的源程序,找到控制菜单的文件。通过研究它的代码,终于发现了在每个菜单的代码部分都有一段相似的代码:
<td class="menu_title" id="imgmenu5" onmouseover="this.className='menu_title2';" onclick="showsubmenu(5)" onmouseout="this.className='menu_title';" style="cursor:hand" background="/asp/c2blog/images/menu/menudown.gif" height="25">
猜想函数showsubmenu(5)可能就是控制菜单展开和收起的代码,找到那个函数的源代码:
<script>
function showsubmenu(sid)
{
whichEl = eval("submenu" + sid);
imgmenu = eval("imgmenu" + sid);
if (whichEl.style.display == "none")
{
eval("submenu" + sid + ".style.display=\"\";");
imgmenu.background="/asp/c2blog/images/menu/menuup.gif";
}
else
{
eval("submenu" + sid + ".style.display=\"none\";");
imgmenu.background="/asp/c2blog/images/menu/menudown.gif";
}
}
</script>
很明显参数sid就是识别是那个菜单的,whichEl.style.display == "none"是判断菜单是否已经展开。
什么事没亲自试过就不能算搞明白。于是就自己把代码拷到一个新的文件中,修改了一部分的代码,弄了个简单的菜单:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<style type="text/css">
BODY {
BACKGROUND:799ae1; MARGIN: 0px;
}
.sec_menu {
BORDER-RIGHT: white 1px solid; BACKGROUND: #d6dff7; OVERFLOW: hidden; BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid
}
.menu_title SPAN {
FONT-WEIGHT: bold; LEFT: 10px; COLOR: #215dc6; POSITION: relative; TOP: 2px
}
.menu_title2 SPAN {
FONT-WEIGHT: bold; LEFT: 10px; COLOR: #428eff; POSITION: relative; TOP: 2px
}
</style>
<script>
function showsubmenu(sid)
{
whichEl = eval("submenu" + sid);
imgmenu = eval("imgmenu" + sid);
if (whichEl.style.display == "none")
{
eval("submenu" + sid + ".style.display=\"\";");
imgmenu.background="/asp/c2blog/images/menu/menuup.gif";
}
else
{
eval("submenu" + sid + ".style.display=\"none\";");
imgmenu.background="/asp/c2blog/images/menu/menudown.gif";
}
}
</script>
<BODY>
<table>
<tr>
<td class="menu_title" id="imgmenu3" onmouseover="this.className='menu_title2';" onclick="showsubmenu(3)" onmouseout="this.className='menu_title';" style="cursor:hand" background="/asp/c2blog/images/menu/menudown.gif" height="25">
<span>个人服务</span> </td>
</tr>
<tr>
<td id="submenu3" style="DISPLAY: none">
<div class="sec_menu" style="WIDTH: 345px">
<div align="center">
<table cellspacing="3" cellpadding="0" width="260">
<tr>
<td><a target="main" href="profile.asp">我的资料</a></td>
<td><a target="main" href="/asp/c2blog/ShowBBS.asp?menu=5">我的帖子</a></td>
</tr>
<tr>
<td><a target="main" href="/asp/c2blog/upface.asp">上传头像</a></td>
<td><a target="main" href="/asp/c2blog/upphoto.asp">上传照片</a></td>
</tr>
<tr>
<td><a target="main" href="/asp/c2blog/calendar.asp">社区日志</a></td>
<td><a target="main" href="/asp/c2blog/blog.asp">我的日志</a></td>
</tr>
<tr>
<td><a target="main" href="/asp/c2blog/login.asp">更换用户</a></td>
<td> </td>
</tr>
</table>
</div>
</div>
<br>
</td>
</tr>
</table>
</div>
</div>
<br>
</td>
</tr>
</table>
</BODY>
</HTML>
[隐藏日志]
作者:随风 日期:2006-02-19 17:04:17
只要可以上网,不要电话也可以
作者:随风 日期:2006-01-12 19:53:59
中午考完试回宿舍发现上不了网了,一查,原来是电话线被老鼠咬断了。这老鼠也太猖狂了,吵得我们晚上睡不好觉不说,还把电话线给咬断了。
上不了网可不行啊,对于我们这些整天沉迷于网络的人来说是要命啊,怎么说也要把他给搞定了。
还是老大勤快,找来工具就干开了。可该死的老鼠偏偏把接入的那条线接水晶头的那个地方给咬断了,这可要我们命了。怎么办?后来我说把接电话的那条线接到猫,大不了不要电话了。老大马上说“只要可以上网,不要电话也可以”。呵呵,想想我们,感觉真的很有意思。
看书看烦了,随便乱写的,实在没文采可言。如不喜欢不要看就是了,请不要扔鸡蛋~~~
Tags: 上网