早上好各位 ! 今天是第三天 !
原本想寫安裝虛擬機的教學,但看到網路上太多大佬出過了,還有各個電腦版本的教學,所以這種事果然還是交給那些專業的吧~
那麼,老是在打 CTF 時用到 nc 這個指令的你,有認真了解過他的意思嗎?
不過以下在 CTF 中不常用到,但學會的話對於日常工作時會蠻方便的哦~
nc 也就是 Netcat,是 Linux 系統中十分好用的 TCP/UDP 網路程式
可以用來做網路連線,來和其他客戶端or伺服器端連線
在一般的 Linux 系統中,連接埠 ( port ) 0 到 1023 需要有 root 權限,而 1024 以上的一般的使用者皆可使用nc [<options>] <host> <port>
-l
(listen):監聽模式,作為伺服器。-p
(port):設定本地主機使用的端口號。-v
(verbose):顯示指令執行過程的詳細信息。-z
(zero-I/O):掃描端口,不傳送資料。伺服器端(Server) :nc -l ip_address port_number
客戶端(Client) :nc ip_address port_number
nc 指令加上 -l 後,就能就轉變成監聽模式,成為伺服器。
連線後任何一方輸入的訊息,都會立即顯示在另一端,就像聊天室一樣。
也可以用 nc -lv <port>
加上-v來看更詳細狀態。nc -lkv <port>
加上-k可確保斷開連線後此連線仍保持開啟。
nc -v ip_address port_number
用來檢測伺服器特定的連接埠(port)是否有開啟,會顯示連線成功或失敗的訊息。
nc -zv ip_address port_number
功能類似ping(網絡診斷工具),進行 port 掃描 / 偵測,不建立完整連線,不傳送資料。
例如 :nc -zv [google.com](http://google.com/) 443
443
:檢查 TCP port 443(HTTPS)是否開啟。
如果回傳訊息有succeeded,表示 Google 的 HTTPS 服務正常。
nc -z -v -n ip_address port1-port2
或 nc -zv ip_address port1-port2
可用於掃描多個port連線裝況
傳送者(A) :nc hostB.com <port> < file.txt
接收者(B) :nc -lv <port> > file.txt
傳送者(A) :nc hostB.com <port> < file_path
接收者(B) :nc -lv <port> > save_file_path
傳送者(A) :tar cvf - my_folder | nc B_host <port>
接收者(B) :nc -lv <port> | tar xvf -
tar cvf - /path/to/dir | nc hostB.com <port>
(傳送者)
以上 ! 大概介紹了一些常用的~
更深入的話可以在終端機使用nc -help
或是 man netcat
查看更詳細指令說明和用法~
寫這篇的時候是半夜腦袋快燒了……
不曉得發這篇的時候第二季出完了沒,徹夜之歌,可以去看看哦 !