端口扫描

每个服务器上面都会跑很多应用,每个应用都会侦听某些端口,通过侦听端口接收来自客户端或其他用户对应用程序的访问。所以在发现目标主机存活后,我们需要知道目标主机上都开放了那些端口,应用程序的漏洞都是通过端口体现出来的。后续的渗透测试如果能攻击进入一个操作系统的话,都是通过端口后面的应用程序的漏洞攻击进去的。所以说,二三四层主机发现只是为了准确发现活着的IP,确定攻击面;端口扫描发现开放的端口,确定攻击点。

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

一、UDP端口扫描

基于端口的扫描,都是针对存活的主机而言。使用UDP端口扫描,如果目标主机不存活或者目标主机存活且端口开放,则目标系统不会有响应;如果端口关闭,则目标系统会响应端口不可达。

  • 端口关闭:ICMP port unreachable
  • 端口开放:没有回包

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

#!/usr/bin/python
#该脚本使用UDP协议扫描多个目标主机端口
from scapy.all import *
import time
import sysif len( sys.argv ) !=4: print "Example: ./UDP_scan.py 1.1.1.1 50 150" 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 portelse:pass

结果如下:

root@root:~# chmod +x UDP_scapy.py      //赋予文件执行权限
root@root:~# ./UDP_scapy.py 192.168.247.129 1 100
53
88

Nmap

  • nmap -sU 192.168.247.129                    //-sU:使用UDP协议
  • nmap -sU 192.168.247.129 -p 53
  • nmap  -iL  iplist.txt  -sU  -p 1-200          //指定扫描地址列表
root@kali:~# nmap -sU 192.168.247.129   //如果没有使用-p 指定扫描端口,默认扫描1000个常用端口;如果没有回应目标端口不可达,则该端口开放;否则,则端口关闭
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-13 17:32 CST
Nmap scan report for bogon (192.168.247.129)
Host is up (0.00096s latency).
Not shown: 991 closed ports
PORT     STATE         SERVICE
123/udp  open|filtered ntp
137/udp  open          netbios-ns
138/udp  open|filtered netbios-dgm
445/udp  open|filtered microsoft-ds
500/udp  open|filtered isakmp
1032/udp open|filtered iad3
1033/udp open|filtered netinfo-local
1034/udp open|filtered activesync-notify
4500/udp open|filtered nat-t-ike
MAC Address: 00:0C:29:8F:74:74 (VMware)Nmap done: 1 IP address (1 host up) scanned in 1.47 seconds
root@kali:~# nmap -sU 192.168.247.129  -p 53    //-p 扫描指定端口
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-13 17:38 CST
Nmap scan report for bogon (192.168.247.129)
Host is up (0.00023s latency).PORT   STATE  SERVICE
53/udp closed domain
MAC Address: 00:0C:29:8F:74:74 (VMware)Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds

二、TCP端口扫描

  • TCP是基于连接的协议
  • TCP扫描可以分为隐蔽扫描、僵尸扫描、全连接扫描
  • 所有TCP扫描方式,都是基于三次握手的变化来判断目标端口的状态

三次握手过程:

1、隐蔽扫描——syn

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

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

1)Scapy

root@kali:~# scapy
WARNING: No route found for IPv6 destination :: (no default route?)
INFO: Can't import python ecdsa lib. Disabled certificate manipulation tools
Welcome to Scapy (2.3.3)#测试80端口是否开放
>>> a=sr1(IP(dst="192.168.247.130")/TCP(dport=80),timeout=1,verbose=0)
>>> a
<IP  version=4L ihl=5L tos=0x0 len=44 id=0 flags=DF frag=0L ttl=64 proto=tcp chksum=0xca69 src=192.168.247.130 dst=192.168.247.142 options=[] |<TCP  sport=http dport=ftp_data seq=1646221533 ack=1 dataofs=6L reserved=0L flags=SA window=14600 chksum=0x334a urgptr=0 options=[('MSS', 1460)] |<Padding  load='\x00\x00' |>>>#测试66端口是否开放
>>> a=sr1(IP(dst="192.168.247.130")/TCP(dport=66),timeout=1,verbose=0)
>>> a
<IP  version=4L ihl=5L tos=0x0 len=40 id=0 flags=DF frag=0L ttl=64 proto=tcp chksum=0xca6d src=192.168.247.130 dst=192.168.247.142 options=[] |<TCP  sport=66 dport=ftp_data seq=0 ack=1 dataofs=5L reserved=0L flags=RA window=0 chksum=0x3f17 urgptr=0 |<Padding  load='\x00\x00\x00\x00\x00\x00' |>>>

Wireshark抓包分析:

使用脚本实现隐蔽扫描

#!/usr/bin/python
# -*- coding: utf-8 -*-
#该脚本用户实现扫描目标主机中开放的TCP端口from scapy.all import*
import sysif 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:passelse:if int(a[TCP].flags)==18:       #SYN+ACK值为18print (port)else:pass

执行结果如下:

root@kali:~# chmod +x SYN_scan.py
root@kali:~# ./SYN_scan.py 192.168.247.130 1 200
22
80
111

2)隐蔽端口扫描——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
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-20 21:30 CST
Nmap scan report for bogon (192.168.247.130)
Host is up (0.00083s latency).
Not shown: 98 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 00:0C:29:74:BA:34 (VMware)Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds

3)隐蔽端口扫描——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地址
root@kali:~# 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    4680 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--- 192.168.247.130 hping statistic ---
100 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

2、僵尸扫描

Kali渗透测试之端口扫描——僵尸扫描(Scapy、python脚本、nmap)

3、全连接端口扫描

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

1)全连接端口扫描——nmap

  • nmap -sT 192.168.247.129                     //扫描1000个常见端口
  • nmap -sT 192.168.247.129 -p 1-100      //-p  指定端口进行扫描
root@kali:~# nmap -sT 192.168.247.129
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-14 20:17 CST
Nmap scan report for bogon (192.168.247.129)
Host is up (0.0011s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
80/tcp   open  http
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
1025/tcp open  NFS-or-IIS
3306/tcp open  mysql
MAC Address: 00:0C:29:8F:74:74 (VMware)Nmap done: 1 IP address (1 host up) scanned in 3.51 seconds

2)全连接端口扫描——dmitry

  • 功能简单,使用简单
  • 默认扫描150个最常用的端口
root@kali:~# dmitry -p 192.168.247.129  //-p 执行TCP扫描
Deepmagic Information Gathering Tool
"There be some deep magic going on"HostIP:192.168.247.129
HostName:bogonGathered TCP Port information for 192.168.247.129
---------------------------------Port       State80/tcp     open
135/tcp     open
139/tcp     openPortscan Finished: Scanned 150 ports, 146 ports were in state closedAll scans completed, exiting

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

root@kali:~# 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

Kali渗透测试之端口扫描1——UDP、TCP、僵尸扫描、隐蔽扫描相关推荐

  1. 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

    端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相 ...

  2. Kali渗透测试之主动侦查和被动侦查以及maltego的使用

    Kali渗透测试之maltego注册和使用 一.注册maltego 1.打开命令行终端,可以在kali桌面右键打开,也可以使用快捷键Ctrl+Alt+T打开 kali本身应该已经自带maltego,但 ...

  3. Kali Linux渗透测试之端口扫描(一)——UDP、TCP、隐蔽端口扫描、全连接端口扫描

    端口扫描 二.三.四层发现的目的就是发现存活的IP,在存活的IP上面,展开进一步的扫描,及端口扫描,发现存活主机上存在着哪些开放的端口,端口后面就对应着各种各样的应用程序,应用程序的漏洞都是通过端口体 ...

  4. 小白日记29:kali渗透测试之Web渗透-扫描工具-Vega

    WEB扫描工具-Vega 纯图形化界面,Java编写的开源web扫描器.两种工作模式:扫描模式和代理模式[主流扫描功能].用于爬站.处理表单,注入测试等.支持SSL:http://vega/ca.cr ...

  5. 小白日记18:kali渗透测试之缓冲区溢出实例(二)--Linux,穿越火线1.9.0

    Linux系统下穿越火线-缓冲区溢出 原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测 ...

  6. 小白日记2:kali渗透测试之被动信息收集(一)

    一.被动信息收集 被动信息收集指的是通过公开渠道可获得的信息,与目标系统不产生直接交互,尽量避免留下一切痕迹的信息探测.被动探测技术收集的信息可以大致分为两类, 即配置信息和状态信息. 被动探测可收集 ...

  7. kali渗透80端口的php,一次对内网服务器的KALI渗透测试

    近年来实战较少,基本研究渗透测试技术和常见问题的解决.这次应贝塔安全队成员@蜗牛哥哥的邀请和队成员一起参加了这次的某所大学渗透测试的实战目标场,正好最近也没事就带来了练习者.首先,我们根据攻击a组发送 ...

  8. Kali渗透测试之被动信息收集

    一.渗透测试的流程 信息收集(很重要,时间占比30% ~ 50%) 漏洞扫描 漏洞利用 提权 清除痕迹,留后门 写渗透测试报告 其中信息收集很重要,它通常占整个渗透测试过程所需时间的30% ~ 50% ...

  9. 小白日记5:kali渗透测试之被动信息收集(四)--theHarvester,metagoofil,meltag,个人专属密码字典--CUPP

    1.theHarvester theHarvester是一个社会工程学工具,它通过搜索引擎.PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息. ...

最新文章

  1. 三维点云语义分割总览
  2. 蓝驰创投朱天宇:用10年尺度看 AI 创业,如何发现独角兽 | 新智元专访
  3. MySQL使用覆盖索引来优化limit语句
  4. 【翻译】Test-After Development is not Test-Driven Development
  5. detours安装和使用
  6. git version可以卸载吗_sourcetree使用:问题是有推送提示,但显示为空。原因:git版本过低...
  7. [原创]三维建模软件的尝试
  8. Android RootTrustManager 证书校验简单分析
  9. 华为olt ma5680t常用命令详解
  10. 计算机软件领域经典图书推荐
  11. 伍德里奇 第6版 计量经济学导论_伍德里奇《计量经济学导论》第6版课后习题答案...
  12. API管理基础知识集锦
  13. 计算机操作系统核心知识点总结面试笔试要点
  14. 首份2020信创报告出炉,四大巨头市场格局立现(附全文下载)
  15. word双栏添加右栏下脚注而左栏满字方法
  16. Ubuntu 安装坚果云
  17. DayDayUp:2021,再见了,无论是躺平还是内卷—愿大家改变不可接受的,接受不可改变的—心若有向往,何惧道阻且长
  18. c语言程序设计教程+西安交通大学,大学C程序设计教程-西安交通大学.ppt
  19. 2-3 CAD基础 删除(erase)
  20. RSA整理--频谱路由分配算法

热门文章

  1. 《医学免疫学:细胞因子》读书笔记
  2. 架也不吵了!谷歌大脑、DeepMind团结对抗OpenAI
  3. mysql 事物隔离界别_MySQL锁与事务隔离级别
  4. Mastering Qt 5 学习笔记-Mandelbrot
  5. EXCEL的VBA编程基础1
  6. 博图v15调用fc105_博图v15上传问题
  7. openssl 的安装
  8. mysql desc hcy.t1_mysql主从同步出错故障处理总结[数据库技术]
  9. python:读取Excel文件
  10. ya的意思_请问ya是你的意思吗,为什么不写成yo – 手机爱问