wonder

정보보안 스터디 - 9주차 6일 - 파일 업로드 공격 시나리오와 사례 본문

hacking study/File Upload

정보보안 스터디 - 9주차 6일 - 파일 업로드 공격 시나리오와 사례

wonder12 2022. 12. 13. 23:33

☞ 파일 업로드 공격 시나리오 및 사례

웹쉘과 같이 파일업로드로 인해 웹서버에 접근할 수 있다면 추후에 이차적인 공격이 다방면으로 가능합니다.

 

 

1. 백도어 파일 업로드

서버 측에 백도어 파일을 업로드할 수 있습니다. 또한 리버스쉘과 같이 다양한 쉘을 올릴 수 있습니다.

 

 

 

 

2. 악성 실행 파일 업로드

웹쉘로 접근한 후에 디렉토리에 업로드 권한으로 악성 실행파일을 업로드할 수 있습니다. 

ex) 트로이목마 .exe 파일을 웹 트리에 업로드 > 피해자가 실행 파일을 다운로드합니다.

 

 

 

3. XSS script 코드 실행

A. 파일 업로드를 통해 스크립트 코드도 실행시킬 수 있기 때문에 Stored XSS가 가능합니다.

ex) 스크립트가 포함된 .html 파일 업로드 > 피해자가 XSS(교차 사이트 스크립팅)를 경험합니다.

 

B. 코인 채굴 Miner 스크립트 코드 역시 악성파일로 업로드하여 실행되도록 합니다.

 

 

 

4. DOS(Denial Of Service) 공격
파일의 크기를 검증하지 않는 곳에서 대용량의 파일을 업로드함으로써 서비스에 과부하를 줍니다.

 

 

 

5. 웹서버 디렉토리 접근 권한 이용

A. DB서버가 아니더라도 웹서버 디렉토리 안에서 가입된 회원들의 개인정보가 유출 될 수 있습니다.

B. 저장되어있는 웹 페이지 자체를 삭제 할 수 있습니다.

C. 악성 경로 또는 이름을 사용하여 파일 업로드 > 중요한 파일 덮어쓰기가 가능합니다.

 

 

 

6. Deface공격(웹서버 페이지 변경)

웹서버 메인 또는 노출이 되는 페이지를 해커의 마음대로 변경이 가능합니다.

업로드, 수정이 가능하다면 HTML파일도 /var/www/html/index.html에 생성해서 임의의 페이지를 노출시킬 수 있습니다. 

 

 

A. DEFACE 공격은 홈페이지 메인 페이지를 변경하는 방식인데 주로 자신을 과시하거나 상대방을 협박하는 용도로 쓰입니다.

ex) 해커팀 ANONYMOUS가 소니 홈페이지를 변경해 자신들의 요구를 표현한 경우가 있었습니다.

 

 

B. 웹서버 관리자가 퇴근하면 해커가 시간대를 노리고 무단으로 자신의 광고를 노출시킨 경우가 있습니다. 이 경우도 웹페이지 변경에 해당합니다.

 

 

 

 

7. 랜섬웨어 공격

랜섬웨어 공격이나 내부 중요 자료를 탈취할 수 있습니다. 중요 파일들을 랜섬웨어를 통해 암호화하고 금품을 요구합니다.

 

 

ex) 윈도우 기반 서버인 기업을 대상으로 ‘비트라커(BitLocker)’ 랜섬웨어가 공격하는 과정입니다.

윈도우에 기본 탑재된 디스크 암호화 기능인 비트라커를 이용해 디스크를 암호화하고 금전을 요구합니다.


공격자는 시스템 접속 권한을 탈취하기 위해 웹서버에 설치된 게시판 파일 업로드 취약점을 이용해 권한상승 웹셸을 업로드합니다. 실제로 공격자는 모 기업 홈페이지 고객상담 게시판에 파일 첨부기능을 이용해 웹셸을 업로드했는데,

시스템 정보 유출, 내부 취약점 서비스 스캔 등의 기능을 합니다. 더불어 2종의 웹셸을 추가로 업로드하면서 웹셸이 발견돼 삭제됐을 경우에도 공격을 지속하도록 했습니다.

 

웹셸이 실행되면 시스템 권한을 획득하게 되며, 시스템 계정을 무단으로 생성해 원격으로 접속한 후 비트라커를 실행해 무단으로 디스크를 암호화합니다. 비트라커는 윈도우7·서버 2008부터 제공하는 기본 기능으로, 암호화 시 설정한 비밀번호나 복구 키가 있어야 복호화 할 수 있습니다.

또한 공격자는 관리자 모니터링과 백신에 탐지되지 않도록 파일명을 변경하는 등의 우회·은닉 수법을 썼으며, 초기 권한상승 도구로 사용한 웹셸은 삭제해 추적을 피했습니다.

 

 

 

 예방법

예방법은 간단하게 다음과 같습니다.

 

1. 서버 측에서 실행될 수 있는 스크립트 파일 (php, jsp, asp, cgi, py 파일 등) 업로드를 철저하게 검증하고 조심합니다.

2. 업로드되어 저장되는 파일의 타입, 크기, 개수, 실행 권한을 제한합니다.
3. 업로드되어 저장되는 파일은 외부에서 식별되지 않아야 합니다.
4. 다운로드한 소스코드나 실행파일에 대해서 바이러스/무결성 검사를 실행해야 합니다.

 

 

 

 

 

 

Comments