2015-03-28

OverTheWire Wargame 筆記

考上碩班了,實驗室也找好了。實驗是的學長給了我們這些碩零的不少資安相關的資料、網站讓我們讀。有鑑於以前沒有整理筆記的習慣,這次打算來用功整理了...

這次要整理的是一個 Wargame 網站 OverTheWire 的攻略(?)筆記。 XD 我只會記下我自己有遇上的問題、想記下的東西。
Wargame web site
Solutions for Bandit level 0-25
Advanced Bash-Scripting Guide - Special Characters
The unix commandline: pipes and redirects
SSH/OpenSSH/Keys

指令

  • file 查詢檔案類型
    可以簡單判斷某檔案是否為文字檔案。
  • du 列出檔案大小
  • uniq 找出重複的(相鄰)資料 uniq -u
  • strings 印出某檔案中的可印字元 strings [OPTION] file
  • tr 字元代換 tr [OPTION] SET1 [SET2]
    可用來實作簡易的 rotation cipher

shell 相關

- (dash, hyphen): shell 特殊字元

說是特殊字元其實不太正確。就我的理解,這個字元會完整的作為 avg 參數的一部分傳給目前要執行的指令。不過許多指令會特別處理這個字元。
當 "-" 出現在應該要放 filename 的位置時,許多指令會以 stdin 或 stdout 當作使用的檔案,或者說.. 把資料流導向 stdin 或 stdout,根據目前該檔案是用來輸入或輸出。
example:

cat tarball | tar xpvf -

在 cd 指令中,若以 "-" 作為 directory name,會回到上一個目錄 example:

cd ./Workspace cd ../Documentscd - #回到 Workspace 中

若要 cat 當前目錄下的某檔案,又不想標明 path,可以用 "-- " 來表示後面那一個 token 不是參數。這種方式可以用在檔名為 "-" 或是以 "-" 開頭的實際檔案。 example:

cat -- -somefile
cat ./-somefile
# these two command has the same effects.

ROT13

Wiki Page 這是一種簡易、不安全、基本上只會出現在教科書裡的 rotation cipher,實作方式很簡單,就是將所有的拉丁字元往後移 13 個字元,特別的是,encode 和 decode 是共用一個 cipher。與之類似的還有 ROT47,不過 ROT47 轉換範圍是介於 0b33 ! 至 0b126 ~ 共 96 個 ASCII 字元。

ROT13 可以透過 shell 裡的 tr 來實作。

cat file | tr 'A-Za-z' 'N-ZA-Mn-za-m'
# ROT13 cipher
cat file | tr '\!-~' 'P-~\!-O'
# ROT47 cipher