예제 #1
0
    def do_scan(self):
        '''
        scan process
        '''
        # start
        self.lock_thread_num.acquire()
        self.thread_num += 1
        self.lock_thread_num.release()
        # do loop
        while True:
            if self.APP_STOP == True:
                break
            target = self.__get_one_target()
            if target == None:
                break
            # scan target
            self.__print_progress('target:%s...' % target)
            if self.args.nmap:
                target_info = self.__do_nmap_one_target(target, self.args.port)
            else:
                target_info = self.do_scan_one_target(target, self.args.port)
            # show server info:
            if len(target_info) > 0:
                for ti in target_info:
                    info = ''
                    if self.args.nmap:
                        server_info = mongodb_check.get_mongodb_server_info(
                            ti[0], ti[1])
                        if server_info != None:
                            info = '%s:%d,%s' % (ti[0], ti[1], server_info)
                    else:
                        info = '%s:%d,%s' % (ti[0], ti[1], ti[2])

                    if info != '':
                        logging.info(info)
                        self.print_result('[+]' + info)
        # end
        self.lock_thread_num.acquire()
        self.thread_num -= 1
        self.lock_thread_num.release()
예제 #2
0
파일: scan.py 프로젝트: fybdhn/mongodb-scan
    def __do_scan(self):
        '''
        scan process
        '''
        # start
        self.__lock_thread_num.acquire()
        self.__thread_num += 1
        self.__lock_thread_num.release()
        # do loop
        while True:
            if self.__APP_STOP == True:
                break
            target = self.__get_one_target()
            if target == None:
                break
            # scan target
            self.__print_progress('target:%s...' % target)
            if self.__args.nmap :
                target_info = self.__do_nmap_one_target(target,self.__args.port)
            else:
                target_info = self.__do_scan_one_target(target, self.__args.port)
            # show server info:
            if len(target_info) > 0:
                for ti in target_info:
                    info = ''
                    if self.__args.nmap :
                        server_info = mongodb_check.get_mongodb_server_info(ti[0],ti[1])
                        if server_info != None:
                            info = '%s:%d,%s' % (ti[0], ti[1], server_info)
                    else:
                        info = '%s:%d,%s' % (ti[0], ti[1], ti[2])

                    if info != '':
                        logging.info (info)
                        self.__print_result('[+]' + info)
        # end
        self.__lock_thread_num.acquire()
        self.__thread_num -= 1
        self.__lock_thread_num.release()
예제 #3
0
파일: scan.py 프로젝트: fybdhn/mongodb-scan
    def __do_scan_one_target(self, target, ports):
        '''
        scan one target and everyone port
        '''
        target_info = []
        ports_list = ports.split(',')

        for p in ports_list:
            port = int(p)
            # check port open:
            check_open = mongodb_check.check_mongodb_open(
                target, port, timeout=self.__args.timeout)
            if check_open == False:
                continue
            # get server info
            server_info = mongodb_check.get_mongodb_server_info(
                target, port, timeout=self.__args.timeout)
            if server_info == None:
                #server_info = 'connect fail' 
                continue   
            #
            target_info.append((target, port, server_info))

        return target_info
예제 #4
0
    def do_scan_one_target(self, target, ports):
        '''
        scan one target and everyone port
        '''
        target_info = []
        ports_list = ports.split(',')

        for p in ports_list:
            port = int(p)
            # check port open:
            check_open = mongodb_check.check_mongodb_open(
                target, port, timeout=self.args.timeout)
            if check_open == False:
                continue
            # get server info
            server_info = mongodb_check.get_mongodb_server_info(
                target, port, timeout=self.args.timeout)
            if server_info == None:
                #server_info = 'connect fail'
                continue
            #
            target_info.append((target, port, server_info))

        return target_info