(网络安全)主动信息收集---端口扫描同时配合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是一个不可靠协议

  1. 隐蔽扫描
    利用syn数据包,如果端口开放 目标主机会返回ack 如果没有开放目标主机会返回reset
    因为它没有建立完整的连接 对于应用日志来说并不会记录此行为 但是网络层还是会有记录

  1. 僵尸扫描
    要求苛刻但隐蔽性极强
    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分析的主要内容,如果未能解决你的问题,请参考以下文章

网络安全-主动信息收集篇第一章

信息收集之主动信息收集

信息安全深透测试与工房网络中主动信息收集2

(网络安全)主动信息收集 第四层

27主动信息收集--发现

主动信息收集:四层发现