Example #1
0
def run_assets_asnible(request, id, format=None):
    if request.method == 'GET':
            server_assets=Server_Assets.objects.get(assets_id=id)
            if server_assets.username=='' and server_assets.passwd='':
            resource = [
                {"hostname": server_assets.hostname, "port": server_assets.port, "username": server_assets.username,
                 "password": server_assets.passwd}]
            ANS= ANSRunner(resource)
            ANS.run_model(host_list=[server_assets.hostname], module_name='setup', module_args="")
            assets_info = ANS.handle_cmdb_data(ANS.get_model_result())
            assets_network = ANSRunner(resource)
            assets_process= ANSRunner(resource)
            assets_user= ANSRunner(resource)
            assets_network.run_model(host_list=[server_assets.hostname], module_name='shell', module_args="netstat -tlnp")
            assets_process.run_model(host_list=[server_assets.hostname], module_name='shell', module_args="ps -aux")
            assets_user.run_model(host_list=[server_assets.hostname], module_name='shell', module_args="cat /etc/passwd")
            assets_network = assets_network.get_model_result()
            print assets_user
            assets_process = assets_process.get_model_result()
            assets_user = assets_user.get_model_result()
            SQL_db.assets_ansible(id,assets_info,assets_network,assets_process,assets_user,request.user.id,server_assets.hostname)
            return HttpResponse('200', status=200)

    else:
            return HttpResponse('200', status=200)
Example #2
0
def scan(ip, username, userfile, passfile, scanmodel, threding, port,
         assets_id, task_id, user_id):
    log = 'brute_log/' + str(uuid.uuid1())
    os.system('touch  %s' % log)
    if username == None:
        cmd = 'medusa -h %s -U %s -P %s -M %s  -t %s -O %s -n %s -F' % (
            ip, userfile, passfile, scanmodel, threding, log, port)
        print cmd
    else:
        cmd = 'medusa -h %s -u %s -P %s -M %s  -t %s -O %s -n %s -F' % (
            ip, username, passfile, scanmodel, threding, log, port)
    os.system(cmd)
    f = open(log, 'r')
    for line in f.readlines():
        if 'ACCOUNT FOUND' in line:
            ret = line.split(' ')
            SQL_db.pass_db(ip=ip,
                           username=ret[6],
                           password=ret[8],
                           scanmodel=scanmodel,
                           port=port,
                           assets_id=assets_id,
                           task_id=task_id,
                           user_id=user_id)
            print '一切都结束了OK'
            return 'ok'
        elif 'Medusa has finished' in line:
            print '任务结束写入数据库'
            return 'ok'
        else:
            continue
Example #3
0
def get_nsfocus_report(request, id, format=None):
    if request.method == 'GET':
             arg=Nsfocus_task.objects.get(id=id)
             admin_user_id=request.user.id
             ret = nsfocus.Work(dev_id=arg.nsfocus_dev)
             print arg.id
             print arg.nsfocus_dev
             nsfocus_task_id= str(arg.nsfocus_task_id)
             result=ret.task__result(nsfocus_task_id)
             SQL_db.vul_db(id=id,nsfocus_task_id=nsfocus_task_id,result=result,admin_user_id=admin_user_id)
             return HttpResponse('200', status=200)
Example #4
0
 def connPort(self,ip, port):
     st = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     st.settimeout(0.2)
     try:
         st.connect((ip, int(port)))
         SQL_db.port_db(assets_id=self.assets_id,ip=ip,port=port,task_id=self.task_id, user_id=self.user_id)
         self.get_server(ip, port)
         st.close()
     except Exception as e:
         pass
     self.connection_lock_1.release()
Example #5
0
def scan_port(
    assets_id,
    tgtHost,
    port,
    user_id,
    task_id,
):
    print tgtHost
    r = os.popen('nmap  %s  -p %s' % (tgtHost, port))
    info = []
    for port in r.readlines():
        if '/tcp' in port.strip():
            port_list = port.strip().split(' ')
            while '' in port_list:
                port_list.remove('')
            info.append(port_list)
    SQL_db.port_db(assets_id=assets_id,
                   ip=tgtHost,
                   info=info,
                   task_id=task_id,
                   user_id=user_id)
    print info
    return info
Example #6
0
 def get_server(self,ip, port):
     print ip,port
     port_info=[]
     try:
         r=os.popen('nmap %s  -p %s  -A' %(ip,port))
         re = '%s/tcp' % (port)
         for line in r.readlines():
             if re in line.strip():
                 t = line.strip().split(' ')
                 serviceversion = ''
                 while '' in t:
                     t.remove('')
                 for i in range(len(t)):
                     if i == 2:
                         servicename = t[i]
                     elif i > 2:
                         serviceversion= serviceversion + t[i]
         SQL_db.os_port_db(assets_id=self.assets_id,ip=ip,port=port,task_id=self.task_id, user_id=self.user_id,
                           servicename=servicename,serviceversion=serviceversion
                           )
     except Exception as e:
         print e
         print  '*************************************************8'
Example #7
0
def run_assets_asnible(request, id, format=None):
    ret = {'code': 1001, 'data': '', 'msg': ''}
    if request.method == 'GET':
        server_assets = Server_Assets.objects.get(assets_id=id)
        if server_assets.username == None and server_assets.passwd == None:
            ret['msg'] = '没有用户名密码建议手动更新'
            return JsonResponse(ret)
        else:
            resource = [{
                "hostname": server_assets.hostname,
                "port": server_assets.port,
                "username": server_assets.username,
                "password": server_assets.passwd
            }]
            ANS = ANSRunner(resource)
            ANS.run_model(host_list=[server_assets.hostname],
                          module_name='setup',
                          module_args="")
            assets_info = ANS.handle_cmdb_data(ANS.get_model_result())
            assets_network = ANSRunner(resource)
            assets_process = ANSRunner(resource)
            assets_user = ANSRunner(resource)
            assets_network.run_model(host_list=[server_assets.hostname],
                                     module_name='shell',
                                     module_args="netstat -tlnp")
            assets_process.run_model(host_list=[server_assets.hostname],
                                     module_name='shell',
                                     module_args="ps -aux")
            assets_user.run_model(host_list=[server_assets.hostname],
                                  module_name='shell',
                                  module_args="cat /etc/passwd")
            assets_network = assets_network.get_model_result()
            print assets_user
            assets_process = assets_process.get_model_result()
            assets_user = assets_user.get_model_result()
            SQL_db.assets_ansible(id, assets_info, assets_network,
                                  assets_process, assets_user, request.user.id,
                                  server_assets.hostname)
            ret['code'] = 1000
            ret['msg'] = 'ok'
            return JsonResponse(ret)

    elif request.method == 'POST':
        data = request.data.get('data')
        ip = data['ansible_ip']
        id = Assets.objects.get(assets_ip=ip).id
        username = data['ansible_username']
        password = data['ansible_password']
        port = data['ansible_port']
        resource = [{
            "hostname": ip,
            "port": port,
            "username": username,
            "password": password
        }]
        print resource
        ANS = ANSRunner(resource)
        ANS.run_model(host_list=[ip], module_name='setup', module_args="")
        assets_info = ANS.handle_cmdb_data(ANS.get_model_result())
        assets_network = ANSRunner(resource)
        assets_process = ANSRunner(resource)
        assets_user = ANSRunner(resource)
        assets_network.run_model(host_list=[ip],
                                 module_name='shell',
                                 module_args="netstat -tlnp")
        assets_process.run_model(host_list=[ip],
                                 module_name='shell',
                                 module_args="ps -aux")
        assets_user.run_model(host_list=[ip],
                              module_name='shell',
                              module_args="cat /etc/passwd")
        assets_network = assets_network.get_model_result()
        print assets_user
        assets_process = assets_process.get_model_result()
        assets_user = assets_user.get_model_result()
        SQL_db.assets_ansible(id, assets_info, assets_network, assets_process,
                              assets_user, request.user.id, ip)
        ret['code'] = 1000
        ret['msg'] = 'ok'
        return JsonResponse(ret)