2016. 4. 4. 22:50
:: 시스템 보안
안녕하세요~ Message 입니다.
파이썬은 레지스트리 정보 조회를 위해 _winreg 모듈을 지원합니다.
_winreg 모듈은 윈도우 레지스트리 API를 파이썬에서 사용할 수 있도록 지원하는 매개체 역할을 합니다.
아래 소스는 파이썬을 사용해서 자동으로 사용자 계정 목록을 조회하는 프로그램입니다.
1) 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
# -*- coding: utf-8 -*-
from _winreg import *
import sys
varSubkey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" # 서브레지스트리 목록 지정
varReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) # 루트 레지스트리 핸들 객체 얻기
varKey = OpenKey(varReg, varSubkey) # 레지스트리 핸들 객체 얻기
for i in range(1024):
try:
keyname = EnumKey(varKey, i) # 지정한 레지스트리의 하위 키값 조회
varSubkey2 = "%s\\%s" % (varSubkey, keyname) # 하위 레지스트리 목록 생성 : 상위 레지스트리 목록과 하위 키값 결합
varKey2 = OpenKey(varReg, varSubkey2) # 레지스트리 핸들 객체 얻기
try:
for j in range(1024):
n, v, t = EnumValue(varKey2, j) # 레지스트리 가진 데이터 얻기 : 값이름, 데이터형, 데이터 조회
if("ProfileImagePath" in n and "Users" in v): # 사용자 계정 정보 추출
print v
except:
errorMsg = "Exception Inner:", sys.exc_info()[0]
#print errorMsg
CloseKey(varKey2)
except:
errorMsg = "Exception Outter:", sys.exc_info()[0]
break
CloseKey(varKey) # 핸들 객체 반환
CloseKey(varReg)
|
cs |
2) 실행결과
해당 프로그램을 실행하면 아래와 같이 계정 정보가 출력됩니다.
테스트를 위해서 새로운 계정을 추가하고, 재부팅한 후 돌려봤지만 바로 적용되지는 않았습니다.
레지스트리가 최신화 되지 않으면 나오지 않는것 같습니다.
실시간으로 원하는 결과를 얻고자 한다면 약간의 보완이 필요할것으로 보이네요.
참고 : 파이썬 해킹 입문 / 조성문, 정영훈 지음
':: 시스템 보안' 카테고리의 다른 글
John the Ripper 이용한 패스워드 크래킹 (0) | 2017.01.08 |
---|---|
Red_Message :: [Python] py2exe 모듈을 활용한 백도어 (0) | 2016.03.31 |
Red_Message :: gdb를 이용한 버퍼 오버플로우 실습 #3 (1) | 2015.04.23 |
Red_Message :: gdb를 이용한 버퍼 오버플로우 실습 #2 (0) | 2015.04.23 |
Red_Message :: gdb를 이용한 버퍼 오버플로우 실습 #1 (9) | 2015.04.22 |