Random Tech Thoughts

The title above is not random

Nmap

From ksplice’s blog. After being acquired by Oracle, this article is lost on their new blog at Oracle. This is the archive I found.

扫描 TCP 端口 22, 80:

nmap -sS -p22,80 192.168.1.0/24
  • -sS 表示扫描 TCP 端口, -sU 表示 UDP 端口
  • -p 端口范围可以用 -p1-500 的形式制定范围, -p- 表示所有端口。

nmap 会先发送 ICMP echo 来判断目标是否存在。对于 TCP 端口扫描,nmap 再发送 SYN 包,等待 SYN/ACK 回复。

可以用 nmap 发送不合法的包:

  • -sN null scan
  • -sX Xmas scan
  • --mut chop packets into little fragments
  • --badsum send invalid checksum

不合法的包可以用来判断 OS 类型,下面的命令可以探测 OS 类型::

nmap -sS -O 192.168.1.0/24

检查到端口打开后还可以更进一步:

  • -sV 检查服务器软件版本 (version detection subsystem)

其他:

  • --source-port 指定 nmap 发出的 TCP/UDP 包的端口
  • -S TCP idle scan (高级玩意)
  • nmap 支持 XML 等输出格式
  • nmap 还有用 Lua 写的插件