zoukankan      html  css  js  c++  java
  • python安全编程之c段扫描器

    该脚本主要针对网站c段进行扫描,我们在进行渗透测试的时候,一般功能少或者安全防护做的比较好的网站很难进行渗透,我们可以将目标放在他的c段上,看看同段的其他服务器搭载了一些什么业务,方便我们可以更好地进行渗透。

    我们使用python编写这个脚本,设计方法是使用requests库+多线程,首先对段内存活ip进行探测,确定存活ip后,再对这些ip的端口进行请求,探测是否存在服务,如果有服务就返回存在,无的话就报无。

    import requests
    
    import threading
    
    import queue
    
    import sys
    
    import ipaddr
    
    
    
    class PortScan(threading.Thread):
    
        def __init__(self,queue):
    
            threading.Thread.__init__(self)
    
            self._queue = queue
    
            self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',}
    
        def run(self):
    
            while True:
    
                if self._queue.empty():
    
                    break
    
                try:
    
                    ip = str(self._queue.get(timeout=5))
    
                    url = 'http://' + ip
    
                    r = requests.get(url=url,headers=self.headers,timeout=5)
    
                    status = r.status_code
    
                    if status:
    
                        sys.stdout.write("%-27s
    " % (url))
    
                except Exception:
    
                    pass
    
    def main():
    
        if len(sys.argv) != 2:
    
            print ('Usage: python %s 192.168.1.1/24'%(sys.argv[0]))
    
        else:
    
            threads = []
    
            threadnum = 250        #线程数
    
            queue = queue.queue()
    
            cidrip = sys.argv[1]      #接收输入IP段
    
            ips = ipaddr.IPNetwork(cidrip)
    
            for ip in ips:
    
                queue.put(ip)
    
            for i in range(threadnum):
    
                threads.append(PortScan(queue))
    
            for t in threads:
    
                t.start()
    
            for t in threads:
    
                t.join()
    
            print ('ALL Finished!')
    
    if __name__ == '__main__':
    
        main()

    这个脚本还有很多可以拓展的地方,如可以增加user-agent,或者可以使用字典对探测存活的端口的服务进行确认,后续我们可以功能进行扩展,完善。

  • 相关阅读:
    视图中访问 路由参数
    视图中的Layout使用(转)
    js判断浏览器类型以及版本
    再关于IE11
    关于IE11
    js获取当前页面的网址域名地址
    contenteditable 属性
    HTMl5的sessionStorage和localStorage(转)
    c 数组做为形參时 该參数退化为指针
    汉诺塔-递归实现
  • 原文地址:https://www.cnblogs.com/lzlzzzzzz/p/13956264.html
Copyright © 2011-2022 走看看