Total Pageviews

Thursday 15 April 2021

Safety-Project-Collection

收集一些比较优秀的开源安全项目,以帮助甲方安全从业人员构建企业安全能力。 

这是一份开源安全项目清单,收集了一些比较优秀的开源安全项目,以帮助甲方安全从业人员构建企业安全能力。

项目收集的思路:

一个是关注互联网企业/团队的安全开源项目,经企业内部实践,这些最佳实践值得借鉴。

一个是来自企业安全能力建设的需求,根据需求分类,如WAF、HIDS、Git监控等。

这个收集是一个长期的过程,我在GitHub创建了这个项目,专门用来收集一些优秀的甲方安全项目。还有很多很好的免费开源项目可供选择,下面列出的还只是其中很少的一部分,我将持续更新这个项目,欢迎Star。

项目内容

互联网企业/团队,如YSRC、宜信CESRC、陌陌MomoSecurity、VKSRC等。

根据企业安全能力建设的需求,大致可以分为如下几种类型:

资产管理

  • BlueKing CMDB:一个面向资产及应用的企业级配置管理平台。

  • OpsManage:一款代码部署、应用部署、计划任务、设备资产管理平台。

  • Assets View:资产发现、网络拓扑管理系统。

  • Ansible:一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台。

  • Saltstack:一个具备puppet与func功能为一身的集中化管理平台。

漏洞管理

  • insight:洞察-宜信集应用系统资产管理、漏洞全生命周期管理、安全知识库管理三位一体的平台。

  • xunfeng:一款适用于企业内网的漏洞快速应急,巡航扫描系统。

  • SRCMS:企业应急响应与缺陷管理系统 。

  • laravel-src:基于 Laravel 的开源安全应急响应中心平台。

  • DefectDojo:一个安全程序和漏洞管理工具。

  • Fuxi-Scanner:一款开源的网络安全检测工具,适用于中小型企业对企业信息系统进行安全巡航检测。

  • SeMF:企业内网安全管理平台,包含资产管理,漏洞管理,账号管理,知识库管、安全扫描自动化功能模块,可用于企业内部的安全管理。

安全开发

自动化代码审计

  • fortify:静态代码扫描工具。【破解即免费】。

  • RIPS:用于PHP脚本漏洞的静态源代码分析器。

  • OpenStack Bandit:基于Python AST的静态分析器,用来查找Python代码中存在的通用安全问题的工具。

  • Cobra:一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显著的安全问题和漏洞。

  • banruo:基于的fotify的自动化代码审计系统。

  • VCG:一种用于C++、C语言、VB、PHP、Java和PL/SQL的自动代码安全审查工具。

  • Find Security Bugs:用于Java Web应用程序的安全审计。

  • Hades:静态代码脆弱性检测系统

WAF

  • ngx_lua_waf:一个基于LUA-nginx的模块(openresty)的网络应用防火墙。

  • OpenRASP:一款免费、开源的应用运行时自我保护产品。

  • ModSecurity:一个入侵侦测与防护引擎。

  • 锦衣盾:基于openresty(nginx+lua)开发的下一代web应用防火墙。

  • x-waf:适用于中小企业的云waf 。

  • Juggler:可以与waf联动 ,一个也许能骗到黑客的系统。

堡垒机

  • Jumpserver:全球首款完全开源的堡垒机,是符合4A的专业运维审计系统。

  • teleport:一款简单易用的开源堡垒机系统,支持RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理。

  • CrazyEye:基于Python的开发的一款简单易用的IT审计堡垒机。

  • gateone:一款使用HTML5技术编写的网页版SSH终端模拟器。

  • JXOTP:一款企业SSH登陆双因素认证系统。

  • 麒麟堡垒机:开源版只支持一部分功能,剩下的功能需要购买。

HIDS

  • OSSEC:一款开源的IDS检测系统,包括了日志分析、完整性检查、rook-kit检测,基于时间的警报和主动响应。

  • Wazuh:一个免费的,开源的企业级安全监控解决方案,用于威胁检测,完整性监控,事件响应和合规性。

  • Suricata:一个免费的开源,成熟,快速和强大的网络威胁检测引擎。

  • Snort:网络入侵检测和预防系统。

  • Osquery:一个SQL驱动操作系统检测和分析工具。

  • Samhain Labs:用于集中式主机完整性监控的全面开源解决方案。

  • Firestorm:一种极高性能的网络入侵检测系统(NIDS)。

  • MozDef:Mozilla防御平台,一套实时集成化平台,能够实现监控、反应、协作并改进相关保护功能。

  • 驭龙HIDS:开源的主机入侵检测系统。

  • AgentSmith-HIDS:轻量级的HIDS系统,低性能损失,使用LKM技术的HIDS工具。

  • Sobek-Hids:一个基于python的HostIDS系统。

  • Security Onion:免费开源网络安全监控系统。

  • OpenWIPS-ng:一款开源的模块化无线IPS(Intrusion Prevention System,入侵防御系统)。

  • Moloch: 网络流量收集与分析。

网络流量分析

  • Zeek:一个功能强大的网络分析框架。

  • Kismet:一种无线网络和设备检测器,嗅探器,驱动工具和WIDS(无线入侵检测)框架。

SIEM/SOC

  • OSSIM:开源安全信息管理系统,它是一个开源安全信息和事件的管理系统,集成了一系列的能够帮助管理员更好的进行计算机安全,入侵检测和预防的工具。

  • Apache Metron:一种网络安全应用程序框架,使组织能够检测网络异常并使组织能够快速响应已识别的异常情况。

  • SIEMonster:以很小的成本监控整个网络。

  • w3a_SOC:Web日志审计与网络监控集合一身的平台。

  • OpenSOC:致力于提供一个可扩展和可扩展的高级安全分析工具。

  • Prelude:一个结合了其他各种开源工具的SIEM框架。

  • MozDef:Mozilla防御平台,一套实时集成化平台,能够实现监控、反应、协作并改进相关保护功能。

企业云盘

  • KodExplorer:可道云,是基于Web技术的私有云在线文档管理解决方案。

  • Seafile:一款开源的企业云盘,注重可靠性和性能。

  • NextCloud:一款开源网络硬盘系统。

  • owncloud:一个基于Linux的开源云项目。

  • iBarn:基于PHP的开源网盘。

  • Cloudreve:以最低的成本快速搭建公私兼备的网盘系统。

  • Filebrowser:一个基于GO的轻量级文件管理系统。

  • FileRun:一款强大的多功能网盘和文件管理器。

  • kiftd:一款专门面向个人、团队和小型组织的私有网盘系统。

钓鱼网站系统

  • HFish:一款基于 Golang 开发的跨平台多功能主动诱导型蜜罐框架系统。

  • mail_fishing: 基于thinkphp写的一个内部钓鱼网站系统。

  • Gophish:开源钓鱼工具包。

  • BLACKEYE:开源钓鱼工具包。

  • phishing:甲方网络钓鱼的安全实践。

  • Phishing Frenzy:开源的钓鱼测试工具。

  • King Phisher:一款专业的钓鱼活动工具包。

安全运维

  • Scout: URL 监控系统。

  • OpenDnsdb:开源的基于Python语言的DNS管理系统 。

  • cuckoo:一个自动化的动态恶意软件分析系统。

  • theZoo:一个恶意软件分析项目。

  • OpenDLP:一个免费的,开源的,基于代理和无代理的,集中管理,可大规模分发的数据丢失防护工具。

GitHub监控

  • GSIL:GitHub敏感信息泄漏工具。

  • Hawkeye:监控github代码库,及时发现员工托管公司代码到GitHub行为并预警,降低代码泄露风险。

  • x-patrol:GitHub的泄露扫描系统--MiSecurity。

  • Github-Monitor:用于监控Github代码仓库的系统。

  • gshark:轻松有效地扫描Github中的敏感信息。

  • GitGuardian:实时扫描GitHub活动的解决方案。

  • code6:码小六 - GitHub 代码泄露监控系统。

蜜罐技术

  • T-Pot:多蜜罐平台,可视化分析。

  • HFish:一种基于Golang开发的跨平台多功能主动诱导型蜜罐框架系统。

  • opencanary_web:蜜罐的网络管理平台。

  • Honeyd:一个小型守护进程,可以在网络上创建虚拟主机。

  • mhn:现代蜜罐网络。

  • Glastopf:Python Web应用程序蜜罐。

  • Cowrie:一种中等交互式SSH和Telnet蜜罐,用于记录暴力攻击和攻击者执行的shell交互。

  • Kippo:一个中等交互式SSH蜜罐,用于记录暴力攻击,最重要的是,攻击者执行的整个shell交互。

  • Dionaea:一个低交互的蜜罐,能够模拟FTP/HTTP/MSSQL/MYSQL/SMB等服务。

  • Conpot:一个ICS蜜罐,其目标是收集有关针对工业控制系统的敌人的动机和方法的情报。

  • Wordpot:一个Wordpress蜜罐,可以检测用于指纹wordpress安装的插件,主题,timthumb和其他常用文件的探针。

  • elastichoney:一个简单的Elasticsearch蜜罐。

  • beeswarm:一个蜜罐项目,为蜜罐的配置、部署和管理提供了便利。

  • Shockpot:一个Web应用程序蜜罐,旨在找到试图利用Bash远程代码漏洞的攻击者,CVE-2014-6271。

风控系统

  • TH-Nebula:星云风控系统是一套互联网风控分析和检测平台。

  • Liudao:六道”实时业务风控系统。

  • 陌陌风控系统:静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为。

  • Drools:基于java的功能强大的开源规则引擎。


学习交流

专注于网络安全,欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

 from https://github.com/Bypass007/Safety-Project-Collection

-------

对开源蜜罐的学习研究与理解.

OpenSource-HoneyPot

对开源蜜罐的学习研究与理解

    近段时间的实习工作一直在研究各种开源蜜罐,这里将自己的学习与理解记录一下,持续更新,欢迎交流讨论。

Todo

  • 工控蜜罐conpot
  • Web蜜罐Snare/Tanner
  • 服务器蜜罐Opencanary
  • 蜜罐HoneyPy
  • 容器蜜罐Whaler

蜜罐分类整理总结

from https://github.com/XiaoXiaoGuaiXiaShi/OpenSource-HoneyPot 

------

Passive Security Scanner (被动式安全扫描器).

W13Scan

W13scan 是基于Python3的一款开源的Web漏洞发现工具,它支持主动扫描模式和被动扫描模式,能运行在Windows、Linux、Mac上。

GitHub issues GitHub stars GitHub forks GitHub license

Jietu20200516-184214

声明

使用W13Scan前请遵守当地法律,W13Scan仅提供给教育行为使用。

特点

相比于其他专业的扫描工具,w13scan也有自己独有的优点。

免费/开源

安全从业人员可能不会信任任何程序,唯一能让人稍微信任的就是开源代码。

安全是建立在信任之上,信任需要开放和透明。w13scan核心代码完全开源,任何人可以检查其代码的安全性。

可以方便针对一些棘手且高度专业化的环境,可以按照w13scan开发文档补充其功能,自定义需要的模块。

丰富的检测插件

  • XSS扫描
    • 基于语义的反射型XSS扫描,准确率极高
    • XSS扫描会从网页中提取参数进行解析
  • jsonp信息泄漏
    • 基于语义解析寻找敏感信息
  • sql注入
    • 基于报错SQL注入检测
    • 基于网页相似度布尔类型的SQL注入检测
    • 基于时间SQL注入检测
  • http smuggling 走私攻击
  • Fastjson检测与利用
  • .Net通杀Xss检测
    • portswigger 2019十大攻击技术第六名
  • iis解析漏洞
  • 敏感文件信息泄漏
    • 支持含备份文件,debug文件,js敏感信息,php真实路径泄漏,仓库泄漏,phpinfo泄漏,目录遍历等
  • baseline检测(反序列化参数检测)
  • 命令/代码注入检测
    • 支持asp,php等语言的检测
    • 支持系统命令注入检测(支持无回显检测)
    • 支持get,post,cookie等方式检测
  • 路径穿越漏洞
  • struts2漏洞检测
    • 包括s2-016、s2-032、s2-045漏洞
  • webpack打包源文件泄漏
  • 未授权访问插件

扫描平台对比

w13scan测试了多个扫描平台,以下为扫描平台的测试报告

平台名称 扫描结果 扫描模式
WVS PHP Vulnweb 查看 crawlergo+w13scan 自动扫描
WVS AJAX Vulnweb 查看 被动扫描
demo.aisec.cn 查看 被动扫描

使用

Useage

usage: w13scan [options]

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Show program's version number and exit
  --debug               Show programs's exception
  --level {1,2,3,4,5}   different level use different payload: 0-5 (default 2)

Proxy:
  Passive Agent Mode Options

  -s SERVER_ADDR, --server-addr SERVER_ADDR
                        server addr format:(ip:port)

Target:
  options has to be provided to define the target(s)

  -u URL, --url URL     Target URL (e.g. "http://www.site.com/vuln.php?id=1")
  -f URL_FILE, --file URL_FILE
                        Scan multiple targets given in a textual file

Request:
  Network request options

  --proxy PROXY         Use a proxy to connect to the target URL
                        eg:http@127.0.0.1:8080 or socks5@127.0.0.1:1080
  --timeout TIMEOUT     Seconds to wait before timeout connection (default 30)
  --retry RETRY         Time out retrials times.

Output:
  output

  --html                When selected, the output will be output to the output
                        directory by default, or you can specify
  --json JSON           The json file is generated by default in the output
                        directory, you can change the path

Optimization:
  Optimization options

  -t THREADS, --threads THREADS
                        Max number of concurrent network requests (default 31)
  --disable DISABLE [DISABLE ...]
                        Disable some plugins (e.g. --disable xss sqli_error
                        webpack)
  --able ABLE [ABLE ...]
                        Enable some moudle (e.g. --enable xss webpack)

安装

安装w13scan需要依赖Python3.6以上环境.

git clone https://github.com/w-digital-scanner/w13scan.git
cd w13scan # 进入git目录
pip3 install -r requirements.txt
cd W13SCAN # 进入源码目录
python3 w13scan.py -h

被动扫描

python3 w13scan.py -s 127.0.0.1:7778 --html # 端口可省略,默认为7778,开启--html即实时生成html报告

HTTPS支持

如果想让w13scan被动模式支持https,先启动w13scan,然后在浏览器中访问 http://w13scan.ca 下载证书并信任它。

主动扫描

-u     输入一个url进行扫描
--file 从文件中读取url扫描

w13scan会对url进行参数分析并使用插件扫描,但不会进行爬虫。

结合动态爬虫扫描

crawlergo + w13scan 自动扫描

在目录crawlergo_example spider.py展示了如何与crawlergo爬虫结合联动。

反连平台(非必须)

修改config.py下有关反连平台的设置,可类似修改为

# REVERSE
USE_REVERSE = True  # 使用反连平台将False改为True
REVERSE_HTTP_IP = "127.0.0.1"  # 回连http IP地址,需要改为服务器ip,不能改为0.0.0.0,因为程序无法识别
REVERSE_HTTP_PORT = 9999  # 回连http端口

REVERSE_DNS = "dnslog.w13scan.hacking8.com" # 修改为自己的域名,并将域名dns修改为本机IP

REVERSE_RMI_IP = "127.0.0.1"  # Java RMI 回连IP,需要改为服务器ip,不能改为0.0.0.0,因为程序无法识别
REVERSE_RMI_PORT = 10002  # Java RMI 回连端口

REVERSE_SLEEP = 5  # 反连后延时检测时间,单位是(秒)

之后先启动反连平台

python3 reverse.py

再启动w13scan即可

集成到自己扫描器

w13scan是开源的,我们也希望安全研究人员将w13scan集成到自己的扫描器中。

请点击 开发文档

贡献&感谢

有关的文章

from https://github.com/w-digital-scanner/w13scan 

------

Explore Indicators of Compromise Automatically.

IOC Explorer - Explore IOCs Automatically

illustration

Introduction

Correlating Indicator of Compromise (IOC) is a key part of incident investigation even threat hunting. Finding one IP address hosting several known malicious files would help SOC teams to implement more effective countermeasure by blocking that IP address. However, building a correlation usually means a lot of manual work, like searching multiple IOCs across different threat intelligence sources (community sources or private sources). Sometimes, correlation can only be found after several iterative queries.

IOC Explorer aims to execute iterative queries across multiple threat intelligence sources automatically. It may assist security analyst to find more clues for investigation.

Requirements

IOC Explorer is written in Python 3. It is not tested in other Python versions.

Please make sure you have installed following libraries prior to start:

  1. requests 2.20.1
  2. anytree 2.4.3

Quick Start

  1. Open config.ini file, and type in your API Key of VirusTotal or QiAnXin_TI section
  2. Open ioc.csv file, and type in your query IOC (eg., 'domain, xnz.freetzi.com')
  3. Run the tool in command line
$python explorer.py
  1. Go to './results' directory to check your query result

Usage in Details

Initial Configuration

There are some settings to configure before first run. Basiclly, all settings stored in 'config.ini' file can be splitted into two categories: query behavior setting and threat intelligence setting.

'depth' setting in 'general' section is an important query behavior setting. It defines the times of iterative queries, which will query intelligence sources based on IOCs returned on previous queries. Default setting is 'depth=3'. If user increases the value, the tool carries additional queries on previous returned IOCs.

Each threat intelligence has its own but different settings. However, API key is the most common setting for intelligence sources, which is also required.

Input IOC

Currently, 4 IOC types are supported, namely as followings,

  • email address (ioc_type='email')
  • file hash (ioc_type='file') Note: md5/sha1/sha256 are supported
  • ip address (ioc_type='ip_address')
  • domain name (ioc_type='domain')

CSV file (by default, ./ioc.csv) is the place to input IOC for query. The CSV file has following format for data,

IOC_type, IOC_value

For example,

domain, xnz.freetzi.com
file, c0531f812a1ec5e825f7250f7b52db7621ecf93d973f0e3ba1aa0372e0f559f2
email, 373192510@qq.com
ip_address, 192.99.142.235

Output Result

After querying multiple threat intelligence sources, IOC Explorer will collect all returned IOCs and output them in a well-organized way.

This tool supports two output formats: plain-text and JSON.

IOCs in plain-text is organized in tree style, like followings:

AnyNode(id='373192510@qq.com', type='email')
├── AnyNode(id='qq758.com', relation='QAX: Whois email to domain', type='domain')
│   ├── AnyNode(id='5292086@qq.com', relation='QAX: domain to whois email', type='email')
│   │   ├── AnyNode(id='ltcp3.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='lzskqc.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='df796.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='mir900.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='888hl.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='jiemianpaomo.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='qx969.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='c888c.com', relation='QAX: Whois email to domain', type='domain')
│   │   ├── AnyNode(id='982307.com', relation='QAX: Whois email to domain', type='domain')
│   │   └── AnyNode(id='ac0028.com', relation='QAX: Whois email to domain', type='domain')
│   ├── AnyNode(id='47.91.202.66', relation='VT: domain to resolution ip', type='ip_address')
│   │   ├── AnyNode(id='4bf7e7e6c78c1a69def4beef216ad52dbabae1f831f49067e3b29f8a7a62d71e', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='e682dfcdde010f6e15bae0d843696f6ae8d5a85e75441660b782789ee747f075', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='88f089e2e069ca698fa498fb5ba5f46fd95d3c8ee5b4c5c6587eae8d2db43fe7', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='39a75a83af8d38202ab05de7ac9beae6e00d21501867601cc2a86094c79d6f16', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='1630ab0121c4df64230045ef86ee54e5ee05bd371c2b3c26bcdb0ef3a0d2360f', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='7d04f7431bbfa41a04bcc7e6b98b9de0d919756c4c671c5785c99fff45f16402', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='9b342ae7f25d65bdb817d8c995f3211ac398e41575fc5d149d994c1dcb008f0a', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='39d6bba9f294f11f84933e48483aff12a9efc5c7d6eb4f57a8d36ef8bd71823e', relation='VT: IP to downloaded file', type='file')
│   │   ├── AnyNode(id='d37608c9b93ae18c5ed5d376e32449f95358f708a35cd8b06431ca2be733f87e', relation='VT: IP to downloaded file', type='file')
│   │   └── AnyNode(id='fb7595b2d6f1cc89cca75ec06186c228274e95fb6c3e233e8de2e804284ab8c1', relation='VT: IP to downloaded file', type='file')

Default output directory is './results'. Filename follows this naming rule: {ioc_value}depth{depth_value}_{timestamp}, like '192.99.142.235_depth_3_201907171110.txt'

More sample results are given in './samples' directory for reference.

Threat Intelligence Sources

A plenty of TI sources exist in cybersecurity field. As a start, IOC Explorer supports following sources:

  • VirusTotal, both public and private data available
  • QiAnXin, only private data

A summary of IOC relations is following,

Source Type Relation Explanation
VirusTotal Public and private Ip -> file Files downloaded from the IP address
VirusTotal Public and private Domain -> file Files downloaded from the domain
VirusTotal Public and private Domain -> ip DNS resolutions for the domain
VirusTotal Public and private File -> ip IP addresses contacted by the file
VirusTotal Public and private File -> domain Domains contacted by the file
VirusTotal Public and private File -> file Files that executed the file
QiAnXin Private Domain -> ip DNS resolutions (A record) for the domain
QiAnXin Private Domain -> email Registrant email for the domain in Whois record
QiAnXin Private Email -> domain Domain names registered in the same email
QiAnXin Private File -> ip IP addresses contacted by the file
QiAnXin Private File -> domain Domains contacted by the file

You can can contact me for public available sources. Or you add your private sources by yourself.

from https://github.com/lion-gu/ioc-explorer

-----

related post; https://briteming.blogspot.com/2017/10/blog-post_20.html

 

 

 

No comments:

Post a Comment