goby sdk 非官方版本 使用文档(1)

root2个月前Goby 非官方SDK 开发85
一、Api类
1、get_poc_list 方法
I、调用文档
  1. get_poc_list 接受参数:

get_poc_list(self, query="vultype=2", reload_pocs=False,order_by={"vul_nums": "desc", "level": "desc", "host_nums": "desc"}, page=1, size=3000)
  1. 功能: 获取POC列表信息。

  2. 调用方法:

#测试方法: sdk = api.Api("http://192.168.136.133:8361", "user", "pass") # 测试获取poc poc_list = sdk.get_poc_list(query="vultype=2", reload_pocs=False,order_by={"vul_nums": "desc", "level": "desc", "host_nums": "desc"},page=1, size=3000) print(poc_list)
  1. HTTP 默认请求

POST /api/v1/getPOCList HTTP/1.1 Content-Type: application/json;charset=UTF-8 Content-Length: 144 Authorization: Basic dXNlcjpwYXNz host: 192.168.136.133:8361 Connection: close {"query":"vultype=2","options":{"reloadPocs":false,"order":{"vul_nums":"desc","level":"desc","host_nums":"desc"},"page":{"page":1,"size":3000}}} HTTP/1.1 200 OK Content-Type: application/json Date: Mon, 10 Apr 2023 03: 07: 20 GMT Connection: close Content-Length: 83963 {    "statusCode": 200,    "messages": "",    "data": {        "taskId": "",        "total": {            "general": 333,            "bruteforce": 10,            "search_general": 333,            "search_bruteforce": 10        },        "lists": [            {                "category": "system",                "pocType": "",                "fileName": "74cms_plus_ajax_common_SQLi.json",                "name": "74CMS SQLi with Plus ajax common",                "level": "3",                "gifAddress": "",                "host_nums": 0,                "vul_nums": 0,                "scanTime": "",                "hasexp": true            }        ],        "failed": null,        "tags": {            "APT": 1,            "Code Execution": 3,            "Disclosure of Sensitive Information": 3,            "File Upload": 1,            "RCE": 3,            "SQL Injection": 2,            "SQLi": 2,            "XXE": 1,            "backdoor": 2,            "bruteforce": 10,            "defaultaccount": 44,            "dvr": 5,            "file write": 1,            "file-upload": 1,            "filedownload": 5,            "fileread": 21,            "getshell": 11,            "infoleak": 12,            "iot": 21,            "lfi": 3,            "login-bypass": 1,            "rce": 129,            "sqli": 22,            "ssrf": 3,            "surveillance": 5,            "unauthorized": 28,            "webvulscan": 6,            "xxe": 2        }    } }
II、字段文档
  1. 请求字段

    1. query:字符串类型,表示查询条件,这里为"vultype=2",即漏洞类型为2的漏洞列表。

    2. options:一个包含多个可选项的对象,用于指定查询选项。

      1. reloadPocs:布尔类型,表示是否重新加载POC列表。

      2. order:一个包含多个字段的对象,用于指定查询结果的排序方式。

        1. vul_nums:表示按照漏洞数量降序排列。

        2. level:表示按照漏洞等级降序排列。

        3. host_nums:表示按照主机数量降序排列。

        4. page:一个包含两个字段的对象,用于指定查询结果的分页方式。

        5. page:表示页码,这里为第1页。

        6. size:表示每页显示的数据量,这里为3000。

  1. 返回字段

    1. statusCode:表示HTTP响应状态码,这里为200,表示成功。

    2. messages:表示响应消息,这里为空字符串。

    3. data:一个包含多个字段的对象,表示响应数据。

      1. taskId:表示任务ID,这里为空字符串。

      2. total:一个包含多个字段的对象,表示查询结果的统计信息。

        1. general:表示通用漏洞数量,这里为333。

        2. bruteforce:表示暴力破解漏洞数量,这里为10。

        3. search_general:表示满足查询条件的通用漏洞数量,这里为333。

        4. search_bruteforce:表示满足查询条件的暴力破解漏洞数量,这里为10。

    4. lists:一个包含多个字段的对象数组,表示查询结果的具体列表。

      1. category:表示漏洞类别,这里为system。

      2. pocType:表示POC类型,这里为空字符串。

      3. fileName:表示POC文件名,这里为74cms_plus_ajax_common_SQLi.json。

      4. name:表示POC名称,这里为74CMS SQLi with Plus ajax common。

      5. level:表示漏洞等级,这里为3。

      6. gifAddress:表示漏洞截图地址,这里为空字符串。

      7. host_nums:表示受影响的主机数量,这里为0。

      8. vul_nums:表示受影响的漏洞数量,这里为0。

      9. scanTime:表示POC扫描时间,这里为空字符串。

      10. hasexp:表示POC是否有漏洞利用脚本,这里为true。

    5. failed:表示查询失败的信息,这里为null。

    6. tags:一个包含多个字段的对象,表示查询结果中包含的标签及其数量。

      1. APT:表示APT相关的标签数量。

      2. Code Execution:表示代码执行相关的标签数量。

      3. Disclosure of Sensitive Information:表示泄露敏感信息相关的标签数量。

      4. File Upload:表示文件上传相关的标签数量。

      5. RCE:表示远程代码执行相关的标签数量。

      6. SQL Injection:表示SQL注入相关的标签数量。

      7. SQLi:表示SQL注入相关的标签数量。

      8. XXE:表示XML外部实体注入相关的标签数量。

      9. backdoor:表示后门相关的标签数量。

      10. bruteforce:表示暴力破解相关的标签数量。

      11. defaultaccount:表示默认账户相关的标签数量。

      12. dvr:表示数字视频录像机相关的标签数量。

      13. file write:表示文件写入相关的标签数量。

      14. file-upload:表示文件上传相关的标签数量。

      15. filedownload:表示文件下载相关的标签数量。

      16. fileread:表示文件读取相关的标签数量。

      17. getshell:表示获取shell相关的标签数量。

      18. infoleak:表示信息泄露相关的标签数量。

      19. iot:表示物联网设备相关的标签数量。

      20. lfi:表示本地文件包含相关的标签数量。

      21. login-bypass:表示登录绕过相关的标签数量。

      22. rce:表示远程代码执行相关的标签数量。

      23. sqli:表示SQL注入相关的标签数量。

      24. ssrf:表示服务器端请求伪造相关的标签数量。

      25. surveillance:表示监控相关的标签数量。

      26. unauthorized:表示未授权访问相关的标签数量。

      27. webvulscan:表示Web漏洞扫描相关的标签数量。

      28. xxe:表示XML外部实体注入相关的标签数量。

更多使用说明访问:https://www.exp-9.com
2、start_scan 方法
I、调用文档
  1. start_scan 接受参数:def start_scan(self, task_name, ips, ports="0-65535", black_ips=[], vul_type="0", pocs_hosts={}, options={})

  2. 功能:启动扫描

  3. 调用方法

# 测试扫描 task_id = sdk.start_scan("test_task", "192.168.136.2") print("task_id:", task_id)
  1. HTTP 默认请求

POST /api/v1/startScan HTTP/1.1 Content-Type: application/json;charset=UTF-8 Content-Length: 1242 Authorization: Basic dXNlcjpwYXNz host: 192.168.136.133:8361 Connection: close {"taskName":"","asset":{"ips":["192.168.136.0/24"],"ports":"21,22,23,25,53,U:53,U:69,80,81,U:88,110,111,U:111,123,U:123,135,U:137,139,U:161,U:177,389,U:427,443,445,465,500,515,U:520,U:523,548,623,U:626,636,873,902,1080,1099,1433,U:1434,1521,U:1604,U:1645,U:1701,1883,U:1900,2049,2181,2375,2379,U:2425,3128,3306,3389,4730,U:5060,5222,U:5351,U:5353,5432,5555,5601,5672,U:5683,5900,5938,5984,6000,6379,7001,7077,8080,8081,8443,8545,8686,9000,9001,9042,9092,9100,9200,9418,9999,11211,U:11211,27017,U:33848,37777,50000,50070,61616","blackIps":[]},"vulnerability":{"type":"0","pocs_hosts":{}},"options":{"queue":0,"random":true,"rate":1000,"portscanmode":0,"proxy":"http://192.168.1.1:1080","CheckHoneyPot":false,"enableCrawler":false,"crawlerScope":0,"crawlerConcurrent":5,"crawlerMaxLinks":50,"crawlerMaxCrawlLinks":1000,"connectionSize":100,"screenshotRDP":false,"screenshot":false,"deepAnalysis":true,"extracthost":false,"fofaFetchSubdomainEnabled":false,"fofaEmail":"","fofaKey":"","fofaFetchSize":100,"pingFirst":false,"pingCheckSize":10,"pingConcurrent":2,"pingSendCount":2,"defaultUserAgent":"","defaultDeepAnalysisCheckString":"","enableSutraCloud":false,"enableSutraQueryJson":false,"socketTimeout":6,"retryTimes":0,"checkAliveMode":2}} HTTP/1.1 200 OK Content-Type: application/json Date: Mon, 10 Apr 2023 04:31:02 GMT Content-Length: 67 Connection: close {"statusCode":200,"messages":"","data":{"taskId":"20230410043102"}}
II、字段文档
  1. 请求字段

  • taskName:扫描任务名称,为空字符串

  • asset:资产信息对象

    • ips:需要扫描的 IP 地址范围,数组形式,示例为 ["192.168.136.0/24"]

    • ports:需要扫描的端口号范围,示例为 "21"

    • blackIps:需要排除的 IP 地址,示例为空数组

  • vulnerability:漏洞信息对象

    • type:需要扫描的漏洞类型,示例为 "0"

    • pocs_hosts:POC 文件和对应的 IP 地址,示例为空对象

  • options:其他可选参数

    • queue:扫描任务队列编号,示例为 0

    • random:是否启用随机扫描顺序,示例为 true

    • rate:扫描速率,单位为毫秒/请求,示例为 1000

    • portscanmode:端口扫描模式,示例为 0

    • proxy:代理服务器地址,示例为 "http://192.168.1.11:1080"

    • CheckHoneyPot:是否检查蜜罐,示例为 false

    • enableCrawler:是否开启爬虫模式,示例为 false

    • crawlerScope:爬虫范围,示例为 0

    • crawlerConcurrent:爬虫并发数,示例为 5

    • crawlerMaxLinks:爬虫最大链接数,示例为 50

    • crawlerMaxCrawlLinks:爬虫最大爬行链接数,示例为 1000

    • connectionSize:连接池大小,示例为 100

    • screenshotRDP:是否启用 RDP 截图功能,示例为 false

    • screenshot:是否启用截图功能,示例为 false

    • deepAnalysis:是否启用深度分析功能,示例为 true

    • extracthost:是否启用主机名提取功能,示例为 false

    • fofaFetchSubdomainEnabled:是否启用 Fofa 子域名获取功能,示例为 false

    • fofaEmail:Fofa 邮箱地址,示例为空字符串

    • fofaKey:Fofa API 密钥,示例为空字符串

    • fofaFetchSize:Fofa 查询结果数量,示例为 100

    • pingFirst:是否先进行 Ping 操作,示例为 false

    • pingCheckSize:Ping 操作检查的 IP 数量,示例为 10

    • "pingConcurrent": 指定ping命令并发执行的数量。

  • "pingSendCount": 指定ping命令发送的ICMP报文数量。

  • "defaultUserAgent": 设置HTTP请求的User-Agent头部,默认为空。

  • "defaultDeepAnalysisCheckString": 指定深度扫描时使用的关键字,用于判断目标主机是否存在漏洞。

  • "enableSutraCloud": 是否开启Sutra Cloud功能,默认为关闭。

  • "enableSutraQueryJson": 是否启用Sutra Cloud的JSON查询功能。

  • "socketTimeout": 设置socket连接的超时时间。

  • "retryTimes": 设置重试次数。

  • "checkAliveMode": 设置存活性检测的模式,0表示TCP检测,1表示ICMP检测,2表示TCP和ICMP同时检测。

  1. 返回字段

  • statusCode:响应状态码,这里为200,表示请求成功。

  • messages:消息列表,这里为空。

  • data:响应数据主体,一个JSON对象。

    • taskId:任务ID,这个字段表示发起的扫描任务的ID,它是一个字符串类型的时间戳,格式为YYYYMMDDhhmmss。

更多使用说明访问:https://www.exp-9.com
3、resume_scan 方法
I、调用文档
  1. resume_scan 接受参数:

def resume_scan(self, task_id, options={}):
  1. 功能:恢复扫描任务

  2. 调用方法:

response_resume = sdk.resume_scan(task_id=task_id) print(response_resume)
  1. HTTP 默认请求

POST /api/v1/getProgress HTTP/1.1 Content-Type: application/json;charset=UTF-8 Content-Length: 27 Authorization: Basic dXNlcjpwYXNz host: 192.168.136.133:8361 Connection: close {"taskId":"20230410043102"} HTTP/1.1 200 OK Content-Type: application/json Date: Mon, 10 Apr 2023 06:48:57 GMT Content-Length: 76 Connection: close {"statusCode":200,"messages":"","data":{"logs":null,"progress":0,"state":3}}
II、字段文档
  1. 请求字段

  • taskId:任务ID,表示要恢复扫描的任务。

  • options:扫描选项,表示恢复扫描时的一些配置参数,包括:

    • queue:队列,表示任务的执行优先级。

    • random:是否随机扫描,True表示是,False表示否。

    • rate:扫描速率,表示每秒钟扫描的请求数。

    • portscanmode:端口扫描模式,表示使用何种方式进行端口扫描,0表示全端口扫描,1表示常用端口扫描。

    • proxy:代理服务器地址,表示使用代理服务器进行扫描。

    • screenshot:是否进行截图,True表示是,False表示否。

    • extracthost:是否提取子域名,True表示是,False表示否。

    • deepAnalysis:是否进行深度分析,True表示是,False表示否。

  1. 返回字段

一个JSON对象,表示操作的结果
  • statusCode:状态码,表示操作是否成功,200表示成功。

  • messages:消息,表示操作的相关提示信息。

  • data:数据,表示返回的结果数据,其中包括taskId表示恢复扫描的任务ID。

4、stop_scan 方法
I、调用文档
  1. stop_scan 接受参数:

def stop_scan(self, task_id):
  1. 功能:停止扫描任务

  2. 调用方法:

task_id = "20230403091316" response_stop = sdk.stop_scan(task_id=task_id) print(response_stop)
  1. HTTP 默认请求

POST /api/v1/getProgress HTTP/1.1 Content-Type: application/json;charset=UTF-8 Content-Length: 27 Authorization: Basic dXNlcjpwYXNz host: 192.168.136.133:8361 Connection: close {"taskId":"20230410043102"} HTTP/1.1 200 OK Content-Type: application/json Date: Mon, 10 Apr 2023 06:48:57 GMT Content-Length: 76 Connection: close {"statusCode":200,"messages":"","data":{"logs":null,"progress":0,"state":3}}
II、字段文档
  1. 请求字段

  • taskId:任务ID,表示要恢复扫描的任务。

  1. 返回字段

  • statusCode: 整型,表示操作的状态码。200 表示成功,其他数字表示失败。

  • messages: 字符串,表示操作返回的信息。

  • data: 字典,包含了扫描任务的状态信息。

    • logs: 字符串,表示扫描任务的日志信息。

    • progress: 整型,表示扫描任务的进度,范围在 0 到 100 之间。

    • state: 整型,表示扫描任务的状态。0 表示排队中,1 表示正在运行,2 表示暂停中,3 表示已完成,4 表示已终止。

更多使用说明访问:https://www.exp-9.com
5、get_scan_progress 方法
I、调用文档
  1. get_scan_progress 接受参数:

def get_scan_progress(self, task_id):
  1. 功能:获取扫描任务进度信息

  2. 调用方法:

# 测试扫描进度 result = sdk.get_scan_progress("20230403082842") print(result)
  1. HTTP 默认请求

POST /api/v1/getProgress HTTP/1.1 Content-Type: application/json;charset=UTF-8 Content-Length: 27 Authorization: Basic dXNlcjpwYXNz host: 192.168.136.133:8361 Connection: close {"taskId":"20230410043102"} HTTP/1.1 200 OK Content-Type: application/json Date: Mon, 10 Apr 2023 06:56:32 GMT Content-Length: 76 Connection: close {"statusCode":200,"messages":"","data":{"logs":null,"progress":0,"state":4}}
II、字段文档
  1. 请求字段

  • taskId:任务ID,指定要查询进度的扫描任务ID。

  1. 返回字段

  • statusCode:表示服务器处理请求后的状态码。在这个例子中,状态码为 200,表示服务器已成功处理了请求。

  • messages:包含服务器返回的消息,如果有的话。在这个例子中,该字段为空,表示没有返回任何消息。

  • data:包含服务器返回的数据。在这个例子中,data 包含三个字段:

    • logs:表示日志信息,如果有的话。在这个例子中,该字段为 null,表示没有返回任何日志信息。

    • progress:表示任务的进度。在这个例子中,该字段为 0,表示任务还没有开始。

    • state:表示任务的状态。在这个例子中,该字段为 4,表示任务已完成。


相关文章

goby sdk 非官方版本 使用文档(2)

6、get_tasks 方法 I、调用文档get_tasks 接受参数:def get_tasks(self, page=1, size=10, order_by='created_time&...

goby sdk 非官方版本

goby sdk 非官方版本

非官方版本的 Goby SDK 是由一些技术人员基于官方版本进行开发和改进的,旨在提供更加丰富的功能和更好的性能。它们可能包含一些官方版本不具备的功能或者对官方版本的一些限制进行了解除,可以更好地满足...

goby sdk 非官方版本 使用文档(3)

11、get_ip_info 方法 I、调用文档get_ip_info 接受参数:def get_ip_info(self, task_id, ip):功能:获取IP详细信息调用方法# 测试第二页,点...

goby sdk 非官方版本 使用文档(4)

16、get_vulnerability_search 方法 I、调用文档get_vulnerability_search 接受参数:def get_vulnerability_search(self...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。