hacktricks/reversing-and-exploiting/common-api-used-in-malware.md
2024-04-06 18:32:19 +00:00

11 KiB

मैलवेयर में उपयोग किए जाने वाले सामान्य API

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Try Hard सुरक्षा समूह

{% embed url="https://discord.gg/tryhardsecurity" %}


सामान्य

नेटवर्किंग

रॉ सॉकेट्स WinAPI सॉकेट्स
socket() WSAStratup()
bind() bind()
listen() listen()
accept() accept()
connect() connect()
read()/recv() recv()
write() send()
shutdown() WSACleanup()

स्थिरता

रजिस्ट्री फ़ाइल सेवा
RegCreateKeyEx() GetTempPath() OpenSCManager
RegOpenKeyEx() CopyFile() CreateService()
RegSetValueEx() CreateFile() StartServiceCtrlDispatcher()
RegDeleteKeyEx() WriteFile()
RegGetValue() ReadFile()

एन्क्रिप्शन

नाम
WinCrypt
CryptAcquireContext()
CryptGenKey()
CryptDeriveKey()
CryptDecrypt()
CryptReleaseContext()

एंटी-विश्लेषण/वीएम

फ़ंक्शन नाम असेम्बली निर्देश
IsDebuggerPresent() CPUID()
GetSystemInfo() IN()
GlobalMemoryStatusEx()
GetVersion()
CreateToolhelp32Snapshot [प्रक्रिया चल रही है या नहीं देखें]
CreateFileW/A [फ़ाइल मौजूद है या नहीं देखें]

छिपाव

नाम
VirtualAlloc मेमोरी आवंटित करें (पैकर्स)
VirtualProtect मेमोरी अनुमति बदलें (पैकर एक खंड को क्रियान्वयन अनुमति देना)
ReadProcessMemory बाहरी प्रक्रियाओं में इंजेक्शन
WriteProcessMemoryA/W बाहरी प्रक्रियाओं में इंजेक्शन
NtWriteVirtualMemory
CreateRemoteThread DLL/प्रक्रिया इंजेक्शन...
NtUnmapViewOfSection
QueueUserAPC
CreateProcessInternalA/W

क्रियान्वयन

फ़ंक्शन नाम
CreateProcessA/W
ShellExecute
WinExec
ResumeThread
NtResumeThread

विविध

  • GetAsyncKeyState() -- कुंजी लॉगिंग
  • SetWindowsHookEx -- कुंजी लॉगिंग
  • GetForeGroundWindow -- चल रही विंडो का नाम प्राप्त करें (या ब्राउज़र से वेबसाइट)
  • LoadLibrary() -- लाइब्रेरी आयात
  • GetProcAddress() -- लाइब्रेरी आयात
  • CreateToolhelp32Snapshot() -- चल रही प्रक्रियाएँ सूचीबद्ध करें
  • GetDC() -- स्क्रीनशॉट
  • BitBlt() -- स्क्रीनशॉट
  • InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- इंटरनेट तक पहुंचें
  • FindResource(), LoadResource(), LockResource() -- कार्यक्रम के संसाधनों तक पहुंचें

मैलवेयर तकनीकें

DLL इंजेक्शन

किसी अन्य प्रक्रिया में एक विचित्र DLL को निषेधित करें

  1. दुरुपयोगी DLL डालने के लिए प्रक्रिया का पता लगाएं: CreateToolhelp32Snapshot, Process32First, Process32Next
  2. प्रक्रिया खोलें: GetModuleHandle, GetProcAddress, OpenProcess
  3. DLL के पथ को प्रक्रिया के अंदर लिखें: VirtualAllocEx, WriteProcessMemory
  4. प्रक्रिया में एक धारात्मक DLL लोड करने वाली धारा बनाएं: CreateRemoteThread, LoadLibrary

उपयोग करने के अन्य फ़ंक्शन: NTCreateThreadEx, RtlCreateUserThread

प्रतिबिम्बित DLL इंजेक्शन

सामान्य Windows API कॉल किए बिना एक दुरुपयोगी DLL लोड करें।
DLL प्रक्रिया के अंदर मैप किया जाता है, यह आयात पते हल करेगा, स्थानांतरणों को ठीक करेगा और DllMain फ़ंक्शन को कॉल करेगा।

थ्रेड हाइजैकिंग

प्रक्रिया से एक धारात्मक DLL लोड करने के लिए एक धारात्मक थ्रेड खोजें

  1. लक्ष्य थ्रेड खोजें: CreateToolhelp32Snapshot, Thread32First, Thread32Next
  2. थ्रेड खोलें: OpenThread
  3. थ्रेड को रोकें: SuspendThread
  4. पीड़ित प्रक्रिया में दुरुपयोगी DLL के पथ को लिखें: VirtualAllocEx, WriteProcessMemory
  5. लाइब्रेरी लोड करने वाले थ्रेड को फिर से आरंभ करें: ResumeThread

पीई इंजेक्शन

पोर्टेबल एक्जीक्यूशन इंजेक्शन: एक्जीक्यूशन विक्टिम प्रक्रिया की मेमोरी में लिखा जाएगा और वहां से चलाया जाएगा।

प्रक्रिया होलोइंग

मैलवेयर वास्तविक कोड को प्रक्रिया की मेमोरी से अनमैप करेगा और एक दुरुपयोगी बाइनरी लोड करेगा

  1. एक नई प्रक्रिया बनाएं: CreateProcess
  2. मेमोरी को अनमैप करें: ZwUnmapViewOfSection, NtUnmapViewOfSection
  3. प्रक्रिया मेमोरी में दुरुपयोगी बाइनरी लिखें: VirtualAllocEc, WriteProcessMemory
  4. प्रवेश बिंदु सेट करें और क्रियान्वयन करें: SetThreadContext, ResumeThread

हुकिंग

  • SSDT (सिस्टम सेवा विवरण तालिका) कर्नेल फ़ंक्शनों (ntoskrnl.exe) या GUI ड्राइवर (win32k.sys) को इंगित करता है ताकि उपयोगकर्ता प्रक्रियाएँ इन फ़ंक्शनों को कॉल कर सकें।
  • एक रूटकिट इन पॉइंटर को उसके नियंत्रण में पते पर संशोधित कर सकता है
  • IRP (आई/ओ अनुरोध पैकेट्स) एक घटक से दूसरे घटक तक डेटा ट्रांसमिट करते हैं। कर्नेल में लगभग सभी चीजें IRPs का उपयोग करती हैं और प्रत्येक डिवाइस ऑब्ज
  • अपनी हैकिंग ट्रिक्स साझा करें PRs सबमिट करके HackTricks और HackTricks Cloud github repos पर।