(网络安全)主动信息收集---端口扫描同时配合wireshark分析
Posted xialuoxialuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(网络安全)主动信息收集---端口扫描同时配合wireshark分析相关的知识,希望对你有一定的参考价值。
在发现主机存活后,我们便可以进行下一步渗透测试,利用端口,从有漏洞的应用程序进入,实现渗透工作
目录:
- UDP端口扫描
- TCP端口扫描
1.隐蔽扫描
2.僵尸扫描
3.全连接端口扫描
一.UDP端口扫描
使用的技术与发现主机时使用的技术相同 :确认目标主机存活的前提下,向目标端口发送数据包,
如果没有收到响应说明端口开放,如果收到ICMP端口不可达的响应 说明端口没有开放
-----值得一提的是 与上文不同 我们这里是想扫描出目标主机使用了哪些udp端口
----上文是利用udp来探测主机是否存活 看官们注意区分
----UDP扫描在确认主机存活的前提下 准确性高
-----但是
由于有6万多个端口 使得 扫描耗时较大(但是还是比TCP快)
1.Scapy UDP Scan
i=IP()
u=UDP()
r=(i/u)
r\\[IP\\].dst='192.168.31.1'
r\\[IP\\].src='192.168.31.113'
r\\[IP\\].dport=3333
a=sr1(r)
a.display()
我们通过收到icmp报文 得知目标端口是关闭 的
但是只扫描了一个端口
之后可以通过编写脚本 来对端口进行逐个扫描
2.Nmap
nmap -sU 1.1.1.1 //udp扫描
我们首先对目标进行udp扫描看是否存活
发现该地址块中有46个地址存活
之后挑出一个进行端口扫描看目标打开了哪些端口(默认扫描1000个常用端口)
(运行起来真的非常非常慢)
nmap -sU 192.168.31.1 -p53 //指定端口
二.TCP端口扫描
相较于UDP扫描 TCP扫描要复杂的多 因为tcp是一个可靠传输协议过程很复杂 而udp是一个不可靠协议
- 隐蔽扫描
利用syn数据包,如果端口开放 目标主机会返回ack 如果没有开放目标主机会返回reset
因为它没有建立完整的连接 对于应用日志来说并不会记录此行为 但是网络层还是会有记录
- 僵尸扫描
要求苛刻但隐蔽性极强
1、要求自己处于可以修改源地址的网络中同时使用的僵尸机器为xp 2003 等较老的版本 因为扫描过程中需要用到老版本系统中ipid是逐渐增长的特性
2、并且要求僵尸机在此过程中不会与其他主机进行通信
一、向僵尸机发送一个SYN/ACK报文
二、由于在僵尸机看来 这是个畸形数据包于是返回一个reset报文此时记录下返回报文中的IPID
三、攻击者向目标服务器发送syn包 但要伪造为僵尸机的ip地址
四、目标主机向如果开放会向僵尸机发送syn/ack(因为使用的是伪造的ip地址 目标主机会认为是僵尸机与其在通信)
五、此时僵尸机收到了来自目标主机的syn/ack数据包,对于未进行连接的僵尸机来说 这是个不正常数据包
六、于是向目标主机返回reset包 同时ipid要加1 ipid数值发生变化
七、如果目标主机未开放 僵尸不会收到syn/ack数据包 即ipid数值不会发生变化
我们便可以通过ipid的数值 来判断目标主机端口是否开放了
3.全连接端口扫描
指的是与目标主机经历三次握手后建立一个 完整的TCP连接,来获取信息
优点在于可以更大限度的获取目标信息 缺点是与目标直接接触 暴露的风险大
隐蔽扫描
1.Scapy
i=IP()
u=TCP()
r=(i/u)
r[IP].dst=‘192.168.31.1’
r[IP].src=‘192.168.31.113’
r[TCP].flags=‘S’
a=sr1®
a.display()
便成功向目标主机发送了一个syn的数据包
2.nmap
nmap -sS 1.1.1.1 -p 80,21,110,25 // -p指定端口 S表示 发送SYN数据包
nmap -sS 1.1.1.1 -p --open //只显示开放端口 过滤掉closed 端口
nmap -sS -iLiplist.txt -p 80
3. hping3
hping3 1.1.1.1 --scan 1-80 -S
//也是利用syn
hping3 -c 10 -S -a 1.1.1.2 -p ++1 1.1.1.3 // -c 表示 每次只发十个包 -a 表示修改自己的源地址为 -p ++1表示端口逐渐加一
利索当然的由于伪造了源地址 目标回复信息也会回复到伪造的地址上 这就是它的弊端
C:\\Users\\Dell\\Documents\\Virtual Machines
僵尸扫描
实验环境:一台xp系统的虚拟机作为僵尸机 一台metasploitable系统的虚拟机作为目标主机 攻击者使用的是kali
首先利用scapy构建数据包
i=IP()
t=TCP()
a=(i/t)
aIP].src=‘192.168.31.66’
a[TCP].flags=‘S’
//先构建一个数据包向僵尸机发送
得到数据包a1
之后构建数据包b
b=(i/t)
b[IP].src=‘192.168.31.66’
b[IP].dst=‘192.168.31.255’
b[TCP].flags=‘S’
//伪装为僵尸机向目标主机发送请求
之后再次向僵尸机发送数据包 观察 返回的ip数据包中
(方法如上 笔者 未能成功实现)
nmap方法实现
nmap -p445 192.168.1.133 --script=ipidseq.nse//自动发现僵尸机
提示ipid都为全1 不能够称为僵尸机
提示incremental表示合格
nmap (僵尸) -sI 172.1111.111.111 -Pn -p 0-100 //使用nmap进行僵尸扫描 前面的ip为僵尸机ip
全连接端口扫描
1. Scapy
与之前一样构造数据包 将数据包中的标志位置为S
抓包发现如下 在收到目标主机发来的SYN/ACK数据包后
自己的主机发往目标主机了一个reset数据包
导致连接失败
原因在于 我们在请求与对方建立连接时 (即发送 SYN数据包),我们底层的系统内核它是并不知晓的
于是在收到TCP 报文的 SYN/ACK数据包后 在他看来这是个畸形数据包 于是 便向目标返回了一个reset数据包 导致我们的连接过程直接被中止
解决方法:
在防火墙中设置 禁止向目标主机发送RST的数据包
iptables -A OUTPUT -p tcp -tcp-flags RST RST -d 192.168.31.1 -j DROP
2.Nmap
相较于上面的scapy
使用Nmap就不用考虑系统内核会自动发送reset数据报
nmap -sT 192.168.31.1 -p1-100
同样的nmap会进行域名反向解析 尝试建立tcp连接
成功与目标主机建立了80端口上的tcp连接
3.NC
nc -nv -w 1 -z 192.168.31.1 1-100 // w表示间隔时间为一秒无响应则记为超时 -z表示 对端口进行扫描 n表示不进行域名解析 v表示记录详细内容
只能测试一个端口 需要编写脚本
原理相同 发送SYN数据报
建立连接后迅速断开连接
以上是关于(网络安全)主动信息收集---端口扫描同时配合wireshark分析的主要内容,如果未能解决你的问题,请参考以下文章