我正在尝试将来自 nmap 的所有扫描重定向到另一个目的地。我正在尝试 IPTABLES,但我不知道如何将 nmap 扫描与合法流量区分开来。
它是可以通过 IPTABLES 实现的,还是我应该去其他地方看看?
我想在 Docker 容器中运行 Nmap 工具,但不使用默认的 root 用户帐户。我已经通过 setcap 设置了(希望)正确的功能。不幸的是,当我尝试运行它时,我只收到“不允许操作”错误。
这是我的码头文件:
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
RUN microdnf install nmap which
RUN setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap)
USER 1001
CMD ["nmap", "--privileged", "-sU", "localhost"]
关于如何解决这个问题的任何想法?
我想阻止 nmap 的 ack ping 探测,为了做到这一点,我首先需要阻止所有传入端口 80 的 ack 数据包。我使用了这个命令,但它没有工作:
iptables -A INPUT -p tcp --dport 80 --tcp-falgs ALL ACK -j DROP
问题是它适用于 80 和 443 以外的任何端口,它们恰好是 http/https 协议的端口。有什么方法可以使这项工作并阻止这些端口上那些意外的 ACK 数据包?
这是我输入链中的所有规则:
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 80 --tcp-flags ALL ACK -j LOG --log-prefix "PSAD: ACK PING "
iptables -A INPUT -p tcp --dport 80 --tcp-flags ALL ACK -j DROP
iptables -A INPUT -m conntrack --ctstate INVALID -j LOG --log-prefix "DROP INVALID " --log-ip-options --log-tcp-options
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
先感谢您...
我有两台机器,server1 和 server2。在 server2 上,我停止了 firewalld。
[root@server2 ~]# systemctl stop firewalld
从 server1,nmap 返回Host is up
.
[root@server1 ~]$ nmap -sn server2
Starting Nmap 6.40 ( http://nmap.org ) at 2020-09-02 11:27 CDT
Nmap scan report for server2 (10.17.45.13)
Host is up (0.00045s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
我在 server2 上启用了 firewalld。
[root@server2 ~]# systemctl start firewalld
从 server1,nmap 返回Host seems down
,因此server2上的 firewalld 导致 nmap 返回 Host 似乎已关闭。
[root@server1 ~]$ nmap -sn server2
Starting Nmap 6.40 ( http://nmap.org ) at 2020-09-02 11:29 CDT
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.01 seconds
在 server1 上,ping/echo/ICMP 有效。
[root@server1 ~]$ ping -c4 server2
PING server2 (10.17.45.13) 56(84) bytes of data.
64 bytes from server2 (10.17.45.13): icmp_seq=1 ttl=64 time=0.436 ms
64 bytes from server2 (10.17.45.13): icmp_seq=2 ttl=64 time=0.388 ms
64 bytes from server2 (10.17.45.13): icmp_seq=3 ttl=64 time=0.338 ms
64 bytes from server2 (10.17.45.13): icmp_seq=4 ttl=64 time=0.390 ms
--- server2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.338/0.388/0.436/0.034 ms
以下是server2 上public
和区域的防火墙设置。drop
icmp-block 为空意味着没有 ICMP 类型被阻止,并且 icmp-block-inversion 设置no
为允许所有 IMCP 流量。
[root@server2 ~]# firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eno16777984
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@server2 ~]# firewall-cmd --zone=drop --list-all
drop
target: DROP
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
/var/log/firewalld
当 nmap 返回时没有记录任何内容Host seems down
。
我的目标是让 nmap 将 IP 解析为没有 --system-dns 标志或 --dns-servers 选项的主机名。
当我发出以下不带 --system-dns 标志或 --dns-servers 选项的 nmap 命令时,192.168.0.16 被解析为主机名 server1.example.com。192.168.0.17 未解析为主机名。我知道这是因为根据https://nmap.org/book/host-discovery-dns.html,“Nmap 使用自定义存根解析器”,这意味着 nmap 有它自己的 DNS 解析器,而不是我们的本地 DNS 服务器. 有趣的。
[root@client1]# nmap -sn 192.168.0.0/24 -vvv
Initiating Parallel DNS resolution of 256 hosts. at 11:22
Completed Parallel DNS resolution of 256 hosts. at 11:22, 0.02s elapsed
DNS resolution of 18 IPs took 0.02s. Mode: Async [#: 2, OK: 5, NX: 13, DR: 0, SF: 0, TR: 18, CN: 0]
Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00063s latency).
Nmap scan report for 192.168.0.17
Host is up (0.00059s latency).
--system-dns
使用标志时不会发生此问题。
[root@client1]# nmap -sn 192.168.0.0/24 --system-dns
Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00029s latency).
Nmap scan report for server2.example.com (192.168.0.17)
Host is up (0.00026s latency).
--dns-servers
当该选项用于声明应使用我们的主 DNS 服务器 (192.168.0.6)时,不会出现此问题。
[root@client1]# nmap -sn 192.168.0.0/24 --dns-servers 192.168.0.6
Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00039s latency).
Nmap scan report for server2.example.com (192.168.0.17)
Host is up (0.00036s latency).
nslookup 显示两个 IP 都可以解析为相应的主机名。
[root@client1]# nslookup 192.168.0.16
16.0.168.192.in-addr.arpa name = server1.example.com.
[root@client1]# nslookup 192.168.0.17
17.0.168.192.in-addr.arpa name = server2.example.com.
我们使用 CentOs 7 作为我们的操作系统。/etc/resolv.conf
包含以下内容,表示 192.168.0.6 是我们的主 DNS 服务器。
[root@client1]# cat /etc/resolv.conf
nameserver 192.168.0.6
nameserver 8.8.8.8
192.168.0.6(我们的主 DNS 服务器)使用 Bind 版本 9 作为 DNS 服务。
[root@dns1]# named -v
BIND 9.9.4-RedHat-9.9.4-51.el7 (Extended Support Version)
这是相关的片段/var/named/forward.example.com
。
[root@dns1]# cat /var/named/forward.example.com
$ORIGIN example.com.
$TTL 1D
@ IN SOA ns1.example.com. hostmaster.example.com. (
2016032200 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ; minimum
)
;name used for the nameserver
IN NS ns1.example.com.
;ip address of the nameserver
ns1 IN A 192.168.0.6
;hostname to ip address resolutions
server1 IN A 192.168.0.16
server2 IN A 192.168.0.17
这里是一个片段/var/named/reverse.example.com
。
[root@client1]# cat /var/named/reverse.example.com
$TTL 1D
@ IN SOA ns1.example.com. root.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ; minimum
)
0.168.192.in-addr.arpa. IN NS ns1.example.com.
@ IN NS ns1.example.com.
ns1 IN A 192.168.0.6
16 IN PTR server1.example.com.
17 IN PTR server2.example.com.
我需要8081
为我的应用程序打开端口。我想从另一台服务器连接到应用程序。问题我无法打开端口。我使用端口 8081 和 ip 0.0.0.0 和 127.0.0.1 启动应用程序,我启用了 ufw /disabled ufw,我阅读了教程https://www.digitalocean.com/community/tutorials/how-to-set-up-防火墙与 ufw-on-ubuntu-20-04
我的系统:
经销商编号:Ubuntu D
描述:Ubuntu 20.04 LTS
发布时间:20.04
代号:焦点
输出sudo lsof -i -P -n | grep LISTEN
:
应用程序 4431 foo 27u IPv4 64011 0t0 TCP *:8081 (LISTEN)
的输出sudo ufw status
状态:活跃
采取行动 -- ------ ---- 22/tcp ALLOW Anywhere
8081/tcp ALLOW Anywhere
22 ALLOW Anywhere
8081 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8081/tcp (v6) ALLOW Anywhere (v6)
22 (v6) 允许在任何地方 (v6)
8081 (v6) 允许在任何地方 (v6)
nmap输出:
在 2020-06-09 21:03 UTC启动 Nmap 7.80 ( https://nmap.org ) myip.bc.googleusercontent.com (myip) 的 Nmap 扫描报告主机已启动(0.00062 秒延迟)。未显示:999 个过滤端口 PORT STATE SERVICE 22/tcp open ssh
Nmap 完成:在 8.19 秒内扫描了 1 个 IP 地址(1 个主机启动)
我注意到nmap -sn
不再提供远程主机的 MAC 地址,如我可以使用 nmap 发现 IP 和 MAC 地址吗?
我想得到类似netdiscover
输出的东西。仅 IP 和 MAC 地址。
Nmap 7.80 版
wolf@linux:~$ nmap -V
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
例如
wolf@linux:~$ nmap -sn -oG - 10.10.10.*
# Nmap 7.80 scan initiated Wed May 20 12:38:57 2020 as: nmap -sn -oG - 10.10.10.*
Host: 10.10.10.1 () Status: Up
Host: 10.10.10.2 () Status: Up
Host: 10.10.10.3 () Status: Up
# Nmap done at Wed May 20 12:38:59 2020 -- 256 IP addresses (3 hosts up) scanned in 2.25 seconds
wolf@linux:~$
我每分钟都在使用 nmap 7.6 扫描我的本地有线网络。
问题是扫描结果不稳定:有时主机会在结果中丢失,尽管它们确实可用(例如,我用来进入该网络的路由器)。一分钟后,同样的扫描再次找到了机器。
我的 nmap 命令是:
nmap -sS -n -p T:21,22,80,443,2101,9009\
-oX "/tmp/nmap-`date -u --rfc-3339=seconds`"\
192.168.178.0/24
由于 ARP 响应,nmap 在 XML 文件中将主机报告为“up”:
<status state="up" reason="arp-response" reason_ttl="0"/>
报告为“失踪”的主机因情况而异;报告丢失的主机并不总是同一台主机。
我现在的问题是:
有关的:
我在我的 IP 摄像机上运行 nmap 以查看打开了哪些端口。正如预期的那样,我看到在端口号 554 上打开了一个 RTSP 端口。但是,我没有看到任何为 RTP-RTCP 流打开的端口。
这是 nmap 的输出:
PORT STATE SERVICE
22/tcp filtered ssh
80/tcp open http
554/tcp open rtsp
8000/tcp open http-alt
8200/tcp open trivnet1
9010/tcp open sdr
9020/tcp open tambora
49152/tcp open unknown
据我了解,如果我向 RTSP 服务器发送一个 RTSP 命令,我会得到一个 SDP 或一些类似的演示文稿,提供我可以在 UDP 端口上获取 RTP/RTCP 流的端口。我的期望不正确吗?摄像机确实支持 H.264、RTSP、RTP、RTCP。