端口扫描那些事

在渗透测试中端口扫描是非常重要的一环,不管是在外围对企业边界信息收集的过程还是在内网渗透中对内网的信息收集。如何判断主机或服务器端口的开放情况就显得尤为重要,下面就盘点一下可以作为端口扫描的工具与方式方法。

测试环境

windows:192.168.188.149 kali:192.168.88.128

扫描工具推荐

推荐几款在外围信息收集过程中使用的快速且强大的端口扫描工具。

Nmap

nmap作为一款最优秀的端口扫描利器,其功能之强大就不多说了,下面重点提几条命令,仅作端口扫描操作:

nmap -sT 192.168.88.128 -p68,80,443,8000,8080,5432 #TCP扫描 nmap -sS 192.168.88.128 -p68,80,443,8000,8080,5432 #SYN扫描 nmap -sU 192.168.88.128 -p68,80,443,8000,8080,5432 #UDP扫描

UnicornScan

Unicornscan 是一个新的信息收集引擎,主要用于安全研究和通讯测试,主要特点是精确、灵活而且高效。做端口扫描可以用下面的命令:

unicornscan -i eth0 -mT 192.168.188.149:1-10000

如需查看更多功能请使用以下命令查看帮助:

unicornscan -h

Masscan

Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。可以使用以下命令做简单的端口扫描:

masscan -p1-1000 192.168.188.149 --rate=10000

软件的帮助信息如下:

zmap

Zmap采用了无状态的扫描技术,没有进行完整的TCP三次握手,因此扫描速度极大提升。Zmap的基本功能是扫描发现主机的开放端口。可以使用以下命令进行指定端口扫描:

zmap -p 135 -o results.csv 192.168.188.0/24

其他扫描方式请查看帮助。

自己开发一个端口扫描工具

在渗透测试中使用被人的工具有的时候是不能满足我们自己的所有需求的,不管是所处的环境问题还是自己的自动化脚本的实现,都需要我们自己学会如何开发,了解扫描原理来应对多变的环境。想要实现端口扫描功能,最重要的环节就是检测端口是否存在,下面就以不同的脚本来实现检测端口是否存在。

Python

使用python实现端口扫描功能,需要用到的库是socket,如下是最重要的几行代码:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2.0)
try:
    s.connect(("192.168.188.149", 445))
    print "open"
except socket.timeout:
    print "timeout"
except socket.error as e:
    print "close"
finally:
    s.close()

端口扫描中的核心就是上面这几行代码,然后其他的功能,如:多线程、结果保存、端口列表等就需要自行添加了。

PowerShell

与Python编写端口扫描工具类似的,如何使用Powershell判断一个端口是否开放是端口扫描的关键,可以使用如下代码判断端口是否开放:

$tcp = new-object Net.Sockets.TcpClient
$tcp.Connect("192.168.88.128",80)

如果端口开放,其结果为空,如果不开放,将会报错,测试如下:

剩下的开发任务请大家自学Powershell,然后开发属于自己的小工具。

NC

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它,利用nc也可以完成简单的端口扫描。使用下面的命令查看端口是否开启:

nc -vv 192.168.188.149 80

测试结果如图:

大家可以不管是在windows下还是linux下都可以写一点bash或者bat来调用nc来进行端口扫描。

总结

工具不在多,够用就好,工具不在神,适合自己就好。所以我只是大概的提了提,剩下如何使用就看自己的个人喜好,欢迎大家分享一些自己的喜好以及经验等。

原文发布于微信公众号 - 信安之路(xazlsec)

原文发表时间:2017-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏刁寿钧的专栏

10 分钟梳理关系数据库基础知识(二):存储结构

本文是《十分钟入门关系型数据库》系列技术文章的第二篇,,主要介绍了数据库的存储结构。

75800
来自专栏解Bug之路

解Bug之路-TCP粘包Bug

详情见笔者另一篇博客https://my.oschina.net/alchemystar/blog/833937

12120
来自专栏圣杰的专栏

性能优化知多少

1. 引言 最近一段时间,系统新版本要发布,在beta客户测试期间,暴露了很多问题,除了一些业务和异常问题外,其他都集中在性能上。有幸接触到这些性能调优的机会,...

22490
来自专栏Android-JessYan

改造 Android 官方架构组件 ViewModel

原文地址: http://www.jianshu.com/p/963a9d146da7

12410
来自专栏芋道源码1024

Dubbo 源码解析 —— 集群容错架构设计

前言 本来是想把整个dubbo源码解析一次性弄完,再做成一个系列来发布的,但是正巧最近有位好朋友要去杭州面试,就和我交流了一下.本着对dubbo源码略有心得的心...

32670
来自专栏安富莱嵌入式技术分享

【安富莱原创开源应用第1期】花式玩转网络摄像头之TCP上位机软件实现,高端大气上档次,速度2MB/S,华丽丽的界面效果

说明: 1、例子是两年前做的,一直没有顾上整理出来,今天特地整理出来,开源出来给大家玩。 2、上位机是emWin模拟器开发的,大家估计很难猜到,所以你会emWi...

17830
来自专栏IMWeb前端团队

聊聊http/2

本文作者:IMWeb 九月 原文出处:IMWeb社区 未经同意,禁止转载 随着web的发展,http/1.x 已经很难满足现在的需求,Google 因...

23270
来自专栏Android 开发者

架构组件之 ViewModel | 中文教学视频

24730
来自专栏Zchannel

核武按钮终被劫持?Meltdown与Spectre攻击深入解析

17220
来自专栏程序人生

系统开发之设计模式

上周五同事分享了design patterns in networks,里面很多patterns都是做路由器防火墙这样的转发设备之所以高效的精髓所在。「程序人生...

35550

扫码关注云+社区

领取腾讯云代金券