Wazuh和Nmap集成扫描内网中开放端口和服务

作者:Pamela@涂鸦智能安全实验室

前言

本篇文章将介绍利用WazuhNmap集成,扫描内网中开放端口和服务。

此处我们将使用python-nmap**(https://pypi.org/project/python-
nmap/)**来扫描不同子网的开放端口/服务。

Nmap扫描器需要安装在不同网段的不同Wazuh agent上 ,其输出被转换为JSON,并添加到每个agent的active- responseses.log中。然后扫描通过cron安排作业,每周、每月等执行一次,这里也可以通过Wazuh的wodle command集成来触发。

环境准备

  • Nmap需要安装在不同网段不个代理上,以运行网络扫描。(如果每个代理上安装也不是不行,看你喜欢。)
  • 安装python-nmap(https://pypi.org/project/python-nmap/)

实现过程

agent端

nmap.py

注:这个脚本可以放在agent上的任何文件夹中,它的执行可以用cron来安排。

import nmap  
import time  
import json  
nm = nmap.PortScanner()  
#Add subnets to scan to the Subnets Array  
subnets=['192.168.252.0/24','192.168.1.0/24']  
for subnet in subnets:  
json_output={}  
nm.scan(subnet)  
for host in nm.all_hosts():  
json_output['nmap_host']=host  
for proto in nm[host].all_protocols():  
if proto not in ["tcp", "udp"]:  
continue  
json_output['nmap_protocol']=proto  
lport = list(nm[host][proto].keys())  
lport.sort()  
for port in lport:  
hostname = ""  
json_output['nmap_port']=port  
for h in nm[host]["hostnames"]:  
hostname = h["name"]  
json_output['nmap_hostname']=hostname  
hostname_type = h["type"]  
json_output['nmap_hostname_type']=hostname_type  
json_output['nmap_port_name']=nm[host][proto][port]["name"]  
json_output['nmap_port_state']=nm[host][proto][port]["state"]  
json_output['nmap_port_product']=nm[host][proto][port]["product"]  
json_output['nmap_port_extrainfo']=nm[host][proto][port]["extrainfo"]  
json_output['nmap_port_reason']=nm[host][proto][port]["reason"]  
json_output['nmap_port_version']=nm[host][proto][port]["version"]  
json_output['nmap_port_conf']=nm[host][proto][port]["conf"]  
json_output['nmap_port_cpe']=nm[host][proto][port]["cpe"]  
with open("/var/ossec/logs/active-responses.log", "a") as active_response_log:  
active_response_log.write(json.dumps(json_output))  
active_response_log.write("\n")  
time.sleep(2)

manager端

检测规则
<group name="linux,nmap,network_scan">  
<rule id="200400" level="3">  
<decoded_as>json</decoded_as>  
<field name="nmap_host">\.+</field>  
<field name="nmap_protocol">\.+</field>  
<description>NMAP: Network Scan Host $(nmap_host)</description>  
<options>no_full_log</options>  
</rule>  
</group>

扫描结果

{  
"timestamp":"2022-06-29T18:20:32.001+0000",  
"rule":{  
"level":3,  
"description":"NMAP: Network Scan Host 192.168.252.222",  
"id":"200400",  
"firedtimes":55,  
"mail":false,  
"groups":[  
"linux",  
"nmap",  
"netwprk_scan"  
]  
},  
"agent":{  
"id":"017",  
"name":"ubunutu2004vm",  
"ip":"192.168.252.191"  
},  
"manager":{  
"name":"ASHWZH01"  
},  
"id":"1645591052.115711751",  
"decoder":{  
"name":"json"  
},  
"data":{  
"nmap_host":"192.168.252.222",  
"nmap_protocol":"tcp",  
"nmap_port":"443",  
"nmap_hostname":"_gateway",  
"nmap_hostname_type":"PTR",  
"nmap_port_name":"https",  
"nmap_port_state":"open",  
"nmap_port_product":"OPNsense",  
"nmap_port_reason":"syn-ack",  
"nmap_port_conf":"10"  
},  
"location":"/var/ossec/logs/active-responses.log"  
}

结语

赶KPI 写得有点仓促,敬请见谅,如果有疑问可以私信我哈~

漏洞悬赏计划:涂鸦智能安全响应中心(https://src.tuya.com)欢迎白帽子来探索。

招聘内推计划:涵盖安全开发、安全测试、代码审计、安全合规等所有方面的岗位,简历投递sec@tuya.com
请注明来自FreeBuf

Pamela@涂鸦智能安全实验室

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

扫码领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值