nmap - 如何在不压缩过滤和关闭端口的情况下运行 nmap 并输出到 xml
问题描述
如果我使用以下参数运行 nmap:
nmap -T4 --top-ports 7500 -Pn -oX output.xml xxx.xxx.xxx.xxx
我在 XML 文件中得到输出
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<?xml-stylesheet href="file:///C:/Program Files (x86)/Nmap/nmap.xsl" type="text/xsl"?>
<!-- Nmap 7.80 scan initiated Thu May 14 08:39:46 2020 as: nmap -T4 --top-ports 7500 -Pn -oX output.xml xxx.xxx.xxx.xxx -->
<nmaprun scanner="nmap" args="nmap -T4 --top-ports 7500 -Pn -oX output.xml xxx.xxx.xxx.xxx" start="1589470786" startstr="Thu May 14 08:39:46 2020" version="7.80" xmloutputversion="1.04">
<scaninfo type="syn" protocol="tcp" numservices="7500" services="1-35,37-226,228-231,REDACTED-FOR-BREVITIY" />
<verbose level="0" />
<debugging level="0" />
<host starttime="1589470788" endtime="1589470801">
<status state="up" reason="user-set" reason_ttl="0" />
<address addr="xxx.xxx.xxx.xxx" addrtype="ipv4" />
<hostnames />
<ports>
<extraports state="filtered" count="4290">
<extrareasons reason="no-responses" count="4290" />
</extraports>
<extraports state="closed" count="3209">
<extrareasons reason="resets" count="3209" />
</extraports>
<port protocol="tcp" portid="22">
<state state="open" reason="syn-ack" reason_ttl="53" />
<service name="ssh" method="table" conf="3" />
</port>
</ports>
<times srtt="77169" rttvar="3497" to="100000" />
</host>
<runstats>
<finished time="1589470801" timestr="Thu May 14 08:40:01 2020" elapsed="15.07" summary="Nmap done at Thu May 14 08:40:01 2020; 1 IP address (1 host up) scanned in 15.07 seconds" exit="success" />
<hosts up="1" down="0" total="1" />
</runstats>
</nmaprun>
我正在尝试确定哪些 4290 端口被过滤(无响应)以及哪些 3209 被关闭(重置)。
是否有一些 nmap 标志组合可用于输出为 XML 格式,而不是压缩过滤/关闭的端口?
解决方案
我无法在文档中找到指定的内容: https ://nmap.org/book/nping-man-output-options.html
但是运行调试级别为 3 ( -d3
) 的 nmap 命令会导致 nmap 将每个端口单独写入文件。它还将大量调试信息写入标准输出,这在我的用例中是不幸的。
nmap -T4 --top-ports 7500 -Pn -d3 -oX output.xml xxx.xxx.xxx.xxx
<ports><port protocol="tcp" portid="1"><state state="filtered" reason="no-response" reason_ttl="0"/><service name="tcpmux" method="table" conf="3"/></port>
<port protocol="tcp" portid="2"><state state="filtered" reason="no-response" reason_ttl="0"/><service name="compressnet" method="table" conf="3"/></port>
<port protocol="tcp" portid="3"><state state="filtered" reason="no-response" reason_ttl="0"/><service name="compressnet" method="table" conf="3"/></port>
<port protocol="tcp" portid="4"><state state="filtered" reason="no-response" reason_ttl="0"/><service name="unknown" method="table" conf="3"/></port>
<port protocol="tcp" portid="5"><state state="filtered" reason="no-response" reason_ttl="0"/><service name="rje" method="table" conf="3"/></port>
<port protocol="tcp" portid="6"><state state="filtered" reason="no-response" reason_ttl="0"/><service name="unknown" method="table" conf="3"/></port>
推荐阅读
- html - CSS Flexbox:如何为所有人设置相同的高度
- 独立于不同字体大小的项目?
- css - 如何在自动调整网格列模板中使用一列占用 2 个跨度将网格项包装为全宽
- php - Symfony5; 无法访问连接的实体值
- django - 用于在管理页面中列出 aws iam 用户的 django 模型
- html - Contact Form Submit Button link to Email
- java - 处理器线程、Tomcat 线程、Java 线程
- flutter - 具有不同笔划宽度的 CircularProgressIndicator
- r - 在数据框中查找以分钟为单位的时间差并添加为列
- javascript - 关于如何基于“功能”(nestjs)构建项目和路线的建议
- c++ - 返回数组时出现分段错误