用kali做靶機,ip為192.168.153.131、seed做攻擊機,ip位址為192.168.153.130
攻擊方用nmap進行tcp掃瞄
防守方用tcpdump進行嗅探
防守方用wireshark進行分析
緩衝區溢位是指程式試圖向緩衝區寫入超出預分配固定長度資料的情況。這一漏洞可以被惡意使用者利用來改變程式的流控制,甚至執行**的任意片段。這一漏洞的出現是由於資料緩衝器和返回位址的暫時關閉,溢位會引起返回位址被重寫。
1.實驗樓提供的是64位ubuntu linux,而本次實驗為了方便觀察彙編語句,我們需要在32位環境下作操作,因此實驗之前需要做一些準備。
輸入命令安裝一些用於編譯32位c程式的東西:
sudo apt-get update
sudo apt-get install lib32z1 libc6-dev-i386
sudo apt-get install lib32readline-gplv2-dev
2、輸入命令「linux32」進入32位linux環境。此時你會發現,命令列用起來沒那麼爽了,比如不能tab補全了,所以輸入「/bin/bash」使用bash:
1.初始設定:
ubuntu和其他一些linux系統中,使用位址空間隨機化來隨機堆(heap)和棧(stack)的初始位址,這使得猜測準確的記憶體位址變得十分困難因此本次實驗中,我們使用以下命令
sudo sysctl -w kernel.randomize_va_space=0
關閉系統記憶體位址空間隨機化功能,以方便猜測記憶體位址。
為了進一步防範緩衝區溢位攻擊及其它利用shell程式的攻擊,許多shell程式在被呼叫時自動放棄它們的特權。故不能在這個shell中保持root許可權,這個防護措施在/bin/bash中實現。
2 shellcode
一般情況下,緩衝區溢位會造成程式崩潰,在程式中,溢位的資料覆蓋了返回位址。而如果覆蓋返回位址的資料是另乙個位址,那麼程式就會跳轉到該位址,如果該位址存放的是一段精心設計的**用於實現其他功能,這段**就是shellcode。
3 漏洞程式
把以下**儲存為「stack.c」檔案,儲存到 /tmp 目錄下。**如下:
編譯該程式,並生成set-uid,命令如下:
gcc編譯器有一種棧保護機制來阻止緩衝區溢位,所以我們在編譯**時需要用 –fno-stack-protector 關閉這種機制。而 -z execstack 用於允許執行棧。
4.漏洞程式目的:攻擊剛才的漏洞程式,並通過攻擊獲得root許可權。把以下**儲存為「exploit.c」檔案,儲存到 /tmp 目錄下。**如下:
右邊%esp中是初始的str起始位址,所以在左邊框起來的值中設斷點
得到乙個值:0xffffd020,根據語句 strcpy(buffer+100,shellcode); 計算shellcode的位址為 0xffffd0200(十六進製制)+100(十進位制)=0xffffd084(十六進製制)
exploit.c中的shellcode值可由此補全
編譯exploit.c程式:
gcc -m32 -o exploit exploit.c
5.攻擊結果先執行攻擊程式exploit,再執行漏洞程式stack,觀察結果:
可以獲得root,實驗成功。
實驗總結
剛開始按部就班按照實驗樓裡的教程做,也不懂得根據自己的實際操作shellcode值可能與實驗樓中不一樣,故第一次出現了「段錯誤」,後來認真地參與實驗,改正了錯誤,得到了root。兩個體會--1.要專心2.結合實際情況,不可死搬硬套。
學習進度條
部落格量(新增/累計)
學習時間(新增/累計)
本週學習收穫
目標20
200小時
完成每週作業
第1~5周
6/665h/65h
kali的使用及攻防一些基本知識
第6周1/716h/81h
對傳輸層的安全結構有了深刻的了解,學習使用kali一些工具
第7周1/814h/95h
了解windows作業系統攻防,學習使用metaspoitable
第8周1/912h/107h
了解linux作業系統攻防
第9周1/10
8h/115h
惡意**及軟體安全攻防,及kali一些數字取證和壓力測試工具
第10周
1/11
5h/120h
nmap+wireshark攻防,緩衝區溢位實驗
第十周作業
1.感觸太多!讓我醍醐灌頂 2.很有教育意義 3.看您的文章真的是享受。觀察問題和思考原因,最後給出解決辦法!每每一針見血。1.公司員工要想長久要給員工提供提公升空間,讓員工替老闆幹,轉變為員工為自己幹。2.學習能力尤為重要,我們要不斷學習提公升自身能力 3.給出清晰 明確的目標,知道自己該幹嘛,知...
第十周作業
本次作業所屬課程 c語言程式設計 本次作業要求 我在這個課程的目標是 學會熟練使用結構型別 本次學習在哪些具體方面幫組我實現目標 自己定義結構還是會方便很多 參考文獻 c primer plus第六版 一 劉未鵬的部落格 怎樣花兩年時間面試乙個人 a 實踐是檢驗真理的唯一標準!能說會道的前提是你要有...
第十周作業
十一周上機作業 cola公司的雇員分為以下若干類 知識點 多型 1 colaemployee 這是所有員工總的父類,屬性 員工的姓名,員工的生日月份。方法 getsalary int month 根據引數月份來確定工資,如果該月員工過生日,則公司會額外獎勵100 元。2 salariedemploy...