---
# System prepended metadata

title: 計算機網路 project

---

## Authentication的概念及應用
## OUTLINE
- introduction
- Protocal
- Attack Method
- Demo

## introduction
Authentication(驗證)，在通訊過程中(用戶或用戶、用戶或伺服器、用戶或系統等)，應確認對方是否真的為其宣稱的合法身分，此證明身分的過程稱為**Authentication**，對方需要發送足夠的資訊去證明自己的身分

### Authentication vs Authorization
Authentication(驗證) 指確認對方身分驗證的過程，當驗證完成後，確認對方的身分後，因為在系統中可以不同使用者或身分擁有的權限等級不同，判斷該身份是否有權限進行某個動作，這個是Authorization(授權)

### Analysis
#### Security Goals
- Confidentiality
    - 保證只有授權的對象可以進行通訊
- Integrity 
    - 防止通訊過程的數據不會被洩漏或是被竄改
    - 驗證通信雙方的身份真實性，防止冒充
- Authenticity
    - 驗證後得以相信通訊對象的身分，指驗證的機制具有可行可信性

#### Adversary Model
指定義adversary，預測其可能擁有的能力或知識

- 計算機網路知識及流量分析的能力
- 竊聽及攔截資訊，已取得安全憑證
- 偽造數據包的來源 IP 地址，已進行更進一步的攻擊
- Social Engineering(社會工程) 用以誘使用戶洩漏憑證或關鍵資訊

#### Incentive
- 獲取敏感數據，如用戶帳號密碼、信用卡資訊。
- 篡改通信內容，欺詐性交易、傳遞錯誤信息。
- 獲取經濟利益，將敏感信息拿來販售。

## protocal
在ch8裡簡單介紹了Authentication Protocol的迭代

以Alice和Bob的通訊為例 其中Trudy為adversary
### Protocol AP1.0
- 直接宣告自己的身分，Alice宣告自己是Alice
- Trudy可以告訴Bob說他是Alice，假冒別人
### Protocol AP2.0
- Alice傳送其 IP 位址的數據包
- Trudy可以偽造一個來源為 Alice 的數據包(IP Spoof)
### Protocol AP3.0
- Alice在數據包中附送密碼證明自己的身分
- 但是Trudy可以使用Replay Attack
    - Trudy 記錄下數據包後重播，冒充 Alice。
- 如果加密密碼呢
    - Replay Attack still work
    - 缺乏隨機性
### Protocol AP4.0
- 目標是透過一次性隨機數Nouce來防禦Replay Attack
- 在Alice宣告自己是Alice後，Bob傳送一個nouce給Alice
    - nouce為一次性的隨機數，不可重複使用，否則就失去其機密性和隨機性
- Alice必須使用shared key去加密這個nouce，而後傳送結果回Bob，Bob透過確認結果確定是否是真正的身分

優點:可以創造隨機性，防禦Replay Attack
缺點:需要預先共享對稱密鑰

### Protocol AP5.0
- 使用非對稱加密:Public-key cryptography
    - diffie hellman key exchange
    - RSA Encryption Algorithm
- 結合Nonce 
- Alice先發起認證，Bob傳送Nonce
- Alice使用私鑰加密此隨機數
- 而後Bob使用Alice的公鑰去解密，確認是否一致

優點:
1.防禦Replay Attack，使用 Nonce 確保每次驗證的隨機性
2.Authentication:只有Alice有私鑰可以被自己的公鑰解開
3.無需共享密鑰

## Attack Method
此小節將介紹一些常見針對Authentication進行的攻擊手法
### Source Address Spoofing

**IP Source Routing**
指允許發送方在數據包中指定其傳輸路徑（經由哪些路由器和網絡到達目標）(TO/FROM HOST)

---
Source Address Spoofing利用了routing的特性

遠端的adversary 偽造封包中來源的addr，冒充受信任的內部主機，內部主機誤以為該封包來自本地受信任的主機，但Source Routing將封包路由傳回駭客的機器

#### 特性
- 常被用作其他複合性攻擊的基礎
- 攻擊者可以偽裝成可信來源，繞過身份驗證，破壞Authentication
- 偽裝攻擊者身分，使其難以追蹤

#### 步驟
1.攻擊者冒充受信任的主機，與目標設備進行通信
2.攻擊者指定數據包的源路由
3.回傳數據流量按照指定的路徑返回攻擊者設備，而不是正確的本地(信任)host

![1212](https://hackmd.io/_uploads/S1MA8q0rkl.png)


#### Defend
- 應施行過濾的機制，阻止出入網路的不正常來源 IP 或偽造的封包
- router應該關閉或拒絕source routed packets，遵守 RFC 2827
- 使用tcpwrappers (host-based network ACLs) (網絡訪問控制列表)

### Man in The Middle (中間人攻擊)
概念是指攻擊者插入到通訊之間，攔截並可能修改雙方的通信內容，通訊雙方誤以為他們直接在互相交流

實現方式是要想辦法將自己置於連線的中間，必須攔截到傳輸的資訊

和Spoofing一樣，是許多破壞或忽略Authentication
的攻擊基礎

#### 更進一步的應用
- ARP Poisoning
    - ARP可以幫助LAN內的裝置進行MAC ADDR和IP ADDR的mapping 
    - 攻擊者向雙方廣播自己的IP(假裝是對方的)，將用戶的流量重定向到自己的設備
    
![螢幕擷取畫面 2024-12-29 155925](https://hackmd.io/_uploads/B1z-U50BJe.png)

- DNS Poisoning
    - Domain name system 是幫助將域名map至正確的ip addr的重要設施
    - 在victim dns server和tld dns server通訊時，監聽雙方的封包
    - 在tld dns server送出正確的ip addr封包時，攻擊者預先偽造tld的respond內容
    - 假封包帶有虛假的惡意網站ip addr
    - 一但victim接受了虛假的respond，真正的respond封包會被dump掉
    - 虛假的ip被快取進dns server cache，植入完成

![60c35205a08c01989ab2f764_DNS Spoofing](https://hackmd.io/_uploads/BJMq5qCHkl.jpg)


著名例子:
Dan kaminsky dns poisning attack
創造大量虛假回應讓真正的tld回應被淹沒
提高Poisoning的成功性



### Session Hijacking (會話劫持)
通常兩個個體(user、server)之間的通訊過程，稱為session，在session開啟的時段，預設對方是已經通過驗證的狀態，所以過程保持驗證狀態，資料和權限都會保存

Session Hijacking指攻擊者通過截獲Session token或是其他驗證身分的識別資訊，攻擊者能去欺騙對方並使其將他們誤認為是原本的合法連線者

網站的cookie或是TCP Protocal常常被使用這種攻擊
以下是TCP Session Hijacking的攻擊過程

#### 特性
- 攔截資訊，通過多種方式獲取Session資訊，包括sniffing、跨站腳本攻擊（XSS）、SpyWare等
- 中間人攻擊的更進一步的應用
- 未經授權的訪問，可以偽裝成其他用戶，破壞Authentication

#### 步驟
- 攻擊者監視初始的Session建立過程（例如 TCP three-way handshake）。
- 嗅探數據：
    - 攻擊者捕獲用戶和服務器之間交換的序列號(seq)和其他session token。
- 重置客戶端：
    - 攻擊者向客戶端發送 TCP RST（重置包），使其與服務器斷開連線。
- 接管會話 :
    - 攻擊者通過模擬客戶端的身份與服務器通信，並接管會話。


即使是基於strong-authenticated session（如 SKey、SecureID）的會話，攻擊者也可以在認證完成後劫持會話。

#### Defend
- 使用加密的通信協議（如 SSH HTTPS），防止攻擊者嗅探數據
- 使用雙重驗證或MFA:增加多重的驗證的因素，防止只有token或ID的驗證手段
- 會話超時: 減少token leak的機會

## DEMO
以下將示範使用ettercap施行ARP Poisoning(MITM)
```
配置:
Vmware Workstation
kali-linux-2024.3
OWASP
Ubuntu 64
```
ettercap是一個網路攻擊工具，主要施行中間人攻擊和流量監測，使用者能夠攔截和修改網路上的封包，廣泛用於分析未加密的 HTTP 流量(https需要額外的解碼工具)，kali有內建的ettercap gui工具，無須下載

---

以下執行畫面
![螢幕擷取畫面 2024-12-30 010942](https://hackmd.io/_uploads/ryxYGWJUye.png)
有UNIFIED和BRIDGED 兩種模式
- UNIFIED直接監聽網路流量
- BRIDGED橋接子網LAN

這邊直接選ETH0跟UNIFIED(不要勾選)
而後按上方的勾
![螢幕擷取畫面 2024-12-30 011559](https://hackmd.io/_uploads/B1IyVbkLkg.png)
上方放大鏡可以搜尋連線 旁邊會顯示HOST List
![螢幕擷取畫面 2024-12-30 012308](https://hackmd.io/_uploads/HkMqH-1UJl.png)
他可以指定target去做特定的攻擊，這邊就直接執行攻擊，會攔截全部的封包

這裡使用Ubuntu 64作為victim，竊聽Ubuntu 64跟OWASP靶機的通訊過程(靶機具有特別設計的漏洞，也不會背法律責任)
![螢幕擷取](https://hackmd.io/_uploads/Syc8vbyUyx.png)


這裡使用靶機內建的bWAAP的工具，是特別設計的網頁登入功能，可以拿來測試破解工具
![8](https://hackmd.io/_uploads/SyW3vZJUkg.png)
```
預設的帳號:bee
預設的密碼:bug
```
現在啟動arp poison的攻擊
![螢](https://hackmd.io/_uploads/SkZO_WkIJg.png)
![螢幕擷取畫面 2024-12-30 013731](https://hackmd.io/_uploads/H1PxYb18yx.png)
![螢幕擷取畫面 2024-12-30 013841](https://hackmd.io/_uploads/SJ0NtWyIkl.png)

現在操控victim 去登入bWAAP
![螢幕擷取畫面 2024-12-30 014045](https://hackmd.io/_uploads/HkZhtby8yl.png)

![螢幕](https://hackmd.io/_uploads/Byck9-y8yl.png)

kali的ettercap攔截到封包資訊，其中有登入的帳號密碼
![212](https://hackmd.io/_uploads/Sya-qWyLJg.png)


## Refernece
- wallarm <<How Does Domain Name System Work?>>
https://www.wallarm.com/what/what-is-dns-spoofing-dns-cache-poisoning
- 卡巴斯基
 https://www.kaspersky.com.tw/resource-center/definitions/what-is-session-hijacking
- 中央大學資工系選修 CE3054*<<資訊安全概論>>
    - 113學年第一學期
    - introduced by professer 晧琮 楊
    - class material
        - ch1 Intro Paranoia 
https://drive.google.com/file/d/1LWepIakNGE7vFIk6hsQUUz2Z34tAQYUz/view?usp=sharing
        - ch9 Network Attack
https://drive.google.com/file/d/1LMdgA_79pc2RAo_StFAqHdTu-yVOUxY4/view?usp=sharing
 - https://ithelp.ithome.com.tw/m/articles/10315044
- https://ithelp.ithome.com.tw/articles/10205032?sc=iThelpR
- 計算機網路ch8
- chatgpt
https://chatgpt.com/share/67718c04-2958-8003-ac54-2575dff960e2


