QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2697|回复: 0
打印 上一主题 下一主题

snmp安装信息刺探以及安全策略

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-20 14:41 |只看该作者 |正序浏览
|招呼Ta 关注Ta

来源:http://killgod.blogchina.com/

6 _, K) I1 n5 q4 _( v# J# F6 e

记:黑客X档案前几期的文章上有介绍利用工具snmputil.exe来刺探信息的,但是本

' x' d5 K& H6 a/ z

人觉得讲的有点简单,下面本人来深入的讨论一下,大家共同进步。

. `4 \, v& t8 A

9 ~2 A& }' ]3 v8 E$ W0 z一、SNMP的概念,功能

0 Y6 A4 f: V7 d Z1 [6 z9 M

SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,

+ |6 K6 m+ ~2 g' H, o& r

它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索

8 v- [: U- T* S k: \

信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制,

j0 t+ V2 N# K; c0 Y& X7 B( I

提供最基本的功能集。最适合小型、快速、低价格的环境使用。它只要求无证实的传输层

( k) t ^0 _' @5 ?

协议UDP,受到许多产品的广泛支持。

0 h3 P2 Q- }% Y0 q% F) G7 O

本文将讨论如何在Win2K安装使支持SNMP功能,SNMP技术对于提升整体安全水准是有益的,

' {4 V0 m: Y" n

但也可能存在风险,本文将同时检验这两个方面。另外,除了介绍一些开发工具外,

|) P! A; |1 U5 J

还将图解通过SNMP收集信息的可能用法,以及如何提高安全性。

W Z l0 w' ^) c& }( M' j

二、在Win2K中安装SNMP

" ^ f7 U$ l, @5 c; h4 m

提供一个支持SNMP的Win2K设备与增加一个额外的Windows组件同样简单,只需要进入"开始/设置/控制面板/",

/ l! D4 u- u6 B2 L* _# f

选择"添加/删除程序",然后选择"添加/删除Windows组件",随之出现一个对话框,在其中选择"管理和监视工具",

, M# }' I; Y R9 ~' G+ y

最后点击"下一步",依照提示安装: / Y& p) V" d! y% BOK,现在Win2K就可以通过SNMP来访问了.

. ^8 t: u4 V6 e! q* f, P

三、对snmp信息的刺探方法

@( V/ w u' D+ w- h3 k

1、Snmputil get

( b% h+ x) |! H+ d# L

下面我们在命令行状态下使用Win2K资源工具箱中的程序snmputil.exe

k3 H4 B$ `" \# [, U3 T& ?

(http://pdp.nease.net/snmputil.zip)

1 q# k) M) b6 h" R/ \* `1 E

来获取安装了SNMP的Win2K机器的网络接口数目,命令参数是get:

0 \# F5 F, i# q

前提是对方snmp口令是public

( k1 K8 Z- l8 K1 f/ {$ K( [

snmputil.exe提供基本的、低级的SNMP功能,通过使用不同的参数和变量,可以显示设备情况以及管理设备。

4 g1 R0 t* p! T* G, v

下面来看看这个例子都包含了哪些参数和变量:

, u6 V. m0 ]8 V; n9 G* P* l

/ s( Q& w! S, E, B- H3 h6 m ●最后一个参数是SNMP变量,值为1.3.6.1.2.1.2.1.0,被称为物件识别代码OID(object identifier)。

0 c/ y0 R1 \* S' \

OID有对应的字符串表达式,也就是在SNMPUTIL输出内容的第一行,在这个例子中,即是interfaces.ifNumber.0。

9 R& d8 Q* V7 L8 F& g8 g

这个字符串对于用户来说,就要易记易读多了。你可以发现,这种对应关系与DNS类似。

5 u1 E, b; U/ X* j& q

●第二个参数指定将SNMP请求发送给哪个设备,在这里是localhost,即本地主机。

/ w o6 B0 X. _3 _( [2 L; E

●第三个参数指定使用哪个共同体(即验证字符串或口令),在这里是public。

! x. j% Y+ ?, t1 j5 c) X8 |' b

在每个发送到被管理设备的SNMP UDP信息包中,这个口令是以纯文本形式传输的。

0 v' ~- p$ i% G6 }! J/ n

当一个Win2K设备安装上SNMP支持后,缺省的SNMP共同体名称为 public,这表明允许用户读取现有的所有变量。

1 N( [2 O5 [+ x

因为即便是设备中的网络接口数目也是一个敏感数据,所以这就成为第一个安全问题。

+ o/ z; O. h$ u) w$ q

: A# q7 f2 h5 t x& q5 ~ 2、Snmputil getnext

' t& A' f3 V, V$ a6 K9 E4 {

接着,我们试一试snmputil的另一个命令参数getnext:

' n1 j* Z" B/ m" `! D

getnext的功能是获取指定SNMP变量的下一个变量的值及其OID。因为一个设备的所有SNMP变量都是规则排列的,

" V& C B; e5 s. E8 \" b' r

所以使用getnext命令参数就可以获取一个设备中的所有变量值及OID,而不需要事先知道它们的准确OID值。

% l8 Q1 r$ g' u& }- W5 g

% f8 Y; t4 X9 A. I4 p1 j/ m 另外Snmputil getnext可以用来测试 Windows 2K SNMP内存消耗拒绝服务攻击缺陷

( }& }6 M M! \* l( H3 e' H

受影响的系统有:

. I! V. }7 Y! }3 e9 J' ~! |

- Microsoft lmmib2.dll 5.00.2134.13 i! Z5 M% P) Q& N! L/ G* }1 H - Microsoft Windows 2000 Server SP2 ) l- i0 s" w3 P+ E n* m. m5 ^ - Microsoft Windows 2000 Server SP1 9 b3 c4 j; D1 u+ o: ~. R5 p - Microsoft Windows 2000 Server

% I5 c3 k: e! b, z

具体方法:

" d" G; s8 b- O! i, f) G

snmputil getnext localhost public .1.3.6.1.4.1.77.1.2.28.0

1 w* P9 g- e, ^% a* j. A( H, G

请谨慎使用。。。。。。 当心被警察叔叔K哦

. n0 k, `$ A* a3 b

- i$ a. K4 z2 u& U5 d3、snmputil walk

& S) [$ S, w/ U6 ? E; |

知道了next指令的用途,我们可以编写一个程序自动获取一个设备的所有OID及其数值,而不用一行行地敲入那么长的命令。

8 P T/ U1 j: l3 `

但幸运的是,snmputil的walk指令帮助我们实现了这个想法。在命令行状态下敲入下面的命令,将显示出本地机器几乎所有的变量:

5 ^# W1 }# T7 l% F, C0 C7 u+ n4 w; h

C:\> snmputil walk localhost public .1.3

8 f2 \/ O. K0 X* o- ^; ~ y

你会看到一行行的文字在黑白窗口中不停地滚动 ...... 直到最后出现"End of MIB subtree"的信息:

) S: C W1 ^& q' b. \( K

其他指令含义:

6 h+ Q* X% z2 h; c+ {8 ?

1.snmputil walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2 列出系统进程

4 J* J U: z8 d& f4 [2 C

这样就可以使入侵者在入侵之前就知道你系统运行的软件,有没有装杀毒软件

/ D3 C6 Y4 _! ]

从而知己知彼,百战不殆!

- J6 D1 @. ?5 Z

2.snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1 列系统用户列表

4 V+ ?$ l, T) o v: B

有了这个更好了,入侵者可以根据你的用户表编一个密码表进行探测,7 |0 ]$ A. {+ a! n. j9 ] 减少了入侵的盲目性。

1 k) _0 m% V9 ` C/ ~ `+ Y

3.snmputil get 对方ip public .1.3.6.1.4.1.77.1.4.1.0 列出域名

4 N. Y, r8 Z2 W8 z; d! D( x/ s

这个可以列出系统的域名,是入侵者得到了主机名,可以根据此设置探测的密码字典,增加了成功率。

3 v- B. @0 _( C4 c

/ E7 D4 f# g3 S; `4.snmputil walk 对方ip public .1.3.6.1.2.1.25.6.3.1.2 列出安装的软件

' I, k2 t! L3 P& M) L& j* K/ Y

用这个入侵者可以看你装的sp是什么,有没有装防火墙等信息,可以据此判断应该有的系统漏洞,增加了入侵的成功率。

2 [9 a) l( |2 ]: ?

5.snmputil walk 对方ip public .1.3.6.1.2.1.1 列出系统信息

7 Y7 Z* u( |+ ?6 h$ G% |( b& ~

这个可以使入侵者了解系统状况以及主机的稳定性,可以从主机的uptime里得知你系统开机了多长时间,从而确定是否入侵

( a4 L! k' T3 E

: o8 w, s1 U: P. A: B2 c2 g 其他的工具

% O, e3 X0 N2 ~

1:SolarWinds 2002的IP Network Browser

8 ~$ D+ m, E/ y$ R, T F

_id=82">http://www.lbfok.com/txt/showsoft.asp?soft_id=82(软件地址)

4 r( P8 M) T3 v8 W( z) |, h

_id=83">http://www.lbfok.com/txt/showsoft.asp?soft_id=83(注册机下载)

, u/ ~8 |& w/ m

2:LANguard Network Scanner 3. / p3 Z ~5 g% }! T_id=103">http://www.lbfok.com/txt/showsoft.asp?soft_id=103

& S. Q5 P" d0 k+ z9 I

3:X-scan2.3cn

/ j9 ?' g d: d! U3 ~

以上用x-scan就得到了系统信息

5 w. s9 w( c# t! V ]: k6 i, G

_id=13">http://www.lbfok.com/txt/showsoft.asp?soft_id=13

& w% Y# J2 Z% k2 P' u8 B

% U! h' y' z4 Q& U四、如何提高Win2K SNMP的安全性

1 ^$ J9 q. i2 r4 M) ?

}( w8 f9 ~6 p2 n/ G8 ] 1:首先需要注意的是,snmp服务的通讯端口是UDP端口,这也就是大部分网络管理人员很容易忽略的地方。

& P2 s. @9 b) L: K5 b0 y% w$ Y, t

往往某些网管配置服务器阻断了NetBIOS空会话的建立,就认为系统安全有了相当的保障,可由于安装

$ ], f9 j# K4 G3 t) X

了SNMP服务,不知不觉中,就给系统带去了极大的隐患。

) e6 x) Z, ^$ N5 m+ i" v& Y

最方便和容易的解决方法,就是关闭SNMP服务,或者卸载掉该服务

. W# A7 j0 c+ p

如果关掉SNMP服务不方便的话,那么可以通过修改注册表或者直接修改图形界面的SNMP服务属性

- x( T0 {7 K: f" v0 M$ c

进行安全配置。

$ `. w! _3 v- g6 I1 ^

开始——程序——管理工具——服务——SNMP Service——属性——安全

' _3 x' m# ]2 }! T3 ^

: R; C. E+ _* i" z. x6 l 在这个配置界面中,可以修改community strings,也就是微软所说的"团体名称",呵呵,也就是

' ^; U0 a/ D; t" K2 V; H C5 U

我所说的"查询密码"。或者可以配置是否从某些安全主机上才允许SNMP查询。

$ f% w" X @$ D$ T

不过NT4环境下的朋友就必须修改注册表了。

4 q! P; T f+ w

修改community strings,在

. [6 c h% l) n( m$ A& z

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities]

; W. q8 e% E- ^0 z7 k) }& Z* p; F; c0 h( d

下,将public的名称修改成其它的名称就可以了。

. C7 V9 a4 _ T0 C2 u" \

如果要限定允许的ip才可以进行SNMP查询,可以进入

% o# r+ i- d$ H8 }- f

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers]

# p; k( }: w, \( H8 m5 H+ f

添加字符串,名称为"1",内容为要允许的主机IP。

: ?/ W$ f' C7 N! j9 U

当然,如果允许多台机器的话,就要名称沿用"2、3、4"等名称了

# @- ^5 \- t6 E

; |/ e+ p2 a( A2 }7 l3 f2:在Win2K中,事件日志中的任何事件都可用来创建包含这一事件的SNMP陷阱,Microsoft将这称为SNMP 事件转换器。

8 D# Q- _/ C" O; _, ^( \8 \

可以对一些Win2K设备进行配置,使得当有人试图登录它或者对其共享而未成功时,让这些设备能够发送一个SNMP陷阱信息。

& \# X) @7 [9 |+ u; v1 u0 }

把这些陷阱引导到我们自己的工作站,并设置当收到陷阱信息,用应用程序播放一个报警音调,这样就可以初步建立一个多

3 _' L3 ]- c3 F( N$ h( p" `

媒体安全管理工作站。

7 o( k/ p4 N. d$ P4 [3 u: T

配置这些陷阱信息所需要的工具有evntwin.exe和evntcmd.exe,二者都是Win2K标准安装后的一部分:

i* G. y4 w* D3 Q& x0 s2 m

用evntwin.exe对一些重要事件建立陷阱,然后在管理工作站上启动snmputil.exe:

: P$ r. ^& @: ~% F, @# \- G

: d# m2 t2 G/ ]' p+ y: ~$ z$ vC:\> snmputil trap

$ x5 A' ^% @0 ?* y& |7 ~

snmputil: listening for traps...

+ L* Y$ a5 C# _ X2 R

Incoming Trap:

% @" x3 q3 \6 n' ?' W

generic = 6

$ J9 ]! e. X! W6 q0 K

specific = 529

: J" i; s b; B0 L" ?6 M5 ?

enterprise = .iso.org.8.83.101.99.117.114.105.116.121

B* B1 G# w8 N; _' b

agent = 127.0.0.1

8 D& A' ]. J" E

source IP = 127.0.0.1

& W) G! M9 F7 u6 U

community = public

, {# Z9 ~8 f1 e+ o8 u

variable = .iso.org.1.0

+ m/ r% W7 R2 q5 T4 D9 M& Q

value = String

2 @! Y! y4 M) Z( \8 Q3 z/ S/ q

variable = .iso.org.2.0

3 Q T8 r! ]6 Z+ ~& [* @3 x5 f* q; {

value = String SYSTEM

3 }. S( Q( _1 T9 w1 ?/ W

variable = .iso.org.3.0

+ o1 [/ X1 O0 [+ y4 T* z8 i% ?, Y& l2 j

value = String JVO

) t: D; a% m' ~- V4 b# A5 e0 I! D* m

variable = .iso.org.4.0

$ |8 N. {/ v7 Q8 c* O

value = String 16

4 N7 G# b {" n

variable = .iso.org.5.0

; H \9 C5 N3 |

value = String 2

. I8 u4 y9 a2 s" e, M2 R

variable = .iso.org.dod.0

9 j2 Y# J @- ^6 u

value = String nonexistinguser

$ V+ i) x; m6 e) L9 C

variable = .iso.org.7.0

6 @. X1 x4 j* ?' }0 ^ |

value = String ADS

+ M# @! Y+ t8 d! S

variable = .iso.org.8.0

1 V5 E3 h+ S4 m2 b) O5 I

value = String 3

4 Y1 M$ ^+ X2 d( L* [

variable = .iso.org.9.0

9 s' e/ U1 K' |8 n5 Y% W5 R. Q& X

value = String NtLmSsp

c6 r4 c5 l3 C4 v

variable = .iso.org.10.0

/ Q3 H! |, l. o3 i. b/ w; I6 F

value = String MICROSOFT_AUTHENTICATION_PACKAGE_V1_0

4 i) U( [6 N+ w2 `# b1 z

variable = .iso.org.11.0

' g6 T+ y- h3 E- p) c! b- C! h

value = String JVO

) T! R; W7 _, ?' L

要记住,SNMP陷阱只产生于出现在Win2K事件日志中的事件。如果是一个单独的工作站,需要在"本地安全策略"中配置。

! a7 a7 @ t: H) b3 p

如果是一个域中的设备,要使用AD(活动目录)来设置。

9 ?) @% w- V1 U4 j4 `4 `

另一个使用SNMP并得到附加安全的方法是主动监控某些SNMP变量,这些变量有:

3 ]- g1 b2 s, V5 k' @; {+ O8 S

●IpForwarding (1.3.6.1.2.1.4.1.0):就是IP转发,这个特性对大多少工作站而言不是个好功能。

5 m0 }! E" a0 `, b* w

●IcmpInRedirects (1.3.6.1.2.1.5.7):是否有人正在向设备发送icmp重定向信息。

+ u. c* U7 D$ ^; _/ m1 D% @' h& w

●TcpOutRsts (1.3.6.1.2.1.6.15):一个记数器,表示设备所发送的RST数。当受到端口扫描时,这个记数器会急剧增加。

( r& u H: u% t; J3 x0 o7 Z) u

●UdpNoPorts (1.3.6.1.2.1.7.2):一个记数器,表示不提供服务的端口的通信量。同样是一个可能受到端口扫描的信号。

, a S& p6 [7 j5 b. b; I o8 N3 Y

对于一个SNMP管理工作站来说,为这些变量设置阀值就能提供很好的报警信息。 " o6 r! a# O4 Y5 R

" }4 |6 t: x2 f% M- J/ _# J7 C

) e8 C N( I7 j

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-6-11 06:19 , Processed in 0.576802 second(s), 53 queries .

回顶部