Linux[1]: VM & Python

By 小黑

目錄

- Linux Distros

- Virtual Machine

- Python

Linux Distros

講明之前忽略的事

- Linux 不是一個作業系統

- Linux 只是一個 Kernel (內核)

- Kernel 好比是大腦,負責分配記憶體、CPU 等資源給作業     系統(人)的其他組件(比如手、腿)

- 只有 Kernel (大腦)是完全不夠的,所以才需要其他組件

Linux Distros

- 上次上課提到,Linux 的 Source Code 可以隨意更改

- 因此出現了很多人(或公司)將 Linux Kernel 加上雜七雜     八的組件,設計出新的作業系統

- 這些作業系統統稱為 Linux Distros (Linux 發行版)

- 各個發行版的程式理論上都是通用的(因為用的 Kernel 都     是 Linux) 

Distros 之間的區別

- 套件管理器(上堂課教的 apt 為其中一種)

- 設計哲學

- 內建程式

- 更新模式(Stable/Rolling)

- 自由度

- 用途(Desktop/Server)

常見 Distros

Ubuntu

Debian

Linux Mint

Fedora

Arch Linux

EndeavourOS

Ubuntu

- 最多人用的 Distro,預設 App 不少

- Stable release

- 由 Debian 魔改而來,界面算友善

- 很多人罵但還是不少人用

- 套件管理器 為 apt

Debian

- 老但好用,穩定的選擇

- Stable release(可以五年不大更新)

- 偏難裝,但裝好可以很久不動

- 套件管理器 為 apt

Linux Mint

- 新手的好選擇,使用者體驗比 Ubuntu 好

- 由 Ubuntu 魔改而來,坑應該少很多

- Stable Release

- 套件管理器 為 apt

Fedora

- 背後有公司支援,相對坑少

- Rolling Release

- 界面好看,安裝很方便

- 套件管理器 為 dnf

Arch Linux

- 超級大坑,不要碰

- Rolling Release

- 上下限很高,由使用者決定

- 超級難裝,但自訂度超高

- 套件管理器 為 pacman

  (這東西很神)

EndeavourOS

- 我推的發行版

- Rolling Release

- 由 Arch 改過來,省掉了麻煩的安裝

- 享有 Arch 的爽度和 Ubuntu 的易用

- 套件管理器 為 pacman

還有這堂要教的 Kali Linux!

Kali Linux

- 資安界神器,駭客挺愛用

- Stable Release

- 由 Debian 改過來,加了很多資安工具

- 裝了就可以自稱駭客

- 套件管理器 為 apt

Virtual Machine

Virtual Machine (VM)

- 一種讓你可以「在作業系統裡再裝一個作業系統」的軟體

- 使用上跟一般電腦差不多,有獨立的網路、硬碟、作業系統

- VM 裡的資料跟作業系統完全隔絕,即使 VM 中毒也沒差

- 一台電腦可以開多個 VM ,甚至可以在 VM 裡開 VM

為什麼需要 VM

- 測試軟體需要不同系統,拿實體電腦太麻煩又太貴

- 想嘗試不同系統,但直接灌太麻煩

- 直接開危險的檔案很危險,所以拿 VM 開

- VM 匿名性高,要搞事比較不容易被抓

常見 VM 

VirtualBox

Parallels Desktop

VMWare

- 要錢

- 免費

- 要錢

- 據說有人拿來在 Mac 上裝 Windows

講師沒錢,所以教 VirtualBox

安裝 VirtualBox

- 去 VirtualBox 官網 載你作業系統支援的安裝檔

- 下載完打開無腦按下一步就裝好了

- 如果你遇到比如 Oracle VirtualBox 需要先安裝 Visual C++ 之類的問題,去這裡裝 Visual C++ (選 x64 的版本)

裝好打開會是這個界面:

裝 Kali

- 點 這裡 下載 Kali 做好的 VirtualBox 版

- 下載完後用 7-zip 解壓縮

- 然後直接開啟裡面的 .vbox 檔,會彈出 VirtualBox

- 接著點擊 Start 就可以開始用 Kali 了

- 預設帳號:Kali

- 預設密碼:Kali

打開之後長這樣

Python

Python

- 一種程式語言

- 內建很多方便的 library

- 今天只講最基本的,更多麻煩來聽禮拜三 Python 小社

- 你要去上建北電資聯合 Python 小社

為何教 Python

- 如上,Python Library 很多,所以各種類型的程式都能寫

- 拿來寫工具很方便

  搞資安不可能全用別人寫的工具,所以還是得學一門程式語   言

- 你不寫程式的話資安根本沒用

第一個 Python 程式

- 開一個檔案 a.py ,然後複製上面這段 code 存檔

- 在 Bash 裡輸入下列指令:

print("Hello, CKEFGISC")
python3 a.py

Function (函式)

- 一段有名字的 code,可以不斷調用這段 code

print("Hello, CKEFGISC") # print 是一個能印出東西的函式

def hello_ckefgisc(): # 建立一個名叫 hello_ckefgisc 的函式
  print("Hello, CKEFGISC") 
  
hello_ckefgisc() # 調用 hello_ckefgisc 這個函式

def print_couple(s, m): # 建立一個可以傳入 s, m 兩個參數的函式
  print(s, "is S, and", m, "is M")
  
print_couple("AaW", "cdbe")

Variable (變數)

- 一個用來存東西的箱子

- 箱子能存不同類型的東西,e.g. 整數、小數、字串、真假值

- 1、2、5 都是 int (整數)

- 2.5、3.14、5.0 是 float (小數)

- "It's MyGO!"、"APCS sucks" 是 string (字串),就是一串文字,前後要用 " 包起來

a = 5 # 宣告 a 這個箱子裡面裝了 5
print(a) # 印出 a 這個箱子裡面裝的東西
b = a # 將 a 這個箱子裡面的東西複製一份到 b 箱子
print(b) # 印出 b 這個箱子裡面裝的東西
a = 4
print(b)
print(a)

Arithmetic (加減乘除)

- * 是乘,/ 是除

- ** 是次方的意思(2 ** 2 代表  2 的 2 次方)

- % 取餘數

print(1 + 2) # 3
print(1 * 3 + 4) # 7
print(2 ** 2) # 4
print(4 / 2) # 2
print(5 % 2) # 1

Input/Output (輸入輸出)

- input 函式可以用來獲得使用者輸入的內容

- input 函式預設的返回值是字串,得用 int 函式才能轉成整     數

name = input()
print("Hello,", name)

age = int(input())
print("You're", age, "years old.")

If/Else (條件判斷)

- == 是等於的意思 (因為 = 被變數宣告佔走了)

- > 大於 < 小於 >= 大於等於 <= 小於等於

if 2 > 1:
  print("2 > 1")

is_ian_gay = False

if is_ian_gay == True:
  print("Ian is not gay.")
else:
  print("Ian is gay.")

Module (模組)

- Module 就是一堆別人已經寫好的函式

import webbrowser # 引入 webbrowser 這個模組
# 使用 webbrowser 裡面的 open 函式
webbrowser.open("https://www.youtube.com/watch?v=oHg5SJYRHA0")

2024 建北電資上學期資安小社[1]——VM & Python

By Aaron Wu

2024 建北電資上學期資安小社[1]——VM & Python

  • 498