04基于认证的入侵.docx
- 文档编号:28468371
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:36
- 大小:651.92KB
04基于认证的入侵.docx
《04基于认证的入侵.docx》由会员分享,可在线阅读,更多相关《04基于认证的入侵.docx(36页珍藏版)》请在冰豆网上搜索。
04基于认证的入侵
第四章基于认证的入侵
一、获取账号密码
1、弱口令扫描
2、字典攻击
3、暴力破解
4、网络监听获取密码
二、IPC$入侵
1、什么是IPC$入侵
2、IPC$空连接漏洞
3、防止IPC$入侵
4、问题与解答
三、Telnet入侵
1、什么是Telnet入侵
2、Telnet被入侵者用来做什么?
3、NTLM验证
4、使用Telnet登录
5、去除NTLM验证
6、Telnet杀手锏opentelnet
7、恢复Telnet验证
8、Telnet高级入侵
9、问题与解答
四、利用注册表入侵
1、注册表介绍
2、备份和还原注册表
3、远程注册表服务(RemoteRegistryServer)
4、编辑注册表文件
5、常用注册表入侵方法
6、锁住注册表编辑器
7、解除锁定注册表编辑器
8、禁止远程修改注册表
9、映像劫持
10、问题与解答
五、利用远程终端服务(3389)入侵
1、什么是终端服务
2、远程开启远程终端服务(3389)
3、使用远程终端服务入侵
4、修改远程终端服务默认端口
六、利用MSSQL入侵
1、获取MSSQL弱口令
2、入侵MSSQL数据库
3、入侵MSSQL主机
4、利用SQL注入入侵
5、利用NBSI软件进行SQL注入攻击
6、相关参考
一、获取账号密码
入侵者可以通过以下手段来获取远程主机的管理员密码。
Ø弱口令扫描:
入侵者通过扫描大量主机,从中找出一两个存在弱口令的主机。
Ø密码监听:
通过Sniffer(嗅探器)来监听网络中的数据包,从而获得密码,对于明文密码特别有效,如果获取的数据包是加密的,还要涉及解密算法。
Ø暴力破解:
密码的终结者,获取密码只是时间问题。
如本地暴力破解、远程暴力破解。
Ø社会工程学:
通过欺诈手段或人际关系获取密码。
Ø其它方法:
例如在入侵后安装木马或安装键盘记录程序等。
1、弱口令扫描
弱口令:
即密码为空或密码简单。
利用X-Scan扫描器来获取目标主机的弱口令。
演示:
扫描弱口令。
见视频:
弱口令扫描.exe
2、字典攻击
小榕的“黑客字典”有两个版本,一个是可以单独使用的程序,另外一个是嵌在流光的黑客字典工具。
利用小榕的“黑客字典”就可以制作密码字典文件了。
注意:
在实际中,一般的密码一般为6位、8位,这样的密码字典文件往往很大,如果只用一台主机进行暴力破解恐怕需要几十年,所以入侵者常常把这种很大的密码文件分割成很多份上传到几十台、几百台“肉鸡”上,让不同的“肉鸡”来破解不同的密码文件。
例如:
黑客字典流光版就自带了文件拆分的功能,可以把庞大的密码文件分成若干小份。
演示:
制作字典文件。
见视频:
制作字典文件.exe
3、暴力破解
使用暴力破解工具来破解远程主机的管理员密码。
工具一:
WMICracker
这是小榕的一款暴力破解NT主机账号密码的工具,是WindowsNT/XP/2003的杀手,破解密码的时候需要目标主机开放135端口,这是大多数主机所满足的。
使用方法:
WMICracker.exe
参数说明:
目标主机的IP地址
待破解密码的账号,必须属于管理员组
密码字典文件
[Threads]:
线程数,默认为80,该值越大,破解速度越快。
思考:
如何才能防止被WMICracker暴力破解?
暴力破解需要入侵者有足够大、合理的密码字典和充裕的时间。
为防止密码在短时间内被破解,管理员可以通过增加密码的长度、加强密码的强壮度来解决。
另外,WMICracker暴力破解是依靠135端口进行的,管理员可以关闭该端口来防止WMICracker进行的暴力破解。
演示:
暴力破解。
见视频:
暴力破解.exe
网络下载的视频:
暴力破解QQ密码.avi
工具二:
SMBCrack
使用方法:
SMBCrack
参数说明:
目标主机的IP地址
待破解密码的账号,必须属于管理员组
密码字典文件
4、网络监听获取密码
在网络中,当信息进行传播的时候,利用工具将网络中正在传播的信息截获或者捕获到,从而进行攻击,而黑客一般都是利用网络监听来截取用户口令。
Sniffer就是嗅探器。
二、IPC$入侵
1、什么是IPC$入侵
IPC是英文InternetProcessConnection的缩写,可以理解为“命名管道”资源,它是Windows操作系统提供的一个通信基础,用来在两台计算机进程之间建立通信连接,而IPC后面的“$”是Windows系统所使用的隐藏符号,因此“IPC$”表示IPC共享,是隐藏的共享。
IPC$是WindowsNT及Windows2000/XP/2003特有的一项功能,通过这项功能,一些网络程序的数据交换可以建立在IPC上面,实现远程访问和管理计算机。
打个比方,IPC连接就像是挖好的地道,通信程序就通过这个IPC地道访问目标主机。
默认情况下IPC是共享的,除非手动删除IPC$。
通过IPC$连接,入侵者就能够实现远程控制目标主机。
因此,这种基于IPC的入侵也常被简称为IPC$入侵。
演示:
建立和断开IPC$连接,入侵者将远程磁盘映射到本地。
见视频:
IPC$连接.avi
演示:
建立IPC$连接,留后门账号。
见视频:
留后门账号.avi
2、IPC$空连接漏洞
IPC$空连接漏洞允许客户端只使用空用户名、空密码就可以与目标主机成功建立连接。
利用该漏洞可以与目标主机进行空连接,但是无法执行管理类操作,例如不能执行映射网络驱动器、上传文件、执行脚本等命令。
虽然入侵者不能通过该漏洞直接得到管理员权限,但也可以用来探测目标主机的一些关键信息,在“信息搜集”中可以发挥一定作用。
(1)演示:
通过IPC$空连接获取信息。
步骤1:
建立与目标主机的IPC$空连接。
如:
netuse\\10.106.1.27""/user:
""
步骤2:
nettime\\10.106.1.27查看目标主机的时间信息。
入侵者也可以通过目标主机的时间信息来推断目标主机所在的国家或地区。
3、防止IPC$入侵
IPC$为入侵者远程连接目标主机提供了可能。
入侵者所使用的工具中有很多是基于IPC$来实现的。
防止IPC$入侵的方法见“网络命令”课件中的“netshare”部分。
4、问题与解答
Q:
与远程主机建立IPC$连接需要满足什么条件?
A:
本地机器所需条件为:
与远程主机建立IPC$连接,本地计算机也应该开放IPC$。
在获取远程主机的管理员账号和密码的情况下,IPC$才可能建立成功,IPC$空连接除外。
远程主机所需条件为:
开放IPC$共享,运行Server服务。
上述这些条件都是系统默认安装的,因此,只要本地机和远程主机没有进行手动更改,就可实现IPC$。
Q:
既然使用IPC$空连接就可以与远程主机建立连接,那么未授权者能通过IPC$空连接来控制远程主机吗?
A:
IPC$是基于账号和密码的,当拥有远程主机上的账号和密码后才能成功建立有效的IPC$,而且建立的IPC$拥有相应账号的权限。
虽然使用IPC$空连接能够与远程主机建立连接,但是该连接没有任何权限,也就是说,未授权者不能通过IPC$空连接来控制远程主机。
Q:
与远程主机建立IPC$成功,但是将文件拷贝到远程主机时失败,为什么?
A:
首先,在拷贝文件到远程主机之前需要先用管理员账号与远程主机建立IPC$连接,而不是IPC$空连接。
如果建立的IPC$连接而不能进行拷贝操作,则说明远程主机关闭了C盘、D盘等默认共享资源,这时,可以使用计划任务开启这些共享资源,比如:
at\\IPTIMENETSHAREc$=c:
三、Telnet入侵
1、什么是Telnet入侵
Telnet是进行远程登录的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力。
一旦入侵者与远程主机建立了Telnet连接,入侵者便可以使用目标主机上的软、硬件资源,而入侵者的本地机只相当于一个只有键盘和显示器的终端而已。
2、Telnet被入侵者用来做什么?
(1)Telnet是控制远程主机的第一手段
入侵者一旦与远程主机建立Telnet连接,就可以像控制本地计算机一样来控制远程计算机。
(2)用来做跳板
入侵者把用来隐身的肉鸡称之为“跳板”。
从一个“肉鸡”登录到另一个“肉鸡”,这样在入侵过程中就不会暴露自己的IP地址。
3、NTLM验证
NTLM:
WindowsNTLANManager
微软公司为Telnet添加了身份验证,称为NTLM验证,它要求Telnet终端除了需要有Telnet服务主机的用户名和密码外,还需要满足NTLM验证关系。
NTLM是以当前用户的身份向Telnet服务器发送登录请求的,而不是用你扫到的对方管理员的账户和密码登录。
举个例子来说,你家的机器名为A(本地机器),你入侵的机器名为B(远程机器),你在A上的账户是xinxin,密码是1234,你扫到B的管理员账号是Administrator,密码是5678,当你想Telnet到B时,NTLM将自动以当前用户的账号和密码作为登录的凭据来进行操作,即用xinxin和1234,而并非用你扫到的Administrator和5678,且这些都是自动完成的,根本不给你插手的机会,因此你的登录操作将失败。
NTLM身份验证选项有三个值,默认是2。
0:
不使用NTLM身份验证。
1:
先尝试NTLM身份验证,如果失败,再使用用户名和密码。
2:
只使用NTLM身份验证。
Telnet服务器使用NTLM的三个选项之一时,客户机会显示下面情况中的一种:
(1)身份验证选项=0时
Microsoft(R)Windows(TM)Version5.00(Build2195)
WelcometoMicrosoftTelnetService
TelnetServerBuild5.00.99201.1
login:
password:
为0时不使用NTML身份验证,直接输入用户名和密码,比如你可以输入扫到的Administrator和5678
(2)身份验证选项=1时
NTLMAuthenticationfailedduetoinsufficientcredentials.Pleaseloginwithcleartextusernameandpassword
Microsoft(R)Windows(TM)Version5.00(Build2195)
WelcometoMicrosoftTelnetService
TelnetServerBuild5.00.99201.1
login:
password:
先尝试NTLM身份验证,如果失败,再使用用户名和密码,其实这种方式对于我们来说,与上一种方式没什么区别
(3)身份验证选项=2时
NTLMAuthenticationfailedduetoinsufficientcredentials.Pleaseloginwithcleartextusernameandpassword
ServerallowsNTLMauthenticationonly
Serverhasclosedconnection
遗失对主机的连接。
根本没有给你输入用户名和密码的机会,直接断开连接,扫到了密码也是白扫。
所以对于入侵者来说,NTLM是横在我们面前的一座大山,必须要除掉它。
4、使用Telnet登录
登录命令:
Telnet远程主机IP[端口号]
断开Telnet连接的命令:
exit
注意:
为了成功的建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet”服务,并去除NTLM验证。
也可以使用专门的Telnet工具来进行连接,如STERM和CTERM等工具。
演示:
利用Sterm登陆论坛。
注意:
在Win7下要使用Telnet命令,需如下图设置。
5、去除NTLM验证
方法1:
在本地计算机上建立一个与远程主机相同的账号和密码
(1)在本地计算机上建立一个与远程主机上相同的账号和密码。
假设远程主机上有一个用户,用户名为sysback,密码为12345。
(2)开始—程序—附件—右键单击“命令提示符”---选择“属性”—弹出如下窗口
单击“高级”按钮,弹出如下对话框。
在“以其他用户身份运行(U)”前面“打钩”,然后单击“确定”按钮。
再次打开“命令提示符”,弹出如下对话框。
输入用户名(sysback)和密码(12345),单击“确定”按钮。
接着,在“命令提示符”里输入如下命令:
演示:
去除NTLM验证(方法1)。
见视频:
去除NTLM验证(方法1).exe
方法2:
使用工具NTLM.EXE来去除NTLM验证
使用工具NTLM.EXE来去除NTLM验证。
(1)首先,与远程建立IPC$连接
(2)然后,将NTLM.EXE拷贝到远程主机
(3)接着,通过at命令使远程计算机执行NTLM.EXE
(4)最后,计划任务执行NTLM.EXE后,便使用telnet命令来登录远程计算机。
演示:
去除NTLM验证(方法2)。
见视频:
去除NTLM验证(方法2).exe
方法3:
通过修改远程计算机的Telnet服务设置来去除NTLM验证
(1)建立文本文件telnet.txt,目的是通过telnet.txt文件来配置tlntadmn程序。
其中,tlntadmn程序是windows系统自带的程序,专门用来配置telnet服务的。
(2)在telnet.txt中依次键入3,7,y,0,y,0,0。
其中,每个字符各占一行。
如下图所示。
(3)然后建立批处理文件“tel.bat”,如下图所示。
(4)最后,建立IPC$连接,把tel.bat和telnet.txt文件分别拷贝到远程计算机中,并通过at命令执行tel.bat文件,从而去除NTLM验证。
6、Telnet杀手锏opentelnet
Opentelnet是专门用来解除Telnet的NTLM认证,不用建立IPC$连接,不必考虑远程计算机是否正在运行Telnet服务,只要有用户名和密码,并且主机开放IPC$连接就行了,是入侵者经常使用的Telnet登录工具。
Opentelnet的用法
Opentelnet.exe\\目标主机的IP地址<账号><密码>
参数说明:
更改Telnet的服务端口。
Telnet的默认服务端口是23,不过入侵者经常不使用默认的23端口,比如使用55,90等端口来迷惑管理员。
0:
不使用NTLM身份验证
1:
先尝试NTLM身份验证。
如果失败,再使用用户名和密码
2:
只使用NTLM身份验证
去除NTLM验证,更改Telnet服务端口号,登录telent目标主机,主要步骤如下:
(1)使用opentelnet.exe去除远程计算机NTLM验证,并把Telnet的服务端口改为55
(2)键入命令“telnet10.106.1.2755”来登录远程主机
7、恢复Telnet验证
相应于去除NTLM验证,还有一个恢复NTLM验证的程序,并关闭Telnet服务器--ResumeTelnet.exe。
ResumeTelnet.exe的用法:
ResumeTelnet.exe\\ip<用户名><密码>
演示:
利用opentelnet解除NTLM验证,利用ResumeTelnet恢复验证。
见视频:
opentelnet+resumetelnet.exe
8、Telnet高级入侵
即使计算机使用了NTLM验证,入侵者还是能够轻松地去除NTLM验证来实现Telnet登录。
如果入侵者使用23号端口登录,管理员便可以轻易地发现他们,但不幸的是,入侵者通常不会通过默认的23号端口进行Telnet连接。
入侵者究竟如何修改Telnet端口,又如何修改Telnet服务来隐蔽行踪呢?
下面举一些常见的例子来说明这一过程,并介绍一下完成这一过程所需要的工具。
X-Scan:
用来扫出存在NT弱口令的主机。
opentelnet:
用来去NTLM验证、开启Telnet服务、修改Telnet服务端口。
AProMan:
用来查看进程、杀死进程。
instsrv:
用来给主机安装服务。
(1)AProMan简介
AproMan以命令行方式查看进程、杀死进程,不会被杀毒软件查杀。
举个例子,如果入侵者发现目标主机上运行有杀毒软件,会导致上传的工具被杀毒软件查杀,那么他们就会要在上传工具前关闭杀毒防火墙。
使用方法如下:
c:
\AProMan.exe-a显示所有进程
c:
\AProMan.exe-p显示端口进程关联关系(需Administrator权限)
c:
\AProMan.exe-t[PID]杀掉指定进程号的进程
c:
\AProMan.exe-f[FileName]把进程及模块信息存入文件
(2)instsrv简介
instsrv是一款用命令行就可以安装、卸载服务的程序,可以自由指定服务名称和服务所执行的程序。
instsrv的用法如下:
安装服务:
instsrv<服务名称><执行程序的位置>
卸载服务:
instsrv<服务名称>REMOVE
入侵者实现Telnet登录并留下telnet后门。
操作步骤如下:
(1)使用X-Scan扫出有NT弱口令的主机。
(视频略)
(2)用opentelnet打开远程主机的Telnet服务,修改目标主机端口,去除NTLM验证。
注意:
无论远程主机是否开启“Telnet”服务,入侵者都可以通过工具opentelnet来解决。
(3)建立IPC$连接,把所需文件(instsrv.exe、AProMan.exe)拷贝到远程主机
(4)Telnet登录
(5)杀死防火墙进程(视频中是随便选择了一个进程)
(6)另外安装更为隐蔽的Telnet服务
演示:
Telnet入侵,安装更为隐蔽的Telnet服务。
见视频:
Telnet入侵.exe
9、问题与解答
Q:
虽然获得远程主机的用户名和密码,但是使用opentelnet连接的时候失败,返回错误号53。
A:
原因是目标主机没有启动Server服务,或者没有开放IPC$。
Q:
如何才能抵御Telnet入侵?
A:
保证账号和密码的健壮性,防止被暴力破解;警用Telnet服务;由于opentelnet是通过IPC$来实现的,所有通过关闭IPC$可以防止一些情况发生;安装网络防火墙。
Q:
连接不到主机,在23端口连接失败。
A:
远程主机的Telnet服务没启动,或者是防火墙的原因。
四、利用注册表入侵
1、注册表介绍
注册表是windows操作系统中存放着各种参数的核心数据库,注册表直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。
注册表根项说明:
根项名称
说明
HKEY_CURRENT_USER
包含当前登录用户的配置信息的根目录。
用户文件夹、屏幕颜色和“控制面板”设置存储在此处。
该信息被称为用户配置文件。
HKEY_USERS
包含计算机上所有用户的配置文件的根目录。
HKEY_CURRENT_USER是HKEY_USERS的子项。
HKEY_LOCAL_MACHINE
包含针对该计算机(对于任何用户)的配置信息。
HKEY_CLASSES_ROOT
是HKEY_LOCAL_MACHINE\Software的子项。
此处存储的信息可以确保当使用Windows资源管理器打开文件时,将打开正确的程序。
HKEY_CURRENT_CONFIG
包含本地计算机在系统启动时所用的硬件配置文件信息。
注意:
访问远程计算机的注册表时,只出现两个预定义项:
HKEY_USERS和HKEY_LOCAL_MACHINE。
数据类型说明:
数据类型
说明
二进制值
REG_BINARY
在Windows注册表中,二进制值没有长度限制,可以是任意个字节的长度。
多数硬件组件信息都以二进制数据存储,而以十六进制格式显示在注册表编辑器中。
DWORD值
REG_DWORD
由32位(4字节,即双字)长度的数值表示。
许多设备驱动程序和服务的参数是这种类型并在注册表编辑器中以二进制、十六进制或十进制的格式显示。
可扩充字符串值
REG_EXPAND_SZ
长度可变的数据串。
多字符串值
REG_MULTI_SZ
多重字符串。
项用空格、逗号或其他标记分开。
字符串值
REG_SZ
固定长度的文本串,最大长度不能超过255
2、备份和还原注册表
使用注册表编辑器中自带的导出功能备份注册表。
注意:
将“导出范围”设置为“全部”。
或者,使用一些软件来备份注册表,如Windows优化大师或超级兔子等。
3、远程注册表服务(RemoteRegistryServer)
该服务使远程用户能修改此计算机上的注册表设置。
如果此服务被终止,只有此计算机上的用户才能修改注册表,因此远程注册表服务需要特别保护。
不要以为将该服务关闭就可以高枕无忧了,黑客在入侵我们的计算机后,仍然可以通过简单的操作将该服务从“禁用”转换为“自动启动”。
因此我们有必要将该服务彻底关闭。
删除“远程注册表服务”的方法1:
找到注册表中“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”下的RemoteRegistry项,右键点击该项选择“删除”,将该项删除后就无法启动该服务了。
删除“远程注册表服务”的方法2:
利用windows自带的sc命令。
注意:
在删除之前,最好该项信息导出并保存。
以后若想使用该服务,只要将已保存的注册表文件导入即可。
4、编辑注册表文件
Reg文件实际上是一种注册表脚本文件,双击REG文件即可将其中的数据导入到注册表中。
它有固定的格式,扩展名为reg。
在利用REG文件对注册表进行操作时,要操作的对象有两种:
一种是对主键进行操作,一种是对主键下的键值项目进行操作。
对主键的操作有添加、删除两种,而对键值项目的操作则分为添加、修改和删除三种。
(1)添加主键
例如:
在HKEY_LOCAL_MACHINE\Software主键下添加一个名称为“软件工作室”的主键
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\软件工作室]
说明:
REGEDIT4代表该reg文件的版本为4,是注册表文件的固定格式。
注意:
注册表文件的第一行是REGEDIT4(一定要大写)或者WindowsRegistryEditorVersion5.00(每个单词的第一个字母一定要大写),这是注册表文件的注释文件头,其作用是声明这是一个注册表文件,便于注册表编辑器将文件内容导入到注册表中。
(2)删除主键
例如:
删除HKEY_LOCAL_MACHINE\Software下的名称为“软件工作室”的主键
REGEDIT4
[-HKEY_LO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 基于 认证 入侵