Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
FFM — स्वतंत्रता सेनानी मोड: ओपन सोर्स हैकिंग हार्नेस | Kitploit
उपकरण/GitHubGitHub/justicerage/ffm
विशेषाधिकार वृद्धिपार्श्व आंदोलनडेटा निष्कासनजानकारी एकत्र करनापोस्ट-शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलउपयोगिताएँ और फ्रेमवर्करेड टीमिंग
GitHubjusticerage/ffm

FFM

स्वतंत्रता सेनानी मोड: ओपन सोर्स हैकिंग हार्नेस

349474 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

स्वतंत्रता सेनानी मोड (FFM)

FFM एक हैकिंग हार्नेस है जिसका उपयोग आप रेड-टीमिंग अभियान के पोस्ट-एक्सप्लॉइटेशन चरण के दौरान कर सकते हैं। इस उपकरण का विचार 2007 सम्मेलन @thegrugq से प्राप्त किया गया था।

इसे SSTIC 2018 (वीडियो) में प्रस्तुत किया गया था और संबंधित स्लाइड डेक इस यूआरएल पर उपलब्ध है। यदि आप इस प्रकार के उपकरणों से परिचित नहीं हैं, तो यह दृढ़ता से अनुशंसा की जाती है कि आप उन पर एक नज़र डालें ताकि यह समझा जा सके कि एक हैकिंग हार्नेस का उद्देश्य क्या है। सभी टिप्पणियाँ स्लाइड्स में शामिल हैं।

यह प्रोजेक्ट GPL v3 लाइसेंस की शर्तों के तहत वितरित किया जाता है।

दस्तावेज़ीकरण

प्राथमिक दस्तावेज़ीकरण इस README और commands/ के अंतर्गत कमांड मॉड्यूल में रहता है। ऊपर दिए गए SSTIC टॉक लिंक हार्नेस के उपयोग के तरीके के लिए सर्वोत्तम उच्च-स्तरीय पृष्ठभूमि बने हुए हैं। अतिरिक्त वॉकथ्रू सामग्री यहाँ उपलब्ध है:

  • https://ice-wzl.gitbook.io/hacknetics/c2-frameworks/ffm-documentation

योगदानकर्ता

  • ice-wzl ने प्रोजेक्ट इतिहास के दौरान कमांड, दस्तावेज़ीकरण और रीफ़ैक्टर का योगदान दिया।

स्थापना

डॉकर स्थापना

  • आधुनिक टर्मिनल प्रॉम्प्ट की विविधता के साथ, हम इस उपकरण के साथ docker का उपयोग करने की अत्यधिक अनुशंसा करते हैं।
  • इस रिपॉजिटरी में Dockerfile का उपयोग करने से संभावित त्रुटियों में काफी कमी आएगी।
  • रिमोट होस्ट के साथ इंटरैक्ट करने के लिए कंटेनर का उपयोग करना अधिक सुरक्षित भी है। यदि रिमोट होस्ट के साथ इंटरैक्ट करते समय आपका शोषण किया जाता है, तो वे आपके वास्तविक होस्ट के बजाय आपके कंटेनर में होंगे। चलिए फिर भी उम्मीद करते हैं कि ऐसा नहीं होगा।
  • सुनिश्चित करें कि आपके स्थानीय सिस्टम पर Docker स्थापित है
root@kitploit:~
git clone https://github.com/JusticeRage/FFM.git
cd /FFM

docker build Docker_Install/ -t ffm:ffm

docker image list 
REPOSITORY                TAG         IMAGE ID      CREATED        SIZE
localhost/ffm             ffm         fb6dd17e3b91  9 minutes ago  614 MB
docker.io/library/ubuntu  22.04       3b418d7b466a  2 weeks ago    80.3 MB

#run your new container and drop into a /bin/bash prompt as root
docker run -it --entrypoint /bin/bash -u 0 fb6dd17e3b91
  • एक बार अपने कंटेनर में, root और neo के लिए passwd सेट करें
  • su neo और अब आप तैयार हैं

गैर-डॉकर स्थापना

  • अनुशंसित नहीं
root@kitploit:~
 git clone https://github.com/JusticeRage/FFM.git
 cd /FFM
 pip install -r requirements.txt

उपयोग

एक हैकिंग हार्नेस का लक्ष्य एक सहायक के रूप में कार्य करना है जो पोस्ट-एक्सप्लॉइटेशन चरण के दौरान सामान्य कार्यों को स्वचालित करता है, लेकिन उपयोगकर्ता को उन गलतियों से भी बचाता है जो वे कर सकते हैं।

यह शेल का एक इंस्ट्रुमेंटेशन है। इसे सक्रिय करने के लिए ./ffm.py चलाएँ और आप तुरंत काम करना शुरू कर सकते हैं। कमांड commands/ के अंतर्गत छोटे मॉड्यूल में विभाजित हैं, जिनमें commands/command_manager.py डिस्कवरी और पंजीकरण को संभालता है। मुख्य समूह हैं गणना, सहायता, गुप्तता, स्थानांतरण, और निष्पादन।

दो कमांड हैं जिनके बारे में आपको जानना आवश्यक है:

  • हार्नेस द्वारा प्रदान किए गए सभी कमांड प्रदर्शित करने के लिए !list टाइप करें।
  • उन विभिन्न टैग देखने के लिए !list tags टाइप करें जिनमें कमांड को वर्गीकृत किया जा सकता है
root@kitploit:~
!list tags
List of commands available:
	 enumeration
	 execution
	 help
	 stealth
	 transfer
  • अब आप उस श्रेणी के अंतर्गत आने वाले कमांड देखने के लिए !list enumeration (या अन्य टैग में से एक) टाइप कर सकते हैं।
root@kitploit:~
!list enumeration
List of commands available:
	!backup-hunter: Hunts for backup files
	!info: Returns CPU(s), Architecture, Memory, and Kernel Verison for the current machine.
	!log: Toggles logging the harness' input and output to a file.
	!mtime: Returns files modified in the last X minutes
	!os: Prints the distribution of the current machine.
	!db-hunter: Hunts for .sqlite, .sqlite3, and .db files
	!sshkeys: Hunts for Private and Public SSH keys on the current machine.
	!suid: Finds SUID, SGID binaries on the current machine.
	--snip--

  • स्थानीय मशीन पर टैब पूर्णता करने के लिए SHIFT+TAB दबाएं। यह उपयोगी हो सकता है यदि आप SSH के माध्यम से एक रिमोट कंप्यूटर में लॉग इन हैं लेकिन आपको अपने बॉक्स पर स्थित फ़ाइल को संदर्भित करने की आवश्यकता है।

सुविधाओं की सूची

यह हैकिंग हार्नेस कुछ सुविधाएँ प्रदान करता है जिनका वर्णन नीचे किया गया है। जैसे-जैसे उनका वर्णन किया जाएगा, उपकरण के पीछे डिज़ाइन दर्शन भी प्रस्तुत किया जाएगा। यह अपेक्षित नहीं है कि FFM में लागू सभी कमांड आपको सूट करेंगे। हर किसी के पास काम करने का अपना तरीका होता है, और हार्नेस को आपकी विशिष्ट आवश्यकता के अनुसार ट्यून करने के लिए संभवतः आपको कुछ कोड संशोधित करने हो सकते हैं और/या कुछ प्लगइन लिखने होंगे। यह सुनिश्चित करने के लिए काफी प्रयास किया गया है कि यह एक दर्द रहित कार्य हो।

कमांड

गणना कमांड

  • !os एक अत्यंत सरल कमांड है जो यह दिखाने के लिए केवल cat /etc/*release* चलाता है कि वर्तमान मशीन किस OS पर चल रही है। यह संभवतः एक प्रदर्शन के रूप में सबसे मूल्यवान है कि हैकिंग हार्नेस के संदर्भ में, आप उपनामों को परिभाषित कर सकते हैं जो मशीन सीमाओं के पार काम करते हैं। किसी भी कंप्यूटर में SSH करें, !os टाइप करें और कमांड चल जाएगा। गणना कमांड commands/enumeration_commands.py में, सहायता कमांड commands/help_commands.py में, और गुप्तता-संबंधित कमांड commands/stealth_commands.py, commands/notty_sudo.py, और commands/log_control.py में विभाजित हैं।
  • !backup-hunter बैकअप फ़ाइलों की खोज करता है
  • !info वर्तमान मशीन के लिए CPU(s), आर्किटेक्चर, मेमोरी, और कर्नेल संस्करण लौटाता है।
  • !log हार्नेस के इनपुट और आउटपुट को एक फ़ाइल में लॉग करने को टॉगल करता है। commands/log_control.py में कार्यान्वित किया गया है।

स्थानांतरण कमांड

  • वे कमांड जो आपको फ़ाइलों को खींचने और धकेलने में मदद करते हैं, काफी सीधे हैं।
  • !download [remote file] [local path] रिमोट मशीन से एक फ़ाइल प्राप्त करता है और उसे स्थानीय रूप से कॉपी करता है टर्मिनल के माध्यम से। यह कमांड थोड़ा अधिक जटिल है क्योंकि अधिक कठोर त्रुटि जाँच आवश्यक है लेकिन यह एक और कमांड है जिसे आप आसानी से पढ़ सकते हैं। यह commands/download_file.py में रहता है। ध्यान दें कि इसके ठीक से काम करने के लिए रिमोट मशीन पर xxd या od की आवश्यकता होती है।
  • !download-dir [remote directory] [local destination] एक रिमोट निर्देशिका के tar संग्रह को टर्मिनल के माध्यम से स्ट्रीम करता है और इसे रिमोट फ़ाइल सिस्टम को छुए बिना स्थानीय रूप से निकालता है। यह commands/download_directory.py में रहता है। इसे रिमोट मशीन पर tar और base64 की आवश्यकता होती है, और उपलब्ध होने पर gzip का भी उपयोग करता है।
  • !upload [local file] [remote path] बिल्कुल पिछले कमांड की तरह काम करता है, सिवाय इसके कि एक स्थानीय फ़ाइल रिमोट मशीन पर रखी जाती है। यह commands/upload_file.py में रहता है।

निष्पादन कमांड

  • !sh [local script] स्थानीय मशीन से एक शेल स्क्रिप्ट को मेमोरी में चलाता है। यह commands/remote_script.py में रहता है।
  • !py [local script] रिमोट मशीन पर एक स्थानीय Python स्क्रिप्ट को निष्पादित करता है, और वह भी पूरी तरह से मेमोरी में। यह commands/remote_script.py में रहता है। उन स्क्रिप्ट्स के लिए मेरा अन्य रिपॉजिटरी देखें जिनका आप उपयोग करना चाह सकते हैं। यह कमांड << के साथ एक मल्टीलाइन सिंटैक्स का उपयोग करता है, जिसका अर्थ है कि जो स्यूडो-शेल इसका समर्थन नहीं करते हैं (Weevely इसका एक अच्छा उदाहरण है) वे इस कमांड को काफी बुरी तरह से तोड़ देंगे।
  • !py3 [local script] python3 वाले सिस्टम के लिए बिल्कुल वही काम करता है। यह वही मॉड्यूल, commands/remote_script.py का उपयोग करता है।
  • !elf [local script] रिमोट मशीन पर उपलब्ध किसी भी संगत Python इंटरप्रेटर का उपयोग करके स्थानीय मशीन से एक निष्पादन योग्य को मेमोरी में चलाता है। यह commands/remote_elf.py में रहता है।

गुप्तता कमांड

  • मैं पूरी तरह से जानता हूँ कि ये दो मॉड्यूल "गुप्तता" के विपरीत हैं लेकिन यह वह जगह है जहाँ वे वर्तमान में रखे गए हैं जब तक कोई वैकल्पिक स्थान तैयार नहीं हो जाता। इस गुप्तता श्रेणी में संभवतः वे कमांड शामिल होंगे जो आपको बेहतर ढंग से घुलने-मिलने में मदद करते हैं, उन कमांड के अतिरिक्त जो आपको अलग दिखा सकते हैं।
  • !pty एक TTY को जन्म देता है, जो कि आप ज्यादातर मामलों में नहीं चाहते क्योंकि यह फोरेंसिक सबूत छोड़ता है। हालाँकि, कुछ कमांड (sudo) या एक्सप्लॉइट को चलाने के लिए एक TTY की आवश्यकता होती है इसलिए इसे सुविधा के रूप में प्रदान किया गया है। इसके जन्म के साथ ही UNSET HISTFILE HISTFILESIZE HISTSIZE PROMPT_COMMAND पास किया जाता है, साथ ही export TERM=xterm
  • !sudo बिना TTY के sudo का आह्वान करता है। यह commands/notty_sudo.py में रहता है।

प्लगइन को ffm.conf संपादित करके आगे कॉन्फ़िगर किया जा सकता है।

प्रोसेसर

सैद्धांतिक रूप से, ऊपर वर्णित कमांड का उपयोग कुछ bash उत्पन्न करने के लिए किया जाता है जिसे शेल को अग्रेषित किया जाता है। वे शेल के आउटपुट को कैप्चर करके और लौटाई गई चीज़ों के आधार पर अतिरिक्त निर्देश उत्पन्न करके अधिक जटिल संचालन कर सकते हैं। प्रोसेसर थोड़े अलग होते हैं क्योंकि उनका उपयोग उपयोगकर्ता और अंतर्निहित bash प्रक्रिया के बीच परिसंचारी डेटा को फिर से लिखने के लिए किया जाता है। जबकि यह सच है कि किसी भी प्रोसेसर को एक कमांड के रूप में फिर से लिखा जा सकता है, दोनों को अलग करना थोड़ा साफ लगा। इनपुट प्रोसेसर उस पर काम करते हैं जो उपयोगकर्ता द्वारा ENTER कुंजी दबाने पर टाइप किया जाता है, और आउटपुट प्रोसेसर शेल द्वारा लौटाई गई किसी भी चीज़ को संशोधित कर सकते हैं।

  • एक अच्छा प्रोसेसर उदाहरण processors/ssh_command_line.py में पाया जा सकता है। यह किसी भी SSH कमांड में -T विकल्प जोड़ता है यदि वह गायब है। यदि आप एक प्रोसेसर लिखने में रुचि रखते हैं तो इसका सरल कोड देखना सुनिश्चित करें।
  • फ्रेमवर्क में मौजूद एक अन्य इनपुट प्रोसेसर, processors/assert_torify.py, में नेटवर्किंग कमांड (ssh, nc) की एक ब्लैकलिस्ट होती है और यदि वे torify जैसे उपकरण के माध्यम से प्रॉक्सी नहीं होते हैं तो उन्हें ब्लॉक कर देता है। हार्नेस केवल उपयोगकर्ता को परेशान करने की पूरी कोशिश करता है यदि ऐसा लगता है कि कमांड स्थानीय मशीन पर चलाया जा रहा है। जाहिर है, आपके होम IP पते के लीक होने से बचाने के लिए यह आपकी एकमात्र सुरक्षा नहीं होनी चाहिए।
  • अंत में, processors/sample_output_processor.py एक बहुत ही सरल आउटपुट प्रोसेसर है जो "password" शब्द की किसी भी घटना को लाल रंग में हाइलाइट करता है। चूँकि यह काफी बेकार है, यह फ्रेमवर्क में सक्षम नहीं है लेकिन यदि आप कुछ अधिक परिष्कृत करना चाहते हैं तो आप इसे एक प्रारंभिक बिंदु के रूप में उपयोग कर सकते हैं।

ज्ञात समस्याएँ

CTRL+R अभी तक लागू नहीं किया गया है और हम सभी इसे बहुत याद करते हैं।

अधिक समस्याग्रस्त यह तथ्य है कि फ्रेमवर्क समय-समय पर हैंग हो जाता है। 99% मामलों में, ऐसा तब होता है जब यह पता लगाने में विफल रहता है कि उसने जो कमांड लॉन्च किया है वह चलना समाप्त हो गया है। आमतौर पर, इसका मतलब है कि जिस मशीन में आप लॉग इन हैं उसका कमांड प्रॉम्प्ट इस रूप में पहचाना नहीं जा सका। उस स्थिति में, आप फ़ाइल ffm.py की शुरुआत में स्थित रेगुलर एक्सप्रेशन को बेहतर बनाने का प्रयास कर सकते हैं, या उसी मशीन में ssh -T के साथ लॉग इन कर सकते हैं क्योंकि तब कोई समस्याग्रस्त प्रॉम्प्ट नहीं रहेगा। डिफ़ॉल्ट रूप से, FFM 5 मिनट के बाद एक कमांड के आउटपुट को पढ़ने का प्रयास छोड़ देगा (कुछ प्लगइन अलग टाइमआउट लागू कर सकते हैं); इसलिए यदि फ्रेमवर्क हैंग होता है, तो आपको एक त्रुटि संदेश दिखाई देने तक प्रतीक्षा करनी होगी (हालाँकि यदि अंतर्निहित प्रक्रिया अभी भी चल रही है, तो हो सकता है कि आप अभी भी कमांड टाइप न कर पाएं)।

समापन वक्तव्य

मुझे लगता है कि मैंने इस उपकरण के बारे में सब कुछ कवर कर लिया है। फिर से, यह मेरे द्वारा आमतौर पर जारी की जाने वाली चीज़ों से थोड़ा अलग है क्योंकि ज्यादातर लोगों को इसे अपने लिए मूल्यवान बनाने से पहले इसे संशोधित करने की आवश्यकता होगी।

कई प्लगइन अभी तक लिखे जाने बाकी हैं, इसलिए FFM में आपके द्वारा किए गए किसी भी सुधार को साझा करना सुनिश्चित करें। न केवल बग के लिए, बल्कि यदि आप कुछ करने की कोशिश कर रहे हैं और पता नहीं लगा पा रहे हैं तो भी समस्याएं खोलने में संकोच न करें; इस तरह मैं सभी के लिए दस्तावेज़ीकरण में सुधार कर पाऊँगा।

करने के लिए

  • एकल फ़ाइल एन्क्रिप्शन मॉड्यूल

संपर्क

टूल डाउनलोड करें
  • !mtime पिछले X मिनटों में संशोधित फ़ाइलें लौटाता है। उदाहरण के लिए !mtime 5 स्थानीय मशीन पर उन सभी फ़ाइलों को प्राप्त करेगा (जिन्हें देखने का आपके पास अधिकार है) जो पिछले 5 मिनटों में संशोधित की गई हैं।
  • !db-hunter .sqlite, .sqlite3, और .db फ़ाइलों और अन्य डेटाबेस फ़ाइलों की खोज करता है
  • !sshkeys वर्तमान मशीन पर निजी और सार्वजनिक SSH कुंजियों की खोज करता है।
  • !suid वर्तमान मशीन पर SUID, SGID बाइनरी ढूँढता है।
  • !strange-dirs एक होस्ट पर अजीब निर्देशिकाओं के लिए उपयोगकर्ता द्वारा निर्दिष्ट पथ से शुरू होने वाले उपकरण की जाँच करता है
  • !sudo-version एक कमजोर sudo संस्करण की जाँच करता है
  • !vm जाँचता है कि उपकरण एक वर्चुअल मशीन है या नहीं