Common API used in Malware
Last updated
Last updated
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
कच्चे सॉकेट | 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 इंजेक्ट करने के लिए प्रक्रिया का पता लगाएँ: CreateToolhelp32Snapshot, Process32First, Process32Next
प्रक्रिया खोलें: GetModuleHandle, GetProcAddress, OpenProcess
प्रक्रिया के अंदर DLL का पथ लिखें: VirtualAllocEx, WriteProcessMemory
प्रक्रिया में एक थ्रेड बनाएं जो दुर्भावनापूर्ण DLL लोड करेगा: CreateRemoteThread, LoadLibrary
उपयोग करने के लिए अन्य फ़ंक्शन: NTCreateThreadEx, RtlCreateUserThread
सामान्य Windows API कॉल किए बिना एक दुर्भावनापूर्ण DLL लोड करें। DLL को एक प्रक्रिया के अंदर मैप किया गया है, यह आयात पते को हल करेगा, पुनर्स्थापनाओं को ठीक करेगा और DllMain फ़ंक्शन को कॉल करेगा।
एक प्रक्रिया से एक थ्रेड खोजें और इसे एक दुर्भावनापूर्ण DLL लोड करने के लिए बनाएं
एक लक्षित थ्रेड खोजें: CreateToolhelp32Snapshot, Thread32First, Thread32Next
थ्रेड खोलें: OpenThread
थ्रेड को निलंबित करें: SuspendThread
पीड़ित प्रक्रिया के अंदर दुर्भावनापूर्ण DLL का पथ लिखें: VirtualAllocEx, WriteProcessMemory
पुस्तकालय लोड करते समय थ्रेड को फिर से शुरू करें: ResumeThread
पोर्टेबल निष्पादन इंजेक्शन: निष्पादन योग्य को पीड़ित प्रक्रिया की मेमोरी में लिखा जाएगा और वहीं से निष्पादित किया जाएगा।
मैलवेयर प्रक्रिया की मेमोरी से वैध कोड को अनमैप करेगा और एक दुर्भावनापूर्ण बाइनरी लोड करेगा
एक नई प्रक्रिया बनाएं: CreateProcess
मेमोरी को अनमैप करें: ZwUnmapViewOfSection, NtUnmapViewOfSection
प्रक्रिया की मेमोरी में दुर्भावनापूर्ण बाइनरी लिखें: VirtualAllocEc, WriteProcessMemory
एंट्रीपॉइंट सेट करें और निष्पादित करें: SetThreadContext, ResumeThread
SSDT (सिस्टम सेवा वर्णन तालिका) कर्नेल फ़ंक्शंस (ntoskrnl.exe) या GUI ड्राइवर (win32k.sys) की ओर इशारा करता है ताकि उपयोगकर्ता प्रक्रियाएँ इन फ़ंक्शंस को कॉल कर सकें।
एक रूटकिट इन प्वाइंटर्स को उन पते पर संशोधित कर सकता है जिन्हें वह नियंत्रित करता है
IRP (I/O अनुरोध पैकेट) एक घटक से दूसरे घटक में डेटा के टुकड़े भेजते हैं। कर्नेल में लगभग सब कुछ IRP का उपयोग करता है और प्रत्येक डिवाइस ऑब्जेक्ट की अपनी फ़ंक्शन तालिका होती है जिसे हुक किया जा सकता है: DKOM (डायरेक्ट कर्नेल ऑब्जेक्ट मैनिपुलेशन)
IAT (आयात पता तालिका) निर्भरताओं को हल करने के लिए उपयोगी है। इसे हुक करना संभव है ताकि उस कोड को हाईजैक किया जा सके जिसे कॉल किया जाएगा।
EAT (निर्यात पता तालिका) हुक। ये हुक यूजरलैंड से किए जा सकते हैं। लक्ष्य DLL द्वारा निर्यातित फ़ंक्शंस को हुक करना है।
इनलाइन हुक: इस प्रकार को प्राप्त करना कठिन है। इसमें फ़ंक्शंस के कोड को संशोधित करना शामिल है। शायद इसके शुरुआत में एक जंप डालकर।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)