# **資安筆記**
---
**cat**
*concatenate (FILENAME的縮寫)*
此命令將在屏幕上打印文件的內容
**ls**
*list的縮寫*
此命令將顯示當前目錄中的所有文件


利用上方那些指令,最終成功解出flag!!!
# C.I.A.資安核心三要素
#### ●機密性:
在對的人 時間 地點 裝置被存取
#### ●完整性:
資料沒有被任意授權 竄改 取代
#### ●可用性:
讓一個系統處隨時可工作狀態 不會中斷

#### ●身分驗證:
確保使用者登入時該數位身分有合理妥當的檢驗。
#### ●存取控制:
確保任何操作或人員均有適當的權限界定且受到合規的授權
#### ●不可否認性:
無法否認發送該訊息的事實(ex: 數位簽章)
#### ●訊息完整性確認:
##### 雜湊碼

#### ●訊息完整性and隱秘性確認:

##### 雜湊碼 --(加密)--> 訊息確認碼(Mac)
##### Mac --(秘密鑰匙)--> 解密
秘密鑰匙確保其完整性
# 數位簽章(DS)

= Digital Signature
#### 確認性+完整性+不可否認
傳送者用私鑰加密 接受者用公鑰解密
並比對雜湊碼是否一致
# 各種攻擊
* 社交工程攻擊
* 網路釣魚攻擊
# Network Security
* 計算機網路是一組相互連線的計算機和裝置
* 網路安全側重於保護這些裝置和連線它們的連結的安全
* 保護計算機網路及其上資料的機密性、完整性和可用性的裝置
1. Intrusion Detection System (IDS)
2. Intrusion Prevention System (IPS)
3. Firewall appliance
4.Virtual Private Network (VPN)
VPN確保第三方無法讀取或更改網路流量。 它保護已傳送資料的機密性(保密性)和完整性。

# Cyber Kill Chain
1.偵察:攻擊者試圖掌握目標的步驟。
(ex:伺服器型別、作業系統、IP地址、使用者名稱和電子郵件地址等資訊可以幫助攻擊成功)
2.武器化:帶有惡意的檔案
3.交付:將武器化檔案交付給目標。
4.利用:當用戶開啟惡意檔案時,他們的系統會執行惡意元件。
5.安裝:上一步時會在目標系統上安裝惡意軟體。
6.指揮和控制(C2):成功安裝惡意軟體為攻擊者提供了對目標系統的指揮和控制能力。
7.對目標的行動:在控制一個目標系統後,攻擊者已經實現了他們的目標。 一個例子目標是資料滲透(竊取目標的資料)
# **Security Operations Center (SOC)**

1. Reactive Support (被動)
2. Proactive Support(主動)
* Internet v.s. Network
public networks (=Internet)
small networks
# **網路的地址**
1. MAC地址
類似收件人
識別設備 具永久性

前六個字符代表製作網絡接口的公司,後六個是唯一編號

2. IP地址
類似收件地址
定位該設備
八位元資料組(Octet)
* IP Address
遵循協議的標準
公共IP
私有IP
# secure shell(SSH)
* 加密的網路傳輸協定
* 常見於網路登入系統
* 利用SSH來傳輸命令列介面和遠端執行命令
* 用法
1.遠程機器的IP地址
2. 指定連接埠號
* 實作

在輸入密碼時將看不到任何文本或符號
---
# URL
# 網域名稱(域名):
域名: 像人的名字
IP: 像人的身分證
因為IP不容易記憶 因而誕生域名(domain name)
例如:PC home 電腦報網站而言,一般使用者在瀏覽這個網站時,都會輸入 www.pchome.com.tw,而很少有人會記住這台 Server的 IP 是多少?所以www.pchome.com.tw就是 PC home 電腦報的 Domain Name,而 203.70.70.1則是它的 IP
網址代表網頁在網站中的位址,所以一個網址只會對應一個網頁,但一個網域下可以有很多網址。
例如,網路中文首頁的網址為 https://www.net-chinese.com.tw/
而這頁的網址是[https://www.netchinese.com.tw/nc/index.php/MenuLink/Index/AboutDomainName](https://)
對應到同一個網站,只是在網站中的不同位置。因此網址不一樣,但卻有相同的網域

* 域名規則:


域名 = 子網路+主網域+頂級域
URL = 設定某個特定網頁的網址名稱
http = HyperText Transfer Protocol(超文件傳輸協定)
www = World Wide Web
# TCP/IP

### ●TCP(Transmission Control Protocol):
(TCP比UDP可靠)
= (傳輸控制協議)
面向連接的協議 確保資料能夠送到對方手中
### ● UDP (User Datagram Protocol)
= 使用者資料報協定
無連接協議 沒有錯誤檢測和糾正服務
### ● IP(Internet Protocol):
網際通訊協定。提供複雜網路之間路徑選擇的功能,
遠端之間的電腦可透過 IP 協定尋找出對方位址,並將其連接在一起
IP位址分為Class A-E共5個等級

|網路等級| IP分佈範圍 |
| -------- | -------- |
| A | 0.0.0.0~127.0.0.0 |
| B | 128.0.0.0~191.255.0.0 |
| C | 223.255.255.0 |
| D | 239.255.255.255 |
| E | 255.255.255.255 |
* 子網遮罩(Netmask)
### ● ARP(Address Resolution Protocol):
位址解析協定。工作站可透過 ARP 協定以對方(使用者)的網路位址(IP 位址),
來查問它的網路實體位址(Ethernet 位址)
### ● RARP(Reverse Address Resolution Protocol):
反向位址解析協定。使用者透過RARP 協定以本身的網路實體位址(Ethernet 位址),向網路上其它工作站(如名稱伺服器)詢問(或要求)本身的網路位址(IP 位址)
### ● OSPF(Open Shortest Path First):
專門決定訊息走哪條路徑比較好
# OSI
缺點: 無法運用於實際的protocol
7層
(p.s:更多詳情 https://vocus.cc/article/618c7853fd8978000108c4d5
### ● 通訊協定:
定義所有設備皆能明白的通訊標準
所有通訊設備皆能明白的格式傳輸規則
#### 1. 應用層 (第七層)
為了應用軟體而設的介面
設定與另一應用軟體之間的通訊
透過通訊協定和資料操作,將資訊整合起來
(ex: FTP,TELNET,SSH)
#### 2. 表現層
確保應用層傳送的資料格式符合適用的網路標準
負責轉譯、加密和壓縮資料
#### 3. 會談層
建立網絡連線,等到資料傳輸結束時,再將連線中斷。
兩台電腦之間的通訊連接
#### 4. 傳輸層
電腦整體資料的傳輸及控制
紀錄所使用的協定
TCP: 傳輸控制協議
UDP:
* 協助OSI前三層與OSI後三層進行溝通
* 流量控制: 判定最佳傳輸速度
* 錯誤控制: 確保接收的資料是完整的,若不完整,則會請求重新傳輸

#### 5. 網路層
決定資料的路徑選擇和轉寄
(ex: IP)
#### 6. 資料連結層
如何將傳輸資料分裝成資料封包格式的規格
#### 7. 實體層 (第一層)
管理網路設備之間的位元傳輸
以太網電纜連接設備
# TCP/IP v.s OSI


# SSL
資訊傳輸的加密技術,能夠加密兩個網站之間互相傳輸的資料,讓他人無法取得您的網站與客戶之間的隱私訊息。經過SSL憑證加密成功的網站,網址會由http變成https
結論: http --> https
作法: PK crypto作加密
SSL憑證 != 網站100%安全
SSH and SSL 很容易搞混
●TLS協定
1. SSL協定的延伸
2. 實際上目前所說的SSL憑證所使用的就是TLS協定
# SSH
一個連線機加密機制
SSH 它讓我們在與遠端電腦(遠端伺服器)連線時,
能夠先將訊息加密過後再傳送,並且確保只有「被認可的人」才能夠解密訊息
私鑰: 電子簽名與解密
公鑰: 確認簽名的正確性

(來源: https://reurl.cc/D3VOzR)
# IPSec
#### ●中間的人攻擊(man-in-the-middle-attack)
若擁有公私鑰組合的人是駭客
則為中間人攻擊
用 PKI 來抵擋
#### ●PKI (Public Key Infrastructure)
= 公開金鑰基礎建設
驗證用戶和維護資安的框架技術
# RSA v.s. DSA加密演算法
●RSA: 用 4096 bits 的鑰匙長度來加密
●DSA: 用 1024 bits 的鑰匙長度來加密
# 密碼學
### ●密碼系統(Cryptosystem)

### ●加密解密

### 加密:C = Ek1(M)
### 解密:M = Dk2(C) = Dk2 (Ek1(M))
M = 明文
C = 密文
K1 = 加密鑰匙(key)、K2 = 解密鑰匙
E = 加密演算法
D = 解密演算法
### ●傳統密碼學原理
#### * 換位加密法
= Transposition Cipher
明文字元位置重新排列
#### * 取代加密法
= Substitution Cipher
明文字元以另一個字元取代
#### * 區塊加密法
針對數位資料

### ●對稱式加密 v.s. 非對稱式加密
#### * 對稱式加密:
=秘密鑰匙密碼系統
較迅速 (且為現代密碼學)
加密解密同一把鑰匙
1. 訊息隱秘性
2. 鑰匙隱秘性
3. 鑰匙分配難
4. 鑰匙長度短
5. 無法確認訊息的不可否認性和完整性
困難點:
7. 要秘密鑰匙傳送給通訊的對方
8. 即使收到資訊 無法肯定訊息正確性(可能有中間人攻擊)
#### * 非對稱式加密:
=公開鑰匙密碼系統
公鑰加密 且大家都知道
私鑰解密 有人保管
兩把鑰匙互為加/解密功能
1. 訊息隱秘性
2. 公鑰公開
3. 鑰匙分配易
4. 鑰匙長度長
5. 可以確認訊息的不可否認性
(和上述對稱是加密做對比)
較安全(還分成公鑰與私鑰),但較慢
結論: 實際生活中 會兩者並用 --> 混合密碼系統
### ●hash
hash != 加密
若 H(M1)=H(M2),則 M1=M2
若 H(M1)≠H(M2),則 M1≠M2
1. 無法解密 (具有不可逆性)(單向雜湊)
3. 不管原文內容長度 輸出完都是固定長度
4. 用brute-force 輸入+輸出+雜湊演算法 =》 彩虹表(rainbow table)
5. 具有唯一性
6. hash碰撞
(機率很低)
兩份不同的原始數據 -> 經過hash映射 -> 得到相同的MD5值
* 低層次的通訊協定(如 Ethernet
用CRC(Cyclic Redundancy Check)除法器產生FCS
FCS = Frame Check Sequence (檢查資料用)
* 高層次(ex: TCP/IP 層)
用檢查集Checksum
* 亂數產生
要不可預測性且具有隨機性
### ●md5
= Message Digest Algorithm 5
目的: 確保信息的一致性
1. 廣泛使用的hash 算法
2. 128bit的數據
#### * 訊息摘要(Message Digest)
* 雜湊碼是由訊息的內容演算而來的
h = H(M)
雜湊碼 = 訊息hash完
### ●DES 演算法
區塊長度:64 bits
16 把子鑰匙 經過加密器計算 16 次
作法: 初始排列 -> 加密16 -> 終止排列(換位)
### ●Triple DES 演算法
#### 明文 -> 密文:
(加密)*3
#### 密文 -> 明文:
(加密、解密、加密)*3
### ●AES演算法
= Advanced Encryption Standard(進階加密標準)
取代DES演算法
1. 即為Rijndael演算法
2. 美國聯邦政府採用的一種區塊加密標準
3. 反覆區段編碼
### ●RSA
### ●SHA演算法
= 安全雜湊演算法
= Secure Hash Algorithm
(ex: 比特幣是採用 SHA-256)
* SHA-256
hash完,壓縮成雜湊值,使得資料量變小
### ●MAC
### ●HMAC演算法
使用單向雜湊函式來構造訊息認證碼的演算法
# VPN(虛擬私人網路)
在路由器上安裝 VPN(Virtual Private Network)
作用:
1. 加入網路流量
2. 隱藏IP和虛擬位置
網際網路服務提供者(ISP)也無法監控上網內容
加密隧道連上遠端的 VPN 伺服器,VPN 伺服器會將透過安全隧道發送的資料解密
資料將被安全送達最終目的地。這種加密技術可以確保客戶端不被監控和追蹤
# ISP網際網路服務供應商
ISP = Internet Service Provider
ex: 中華電信、台哥大、遠傳
●無線網路
1. WiFi: ISP們的WiFi服務,公眾熱點無線上網
2. 行動上網: 手機連到的 4G, 5G 網路
# ADSL、Cable Modem、光纖網路
### ●ADSL非對稱數位用戶線路
(銅線傳輸電訊號)
ADSL = Asymmetric Digital Subscriber Line
讓網路封包和講電話的聲音訊號能共存。實做的方式是利用「頻率」的不同來傳送不同的訊息
上傳和下載用的車道不同,並且速率也不同
(下載比上傳的頻寬大,因而不對稱)而得名的
### ●Cable Modem
(銅線傳輸電訊號)
類似 ADSL
ex: 第四台
將電視線牽到家中 透過有線電視網路讓你能上網的設備
### ●光纖網路(光纖傳輸)
Fiber Optic
總結(頻寬比較):光纖 > Cable Modem > ADSL
# MB vs Mbps
Mbps = MB/8 (檔案單位除以8 才是網速單位)
1 B (Byte) = 8 bits
### 數據大小(檔案單位)
MB (MegaByte)
* 1 B (Byte) = 8 bits
* 1 KB (KiloByte) = 1024 Bytes
* 1 MB (MegaByte) = 1024 KB
* 1 GB (GigaByte) = 1024 MB
### 傳輸速度(網速單位)
Mbps (Megabit per second)
* 1 bps 是 1 bit per second
* 1 kbps (kilobit) = 1000 bps(注意此處的 k 是小寫,表達 1000 而非 1024)
* 1 Mbps (megabit) = 1000 kbps
* 1 Gbps (gigabit) = 1000 mbps
# DNS Server
全名: Domain Name Server
用域名去查詢其IP
但由於在 Internet 上真實在辨識機器的還是 IP,所以當使用者輸入Domain Name 後,瀏覽器必須要先去一台有 Domain Name 和 IP 對應資料的主機去查詢這台電腦的 IP,而這台被查詣的主機,我們稱它為 Domain Name Server,簡稱 DNS
# ARP協定
Ethernet 與 IP 位址之間的轉換機制,則須仰賴 ARP 協定來達成
用來以 IP 位址查詢其相對應的 Ethernet 位址
### ●結論: IP地址 --> MAC地址
* ARP Work
1. ARP Request
2. ARP Reply

# DHCP
= Dynamic Host Configuration Protocol
又名: 動態主機組態協定
功能: 分配IP位址
有任何一台電腦要連線時,才向 DHCP 伺服器要求一個 IP 位址


# 防火牆
管制進出流量的網陸安全工具 檢查所有通過的 IP 封包
比喻: 在企業內部網路(Intranet)及網際網路(Internet)之間架設一道可監控管理的緩衝界面(Gateway)
●機制
1. 封包過濾器
2. 代理器
3. 網路位址轉譯
●功能層面
1. 隔離內部網路(私有網路)與網際網路的流量,以保護內網的安全。
2. 控管內部網路傳入和傳出的封包,避免未經授權存取內部網路的資源。
3. 紀錄與監控內部網路的活動
●運作模式
防火牆會根據事先定義的安全性規則(存取控制清單,或稱為 ACL),有效控制對內與對外流量
●類型
1. 軟體防火牆(個人)
只能保護單一設備
2. 硬體防火牆
企業使用 路由器的實體設備
3. 雲端防火牆(代理防火牆)
使用雲端伺服器 不需在本地端建置防火牆
# IPS (入侵防護)
#### IDS入侵偵測系統的加強版
立即主動地將攻擊封包給阻隔
發現網路異常 封包或行為時,系統除發送警訊通報給網管人員,並立即採取必要的處置措施,例如阻斷來源IP
# IDS(入侵偵測)
發出警戒 並且採取安全策略(Security Policy)
# 異常偵測 v.s 特徵型偵測
1. 異常偵測(Anomaly-based Detection):
把觀察到的事件與正常的行為相比對的過程,來識別出行為是否有重大偏離
2. 特徵型偵測(Signature-based Detection):
用已知攻擊手法及系統漏洞的資訊為基礎,將網路攻擊或試圖利用系統安全漏洞入侵的過程中,
將所可能產生的『特徵』集合成一個知識庫
ex:
1. 封包分割
2. 警報誤導
3. 淹沒攻擊
4. 規避手法
5. 編碼問題
* 緩衝器溢位:
攻擊者每一個可以輸入參數的地方,輸入超過長度的參數,讓預留的變數長度不足而產生緩衝器溢位的問題
# 通訊埠(port)
# NAT
1. 靜態NAT(Static NAT)
一對一 內部資源看放給外部使用

![Uploading file..._4k3sd4sge]()
2. 動態NAT(Dynamic NAT)
多對多 輪流使用合法IP

* 圖形使用者介面(GUI)
全名: Graphical User Interface
# DoD
4層
* 媒體存取控制(MAC)
# 前言 乙太網路(Ethernet)
乙太網路的主要概念是透過網路上多個節點(Node)傳送資訊,各節點間以電纜或光纖通道等媒介進行傳輸,每個節點都有其特定門牌號碼-全球僅有一組之48位元MAC位址
# LAN v.s. MAN v.s. WAN
* LAN:區域網路
Topology(拓樸): 網路的設計或外觀
星型拓撲:
匯流排拓撲:
* MAN:都會網路
同一城市範圍內所建立的計算機網路

* WAN:廣域網路
不同地區局域網或城域網的計算機網路 甚至是城市與城市 國家與國家之間


# 網路分享器AP
* Wi-Fi分享器
一般買的都是結合Router 和 AP的無線路由器(Wireless Router)
* 路由器(Router)
連接網路並在它們之間傳遞數據是路由器的工作
路由是賦予數據跨網絡傳輸的過程的標籤。路由涉及在網絡之間創建路徑,以便可以成功傳遞此數據
* IP分享器(NAT)
* 交換器(Switch)
家裏有很多的設備才需要用到Switch
不然Router就夠了
原理:將不同終端設備(手機、電腦)的訊號導向 Router
* 集線器(Hub)
* 子網路(Subnet)
https://reurl.cc/1mRxa9
# Subnetting子網路
1. Default Gateway
2. Host Address
3. Network Address
* 子網掩碼(subnet masking)
左邊網絡編號部分用來標識主機所在的網絡;右邊部分用來標識主機本身,這部分稱為主機地址
x
* IPV4 v.s. IPV6
IPV4: 32為二進制 8個合一組 變成4個0~255的數
IPV6:8組4位十六進制組成
無法互通
* 端口映射+NAT網路位址轉譯
* DNS(域名系統)

比喻: 網路世界的電話簿
將網址轉換為代管網站主機的實體 IP 位址
* ping
Ping 使用ICMP (互聯網控制消息協議)
* Server
* 封包
兩台電腦間想要建立溝通及傳送所需的資料是怎麼進行的呢?答案是:『封包』
封包是能在網路上面進行傳輸的最小資訊單位
一個封包有 1.發送端節點地址
2.接收端節點地址
| server | HTTP | SSH | FTP |
| ------ | ---- | ---- | ------------ |
| 意義 | 超文本傳輸協定| Secure Shell| 文件傳輸協議 |
| 用途 | 瀏覽網頁時 | 安全遠程登錄 | 機器之間傳輸文件 |
* Nmap
(Network Mapper的縮寫)
Nmap 是一個網路描器,它可以幫助我們發現正在運行的機器以及在它們上運行的任何程序
* GUI(圖形用戶界面)
# 雲端運算

* IaaS(**基礎設施**即服務)
全名: Infrastructure as a Service
硬體的部份稱為基礎建設
* PaaS(**平台**即服務)
* SaaS(**軟體**即服務)

三者比較

上 網圖說明(來源:https://reurl.cc/RX3g3g)
* &&
若p則q的感覺
&&左邊命令成功被執行後,&&右邊命令才能夠被執行
* 系統管理員
使用者可以取得的最高權限
1. administrator: MS Windows(Microsoft Windows)
2. root: Android、Apple、Linux
# Common Directories
1. /etc:
包含很多檔案.許多網路配置檔案也在/etc 中
/etc/passwd: 使用者資料庫(所有用戶都擁有得取權限)
/etc/shadow: 只有root用戶擁有讀取權限
2. /var
儲存系統上運行的服務或應用程序經常訪問或寫入的數據
/var/log: 所有文件或錯誤信息文件都在/var/log下
3. /root
系統管理員的家目錄
4. /tmp
一般使用者暫時存放檔案的地方
# VIM Editor
終端機上的文字編輯器
# IDE
整合開發環境
Integrated Development Environment
(之前寫成就是用類似IDE的IDLE在寫pyhon程式碼)
# 指令

Windows MacOS / Linux 說明
cd cd 切換目錄
cd pwd 取得目前所在的位置
dir ls 列出目前的檔案列表
mkdir mkdir 建立新的目錄
無 touch 建立檔案
copy cp 複製檔案
move mv 移動檔案
del rm 刪除檔案
cls clear 清除畫面上的內容
| command | purpose | full name | | | |
| ----- | ---------------- | ----------------------- | --- | --- | --- |
| ls | 清單 | listing | | | |
| cat | 連結 | concatenate | | | |
| pwd | 印出工作目錄 | print working directory | | | |
| man | 閱讀文檔的命令 | | | | |
| touch | 創建文件 | | | | |
| cp | 複製文件或文件夾 | copy | | | |
| file | 確定文件類型 | | | | |
| rm | 刪除文件或文件夾 | remove | | | |
| mv | 移動文件或文件夾 | move | | | |
| mkdir | 創建文件"夾" | make directory | | | |
| cd | 切換工作目錄 | change directory | | | |
* find
找到當前目錄中的每個 .txt 文件
使用通配符 (*) 來搜索任何以 .txt 結尾的內容
用法: find . -name ?.txt
* grep
1. 語法:grep 關鍵字 檔案1 檔案2 ...
2. grep -i 關鍵字 檔案1 檔案2 ...
grep預設會區分字母的大小寫
如果希望以不分大小寫的方式搜尋,可以 加上-i參數
