端口扫描漏洞是什么_端口扫描漏洞

hacker|
140

*** 漏洞扫描 *** 介绍

网洛扫瞄,是基于Internetde、探测远端网洛或主机信息de一种技术,也是保证系统和网洛安全必不可少de一种手段。下面由我给你做出详细的 *** 漏洞扫描 *** 介绍!希望对你有帮助!

*** 漏洞扫描 *** 介绍

主机扫瞄,是指对计算机主机或者 其它 网洛设备进行安全性检测,以找出安全隐患和系统漏洞。总体而言,网洛扫瞄和主机扫瞄都可归入漏洞扫瞄一类。漏洞扫瞄本质上是一把双刃剑:黑客利用它来寻找对网洛或系统发起攻击de途径,而系统管理员则利用它来有效防范黑客入侵。通过漏洞扫瞄,扫瞄者能够发现远端网洛或主机de配置信息、 TCP/UDP端口de分配、提供de网洛服务、服务器de具体信息等。

*** 漏洞扫瞄原理:

漏洞扫瞄可以划分为ping扫瞄、端口扫瞄、OS探测、脆弱点探测、防火墙扫瞄五种主要技术,每种技术实现de目标和运用de原理各不相同。按照 TCP/IP协议簇de结构,ping扫瞄工作在互联网洛层:端口扫瞄、防火墙探测工作在传输层;0S探测、脆弱点探测工作在互联网洛层、传输层、应用层。 ping扫瞄确定目标主机deIP地址,端口扫瞄探测目标主机所开放de端口,然后基于端口扫瞄de结果,进行OS探测和脆弱点扫瞄。

*** 漏洞扫描 *** :Ping扫瞄

ping扫瞄是指侦测主机IP地址de扫瞄。ping扫瞄de目de,就是确认目标主机deTCP/IP网洛是否联通,即扫瞄deIP地址是否分配了主机。对没有任何预知信息de黑客而言,ping扫瞄是进行漏洞扫瞄及入侵de之一步;对已经了解网洛整体IP划分de网洛安全人员来讲,也可以借助ping扫瞄,对主机deIP分配有一个精确de定位。大体上,ping扫瞄是基于ICMP协议de。其主要思想,就是构造一个ICMP包,发送给目标主机,从得到de响应来进行判断。根据构造ICMP包de不同,分为ECH0扫瞄和non—ECHO扫瞄两种。

*** 漏洞扫描 *** : ECH0扫瞄

向目标IP地址发送一个ICMP ECHOREQUEST(ICMP type 8)de包,等待是否收至UICMP ECHO REP *** (ICMP type 0)。如果收到了ICMP ECHO REP *** ,就表示目标IP上存在主机,否则就说明没有主机。值得注意de是,如果目标网洛上de防火墙配置为阻止ICMP ECH0流量,ECH0扫瞄不能真实反映目标IP上是否存在主机。

此外,如果向广播地址发送ICMPECHO REQUEST,网洛中deunix主机会响应该请求,而windows主机不会生成响应,这也可以用来进行OS探测。

*** 漏洞扫描 *** : non-ECH0扫瞄

向目deIP地址发送一个ICMP TIMESTAMP REQUEST(ICMP type l3),或ICMP ADDRESS MASK REQUEST (ICMP type l7)de包,根据是否收到响应,可以确定目的主机是否存在。当目标网洛上de防火墙配置为阻止ICMP ECH0流量时,则可以用non.ECH0扫瞄来进行主机探测。

*** 漏洞扫描 *** :端口扫瞄

端口扫瞄用来探测主机所开放de端口。端口扫瞄通常只做最简单de端口联通性测试,不做进一步de数据分析,因此比较适合进行大范围de扫瞄:对指定 IP地址进行某个端口值段de扫瞄,或者指定端口值对某个IP地址段进行扫瞄。根据端口扫瞄使用de协议,分为TCP扫瞄和UDP扫瞄。

*** 漏洞扫描 *** : TCP扫瞄

主机间建立TCP连接分三步(也称三次握手):

(1)请求端发送一个SYN包,指明打算连接de目de端口。

(2)观察目de端返回de包:

返回SYN/ACK包,说明目de端口处于侦听状态;

返回RST/ACK包,说明目de端口没有侦听,连接重置。

CS架构系统如何漏洞扫描

可以使用Kali工具库之Nikto。Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。

Kali默认已经安装Nikto,apt-get update,apt-get install nikto

使用说明:打开Kali工具列表,点击02-漏洞扫描,选择nikto LOGO,会打开Terminal终端

指定端口扫描:使用命令nikto -h -p 端口号可以指定端口进行扫描,同样可以指定SSL协议,进行HTTPS扫描。

指定目录扫描:有时候我们只要扫描网站下的某个子目录,我们可以使用-c 参数指定扫描的目录,使用-c all 可进行目录爆破,并扫描。

多目标扫描:nikto支持多个目标进行扫描,我们将多个地址写入到文本中,通过- host参数+文本的方式进行扫描。

渗透测试之端口扫描

端口扫描:端口对应 *** 服务及应用端程序

服务端程序的漏洞通过端口攻入

发现开放的端口

更具体的攻击面

UDP端口扫描:

如果收到ICMP端口不可达,表示端口关闭

如果没有收到回包,则证明端口是开放的

和三层扫描IP刚好相反

Scapy端口开发扫描

命令:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1)

nmap -sU 192.168.45.129

TCP扫描:基于连接的协议

三次握手:基于正常的三次握手发现目标是否在线

隐蔽扫描:发送不完整的数据包,不建立完整的连接,如ACK包,SYN包,不会在应用层访问,

僵尸扫描:不和目标系统产生交互,极为隐蔽

全连接扫描:建立完整的三次握手

所有的TCP扫描方式都是基于三次握手的变化来判断目标系统端口状态

隐蔽扫描:发送SYN数据包,如果收到对方发来的ACK数据包,证明其在线,不与其建立完整的三次握手连接,在应用层日志内不记录扫描行为,十分隐蔽, *** 层审计会被发现迹象

僵尸扫描:是一种极其隐蔽的扫描方式,实施条件苛刻,对于扫描发起方和被扫描方之间,必须是需要实现地址伪造,必须是僵尸机(指的是闲置系统,并且系统使用递增的IPID)早期的win xp,win 2000都是递增的IPID,如今的LINUX,WINDOWS都是随机产生的IPID

1,扫描者向僵尸机发送SYN+ACY,僵尸机判断未进行三次握手,所以返回RST包,在RST数据包内有一个IPID,值记为X,那么扫描者就会知道被扫描者的IPID

2,扫描者向目标服务器发送SYN数据包,并且伪装源地址为僵尸机,如果目标服务器端口开放,那么就会向僵尸机发送SYN+ACK数据包,那么僵尸机也会发送RST数据包,那么其IPID就是X+1(因为僵尸机足够空闲,这个就为其收到的第二个数据包)

3,扫描者再向僵尸机发送SYN+ACK,那么僵尸机再次发送RST数据包,IPID为X+2,如果扫描者收到僵尸机的IPID为X+2,那么就可以判断目标服务器端口开放

使用scapy发送数据包:首先开启三台虚拟机,

kali虚拟机:192.168.45.128

Linux虚拟机:192.168.45.129

windows虚拟机:192.168.45.132

发送SYN数据包:

通过抓包可以查看kali给linux发送syn数据包

linux虚拟机返回Kali虚拟机SYN+ACK数据包

kali系统并不知道使用者发送了SYN包,而其莫名其妙收到了SYN+ACK数据包,便会发RST包断开连接

也可以使用下列该命令查看收到的数据包的信息,收到对方相应的SYN+ACK数据包,scapy默认从本机的80端口往目标系统的20号端口发送,当然也可以修改

如果向目标系统发送一个 随机端口:

通过抓包的获得:1,kali向linux发送SYN数据包,目标端口23456,

2,Linux系统由自己的23456端口向kali系统的20号端口返回RST+ACK数据包,表示系统端口未开放会话结束

使用python脚本去进行scapy扫描

nmap做隐蔽端口扫描:

nmap -sS  192.168.45.129 -p 80,21,110,443 #扫描固定的端口

nmap -sS 192.168.45.129 -p 1-65535 --open  #扫描该IP地址下1-65535端口扫描,并只显示开放的端口

nmap -sS 192.168.45.129 -p --open  #参数--open表示只显示开放的端口

nmap -sS -iL iplist.txt -p 80

由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap  -sS

hping3做隐蔽端口扫描:

hping3 192.168.45.129 --scan 80 -S  #参数--scan后面接单个端口或者多个端口.-S表示进行SYN扫描

hping3 192.168.45.129 --scan 80,21,25,443 -S

hping3 192.168.45.129 --scan 1-65535 -S

由抓包可得:

hping3 -c 100  -S  --spoof 192.168.45.200 -p ++1 192.168.45.129

参数-c表示发送数据包的数量

参数-S表示发送SYN数据包

--spoof:伪造源地址,后面接伪造的地址,

参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100

最后面跟的是目标IP

通过抓包可以得知地址已伪造,但对于linux系统(192.168.45.129)来说,它收到了192.168.45.200的SYN数据包,那么就会给192.168.45.200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(192.168.45.200)进行抓包

hping3和nmap扫描端口的区别:1,hping3结果清晰明了

  2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包

hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析

全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现

response=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="S"))

reply=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="A",ack=(response[TCP].seq+1)))

抓包情况:首先kali向Linux发送SYN,Linux回复SYN+ACK给kali,但kali的系统内核不清楚kali曾给linux发送给SYN数据包,那么kali内核莫名其妙收到SYN+ACK包,那么便会返回RST请求断开数据包给Linux,三次握手中断,如今kali再给Linux发ACK确认数据包,Linux莫名其妙收到了ACK数据包,当然也会返回RST请求断开数据包,具体抓包如下:

那么只要kali内核在收到SYN+ACK数据包之后,不发RST数据包,那么就可以建立完整的TCP三次握手,判断目标主机端口是否开放

因为iptables存在于Linux内核中,通过iptables禁用内核发送RST数据包,那么就可以实现

使用nmap进行全连接端口扫描:(如果不指定端口,那么nmap默认会扫描1000个常用的端口,并不是1-1000号端口)

使用dmitry进行全连接端口扫描:

dmitry:功能简单,但功能简便

默认扫描150个最常用的端口

dmitry -p 192.168.45.129  #参数-p表示执行TCP端口扫描

dmitry -p 192.168.45.129 -o output  #参数-o表示把结果保存到一个文本文档中去

使用nc进行全连接端口扫描:

nc -nv -w 1 -z 192.168.45.129 1-100:      1-100表示扫描1-100号端口

参数-n表示不对Ip地址进行域名解析,只把其当IP来处理

参数-v表示显示详细信息

参数-w表示超时时间

-z表示打开用于扫描的模式

0条大神的评论

发表评论