用户
搜索
  • TA的每日心情
    慵懒
    2019-3-13 09:11
  • 签到天数: 118 天

    连续签到: 1 天

    [LV.6]常住居民II

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    12

    主题

    221

    帖子

    1329

    魔法币
    收听
    0
    粉丝
    3
    注册时间
    2015-11-20

    白帽高手限定版春秋段子手i春秋签约作者

    发表于 2018-9-18 10:54:20 15923859

    0x00 前言

    很多时候在渗透一个比较大的目标时候,在前期信息收集过程中,我们会发现目标出口规模特别大,有一个或者多个C段甚至B段甚至更大。为了方便撕开口子,所以我们经常需要对目标出口段进行扫描。之前使用的中间件扫描器误报率太高,所以重构了下代码,实现利用网站转换IP,在进行C段端口收集。

    0x01 扫描运用到的模块

    1.安装python3.7工具。

    python官方网站:https://www.python.org

    2.安装nmap工具

    2.1首先yum下载安装一个nmap

    yum -y install nmap

    2.2在安装python3的模块,这里python3是我自定义的一个变量,可以在环境下自行设置

    python3 -m pip install nmap

    3.模块源码安装

    3.1远程下载nmap模块

    wget http://xael.org/pages/python-nmap-0.6.1.tar.gz

    3.2解压nmap模块

    tar -zxvf python-nmap-0.6.1.tar.gz

    3.3进入nmap模块

    cd python-nmap-0.6.1

    3.4安装nmap模块

    python3 setup.py install

    4.安装运用到模块

    4.1安装socket模块

    python3 -m pip install socket

    4.2安装命令行解析接口

    python3 -m pip install optparse

    4.3安装多线程模块

    python3 -m pip install threading

    ##0x02 源代码
    # coding:utf-8
    import threading
    import sys
    
    import socket
    import nmap
    
    import time
    import optparse
    from queue import Queue
    
    event = threading.Event()
    event.set()
    q = Queue(-1)
    
    class multi_thread(threading.Thread):
        def __init__(self,num,q):
            threading.Thread.__init__(self)
            self.num = num
            self.q = q
    
        def run(self):
            while event.is_set():
                if self.q.empty():
                    event.clear()
                else:
                    ip = self.q.get()
                    self.ip_port(ip)
    
        def ip_port(self, ip):
            host = self.www_ip(ip)
            if host:
                iplist = host.split('.')
                for i in range(1, 255):
                    try:
                        ip = str(iplist[0])+str('.')+str(iplist[1])+str('.')+str(iplist[2])+str('.')+str(i);
                        if self.nmaps(ip, 80) or self.nmaps(ip, 443):
                            self.save(ip)
                        time.sleep(0.5)
                    except Exception as e:
                        print(e)
    
        def www_ip(self, url):
            try:
                result = socket.getaddrinfo(url, None)
                return result[0][4][0]
            except:
                return False
    
        def nmaps(self,tgtHost,tgtPort):
            nmScan = nmap.PortScanner()
            try:
                result = nmScan.scan(tgtHost,str(tgtPort))
                state = result['scan'][tgtHost]['tcp']
                if state[int(tgtPort)]['state'] == 'open':
                    return tgtHost
                else:
                    return False
            except Exception as e:
                return False
    
        def save(self, ip):
            with open('successs.txt', 'at') as f:
                f.writelines(ip + '\n')
    
    def scan_thread(thread_num):
        threads = []
        for num in range(1,thread_num+1):
            t = multi_thread(num,q)
            threads.append(t)
            t.start()
        for t in threads:
            t.join()
    
    def get_ip(path):
        with open(path, 'rt') as f:
            for ip in f.readlines():
                q.put(ip.strip())
    
    if __name__ == '__main__':
        parse=optparse.OptionParser(usage='"Usage:%prog --path <path> --thread <thread>"',version="1.0")
        parse.add_option('-p','--path',dest='path',type=str,help='Please enter the URL file address.')
        parse.add_option('-t','--thread',dest='thread',type=int,default=100,help='Please enter the thread number.')
        parse.add_option('-v',help='Domain name conversion IP scan C segment!!')
        options,args=parse.parse_args()
        if options.path == None or options.thread == None:
          txt = '''
            Chinese Preview:
              -p 请输入你要扫描的url文件
              -t 请输入你要扫描线程数
              -v 查看版本
            Overseas Preview:
              -p Please enter the URL file address.
              -t Please enter the thread number.
          '''
          print(txt)
          exit(0)
        else:
            get_ip(options.path)
            scan_thread(options.thread)

    好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下
    使用道具 评分 举报 回复好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六
    使用道具 举报 回复


    好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下
    使用道具 评分 举报 回复好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六
    使用道具 举报 回复

    好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下
    使用道具 评分 举报 回复好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六
    使用道具 举报 回复
    好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下
    使用道具 评分 举报 回复好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六
    使用道具 举报 回复
    发表于 2019-9-10 16:46:20
    好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下
    使用道具 评分 举报 回复好想给你一堆六,但是似乎ichuqiu杜绝这种
    使用道具 举报 回复
    真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的真棒棒棒的
    使用道具 举报 回复
    是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你一堆六,但是似乎ichuqiu杜绝这种方式,所以水水的回复一下好想给你
    使用道具 举报 回复
    发表于 2018-9-23 20:16:49
    初来乍到01 发表于 2018-9-21 22:37
    我还停留在python2.7呢,看来得赶紧看python3了

    学python3把  现在都流行了
    使用道具 举报 回复
    水水水
    使用道具 举报 回复
    居然是用nmap模块  
    使用道具 举报 回复
    发表于 2019-8-29 22:10:59
    水一水嘿嘿,写的很溜
    使用道具 举报 回复
    666666666666666666666666666
    使用道具 举报 回复
    111111111111111111111
    使用道具 举报 回复
    。。。。。。。。。。
    使用道具 举报 回复
    发表于 2019-8-27 12:14:00
    牛逼学习学习
    使用道具 举报 回复
    发表于 2019-8-21 15:05:36
    多谢大佬分享
    使用道具 举报 回复
    受教了特色test Estes特test
    使用道具 举报 回复
    学python3把  现在都流行了
    使用道具 举报 回复
    路过围观,学习
    使用道具 举报 回复
    您需要登录后才可以回帖 登录 | 立即注册