端口扫描方法-秘密端口扫描

hacker|
219

TCP/IP三次握手具体过程是什么?

端口扫描,这种入侵检测方法大家想必都经常用到,但是你对这些方法的基本原理又了解多少呢?

首先,你可以选择都种工具,本人喜欢nmap for linux,但不是常在linux下混,毕竟还是windows方便点,呵呵,高手别笑我哦!

下面谈下端口扫描方式!大体可以分为两种,TCP扫描和秘密扫描

TCP扫描最常见的有两种

全扫描、半扫描

说到TCP,就一定要谈3次握手

客户端——SYN——服务器

客户端——SYN+ACK——服务器

客户端——ACK——〉服务器

这就是3次握手,也就是全扫描的全过程,但是,由于这种方式要与目标建立连接,所以一定会被记录下来,所以,这种扫描方式是不隐密的,容易暴露身份。

所以,就有了半扫描这种扫描方式,会发送一个SYN包给目标服务器,然后如果对方在特定端口监听,就会回复一个ACK+SYN,如果主机在活动,但没有监听特定端口,就会回一个RST包。这种方法并没有完成3次握手,所以一般不会被主机记录。

下面,我们就抛开TCP协议,看看有没有办法通过其他方式扫描!

说到文件传送,大家最先想到的就应该是FTP协议了,那么,能不能通过FTP扫描呢?

答案是可以,出于设计上的需要,当FTP客户端要以主动模式请求传送数据时,服务器必须要建立一个返回到客户机端口上的连接客户端发出PORT命令,以IP和端口作为参数,如果参数中有另一台主机的IP数据,服务器将与这台主机相连。

我们就利用FTP的这种特点来执行代理端口扫描。

还有FIN,ident,XMAS扫描等等,由于时间关系和其他种种原因,我现在就不讲了,lz有兴趣,可以加我大家一起探讨~

想用nmap扫描主机开放端口的命令是什么

nmap命令

1.  各种代码举例。 扫描单一的一个主机:#nmap nxadmin.com#nmap 192.168.1.2,扫描整个子网:#nmap 192.168.1.1/24,扫描多个目标:#nmap 192.168.1.2 192.168.1.5, 扫描一个范围内的目标:#nmap 192.168.1.1-100 。

2有关IP的代码。扫描和namp在同一目录下的IP为txt的所有主机:#nmap -iL target.txt,关于你扫描的所有主机的列表:#nmap -sL 192.168.1.1/24,扫描除过某一个ip外的所有子网主机:#nmap192.168.1.1/24-exclude192.168.1.1,扫描特定主机上的80,21,23端口:#nmap-p80,21,23192.168.1.1,扫描除过某一个文件中的ip外的子网主机:#nmap192.168.1.1/24-excludefilexxx.txt。

资料拓展:

扫描模式分类:

1.  FINscan(sF)扫描有时不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手:

a href="mailto:root@bt:~#nmap-sF192.168.1.8"root@bt:~#nmap-sF192.168.1.8/a/p pStartingNmap5.51at2012-07-0819:21PKTNmapscanreportfor192.168.1.8Hostisup(0.000026slatency).Notshown:999closedportsPORTSTATESERVICE111/tcpopen|filteredrpcbind

版本检测(sV)版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCPSYN扫描开放了哪些端口:#nmap-sV192.168.1.1。

Idlescan(sL)是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包:#nmap-sL192.168.1.6192.168.1.1。

Idlescan是一种理想的匿名扫描技术,它通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取192.168.1.1开放的端口有需要其它的扫描技术,这里就比如说FTPbounce(FTP反弹,fragmentationscan(碎片扫描),IPprotocolscan(IP协议扫描),以上讨论的是几种最主要的扫描方式。

Nmap的OS检测(O):Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。

Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照:InitiatingSYNStealthScanat10:21Scanninglocalhost(127.0.0.1)[1000ports]Discoveredopenport111/tcpon127.0.0.1CompletedSYNStealthScanat10:21,0.08selapsed(1000totalports)InitiatingOSdetection(try#1)againstlocalhost(127.0.0.1)RetryingOSdetection(try#2)againstlocalhost(127.0.0.1)。

2.  Nmap的操作系统指纹识别技术:设备类型(路由器,工作组等)运行(运行的操作系统)操作系统的详细信息(操作系统的名称和版本)网络距离(目标和攻击者之间的距离跳)如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组织掉ping请求.-PN命令告诉Nmap不用ping远程主机:#nmap-O-PN192.168.1.1/24Nmap检测的基础是有开放和关闭的端口,当OSscan无法检测至少一个开放或关闭的端口时:

Warning:OSScanresultsmaybeunreliablebecausewecouldnotfindatleast1openand1closedportOSScan的结果是不可靠的,因为没有发现至少一个开放或者关闭的端口,这种情况是非常不理想的,应该是远程主机做了针对操作系统检测的防范。

如果Nmap不能检测到远程操作系统类型,那么就没有必要使用-osscan_limit检测,想好通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项,–osscan-guess猜测认为最接近目标的匹配操作系统类型:#nmap-O--osscan-guess192.168.1.1。

3.  Tcp SYN Scan (sS) 这是一个基本的扫描方式,它被称为半开放扫描:#nmap -sS 192.168.1.1,Tcp connect() scan(sT)如果不选择SYN扫描,这个扫描就是默认的扫描模式:#nmap -sT 192.168.1.1,Udp scan(sU)扫描技术用来寻找目标主机打开的UDP端口:#nmap -sU 192.168.PINGScan(sP),PING扫描需要ROOT权限,否则PING扫描将会使用connect()调用:#nmap-sP192.168.1.11.1。

网络安全漏洞扫描器的应用

网络安全扫描器简介

迅速发展的Internet给人们的生活、工作带来了巨大的方便,但同时,也带来了一些不容忽视的问题,网络信息的安全保密问题就是其中之一。

网络的开放性以及黑客的攻击是造成网络不安全的主要原因。科学家在设计Internet之初就缺乏对安全性的总体构想和设计,我们所用的TCP/IP 协议是建立在可信的环境之下,首先考虑的是网络互连,它是缺乏对安全方面的考虑的。而且TCP/IP协议是完全公开的,远程访问使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等等这一些性质使网络更加不安全。

先进的技术是实现网络信息安全的有力武器,这些技术包括:密码技术、身份验证技术、访问控制技术、安全内核技术、网络反病毒技术、信息泄漏防治技术、防火墙技术、网络安全漏洞扫描技术、入侵检测技术等。而在系统发生安全事故之前对其进行预防性检查,及时发现问题并予以解决不失为一种很好的办法,于是网络安全漏洞扫描技术应运而生。

1. 扫描器基本工作原理

扫描器是一种自动检测远程或本地主机安全脆弱点的程序,通过使用扫描器可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本,这就能让我们间接的或直观的了解到远程主机所存在的安全问题。

扫描器采用模拟攻击的形式对目标可能存在的已知安全漏洞进行逐项检查。目标可以是工作站、服务器、交换机、数据库应用等各种对象。然后根据扫描结果向系统管理员提供周密可靠的安全性分析报告,为提高网络安全整体水平产生重要依据。在网络安全体系的建设中,安全扫描工具花费低、效果好、见效快、与网络的运行相对对立、安装运行简单,可以大规模减少安全管理员的手工劳动,有利于保持全网安全政策的统一和稳定。

扫描器并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某些存在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。

扫描器应该有三项功能:发现一个主机和网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现这些漏洞的能力。

扫描器对Internet安全很重要,因为它能揭示一个网络的脆弱点。在任何一个现有的平台上都有几百个熟知的安全脆弱点。在大多数情况下,这些脆弱点都是唯一的,仅影响一个网络服务。人工测试单台主机的脆弱点是一项极其繁琐的工作,而扫描程序能轻易的解决这些问题。扫描程序开发者利用可得到的常用攻击方法并把它们集成到整个扫描中,这样使用者就可以通过分析输出的结果发现系统的漏洞。

2.端口扫描介绍

真正的扫描器是TCP端口扫描器,这种程序可以选通TCP/IP端口和服务(比如,Telnet或FTP),并记录目标的回答。通过这种方法,可以搜集到关于目标主机的有用信息(比如,一个匿旬用户是否可以登录等等)。而其他所谓的扫描器仅仅是UNIX网络应用程序,这些程序一般用于观察某一服务是否正在一台远程机器上正常工作,它们不是真正的扫描器,但也可以用于收集目标主机的信息(UNIX平台上通用的rusers和host命令就是这类程序的很好的例子)。

2.1 TCP SYN 扫描

扫描程序发送的SYN数据包,好像准备打开一个新的连接并等待反映一样。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST 返回表示端口没有处于侦听状态。如果收到一个SYN|ACK,扫描程序必须再发送一个RST 信号,来关闭这个连接过程。

优点:不会在目标计算机上留下纪录。

缺点:扫描程序必须要有root权限才能建立自己的SYN数据包。

2.2 TCP FIN 扫描

关闭的端口会用适当的RST来回复FIN数据包,而打开的端口会忽略对FIN数据包的回复。

优点:FIN数据包可以不惹任何麻烦的通过。

缺点:这种方法和系统的实现有一定的关系,有些系统不论是打开的或关闭的端口对FIN数据包都要给以回复,这种情况下该方法就不实用了。

2.3 TCP connect()扫描

操作系统提供connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。

优点:系统中的任何用户都有权利使用这个调用;如果对每个目标端口以线性的方式扫描,将会花费相当长的时间,但如果同时打开多个套接字,就能加速扫描。

缺点:很容易被发现,目标计算机的logs文件会显示一连串连接和连接出错的消息,并且能很快的将它关闭。

3.扫描程序介绍

目前存在的扫描器产品主要可分为基于主机的和基于网络的两种,前者主要关注软件所在主机上面的风险漏洞,而后者则是通过网络远程探测其它主机的安全风险漏洞。

国外,基于主机的产品主要有:AXENT公司的ESM,ISS公司的System Scanner等,基于网络的产品包括ISS公司的Internet Scanner、AXENT公司的NetRecon、NAI公司的CyberCops Scanner、Cisco的NetSonar等。目前国内有中科院网威工作室开发的NetPower产品出现,另外北方计算机公司(***)也有类似产品。 下面介绍一些可以在Internet上免费获得的扫描程序。

3.1 NSS(网络安全扫描器)

(1) NSS由Perl语言编成,它最根本的价值在于速度,它运行速度非常快,可以执行下列常规检查:

■Sendmail

■匿名FTP

■NFS出口

■TFTP

■Hosts.equiv

■Xhost

注:除非你拥有最高特权,否则NSS不允许你执行Hosts.equiv。

(2) 利用NSS,用户可以增加更强大的功能,其中包括:

■AppleTalk扫描

■Novell扫描

■LAN管理员扫描

■可扫描子网

(3) NSS执行的进程包括:

■取得指定域的列表或报告,该域原本不存在这类列表

■用Ping命令确定指定主机是否是活性的

■扫描目标主机的端口

■报告指定地址的漏洞

(4) 提示

在对NSS进行解压缩后,不能立即运行NSS,需要对它进行一些修改,必须设置一些环境变量,以适应你的机器配置。主要变量包括:

$TmpDir_NSS使用的临时目录

$YPX-ypx应用程序的目录

$PING_可执行的ping命令的目录

$XWININFO_xwininfo的目录

如果你隐藏了Perl include目录(目录中有Perl include文件),并且在PATH环境变量中没有包含该目录,需要加上这个目录;同时,用户应该注意NSS需要ftplib.pl库函数。NSS具有并行能力,可以在许多工作站之间进行分布式扫描。而且,它可以使进程分支。在资源有限的机器上运行NSS(或未经允许运行NSS)应该避免这种情况,在代码中有这方面的选项设置。

3.2 Strobe(超级优化TCP端口检测程序)

strobe是一个TCP端口扫描器,它可以记录指定机器的所有开放端口。strobe运行速度快(其作者声称在适中的时间内,便可扫描整个一个国家的机器)。

strobe的主要特点是,它能快速识别指定机器上正在运行什么服务。strobe的主要不足是这类信息是很有限的,一次strobe攻击充其量可以提供给"入侵者"一个粗略的指南,告诉什么服务可以被攻击。但是,strobe用扩展的行命令选项弥补了这个不足。比如,在用大量指定端口扫描主机时,你可以禁止所有重复的端口描述(仅打印首次端口定义)。其他选项包括:

■定义起始和终止端口

■定义在多长时间内接收不到端口或主机响应,便终止这次扫描。

■定义使用的socket号码

■定义strobe要捕捉的目标主机的文件

在获得strobe的同时,必然获得手册页面,这对于Solaris 2.3是一个明显的问题,为了防止发生问题,必须禁止使用getpeername()。在行命令中加入-g 标志就可以实现这一目的。同时,尽管strobe没有对远程主机进行广泛测试,但它留下的痕迹与早期的ISS一样明显,被strobe扫描过的主机会知道这一切(这非常象在/var/adm/messages文件中执行连接请求)。

3.3 SATAN(安全管理员的网络分析工具)

SATAN是为UNIX设计的,它主要是用C和Perl语言编写的(为了用户界面的友好性,还用了一些HTML技术)。它能在许多类UNIX平台上运行,有些根本不需要移植,而在其他平台上也只是略作移植。

在Linux上运行SATAN有一个特殊问题,应用于原系统的某些规则在Linus平台上会引起系统失效的致命缺陷;在tcp-scan模块中实现 select()调用也会产生问题;最后要说的是,如果用户扫描一个完整子网,则会引进反向fping爆炸,也即套接字(socket)缓冲溢出。但是,有一个站点不但包含了用于Linux的、改进的SATAN二进制代码,还包含了diff文件。SATAN用于扫描远程主机的许多已知的漏洞,其中包括但并不限于下列这些漏洞:

■FTPD脆弱性和可写的FTP目录

■NFS脆弱性

■NIS脆弱性

■RSH脆弱性

■Sendmail

■X服务器脆弱性

SATAN的安装和其他应用程序一样,每个平台上的SATAN目录可能略有不同,但一般都是/satan-1.1.1。安装的第一步(在阅读了使用文档说明后)是运行Perl程序reconfig。这个程序搜索各种不同的组成成分,并定义目录路径。如果它不能找到或定义一个浏览器。则运行失败,那些把浏览器安装在非标准目录中(并且没有在PATH中进行设置)的用户将不得不手工进行设置。同样,那些没有用DNS(未在自己机器上运行DNS)的用户也必须在/satan-1.1.1/conf/satan.cf中进行下列设置:$dont_use_nslookuo=1;在解决了全部路径问题后,用户可以在分布式系统上运行安装程序(IRIX或SunOS),我建议要非常仔细地观察编译,以找出错误。

SATAN比一般扫描器需要更多一些的资源,尤其是在内存和处理器功能方面要求更高一些。如果你在运行SATAN时速度很慢,可以尝试几种解决办法。最直接的办法就是扩大内存和提高处理器能力,但是,如果这种办法不行,我建议用下面两种方法:一是尽可能地删除其他进程;二是把你一次扫描主机的数量限制在100台以下。最后说明的一点是,对于没有强大的视频支持或内存资源有限的主机,SATAN有一个行命令接口,这一点很重要。

3.4 Jakal

Jakal是一个秘密扫描器,也就是就,它可以扫描一个区域(在防火墙后面),而不留下任何痕迹。

秘密扫描器工作时会产生"半扫描"(half scans),它启动(但从不完成)与目标主机的SYN/ACK过程。从根本上讲,秘密扫描器绕过了防火墙,并且避开了端口扫描探测器,识别出在防火墙后面运行的是什么服务。(这里包括了像Courtney和GAbriel这样的精制扫描探测器)。

3.5 IdentTCPscan

IdentTCPscan是一个更加专业化的扫描器,其中加入了识别指定TCP端口进程的所有者的功能,也就是说,它能测定该进程的UID。

3.6 CONNECT

CONNECT是一个bin/sh程序,它的用途是扫描TFTP服务子网。

3.7 FSPScan

FSPScan用于扫描FSP服务顺。FSP代表文件服务协议,是非常类似于FTP的Internet协议。它提供匿名文件传输,并且据说具有网络过载保护功能(比如,FSP从来不分叉)。FSP最知名的安全特性可能就是它记录所有到来用户的主机名,这被认为优于FTP,因为FTP仅要求用户的E- mail地址(而实际上根本没有进行记录)。FSP相当流行,现在为Windows 和OS/2开发了GUI客户程序。

3.8 XSCAN

XSCAN扫描具有X服务器弱点的子网(或主机)。乍一看,这似乎并不太重要,毕竟其他多数扫描器都能做同样的工作。然而,XSCAN包括了一个增加的功能:如果它找到了一个脆弱的目标,它会立即加入记录。

XSCAN的其他优点还包括:可以一次扫描多台主机。这些主机可以在行命令中作为变量键入(并且你可以通过混合匹配同时指定主机和子网)。

4. 结束语

随着Internet的应用日渐普及,网络攻击的种类和方式也愈来愈多,扫描程序不太可能集成所有的远程攻击。每发现一个新的漏洞,扫描程序就应该加入检查这个新漏洞的能力,这是一个永不停止的过程。因此扫描器最多提供一个快速观察TCP/IP安全性的工具,通过系统管理员的正确使用,能够避免一些入侵者的恶意攻击,但并不能保证网络的安全。

0条大神的评论

发表评论