學習入侵躲避技術 理解AET

2021-09-21 15:38:40 字數 3589 閱讀 6997

學習入侵躲避技術

--- 理解

aet

jack zhai

什麼是入侵躲避技術

2023年10月18日,芬蘭的stonesoft公司宣布發現了一種新型的高階逃逸技術(aet:advanced evasion technique),可以輕鬆躲避目前的ips/ids檢測,成功入侵目標伺服器,震驚了資訊保安界。作為這個技術的佐證之一,就是近年來令大家迷惑的未知攻擊越來越多,未知攻擊就是只知道被攻擊了的事實,卻不知道黑客採用了什麼手段,何時進行的入侵,遺憾的是目前的安全措施都沒有發現其蹤跡。

後來,stonesoft公開了其中的部分技術細節,大概40多種組合躲避技術,並發布乙個針對漏洞(cve-2008-4250/cve-2004-1315)的躲避技術演示工具軟體。演示結果簡單明瞭:入侵者對沒有打補丁的目標伺服器直接入侵,成功建立遠端shell;中間部署ips裝置後,開啟安全防護策略,直接入侵則不再成功;通過調整軟體上的組合引數,如ip引數、tcp引數等,很快入侵成功的shell視窗再次開啟。

其實早在2023年newsham和ptacek就發表**,討論利用ip碎片技術躲避網路入侵檢測裝置了,只是當時沒有引起安全界的重視,而他們的研究對黑客來說,可謂是思路廣開,隨後的幾年,這種技術被廣泛使用於實際的入侵攻擊中,尤其是apt攻擊,針對性很強,效果非常好。

高階逃逸技術(aet)是黑客利用協議組合的技巧,躲過網路上安全措施的檢查,成功抵達目標,實施入侵攻擊。我更喜歡翻譯成為高階躲避技術,或者是入侵躲避技術;躲避是指還處在你監視環境下繼續生存,但我成功地「隱身」了自己,逃逸則是我設法逃出你的監視範圍。入侵躲避技術的目的還是要入侵,而不是逃走了事。下圖是入侵躲避技術的原理:

入侵躲避技術的分類:

入侵躲避技術可謂是種類繁多,實際上就是利用安全裝置與目標主機對各種協議、各種字符集,以及他們的組合處理的差異,合理地躲避了檢查,成功入侵了目標。因此,入侵躲避技術是有針對性的,不是一種方式走天下,而是在具體的入侵環境中,選擇不同的引數組合、協議組合、字符集組合,達到躲避的目的。

根據躲避安全措施的不同分為:

1.         

網路入侵躲避技術:躲避網路上的安全檢查,如fw\ids\ips\waf\utm等,其中主要部分是ips。需要躲避的是入侵時的攻擊行為,如漏洞探測,上傳的惡意**,如shellcode,下傳敏感資訊,如口令檔案;

2.         

主機入侵躲避技術:躲避主機(目標伺服器)上的安全檢查,如主機防入侵防禦軟體\主機防病毒軟體等。典型的技術是程序注入、rootkit等。

其中網路躲避又可以根據躲避的方向分為:

1.         

單向躲避:目標點沒有接應的,躲避了安全檢查的攻擊流應該能被目標主機正常「理解」,完成入侵行為,否則即使躲避了中間的安全檢查,也達不到入侵的目的。單向躲避一般應用在入侵過程中;

2.         

雙向躲避:目標點有接應者,只要躲避了中間的安全檢查,到達目標後,接應者負責資訊的還原。雙向躲避一般應用在攻擊成功後的惡意**傳遞與遠端控制聯絡。

常見的網路躲避技術有下面幾類:

1.         

字元變換:ips一般基於特徵比對與行為模式識別,若把傳輸的內容變成檢查者不認識的「外文」,就容易蒙混過關。這個方法常被用在注入攻擊中的不同字符集之間的轉換。尋找到ips與目標主機對某字符集解釋的差異,就可以實施躲避攻擊;典型的方式是sql注入;

2.         

協議組合:每個業務鏈結會使用多個協議,利用網路各種協議的引數組合,如包大小、碎片處理、重疊處理、多執行緒傳送等,由於ips與目標主機解析協議的處理方式不同,就可以躲避ips的特徵檢查,同時又可以達到攻擊的目的;

3.         

涉及主機躲避技術,本人在《伺服器入侵加固的幾種方式》中有所介紹,本文主要討論網路躲避技術,就重疊分片躲避與多執行緒躲避為例,分析一下網路躲避技術的原理。

重疊分片躲避技術分析

把乙個大的資料報分成多個切片(ip包)傳輸,是tcp協議的功能之一。正常的情況下接收端按照切片的編號、偏移量,再重新組裝成完整的資料報。

正常的協議解析過程是每個分片順序排列,並且按序號送達目的主機。由於網路的不同路徑延遲不同,造成到達目標的分片不一定是順序的;某個分片或許中途損壞要重傳,延遲自然更大一些;有些系統本身的bug,分片時偏移量寫錯了,造成分片之間有重疊…

這裡只討論一種分片重疊的躲避技術,如下圖:

我們可以看到,在正常的分片中,第二個分片中有惡意**的特徵,ips通過快取各個分片的負載,就可以還原資料報,自然就可以發現這個特徵。

為了躲避ips的檢測,我們故意把第一分片的後面增加了一段隨機資料(其大小甚至可以覆蓋分片2,或更長),同時增加分片1的長度,分片2與分片3都不做改動。

這樣分片1與分片2的內容就有重合了,目標伺服器接收時,對於重合的部分是選分片1的,還是選分片2的呢?我們知道,這個最終結果要根據目標伺服器的作業系統而定,不同作業系統,或者有些版本之間的處理方式是不同,歸結為tcp/ip協議棧的**編寫。有選分片1的,也有選分片2的,但告知傳送方分片有錯誤,要求重傳的不多。

這樣就出現了乙個問題:負責安全檢查的ips採用的方式是前向的,還是後向的呢?目前大部分ips廠商還不能確定其後邊的伺服器採用什麼樣的作業系統,無法自動匹配具體的應用環境,要兩種方式都檢查的話,需要設立雙倍的緩衝區記憶體,顯然是不划算的。因此,大部分廠家都只選擇一種,比如是前向的,即分片重疊時,資料選擇前乙個編號的資料為準。

現在機會就來的,我們在分片1後面加了隨機資料,覆蓋了分片2的惡意**部分,ips的協議棧中重組的資料報就是良性的資料報,成功地躲避了ips的安全檢查。

而此時目標伺服器的協議棧正好是後向方式,重疊部分採用分片2的資料,重組的資料報正是原來的入侵資料報,目標伺服器被實施攻擊。

重疊分片適用於單向躲避,尤其是攻擊前的掃瞄、漏洞溢位、提權等階段。測試實際環境中ips是前向的還是後向的,是比較容易的,正常訪問中帶些惡意**,測試一次就知道了。此後,就可以放心大膽地對ips後面採用不同協議棧的應用放手攻擊了。

多執行緒躲避技術分析

很顯然,在每個執行緒中看到的全部資料流都是割裂的,小的、碎的資料塊;對每乙個執行緒的資料快取,都不能進行有效的特徵比對。由於ips廠商是針對連線建立應用緩衝區的,三個執行緒的資料分布在三個緩衝區中,並且每個分片的編號與位置資訊,是收發雙方的主控程序管理的,並非通用協議可知資訊,因此,ips即使知道入侵者採用多執行緒在傳送,也無法還原原始的資料報。並且,由於ips無法知道主控程序管理著哪些子執行緒,所以也無法判斷哪些連線屬於同乙個多執行緒組合。

有人提出建議:多執行緒的特點是同源同目的位址,並且是同協議,還是同乙個連線時段,有些安全策略甚至可以限制這樣的連線對大個數為1,限制使用多執行緒技術。

但入侵者完全可以讓不同的執行緒採用不同的協議,只要是ips允許的協議都可以,如執行緒1採用http,執行緒2採用ftp,執行緒3採用snmp。在ips看來,這完全就是同源同目的位址之間的三個業務連線,這這種業務模式是常見的,如員工連線到公司,發郵件,訪問**等。

多執行緒躲避技術適用於雙向躲避,不同於加密通訊,又類似於加密技術。尤其是入侵者遠端控制肉雞時,多執行緒等於多條控制渠道,這些通道同時啟動,避免有些通道被發現,或被關閉時,對肉雞失控的狀態;同時也可以避免有人冒充自己,利用自己的肉雞。

小結:

這裡只是對入侵躲避技術的乙個初步認識,在今後的討論中我們再將進一步分析各種躲避技術的原理與方法。

入侵防禦 IPS 技術

ips intrusion prevention system 入侵防禦系統,是一種安全機制,通過分析網路流量,檢測入侵 包括緩衝區溢位攻擊 木馬 蠕蟲等 並通過一定的響應方式,實時地中止入侵行為,保護企業資訊系統和網路架構免受侵害。入侵防禦是種既能發現又能阻止入侵行為的新安全防禦技術。通過檢測發現...

SQL Injection規避入侵檢測技術總結

當我們對乙個執行ids系統的伺服器進行sql注射時,我們往往會遇到很大的麻煩,因為我們的注射語句被過濾了,如何規避這種檢測手段就成了一門新的技術,本文就對此規避技術提出十一條思路和方法,與大家商戳。一 運用編碼技術繞過,如urlencode編碼,ascii編碼繞過。如or 1 1即 6f 72 20...

《SQL Injection規避入侵檢測技術總結》

sql injection規避入侵檢測技術總結 sql injection規避入侵檢測技術總結 當我們對乙個執行ids系統的伺服器進行sql注射時,我們往往會遇到很大的麻煩,因為我們的注射語句被過濾了,如何規避這種檢測手段就成了一門新的技術,本文就對此規避技術提出十一條思路和方法,與大家商戳。一 運...