【KALI使用】19 端口扫描——TCP、UDP

只是记录
学习笔记
参考:这个

端口扫描

  • 每个服务器上面都会跑很多应用,每个应用都会侦听某些端口,通过侦听端口接收来自客户端或其他用户对应用程序的访问。

  • 所以在发现目标主机存活后,我们需要知道目标主机上都开放了那些端口,应用程序的漏洞都是通过端口体现出来的。

  • 后续的渗透测试如果能攻击进入一个操作系统的话,都是通过端口后面的应用程序的漏洞攻击进去的。所以说,二三四层主机发现只是为了准确发现活着的IP,确定攻击面;

  • 端口扫描发现开放的端口,确定攻击点。

  • 端口对应网络服务及应用端程序
    服务端程序的漏洞通过端口攻入

UDP端口扫描

基于端口的扫描,都是针对存活的主机而言。
端口关闭,则目标系统会响应端口不可达。
端口关闭:ICMP port unreachable
端口开放:没有回包

1. 使用脚本的方式实现扫描多个端口

注意python2、3 对print的格式

#!/usr/bin/python
#该脚本使用UDP协议扫描多个目标主机端口
from scapy.all import *
import time
import sys
 
if len( sys.argv ) !=4: 
	print "Example: ./UDP_scan.py 110.242.68.3 1 100 " 
	sys.exit() 
 
ip=sys.argv[1]               //目标主机IP
start=int(sys.argv[2])       //起始端口
end=int(sys.argv[3])         //终止端口
 
for port in range(start,end):
	a=sr1(IP(dst=ip)/UDP(dport=port),timeout=1,verbose=0)  //udp的探测命令
	time.sleep(1)        //防止因扫描过快,造成误判
	if a==None:          //响应包为空,则目标主机端口开放,打印该端口
		print port
  	else:
		pass
chmod +x UDP_scapy.py      //赋予文件执行权限
./UDP_scapy.py 110.242.68.3 1 100

2. 使用nmap-sU

-sU:使用UDP协议
如果没有使用-p 指定扫描端口,默认扫描1000个常用端口;
如果没有回应目标端口不可达,则该端口开放;
否则,则端口关闭

nmap -sU 192.168.247.129                  
nmap -sU 192.168.247.129 -p 53  
nmap  -iL  iplist.txt  -sU  -p 1-200          //指定扫描地址列表

在这里插入图片描述

在这里插入图片描述

TCP端口扫描

  • TCP是基于连接的协议

  • TCP扫描可以分为隐蔽扫描、僵尸扫描、全连接扫描(可伪造源地址、闲置、系统使用递增的IPID在这里插入图片描述

  • 在这里插入图片描述

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

一、隐蔽扫描

syn

  • 我给你发SYN包,只要你给我回SYN+ACK包,说明端口就是开放的;
  • 端口没开放,会回RST+ACK。不管目标主机会什么包,我都不会回ACK数据包,所以目标系统的应用层日志中不会有日志(因为没有建立完整的TCP连接),但是网络层会有一些迹象,所以该扫描方式较隐蔽。

SYN——SYN|ACK——RST //目标端口开放
SYN——RST|ACK //目标端口不开放

1.开一台kali使用Scapy

#测试80端口是否开放

>>> a=sr1(IP(dst="112.45.120.4")/TCP(dport=80),timeout=1,verbose=0)
>>> a

在这里插入图片描述
flags=SA ,80端口开放
在这里插入图片描述

操作系统内核看来,没来由的发送SYN+ACK,目标系统返回RST,表示不接受,该包可能会在后续扫描中,造成障碍
在这里插入图片描述

#测试66端口是否开放
>>> a=sr1(IP(dst="112.45.120.5")/TCP(dport=66),timeout=1,verbose=0)
>>> a

2. 使用脚本实现隐蔽扫描

#!/usr/bin/python
# -*- coding: utf-8 -*-
#该脚本用户实现扫描目标主机中开放的TCP端口
 
from scapy.all import*
import sys
 
if len( sys.argv ) !=4:
	print "Example - ./syn_scan.py 1.1.1.1 1 100"
	sys.exit()
 
ip = str(sys.argv[1])
start = int(sys.argv[2])
end = int(sys.argv[3])
 
for port in range(start,end+1):
	a=sr1(IP(dst=ip)/TCP(dport=port),timeout=0.1,verbose=0)
	if a ==None:
 		pass
	else:
 		if int(a[TCP].flags)==18:       #SYN+ACK值为18,linux会返回一个RST,中断三次握手
    			print (port)
 		else:
    			pass
chmod +x SYN_scan.py 
 ./SYN_scan.py 192.168.247.130 1 200

nmap

nmap 192.168.247.130 -p 1-100
nmap -sS 192.168.247.130 -p 80,88,53,22,25
nmap -sS -iL IP.txt -p 80,88,53,22           //扫描指定文件中的IP地址
root@kali:~# nmap 192.168.247.130 -p 1-100           //默认-sS,扫描端口1-100

hping3

hping3 192.168.247.130 --scan 1-100 -S
hping3 192.168.247.130 --scan 80,88,53,22 -S
hping3 -c 100 -S --spoof 伪造的IP地址 -p ++1 源IP地址
hping3 192.168.247.130 --scan 1-100 -S      //-S:SYN包
Scanning 192.168.247.130 (192.168.247.130), port 1-100
100 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name |  flags  |ttl| id  | win | len |
+----+-----------+---------+---+-----+-----+-----+
   22 ssh        : .S..A...  64     0 14600    46
   80 http       : .S..A...  64     0 14600    46
All replies received. Done.
Not responding ports: 
#源地址欺骗,但是不知道扫描后的结果
root@kali:~# hping3 -c 100 -S --spoof 192.168.247.140 -p ++1 192.168.247.130
HPING 192.168.247.130 (eth0 192.168.247.130): S set, 40 headers + 0 data bytes
 

二、僵尸扫描

三、全连接端口扫描

全连接扫描(SYN、ACK+SYN、ACK)不隐蔽。只要建立完整的三次握手,行为就很容易被识别出来

1. 全连接端口扫描——nmap -sT

nmap -sT 192.168.247.129                     //扫描1000个常见端口
nmap -sT 192.168.247.129 -p 1-100      //-p  指定端口进行扫描

2. 全连接端口扫描——dmitry -p

功能简单,使用简单
默认扫描150个最常用的端口

dmitry -p 112.45.120.14    //-p 执行TCP扫描
Deepmagic Information Gathering Tool
"There be some deep magic going on"
 

3. 全连接端口扫描——nc

nc -nv -w 1 -z 192.168.247.129 1-200
(UNKNOWN) [192.168.247.129] 139 (netbios-ssn) open
(UNKNOWN) [192.168.247.129] 135 (loc-srv) open
(UNKNOWN) [192.168.247.129] 80 (http) open



#
 -nv 不做域名解析
 -w 超时时间
 -z 

猜你喜欢

转载自blog.csdn.net/grb819/article/details/120764129