随着网络黑客工具的简单化和傻瓜化,越来越多的网络爱好者可以通过现成的攻击工具轻松的入侵主机,然而谁也不想在管理员的眼皮底下做入侵,所以在入侵成功以后,一个很重要的事情是:你能不能确认你的行为在别人的监视之下?所以我们首先要知道管理员是不是现在正在你入侵的主机上?
如何判定管理员在线,我们要知道的是管理员是通过什么方式管理主机的:是pcanywhere、vnc、DameWar、终端服务、ipc、telnet还是本地登陆???
一、对于用第三方的控屏工具(pcanywhere、vnc、DameWar等),你只要看相应端口有没有状态为“ESTABLISHED”的连接。一个netstat -an就可以知道,如果想查看与端口相关的进程,使用Fport.exe就可以了。比如我们在一台主机上使用netstat -an发现如下的信息:
Active Connections
Proto
Local Address
Foreign Address
State
TCP
lin:1755
lin:telnet
ESTABLISHED
TCP
lin:1756
lin:netbios-ssn
ESTABLISHED
TCP
lin:1758
202.103.243.105:http
TIME_WAIT
TCP
lin:1764
202.103.243.105:http
TIME_WAIT
TCP
lin:6129
lin:1751
ESTABLISHED
使用Fport.exe得到如下的信息:
Pid
Process
Port
Proto Path
528
mysqld-nt
-
3306
TCP
D:\mysql\bin\mysqld-nt.exe
1328
DWRCS
-
6129
TCP
C:\WINNT\SYSTEM32\DWRCS.EXE
---这个是DameWare Mini Remote Control服务
8
System
-
138
UDP
248
lsass
-
500
UDP
C:\WINNT\system32\lsass.exe
------从这个可以看出,管理员是通过DameWare Mini Remote Control来管理现在的主机,连接的端口是6129。同样如果管理员使用其他的控屏工具,比如pcanywhere、vnc我们也是可以通过netstat -an查看端口连接的情况。
二、对于从本地或终端服务登陆的,看看有几个winlogon进程,我们可以使用的工具是PSTOOLS的PULIST.EXE,它能够查看本机的所用正在运行的进程。然后单凭有几个winlogon进程也很难判定在线的是不是管理员,因为一般用户和管理员都是通过图形界面登陆的,身份验证都是在GINA(GINA - Graphical Identification andAuthentication图形标识和身份验证)中进行,而GINA又和Winlogon进程紧密相关,所以查看有几个winlogon进程只能知道当前有几个用户登陆主机。这个办法也是给一个参考而已吧,给一个例子,这样应该好理解一点:
在主机上运行pulist.exe(至于如何才能在主机上运行pulist.exe,我想这个问题也不用说了吧),进程情况:
PID
Path
0
[Idle Process]
8
[System]
160
\SystemRoot\System32\smss.exe
184
\??\C:\WINNT\system32\csrss.exe
208
\??\C:\WINNT\system32\winlogon.exe
----这个
680
C:\WINNT\System32\svchost.exe
404
C:\WINNT\Explorer.EXE
1088
\??\C:\WINNT\system32\csrss.exe
1084
\??\C:\WINNT\system32\winlogon.exe
----还有这个
在这个上面我们发现了有二个的winlogon.exe,就可以知道目前有2个用户通过本地或终端服务登陆主机,结合上面说的判定方法,使用netstat 查看TCP端口连接:
Num
LocalIP
Port
RemoteIP
PORT
Status
10
192.168.0.1
3389
192.168.2.1
1071
Established
----终端的
可以看出使用的是终端3389连接。
三、对于用telnet登陆的,telnet的登陆不是通过winlogon来管理的,还是看相应端口的连接吧,我们知道的是一般情况下telnet使用23端口连接,通过netstat -an可能很清楚的看出23端口有没有打开:
C:\netstat -an
Active Connections
Proto
Local Address
Foreign Address
State
TCP
127.0.0.1:23
127.0.0.1:1030
ESTABLISHED
TCP
127.0.0.1:1030
127.0.0.1:23
ESTABLISHED
我们也可以通过上面的方法查看相应的进程,比如我们使用FPORT.EXE是得到如下的信息:
E:\HACKfport
FPort v2.0 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone, Inc.
http://www.foundstone.com
Pid
Process
Port
Proto Path
660
inetinfo
-
21
TCP
C:\WINNT\System32\inetsrv\inetinfo.exe
1112
tlntsvr
-
23
TCP
C:\WINNT\system32\tlntsvr.exe
660
inetinfo
-
80
TCP
C:\WINNT\System32\inetsrv\inetinfo.exe
416
svchost
-
135
TCP
C:\WINNT\system32\svchost.exe
660
inetinfo
-
443
TCP
C:\WINNT\System32\inetsrv\inetinfo.exe
8
System
-
1028
TCP
408
telnet
-
1030
TCP
C:\WINNT\system32\telnet.exe
从上面的信息可以知道23端口对应的正是telnet服务tlntsvr.exe。
四、通过IPC$管道进行管理,这个可以通过WINDOWS NT系统内置的工具NET SESSION,它的作用是列出或断开连接本地计算机和与它连接的客户之间的会话。
下面给出一个结果:
E:\HACKnet session
计算机
用户名
客户类型
打开空闲时间
-------------------------------------------------------------------------------
\\LIN
LINYUN
Windows 2000 2195
0 00:08:47
命令成功完成。
从这个上面我们就可以看出当前有一个用户名为LIYUN的用户登陆主机LIN。在这里给大家推荐一个比较好的工具――PSTOOLS里面的psloggedon.exe,它不仅能列出使用IPC$登陆的用户,而且能列出本地登陆的用户。
E:\Pstools\Pstoolspsloggedon.exe
PsLoggedOn v1.21 - Logon Session Displayer
Copyright (C) 1999-2000 Mark Russinovich
SysInternals - www.sysinternals.com
Users logged on locally:
2003-9-15 14:33:38
LIN\Administrator -----这个是本地登陆的用户administrator
Users logged on via resource shares:
2003-9-15 14:41:04
LIN\LINYUN -----这个是使用IPC$连接的用户LINYUN
如何判定管理员是否在线是一个比较深入的话题,上面说的仅仅是提供一个思路,当然了,如果管理员登陆了,却锁定了主机,或者正在运行屏幕保护程序,这一些就都不好说了!有矛必有盾,我们既然能通过各种的方式判定管理员是不是在线,同样,管理员也能通过这样的途径知道自己是否被入侵,从而尽快的查出入侵者,所以请广大的网络爱好者不要以身试法,入侵国内主机。