学习《计算机网络安全》这本书的一些记录
一、漏洞的威胁
1. 通过漏洞获取远程管理员权限
通常以管理员身份执行有缺陷的远程系统守护进程来获得远程管理员权限。这些漏洞的绝大部分来源于缓冲区溢出,少部分来自守护进程本身的逻辑缺陷。
典型漏洞:Windows NT IIS 4.0的ISAPI DLL对输入的URL未做适当的边界检查,如果构造一个超长的URL,可以溢出IIS(inetinfo.exe)的缓冲区,执行攻击者指定的代码。由于inetinfo.exe是以local system身份启动,溢出后可以直接得到远程管理员权限。
2. 通过漏洞获取本地管理员权限
在已有一个本地账号能够登录到系统的情况下,通过攻击本地某些有缺陷的suid程序、竞争条件等手段,得到系统的管理员权限。
典型漏洞:在Windows 2000操作系统下,攻击者就有机会让网络DDE(一种在不同的Windows机器上的应用程序之间动态共享数据的技术)代理在本地系统用户的安全上下文中执行其指定的代码,从而提升权限并完全控制本地机器。
3. 通过漏洞获取普通用户访问权限
利用服务器的漏洞,取得系统的普通用户存取权限,对UNIX类系统通常是shell访问权限,对Windows系统通常是cmd.exe的访问权限,能够以一般用户身份的执行程序、存取文件。通常攻击以非管理员身份运行的守护进程、有缺陷的CGI程序等手段获得这种访问权限。
典型漏洞:Windows IIS 4.0-5.0存在Unicode解码漏洞,可以使攻击者利用cmd.exe以guest组的权限在系统上运行程序,相当于取得了普通用户的权限
4. 通过漏洞获得权限提升
在本地通过攻击某些有缺陷的sgid程序,把自己的权限提升到某个非管理员用户的水平。获得管理员权限可以看作是一种特殊的权限提升。
典型漏洞:RedHat Linux 6.1带的man程序为sgid,它存在格式化bug,通过对它的溢出攻击,可以使攻击者得到man组的用户权限。
5. 通过漏洞读取受限文件
利用某些漏洞,读取本来无权访问的文件,这些文件通常是安全相关的。这些漏洞的存在可能是文件设置权限不正确,或者是特权进程对文件的不正确处理和意外dump core使受限文件的一部分dump到了core文件中。
典型漏洞:Oracle 8.0.3 Enterprise Edition for NT 4.0的日志文件全局可读而且为明文,它记录了连接的口令,很可能被攻击者读到。
6. 通过漏洞造成远程系统拒绝服务
利用这类漏洞,无须登录即可对系统发起拒绝服务攻击,使系统或相关的应用程序崩溃或失去响应能力。这类漏洞通常是系统本身或其守护进程有缺陷或设置不正确造成的。
典型漏洞:Windows 2000带的Netmeeting 3.01存在缺陷,通过向它发送二进制数据流,可以使服务器的CPU占用达到100%。
7. 通过漏洞造成本地系统拒绝服务
登录到系统后,利用这类漏洞,可以使系统本身或应用程序崩溃。这种漏洞主要因为是程序对意外情况的处理失误,如写临时文件之前不检查文件是否存在,盲目跟随链接等。
典型漏洞:RedHat 6.1的tmpwatch程序存在缺陷,可以使系统fork出许多进程,从而使系统失去响应能力。
8. 通过漏洞造成远程非授权文件存取
利用这类漏洞,可以不经授权地从远程存取系统的某些文件。这类漏洞主要是由一些有缺陷的CGI程序引起的,它们对用户输入没有做适当的合法性检查,使攻击者通过构造特别的输入获得对文件存取的权限。
典型漏洞:Windows IIS 5.0存在一个漏洞,通过向它发送一个特殊的head标记,可以得到ASP源码,而不是经过解释执行后的ASP页面。
9. 通过漏洞造成口令恢复
因为采用了很弱的口令加密方式,使攻击者可以很容易地分析出口令的加密方法,从而使攻击者通过某种方法得到密码后还原出明文。
典型漏洞:Windows下的PassWD v1.2用来管理系统中的各种口令,并和URL一起储存起来。但它加密储存的口令加密方式非常脆弱,经过简单的分析,就可以从加密后的口令还原出明文。
10. 通过漏洞造成欺骗
利用这类漏洞,可以对目标系统实施某种形式的欺骗。这通常是由于系统的实现上存在某些缺陷。
典型漏洞:IE曾经存在一个漏洞,允许一个恶意网站在另一个网站的窗口内插入内容,从而欺骗用户输入敏感数据。
11. 通过漏洞造成服务器信息泄露
利用这类漏洞,可以收集到对进一步攻击系统有用的信息。这类漏洞的产生主要是因为系统程序有缺陷,一般是对错误的不正确处理。
典型漏洞:Windows IIS 3.0~5.0存在漏洞,当向系统请求不存在的.ida文件时,服务器系统可能会返回出错信息,里面暴露了IIS的安装目录信息,比如请求
http://www.microsoft.com/anything.ida
,服务器会返回Response:The IDQ filed:\http\anything.ida could not be found,为攻击者提供方便。
等等。。。
二、网络扫描
网络扫描的主要目的是收集目标的信息,发现目标漏洞。主要包括
预攻击探测
和
漏洞扫描
。
(一)
预攻击探测
预攻击探测
的主要目的是探测目标主机是否“活着”,查看目标主机的属性,如哪些端口开放,有什么服务等。
预攻击探测主要有以下方法。
1. ping扫描
ping是测试网络连接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令。ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。 pinger工具,ping sweep,可以扫描一个地址段。
2. 端口扫描(portscan)
端口扫描的主要目的是寻找存活主机的开放端口或服务。端口扫描的原理是尝试与目标主机建立连接,如果目标主机有回复则说明端口开放。
1.全TCP连接。这种方法使用三次握手与目标主机建立标准的tcp连接;容易被发现并被目标主机记录。
2.SYN扫描。扫描主机自动向目标主机的指定端口发送SYN数据段,表示发送建立连接请求。如果目标主机的回应报文SYN=1,ACK=1,则说明该端口是活动的,接着扫描主机发送回一个RST给目标主机拒绝连接,导致三次握手失败。如果目标主机回应是RST,则端口是“死的”。
3.FIN扫描。发送一个FIN=1的报文到一个关闭的端口,该报文将丢失并返回一个RST。如果该FIN报文发送到活动窗口则报文丢失,不会有任何反应。
4.代理扫描。即把别的计算机当中间代理,去扫描目标主机。这种扫描方法通过扫描器来自动完成。例如HTTP Proxy Scanner是一种应用程序代理扫描器,每秒可以扫描10000个IP地址。 端口扫描工具如NetScanTools、WinScan、SuperScan、NTOScanner、WUPS、NmapNT等
-
HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080。
-
SOCKS代理协议服务器常用端口号:1080。
-
Telnet(远程登录)协议代理服务器常用端口号:23。
-
HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口)。
-
HTTPS服务器,默认的端口号为443/tcp 443/udp。
-
Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)。
-
FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)。
-
TFTP(Trivial File Transfer Protocol),默认的端口号为69/udp。
-
SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp。
-
SMTP(Simple Mail Transfer Protocol,E-mail),默认的端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)。
-
POP3(Post Office Protocol,E-mail),默认的端口号为110/tcp。
-
WebLogic,默认的端口号为7001。
-
Webshpere应用程序,默认的端口号为9080。
-
Webshpere管理工具,默认的端口号为9090。
-
JBOSS,默认的端口号为8080。
-
TOMCAT,默认的端口号为8080。
-
WIN2003远程登录,默认的端口号为3389。
-
Symantec AV/Filter for MSE,默认的端口号为8081。
-
Oracle数据库,默认的端口号为1521。
-
ORACLE EMCTL,默认的端口号为1158。
-
Oracle XDB(XML数据库),默认的端口号为8080。
-
Oracle XDB FTP服务,默认的端口号为2100。
-
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp。
-
MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp。
-
QQ,默认的端口号为1080/udp。
3.操作系统识别(OS fingerprint)
识别目标主机的操作系统,首先可以帮助攻击者进一步探测操作系统级别的漏洞,从而可以从这一级别进行渗透测试。操作系统和运行在本系统之上的应用一般是成套出现的。操作系统的版本也有助于准确定位服务程序或者软件的版本,比如Windows server 2003搭载的IIS为6.0,Windows server 2008 R2搭载的是IIS7.5
常见的操作系统指纹识别技术:
1.抓取计算机的标志(Banner),通过它来查看操作系统型号。 Banner抓取是最基础、最简单的指纹识别技术,而且在不需要其他专门工具的情况下就可以做。操作简单,通常获取的信息也相对准确。严格地讲,Banner抓取是应用程序指纹识别而不是操作系统指纹识别。
Banner信息是由应用程序自动返回的,比如apache、exchange。而且很多时候并不会直接返回操作系统信息,幸运的话,可能会看到服务程序本身的版本信息,并以此进行推断。可以很容易的就防御,把Banner的信息隐藏就可以;(在IIS中使用ISAPI扩展后,经常会看到透露版本的Banner。)
服务标志
|
对应的服务器操作系统类型
|
Microsoft-HTTPAPI/2.0
|
Windows 2003 Sp2, Windows 7, Windows 2008, Windows 2008 R2
|
Microsoft-HTTPAPI/1.0
|
Windows 2003
|
2.通过工具来判断操作系统类型; Winfingerprint专业工具
4.资源和用户信息扫描
资源扫描网络资源和共享资源,如目标网络计算机名、域名和共享文件等;而用户扫描则扫描目标系统上合法用户的用户名和用户组名。(Windows系统如共享资源、Netbios名和用户组等)
常用的方法:
1.使用net view。
-
在DOS命令行中输入“
net view/domain
”命令,可以获取网络上可用的域;
-
命令行中输入“
net view/domain:domain_name
”命令,可以获取某一域中的计算机列表,其中domain_name为域名;
-
命令行中输入“
net view\\computer_name
”命令,可以获取网络中某一计算机的共享资源列表,其中computer_name为计算机名
2.使用netviewx。
-
使用
netviewx NCS
列出domain域中的服务器列表;
-
使用
netviewx NCS nt printq-server-x
用于列出域NCS中所有运行NT和共享打印机的服务器;
3.使用nbtstat。
-
nbtstat(NetBIOS over TCP/IP)是Windows操作系统内置的命令行工具,利用它可以查询涉及NetBIOS信息的网络机器;
-
还可以用来消除NetBIOS高速缓存器和预加载LMHOSTS文件等;在进行安全检查时非常有用;(例如利用nbtstat查看目标系统NetBIOS列表:
nbtstat -a X.X.X.X
)
(二)漏洞扫描
1. 网络漏洞扫描的三个阶段
(1)寻找目标主机或网络。(2)进一步搜集目标信息,包括OS类型、运行的服务以及服务软件的版本等。(3)判断或进一步检测系统是否存在安全漏洞。#### 2. 漏洞扫描的两种策略
(1)
被动式策略
。被动式策略就是基于主机,对系统中不合适的设置、脆弱的口令以及其他与安全规则抵触的对象进行检查,又称为系统安全扫描。(2)
主动式策略
。主动式策略是基于网络的,它通过执行一些脚本文件模拟对系统进行攻击的行为并记录系统的反应,从而发现其中的漏洞,又称为网络安全扫描。
3. 漏洞扫描技术的原理
漏洞扫描技术是建立在端口扫描技术的基础之上;漏洞扫描技术的原理是检查目标主机是否存在漏洞,在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否存在满足匹配条件的漏洞,通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,若模拟攻击成功,则表明目标主机系统存在安全漏洞。
(1)
漏洞库的特征匹配方法
。基于网络系统漏洞库的漏洞扫描的关键部分就是它所使用的漏洞库。采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统的安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后在此基础上构成相应的匹配规则,由扫描程序自动进行漏洞扫描工作。若没有被匹配的规则,系统的网络连接是禁止的。
工作原理
:扫描客户端提供良好的界面,对扫描目标的范围、方法等进行设置,向扫描引擎(服务器端)发出扫描命令。服务器根据客户端的选项进行安全检查,并调用规则匹配库检测主机,在获得目标主机TCP/IP端口和其对应的网络访问服务的相关信息后,与网络漏洞扫描系统提供的系统漏洞库进行匹配,如果满足条件,则视为存在漏洞。服务器的检测完成后将结果返回到客户端,并生成直观的报告。在服务器端的规则匹配库是许多共享程序的集合,存储各种扫描攻击方法。漏洞数据从扫描代码中分离,使用户能自行对扫描引擎进行更新。漏洞库信息的完整性和有效性决定了漏洞扫描的性能,漏洞库的修订和更新的性能也会影响漏洞扫描系统运行的时间。
(2)
功能模块(插件)技术
。插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。插件编写规范化后,用户自己都可以编写插件来扩充漏洞扫描软件的功能,这种技术使漏洞扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的工作,使漏洞扫描软件具有强的扩展性。
工作原理
:它的前端工作原理和基于网络系统漏洞库的漏洞扫描工作原理基本相同,不同的就是将系统漏洞库和规则匹配库换成了扫描插件库和脆弱性数据库。扫描插件库包含各种脆弱性扫描插件,每个插件对一个或多个脆弱点进行检查和测试。插件之间相对独立,这部分应该随着新脆弱性的发现而及时更新。脆弱性数据库收集了国际上公开发布的脆弱性数据,用于检查检测的完备性。它与扫描插件库之间是一对一或一对多的关系,即一个插件可以进行一个或多个脆弱点的检测。因此,扫描插件库和脆弱性数据库可以及时更新,具有很强的扩展性。
常用的网络扫描工具,如ISS Internet Scanner、Nessus、XScan等;个人计算机系统漏洞扫描比较常用的是360安全卫士; 网络综合漏洞扫描方面应用比较广泛的是X-Scan扫描软件; 网站扫描方面,目前360出品的网站扫描产品比较好用,直接在网站
http://webscan.360.cn/
输入网站的URL就可以扫描了。## 最后
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。
干货主要有:
①1000+CTF历届题库(主流和经典的应该都有了)
②CTF技术文档(最全中文版)
③项目源码(四五十个有趣且经典的练手项目及源码)
④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)
⑤ 网络安全学习路线图(告别不入流的学习)
⑥ CTF/渗透测试工具镜像文件大全
⑦ 2023密码学/隐身术/PWN技术手册大全
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里
????
扫码领取