1.惡意代碼python
概述linux
惡意代碼是指故意編制或設置的、對網絡或系統會產生威脅或潛在威脅的計算機代碼。最多見的惡意代碼有計算機病毒(簡稱病毒)、特洛伊木馬(簡稱木馬)、計算機蠕蟲(簡稱蠕蟲)、後門、邏輯炸彈等。
特徵:
惡意的目的,獲取靶機權限、用戶隱私等
自己是計算機程序,能夠執行,並做用於靶機
經過執行發生做用,通常來講不運行是沒問題的web
惡意代碼分析shell
在大多數狀況下,進行惡意代碼分析時,咱們將只有惡意代碼的可執行文件自己,而這些文件並非咱們人類可讀的。爲了瞭解這些文件的意義,你須要使用各類工具和技巧,而每種只能揭露出少許的信息。因此在實戰中,咱們要綜合使用各類工具,才能看到一個全貌。
惡意代碼分析有兩類基本方法:windows
2.緩衝區溢出和Shellcode瀏覽器
軟件安全漏洞包括系統的脆弱性或缺陷、攻擊者對缺陷的可訪問性和攻擊者對缺陷的可利用性三個元素。sass
軟件安全具備複雜性、可擴展性、連通性。軟件安全漏洞有如下幾類,有內存安全違規類、輸入驗證類、競爭條件類、權限混淆與提高類。安全
緩衝區溢出的概念,即在計算機程序向特定緩衝區內填充數據時,超出了緩衝區自己的容量,致使外溢數據覆蓋了相鄰內存空間的合法數據,從而改變了程序執行流程破壞系統運行完整性。bash
Linux和Windows平臺上的棧溢出和Shellcode,並介紹了相關的攻擊技術。堆溢出是緩衝區溢出的第二種類型的攻擊方案,比棧溢出更加複雜。服務器
緩衝區溢出的防護技術,有嘗試杜絕溢出、容許溢出但不讓程序改變執行流程、沒法讓攻擊代碼執行三種方法。
緩衝區溢出是指程序試圖向緩衝區寫入超出預分配固定長度數據的狀況。這一漏洞能夠被惡意用戶利用來改變程序的流控制,甚至執行代碼的任意片斷。這一漏洞的出現是因爲數據緩衝器和返回地址的暫時關閉,溢出會引發返回地址被重寫。
1.輸入命令安裝一些用於編譯32位C程序的東西:
sudo apt-get update sudo apt-get install lib32z1 libc6-dev-i386 sudo apt-get install lib32readline-gplv2-dev
2.輸入命令linux32和/bin/bash進入32位linux環境:
3.Ubuntu和其餘一些Linux系統中,使用地址空間隨機化來隨機堆(heap)和棧(stack)的初始地址,這使得猜想準確的內存地址變得十分困難,而猜想內存地址是緩衝區溢出攻擊的關鍵。所以本次實驗中,咱們使用如下命令關閉這一功能:
sudo sysctl -w kernel.randomize_va_space=0
4.爲了進一步防範緩衝區溢出攻擊及其它利用shell程序的攻擊,許多shell程序在被調用時自動放棄它們的特權。爲了重現這一防禦措施被實現以前的情形,咱們使用另外一個shell程序(zsh)代替/bin/bash:
sudo su cd /bin rm sh ln -s zsh sh exit
5.通常狀況下,緩衝區溢出會形成程序崩潰,在程序中,溢出的數據覆蓋了返回地址。而若是覆蓋返回地址的數據是另外一個地址,那麼程序就會跳轉到該地址,若是該地址存放的是一段精心設計的代碼用於實現其餘功能。
6.漏洞程序
把如下代碼保存爲「stack.c」文件,保存到 /tmp 目錄下。
編譯該程序,並設置SET-UID。命令以下:
sudo su gcc -m32 -g -z execstack -fno-stack-protector -o stack stack.c chmod u+s stack exit
GCC編譯器有一種棧保護機制來阻止緩衝區溢出,因此咱們在編譯代碼時須要用 –fno-stack-protector 關閉這種機制。而 -z execstack 用於容許執行棧。
7.攻擊程序
咱們的目的是攻擊剛纔的漏洞程序,並經過攻擊得到root權限。
把如下代碼保存爲「exploit.c」文件,保存到 /tmp 目錄下。如今咱們要獲得shellcode在內存中的地址,輸入命令:
gdb stack disass main
結果如圖:
根據語句 strcpy(buffer+100,shellcode); 咱們計算shellcode的地址爲 0xffffd060(十六進制)+100(十進制),修改exploit.c文件:將 \x??\x??\x??\x??
修改成\xc4\xd0\xff\xff
而後,編譯exploit.c程序:
8.運行結果
先運行攻擊程序exploit,再運行漏洞程序stack:
(1)VoIP壓力測試工具
包括iaxflood和inviteflood
(2)THC-SSL-DOS
藉助THC-SSL-DOS攻擊工具,任何人均可以把提供SSL安全鏈接的網站攻擊下線,這種攻擊方法被稱爲SSL拒絕服務攻擊(SSL DOS)。德國黑客織「The hacker's choice」發佈THC SSL DOS,利用SSL中的已知弱點,迅速消耗服務器資源,與傳統DDoS工具不一樣的是,它不須要任何帶寬,只須要一臺執行單一攻擊的電腦。漏洞存在於協議的renegotiation過中renegotiation被用於瀏覽器到服務器之間的驗證。
(3)dhcpig
耗盡DHCP資源池的壓力測試
(4)Macof
可作泛洪攻擊
(5)Siege
Siege是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:能夠根據配置對一個WEB站點進行多用戶的併發訪問,記錄每一個用戶全部請求過程的相應時間,並在必定數量的併發訪問下重複進行。
(6)T50壓力測試
T50是一個壓力測試工具,它功能強大且具備獨特的數據包注入工具,T50支持Linux系統可進行多種協議的數據包注入,實際上支持15種協議。
(7)無線壓力測試
mdk3和reaver
(1)PDF取證工具
peepdf是一個使用python編寫的PDF文件分析工具,它能夠檢測惡意的PDF文件。其設計目標是爲安全研究人員提供PDF分析中可能使用到的全部組件,無需使用3或者4中工具來完成同一件任務。
(2)反數字取證chkrootkit
Linux下查找後門的工具,是判斷系統是否被植入Rootkit的利器。
(3)內存取證工具
volatility是開源的windowa,Linux,MAC,Android的內存取證分析工具,由python編寫成,命令行操做,支持各類操做系統。
(4)取證分隔工具binwalk
binwalk是一個固定的分析工具,旨在協助研究人員對固件非分析,提取及逆向工程用處。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,還有重要的一點的是能夠輕鬆的擴展。藉助binwalk有個很強大的功能是提取文件(壓縮包)中存在的隱藏文件(或內容文件),亦可分析文件格式。,解壓縮包,查看壓縮包。
binwalk -e 文件
解壓文件:
發現自動生成一個壓縮文件包:
(5)取證哈希驗證工具集
md5deep是一套跨平臺的方案,能夠計算和比較MD5等哈希加密信息的摘要MD5,SH-1,SHA-256,Tiger,Whirlpool.
(1)Dradis
Dradis是一個用於提升安全監測效率的信息共享框架(協做平臺),Dradis提供了一個集中地信息倉庫,用於標記咱們目前已經作的工做和下一步計劃。
(2)Keepnote
一個很精簡的筆記軟件,特色以下:
富含文本格式,彩色字體,內置圖片,超連接,樹型分層組織內容,全文搜索,綜合截圖,文件附件,集成的備份和恢復,拼寫檢查(經過gtkspell),自動保存,內置的備份和恢復(zip文件存檔)
(3)Recordmydesktop
屏幕錄像工具,用來錄製桌面。
(4)Magic Tree
是一個面向滲透測試人員的工具,能夠幫助你輕鬆直接的進行數據合併,查詢,外部命令執行和報告生成,全部的數據都會以樹形結構存儲,很是方便。
(5)Truecrypt
是一款免費開源的加密軟件,同時支持windows vista,7/Xp,MAc OS X,linux等操做系統。
(6)服務功能介紹
能夠直接使用命令行結束工具服務。 每一項對應每一項的服務。