Dork's port

[Network Hacking] Cookie를 이용한 인증 세션 가로채기(Cookie를 이용해 로그인 하기, 네이버 해킹, 다음 해킹) - 2 본문

Network

[Network Hacking] Cookie를 이용한 인증 세션 가로채기(Cookie를 이용해 로그인 하기, 네이버 해킹, 다음 해킹) - 2

Dork94 2018. 1. 8. 04:50



Cookie Parser




1편에 이어 포스팅을 이어 가도록 하겠습니다.



2018/01/08 - [Network] - [Network Hacking] Cookie를 이용한 인증 세션 가로채기(Cookie를 이용해 로그인 하기, 네이버 해킹, 다음 해킹) - 1





  #Cookie Parser 



그럼 해당 취약점을 이용하는 프로그램을 작성 해 보도록 하겠습니다.



[프로그램 구상도]


위와 같은 상황을 가정해 볼 수 있습니다.


일반 User가 특정 Wifi를 이용할 때 Monitor Mode의 어댑터를 이용하여 Packet을 Sniffing하고, 이때 Cookie의 값이 Dectection 되면 해당 값을 Database 등에 저장하여 추후 인증에 사용하는 프로그램을 생각 해 볼 수 있습니다.


무선랜 환경의 Packet Capture 및 Monitor Mode에 대한 글은 아래를 참조 하세요.


2017/11/18 - [Network] - 802.11 Monitor Mode Support Chipset (Wireless Lan Monitor Mode 지원 칩셋, 모니터 모드 지원 칩셋)

2017/09/22 - [Linux] - wireless(802.11) packet sniffing(monitor mode)

2017/11/30 - [Develop] - [C++] LibTins를 통한 802.11 Decrypt(무선패킷 복호화 하기)

2017/12/01 - [Develop] - [C++] LibTins를 통한 802.11 Packet Sniff

2017/12/06 - [Network] - Linux 에서 Monitor Mode 사용시 Interface down 현상 해결하기

2017/12/13 - [Devices] - Linux Monitor Mode(802.11) Adaptor(PANDA PAU09)




그럼 제가 작성한 프로그램의 화면을 보도록 하겠습니다.




[프로그램 동작 화면 1]




[프로그램 동작 화면 2]



위처럼 현재 주변의 AP를 모두 Scan 한 후 List를 CUI로 출력합니다.


그리고 Decrypt를 위해 해당 AP의 Password를 입력하면 프로그램이 동작합니다.


[프로그램 동작화면 2]와 같이 Cookie값이 감지되면 Database에 해당 URL과 Cookie의 Values가 Database에 자동 저장이 됩니다.


  #Cookie를 이용한 Web Site 인증(Authentication)


Cookie 값을 실제 로그인하기 위해 사용해 보도록 하겠습니다.


실습은 Chrome Plugin을 이용하였습니다.


Chrome Plugin다운로드를 위해선 크롬을 설치한 후 좌측 상단에 앱을 클릭하여 아래의 화면이 나오게 합니다.


그리고 아래 화면에서 웹스토어를 클릭합니다.



검색창에서 editthiscookie를 검색한 후 위와 같이 맨 위에 있는 Plugin을 다운로드 합니다.



실습을 하기 전에 알아둘 것이 있습니다.


 Web Site에서 Cookie의 모든 값을 Login 인증에 사용하는 것이 아니다."


간단하게 Naver 및 Daum에서 인증에 사용하는 Cookie의 필드 명을 알아 보도록 하겠습니다.


 *.naver.com

 *.daum.net

 ● NID_SES

 ● NID_AUT


● TS

● PROF

● HTS

● HM_CU




그럼 Plugin을 이용하여 로그인 시도를 해보겠습니다.



Plugin을 설치한 상태로 Chrome에서 Naver를 들어가면 오른쪽 상단에 설치한 Plugin의 Icon이 보일 것 입니다 누르면 위와 같이 Cookie에 대한 정보가 보입니다(정보는 상이할 수 있습니다).


그리고 당연히 Chrome은 Logout한 상태로 진행해 주세요.


그리고 세번째 보이는 + 버튼을 누릅니다.





그러면 위와 같이 이름에 해당 Cookie의 Field Name 그리고 값에는 해당 값을 입력합니다.





마찬가지로 다른 쿠키 값도 추가 합니다.



그리고 다시 확인하면 입력한 이름이 List에 보이게 됩니다. 그리고 새로고침을 누르면..!?





위와 같이 로그인 성공한 것을 볼 수 있습니다!


로그인은 Cookie가 유효한 동안 가능하며 보통 Logout시 해당 Cookie는 폐기 됩니다(로그인 상태 유지시에는 해당 Cookie가 로그인을 해제할 때 까지 유효합니다).



시연 영상을 보도록 하겠습니다.





지금까지 네트워크 해킹에 대해서 알아 보았습니다.





  #개선 방안



우리가 생각할 수 있는 개선방안에는 어떤 것이 있을 까요?


저는 크게 두가지라고 생각합니다.


1. Web Service 사용시 일부만 보안통신(SSL)을 이용하는 것이 아닌 모두 보안 통신을 이용할 것 


예) HSTS(HTTP Strict Transport Security)


정보 : https://rsec.kr/?p=315


2. 쿠키 인증 정보를 고정된 값으로 사용하는 것이 아닌 난수화 시켜 해당 Cookie등의 정보를 Sniffing 하더라도 사용할 수 없도록 개선


예)RTA(Randomized Token Authentication)


정보 : http://isweb.joongbu.ac.kr:3000



  #결론



1. 무선 네트워크는 생각보다 아주 많이 취약하다

무선 네트워크에서는 개인 정보가 사용되는 일은 삼가하도록 하자.


2. 로그인 유지 기능을 최소화 하자.

차라리 아이디와 패스워드를 웹 브라우저에 저장하여 매 시도마다 로그인하고 해당 쿠키를 웹 브라우저 종료시에 함께 폐기되도록 개선하자





Thanks To : gilgil(www.gilgil.net)



Comments