在浩瀚的網絡中安全問題是最普遍的需求,很多想要對網站進行滲透測試服務的,來想要保障網站的安全性防止被入侵被攻擊等問題,在此我們整理了下在滲透安全測試中抓包分析以及嗅探主機服務類型,以及端口掃描等識別應用服務,來綜合評估網站安全。
8.2.1. TCPDump
TCPDump是一款數據包的抓取分析工具,可以將網絡中傳送的數據包的完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供邏輯語句來過濾包。
8.2.1.1. 命令行常用選項
- -B <buffer_size> 抓取流量的緩沖區大小,若過小則可能丟包,單位為KB
- -c <count> 抓取n個包后退出
- -C <file_size> 當前記錄的包超過一定大小后,另起一個文件記錄,單位為MB
- -i <interface> 指定抓取網卡經過的流量
- -n 不轉換地址
- -r <file> 讀取保存的pcap文件
- -s <snaplen> 從每個報文中截取snaplen字節的數據,0為所有數據
- -q 輸出簡略的協議相關信息,輸出行都比較簡短。
- -W <cnt> 寫滿cnt個文件后就不再寫入
- -w <file> 保存流量至文件
- 按時間分包時,可使用strftime的格式命名,例如 %Y_%m_%d_%H_%M_%S.pcap
- -G <seconds> 按時間分包
- -v 產生詳細的輸出,-vv -vvv 會產生更詳細的輸出
- -X 輸出報文頭和包的內容
- -Z <user> 在寫文件之前,轉換用戶
8.2.2. Bro
Bro是一個開源的網絡流量分析工具,支持多種協議,可實時或者離線分析流量。
8.2.2.1. 命令行
- 實時監控 bro -i <interface> <list of script to load>
- 分析本地流量 bro -r <pcapfile> <scripts...>
- 分割解析流量后的日志 bro-cut
8.2.2.2. 腳本
為了能夠擴展和定制Bro的功能,Bro提供了一個事件驅動的腳本語言。
8.2.3. tcpflow
tcpflow也是一個抓包工具,它的特點是以流為單位顯示數據內容,在分析HTTP等協議的數據時候,用tcpflow會更便捷。
8.2.3.1. 命令行常用選項
- -b max_bytes 定義最大抓取流量
- -e name 指定解析的scanner
- -i interface 指定抓取接口
- -o outputdir 指定輸出文件夾
- -r file 讀取文件
- -R file 讀取文件,但是只讀取完整的文件
8.2.4. tshark
WireShark的命令行工具,可以通過命令提取自己想要的數據,可以重定向到文件,也可以結合上層語言來調用命令行,實現對數據的處理。
8.2.4.1. 輸入接口
- -i <interface> 指定捕獲接口,默認是第一個非本地循環接口
- -f <capture filter> 設置抓包過濾表達式,遵循libpcap過濾語法,這個選項在抓包的過程中過濾,如果是分析本地文件則用不到
- -s <snaplen> 設置快照長度,用來讀取完整的數據包,因為網絡中傳輸有65535的限制,值0代表快照長度65535,默認為65535
- -p 以非混合模式工作,即只關心和本機有關的流量
- -B <buffer size> 設置緩沖區的大小,只對windows生效,默認是2M
- -y <link type> 設置抓包的數據鏈路層協議,不設置則默認為 -L 找到的第一個協議
- -D 打印接口的列表并退出
- -L 列出本機支持的數據鏈路層協議,供-y參數使用。
- -r <infile> 設置讀取本地文件
8.2.4.2. 捕獲停止選項
- -c <packet count> 捕獲n個包之后結束,默認捕獲無限個
- -a <autostop cond>
- duration:NUM 在num秒之后停止捕獲
- filesize:NUM 在numKB之后停止捕獲
- files:NUM 在捕獲num個文件之后停止捕獲
8.2.4.3. 處理選項
- -Y <display filter> 使用讀取過濾器的語法,在單次分析中可以代替 -R 選項
- -n 禁止所有地址名字解析(默認為允許所有)
- -N 啟用某一層的地址名字解析。m 代表mac層, n 代表網絡層, t 代表傳輸層, C 代表當前異步DNS查找。如果 -n 和 -N 參數同時存在, -n 將被忽略。如果 -n 和 -N 參數都不寫,則默認打開所有地址名字解析。
- -d 將指定的數據按有關協議解包輸出,如要將tcp 8888端口的流量按http解包,應該寫為 -d tcp.port==8888,http 。可用 tshark -d 列出所有支持的有效選擇器。
8.2.4.4. 輸出選項
- -w <outfile> 設置raw數據的輸出文件。不設置時為stdout
- -F <output file type> 設置輸出的文件格式,默認是 .pcapng,使用 tshark -F 可列出所有支持的輸出文件類型
- -V 增加細節輸出
- -O <protocols> 只顯示此選項指定的協議的詳細信息
- -P 即使將解碼結果寫入文件中,也打印包的概要信息
- -S <separator> 行分割符
- -x 設置在解碼輸出結果中,每個packet后面以HEX dump的方式顯示具體數據
- -T pdml|ps|text|fields|psml 設置解碼結果輸出的格式,默認為text
- -e 如果 -T 選項指定, -e 用來指定輸出哪些字段
- -t a|ad|d|dd|e|r|u|ud 設置解碼結果的時間格式
- -u s|hms 格式化輸出秒
- -l 在輸出每個包之后flush標準輸出
- -q 結合 -z 選項進行使用,來進行統計分析
- -X <key>:<value> 擴展項,lua_script、read_format
- -z 統計選項,具體的參考文檔
8.2.4.5. 其他選項
- -h 顯示命令行幫助
- -v 顯示tshark的版本信息
網絡滲透測試嗅探
8.3. 嗅探工具
8.3.1. Nmap
nmap [<掃描類型>...] [<選項>] {<掃描目標說明>}
8.3.1.1. 指定目標
- CIDR風格 192.168.1.0/24
- 逗號分割 www.baidu.com,www.zhihu.com
- 分割線 10.22-25.43.32
- 來自文件 -iL <inputfile>
- 排除不需要的host --exclude <host1 [, host2] [, host3] ... > --excludefile <excludefile>
8.3.1.2. 主機發現
- -sL List Scan - simply list targets to scan
- -sn/-sP Ping Scan - disable port scan
- -Pn Treat all hosts as online -- skip host discovery
- -sS/sT/sA/sW/sM TCP SYN/Connect()/ACK/Window/Maimon scans
- -sU UDP Scan
- -sN/sF/sX TCP Null, FIN, and Xmas scans
8.2.1.3. 端口掃描
- --scanflags 定制的TCP掃描
- -P0 無ping
- PS [port list] (TCP SYN ping) // need root on Unix
- PA [port list] (TCP ACK ping)
- PU [port list] (UDP ping)
- PR (Arp ping)
- p <port message>
- F 快速掃描
- r 不使用隨機順序掃描
8.2.1.4. 服務和版本探測
- -sV 版本探測
- --allports 不為版本探測排除任何端口
- --version-intensity <intensity> 設置 版本掃描強度
- --version-light 打開輕量級模式 // 級別2
- --version-all 嘗試每個探測 // 級別9
- --version-trace 跟蹤版本掃描活動
- -sR RPC 掃描
8.2.1.5. 操作系統掃描
- -O 啟用操作系統檢測
- --osscan-limit 針對指定的目標進行操作系統檢測
- --osscan-guess
- --fuzzy 推測操作系統檢測結果
8.2.1.6. 時間和性能
- 調整并行掃描組的大小
- --min-hostgroup<milliseconds>
- --max-hostgroup<milliseconds>
- 調整探測報文的并行度
- --min-parallelism<milliseconds>
- --max-parallelism<milliseconds>
- 調整探測報文超時
- --min_rtt_timeout <milliseconds>
- --max-rtt-timeout <milliseconds>
- --initial-rtt-timeout <milliseconds>
- 放棄低速目標主機
- --host-timeout<milliseconds>
- 調整探測報文的時間間隔
- --scan-delay<milliseconds>
- --max_scan-delay<milliseconds>
- 設置時間模板
- -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
8.2.1.7. 逃避滲透測試檢測相關
mtu 使用指定的MTU
- -D<decoy1[, decoy2][, ME], ...> 使用誘餌隱蔽掃描
- -S<IP_Address> 源地址哄騙
- -e <interface> 使用指定的接口
- --source-port<portnumber>;-g<portnumber> 源端口哄騙
- --data-length<number> 發送報文時 附加隨機數據
- --ttl <value> 設置ttl
- --randomize-hosts 對目標主機的順序隨機排列
- --spoof-mac<macaddress, prefix, orvendorname> MAC地址哄騙
8.2.1.8. 輸出
- -oN<filespec> 標準輸出
- -oX<filespec> XML輸出
- -oS<filespec> ScRipTKIdd|3oUTpuT
- -oG<filespec> Grep輸出 -oA<basename> 輸出至所有格式
8.2.1.9. 細節和調試
- -v 信息詳細程度
- -d [level] debug level
- --packet-trace 跟蹤發送和接收的報文
- --iflist 列舉接口和路由
- 在網站安全滲透測試中遇到的檢測方法以及繞過方法太多太多,而這些方法都是源于一個目的,就是為了確保網站或平臺的安全性想要了解更多的安全檢測以及上線前的滲透測試評估可以咨詢專業的網站安全公司來達到測試需求.