主动信息收集

主动信息收集的原理

主动信息收集的特点

        1.直接与目标系统交互通信

        2.无法避免留下访问的痕迹

        3.使用受控的第三方电脑进行探测,使用代理或已经被控制的机器,做好被封杀的准备

        4.扫描发送不同的探测,根据返回结果判断目标状态

发现目标主机的过程

        1.识别存活主机,发现潜在的被攻击目标

        2.输出一个IP地址列表比如IP地址段IP地址范围

        3.使用二、三、四曾进行探测发现

OSI七层模型和TCP/IP五层模型

   OSI参考模型        TCP/IP模型                                  协议

        应用层

        表示层

        会话层                应用层                HTTP  Telnet  FTP  TFTP  DNS  SNMP

        传输层                传输层                         TPC                UDP

        网络层                网络层                        IP        ICMP        IGMP        RIP

        数据链路层         数据链路层         ARP  RARP  IEEE802.3  PPP  CSMA/CD     

        物理层                物理层                        

基于OSI模型进行扫描的优缺点

       1.二层扫描的优缺点

        优点:扫描速度快、可靠

        缺点:不可路由

        2.三层扫描的优缺点

        优点:可路由,速度较快

        缺点:速度比二层慢,经常被边界防火墙过滤

                使用IP、ICMP协议

        3.四层扫描的优缺点

        优点:可路由且结果可靠

                   不太可能被防火墙过滤

                    可以发现所端口都被过滤的主机

        缺点:基于状态过滤的防火墙可能过滤扫描

                   全端口扫描速度慢

基于ping命令的探测

Ping

        ping命令是我们常用的判断主机之间网络是否畅通,同样也是能判断我们的目标主机是否存活。

        Traceroute命令可以对路由进行追踪

ARPING

        arping 192.168.1.1 

提取有用信息:

        ┌──(root💀kali)-[~]
        └─# arping 192.168.1.1 -c 1 | grep "bytes from" | cut -d " " -f 5
        (192.168.1.1):
                                                                                      
        ┌──(root💀kali)-[~]
        └─# arping 192.168.1.1 -c 1 | grep "bytes from" | cut -d " " -f 5 | cut -d "(" -f 2
        192.168.1.1):
                                                                                      
        ┌──(root💀kali)-[~]
        └─# arping 192.168.1.1 -c 1 | grep "bytes from" | cut -d " " -f 5 | cut -d "(" -f 2 | cut -d ")" -f 1
        192.168.1.1

探测局域网主机,脚本执行:

        #!/bin/bash
        if [ "$#" -ne 1 ];then
            echo "请输入参数。"
            exit
        fi

        interface=$1
        prefix=$(ifconfig $interface | grep "inet " | cut -d 't' -f 2 | cut -d '.' -f 1-3)

        for addr in $(seq 1 254);do
            arping -c 1 $prefix.$addr | grep "bytes from" | cut -d ' ' -f 5 | cut -d '(' -f 2 | cut -d ')' -f 1
        done    

使用netdiscover进行被动方式探测局域网中存活的机器

主动模式:

        netdiscover -i eth0 -r 192.168.1.0/24

被动模式:

        netdiscover -p

HPING3

        hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source [target]

                -c1000 = 发送的数据包的数量

                -d 120 = 发送到目标主机的每个数据包的大小。单位是字节

                -S = 只发送SYN数据包

                -w 64 = TCP窗口大小

                -p 80 = 目的地端口

                --flood = 尽可能快的发送数据包。洪水攻击模式

                --rand-source = 使用随机性的源头IP地址。这里的伪造的IP地址,只是在局域网中伪造。通过路由器后,还会还原真实的IP地址。

FPING

使用FPING查看局域网中运行了哪些机器

        Fping就是ping命令的加强版它可以对一个IP段进行ping扫描,而ping命令本身是不可以对网段进行扫描的。

        fping -ag 192.168.1.0/24 >fping.txt

                -a        存活的主机

                -g        指定网段        -g [网络地址] / -g [起始地址] [结束地址]

基于Nmap的扫描方式

Nmap的基本扫描方式

        Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。

扫描192.168.1.0网段:

        nmap -sn 192.168.1.0/24        or        nmap -sn 192.168.1.1-254

                -sn 参数说明:表示只ping扫描,不进行端口扫描

使用nmap进行半连接扫描

nmap扫描类型主要有TCP的全连接 扫描(会在被扫描机器留下记录),半连接扫描(不会留下记录)

        nmap -sS [target] -p 21-25,80,81,100,443        

                -sS  表示使用SYN进行半连接扫描

使用nc扫描端口

nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。

nc的作用:

        1.实现任意TCP/UDP端口的侦听,nc可以c作为server以TCP或UDP方式侦听指定端口

        2.端口的扫描,nc可以作为client发起TCP或UDP连接

        3.机器之间传输文件

        4.机器之间网络测速

nc参数:

        -nv 表示我们扫描的目标是个IP地址不做域名解析

        -w 表示超时时间

        -z 表示进行端口扫描

        nc -nv -w 1 -z 192.168.1.6 1-65535

使用scapy定制数据包进行高级扫描

Scapy是一个可以让用户发送、侦听和解析并伪装网络报文的python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。

scapy定制ARP协议包

----------ARP().display()来查看ARP函数的用法----------

          hwtype= 0x1        硬件类型
          ptype= IPv4         协议类型
          hwlen= None        硬件地址长度(MAC)
          plen= None        协议地址长度(IP)
          op= who-has        who-has查询
          hwsrc= 00:50:56:29:6b:26        源MAC地址
          psrc= 192.168.1.5        源IP地址
          hwdst= 00:00:00:00:00:00        
          pdst= 0.0.0.0        目标IP地址

sr1函数:sr1函数包含了发送数据包和接收数据包的功能。

        sr1(ARP(pdst="[target]"))

scapy定制ping包

----------ICMP().display()来查看ICMP函数的用法----------

          type= echo-request        8:请求        0:回复
          code= 0        代码
          chksum= None        校验和
          id= 0x0        标识
          seq= 0x0

----------IP().display()来查看IP函数的用法----------

          version= 4
          ihl= None
          tos= 0x0
          len= None        总长度
          id= 1        标识
          flags= 
          frag= 0        标志
          ttl= 64        生存时间
          proto= hopopt        传输控制协议 IPv6逐跳选项
          chksum= None        首部校验和
          src= 127.0.0.1        源IP
          dst= 127.0.0.1        目标IP

IP()生成ping包的源IP和目标IP,ICMP()生成ping包的类型。使用IP()和ICMP()两个函数,可以生成ping包,进行探测。

        1.修改IP包头的dst,也就是我们的目标地址

        2.拼接上ICMP的数据包类型

        3.使用sr1()进行发送数据包并接受数据包

        sr1(IP(dst="192.168.1.1")/ICMP(),timeout=1)

scapy定制TCP协议SYN请求

----------TCP().display()来查看TCP函数的用法----------

          sport= ftp_data        TCP源端口
          dport= http               TCP目的端口
          seq= 0                     32位序号
          ack= 0                     32位确认序号
          dataofs= None        4位首部长度
          reserved= 0             保留6位
          flags= S                    标志域,    
          window= 8192        窗口大小
          chksum= None        16位校验和
          urgptr= 0                优先指针
          options= []                选项

        sr1(IP(dst="192.168.1.1")/TCP(flags="S",dport=80),timeout=1)

僵尸扫描

        僵尸主机:僵尸主机指的是一个闲置的操作系统(这里的闲置是指主机不会主动和任何人通信),且此系统中IP数据包中ID是递增的。

        IPDI:指的是通信过程中IP数据包中的ID

        僵尸扫描拥有极高的隐蔽特性,但是实施条件苛刻。

        僵尸扫描可以不拿到肉鸡权限,只要对方的IPID是自增长的就可以了。

僵尸扫描原理

1.端口开放状态扫描原理:

(1)攻击者向僵尸机发送SYN/ACK确认包。

(2)僵尸主机返回我们RST(关闭连接)数据包关闭连接,RST数据包中包含了IPID信息。假设IPID=X

        信息:得到僵尸主机的IPID

(3)攻击者修改IP包头的SRC字段为僵尸主机的IP,伪装成僵尸主机给目标发送SYN请求。

(4)目标收到请求,如果端口是开放的就会返回给僵尸主机一个SYN/ACK的数据包。

 (5)僵尸主机收到目标主机发来的SYN/ACK确认包,会同上返回给目标主机一个RST数据包。此时IPID值为X+1。

        信息:如果目标主机端口开放,则僵尸主机的IPID+1

(6)攻击者再次向僵尸主机发送SYN/ACK确认包

(7)僵尸主机同样向攻击者返回了一个RST数据包。此时IPID值为X+2

(8)攻击者查看僵尸主机返回的数据包中IPID值为X+2。

(9)攻击者对比在第一步中的IPID值X,发现增加了2。

        结论:目标主机与僵尸主机通信,说明目标主机端口是开放的。

使用nmap进行僵尸扫描

扫描网段内僵尸主机:

        nmap 192.168.1.0/24 -p1-1024 --script=ipidseq.nse >a.txt

        找到属性ipidseq:Incremental!的主机有可能作为僵尸主机。

nmap [target] -sI [僵尸机IP] -p1-100

        nmap 192.168.1.6 -sI 192.168.1.1 -p1-100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值