일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- c언어
- C
- MITM
- pynput
- DNS해킹
- kali
- 노말틱
- 동형암호
- Normaltic
- 15679
- NLP
- DNS개념
- bettercap
- youtubeNormaltic
- 비트시프트
- stopword
- 모두의 깃&깃허브
- lemmatization
- HEaaN
- pos tagging
- 딥러닝
- CodeTranslation
- MachineCode
- CProgramming
- 해킹 용어
- AI
- Private AI
- NLTK
- bagofwords
- 해킹입문
- Today
- Total
일단 테크블로그😊
Python으로 Keylogger 만들어보기 (loggee) 본문
파이썬의 pynput 모듈과 smtp 모듈을 통해 간단한 keylogger "loggee"를 만들어 보았다. 피해자의 keyboard input을 기록하고, log 파일을 이메일로 보낸 뒤 log파일을 삭제할 수 있다.
소스코드는 다음 깃허브를 통해 확인할 수 있다.
https://github.com/ben8169/loggee
그럼 loggee의 시연과정을 함께 살펴보자.
1.작동시켜보자. python 파일을 구동한다.
2. 실시간 logging 목록을 terminal 창에서 임시로 볼 수 있게 설정하였다. 잘 logging 된다.
3. 다른 화면에서도 작동되는지 확인해보자. 추가로 바탕화면에 log.txt가 정상적으로 생긴 것도 확인할 수 있다.
4. 키보드 왼쪽 방향키를 눌러 종료시켰다. 이메일이 설정한 주소로 정상 수신되었고, 추가적으로 log.txt가 로컬에서도 삭제된 것을 확인할 수 있다. log.txt를 확인해 보자.
5. 정상적으로 로그가 기록되어 있다. 각 key의 log 시간과, 가독성을 높인 concatenated log를 동시에 확인할 수 있다.
로그 기록 시간또한 실제 시간과 잘 맞아떨어지는 모습이다.
추가) 백스페이스 기능도 잘 작동할까? wrong input을 wroooong inpuit로 입력하고 지운 뒤 제대로 입력하였다.
어떤 식으로 잘못 입력하여 어떤 식으로 수정이 이루어졌는지는 위의 개별 로그를 참조하여 자세히 추적할 수 있고, 피해자가 입력하고자 하는 메세지도 별도로 수정되어 가독성 있게 확인할 수 있다.
이상 loggee의 시연 및 간단한 사용설명이었다. 아래는 설계의 방향성 및 그에 따른 한계 및 보완점에 대해 정리하였다.
loggee 설계 방향성
- 공격자 입장에서 최대한 은밀하고 안전하게 log 파일을 생성 및 반출하는 것을 기본 목표로 하였다. 따라서, log파일 생성 후 종료시 삭제하도록 설계했고, smtp모듈을 통해 Email로 log파일을 반출하였다.
- 여타 keylogger 들의 log가 가독성이 매우 떨어지는 점을 보완하는 방향으로, 두 가지 형태의 log를 제시하여 공격자의 key 추적과 해석에 도움을 주고자 하였다.
한계 및 보완점
- pynput의 한계로 복잡한 escaping key를 설정할 수 없었다. 그나마 입력이 적을 것으로 예상되는 왼쪽 방향키를 잡았는데, 피해자가 어떤 이유로든 키를 누르게 된다면 금방 logging이 풀리는 치명적인 단점이 존재한다. 보완하고자 다양한 문서를 찾아보았으나 보완 실패.
- 또한 실행과 escaping key등 전체적으로 수동적이다. 원격으로 조종하지 않는 한 심어두고만 가기에는 불안 요소가 존재한다.
- 자신의 Email 주소를 입력하여 로그인해야 Email 송신이 가능하다. 고로 역추적 당할 가능성이 존재한다. Dummy 이메일을 구해서 송신자로 설정하는 것이 유리해 보인다.
- logging 중에는 log파일이 노출되어 있어 피해자가 발견할 가능성이 있다. 이를 방지할 수 있도록 windows 탐색기에서 아예 은신할 수 있는 방법을 고민해 보면 좋을 것 같다.
질문, 피드백 환영합니다^^
***본 파일 및 내용 일체는 교육 및 학습용 외 어떠한 개인적 사용 목적도 없으며, 이용될 수 없음을 밝힙니다.***