원래 Webshell은 웹 서버 관리자가 서버를 원격으로 관리하기 위한 스크립트로 자주 언급되었습니다. 나중에 일부 Webshell 관리 도구가 탄생하면서 웹 권한을 얻는 과정이 크게 단순화되어 점차 웹 침입 도구 스크립트라고 불렸습니다.
Webshell은 취약점과 다르지만 애플리케이션 취약점이나 서버 취약점(파일 업로드 취약점, 파일 포함 취약점 등)을 이용하여 후속 공격을 위해 서버에 스크립트 파일을 업로드하는데, 이는 침투 테스트 및 TA0002의 후속 공격에 속합니다. ATT&CK의 실행(Execution) 단계 .
그림 1 TA0002
참고 출처: https://mitre-attack.github.io/attack-navigator/ (ATT&CK Navigator)
탐지 및 보호 장비, 소프트웨어 등을 우회하기 위해 그들은 기능을 보장하면서 스크립트가 감지되지 않도록 Webshell 작성 방법을 변경하는 경우가 많습니다. 그중에서 PHP 스크립트는 사용 가능한 기능이 많기 때문에 PHP는 끊임없이 변화하는 기능을 가질 수 있습니다. 글쓰기의 왜곡.
한 문장 트로이 목마도 Webshell 스크립트입니다. 한 문장 트로이 목마에 관심이 있는 친구들은 이전 호의 "한 문장 트로이 목마의 다중 변형"을 참조하여 스스로 배우고 이해할 수 있습니다. 이 문제.
예전에 웹쉘을 분석했을 때, 다양한 탐지 소프트웨어를 완벽하게 우회할 수 있는 웹쉘 종류가 있다는 걸 발견했습니다. 이런 유형의 스크립트는 코드 수준에서 의미가 없어 보이고 일반적인 웹쉘 기능도 없는 경우가 많습니다. 누에고치의 레이어를 파헤쳐보니 이런 종류의 난독화된 스크립트에 대한 아이디어를 찾는 것은 어렵지 않습니다. 저는 최근에 흥미로운 난독화된 스크립트를 받았습니다. 이 스크립트의 분석 과정을 친구들과 공유하고 싶습니다. 출발점이 될 수도 있다는 것입니다.
처음 이 스크립트를 봤을 때 내용에 뻔한 eval 함수가 있는 걸 보고 본능적으로 이 부분의 코드를 추출해 냈는데, 내용이 너무 많아서 아무것도 증명하기에는 부족했습니다. 그 중 일부는 WebShell의 흔적이 전혀 없는 겉보기에 아무것도 모르는 횡설수설로 가득 차 있습니다.
자세히 살펴보면 eval 외에도 gzinflate, base64_decode, str_rot13 세 가지 함수도 호출되는 것을 알 수 있습니다. 아마도 이 세 가지 함수로 시작하여 분석의 돌파구를 찾을 수 있을 것입니다.
그림 2 스크립트 내용
str_rot13()
ROT13 인코딩은 각 문자를 알파벳에서 13문자 앞으로 이동합니다. 숫자와 알파벳이 아닌 문자는 변경되지 않습니다(Caesar 암호).
base64_decode()
Base64는 문자열 내용을 인코딩합니다.
Gzinflate
데이터에는 기본적으로 ZLIB_ENCODING_RAW 인코딩 방법을 사용하며 실제로는 LZ7로 먼저 압축한 다음 허프만 코딩으로 압축합니다.
그림 3 echo 명령 호출
echo 명령을 사용하여 내용을 파싱한 결과 str_rot13()이 실행된 것을 확인하여 반복 수행 이 아이디어로 원본 콘텐츠를 한 겹씩 벗겨내 보세요.
그림 4 분석 결과
echo 명령을 세 번 반복 분석한 결과 마침내 더 이상 단조로운 코드가 아닌 것으로 나타나 분석 방향이 아마도 정확할 것임을 증명합니다. 그리고 코드의 양으로 판단하면 흔히 빅 목마라고 알려진 다양한 기능을 갖춘 트로이 목마처럼 보입니다.
그림 5 다중 구문 분석
좋은 친구, 정말 대단합니다.
조사 결과 이 트로이 목마의 기능에는 시스템 정보 획득, 디렉터리 읽기, 파일 다운로드, 파일 업로드 등이 포함된 것으로 밝혀졌습니다.
사진 6 말레이시아의 원래 모습
위 내용은 난독화된 변형에 대한 웹쉘 분석이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!