
로컬 Chrome 쿠키를 루트 권한이나 복호화 없이 읽기
이 도구는 사용자의 Chrome 쿠키를 출력합니다. 비밀번호나 루트 권한 없이 사용할 수 있습니다. 좋아 좋아 좋아 좋아 좋아.
다른 사람의 컴퓨터에서 코드를 실행할 기회가 자주 없는 사람이라면 이 도구에 관심이 없을 수도 있습니다.
이지 모드 #ethical #hacking을 위해 meterpreter 세션을 다음으로 보내주세요: https://github.com/rapid7/metasploit-framework/blob/9616a9f79de0b22bfd142f12affd74cecbbd4413/documentation/modules/post/multi/gather/chrome_cookies.md
전체 내용은 https://mango.pdf.zone/stealing-chrome-cookies-without-a-password 에서 확인하세요.
로컬에서 실행하려면 Python 3.6+가 필요하지만, 컴파일된 바이너리는 어디서나 작동합니다.
pip3 install -r requirements.txt
로컬에서 실행하려면:
python cookie_crimes.py
이 명령은 기본 프로필의 Chrome 쿠키를 JSON으로 출력합니다. 이 형식은 EditThisCookie Chrome 확장 프로그램으로 바로 불러올 수 있도록 편리하게 되어 있습니다.
단일 바이너리로 컴파일하려면:
make
생성된 바이너리는 make를 실행한 OS용입니다. 여기에는 멋진 크로스 컴파일 마법이 없습니다. 실행할 OS와 동일한 OS에서 빌드해야 합니다.
어떤 이유에서인지, Chrome 변경 사항에 따라 지난 몇 년 동안 --headless로 Chrome을 실행하여 일반 ("headful") Chrome에서 쿠키를 읽을 수 있게 되기도 하고 안 되기도 했습니다. 정말 매일 수많은 커밋이 있어서 'Chrome에는 이 기능이 없다'고 말하기 어려워졌습니다. 이로 인해 macOS에서는 headless 방식이 때때로 작동하지 않습니다.
대신 다음을 실행할 수 있습니다:
./cookie_crimes_macos.sh
Chrome의 쿠키 형식은 도메인을 앞에 점을 붙여 저장합니다 (예: .google.com). 따라서 EditThisCookie Chrome 확장 프로그램을 통해 모든 쿠키를 Chrome으로 가져오려면 앞의 점을 제거해야 합니다. 다음의 엔터프라이즈급이지만 완전히 불필요한 bash 스크립트를 사용하여 이를 수행할 수 있습니다:
cat cookies.json | ./format_for_editthiscookie.sh
macOS에서는 Chrome을 빠르게 종료하고 다시 시작한 후 --restore-last-session으로 새 Chrome 세션에 원격 디버깅을 연결하여 원격 디버깅을 활성화합니다 (Chrome에서 '탭 복원'을 클릭하는 것과 같습니다). 이 방법은 Chrome 창이 약 0.5초 동안 충돌한 것처럼 보이고(실제로 충돌했습니다 lol) 모든 탭을 다시 로드한다는 단점이 있습니다. 하지만 사용자는 아마 Chrome이 충돌했다가 자체 복구되었다고 생각할 것입니다.
이 트릭을 공유해준 @IAmMandatory에게 특별히 감사드립니다 <3
cookie_crimes_macos.sh는 웹소켓 요청을 위해 websocat 바이너리를 다운로드, 실행, 삭제합니다.
들어보세요, Chrome이 아니라는 건 알지만 제 말을 들어보세요. Edge는 Chromium 기반이므로 동일한 트릭이 작동합니다. 여기에 @wunderwuzzi23의 블로그 게시물에 자세한 내용이 있습니다.
기본 프로필이 아닌 다른 프로필의 Chrome 쿠키를 추출하려면 cookie_crimes.py에서 PROFILE 변수만 수정하면 됩니다. 이는 Chrome이 우리를 위해 쿠키를 읽도록 속이기 위해 약간 교활한 /tmp 쓰기 트릭을 사용합니다.
user-data-dirHeadless (창이 렌더링되지 않음) Chrome은 user-data-dir을 지정할 수 있습니다. 이 디렉토리에는 쿠키, 방문 기록, 환경 설정 등이 포함됩니다. 새로운 headless Chrome 인스턴스를 생성하고 user-data-dir을 피해자의 것과 동일하게 지정하면, headless Chrome 인스턴스가 피해자로 인증됩니다.
여기서부터는 Chrome의 일반적인 (그러나 극도로 금지되고 문서화되지 않은) 기능인 원격 디버깅 프로토콜을 사용합니다. 이것이 Chrome 개발자 도구가 Chrome과 통신하는 방식입니다. 원격 디버깅이 활성화된 headless Chrome 인스턴스가 실행되면, 이 코드는 원격 디버깅 명령을 실행하여 모든 웹사이트의 사용자 쿠키를 일반 텍스트로 출력합니다.
이 시점에서 Chrome을 완전히 제어할 수 있으며, 사용자가 할 수 있는 모든 작업을 수행할 수 있습니다.
이 도구로 범죄를 저지르지 말아 주세요