首页
关于
友链
Search
1
设备部署-NIDS入侵检测系统-Snort&Suricata
5 阅读
2
从方法重写到SQL注入-信呼OA审计
5 阅读
3
CVE-2025-11001
4 阅读
4
设备部署-HIDS入侵检测系统-Elkeid&Wazuh
4 阅读
5
Web入侵分析入口思路
3 阅读
蓝队
应急响应
设备部署
二进制
基础
代码审计
基础理论
实践分析
登录
Search
标签搜索
学习笔记
蓝队
应急响应
代码审计
设备部署
内存马查杀
IDS
漏洞复现
JumpServer
HFish
雷池WAF
HIDS
Snort
Suricata
NIDS
Yara规则识别样本
ELK日志分析系统
Rookit查杀
容器应急
docker
N0va7
累计撰写
31
篇文章
累计收到
1
条评论
首页
栏目
蓝队
应急响应
设备部署
二进制
基础
代码审计
基础理论
实践分析
页面
关于
友链
搜索到
14
篇与
的结果
2025-09-03
设备部署-雷池WAF&HFish&JumpServer
雷池WAFSafeLine,中文名 "雷池",是一款简单好用, 效果突出的Web应用防火墙(WAF),可以保护Web服务不受黑客攻击。防护以下安全问题:SQL 注入、XSS、代码注入、命令注入、CRLF注入、ldap注入、xpath注入、RCE、XXE、SSRF、路径遍历、后门、暴力破解、CC、爬虫等攻击。环境搭建安装雷池操作系统:LinuxCPU 指令架构:x86_64, arm64CPU 指令架构:x86_64 架构需要支持 ssse3 指令集软件依赖:Docker 20.10.14 版本以上软件依赖:Docker Compose 2.0.0 版本以上最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"添加站点docker run --name webgoat -d -p 8080:8080 -p 9090:9090 registry.cn-shanghai.aliyuncs.com/kubesec/webgoat:v2023.8 修改Linux本地hosts文件和Windows本地hosts文件8.218.45.142 www.test-waf.com主要功能展示JumpServer堡垒机JumpServer是广受欢迎的开源堡垒机,是符合4A规范的专业运维安全审计系统。帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。环境搭建在线安装 - JumpServer 文档curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v3.10.17/quick_start.sh | bash 主要功能展示其实他就是简单的管理资产的工具/平台而已,里面存放着很多资产的账号密码以及相关的管理信息,所以红队会重点攻击它,而蓝队要重点保护它此处添加了一台主机上去展示,可以看到是能连接的此处可以看到账号列表,我们添加资产的时候就会填写账号密码,这边就有集成所有的账号密码其他的功能也没什么了,基本就是这些点我们需要了解HFishHFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。环境搭建反制溯源_欺骗防御_主动防御-HFish免费蜜罐平台bash <(curl -sS -L https://hfish.net/webinstall.sh) 登陆链接:https://[ip]:4433/web/ 账号:admin 密码:HFish2021 主要功能展示
2025年09月03日
3 阅读
0 评论
0 点赞
2025-09-02
设备部署-HIDS入侵检测系统-Elkeid&Wazuh
前言上一篇介绍了两款开源的NIDS,这篇就介绍两款开源的HIDSElkeidElkeid 是一款可以满足 主机,容器与容器集群,Serverless 等多种工作负载安全需求的开源解决方案,源于字节跳动内部最佳实践。服务器配置:4C8G环境部署Elkeid 完整部署GitHub - bytedance/Elkeid: Elkeid is an open source solution that can meet the security requirements of various workloads such as hosts, containers and K8s, and serverless. It is derived from ByteDance’s internal best practices.# 从release下载的是分卷的镜像,需要先合并镜像 wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.00 wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.01 wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.02 wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.03 cat elkeidup_image_v1.9.1.tar.gz.* > elkeidup_image_v1.9.1.tar.gz #导入镜像 docker load -i elkeidup_image_v1.9.1.tar.gz docker run -d --name elkeid_community \ --restart=unless-stopped \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -p 8071:8071 -p 8072:8072 -p 8080:8080 \ -p 8081:8081 -p 8082:8082 -p 8089:8080 -p 8090:8090\ --privileged \ elkeid/all-in-one:v1.9.1仅可以使用局域网IP,不要使用 127.0.0.1 或者 hostname 或者公网IPdocker exec -it elkeid_community bash cd /root/.elkeidup/ # 命令为交互式 ./elkeidup public {ip}#172.25.23.117 ./elkeidup agent init ./elkeidup agent build ./elkeidup agent policy create # 查看登录密码 cat ~/.elkeidup/elkeid_passwd主要功能资产探针目前好像只支持内网下载客户端去连接稍微等待一会就会出现客户端主机成功连接上来了基线检测病毒扫描入侵检测WazuhWazuh 是一个免费、开源和企业级的安全监控解决方案,用于威胁检测、完整性监控、事件响应和合规性。Wazuh由部署到受监视系统的端点安全代理和管理服务器组成,管理服务器收集和分析代理收集的数据。此外,Wazuh已与Elastic Stack完全集成,提供了搜索引擎和数据可视化工具,使用户可以浏览其安全警报。Wazuh提供的功能包括日志数据分析,入侵和恶意软件检测,文件完整性监视,配置评估,漏洞检测以及对法规遵从性的支持。https://github.com/wazuh环境部署-虚拟机直接部署Virtual Machine (OVA) - Installation alternativesuser: root password: wazuhtimedatectl set-timezone Asia/Shanghai参考使用【干货】开源安全平台Wazuh的部署与体验
2025年09月02日
4 阅读
0 评论
0 点赞
2025-09-02
设备部署-NIDS入侵检测系统-Snort&Suricata
IDS是什么IDS分两类,一种是NIDS(NetWork Instruction Detection System),一种是HIDS(Host Instruction Detection System)基于主机的入侵检测系统(HIDS)–该系统将检查网络中计算机上的事件基于网络的入侵检测系统(NIDS)–该系统将检查您网络上的流量恶意问题。本篇就来介绍两个开源的NIDS系统:Snort和SuricataSnort一个开源的网络入侵检测系统(IDS)和入侵防御系统(IPS),它可以捕获通讯流量并对其做协议解析,识别或防御通讯流量中可疑或恶意的行为。国内大部分厂商基于流量的IDS的数据包捕获、协议解析、检测引擎等关键模块都是在此基础上做修改和扩展优化。官网地址:Snort - Network Intrusion Detection & Prevention SystemSnort3环境搭建sudo apt-get update && sudo apt-get dist-upgrade -y sudo apt-get install -y libpcap-dev libpcre3-dev libdumbnet-dev zlib1g-dev sudo apt-get install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtoolsudo dpkg-reconfigure tzdatamkdir ~/snort_src cd ~/snort_srccd ~/snort_src wget https://github.com/rurban/safeclib/releases/download/v02092020/libsafec-02092020.tar.gz tar -xzvf libsafec-02092020.tar.gz cd libsafec-02092020.0-g6d921f ./configure make sudo make install安装HyperscanSnort 3使用Hyperscan进行快速模式匹配。可以从Ubuntu存储库安装一个旧版本的Hyperscan,但是Hyperscan对Snort的操作和性能至关重要,最好编译Hyperscan的最新稳定版本。Hyperscan有一个需求数量,包括PCRE、gper工具、ragel和Boost库。cd ~/snort_src/ wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz tar -xzvf pcre-8.45.tar.gz cd pcre-8.45 ./configure make sudo make installcd ~/snort_src wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.tar.gz tar -xzvf gperftools-2.9.1.tar.gz cd gperftools-2.9.1 ./configure make sudo make installcd ~/snort_src wget http://www.colm.net/files/ragel/ragel-6.10.tar.gz tar -xzvf ragel-6.10.tar.gz cd ragel-6.10 ./configure make sudo make installcd ~/snort_src wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz tar -xvzf boost_1_78_0.tar.gzcd ~/snort_src wget https://github.com/intel/hyperscan/archive/refs/tags/v5.4.0.tar.gz tar -xvzf v5.4.0.tar.gz mkdir ~/snort_src/hyperscan-5.4.0-build cd hyperscan-5.4.0-build/ cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBOOST_ROOT=~/snort_src/boost_1_78_0/ ../hyperscan-5.4.0 make sudo make install安装flatbufferscd ~/snort_src wget https://github.com/google/flatbuffers/archive/refs/tags/v2.0.0.tar.gz -O flatbuffers-v2.0.0.tar.gz tar -xzvf flatbuffers-v2.0.0.tar.gz mkdir flatbuffers-build cd flatbuffers-build cmake ../flatbuffers-2.0.0 make sudo make install安装DAQ安装数据采集库(DAQ),Snort3使用的数据采集卡与Snort 2.9.0系列不同cd ~/snort_src # 可以根据自身下载最新的库 wget https://github.com/snort3/libdaq/archive/refs/tags/v3.0.5.tar.gz tar -xzvf v3.0.5.tar.gz cd libdaq-3.0.5 ./bootstrap ./configure make sudo make installsudo ldconfig最后源码安装Snort 3如果对启用其他编译时功能感兴趣,例如处理大型(超过2GB)PCAP文件的能力,或者新的命令行shell:运行./configure cmake.sh--帮助列出所有可选功能,并将它们附加到下面的./configure\u cmake.sh命令中。在Snort网站上查看Snort3的更新版本cd ~/snort_src wget https://github.com/snort3/snort3/archive/refs/tags/3.1.20.0.tar.gz tar -xzvf 3.1.20.0.tar.gz cd snort3-3.1.20.0 ./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc cd build make sudo make install /usr/local/bin/snort -V使用默认配置文件测试Snrotsnort -c /usr/local/etc/snort/snort.lua减少IDS的数据包eth0是我要监听的网卡,根据自己的网卡设置# 检查这些接口的large-receive-o load(LRO)和generic-receive-offload(GRO)的状态,使用ethtool检查状态 sudo ethtool -k eth0 | grep receive-offloadsudo vi /lib/systemd/system/ethtool.service##内容,输入以下信息 [Unit] Description=Ethtool Configration for Network Interface [Service] Requires=network.target Type=oneshot ExecStart=/sbin/ethtool -K eth0 gro off ExecStart=/sbin/ethtool -K eth0 lro off [Install] WantedBy=multi-user.targetsudo systemctl enable ethtool sudo service ethtool start创建一些配置Snort策略的文件夹sudo mkdir /usr/local/etc/rules sudo mkdir /usr/local/etc/so_rules/ sudo mkdir /usr/local/etc/lists/ sudo touch /usr/local/etc/rules/local.rules sudo touch /usr/local/etc/lists/default.blocklist sudo mkdir /var/log/snortsudo vim /usr/local/etc/rules/local.rulesalert icmp any any -> any any (msg:"ICMP Traffic Detected"; sid:10000001;rev:1;)/usr/local/etc/snort/snort.luasnort -c /usr/local/etc/snort/snort.lua -A alert_fast -i eth0 -l /var/log/snort/ -R /usr/local/etc/rules/local.rulesSnort运行帮助snort [-options] <filter options>Options: -A 设置报警模式 Set alert mode: fast, full, console, test or none (alert file alerts only) "unsock" enables UNIX socket logging (experimental). -b 以tcpdump格式记录Log包,用该格式速度快 Log packets in tcpdump format (much faster!) -B <mask> 使用CIDR掩码混淆警报和包转储中的IP地址 Obfuscated IP addresses in alerts and packet dumps using CIDR mask -c <rules> 指定snort配置文件所在的路径,如 `snort -c /etc/snort/snort.conf` Use Rules File <rules> -C 只打印带有字符数据的有效负载(没有十六进制) Print out payloads with character data only (no hex) -d 显示应用层数据 Dump the Application Layer -D 在后台(守护进程)模式下运行Snort Run Snort in background (daemon) mode -e 显示数据链路层头部信息 Display the second layer header info -f 在二进制日志写之后,不进行fflush()调用 Turn off fflush() calls after binary log writes -F <bpf> 读取伯克利包过滤器文件 Read BPF filters from file <bpf> -g <gname> 指定运行snort的组 Run snort gid as <gname> group (or gid) after initialization -G <0xid> Log Identifier (to uniquely id events for multiple snorts) -h <hn> 指定snort.conf里面定义的变量HOME_NET的值。对于-l -B一起使用且运行模式为IDS时,不能更改HONE_NET Set home network = <hn> (for use with -l or -B, does NOT change $HOME_NET in IDS mode) -H Make hash tables deterministic. -i <if> 监听<if>指定的网络接口 Listen on interface <if> -I 将网络接口名添加到警报输出中 Add Interface name to alert output -k <mode> 检验模式 Checksum mode (all,noip,notcp,noudp,noicmp,none) -K <mode> 日志模式 Logging mode (pcap[default],ascii,none) -l <ld> 指定日志存储的目录 Log to directory <ld> -L <file> 记录日志到指定的文件中 Log to this tcpdump file -M 将消息记录到syslog,不包含警报消息 Log messages to syslog (not alerts) -m <umask> Set umask = <umask> -n <cnt> 接收到<cnt>指定的包数后退出snort Exit after receiving <cnt> packets -N 关闭日志记录(报警仍然会记录) Turn off logging (alerts still work) -O 混淆已记录的IP地址 Obfuscate the logged IP addresses -p 禁用混杂模式嗅探 Disable promiscuous mode sniffing -P <snap> 设置snort的抓包截断长度,默认为1514 Set explicit snaplen of packet (default: 1514) -q 退出程序时,屏幕不显示初始化信息和最后的汇总统计信息 Quiet. Don't show banner and status report -Q 以内联模式运行 Enable inline mode operation. -r <tf> 读取并处理指定的tcpdump文件(snort的二进制日志文件) Read and process tcpdump file <tf> -R <id> Include 'id' in snort_intf<id>.pid file name -s 将警报消息记录到syslog Log alert messages to syslog -S <n=v> 设置规则文件的变量n的值为v Set rules file variable n equal to value v -t <dir> Chroots process to <dir> after initialization -T 测试并报告当前Snort的配置是否有问题 Test and report on the current Snort configuration -u <uname> 初始化后以<uname>用户的身份运行snort Run snort uid as <uname> user (or uid) after initialization -U 使用UTC作为时间戳 Use UTC for timestamps -v 终端显示打印 Be verbose -V 显示snort版本 Show version number -X 从链路层开始存储原始数据包数据 Dump the raw packet data starting at the link layer -x 如果Snort出现配置问题,则退出 Exit if Snort configuration problems occur -y 在警报和日志文件中包含年份时间戳 Include year in timestamp in the alert and log files -Z <file> 设置预处理器文件路径和名称 Set the performonitor preprocessor file path and name -? 显示snort详细用法 Show this information <Filter Options> are standard BPF options, as seen in TCPDump Longname options and their corresponding single char version --logid <0xid> Same as -G --perfmon-file <file> Same as -Z --pid-path <dir> Specify the directory for the Snort PID file --snaplen <snap> Same as -P --help Same as -? --version Same as -V --alert-before-pass Process alert, drop, sdrop, or reject before pass, default is pass before alert, drop,... --treat-drop-as-alert 在启动期间将drop、sdrop和reject规则转换为警报规则 Converts drop, sdrop, and reject rules into alert rules during startup --treat-drop-as-ignore Use drop, sdrop, and reject rules to ignore session traffic when not inline. --process-all-events Process all queued events (drop, alert,...), default stops after 1st action group --enable-inline-test Enable Inline-Test Mode Operation --dynamic-engine-lib <file> 加载指定动态检测引擎 Load a dynamic detection engine --dynamic-engine-lib-dir <path> 从指定目录中加载所有动态引擎 Load all dynamic engines from directory --dynamic-detection-lib <file> 加载指定动态规则库 Load a dynamic rules library --dynamic-detection-lib-dir <path> 从指定目录中加载所有动态规则库 Load all dynamic rules libraries from directory --dump-dynamic-rules <path> Creates stub rule files of all loaded rules libraries --dynamic-preprocessor-lib <file> 加载指定动态预处理器库 Load a dynamic preprocessor library --dynamic-preprocessor-lib-dir <path> 从指定目录中加载所有动态预处理器库 Load all dynamic preprocessor libraries from directory --dynamic-output-lib <file> 加载指定动态输出库 Load a dynamic output library --dynamic-output-lib-dir <path> 从指定目录中加载所有动态输出库 Load all dynamic output libraries from directory --create-pidfile Create PID file, even when not in Daemon mode --nolock-pidfile Do not try to lock Snort PID file --no-interface-pidfile Do not include the interface name in Snort PID file --disable-attribute-reload-thread 不创建一个线程来重新加载属性表 Do not create a thread to reload the attribute table --pcap-single <tf> Same as -r. --pcap-file <file> 指定要读取的pcaps文件名称 file that contains a list of pcaps to read - read mode is implied. --pcap-list "<list>" 指定要读取的pcaps文件列表,通过空格分隔 a space separated list of pcaps to read - read mode is implied. --pcap-dir <dir> 递归查找pcaps的目录,即指定目录,该目录下的pcaps文件都将被读取 a directory to recurse to look for pcaps - read mode is implied. --pcap-filter <filter> filter to apply when getting pcaps from file or directory. --pcap-no-filter reset to use no filter when getting pcaps from file or directory. --pcap-loop <count> this option will read the pcaps specified on command line continuously. for <count> times. A value of 0 will read until Snort is terminated. --pcap-reset if reading multiple pcaps, reset snort to post-configuration state before reading next pcap. --pcap-reload if reading multiple pcaps, reload snort config between pcaps. --pcap-show print a line saying what pcap is currently being read. --exit-check <count> Signal termination after <count> callbacks from DAQ_Acquire(), showing the time it takes from signaling until DAQ_Stop() is called. --conf-error-out Same as -x --enable-mpls-multicast Allow multicast MPLS --enable-mpls-overlapping-ip Handle overlapping IPs within MPLS clouds --max-mpls-labelchain-len Specify the max MPLS label chain --mpls-payload-type Specify the protocol (ipv4, ipv6, ethernet) that is encapsulated by MPLS --require-rule-sid Require that all snort rules have SID specified. --daq <type> 选择数据包采集模块(默认为pcap) Select packet acquisition module (default is pcap). --daq-mode <mode> 选择数据采集(DAQ)操作模式 Select the DAQ operating mode. --daq-var <name=value> 指定额外的DAQ变量 Specify extra DAQ configuration variable. --daq-dir <dir> 指定DAQ库文件路径 Tell snort where to find desired DAQ. --daq-list[=<dir>] 列出可用的数据包采集模块。默认是静态模块。 List packet acquisition modules available in dir. Default is static modules only. --dirty-pig 关机时不要刷新数据包并释放内存 Don't flush packets and release memory on shutdown. --cs-dir <dir> Directory to use for control socket. --ha-peer Activate live high-availability state sharing with peer. --ha-out <file> 将高可用性事件写入此文件 Write high-availability events to this file. --ha-in <file> 在启动(warm-start)时从该文件中读取高可用性事件 Read high-availability events from this file on startup (warm-start). --suppress-config-log Suppress configuration information output.Snort规则编写Snort 3 Rule Writing Guide - Snort 3 Rule Writing GuideSnort的响应机制alert:警报并记录(适用于需要立即采取行动的情况下)pass:忽略(适用于明确允许的流量,不进行检测)log:记录(适用于需要记录流量但不采取其他行动的情况下)activation:报警并启动另一个动态规则链dynamic:由其他activate动作的规则调用,在正常情况下,他们不会被用来检测包。一个动态规则仅能被一个"activate"动作激活。Snort规则组成规则头(Rule Header)和规则选项(Rule Options)组成Snort规则规则头定义了流量匹配的基本信息,如协议、源和目的地址、端口等。规则选项则包含了更详细的检测条件和响应动作。规则头规则头的基本格式如下:<action> <protocol> <src_ip> <src_port> -> <dst_ip> <dst_port>action:规则动作,常见的有alert(报警)、log(记录日志)、pass(通过)等。protocol:协议类型,如TCP、UDP、ICMP等。src_ip:源IP地址,可以是具体的IP,也可以是CIDR表示法的网段,还可以使用any表示任何地址。src_port:源端口号,可以是具体端口号,也可以使用any表示任何端口。dst_ip:目的IP地址,含义同src_ip。dst_port:目的端口号,含义同src_port。示例规则头:alert tcp any any -> 192.168.1.0/24 80当检测到任何源IP和源端口的TCP流量进入192.168.1.0/24网段的80端口时,触发报警规则选项规则选项,由一系列键值对组成,使用分号分隔。其格式如下:<key>:<value>常见的规则选项包括:msg:报警信息。sid:规则ID,必须唯一。rev:规则版本号。content:匹配数据包中的内容。depth:指定从数据包开始的位置进行匹配。offset:指定匹配的起始位置。nocase:忽略大小写。classtype:分类类型,用于描述规则的性质。示例规则选项:(msg:"Potential SQL Injection"; sid:1000001; rev:1; content:"' or '1'='1"; nocase;)这个就是当数据包中出现' or '1'='1的内容时(无论大小写)触发Potential SQL Injection的告警信息,版本号为1完整示例规则:alert tcp any any -> any 80 (msg:"Potential SQL Injection"; sid:1000001; rev:1; content:"' or '1'='1"; nocase;)其他示例规则SQL注入攻击警告:alert tcp any any -> any 80 (msg:"Possible SQL Injection"; content:"' OR 1=1 --"; http_uri; nocase; sid:10000000123; rev:1;)永恒之蓝特征警告:alert smb any any -> $HOME_NET any (msg:“ET EXPLOIT Possible ETERNALBLUE MS17-010”; flow:to_server,established; content:”|00 00 00 31 ff|SMB|2b 00 00 00 00 18 07 c0|”; depth:16; fast_pattern; content:”|4a 6c 4a 6d 49 68 43 6c 42 73 72 00|”; distance:0; flowbits:set,ETPRO.ETERNALBLUE; flowbits:noalert; classtype:trojan-activity; sid:2024220; rev:1;)参考文章Snort规则 - 鱼儿叁 - 博客园Snort命令行参数详解-CSDN博客Snort的使用二:入侵检测与规则编写_snort规则的应用-CSDN博客Ubuntu22.04安装Snort3并进行网络流量异常检测 - Jikefan - 博客园手写规则检测SQLMAP工具SQLMAP工具流量特征发现UA存在sqlmap关键字编写规则alert tcp $EXTERNAL_NET any -> $HOME_NET [80,443,8080] ( msg:"SQLi Attack - Potential sqlmap Activity Detected"; flow:to_server,established; content:"User-Agent"; http_header; content:"sqlmap", nocase; http_header; metadata:service http; reference:url,github.com/sqlmapproject/sqlmap; classtype:web-application-attack; sid:1000001; rev:1; )特定端口通讯警告alert tcp any 7799 -> any any (msg:"SNORT:visit destport tcp 7799"; sid:201900001; rev:1;)Suricata一个开源的网络入侵检测系统(IDS)和入侵防御系统(IPS),它可以捕获通讯流量并对其做协议解析,识别或防御通讯流量中可疑或恶意的行为。国内大部分厂商基于流量的IDS的数据包捕获、协议解析、检测引擎等关键模块都是在此基础上做修改和扩展优化。项目地址https://github.com/OISF/suricata操作手册2. 快速入门指南 — Suricata 7.0.0-dev 文档环境搭建sudo apt-get install software-properties-common sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata配置ip addrsudo vim /etc/suricata/suricata.yaml有许多可能的配置选项,我们将重点放在 HOME_NET 变量和网络接口配置。这个 HOME_NET 在大多数情况下,变量应该包括被监视接口的IP地址和正在使用的所有本地网络。默认值已经包括RFC1918网络。172.26.237.55/20 eth0Suricata规则下载入侵检测平台https://github.com/al0ne/suricata-rulesGitHub - ptresearch/AttackDetection: Attack Detection入侵检测之流量分析--suricata规则库来源梳理suricata-update日志文件suricata.log:包含 Suricata 运行时的日志信息,如启动、关闭、规则加载等,用于故障排除和监视。stats.log:包含 Suricata 的统计信息,如流量统计、规则匹配统计等,,用于性能调优和网络活动分析。fast.log:就是告警输出日志了,通常看这个就可以。eve.json:详细的事件记录,以 JSON 格式呈现,包括有关规则匹配事件的详细信息,包括协议解析、源和目标地址、端口、负载数据等,用于深入分析cat /var/log/suricata/fast.log规则检测suricata -c /etc/suricata/suricata.yaml -i eth0 -s /etc/suricata/rules/suricata.rulessuricata -c /etc/suricata/suricata.yaml -i eth0 -s /etc/suricata/rules/Behinder3.rules 自写规则安全运营-Suricata规则学习alert http any any -> any any (msg:"通达OA-handle.php-SQL注入漏洞"; content:"share/handle.php"; http_uri; content:"select"; content:"and"; reference:url,http://example.com/2023-15672; classtype:web-application-attack; sid:20240908; rev:1;) alert http any any -> any any (msg:"sqlmap tools attack"; flow:to_server; content:"User-Agent: sqlmap"; http_header; sid:1000016; rev:1;)alert tls $EXTERNAL_NET any -> $HOME_NET any (msg:"SSLBL: Malicious SSL certificate detected (CobaltStrike C&C)"; tls.fingerprint:"6e:ce:5e:ce:41:92:68:3d:2d:84:e2:5b:0b:a7:e0:4f:9c:b7:eb:7c"; reference:url, sslbl.abuse.ch/ssl-certificates/sha1/6ece5ece4192683d2d84e25b0ba7e04f9cb7eb7c/; sid:902202003; rev:1;) alert tls $EXTERNAL_NET any -> $HOME_NET any (msg:"ET HUNTING Suspicious Empty SSL Certificate - Observed in Cobalt Strike"; flow:established,to_client; tls.cert_subject; bsize:25; content:"C=, ST=, L=, O=, OU=, CN="; endswith; fast_pattern; classtype:targeted-activity; sid:2023629; rev:7; metadata:affected_product Any, attack_target Client_Endpoint, created_at 2016_10_24, deployment Perimeter, performance_impact Low, signature_severity Major, updated_at 2024_03_27;)集成系统镜像-securityonion集成snort/suricata、bro(zeek)、elk、ossec等Security Onion Solutions两者对比其实按照安装成本和操作的简易程度来说,Suricata相对于Snort3来说更加容易上手,Snort3的安装太过麻烦,建议使用Suricata
2025年09月02日
5 阅读
0 评论
0 点赞
2025-09-01
应急响应-工具-ELK日志分析系统与Yara规则识别样本
ELK日志分析系统Elasticsearch:用于存储收集到的日志信息Logstash:用于收集日志,SpringBoot应用整合了Logstash以后会把日志发送给Logstash,Logstash再把日志转发给ElasticsearchKibana:通过Web端的可视化界面来查看日志很多日志分析的应用都不够全面,ELK解决了很多不完善的地方,是蓝队日志分析的一个好工具,是一个外国的产品,在系统下搭建很麻烦,很容易出错,如果只是日常使用,方便了解,建议在docker下搭建,如果是实战,建议在系统下搭建,毕竟docker只是个虚拟容器。环境搭建使用的Docker镜像sebp/elk:793注意该容器使用的内存大约在2.1G左右服务器需要安装Docker、Docker-compose这个镜像是Elasticsearch、Logstash、Kibana集成容器镜像,使用docker或者docker-compose启动后各个组件就会启动成功apt update apt install docker apt install docker-compose # 设置一个进程可以拥有的VMA(虚拟内存区域)的数量 sysctl -w vm.max_map_count=262144 # 使上个命令立即生效 sysctl -p 如果有出现vm.max_map_count = 262144说明设置成功vim docker-compose.yml # 文件内容 version: "3.5" services: elk: image: sebp/elk:7.12.0 volumes: - ./elk/02-beats-input.conf:/etc/logstash/conf.d/02-beats-input.conf environment: ES_JAVA_OPTS: -Xms512m -Xmx512m ports: #Kibana 网络界面 - "5601:5601" # Elasticsearch JSON 接口 - "9200:9200" # Logstash Beats 接口 - "5044:5044"在docker-compose.yml文件目录下创建elk文件夹,创建Logstash配置文件02-beats-input.conf#进入elk目录 cd elk #创建并编辑02-beats-input.conf文件 vi 02-beats-input.confinput { tcp { port => 5044 codec => json_lines } } output{ elasticsearch { hosts => ["localhost:9200"] index => "beat-%{+YYYY.MM.dd}" } }docker-compose up -d elk上传日志文件解析特定部署采集分析恶意样本Yara分析Yara工具地址GitHub - VirusTotal/yara: The pattern matching swiss knife恶意样本库GitHub - ytisf/theZoo: A repository of LIVE malwares for your own joy and pleasure. theZoo is a project created to make the possibility of malware analysis open and available to the public.相关开源的检测规则GitHub - Yara-Rules/rules: Repository of yara ruleshttps://github.com/JerryLinLinLin/Huorong-ATP-Ruleshttps://github.com/m-sec-org/d-eyes/tree/master/yaraRules规则分类Antidebug_AntiVM:反调试/反沙箱类yara规则Crypto:加密类yara规则CVE_Rules:CVE漏洞利用类yara规则email:恶意邮件类yara规则Exploit-Kits:EK类yara规则Malicious_Documents:恶意文档类yara规则malware:恶意软件类yara规则Mobile_Malware:移动恶意软件类yara规则Packers:加壳类yara规则utils:通用类yara规则Webshells:Webshell类yara规则检测范围样本文件内存数据网络流量Yara规则开发参考文章YARA规则与办公安全:高效检测策略Yara规则内容支持字符串、正则表达式、十六进制进行匹配特征规则:字符串:定义一个变量 $a = "字符串内容"正则表达式:定义一个变量 $a = /正则表达式内容/十六进制:定义一个变量 $a = {十六进制内容}条件规则:and:与 or:或 not:非all of them:所有条件匹配即告警any of them:有一个条件匹配即告警$a and $b and $c:abc同时匹配即告警($a and $b) or $c:匹配a和b或c即告警Yara规则常用修饰符:nocase:不区分大小写base64:base64字符串xor:异或字符串wide:宽字符如何进行特征提取通过多个样本的对比来找出共同点特征通过分析协议、文件头等来找出特征实例展示利用已知规则测试识别挖矿、勒索、C2、WebShellyara64.exe rules\malware_index.yar -r example利用已知规则测试识别算法yara64.exe rules\crypto_index.yar -r example利用已知规则测试识别加壳yara64.exe rules\packers_index.yar -r example利用已知规则测试识别反沙箱yara64.exe rules\antidebug_antivm_index.yar -r example自写规则识别恶意软件-测试(并不能进行实际识别)rule xmrig_find : miner { meta: author = "ElmWhite" date = "2025-02-20" strings: $hex = {4D 5A} $a = "stratum" $b = "xmrig" $c = "pool" condition: all of them } 自写规则识别内存马rule mem_find : memshell { meta: author = "ElmWhite" date = "2024-09-05" strings: $a = "org.apache.coyote.type.MapLikeType" $b = "org.apache.coyote.deser" $c = "org.apache.coyote.exc" condition: ($a and $b) or $c }yara64.exe rules\mem_find.yar PID
2025年09月01日
3 阅读
0 评论
0 点赞
2025-08-27
应急响应-Rookit后门查杀
Rookit和内存马的区别内存马一般是作为控制网站的webshell的进一步权限维持,而Rookit一般是用来控制服务器隐藏常规C2后门的权限维持手法。Rookit常规隐藏手法-Windows我们知道常规C2后门的排查手法就是通过网络连接、进程排查进行分析定性,那么Rookit可以做到哪些方面的隐藏呢?Rookit可以隐藏进程,隐藏网络连接,同时它还可以隐藏文件,让蓝队成员无法排查到这个C2后门的所在。隐藏进程隐藏网络连接隐藏文件应急处理方法碰运气-使用对应Rookit的卸载文件进行卸载常规手法-火绒剑看隐藏的进程可以看到火绒剑可以看到隐藏的进程,而其他的一些工具无法看到隐藏的进程通过进程PID我们可以直接结束该进程常规手法-通过Unhide工具查看隐藏的进程和端口unhide上面的条件仅仅只有进程的PID对我们有点用,本地隐藏的端口是没什么用的,因为我们不知道连接的C2服务端以及服务端开放连接的端口,所以说这个条件除非我们卸载了Rookit看到网络连接才能正确的封禁IP和端口,不然基本没用通过PID我们可以将进程结束掉,从而防止危害进一步扩大。(这边我们尝试通过cmd的结束进程命令来结束恶意进程似乎不行,提示未找到PID,最好还是火绒剑结束比较稳妥)Rookit常规隐藏手法-LinuxGitHub - f0rb1dd3n/Reptile: LKM Linux rootkit隐藏进程/reptile/reptile_cmd hide 5803隐藏网络连接/reptile/reptile_cmd tcp 114.55.115.6 4444应急处理方法常规方法-通过Unhide工具查看隐藏sudo apt-get install unhideunhide proc通过kill命令即可清除运行的后门进程至于网络端口只能发现本地的端口,其实没啥用,所以就不演示了,具体的使用方法可以自己体验补充:Linux杀软-clamavLinux病毒扫描工具:ClamAVClam AntiVirus是一个类UNIX系统上使用的反病毒软件包。主要应用于邮件服务器,采用多线程后台操作,可以自动升级病毒库。ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是无法清除。
2025年08月27日
2 阅读
0 评论
0 点赞
1
2
3