zoukankan      html  css  js  c++  java
  • Kali学习笔记10:端口扫描详解(下)

    上一篇先是介绍了UDP的端口扫描,又谈了TCP的不完全连接端口扫描

    https://www.cnblogs.com/xuyiqing/p/9389276.html

    接下来我们看看TCP的全连接端口扫描:

    SYN扫描在网络环境非常复杂的情况下,无法正常工作,于是我们可以使用全连接扫描

    即完整地建立三次握手

    由于全连接,那么扫描结果相当准确,但是隐蔽性最低,容易被发现

     具体的实现和上文介绍的不完全连接类似:

    这里直接放脚本:

    tcp_scan1.py:

    这里简化下脚本,我明确知道要扫描的IP和端口:

    #!/usr/bin/python
    import logging
    
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import *
    
    response = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="S"))
    reply = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="A", ack=(response[TCP].seq + 1)))

    写好之后直接执行即可:

    我们可以抓包来看:

    这里前两个包正常发送接收,第三个RST包是Linux内核自动发送的RST,要中断连接

    第四个包:强行发送ACK建立连接,最后一个包直接回RST因为要拒绝"莫名其妙"的连接

    于是我们可以发现:这里并不是正确的一个三次握手的过程,因为操作系统内核的自动中断连

    接下来,修改得到一个相对完善的脚本:

    tcp_scan2.py:

    #!/usr/bin/python
    import logging
    
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import *
    
    SYN = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="S"))
    
    print("- -SENT- -")
    SYN.display()
    
    print("
    
    - -RECEIVE- -")
    response = sr1(SYN, timeout=1, verbose=0)
    response.display()
    
    if int(response[TCP].flags) == 18:
        print("
    
    - -SENT- -")
        A = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="A", ack=(response[TCP].seq + 1)))
        A.display()
        print("
    
    - -RECEIVE- -")
        response2 = sr1(A, timeout=1, verbose=0)
        response2.display()
    else:
        print("SYN-ACK NOT RETURNED")

     至于这里的flags==18在上文中已经说过

    如果脚本是从windows移过来的:

    vi tcp_scan2.py

    :set fileformat=unix

    :wq

    chmod u+x tcp_scan2.py

    ./tcp_scan2.py

    运行抓包发现还是存在着上边提到的问题而无法建立连接:

    Linux操作系统内核自动回复的RST包中断连接

    那么有没有方法能解决呢?

    有的,直接配置IPTABLES:对于特点IP禁用出口RST

    这时候执行发现建立了三次握手

    我们发现拐了这么多弯才能够实现一个全连接扫描

    有没有简单点的方式呢?有的,使用强大的Nmap:

    -sT参数

    直接输入ip效果是扫描1000个默认端口

    指定范围端口也可以:

    可以发现,速度是非常的快的,结果也比较完善

    除了强大的Nmap,还有一些其他的工具,比如:

    这个工具只能实现一些功能,相比于Nmap,优劣显而易见

    还有一个小工具,也可以了解下:

    还有一种奇妙的方式:僵尸扫描,不过很复杂,在下一篇专门介绍

    端口扫描就介绍到这里,扫描完端口,接下来就是针对端口的服务扫描,将在后边介绍

  • 相关阅读:
    模拟_大数字符串(HDU_2054)
    DP_字串匹配(HDU_1501)
    动态字典树_字串标记查找+大数(HDU_4099)
    动态字典树_字串查找匹配(HDU_1075)
    动态字典树+DFS(HDU_1298)
    动态字典树_拆分查找(HDU_1247)
    动态字典树_统计前缀子串(HDU_1251)
    动态字典树_统计子串(HDU_2846)
    字典树讲解
    HTML5语义标签的实践(blog页面)
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/9640125.html
Copyright © 2011-2022 走看看