黑客滲透時使用的攻擊腳本,結構為:腳本名稱、腳本功能詳細描述、腳本危害程度、漏洞攻擊代碼程序等部分。
微軟每個月第二周的星期二發(fā)布補?。ò琈SSQL),這一天被稱為Black Tuesday。很多黑客會通宵達旦去研究微軟發(fā)布的補丁,通過補丁對比尋找微軟修復的漏洞。由于客戶不一定能馬上及時更新微軟的最新補丁,所以黑客可能 會利用這些從補丁中尋找到的漏洞對目標軟件進行攻擊。
黑客用于對軟件進行攻擊的一段含有惡意代碼的輸入。它可能是一段攻擊性的網絡數據包,也可能是一段帶有攻擊性的畸形串。它是黑客用于發(fā)動緩沖區(qū)溢出攻擊的具體代碼。
Shellcode實際是一段代碼(也可以是填充數據),是用來發(fā)送到服務器利用特定漏洞的代碼,一般可以獲取權限。exploit中的一部分,是 緩沖區(qū)溢出攻擊中植入進程的代碼。當緩沖區(qū)溢出成功劫持到函數返回地址之后,則進入shellcode的流程,執(zhí)行shellcode部分的代碼。
緩沖區(qū)溢是指源緩沖區(qū)的數據向小于自身位數的緩沖區(qū)復制數據時,超越目標緩沖區(qū)的位數邊界,并且數據庫未對存入數據進行邊界判斷,最終導致目標緩沖 區(qū)爆滿。目標緩沖區(qū)內存改變程序控制流、奪取操作系統(tǒng)、禁止訪問等多種結果。緩沖區(qū)溢出主要可以分成三種:靜態(tài)數據溢出、棧溢出和堆溢出。
緩沖區(qū)溢出,簡單的說就是計算機對接收的輸入數據沒有進行有效的檢測(理想的情況是程序檢查數據長度并不允許輸入超過緩沖區(qū)長度的字符),向緩沖區(qū)內填充數據時超過了緩沖區(qū)本身的容量,而導致數據溢出到被分配空間之外的內存空間,使得溢出的數據覆蓋了其他內存空間的數據。
棧溢出就是緩沖區(qū)溢出的一種。 由于緩沖區(qū)溢出而使得有用的存儲單元被改寫,往往會引發(fā)不可預料的后果。緩沖區(qū)溢出的一種主要是通過利用截取函數返回值來進行棧溢出。方式主要分為2 種,1.通過緩沖區(qū)溢出改變函數邏輯流程。2通過緩沖區(qū)溢出改變函數返回地址。其中比較常見的為第二種。
堆溢出是緩沖區(qū)溢出的一種,利用原理類似棧溢出,但由于堆中地址是動態(tài)分配的無法準確定位,所以黑客要利用堆溢出需要通過DWORD SHOOT技術來對堆進行掃描。獲取堆溢出中可利用的地址。
這種技術是緩沖區(qū)堆溢出的主要核心技術,由于堆中地址不是固定的是動態(tài)分配的所以需要通過散射的方式向內存堆中任意位置寫入exploit,進而劫持進程,運行shellcode,已到達黑客對軟件控制的目標。
靜態(tài)數據區(qū)域存放連續(xù)的全局變量和未初始化的靜態(tài)變量,緩沖區(qū)在這發(fā)生溢出稱為靜態(tài)數據區(qū)溢出
"緩沖區(qū)溢出的一種主要由于整數在內存里面保存在一個固定長度
(在本章中使用32位)的空間內,它能存儲的最大值就是固定的,當嘗試去存儲一個數,而這個數又大于這個固定的最大值時,將會導致整數溢出。例如A ,
B兩個數都是32位長,首先賦值給A 一個32位整數的最大值,B被賦值為1。然后讓A和B相加,然后存儲結果到第3個無符號32位的整數C,代碼如下:
A = 0xFFFFFFFF;
B = 0x00000001;
C = A + B;
很顯然,A的值是:11111111 11111111 11111111 11111111;
B的值是:00000000 00000000 00000000 00000001;
兩者相加,得到結果為:00000000 00000000 00000000 00000000。因此,C中的值是0,發(fā)生了整數溢出 當C是用來描述緩沖區(qū)大小或數組索引的時候,就可能被黑客利用,用來改變程序邏輯,繞過一些防御機制,已達到入侵的目的。"
"格式化串漏洞最顯著的例子,就是在*printf()系列函數中按照一定的格式對數據進行輸出,可以輸出
到標準輸出,即printf(),也可以輸出到文件句柄,字符串等,對應的函數有fprintf,sprintf,
snprintf,vprintf,vfprintf,vsprintf,vsnprintf等。能被黑客利用的地方也就出在這一系列
的*printf()函數中,黑客主要是利用printf()系列函數有三條特殊的性質,首先第一個可以被利用的性質是:*printf()系列函數的參
數的個數是不固定的。2.利用*printf()的一個特殊的格式符%n,我們就向內存中寫入exploit。3.利用附加格式符控制跳轉地址的值。"
當黑客通過網絡對數據庫進行攻擊。利用緩沖區(qū)漏洞的攻擊會通過劫持被入侵函數中的棧中的函數返回值,來奪取函數控制,跳轉到黑客編寫的shellcode。當shellcode打開CMD(windows)即可通過數據庫賬號來操控操作系統(tǒng)。從而奪取整個操作系統(tǒng)的過程。
windows 早期的異常處理機制。活躍于WINDOWS SP3以前(包含SP3)的版本。后被VEH取代默認異常處理機制地位。SHE是一個單向鏈表,每當操作系統(tǒng)發(fā)生異常的時候,系統(tǒng)會檢測進程的PEB結 構,當PEB符合要求的時候,系統(tǒng)將會遍歷SHE異常鏈表,SHE異常處理函數會得到執(zhí)行。
VEH windows XP SP3后出現的新的異常處理機制,優(yōu)先級高于SHE。VES是一個雙向鏈表,每當操作系統(tǒng)發(fā)生異常的時候,系統(tǒng)會檢測進程的PEB結構中的 EnvironmentUpdateCount元素,當PEB. EnvironmentUpdateCount符合要求的時候,系統(tǒng)將會遍歷VEH異常鏈表,VEH異常處理函數會得到執(zhí)行。
系統(tǒng)默認異常處理函數,VEH/SHE 最后一環(huán)。當發(fā)生異常處理后一旦中間所以異常處理機制都無法處理的時候,最終會跳入系統(tǒng)異常處理。系統(tǒng)異常處理會采取強制關閉軟件,并且跳出彈窗發(fā)出異常信息。
一種加強shellcode穩(wěn)定運行的方法。Heap Spray是在shellcode的前面加上大量的slide code(滑板指令),組成一個注入代碼段。然后向系統(tǒng)申請大量內存,并且反復用注入代碼段來填充。這樣就使得進程的地址空間被大量的注入代碼所占據。然 后結合其他的漏洞攻擊技術控制程序流,使得程序執(zhí)行到堆上,最終將導致shellcode的執(zhí)行。
微軟在VS2005后提供的一種安全機制,GS編譯選項可以檢查堆棧中是否有溢出。檢查的方法是在函數棧的返回地址的前面加入一個隨機生成的 cookie驗證串。如果函數棧遭到緩沖區(qū)溢出,改變了函數返回值,那在改變函數返回值之前一定會改變cookie串。在調用返回地址之前對隨機的 cookie進行檢查發(fā)現被修改,則不執(zhí)行返回地址,直接跳入異常處理。
是一個在棧中的隨機cookie串,用于檢驗棧是否被溢出。它屬于微軟在VS2005后提供的一種安全機制,GS編譯選項中的一部分
是一個在堆中的隨機cookie串,用于檢驗堆是否被溢出。它屬于微軟在VS2005后提供的一種安全機制,GS編譯選項中的一部分
SQL命令注入漏洞源于PHP、asp等腳本語言對用戶輸入數據解析的缺陷。SQL注入攻擊是黑客對數據庫進行攻擊的常用手段之一。缺乏對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。最終導致黑客可以通過WEB應用獲取后臺數據庫中的敏感信息。
當黑客向web應用發(fā)送注入點測試語句的時候,WEN應用把后臺的數據庫報錯信息隱藏掉后,黑客通過響應時間等因素來判斷后臺數據庫類型,此處是否為注入點的一種技術。
sql注入的一種,他的特點是在原有SQL語句中加入一些黑客需要查詢的內容。雖然注入一些黑客要執(zhí)行的SQL代碼后,但原來的SQL語句依然會執(zhí)行。
sql注入的一種,他的特點是在原有SQL語句中加入一些黑客需要查詢的內容。利用注釋符徹底改變原SQL語句的含義,使整個SQL語句返回的結果完全被黑客所用。
XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。比如這些代碼包括HTML代 碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy).現在跨站腳本攻擊是web應用新型的“緩沖區(qū)溢出攻擊“,而JavaScript是新型的“ShellCode”。當然這種攻擊手段攻擊 者的目標不再是是WEB應用,而是通過web應用來入侵其他客戶端使用者。
游標注入是指利用游標進行sql注入。游標分為3類,其中游標注入使用的是顯式游標。發(fā)生游標注入有3種場景:1.缺乏異常處理,掛起的游標被低權限用戶惡意利用2. oracle游標漏洞提權3. oracle游標設計本身的安全隱患。
數據庫系統(tǒng)級的函數、系統(tǒng)級的包和一些安全缺陷,進行的通過SQL語句中的畸形字符串或者其他方式,進行越權或提權操作。往往最終可以把一個低權限賬號提升到DBA權限
在已有的SQL語句中插入新的SQL語句,一般需要數據庫支持多條語句一起執(zhí)行。
針對數據庫中某函數的參數已有的漏洞進行SQL串的注入。
依靠對WHERE子句的修改使SQL語句返回不同的結果集
通常認為容易被別人猜測到或被破解工具破解的口令均為弱口令,其中很大一部分是數據庫默認口令
缺省密碼是指數據庫在創(chuàng)建過程中會產生默認用戶名和默認密碼。數據庫提示用戶修改密碼,但用戶未進行修改,產生缺省密碼漏洞。例如:mssql中管理員用戶sa/sa。
拒絕服務攻擊即攻擊者強制目標數據庫停止提供服務,是黑客常用的攻擊手段之一。其中數據庫端口進行的消耗性攻擊只是拒絕服務攻擊的一小部分,凡是使數據庫服務被暫停甚至所處主機死機,都屬于拒絕服務攻擊。
數據庫中用戶根據權限劃分,一些用戶本身并不具備某些操作權限。黑客獲得了這個數據庫用戶后通過一些畸形的sql語法串,對含有漏洞的函數進行注入。導致低權限用戶獲得高權限用戶才有的操作權限,執(zhí)行原本自身權限無法執(zhí)行的語句,獲取敏感數據。
數據庫中用戶根據權限劃分,一些用戶本身并不具備某些操作權限。黑客獲取該數據庫用戶后通過一些畸形的sql語法串,對含有漏洞的函數進行注入。導致低權限用戶獲得高權限用戶才有的操作權限,執(zhí)行提權語句,獲取敏感數據。
是一種利用社會工程學來進行的攻擊。常見的短信詐騙、電話詐騙都屬于社會工程學攻擊范疇。
通過數據字典(密碼庫)對數據庫的用戶名進行碰撞,最終碰出可以用于訪問數據庫的用戶和密碼組合。