一次局域网对笔记本暴露端口扫描

字数: 659

最近学了点渗透,感觉对外暴露端口是蛮危险的事情,所以就用 nmap -O 扫了下系统指纹,顺便连端口都给扫了:

1
2
3
4
5
6
Host is up (0.0086s latency).
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
1053/tcp open  remote-as
3001/tcp open  nessus
8080/tcp open  http-proxy

这里对 192.168.xx.0/24 网段直接暴露了三个端口!

所以我用 ss 扫了下端口占用情况:

1
sudo ss -tlnp | grep -E '1053|3001|8080'
1
2
3
4
5
Place your right index finger on the fingerprint reader
LISTEN 0      511                0.0.0.0:3001       0.0.0.0:*    users:(("node-MainThread",pid=1911069,fd=25))
LISTEN 0      4096               0.0.0.0:8080       0.0.0.0:*    users:(("docker-proxy",pid=28424,fd=7))
LISTEN 0      4096                     *:1053             *:*    users:(("mihomo",pid=2240089,fd=10))
LISTEN 0      4096                  [::]:8080          [::]:*    users:(("docker-proxy",pid=28455,fd=7))

其实都很正常的软件,但恰恰是这些软件没做好设置直接对外暴露端口了,这些应该都是仅在内网 127.0.0.1 才需要访问的。
从 1053 开始,这是你懂的软件,从配置文件上找发现 1053 是做 dns 解析用的,这里直接用 :1053,直接暴露了,listen 改成 127.0.0.1:1053 即可。

1
2
3
4
5
dns:
  enable: true
  listen: :1053
  ipv6: true
  enhanced-mode: fake-ip

然后是 3001,这个是 nodejs 服务,我跑 cloudui 来展示 claude code 的代码,看 latex 公式很好用,但是暴露出来我可就不喜欢了……
找半天没看到 cloudui 的配置,我就直接把 3001 端口用防火墙阻隔掉吧。
我电脑已经有了 ufw,但是没启用。我首先放行 22 端口,因为有时候还是需要 22 端口用来连 ssh 的,然后开启 ufw 关掉 3001 端口对外网的暴露:

1
2
3
sudo ufw allow ssh
sudo ufw enable
sudo ufw deny 3001/tcp

注:初次使用 ufw 这里还需要放行很多端口,不然都没办法上网(x
比如你需要放行 80, 443, 53 对外:

1
2
3
sudo ufw allow out 80
sudo ufw allow out 443
sudo ufw allow out 53

如果有 tun 虚拟网卡玩法的 Meta 还得额外放行,这个自己 AI。

这样 3001 外网就无法访问了。

还有最后一个 8080 由 docker 管理的 sqli_hub。一堆 sql 注入漏洞的容器,配置的时候直接给外网暴露了。
这个需要重建容器……

1
docker run -d --name sqli-labs -p 127.0.0.1:8080:80 acgpiano/sqli-labs

以后建容器记得严格管控端口。

这样一波操作后 nmap 从局域网扫笔记本就干净多了:

1
2
PORT   STATE  SERVICE
22/tcp closed ssh

只有 ssh 服务在我用 systemd 启用的时候才可以用。