端口扫描_端口扫描工具 - CSDN
精华内容
参与话题
  • 端口扫描可以算是渗透过程中的最最入门的一部分,也可以说是先行军。通常某些常用端口提供的服务存在一些已经被发现的漏洞,比如21端口ftp服务,22端口的ssh服务,以及去年大规模爆发的勒索病毒锁利用的445端口、135...

    图片.png

    前言

    端口扫描可以算是渗透过程中的最最入门的一部分,也可以说是先行军。通常某些常用端口提供的服务存在一些已经被发现的漏洞,比如21端口ftp服务,22端口的ssh服务,以及去年大规模爆发的勒索病毒锁利用的445端口、135端口以及137-139端口,当然更多的漏洞还未被披露出来。
    如果需要做渗透,首先得知道目标主机到底提供了哪些服务,然后根据具体服务存在的已知漏洞进行攻击(特别是一些低版本的服务,很多已知漏洞并未被修复)。因此,首先进行端口扫描是很有必要的。当然,目前其实也有不少成熟的端口扫描工具,甚至可以测出是否存在某些漏洞,如弱口令等。但是,自己写出来的比用工具更为有成就感哦。

    正式开始

    今天的内容我们主要用python来实现,相对来说,python的库更为丰富,很多时候只是为了实现某种目的而不在意运行效率的话,python可以算是较优的选项了,今天主要实现对目标主机的开放端口的检测,python只需要三个函数,短短四十多行就可以完成。
    程序首先从main函数开始:

    def main():
        parser = optparse.OptionParser("usage%prog -H <target host>")
        parser.add_option("-H", dest="targetHost", type="string", help="specify the host")
        (options, args) = parser.parse_args()
        targetHost = options.targetHost
        if targetHost is None:
            print "illegal args"
            exit(0)
        else:
            scan(targetHost)
    

    这里实现的其实非常简单,本质是利用optparse库来接收参数并调用scan函数来执行具体的扫描任务。
    然后来看看具体scan函数做了什么内容:

    def scan(host):
        try:
            targetIp = gethostbyname(host)
        except:
            print 'cannot resolve '+ host
            return
        try:
            targetName = gethostbyaddr(targetIp)
            print 'targetName is '+ targetName[0]
        except:
            print 'scan result for '+ targetIp
    
        for port in range(1, 65536):
            print "scanning port %d " %port
            scanCore(host, port)
    

    在scan函数里,我们主要实现了对host的解析,如果发现是无效域名,则不继续执行,如果是有效的,则针对1到65535的端口进行扫描,具体针对某个端口是否开放用的是scanCore进行确认——实际上,这里端口范围可以根据自己的需求来调整。

    def scanCore(host, port):
        try:
            sock = socket(AF_INET, SOCK_STREAM)
            sock.settimeout(3)
            sock.connect((host, port))
            print "%d port opened" % port
            sock.close()
        except:
            print "%d port not opened" %port
    

    在scanCore中,实质是利用socket对该主机的该端口进行连接,如果连接成功则意味着该端口为开放状态;如果超时或者连接失败,则判定为该端口并未开放。

    总结

    代码非常简单,实现的功能也非常简单,可以说是一个初级版本。实际上,另外还有很多方式可以来对端口进行测试,比如telnet。


    欢迎小伙伴与我讨论哦~

    邮箱:zsunny@yeah.net

    本文欢迎转载,请注明本文地址:https://blog.csdn.net/m0_37595562/article/details/84586908

    展开全文
  • 无需安装。一款不错的端口扫描工具,运行在windows上,无毒小巧的软件。
  • 常见端口扫描原理总结

    千次阅读 2018-05-26 16:04:34
    转载修改自: https://blog.csdn.net/whatday/article/details/455049610. TCP的三次握手上图是wirkshark抓到的tcp三次握手的过程,符合第一张图描述的过程,首先主机81向88发送同步指令SYN(具体包见上上图,flags中...

    转载修改自:  https://blog.csdn.net/whatday/article/details/45504961

    0. TCP的三次握手



    上图是wirkshark抓到的tcp三次握手的过程,符合第一张图描述的过程,首先主机81向88发送同步指令SYN(具体包见上上图,flags中SYN置位),主机88收到请求后,置位SYN,描述该包为同步包,ACK标识该包为回应包,

    主机81收到88的回应后通知上层已经建立好连接,seq(Sequence number)字段强调这个包是我发送给你的第几 个包。ack字段强调描述: 我已经收到之前你发送的seq=y个数目的数据包,我期待下一个是y+1个序列的数据包,那么下一个你发给我的数据包seq应该是y+1。

    主机88收到81的回复后,告诉上层建立好了TCP连接,可以按双方约定好的参数进行数据传输。

    1.扫描方式分析

    因为没有包含TCP3次握手建立连接,所以日志系统不记录相关信息,秘密扫描类型有:TCP FIN扫描,TCP ACK扫描,NULL扫描, XMAS扫描, SYN/ACK扫描。

    1. TCP connect扫描

        该扫描client和server建立tcp连接,完成三次握手后,client主动关闭连接。server日志会记录下连接的内容。

    2. SYN扫描

       置位SYN标识flag,发送同步包,因为没有建立连接,所以扫描目标不会有任何记录。

       若端口开放, 扫描器收到 SYN/ACK 标识回复。

       若端口关闭, 扫描器收到 RST 标识回复。

    3. NULL扫描

        数据包flags标识位全都不设置,

       若扫描主机是windows系统,不管端口开放情况,都会回复RST包。

       若扫描主机是linux系统,若端口开放,则不回复。 若端口关闭,则回复RST包。可以探测操作系统。

    4. FIN扫描

        FIN标识符置位,表示释放TCP会话。

       若端口开放, 目标主机不回复。

       若端口关闭, 目标主机回复RST。

    5. ACK扫描

       扫描主机向目标主机发送ACK标识包,从返回信息中的TTL值得出端口开放信息。

    6. Xmas扫描

       同时置位URG/PSH/FIN,该方法和null扫描一样,无法判断windows系统的端口开放情况(Linux下收到该形式的数据包若端口开放会不回复),但是windows不管端口开放如何均会回复。

        















    展开全文
  • 端口扫描详解(kali linux)

    万次阅读 2018-09-10 12:21:37
    nmap 是被专业人员广泛使用的一款端口扫描工具,使用灵活,它已经是渗透人员必备的工具。还具备以下功能 (1)主机探测:Nmap 可查找目标网络中的在线主机。默认情况下,Nmap通过4方式———ICMP echo 请求(ping)...

    简介

    nmap 是被专业人员广泛使用的一款端口扫描工具,使用灵活,它已经是渗透人员必备的工具。还具备以下功能

    (1)主机探测:Nmap 可查找目标网络中的在线主机。默认情况下,Nmap通过4方式———ICMP echo 请求(ping)、向 443 端口发送 TCP SYN 包、向80 端口发送 TCP ACK包和ICMP 时间戳请求——发现目标主机。

    (2)服务/版本检测:在发现开放端口后,Nmap 可进行进一步检查目标主机的检测服务协议、应用程序名称、版本号等信息。

    (3)操作系统检测

    (4)网络路由跟踪:它通过多种协议访问目标主机的不同端口,以尽可能访问目标主机。Nmap路由跟踪功能从TTL的高值开始测试,逐步递减,到零为止。

    (5)Nmap脚本引擎:如果你想要实现这个功能,可以利用他的脚本引擎手写一个检测脚本。目前,Nmap可检查网络服务的漏洞,还可以枚举目标系统的资源。

    kali Linux安装

    apt-get update

    apt-get install nmap

    1.指定扫描目标

    (1)单个主机如  nmap 10.29.1.113

    (2)以CIDR标记法表示整个网段 如 nmap 10.29.1.0/24 

    (3)十进制的IP区间如 nmap 10.29.1-5.1 表示4个网段的IP

    (4)多个主机目标10.29.1.1 10.29.3-5.1

    ps: nmap 仅支持标准格式的IPv6地址和以主机名方式指定的IPv6主机地址

    现在进行扫描10.29.1.0/24 整个网段。 抓取一下数据包如图

    表示确实有流量的流经。

    根据以上的信息可以得知,我们的主机从44587端口向目标主机的443端口(https)发送含有SYN标识位的数据包。默认情况下,在Kali Linux 里以root身份启动 Nmap后,程序发送的数据包都会设有SYN标识

    再看看 扫描后得到的一小段信息(信息很多,这里随便选两个解释)

    上面扫描了整个网段的ip,扫描了1000个10.29.1.23 这个主机的端口,全是关闭的。

    下面的 999个关闭只有一个打开。(原谅一下我的打码,毕竟是别人的隐私,嘿嘿)

    2. TCP 扫描  

    默认情况下Nmap会采用 TCP SYN 扫描。权限不足的情况下进行TCP连接扫描。主要扫描方式如下:

    TCP 连接扫描  (-sT),和所有端口建立三次握手,比较慢,而且会被目标记录。权限不足时默认此方式。

    SYN 扫描 -sS)使用SYN标志位的数据包进行端口探测,速度非常嗨皮,不会建立三次握手,隐蔽,高级权限下默认此方式。

    TCP NULL (-sN) FIN、(-sF)、XMAS(-sX)扫描

    TCP Maimon 扫描 (-sM)含有 FIN\ACK 标识,如果端口开放则丢弃数据包,如果关闭则回复 RST

    TCP ACK 扫描(-sA)检测目标是否采用防火墙,并且能确定哪些端口能被防火墙屏蔽,只有一个ACK标识

    TCP 窗口扫描(-sW)返回字段 ,开放为正值,否则为0.

    TCP Idle扫描(-sI)采用这种技术后,通过指定的僵尸机发送扫描数据包,本机不与目标主机直接通信。如果对方网络里有IDS,IDS将认为发起扫描的是僵尸主机。

    3.UDP扫描选项

    UDP仅有一种扫描方式(-sU),虽然没有TCP方式的可靠度高但是不能轻视,毕竟UDP端口代表着可能会有价值的服务端程序。

    UDP扫描最大的问题是性能问题,Linux内核限制1秒最多发送一次 ICMP Port UNreachable信息,按照这个速度,对一台主机的65536个UDP端口进行完整的扫描必定超过18个小时。

    改善速度的主要方式:

    (1)进行并发的UDP扫描

    (2)优先扫描常用端口

    (3)在防火墙后面扫描

    (4)启用 --host-timeout 选项跳过响应过慢的主机

    假如我们需要找到目标主机开放了哪些UDP 端口。仅扫描53(DNS)和161端口(SNMP)如下

      nmap  -sU 10.29.133 -p 53,161

    4.目标端口选项

    默认情况下,Nmap将从每个协议的常用端口中随机选择1000个端口进行扫描。其nmap-services 文件对端口命中率进行了排名。如需更改配置,可使用以下几个选项。

    (1)-p 端口范围 -p 1-1024

    (2)快速扫描  -F 仅将扫描100常用的端口

    (3)-r 顺序扫描 从小到大顺序扫描

    (4)-top-ports <1 or greater> 扫描nmap-services 里面排名前N的端口。

    以NULL方式扫描目标主机的22 25 端口如下

    nmap -sN -P 22,25 10.19.1.133   如图

    捕获数据信息如下

    5.输出选项

    将扫描结果输出便于阅读

    nmap 10.29.1.26 -oX ~/Desktop/test.xml

    从上面结果看出 TCP协议下的 7800 端口是打开的

    查看

    HTML文件的可读性比XML要高,所以一般会将XML转换成HTML格式

    xsltproc ~/Desktop/test.xml  -o text.html  

    直接在桌面上点开就可以查看扫描结果如下

    如果端口开的多了可以用这种方法,它可以保存你每次扫描完后的结果以免丢失或者让你再次扫描。

     

    强力检测选项

    nmap -A ip   检测目标主机下述信息(时间较长),包含以下信息:

    检测服务端软件版本信息  nmap -sV ip

    操作系统 系统识别     nmap -O ip

    脚本扫描    -sC

    Traceroute --traceroute  

    6.脚本引擎

    auth            使用暴力破解等技术找出目标系统的认证信息

    default        启用 -sC或者 -A 执行。速度快,输出内容丰富,不会侵入目标系统,能泄露信息给第三方

    discover      用于探索网络

    dos              拒绝服务攻击

    exploit         利用目标系统的安全漏洞(获取许可之后进行) 

    external       可能泄露信息给第三方

    instrusive     导致目标系统崩溃,或者耗尽目标系统所有资源

    fuzzer           对目标系统进行测试

    malware       检查目标系统上是否有恶意软件或者后门

    safe               不会导致崩溃、拒绝服务且不利用漏洞

    version        配合 -sV 选项,对目标的服务程序深入版本检测

    vuln            检测目标系统的安全漏洞

    在 kali 里,脚本位于/usr/share/nmap/scripts.共 430 多个脚本。

    7.规避检测

    -f (使用小数据包)避免对方识别出我们探测的数据包

    -mtu 调整数据包大小,必须是8的倍数,否则报错

    -D   诱饵  这个选项指定假ip,使用之后扫描的时候回掺杂其他的ip,以藏木于林的方法隐藏我方ip,也就是说对方的log还会记录本机的真实ip,你也可以使用RAD生成随机的假IP地址,或者用 RND: number 的参数生成<number>个ip。你所指定的诱饵主机应当在线,否则很容易击溃目标主机。另外过多的诱饵可能会造成网络拥挤,尤其是在扫描网络的时候,最好避免这种现象。

    --source-port<portnumber> 或 -g (模拟源端口)如果防火墙只允许某些源端口的入站流量,这个选项就非常有用

    --date-length  改变数据包的长度与,避免被识别。

    --max-parallelism  限制Nmap的并发扫描的最大连接数

    --scan-delay <time> 控制探测数据时间间隔。

    展开全文
  • 五款优秀的端口扫描工具

    万次阅读 2016-11-12 10:41:12
    端口扫描器是一种检测服务器或主机虚拟端口是开启或关闭的工具。端口允许同一台计算机上的不同应用程序同时共享网络资源。连接本地局域网或互联网的计算机运行着许多不同服务,它们监听着常用或不常用的端口。端口数...

    端口扫描器是一种检测服务器或主机虚拟端口是开启或关闭的工具。端口允许同一台计算机上的不同应用程序同时共享网络资源。连接本地局域网或互联网的计算机运行着许多不同服务,它们监听着常用或不常用的端口。端口数的范围从0到65535,0到1023的端口数最常用,它们中有许多是为FTP、SSH、HTTP、telnet、DNS和NNTP等服务保留的,1024到49151端口是注册端口,49152到65535则分配给动态或私人端口。Linux上有很多端口扫描器,帮助系统管理员识别和纠正系统漏洞。

    Linuxlinks 的这篇文章列出了五款优秀的端口扫描器,供感兴趣的管理员和用户参考。

    它们包括:

    1. Nmap

    Nmap 是一款用于网络浏览或安全审计的免费开源工具。

    2. Unicornscan

    Unicornscan 是一个新的信息收集引擎,主要用于安全研究和通讯测试,主要特点是精确、灵活而且高效。

    3. Zenmap

    ZenMap是安全扫描工具NMap的一个官方的图形 用户界面,是一个跨平台的开源应用,不仅初学者容易使 用,同时为高级使用者提供了很多高级特性。频繁的扫描能够被存储,进行重复运行。命令行工具提供了直接与NMap的交互操作。扫描结果能够被存储便于事后 查阅。存储的扫描可以被比较以辨别其异同。最近的扫描结果能够存储在一个可搜索的数据库中。一个典型的ZenMap界面截图如图12.1所示。

    4. nast

    Network Analyzer Sniffer Tool (nast) 是一个网络包嗅探和局域网分析工具,基于 libnet 和 libpcap 开发。

    5. Knocker

    Knocker 是一个简单易用的 TCP 端口扫描工具,采用 C 语言编写,用于分析主机上运行的服务。

    展开全文
  •  端口是个网络应用中很重要的东西,相当于“门”。 二 什么是端口  端口在计算机网络中是个非常重要的概念,他不是硬件,不同于计算机中的插槽,可以说是个软插槽。如果有需要,一台计算机中可以由上万个端口。...
  • 端口扫描 - nc - 全链接扫描

    千次阅读 2019-12-21 20:41:12
    nc 在众多强大的功能中,也有端口扫描,主要的参数有以下几个: 其中 n 参数作用是跟 ip 地址,不做 dns 域名解析,可以加快速度。v 参数是显示详细信息。z 参数就是扫描模式,默认就是 tcp 全链接扫描。w 参数是...
  • 端口扫描

    千次阅读 2016-08-25 21:22:49
    首先说说这个端口,一个开放的端口就是一条计算机进行通信的虚拟信道,通过对端口扫描可以得到目标计算机开放的网络服务程序,一般可以使用软件Nmap来进行端口扫描。 先来说说这个网络端口,网络端口是在传输层...
  • nmap 扫描主机端口(谨慎使用)

    万次阅读 多人点赞 2019-02-25 14:18:11
    nmap [扫描类型] [扫描参数] [hosts 地址与范围] 扫描类型 -sT TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。 -sS TCP 同步...
  • 今天碰到一个坑,写了一个http的服务程序,例子是跑的3456和8080端口,一直都是ok的,可是公司的端口限定只能用80端口,突然之间服务就无法启动了。 一整天的查原因发现,ubuntu给非root权限的客服并未开放1024以下...
  • 使用nmap扫描全部65535端口

    万次阅读 2018-07-23 10:03:49
    nmap -sS -p 1-65535 -v 192.168.1.254 参数: -sS TCP SYN扫描 nmap -sS 192.168.1.254 -P 指定端口扫描 nmap -sS -P 1-65535 192.168.1.254 -V 详细信息 nmap -V -sS 192.168.1.254...
  • nmap命令扫描开放端口

    万次阅读 2019-06-14 18:56:11
    场景1: 使用树莓派但是没有显示器,这时候把树莓派接入局域网,通过使用nmap命令扫描局域网内的所有开放端口,分析扫描信息,从而得出树莓派的局域网ip,这时候就可以通过ip连上树莓派了 场景2: nmap常被黑客用于...
  • 防火墙如何阻止端口扫描

    万次阅读 2014-05-16 17:14:11
    防火墙如何阻止端口扫描
  • TCP,UDP端口扫描的实现形式

    万次阅读 2018-04-26 10:31:32
    1. TCP,UDP端口扫描的实现形式(1) 端口扫描端口扫描时主动连接到目标系统的TCP和UDP端口,以确定在目标系统上哪些服务正在运行,或者哪些服务处于监听状态的过程(2) SYN扫描:双方并没有建立起一条完整的...
  • 1. 扫描局域网内的机器 nmap -sP 192.168.1.0/24 nmap -sS 192.168.1.0/24 2.扫描指定机器的端口开放 nmap -sS 192.168.1.61 -p 1-65535
  • 如何对udp端口进行扫描

    万次阅读 2008-11-26 08:57:00
    由于UDP协议是非面向连接的,对UDP端口的探测也就不可能像TCP端口的探测那样依赖于连接建立过程(不能使用telnet这种tcp协议类型命令),这也使得UDP端口扫描的可靠性不高。所以虽然UDP协议较之TCP协议显得简单,...
  • 使用namp扫描端口

    万次阅读 2016-01-15 10:19:08
    (1)扫描指定的端口 nmap -n --open -p 11211 X.X.X.X/24 (2)扫描指定网段的远程桌面连接端口 nmap -sT -p3389 218.206.112.0/24 (3)使用nmap来扫描端口UDP  nmap -sU 202.96.128.86 -p 53...
  • 基于java的局域网端口扫描工具

    万次阅读 2019-07-30 21:26:17
    运行环境: 运行环境:jdk 1.8 ...本局域网端口扫描程序基于java构建的, 可以实现局域网扫描多台计算机,并可以保存扫描结果进文件。 截图如下: 首页的图片 扫描 获取源码联系:397649407,加好友发送源码。 ...
  • UDP 端口扫描 - Nmap

    万次阅读 2019-12-21 20:48:13
    nmap 在二层做主机发现时使用的参数是 sn(ping 扫描,不做端口扫描)。在三层做主机发现时也是使用的 sn 参数,这里二三层都用的 sn 参数,而具体使用的是二层协议 arp 还是三层协议 icmp,判断依据是是否属于同一...
  • Nmap端口扫描的六种状态介绍

    万次阅读 2018-05-08 08:55:40
    Nmap是一种用来发现网络中主机和服务的安全扫描工具,从而能够产生一个网络“地图”,为了完成这个功能,nmap会向每个目标主机发送特定的报文,从而从目标主机返回报文(或者无返回报文)来判断目标主机的属性(如:...
1 2 3 4 5 ... 20
收藏数 122,781
精华内容 49,112
关键字:

端口扫描