渗透测试之端口扫描(二)

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

kali服务器端口扫描

端口扫描: 端口对应网络服务及应用端程序。服务端程序的漏洞通过端口攻入。发现开放的端口,更具体的攻击面。UDP端口扫描:如果收到ICMP端口不可达,表示端口关闭。如果没有收到回包,则证明端口是开放的。和三层扫描IP刚好相反。Scapy端口开发扫描,其命令为:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1)。也可以使用nmap去扫描:nmap -sU 192.168.45.129。TCP扫描:基于连接的扫描,分为以下几类:全连接扫描:建立完整的三次握手,所有的TCP扫描方式都是基于三次握手的变化来判断目标系统端口状态。隐蔽扫描:发送SYN数据包,如果收到对方发来的ACK数据包,证明其在线,不与其建立完整的三次握手连接,在应用层日志内不记录扫描行为,十分隐蔽,网络层审计会被发现迹象。僵尸扫描:是一种极其隐蔽的扫描方式,实施条件苛刻,对于扫描发起方和被扫描方之间,必须是需要实现地址伪造,必须是僵尸机(指的是闲置系统,并且系统使用递增的IPID)早期的win xp,win 2000都是递增的IPID,如今的LINUX,WINDOWS都是随机产生的IPID。

kali服务器端口扫描

  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,那么就可以判断目标服务器端口开放。

隐蔽的端口扫描:扫描者发送SYN数据包给目标系统,若目标发来SYN+ACK数据包后,扫描者返回RST断开连接数据包。使用scapy发送数据包:首先开启三台虚拟机,kali虚拟机:192.168.45.128,Linux虚拟机:192.168.45.129,windows虚拟机:192.168.45.132。发送SYN数据包。

kali服务器端口扫描kali服务器端口扫描kali服务器端口扫描

通过抓包可以查看kali向linux发送syn数据包,Linux虚拟机返回Kali虚拟机SYN+ACK数据包,kali系统并不知道使用者发送了SYN包,而其莫名其妙收到了SYN+ACK数据包,便会发RST包断开连接。

kali服务器端口扫描kali服务器端口扫描kali服务器端口扫描

也可以使用下列该命令查看收到的数据包的信息,收到对方相应的SYN+ACK数据包,scapy默认从本机的80端口往目标系统的20号端口发送,当然也可以修改。如果向目标系统发送一个随机端口:通过抓包的获得:1,kali向linux发送SYN数据包,目标端口23456。

kali服务器端口扫描kali服务器端口扫描kali服务器端口扫描

,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。

kali服务器端口扫描

hping3做隐蔽端口扫描:hping3 192.168.45.129 –scan 80 -S,参数–scan后面接单个端口或者多个端口。-S表示进行SYN扫描。hping3 192.168.45.129 –scan 80,21,25,443 -Shping3 192.168.45.129 –scan 1-65535 -S

kali服务器端口扫描kali服务器端口扫描kali服务器端口扫描

由抓包可得: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)进行抓包。

kali服务器端口扫描

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服务器端口扫描

那么只要kali内核在收到SYN+ACK数据包之后,不发RST数据包,那么就可以建立完整的TCP三次握手,判断目标主机端口是否开放。因为iptables存在于Linux内核中,通过iptables禁用内核发送RST数据包,那么就可以实现。使用nmap进行全连接端口扫描:(如果不指定端口,那么nmap默认会扫描1000个常用的端口,不是1-1000号端口)。

kali服务器端口扫描

使用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)