Networking
為什麼即使我使用 sudo 也不能使用 -O 選項執行 nmap
我正在嘗試確定我的機器正在使用哪些埠。我在網上找到了一篇文章,其中列出了一種方法,如下所示:
$ sudo nmap -sT -O localhost
我相信這會給我一個監聽 TCP 數據包的所有埠的列表。但是,當我輸入此命令時,我得到以下結果:
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:07 EDT socket troubles in HostOsScan: Permission denied (13)
如果我以 sudo 身份執行,我怎麼能缺乏在我的機器上執行某些東西的權限?
我試著執行:
$ sudo nmap -sT localhost
並得到:
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT Nmap scan report for localhost (127.0.0.1) Host is up (0.000094s latency). Not shown: 999 closed ports PORT STATE SERVICE 631/tcp open ipp
只是嘗試
nmap
沒有爭論,再次被拒絕許可!?$ sudo nmap localhost Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-03 11:05 EDT Couldn't open a raw socket. Error: Permission denied (13)
查看
nmap's
--help
選項,我看到它-O
啟用了作業系統檢測。為什麼我無權使用此選項 - 尤其是使用sudo
? (注意:我目前正在執行 Ubuntu 18.04 和 20.04)(注意:接受的答案解決了我的根本問題 - 查看埠,但評論部分中的答案解釋了為什麼我遇到問題
nmap
。顯然,因為我安裝了snap
,我還需要執行:$ sudo snap connect nmap:network-control
之前
nmap
可以正常工作
如果您試圖確定您的機器正在使用哪些埠,則不需要掃描。您可以直接列出埠
netstat -nap ss -nap
如果您不是 root,請忽略該
-p
標誌。這些LISTEN
行對您來說是重要的,您可以使用awk
. 例如netstat -nap | awk 'NR==1 || /LISTEN/'
首先“我正在嘗試確定我的機器正在使用哪些埠。” 然後刪除 -O 因為您不需要知道您的本地作業系統是什麼。
可能需要更多資訊。
- 你在執行什麼作業系統?也許包括哪個核心
- 你在執行防火牆嗎?或 Fail2ban 或任何相關的安全服務?
- 可以安裝舊版本嗎?我從 Ubuntu repo 安裝的 Nmap v7.80 沒有顯示同樣的問題。
- 您是在虛擬機、VPS 還是託管系統中?
- 這是一個幾乎沒有安裝程序的全新安裝嗎?如果是這樣,你有一個安靜的系統,沒有太多的噪音,沒有太多的檢測。
- 嘗試過其他作業系統檢測 Nmap 選項?–osscan-limit –osscan-guess –max-os-tries連結
缺少檢測到的 TCP 埠使作業系統檢測變得困難。對 TCP 請求的回復是作業系統檢測的工作方式。在這裡更好地解釋https://nmap.org/book/osdetect-methods.html