渗透篇19-主动信息收集--主机发现(发现存活的IP)

一、主动信息收集是什么意思?

        


二、发现阶段--识别网络里活着的主机

 1、二层发现:数据链路层,对arp协议抓包,(路由器一般不转发arp协议包)

                    

工具使用--arping

        a、桥接网络+修改ip

            vi /etc/network/interfaces

                    

                                      

            dhclient eth0

                   

                    

         b、命令使用

             arping IP -c 1            #指定测试一个arp包

                        

                        

            arping IP -d            #发现重复的响应,不同的mac地址具有相同的IP,arp欺骗
            arping 192.168.0.1 -c 1 | grep "reply from" | cut -d " " -f 4

                    ps:-d接截取字段,-f接分段内容               

                

        c、脚本

      
                                                                          

        

        

工具使用--nmap

        nmap -sn 192.168.0.0/24        主机存活状态扫描(arping1.sh)

        nmap -iL addr.txt -sn               调用地址列表

                    

工具使用--Netdiscover

        主动:容易差法报警

                netdiscover -i eth0 -r 192.168.0.0/24

                netdiscover -l addr.txt

        被动:混杂模式,默默侦听

                ntdicover -p

工具使用--Scapy:作为python库进行调用,用于抓包、分析、修改

        apt-get install python-gnuplot

        ARP().display()

        

        对应包头结构如下       

         

          变量定义、调用、赋值

            

            发包、回包

            

            

2、三层发现--探测存活主机

            

a、ping

       ping 192.168.0.1 -c 1        //指定发包数目为1

         

         

b、traceroute/ping -R

         

         

            ps:***边界防护

          

          

        ps:基于没经一跳TTL值减一,发现路由

        

        ps:ping -R 返回外网口地址,traceroute 返回内网口地址

c、脚本

    

    

    


3、四层发现--通过识别IP是否在线

        

基于TCP:

a、直接发ack包 

                

                

                

                

                 

b、修改目标端口

                 

                 

ps:只要目标IP存在,就返回一个reset

c、目标IP不存在

                

                

ps:无响应包

d、过滤ack包的情况,路由器的功能

                

    ps:重设路由器上不存在的端口

                

                

ps:无响应,无法判断主机是否在线,需要通过其他方式判断

ps:一般规律,发ACK,响应reset,判断为在线;不给响应,判断为不在线

ps:flags标签

                

ps:可写脚本:a=sr1(IP(dst="192.168.0.1")/TCP(dport="80",flags="A"),timeout=1)

                

e、脚本

                

                

基于UDP:

        ps:发送udp包,目标IP存活,端口未开放,会返回端口不可达的包;其它情况下一去不复还;基于目标主机返回ICMP不可达判断在线与否

    a、IP存在

                 

                

b、IP不存在

                

                

c、脚本

                     


        

        ps:proto=1,为icmp包,收到响应粗略表示活着


基于Nmap

nmap 1.1.1.1-254 -PU53 -sn           基于UDP协议的53端口扫描

                

               

            

nmap 1.1.1.1-254 -PA80 -sn            基于ACK扫描

              

           

 ps:端口自定义,-sn表示不做端口扫描,只做四层主机发现(ping)

nmap 1.1.1.1-254                    基于nmap主机发现+端口扫描

        

   ps:主机发现常用参数

        -PS        基于syn包

        -PY        基于SCTP协议

        -PE        基于ICMP ping包

        -PP        基于时间戳

        -PM        基于请求目标IP的netmask

        -PO        基于IP协议的ping

          

         


基于hping3

hping3  --udp 192.168.1.138 -c 1

        

ps:反回错误信息,判断为存活


脚本--UDP_hping.sh

    

    

脚本--TCP_hping.sh






ps:无flags状态,即flag=0,如果目标IP返回ACK+RESET,判断为存活



猜你喜欢

转载自blog.csdn.net/qq_38055050/article/details/80141716
今日推荐