freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

web渗透实用操作----端口扫描 精简实用版
2021-09-19 14:11:25

一、端口扫描技术分类

完全连接扫描:

完全连接扫描利用 TCP/IP 协议的三次握手连接机制,使源主机和目的主机的某个端口建立一次完整的连接。如果建立成功,则表明该端口开放。否则,表明该端口关闭。

半连接扫描:

半连接扫描是指在源主机和目的主机的三次握手连接过程中,只完成前两次握手,不建 立一次完整的连接。

SYN 扫描:

首先向目标主机发送连接请求,当目标主机返回响应后,立即切断连接过程,并查看响 应情况。如果目标主机返回ACK信息,表示目标主机的该端口开放。如果目标主机返 回RESET 信息,表示该端口没有开放。

ACK 扫描:

首先由主机A向目标主机B发送FIN数据包,然后查看反馈数据包的TTL值和WIN值。 开放端口所返回的数据包的TTL值一般小于64,而关闭端口的返回值一般大于64。开 放端口所返回的数据包的WIN值一般大于0,而关闭端口的返回值一般等于0。

........
还有很多,以上是常用的方式,也是众多端口扫描器的原理。

下面,我将分享一些实用的工具。扫描的目标均是同一IP。

47.97.xxx.118

二、在线端口扫描

1. FOFA

可以发现,7071端口 nmap(-sS)并没有扫描出来,但是确实是能访问成功,并且上面有站点。

用nmap专门扫7071,可以发现成功扫出来了,说明SYN半连接扫描-sS快是快,但是准确度不是特别高

2.  Shodan

3. 一个在线端口扫描

扫描常见398个端口,结果不是很全,不过还行。

4. 白嫖型

本地网不好,只能找找在线端口扫描了,这找也有门道,绝大部分是有扫描数量限制或者是端口号限制,无法一键入魂,不过可以用py脚本突破,but脚本写的不好还不如本地扫呢,能不能不写脚本?找了一哈,发现一套在线扫描工具,

例:http://www.all-tool.cn/Tools/portblast/

这里扫描端口是没有IP、端口数量限制,故可生成1~65535、以’.’间隔的字符串,然后填入自定义端口进行扫描。

只开了一个页面,0.5s页面加载一次,可以多开几个网页进行分段扫描。
优点:对本地网络要求低,扫描全面且准确。
扫描中~~~,对于结果,复制文本,写点py脚本处理一下就可以放到nmap去扫端口详情了,这就像在线版masscan,最后和nmap联动。(联动的话,需要写脚本了,这具体的脚本日后来补~~)

随便找点特征,如/portblast,可以发现还是有几十个站使用了这套程序

三、NMAP

Nmap好用是好用,但是有些参数用了,确实很慢,而且会对网络有很大的影响。以下是非常好用的命令。

1. nmap -sS 47.97.xxx.118 

说明:-sS是半连接扫描,TCP半连接扫描是不会留下记录,并且速度很快,十分常用。
共21个开放端口,用时8.71 S

2. nmap -sP 47.97.xxx.118/24

或者

nmap -sP 47.97.xxx.0-255

说明:扫描网段中存活的主机。其中-sP是ping扫描

3. nmap -O 47.97.xxx.118

说明:OS操作系统类型的探测

4. nmap快速扫描大量主机端口方法

nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -oG result.txt -iL ip.txt
注:此方法会有部分疏漏,但是面对大批量目标速度快、较为精准。
其中:
-Pn:禁用PING检测,这样速度快,并且可以防止有些主机无法ping通而被漏掉不扫描
-open:只输出检测状态为open的端口,即开放的端口
-min-hostgroup 4:调整并行扫描组的大小
-min-parallelism 1024:调整探测报文的并行度
-host-timeout 30:检测超时的跳过
-oG:输出为比较人性化的格式,一条记录一行
-iL 扫描文件中的所有⽬标地址,如nmap -sS -iL ip.txt

参考文章:

https://www.cnblogs.com/cyrusxx/p/12562867.html

5. 其他推荐参数:

-v 显示扫描过程
-p 指定端口,如-p 80,8080,8081
-sV探测端口以及服务版本信息(注:速度会慢下来)
--randomize-hosts  随机扫描,对目标主机的顺序随机划分
--scan-delay    延时扫描,单位秒,调整探针之间的延迟

四、Masscan

批量快速端口扫描
Kali集成,Linux上运行,源码需要编译才能在windows上运行,这就很不爽了,于是乎翻遍Github,终于找到一款贼无脑、环境不出错、好用的masscan了。(呜呜呜,求个赞,也给项目作者点个收藏!)

项目地址:https://github.com/zmzmon/masscan

1. 打开工具

2. 点击【安装WinPcap】

注意:就算你之前安装了,这一步必须点,点了就不管了,WinPcap不需要重装,主要是它会释放一些配置文件,masscan才能正常运作。

3.【清空IP】

会生成一个IP.txt,将目标填入

4. 点击【调节扫描速度】

会生成一个【扫描.cmd】,可以直接在里面进行命令的配置

5. 点击【自动整理】

会有两个py脚本,整理结果的

6. 配置【扫描.cmd】

把端口改为全端口

masscan -p 1-65535 -iL IP.txt -oX 111.xml --rate 2000 -sS

7. 点击【开始扫描】

8. 扫描结束

黑屏自动关闭,生成111.xml

9. 点击【自动整理】

释放两个py脚本

10. 运行脚本

python masscan-xml-整理.py

11. 生成结果文件

jieguo.txt

开放端口有49个,用时不到20S,结果较为全面,不过误报也是存在的,李姐。

五、Gogy

扫描全端口,不扫漏洞,只扫资产。时间上花费有点多,一个IP全端口大概20分钟吧。
Gogy扫描资产真滴强,发现6684端口nmap(-sS)没有扫出来,但是gogy、masscan扫出来了。

六、nmap和masscan联动

使用masscan做全端口开放检测,检测出来端口信息后,用nmap进行服务信息识别。
以下两个项目均可完成功能,不过代码都是Linux上的。

https://github.com/hellogoldsnakeman/masnmapscan-V1.0

https://github.com/CitrusIce/masmap_script/

简单写了win的脚本,第五步整理完后会生成一个jieguo.txt,一行一个ip:port,我将以这个文件作为输入,用nmap处理后作为输出。

import os

with open("jieguo.txt", 'r') as p:
urls = p.readlines()
#IP-Port集合,定义为字典,键为IP,键值为对应开放端口组成的字符串(以逗号分割不同的端口)
ip_port_dict = {}
#将jieguo.txt中的ip提取出来,字典中键自动去重
for url in urls:
ip_port_dict[url.split(':')[0]] = ""
#遍历IP,将IP(键)对应的端口拼接到字符串(键值)中
for key, value in ip_port_dict.items():
for url in urls:
if key in url:
#去掉读取文件而产生的换行符
url = url.replace("\n", "")
ip_port_dict[key] = ip_port_dict[key] + url.split(':')[1] + ','
str = ip_port_dict[key]
#去掉键值字符串 最后面多余出来的','
ip_port_dict[key] = str[0:len(str)-1]

#调用nmap,这里需要改下你自己的nmap的路径
for key, value in ip_port_dict.items():
os.system("E:\\nmap\\nmap.exe " + "-p " + value + " -sV -v " + key)

结果:大概一分钟不到,52个IP:port

第一个IP的端口信息

第二个IP,我就放了一个8080端口

# 渗透测试 # web安全 # 端口扫描
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录