zoukankan      html  css  js  c++  java
  • python信息收集(一)

        在渗透测试初期,需要进行大量的信息收集。一般情况下,信息收集可以分为两大类————被动信息收集和主动信息收集。
        其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站长工具、Google hack等。这类信息收集的特点是不与目标系统产生直接的交互,从而避免留下痕迹,但带来的缺点就是收集的信息可能是一些过时的信息,不够准确。
        相反,主动信息收集是与目标系统进行直接的交互,进而得到更为准确的及时信息。例如:AWVS、Appscan等漏洞扫描工具对目标站点进行的扫描。但不可避免的就是可能会在目标系统中留下痕迹,可能会被封杀。
        在利用python来进行信息收集,主要是体现在了主动信息收集方面。
        在主动信息收集中,主要内容是主机发现、端口扫描、指纹识别。
        在主机发现部分,主动信息收集主要是通过扫描来实现的,其中扫描是可以在不同的网络层次中实现,包括数据链路层主机发现、网络层主机发现和传输层主机发现。
        下面先介绍二层主机发现。
        主机发现,顾名思义,就是确定一个IP范围内存活的主机,找到潜在攻击的目标。二层主机发现主要利用的协议是ARP协议,主要用于在内网中进行探测,发现与攻击者在同一个网段内的主机。二层的主机发现,一般扫描速度都很快,并且可靠性较高,因为即便是安装了安全软件,安全软件都是默认没有防御ARP攻击的。
        在Kali中,我们只要执行arping命令,就可以对外发送ARP响应包来进行主机的探测了,只要我们收到响应,即可判断对方主机在线。
        我们要用到的python第一个模块,是subprocess模块,subprocess模块可以用来创建一个子进程,并且运行一个外部的程序。一般使用subprocess模块中的check_output()方法来调用系统命令。
        如下:

        上面是调用python模块实现的单个语句判断主机是否在线,如果使用python脚本来实现的话,如下所示:

    代码如下

    import subprocess
    import sys
    import time
    from threading import Thread
    
    def arping(ip):
        try:
            subprocess.check_output('arping -c 1 ' + str(ip),shell=True)
            time.sleep(0,1)
            print ip,'在线'
            return 
        except:
            return
            
    def main():
        host = str(sys.argv[1]).strip()
        addr=host.split(".")[0]+"."+host.split(".")[1]+"."+host.split(".")[2]+"."
        for i in range(1,255):
            ip = addr + str(i)
            t=Thread(target=arping,args=(ip,))
            t.start()
            
    if __name__=='__main__':
        main()
    
    
    
  • 相关阅读:
    java爬取Excel表格
    drf-view
    django--View
    tornado的Application的一些事儿
    tornado的路由分发
    线程和asyncio的比较
    GIL
    else的使用
    协程
    生成器代替迭代器
  • 原文地址:https://www.cnblogs.com/ricardojxu/p/12777560.html
Copyright © 2011-2022 走看看