华强北电脑城 龙岗电子世界 龙华电脑城  凯尔电脑

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2742|回复: 1

终端服务的日志监控+谈终端方式登录的日志记录

[复制链接]
发表于 2011-11-19 21:45:41 | 显示全部楼层 |阅读模式
<div class="modbox">
$ ]1 h- B& V* A( W/ b* t; X<div class="tit">因为近期有服务器被入侵  日志居然没有记录到入侵的那条入侵的IP  奇怪了 一般情况下 一个都跑不掉的  会记录IP地址 主机名 登陆的时间及用户名</div>7 |$ E/ ]9 r1 t5 j1 Y6 j3 F
<div class="tit"> </div>
. Y% U1 K' a! l% d- r! H( T<div class="tit"> </div>
( Z% Z/ \7 e% z9 H) h2 g% Y: q<div class="cnt">
% X, t" d3 F( ~3 G2 h% v<p><font color="#000000">        单独将终端服务(Terminal Service)的日志监控分列出来是有原因的,微软Win2000服务器版中自带的终端服务Terminal Service是一个基于远程桌面协议(RDP)的工具,它的速度非常快,也很稳定,可以成为一个很好的远程管理软件,但是因为这个软件功能强大而且只受到密码的保护,所以也非常的危险,一旦入侵者拥有了管理员密码,就能够象本机一样操作远程服务器(不需要高深的NT命令行技巧,不需要编写特殊的脚本和程序,只要会用鼠标就能进行一切系统管理操作,实在是太方便、也实在是太可怕了)。虽然很多人都在使用终端服务来进行远程管理,但是,并不是人人都知道如何对终端服务进行审核,大多数的终端服务器上并没有打开终端登录的日志,其实打开日志审核是很容易的,在管理工具中打开远程控制服务配置(Terminal Service Configration),点击"连接",右击你想配置的RDP服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击左下角的"高级",看见上面那个"审核"了么?我们来加入一个Everyone组,这代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败就足够了,审核太多了反而不好,这个审核是记录在安全日志中的,可以从"管理工具"-&gt;"日志查看器"中查看。现在什么人什么时候登录我都一清二楚了,可是美中不足的是:这个破烂玩艺居然不记录客户端的IP(只能查看在线用户的IP),而是华而不实的记录什么机器名,倒!要是别人起个PIG的机器名你只好受他的嘲弄了,不知道微软是怎么想的,看来还是不能完全依赖微软呀,我们自己来吧?写个程序,一切搞定,你会C么?不会?VB呢?也不会?Delphi?……什么?你什么编程语言都不会?我倒,毕竟系统管理员不是程序员呀,别急别急,我给你想办法,我们来建立一个bat文件,叫做TSLog.bat,这个文件用来记录登录者的IP,内容如下: </font></p>! M. M4 Y$ W* D0 v$ d. I* G. ]6 ~
<p><font color="#000000">time /t &gt;&gt;TSLog.log <br/>netstat -n -p tcp | find ":3389"&gt;&gt;TSLog.log <br/>start Explorer </font></p>
$ D0 u9 r* f, [: ?<p><font color="#000000">        我来解释一下这个文件的含义: </font></p>
" y8 l( W+ s1 i/ B3 `) G5 B' F<p><font color="#000000">        第一行是记录用户登录的时间,time /t的意思是直接返回系统时间(如果不加/t,系统会等待你输入新的时间),然后我们用追加符号"&gt;&gt;"把这个时间记入TSLog.log作为日志的时间字段; </font></p>
4 Z* |, y8 u; `' R$ w, b! O% G* J<p><font color="#000000">        第二行是记录用户的IP地址,netstat是用来显示当前网络连接状况的命令,-n表示显示IP和端口而不是域名、协议,-ptcp是只显示tcp协议,然后我们用管道符号"|"把这个命令的结果输出给find命令,从输出结果中查找包含":3389"的行(这就是我们要的客户的IP所在的行,如果你更改了终端服务的端口,这个数值也要作相应的更改),最后我们同样把这个结果重定向到日志文件TSLog.log中去,于是在SLog.log文件中,记录格式如下: </font></p>' t7 {7 B+ G0 F+ r* a, c* P, p& |4 D
<p><font color="#000000">22:40 <br/>TCP  192.168.12.28:3389  192.168.10.123:4903   ESTABLISHED <br/>22:54 <br/>TCP  192.168.12.28:3389   192.168.12.29:1039   ESTABLISHED </font></p>  C" d$ `( P8 c% ^2 T! a' B& x
<p><font color="#000000">        也就是说只要这个TSLog.bat文件一运行,所有连在3389端口上的IP都会被记录,那么如何让这个批处理文件自动运行呢?我们知道,终端服务允许我们为用户自定义起始的程序,在终端服务配置中,我们覆盖用户的登录脚本设置并指定TSLog.bat为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本(相当于shell环境)是Explorer(资源管理器),所以我在TSLog.bat的最后一行加上了启动Explorer的命令startExplorer,如果不加这一行命令,用户是没有办法进入桌面的!当然,如果你只需要给用户特定的Shell: </font></p>7 l  p$ o5 p" N
<p><font color="#000000">        例如cmd.exe或者word.exe你也可以把start Explorer替换成任意的shell。这个脚本也可以有其他的写法,作为系统管理员,你完全可以自由发挥你的想象力、自由利用自己的资源,例如写一个脚本把每个登录用户的IP发送到自己的信箱对于重要的服务器也是一个很好的方法。正常情况下一般的用户没有查看终端服务设置的权限,所以他不会知道你对登录进行了IP审核,只要把TSLog.bat文件和TSLog.log文件放在比较隐蔽的目录里就足够了,不过需要注意的是这只是一个简单的终端服务日志策略,并没有太多的安全保障措施和权限机制,如果服务器有更高的安全要求,那还是需要通过编程或购买入侵监测软件来完成的。 </font></p>9 n: {" C# C* l# [2 C
<p></p>
: ?* V- d' ]9 n<p><font color="#000000">----------------------------------------------------------------- </font></p>
8 ]4 @6 T# L- ?5 w: q2 f<p><br/><font color="#000000"><strong>[转帖]谈终端方式登录的日志记录</strong> <br/>.abu. </font></p>
3 h2 d  l) O% y<p><font color="#000000">  </font></p>
& x" K. d5 V' ^- L" a2 |<p><font color="#000000">        最近看到一篇文章《分析进入Win2000后留下的足迹》,这文章里的关于纪录终端服务登录服务器日志纪录的问题引发了几个朋友的讨论,究竟能不能纪录日志?何种情况下才能纪录日志? </font></p>
1 h" S! Q" d; R6 G3 ]' n<p><font color="#000000">        顺手做了以下测试 </font></p>
4 x: j9 {" _: J7 S! Y. p# E7 Z<p><font color="#000000">        这里先交待一下: </font></p>* e) y0 K0 j8 p/ A
<p><font color="#000000">        我的服务器名:ABUSERVER </font></p>
" }9 ~( c4 f5 G" R! {3 K$ B8 [<p><font color="#000000">        我自己客户机名:ABUPC13 </font></p>2 S, d4 w3 R. j+ D. \
<p><font color="#000000">        我自己客户机的IP:192.168.0.13 </font></p>9 q; k/ q, v/ u
<p><font color="#000000">        我登录所用的帐号:Administrator </font></p>
, H$ k4 w8 s0 t& b! t1 P<p><font color="#000000">        本地安全策略里面开启:审核登录事件 </font></p>
( E+ H! W1 L" Z  C<p><font color="#000000">        测试一: </font></p>5 e$ z! o1 L  O4 P- R# g
<p><font color="#000000">        用终端服务的方式登录服务器,并正常注销退出,查看安全审核的日志记录如下: </font></p>
5 i) |; n# p$ O! N. e6 U, M<p><font color="#000000">        登录成功: <br/>        用户名: Administrator <br/>        域: ABUSERVER </font></p>% q, d& @& f7 G1 d
<p><font color="#000000">        登录 ID: (0x0,0x1D0B52) <br/>        登录类型: 2 <br/>        登录过程: User32 <br/>        身份验证程序包: Negotiate <br/>        工作站名: ABUSERVER </font></p>
% d" X! q, [8 m, d2 [<p></p>
* S7 r! R5 i/ N$ w7 Z- ~<p><font color="#000000">        用户注销: <br/>        用户名: Administrator <br/>        域: ABUSERVER </font></p>) c4 Q" ~* C1 N  O; s
<p><font color="#000000">        登录 ID: (0x0,0x1D0B52) <br/>        登录类型: 2 </font></p>
# B( T  K& R; y$ y<p><br/><font color="#000000">        很奇怪吧,因为并没有看到有自己的IP或者机器名被记录下来。而且在登录时纪录的工作站名: ABUSERVER (这不是服务器的名字嘛) </font></p>
5 q. e3 d5 B" k- {5 m<p><font color="#000000">  </font></p>
3 `0 \9 y6 ^( ?+ n' z* C<p><font color="#000000">        测试二: </font></p>
/ `/ _7 `8 f  k0 A, o+ @/ \0 C<p><font color="#000000">        正常登录上服务器以后,选择断开,临时中断当前会话,然后再次使用客户端连接上服务器,在安全日志里出现了以下记录: </font></p>% U: A7 K6 K, ?4 V$ |. e- Y
<p><font color="#000000">        会话从 winstation 中断连接: <br/>        用户名: administrator <br/>        域: ABUSERVER <br/>        登录 ID: (0x0,0x1D0B52) <br/>        会话名称: Unknown <br/>        客户端名: ABUPC13 <br/>        客户端地址: 192.168.0.13 </font></p>- S7 c3 u6 S5 R6 @) J
<p></p>/ Q& i$ Y; @' M/ e
<p><font color="#000000">        会话被重新连接到 winstation: <br/>        用户名: administrator <br/>        域: ABUSERVER <br/>        登录 ID: (0x0,0x1BE7BA) <br/>        会话名称: RDP-Tcp#7 <br/>        客户端名: ABUPC13 <br/>        客户端地址: 192.168.0.13 </font></p>
. u, s  T8 W# J! x. ~<p></p>" `7 H- W* s3 a% \' F, W! e
<p><font color="#000000">        这次,自己客户机名以及当时的IP都被记录下来了。 </font></p>; r2 W- b9 x( c/ g, l- X; ]' K! f
<p><font color="#000000">        测试三: </font></p>8 t, i: T- Y! E; ^) t
<p><font color="#000000">        正常连接服务器,输入错误的密码,再输入到第6次(缺省安全配置情况下)终端服务窗口关闭。重新连接登录后,检查日志出现以下纪录: </font></p>1 H: z7 I2 @5 w3 L
<p><font color="#000000">        在系统日志里:来自客户端名 ABUPC13 的远程会话超出了所允许的失败登录最大次数。强行终止了会话。 </font></p>
& f& M/ `- I& L* P- z4 I! U* J4 }<p><font color="#000000">        在安全日志里: </font></p>
' T- r" l/ i  E4 W- J7 P<p><font color="#000000">        登录失败: <br/>        原因: 用户名未知或密码错误 <br/>        用户名: administrator <br/>        域: ABUSERVER <br/>        登录类型: 2 <br/>        登录过程: User32 <br/>        身份验证程序包: Negotiate <br/>        工作站名: ABUSERVER </font></p>, b5 ^  G9 C8 U' c6 r$ Q- m4 R
<p></p>0 X! |8 ~4 ]& A( T) A  }4 t
<p><font color="#000000">        到这里,我们分析了各种不同环境下登录终端服务器的日志纪录效果。 </font></p>
& j) c) Q. d& v/ U; I<p><font color="#000000">        这样看来,是不是清楚了很多?呵呵 </font></p>8 Y# T- r% J8 t) ~- b# x! B
<p><font color="#000000">        也许有朋友会奇怪为什么在第一个日志记录中,工作站名也是服务器的名称而不是我用来登录的客户机的名称。 </font></p>& ?# m* C1 @% G. G: C" M
<p><font color="#000000">        原因是因为在以终端方式登录的时候,系统实际上是以虚拟桌面、本地登录 的方式进行记录,自然没有对真正用户的纪录咯。 </font></p>; ^; f2 t- ^( Y2 N+ U
<p><font color="#000000">  </font></p>
8 J( C9 p9 c: ^7 W" v0 C* R0 ?/ E<p><font color="#000000">        所以总结如下: </font></p>0 e, \, f/ s* r; J; a; I
<p><font color="#000000">        1、当一个用户以终端方式登录服务器的时候,如果正常退出,服务器上的日志中,将不会记录你的IP,机器名。 </font></p>+ K5 d: D% a- \( i; f9 t; U' t7 `: M( @
<p><font color="#000000">        2、当用户以终端方式登录后又发生了中断,这时候系统才会纪录客户机的IP以及机器名。 </font></p>' t- ^& }# s- o6 j' o
<p><font color="#000000">        3、当密码输入错误导致连接终止时,在系统日志里会留下客户机的机器名信息。 </font></p>
, i) |1 Q- s3 p" m( g<p><font color="#000000">  </font></p>
- z+ d. z5 L/ u' z<p><font color="#000000">        呵呵,最后我在罗嗦一些关于被纪录下来的IP地址。 </font></p>
# \5 @/ n0 K/ P, _0 v) l<p><font color="#000000">        系统在纪录终端方式的客户机IP地址的时候,如果你的客户机处于一个局域网中,通过透明网关的方式访问服务器,在服务器上留下的IP也只是你内网的IP地址,看来,单纯依靠微软的日志纪录,还是难免会有疏漏的。 </font></p>2 m* ^( w8 ^/ D/ L5 x# [0 \8 l
<p><font color="#000000">        解决的方法,这里就不多说了,可以参考shotgun曾经写过的关于《Win2000 Server入侵监测》一文.</font></p></div></div>
回复

使用道具 举报

 楼主| 发表于 2011-11-19 21:46:35 | 显示全部楼层
<font color=\"#000000\">
1 R! b, \7 m! j5 o<div class=\"modbox\">* h: g5 Y8 k+ ?8 w' G0 q4 F
<div class=\"tit\">
6 L0 O2 `7 x; |$ D9 h<p></p></div>7 D% y1 e* B7 U- z
<div class=\"cnt\">
( g. `& Q( K! z% U9 r<p><font color=\"#000000\" size=\"5\"><strong>日志中的秘密:Windows登录类型知多少?</strong></font></p>
. t) O3 R9 w5 i: h# m' E  K<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">如果你留意Windows系统的安全日志,在那些事件描述中你将会发现里面的“登录类型”并非全部相同,难道除了在键盘上进行交互式登录(登录类型1)之外还有其它类型吗?不错,Windows为了让你从日志中获得更多有价值的信息,它细分了很多种登录类型,以便让你区分登录者到底是从本地登录,还是从网络登录,以及其它更多的登录方式。因为了解了这些登录方式,将有助于你从事件日志中发现可疑的黑客行为,并能够判断其攻击方式。下面我们就来详细地看看Windows的登录类型。 </font></p>  d! F. ~* j) k& }9 p% [
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型2:交互式登录(Interactive)</strong> </font></p>$ X$ z  \( ~) e9 @1 m, P% ^1 X/ k' ?: G7 U
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">这应该是你最先想到的登录方式吧,所谓交互式登录就是指用户在计算机的控制台上进行的登录,也就是在本地键盘上进行的登录,但不要忘记通过KVM登录仍然属于交互式登录,虽然它是基于网络的。 </font></p>
2 w' u& |: S9 ~<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型3:网络(Network)</strong> </font></p>* `. k% N; c& X" L0 U- C! H
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">当你从网络的上访问一台计算机时在大多数情况下Windows记为类型3,最常见的情况就是连接到共享文件夹或者共享打印机时。另外大多数情况下通过网络登录IIS时也被记为这种类型,但基本验证方式的IIS登录是个例外,它将被记为类型8,下面将讲述。 </font></p>
9 q: c1 i" w3 ?* S9 o: b  |5 j7 O! j: ^<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型4:批处理(Batch)</strong> </font></p>$ E; f- C8 `9 C( v
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">当Windows运行一个计划任务时,“计划任务服务”将为这个任务首先创建一个新的登录会话以便它能在此计划任务所配置的用户账户下运行,当这种登录出现时,Windows在日志中记为类型4,对于其它类型的工作任务系统,依赖于它的设计,也可以在开始工作时产生类型4的登录事件,类型4登录通常表明某计划任务启动,但也可能是一个恶意用户通过计划任务来猜测用户密码,这种尝试将产生一个类型4的登录失败事件,但是这种失败登录也可能是由于计划任务的用户密码没能同步更改造成的,比如用户密码更改了,而忘记了在计划任务中进行更改。 </font></p>" R6 h* M' K; j8 ?7 A, x* p2 t* p( r
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型5:服务(Service)</strong> </font></p>0 M+ I# K/ C* J7 Z0 G+ V  \# _
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">与计划任务类似,每种服务都被配置在某个特定的用户账户下运行,当一个服务开始时,Windows首先为这个特定的用户创建一个登录会话,这将被记为类型5,失败的类型5通常表明用户的密码已变而这里没得到更新,当然这也可能是由恶意用户的密码猜测引起的,但是这种可能性比较小,因为创建一个新的服务或编辑一个已存在的服务默认情况下都要求是管理员或serversoperators身份,而这种身份的恶意用户,已经有足够的能力来干他的坏事了,已经用不着费力来猜测服务密码了。 </font></p>! U, ?# [8 @7 Y1 M. q
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型7:解锁(Unlock)</strong> </font></p>
1 {8 M& H0 i. O/ A; |<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">你可能希望当一个用户离开他的计算机时相应的工作站自动开始一个密码保护的屏保,当一个用户回来解锁时,Windows就把这种解锁操作认为是一个类型7的登录,失败的类型7登录表明有人输入了错误的密码或者有人在尝试解锁计算机。 </font></p>
2 M, J6 y  c: u<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型8:网络明文(NetworkCleartext)</strong> </font></p>
. H' C; D0 K. c  \- t% k, d<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">这种登录表明这是一个像类型3一样的网络登录,但是这种登录的密码在网络上是通过明文传输的,WindowsServer服务是不允许通过明文验证连接到共享文件夹或打印机的,据我所知只有当从一个使用Advapi的ASP脚本登录或者一个用户使用基本验证方式登录IIS才会是这种登录类型。“登录过程”栏都将列出Advapi。 </font></p># O' m4 A, J; ^% M3 j# Q
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型9:新凭证(NewCredentials)</strong> </font></p>0 U+ D. C$ |3 ^" |0 o) {, Y
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">当你使用带/Netonly参数的RUNAS命令运行一个程序时,RUNAS以本地当前登录用户运行它,但如果这个程序需要连接到网络上的其它计算机时,这时就将以RUNAS命令中指定的用户进行连接,同时Windows将把这种登录记为类型9,如果RUNAS命令没带/Netonly参数,那么这个程序就将以指定的用户运行,但日志中的登录类型是2。 </font></p>
) }3 g* `, p) S  c  H) H( _  H<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型10:远程交互(RemoteInteractive)</strong> </font></p>5 S" A2 c, }* S1 r
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">当你通过终端服务、远程桌面或远程协助访问计算机时,Windows将记为类型10,以便与真正的控制台登录相区别,注意XP之前的版本不支持这种登录类型,比如Windows2000仍然会把终端服务登录记为类型2。 </font></p>/ k( F9 T4 z0 N4 A& N* @- S8 b6 n1 J
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\"><strong>登录类型11:缓存交互(CachedInteractive)</strong> </font></p>2 V$ J; P; {* y
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">Windows支持一种称为缓存登录的功能,这种功能对移动用户尤其有利,比如你在自己网络之外以域用户登录而无法登录域控制器时就将使用这种功能,默认情况下,Windows缓存了最近10次交互式域登录的凭证HASH,如果以后当你以一个域用户登录而又没有域控制器可用时,Windows将使用这些HASH来验证你的身份。 </font></p>- y& }( A, z6 c$ N& V
<p style=\"TEXT-INDENT: 2em\"><font color=\"#000000\">上面讲了Windows的登录类型,但默认情况下Windows2000是没有记录安全日志的,你必须先启用组策略“计算机配置/Windows设置/安全设置/本地策略/审核策略”下的“审核登录事件”才能看到上面的记录信息。希望这些详细的记录信息有助于大家更好地掌握系统情况,维护网络安定。</font></p></div></div></font>
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|华强北 电脑城 龙岗电子世界 龙华电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2025-6-19 17:24 , Processed in 0.080213 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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