농소

XSS(Cross-Site Scripting)을 통한 원격제어 공격 및 대응법 본문

Security/Web Hacking

XSS(Cross-Site Scripting)을 통한 원격제어 공격 및 대응법

농소 2018. 8. 21. 01:30

XSS는 Cross-Site Scripting의 약자로 


웹 게시판이나 웹 메일 등에



스크립트 코드를 넣어 개발자가 원하지않는 행위를 만들게 하는 치명적인 공격기법중 하나이다.


이번 게시글은 위 공격기법을 이용하여 악성 스크립트가 삽입된 웹 서버에 접속한 사용자들을 대상으로 악성코드가 심어진 실행파일( 여기서는 쉘코드로 대체하겠다. )을 실행시키도록 하여 관리자 권한을 획득하여 키로거를 실행시키는 것을 해보도록 하겠다.


먼저 Kali 리눅스로 칼리리눅스 쪽으로 원격접속하도록 하는 쉘코드를 만들도록 하자



칼리리눅스(공격자)쪽으로 원격접속 하도록 하는 update.exe라는 실행파일을 만들었다.

해당 악성 실행파일이 제대로 적용되는지 확인을 해보자



meterpreter를 실행시키고

페이로드를 설정해줍니다.



네트워크 설정까지 다 해주고 run 해주면 원격접속을 기다리는 핸들러가 진행 되고있다.



window7 환경에서 해당 악성 실행파일을 강제로 넣고 실행시켰더니 원격접속이 된것을 확인했다.


하지만 누가 이런 파일을 실행 할까...? 말도 안될뿐더러 악성파일을 넣는게 사실상 힘들다고 볼 수 있다.


바로 이때 사용자가 눈치 못채게끔 악성파일을 실행하도록 해주는 기법이 바로 XSS이다.




먼저 beef 툴을 실행하고 


간단한 웹 서버 홈페이지에 공격자 IP로 훅을 거는 스크립트를 작성한다.


해당 스크립트가 적용되어있는 감염된 서버에 접속을 하게되면 



감염된 서버에 접속한 사용자의 IP가 BEEF툴을 통해 공격자에게 보여진다.


Clippy라는 것을 이용하여 접속한 사용자에게 악성 파일을 보낸다.


execute를 눌러주자



해당 홈페이지에서 서비스를 이용중인 사용자는 업데이트를 하시겠습니까? 라는 구문이 나오게 된다.

이때 yes를 누르게 되면 사용자는 악성 프로그램을 실행하게 되어

해당 PC는 공격자가 원격으로 제어할수 있게 된다.



위 사진은 감염된 사용자가 입력한 내용을 키로거를 실행하여 공격자가 갈취하는 모습을 볼 수 있다.


이러한 공격을 막기 위한 대응책으로


사용자가 입력하는 입력값에 대하여 필터링을 해 주어야 한다.


웹 게시판 등에 스크립트 언어를 못쓰게 하거나 <,>,",' 등을 대체할 수 있는 문자를 사용한다.