How to Disable Google Chrome Password Manager

rebugger·2023년 3월 3일
0
post-thumbnail

Chrome 비밀번호 저장 여부 확인 및 자동 로그인 기능 비활성화


💥 Chrome Password Manager.

최근 악성코드 중 인포스틸러가 극성을 부리면서 암호화하여 저장되는 웹 브라우저의 계정정보를 탈취하는 형태를 띄고 있다.

Chrome Password Manager 는 비밀번호 저장여부 확인 및 자동 로그인 기능을비활성화하여 브라우저 내 중요정보가 저장되지 않도록 유도하여 PC 보안을 강화할 수 있다

🥶 배치파일보단 빠워쉘이 좀 낫네

다양한 환경에서 스크립트를 실행하기 위해 윈도우 배치파일을 제작하여 사용하는 경우가 많은데, 배치고사 스크립트 보면 머리가 어질어질해서 도무지 집중이 잘 안되더라..

이번 기회에 마음을 먹고 열심히 만들어봤는 Dict 타입 의 환경설정 파일은 부분 수정이 너무 어려웠다.

도저히 배치파일로는 못만들거 같아 Powershell로 하나씩 찾아가면서 만들어 보았다


🤑 사전조사

  1. 윈도우 레지스트리
    가장 먼저 접근한 방법은 tenforums 처럼 대부분 Windows Registry 값을 변경하면 된다고 나와있으며 11~15년도 게시글인 점, 현재의 Chrome 브라우저 레지스트리에 아래의 값은 존재하지 않았다.

    ▽ Disable Chrome Password Manager Registry

    ```
    Registry 경로
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
      PasswordManagerEnabled DWORD
      
      delete = Enable (available)
      
      0 = Disable
      1 = Force
    ```
  2. 그럼 다른 레지스트리가 있나?
    RegshotProcess Monitor 로 Chrome 설정 조작에 따라 변경되는 레지스트리가 있는지 확인해보았으나 복잡하게 꼬여만 갔다.

    아래 이미지를 보면 \user_experience_metrics.stability.exited_cleany: 0x00000001 값의 변화를 추적하였으나 브라우저 종료 시 상태 값이 변경되는 것으로 확인했다.

    레지스트리 값의 변경이 없다? 그럼 설정파일을 참조하나?

    ▽ 레지스트리 추적 로그

  1. 설정파일을 찾아라
    영훈형이 보내준 링크 Batch to disable autofill and ask to save passwords in Chrome 글의 답변을 보면

    I found a solution to my problem. It's a kind of work'a'round
    First I disabled autofill and autosave password in chrome, and after that I saved the preference-file.
    Now I just have to copy the preference-file to another chrome-installation.

    즉 자동완성 기능이 비활성화된 preference-file 을 Copy/Paste하는 방법을 했으나 너무 불편해보였고;; 도대체 그 환경설정 파일은 어디서 찾아야 할까? 하며 삽질을 시작했다..

    ※ 브라우저 로그인하여 동기화 작업 시 설정파일을 호출할 수 있으나
      오프라인 내보내기 기능은 제공하지 않는 것으로 보인다.

    AppData 경로 이하 Chrome 관련 파일이 존재하지 않을까 추측하여 찾아본 결과
    preference 파일을 찾을 수 있었다.

    또한, 자동완성 기능을 On/Off 해가며 WinMerge 도구로 Preference 파일의 값을 비교하였고 마침내 찾아냈다.

    1) credentials_enable_service
    2) credentials_enable_autosignin 

    이제 이 값들을 바꿔주는 스크립트만 제작하면 끝이다!!


😎 완성된 파워쉘 스크립트 동작순서

  1. Chrome 동작확인
    크롬이 실행되어 있을 경우 환경설정 파일이 변경되더라도 크롬 종료 시 상태값이 다시 바뀔 수 있으므로..

    if(tasklist | findstr chrome){
    Write-Host "[X] Chrome이 실행중입니다" -ForegroundColor red -BackgroundColor black
        Start-Sleep -Seconds 2
        Exit
    }
  2. 바탕화면에서 실행
    : 배치에서는 set user 로 USERNAME을 받을 수 있으나, Powershell에서는 quser, Get-LocalUser 로 받긴 하는데 문자열 처리가 미숙하여 실행경로를 바탕화면 으로 지정했다.

    if($path -like "*desktop*"){
        Write-Host "[1] 프로그램을 시작합니다"
    } else {
        Write-Host "[X] 바탕화면에서 실행해주세요.."
        Start-Sleep -Seconds 2
        Exit
    }
  3. 크롬 환경설정 파일
    : AppData\Local\Google\Chrome\User Data\Default 경로에 Preferences 파일이 있으면 아래 두 기능의 Boolean 값을 TrueFalse로 변경한다.

    if(Test-Path -Path '..\AppData\Local\Google\Chrome\User Data\Default\Preferences'){
        $configFile = Get-Content $file `
        | %{$_ -replace('"credentials_enable_service":true', '"credentials_enable_service":false')} `
        | %{$_ -replace('"credentials_enable_autosignin":true', '"credentials_enable_autosignin":false')} 
    
        Set-Content -Path $file -Value $configFile -Encoding utf8
    } else {
        Write-Host "[X] Preferences 파일이 존재하지 않습니다" -ForegroundColor red -BackgroundColor black
        Start-Sleep -Seconds 2
        Exit
    }

포기한 배치파일
@echo off

FOR /F "tokens=2 delims='='" %%A IN ('set user ^| findstr USERNAME') do set PCNAME=%%A

SET PATH=C:\Users\%PCNAME%\AppData\Local\Google\Chrome\User Data\Default\
SET FILE=Preferences

CD %PATH%

ECHO %FILE%
ECHO.

IF EXIST %FILE% (
    GOTO goTrue 
) ELSE (
    GOTO goFalse
)

:goTrue
ECHO 크롬 환경설정 파일이 존재합니다 
FOR /F "tokens=24 delims=," %%i in (%FILE%) do echo 자동 로그인: %%i
FOR /F "tokens=25 delims=," %%t in (%FILE%) do echo 비밀번호 저장 여부 확인: %%t
ECHO 환경설정 치환 진행합니다
set configAutoSignin_true="credentials_enable_autosignin":true
set configAutoSignin_false="credentials_enable_autosignin":false

FOR /F %%B in (%FILE%) do (
    FOR /F "tokens=24 delims=," %%C in (%FILE%) do (
        if %%C equ %configAutoSignin_true% (
            echo %configAutoSignin_false% >> ryu.txt
        )
    )
    echo %%B >> ryu.txt
)

pause

:goFalse
ECHO 크롬 환경설정 파일이 존재하지 않습니다
EXIT
profile
모르는게 많고, 부족함이 많다는 것을 인정하기

0개의 댓글