網路上使用的通訊協定是TCP/IP,所以我們接下來要簡單說明 TCP 表頭的旗標 (Flag),藉由傳送不同的封包及查看回應狀態,就可以知道目標主機是否存在,並且針對不同的port執行同樣的掃描方式,就可以知道該目標主機提供了哪些服務,再更進一步地判斷作業系統類型:
SYN => 請求連線
ACK => 回應封包已收到
RST => 重設連線
FIN => 傳送完成,關閉連線
URG => 優先處理之封包
PSH => 不放進佇列,而是盡快將資料送到應用層處理
工欲善其事必先利其器,本次我們會使用到的工具有 NMAP以及HPING,所以我們首先簡述一下他們分別是什麼~
NMAP(Network Mapper)主要對 IP Packet進行掃描,不但可以找出目標網路的主機、使用的服務(應用程式名稱及版本)、使用的作業系統,甚至使用了哪一種類型的防火牆。
NMAP被設計用來快速地掃描大型網路架構,但只要在單一主機上面運作即可,目前支援的作業系統有Linux、Windows、Mac OS X,除此之外他也支援圖形化介面(Zenmap)、彈性地資料移轉、除錯工具(Ncat)、用來比較掃描結果的工具(Ndiff)以及封包產生和回應用的分析工具(Nping)。NMAP的功能相當齊全,也是CEH及ECSA經常提到的工具。
HPING
支援的作業系統有Linux, FreeBSD, NetBSD, OpenBSD, Solaris, MacOs X以及Windows
HPING的設計概念來自ping這個指令,是一個指令導向的 TCP/IP 分析工具,但他不僅限於使用ICMP echo request,而可支援 TCP、UDP、ICMP和RAW-IP協定,並分析回傳的封包來判斷系統類型,甚至是可以繞過防火牆或IDS偵測,使封包順利傳送至目標主機
以下列舉幾個 HPING 的特色:
網路測試
進階連接埠掃描
使用不用的協定進行網路掃描
識別網路協定、作業系統、服務類型等 (基本上就是fingerprinting)
計算 MTU
使用者可自定封包格式和偽造來源IP
聽起來NMAP和HPING3有很多強大的功能,那會不會很難操作?
基本上是沒有問題的,我們只要抱持著有問題就問的精神即可,怎麼問?
很簡單,先求救就對了! 蛤?怎麼求救? HELP 就對啦~
nmap -h
hping3 -h
好工具,不用嗎?
資料來源
https://nmap.org/
http://www.hping.org/
https://tools.kali.org/information-gathering/hping3