WebShell

RINM·2023년 1월 3일
0

Web-Hacking

목록 보기
3/3

Webshell?


웹 페이지에서 서버 명령어를 실행할 수 있는 원격 어플리케이션
직접 서버에 접속하지 않아도 웹 사이트의 취약점을 이용하여 웹 서버를 조작할 수 있다. 웹쉘을 이용하면 단순 정보 수집부터 서버 파일 조작, 악성코드 배포 등 다양한 악위적인 행위가 가능하다. 뿐만 아니라 서버가 연결된 내부망에 침투하여 더 큰 악성 행위를 할 수도 있다.

실행하려면?

웹 서버의 환경에 따라 웹쉘이 동작할 수 있는 전제 조건이 필요하다.

  • 웹 서버의 사용 언어와 동일한 언어로 제작
  • 웹 서버의 파일 시스템 웹 디렉토리 내에 웹셀이 존재
  • 웹 서버에 적용된 보안 솔루션을 우회

웹 쉘 스크립트가 웹 서버 내에서 동작하므로 서버에서 사용될 수 있는 언어로 작성되는 것은 물론, 서버에서 실행될 수 있는 확장자를 가지고 있어야한다. 웹쉘은 주로 파일 업로드 취약점을 이용하여 서버에 업로드한다. 이때 보안 솔루션이 파일 업로드를 불허하거나 업로드를 누락시키는 등의 행위를 할 수 있다. 업로드에 성공하더라도 웹 서버의 보안 정책에 따라 실행시키지 못하고 삭제될 수 있다.

작동 원리

웹쉘은 시스템 명령어 함수를 기반으로 작동한다. 공격자는 웹 사이트의 취약점을 통하여 웹쉘을 실행시키고 명령을 전달한다. 웹쉘은 이 명령을 받아 시스템 명령어 함수를 통하여 실행한다.

공격 시나리오

1. 웹 서버 접근 및 지속적인 접속

웹쉘이 성공적으로 동작하면 공격자에게 웹 서버에 대한 지속적인 접속을 제공한다. 서버에 일명 '백도어'가 생기는 것인데, 공격자는 지속적인 접속을 유지하기 위하여 서버의 보안 솔루션이 알아채지 못하도록 난독화하거나 인증을 사용하기도 한다.

2. 권한 상승

쉘은 사용자의 권한에 따라 할 수 있는 행위가 정해져있다. 공격자가 얻을 수 있는 사용자 권한은 대부분 제한적이기 때문에 서버의 취약점을 활용하여 권한 상승을 노린다. 관리자 권한을 얻으면 공격자는 서버에서 거의 모든 행위를 할 수 있다.

3. 공격 혹은 네트워크 탐색

관리자 권한을 얻은 공격자는 목표한 공격을 실행하거나 서버에 연결된 네트워크를 탐색하여 새로운 목표를 찾을 수 있다. 서버의 파일 시스템에서 정보를 탈취, 조작하거나 시스템을 파괴하는 등의 행위를 할 수 있다. 서버를 장악하면 이 서버를 중심으로 다른 희생양을 찾아 공격하는 것이 가능하다. 서버가 연결된 내부 네트워크에 접근하여 다른 시스템을 공격하거나 서버를 봇으로 만들어 DDOS 공격 등 우회 공격에 이용할 수도 있다.

대응 방법

파일 무결성 모니터링

File Integrity Monitoring은 웹에서 접근할 수 있는 파일의 변화를 탐지하고 막는 시스템이다. 웹 서버 파일 시스템의 예상치 못한 변화가 감지되면 이를 관리자에게 알려 웹쉘 동작을 막는다.

웹 어플리케이션 권한 최소화

웹 어플리케이션의 권한을 최소한으로 승인한다. 특히 웹 사이트를 이용하는 사용자들의 권한을 최소화하여 지정된 행위 외에는 할 수 없게 만든다. 이를 통하여 공격자가 웹쉘을 쉽게 업로드할 수 없도록 막는다.

네트워크 보안 솔루션

IPS, 방화벽 등 네트워크 보안 솔루션을 사용하여 비정상적인 네트워크 접근을 방지한다. 웹 서비스의 네트워크 활동을 모니터링하면서 공격자의 침입을 막는다.

출처 : https://www.imperva.com/learn/application-security/web-shell/

0개의 댓글