InfoSec Basic Knowledge Memo
Private IP
10.0.0.0–10.255.255.255
172.16.0.0–172.31.255.255
192.168.0.0–192.168.255.255
Open System Interconnection Model (OSI) 開放式系統互聯模型
Layer7 應用層:Proxy, WAF
Layer4 傳輸層:Firewall、封包過濾型防火牆
Layer3 網路層:Router
Layer2 資料鏈結層:Bridge, Switch
Layer1 實體層:Repeater, Hub
通訊協定對應OSI參考模型
應用層(Application Layer):*沒加密
- DNS (網域名稱系統):網域名稱轉換成IP
- DHCP (動態主機設定協定):裝置連上網路自動取IP位置
- *FTP (檔案傳輸協定):傳輸資料使用
- *SMTP (簡單郵件傳輸協定)
- *HTTP (超文本傳輸協定)
- *Telnet
- ex: DNS快取污染 (DNS Cache Poisoning) 是針對此層的攻擊。
傳輸層(Transport Layer):
- TCP (傳輸控制協定):傳輸前先建立連線,提供一種可靠的連接導向方式。
- UDP (使用者資料報協定) :傳輸前不先建立連線,可靠度低。
Layer3 網路層(Network Layer):
- IP(網際網路協定):負責對封包進行路由和定址。
- ICMP(網際網路控制訊息協定):用於傳送控制訊息,例如PING指令查看對方主機是否存活。
- IPSec協定:可用於VPN。
IPSec包含兩大核心協定:AH(Authentication Header):增加驗證資訊,不加密資料。ESP(Encapsulating Security Payload):加密資料,提供來源驗證與完整性保護。
IPSec協定包括兩種運行模式:
傳輸模式(Transport Mode):僅加密IP封包的有效負載(payload),而保持IP標頭(header)不變。此模式適合兩台設備之間的直接連線。
隧道模式(Tunnel Mode):加密整個IP封包,並將其封裝在一個新的IP封包中。隧道模式適合VPN的應用,尤其是在不同網路之間進行通信。
- ex: 死亡之 Ping(Ping of Death, PoD) 是針對此層的攻擊。
資料鏈結層(Link Layer):
- ARP(位址解析協定):IP查詢MAC地址,區域網路實際傳輸使用。
DDOS對應攻擊與OSI層級對應
常見Port
其中1024之前為Well-Known Port。
•FTP:TCP 20 資料傳輸、TCP 21 連線控制
•SFTP/SSH:TCP 22
•Telnet:TCP 23
•SMTP:TCP 25
•DNS:UDP 53,Zone Transfer使用TCP 53
•HTTP:TCP 80 HTTPS:TCP 443
•POP3:TCP 110 POP3s 995
•NTP:UDP 123
•微軟網路芳鄰:UDP 137、138 和 TCP 139、445
•IMAP:TCP 143 IMAPS 993
•SNMP:UDP 161 162
•LDAP = Lightweight Directory Access Protocol輕型目錄存取協定:TCP 389
•syslog:UDP 514
•SQL Server:TCP 1433
•PPTP:TCP 1723
•RADIUS = Remote Authentication Dial In User Service遠端使用者撥入驗證服務:UDP 1812 1813
•RDP遠端:TCP 3389
在伺服器A採用syslog日誌服務且受到防火牆保護的情況下,伺服器B無法傳輸日誌至伺服器A,儘管ping測試顯示兩者之間的連線正常。這種情況通常可能是由於防火牆的規則未允許syslog的特定埠或協定(通常為UDP 514埠)通行。
POP3s(Post Office Protocol 3 Secure)使用TCP 995進行加密的電子郵件接收服務。
PPTP(Point-to-Point Tunneling Protocol)是一種早期的VPN協定。PPTP使用TCP 1723,並通過PPP(Point-to-Point Protocol)來封裝網路數據,以在私有網路之間建立虛擬隧道。
DNS(Domain Name System)會同時使用TCP和UDP這兩種傳輸層協定:UDP:DNS查詢通常使用UDP 53,因為UDP能快速處理查詢並回傳結果,適合低延遲需求的網路應用。TCP:當DNS響應超過512字節(例如DNS區域傳輸)或涉及到多重封包傳輸時,DNS會自動轉為使用TCP協定來確保可靠傳輸。
Liunx常見檔案用途
/etc/shadow:儲存使用者密碼hash值。
/etc/passwd:用戶帳號的基本訊息,但因為必須對所有人可讀,所以將密碼hash值放到只有管理員可以讀取的/etc/shadow檔案。
/var/log/secure:檔案用於記錄與安全相關的所有事件,包含用戶登入紀錄。
/var/log/wtmp:使用者的登入歷史紀錄
./bash_history:使用者曾經下過的指令。
~/.ssh/known_hosts:主機A連線至對方主機B後,A會記錄對方主機B的指紋。這樣做是為了在未來的連線中能夠識別和驗證該主機。以防範中間人攻擊。
常見攻擊
- 重送攻擊(Replay Attack):例如,攻擊者可能會截獲一個用戶對銀行的交易認證封包,然後重送這些封包來進行不正當的金錢轉移。
- 阻斷式攻擊(Denial of Service Attack):攻擊者發起大量的請求或封包,超過網站的處理能力,導致合法用戶無法存取該服務。如果是分散式(distributed)阻斷式攻擊(DDoS),攻擊會來自多個源頭,使得防禦更加困難。目的是使網站或服務不可用,影響其正常營運。
DoS攻擊主要分為Smurf、SYN Flood和Fraggle三種,
- Smurf攻擊中,攻擊者使用ICMP資料包阻塞伺服器和其他網絡資源。
- SYN Flood攻擊使用數量巨大的TCP半連接來佔用網絡資源。
- Fraggle攻擊與Smurf攻擊原理類似,使用UDP echo請求而不是ICMP echo請求發起攻擊。 - 中間人攻擊(MitM):中間人攻擊發生時,攻擊者秘密地介入通訊雙方之間,攔截、修改或轉發雙方的通訊資料。
- ARP欺騙(ARP Poisoning):ARP欺騙是透過發送偽造的ARP到區域網路內,目的在於將攻擊者的MAC地址與網內其他主機的IP地址關聯起來。這使得攻擊者能夠接收本該發送給這些主機的流量,常用於執行中間人攻擊。
- 網路阻斷服務攻擊(SYN Flooding):用戶傳用SYN封包給伺服器,收到SYN/ACK之後,用戶不傳送ACK回伺服器。
- DNS放大攻擊(DNS amplification attack):DNS放大攻擊通過利用公開可訪問的DNS伺服器,發送大量DNS查詢請求並偽造受害者的IP地址,迫使DNS伺服器向受害者發送大量回應。這不僅消耗受害者的網絡頻寬,也給DNS伺服器帶來負擔,屬於分散式拒絕服務(DDoS)攻擊的一種。
- 暴力破解(Brute Force Attack):不斷嘗試猜測密碼,來獲得未授權訪問的攻擊方式。
- TCP/IP 連線劫持(Session Hijacking):取得要劫持連線的 TCP 序號(Sequence Number),與受害主機可建立網路連線,偽裝成受害主機,發送特定 TCP 序號的封包。
- 零日攻擊(Zero Day Attack):零日攻擊是指利用軟體中未公開的安全漏洞進行的攻擊。因為這些漏洞在被發現並修復之前是未知的,所以稱為「零日」。攻擊者利用這些漏洞可以繞過安全防護措施,進行數據竊取、系統控制等惡意行為。
- 社交工程(Social engineering):社交工程是一種安全攻擊手段,主要是透過心理操控的技巧誘使人們放棄機密資訊,而不是通過傳統的駭客技術來獲取存取權限。
- 垃圾搜尋攻擊(Dumpster Diving):攻擊者搜尋企業或個人未妥善處理的廢棄物(如硬碟),以尋找有價值的資訊。
- 跨站指令碼(Cross Site Scripting, XSS)攻擊:XSS攻擊利用了網站對用戶輸入資料處理不當,從而在其他用戶的瀏覽器中執行惡意腳本。例如:在一個心情留言板上,攻擊者留下一則包含惡意 JavaScript 代碼的留言。當其他用戶瀏覽這些留言時,他們的browser會執行code。
- 跨站請求偽造(Cross Site Request Forgery CSRF):CSRF攻擊通過誘導已登錄用戶在不自知的情況下執行攻擊者預定的操作。例如,攻擊者在一個惡意網頁上放置一個隱藏的轉帳表單,指向一家銀行的轉帳URL,並設置好收款人(攻擊者)和金額。當已登錄銀行的用戶訪問這個惡意網頁時,表單自動提交,由於用戶已驗證,銀行系統錯誤地處理這個轉帳請求。
- Rootkit:Rootkit是一種惡意軟體(或一組軟體),設計用來為攻擊者提供對目標計算機系統或網絡中一台或多台機器的持久性隱蔽訪問。Rootkit主要目的是隱藏自身和其他惡意活動,避免被安全軟體檢測到,從而允許攻擊者長期控制或監視受感染的系統。
- 網路釣魚(Phishing):攻擊者通過發送看似來自合法來源的電子郵件、簡訊,試圖誘騙收件人提供個人資訊,促使受害者點擊連結,導向假冒的網站,進而騙取受害者的個人或財務資訊。
- 捕鯨(Whaling):針對公司的高層管理人員的釣魚攻擊,所以又稱為「高價值目標釣魚」。這種攻擊通常涉及更加精心設計的郵件或訊息。
- 魚叉式釣魚(Spear Phishing):魚叉式釣魚是一種更加針對性的釣魚攻擊,攻擊者會事先收集目標個體的個人資訊,然後定製化的欺詐郵件,使其看起來更具有個人相關性。由於這種攻擊方式在準備上需要更多的功夫,因此通常用於針對具體個體或小型群體,以提高成功率。
- 聲音釣魚(Vishing):聲音釣魚是通過電話系統進行的釣魚攻擊,攻擊者可能會偽裝成銀行的工作人員,試圖誘騙受害者進行金錢轉賬。
- 憑證填充攻擊( Credential Stuffing):利用被竊取的用戶名和密碼對多個帳戶進行自動化登錄的攻擊方式。攻擊者通常使用 殭屍網路(Botnet) 來發動這種攻擊,並以自動化方式試圖登入網路服務。
- 勒索軟體(Ransomware):勒索軟體使用非對稱金鑰加密技術來加密受害者的檔案,公開金鑰被用來加密受害者的檔案,而私人金鑰則被攻擊者安全地保管。攻擊者會要求支付贖金,作為交換私人金鑰以解密檔案的條件。ex: 美國國家安全局NSA的永恆之藍(EternalBlue)漏洞利用程式及WannaCry勒索病毒之攻擊手法=> Windows 伺服器訊息區塊(SMB)漏洞(MS17–010)。
- 特洛伊木馬( Trojan horse)是一種有害程式,它會偽裝成合法軟體,以誘使用戶下載並安裝。一旦安裝,木馬可能會開啟後門以便於攻擊者進入系統。
- 蠕蟲( worm)是一種獨立的惡意程式,它透過網路主動傳播自身以感染其他系統計算機,可在不感染文件、檔案的情況下複製自己。蠕蟲會自行擴散,病毒常透過事件觸發。
- Polymorphic Virus:是一種多形病毒,它會在每次感染時對自身的程式碼進行變異。Polymorphic Virus通常會使用變形引擎來生成新的程式碼。
- IP 位址欺騙(IP address spoofing):是一種網絡攻擊技術,攻擊者在此技術中偽造發送封包的來源IP地址,使其看起來像是來自受信任的來源IP地址。
- 複製型釣魚( Clone Phishing):攻擊者使用某些方法密切監視受害者收件匣。攻擊者會利用受害者近期電子郵件的連結或附件並進行複製偽造。
- 搜尋引擎攻擊(Google Hacking):利用搜尋引擎進行高級搜尋查詢,以發現網站的安全漏洞、敏感資訊泄露、公開的敏感目錄或文件等。這種技術是通過使用特定的搜尋語法(稱為Google Dorks)來實現的,這些語法可以幫助攻擊者快速找到網路上的漏洞資訊或敏感資訊。常見搜尋範例:
filetype:sql inurl:dump
:查找 SQL 數據庫的轉儲文件。intitle:"index of" "parent directory"
:查找目錄列表,可能包含敏感檔案。inurl:admin
:查找可能的管理介面 - Polymorphism: 使用「不」同金鑰加密來改變自身外形。
- ARP spoofing: 使用固定IP並綁定MAC為防禦ARP欺騙的最佳方式。
- Land Attack主要是發送偽造的 SYN 封包,封包來源端 IP與目的端 IP相同的攻擊。
攻擊步驟:
1.偽造封包:攻擊者創建一個偽造的 TCP SYN 封包,將其來源地址設定為目標系統的 IP 地址。這使得目標系統認為是自己發出了請求。
2.發送 SYN 封包:這個偽造的封包被發送到目標系統。因為來源地址是自己的,目標系統在處理這個請求時,會試圖回應到同一個 IP 地址。
3.處理請求:目標系統收到 SYN 封包後,會嘗試建立 TCP 連線,並返回一個 SYN-ACK 封包給該偽造的來源地址(也就是自己)。
4.持續的迴圈:由於目標系統試圖回應自己的請求,這會導致系統在處理無窮無盡的請求,最終可能導致系統崩潰或無法正常運行。
密碼相關攻擊
- Password Spraying Attacks:用單一弱密碼,嘗試登入系統
2.暴力攻擊法(Brute Force Attack):不管常不常見,暴力解。
3.字典攻擊法(Dictionary Attack):專注於預先準備的常見密碼表(字典)。
網路型入侵偵測系統(Network Intrusion Detection System, NIDS) 是一種用於監控網路流量以識別可疑活動或潛在的攻擊的安全設備。NIDS 通常部署在網路的關鍵節點,如網路邊界或伺服器上,以便對進出網路的流量進行即時分析。若流量(Traffic)太高,可能會影響攻擊偵測準確度。
ref:iPAS討論區&網路資料