学习《计算机网络安全》这本书的一些记录
二、网络扫描
网络扫描的主要目的是收集目标的信息,发现目标漏洞。主要包括预攻击探测和漏洞扫描。
(一)预攻击探测
预攻击探测的主要目的是探测目标主机是否“活着”,查看目标主机的属性,如哪些端口开放,有什么服务等。
预攻击探测主要有以下方法。
1. ping扫描
ping是测试网络连接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令。ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。
pinger工具,ping sweep,可以扫描一个地址段。
2. 端口扫描(portscan)
端口扫描的主要目的是寻找存活主机的开放端口或服务。端口扫描的原理是尝试与目标主机建立连接,如果目标主机有回复则说明端口开放。
- 全TCP连接。这种方法使用三次握手与目标主机建立标准的tcp连接;容易被发现并被目标主机记录。
- SYN扫描。扫描主机自动向目标主机的指定端口发送SYN数据段,表示发送建立连接请求。如果目标主机的回应报文SYN=1,ACK=1,则说明该端口是活动的,接着扫描主机发送回一个RST给目标主机拒绝连接,导致三次握手失败。如果目标主机回应是RST,则端口是“死的”。
- FIN扫描。发送一个FIN=1的报文到一个关闭的端口,该报文将丢失并返回一个RST。如果该FIN报文发送到活动窗口则报文丢失,不会有任何反应。
- 代理扫描。即把别的计算机当中间代理,去扫描目标主机。这种扫描方法通过扫描器来自动完成。例如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
常见的操作系统指纹识别技术:
- 抓取计算机的标志(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 |
- 通过工具来判断操作系统类型;
Winfingerprint专业工具
4.资源和用户信息扫描
资源扫描网络资源和共享资源,如目标网络计算机名、域名和共享文件等;而用户扫描则扫描目标系统上合法用户的用户名和用户组名。(Windows系统如共享资源、Netbios名和用户组等)
常用的方法:
- 使用net view。
- 在DOS命令行中输入“
net view/domain”命令,可以获取网络上可用的域; - 命令行中输入“
net view/domain:domain_name”命令,可以获取某一域中的计算机列表,其中domain_name为域名; - 命令行中输入“
net view\\computer_name”命令,可以获取网络中某一计算机的共享资源列表,其中computer_name为计算机名
- 使用netviewx。
- 使用
netviewx NCS列出domain域中的服务器列表; - 使用
netviewx NCS nt printq-server-x用于列出域NCS中所有运行NT和共享打印机的服务器;
- 使用nbtstat。
- nbtstat(NetBIOS over TCP/IP)是Windows操作系统内置的命令行工具,利用它可以查询涉及NetBIOS信息的网络机器;
- 还可以用来消除NetBIOS高速缓存器和预加载LMHOSTS文件等;在进行安全检查时非常有用;(例如利用nbtstat查看目标系统NetBIOS列表:
nbtstat -a X.X.X.X)