요즘 PHP는 Prestashop, WordPress, Magento 등과 같은 거의 모든 인기 있는 CMS를 구동하는 주요 엔진입니다. 이 서버 측 스크립팅 언어는 오늘날 인터넷 웹사이트의 거의 80%를 구동할 정도로 인기가 있습니다. 그러나 PHP를 사용하는 사이트는 하나의 익스플로잇이 모든 사이트에서 작동할 수 있기 때문에 해커의 표적이 되기도 합니다. 종종 영리한 기술이 배후에서 악의적으로 작동하도록 배포됩니다. PHP 웹 셸 백도어는 귀하의 웹사이트를 비밀리에 감염시키도록 설계된 악성 스크립트 또는 프로그램 중 하나입니다.
PHP 웹 셸 백도어란 무엇이며 왜 감염되나요?
PHP 웹 셸 백도어는 기본적으로 사이트에서 다양한 악성 작업을 수행하도록 설계된 악성 스크립트 및 프로그램입니다. 단순 웹 셸은 명령 기반 스크립트입니다. PHP 웹 셸을 사용하면 공격자가 PHP 서버의 관리를 원격으로 관리할 수 있습니다. 공격자는 인터넷의 URL을 사용하여 액세스할 수 있습니다. 더 복잡한 웹 셸도 메모리에 직접 액세스할 수 있습니다.
종종 이러한 감염은 지속적인 액세스를 유지하도록 설계되었기 때문에 정리 후에도 다시 발생합니다. 대부분의 백도어는 탐지를 피하기 위해 다양한 난독화 기술을 사용합니다. 일부는 메모리에 직접 숨기기 위해 복잡한 알고리즘을 구현하기도 합니다.
PHP 웹 셸이 웹사이트에 상주할 수 있는 방법에는 여러 가지가 있습니다. 그러나 이 감염을 허용하는 몇 가지 일반적인 보안 문제:
- 약하거나 기본 비밀번호입니다.
- 무제한 PHP 파일 업로드
- 무효화된 입력을 허용하는 PHP 사이트의 잘못된 코딩
- 오래된 PHP 버전입니다.
- 부적절한 PHP 구성.
- 민감한 파일의 약한 파일 권한
- 부적절한 오류 보고 및 코드 공개.
관련 문서 – PHP의 보안 문제 해결
PHP 웹 셸 백도어는 무엇을 할 수 있습니까?
일반 PHP 웹 셸 백도어를 사용하면 공격자가 관리자처럼 PHP 서버에서 명령을 실행할 수 있습니다. 때때로 공격자는 권한 상승을 시도할 수도 있습니다. 이 셸을 사용하여 공격자는 다음을 수행할 수 있습니다.
- 서버에 있는 모든 유형의 데이터에 액세스합니다.
- 귀하의 서버를 사용하여 암호화폐를 채굴할 수 있습니다.
- 서버를 공격자의 지시에 따라 대량의 스팸을 차단하는 봇으로 전환할 수 있습니다.
- 그리고 더 많은 악의를 품을 수 있습니다!
관련 기사 – 궁극의 PHP 보안 사례 및 맬웨어 제거 가이드
PHP 웹 셸 백도어:코드 분석
일반 PHP 웹 셸 백도어는 다음 단계를 통해 작동합니다.
첫 번째 단계는 시스템 변수를 초기화하는 것입니다. 그렇게 하는 동안 웹 셸은 탐지를 피하기 위해 오류가 인쇄되지 않도록 합니다. 이것은 x_die
를 생성하여 수행됩니다. 기능. 오류가 발생할 때마다 이 기능을 통해 문제에 대한 메시지를 전달합니다. 그런 다음 이 함수는 PHP의 die() 함수를 사용하여 현재 스크립트를 종료합니다.
다음 단계는 웹 셸이 PHP 서버에서 명령을 실행할 수 있는지 확인하는 것입니다. 이를 위해 일반 PHP 웹 셸은 exec(), system()
와 같은 PHP의 다양한 실행 기능을 확인합니다. 등
그런 다음 PHP 웹 셸은 시스템 구성을 확인하고 웹 셸에서 변경할 수 있는지 확인합니다. 구성 기능이 없는 경우 단순히 'can not config
' 메시지 x_di
e() 기능.
그런 다음 PHP 서버에서 안전 모드도 확인합니다. PHP의 안전 모드는 종종 공유 서버에 배포됩니다. 특정 파일을 연 프로세스가 검증된 사용자에 의해 실행되고 있는지 검증하는 기능입니다. 안전 모드가 활성화된 경우 웹 셸이 더 이상 실행을 중지합니다.
if(x_ini_get('safe_mode')){x_die('실행할 수 없음:안전 모드 활성화');}
이 모든 조건이 충족되면 웹 셸은 Windows 시스템의 Superfetch 서비스를 사용하여 명령을 실행합니다.
PHP 웹 셸 백도어:탐지 및 정리
- 모든 PHP 파일의 소스 코드를 보고 일반 PHP 웹 셸 백도어에 감염되었는지 확인합니다.
- 수동으로 검색하기 어려운 경우
Grep
를 사용하세요. 명령 . - grep 명령을 사용하여 다음 코드로 폴더 내의 웹 셸 코드 덤프를 검색합니다.
grep -r "dump of web shell" /folderToSearch/
- 이 방법을 사용하면 일반 웹 셸을 감지할 수 있습니다. 그러나 이 방법은 한 가지 유형의 일반 웹 셸만 검색할 수 있으므로 고유한 제한 사항이 있습니다.
- 다른 웹 셸을 검색하려면 소스 코드를 알아야 합니다. 이 문제를 극복하기 위해 GitHub에서 무료로 제공되는 웹 셸 감지 도구를 사용할 수 있습니다.
- PHP 웹 셸을 감지하기 위해 의심스러운 HTTP 요청이 있는지 로그를 확인하는 것을 잊지 마십시오. 웹 셸을 찾으면 삭제하십시오.
- PHP 웹 셸 덤프가 민감한 파일에서 발견되는 경우 주석 처리하고 전문가에게 추가 멀웨어 제거 및 분석을 요청하십시오.
PHP 웹 셸 백도어:완화
- PHP 버전을 최신 상태로 유지하십시오.
- 기본 비밀번호나 약한 비밀번호를 사용하지 마세요.
- 사이트 구성이 잘못되었는지 항상 확인하십시오.
- 파일 권한을 777로 설정하면 누구나 파일을 편집할 수 있으므로 절대 설정하지 마세요!
- PHP 파일을 개발하는 동안 안전한 코딩 방법을 따르십시오.
- PHP 사이트의 취약점을 발견하기 위해 포괄적인 침투 테스트로 이동합니다.
결론
웹 셸을 삭제하는 것만으로는 사이트를 보호하기에 충분하지 않습니다. 공격자는 여전히 사이트의 취약점을 사용하여 새 셸을 업로드할 수 있습니다. 일반 사용자의 경우 이 취약점을 감지하는 것이 쉽지 않을 수 있습니다. 따라서 보안 솔루션을 사용하여 이 프로세스를 자동화하는 것이 좋습니다.
Astra Security의 자동화된 멀웨어 스캐너는 클릭 한 번으로 수많은 PHP 웹 셸과 멀웨어를 탐지합니다. 또한 Astra Security 방화벽은 웹 사이트를 모니터링하고 다가오는 보안 위협을 차단합니다. 필요에 따라 계획을 선택하고 지금 시작하십시오!