专栏首页信安之路端口扫描那些事

端口扫描那些事

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

测试环境

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),作者:myh0st

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 信息收集——僵尸扫描

    信安之路
  • 通过反向 SSH 隧道连接 RDP

    这是这个系列最后一篇了,想要看更多内容请大家移步到原网站查看吧,这个系列的翻译可能会存在问题,希望大家可以理解,在实践中遇到问题欢迎与我们交流,有对红蓝对抗感兴...

    信安之路
  • 还记得当年踏上信安之路的初衷吗

    一年前在信安之路的交流群里做了一个活动:在我们这个信息安全的圈子里,渗透测试仅仅是安全中的一个很小的分支,虽说这个圈子的缺口很大,但是为什么一直补不上这个缺口呢...

    信安之路
  • 中秋特辑 | 特别的礼给特别的你

    点击领取礼品 ﹀ ﹀ ﹀ ?

    腾讯云serverless团队
  • 《你不知道的JavaScript》:js常见值类型的坑

    常见的值类型有数组(array)、字符串(string)、数字(number)等。

    前端_AWhile
  • 线性混合模型系列一:基本定义

    这是之前写的学习笔记,混合线性模型内容很多,而我只是学习了开头,最基础的原理和推导,有很多不懂又对自己得过且过的地方,所谓学习进入了“瓶颈期”,改革进入了“深水...

    邓飞
  • MongoDB 如何使定制电子商务变得简单

    开源电子商务软件市场已经历了众多发展阶段,您可能已经通过 osCommerce、Magento、Zen Cart、PrestaShop、Spree 等流行平台而...

    张善友
  • 数字产品经理的学习力

    当很多人看到《数字产品经理的培养》中,所提到的知识图谱和实践技能时,第一反应是:“做到这些好难啊”。这的确不太容易。但无论起点如何,决定是否能获取到这些技能的一...

    ThoughtWorks
  • underscore 诞生记(二)—— 链式调用与混入(mixin)

    如果你还没看过第一篇文章,请点击 “underscore 诞生记(一)—— 基本结构搭建”

    小皮咖
  • WiMAX战争回忆录

    WiMAX,就是Worldwide Interoperability for Microwave Access,全球微波互联接入。名字有点长,它还有另外一个名字...

    鲜枣课堂

扫码关注云+社区

领取腾讯云代金券