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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
shellnoob — एक shellcode लेखन टूलकिट | Kitploit
उपकरण/GitHubGitHub/reyammer/shellnoob
शोषणरिवर्स इंजीनियरिंगस्क्रिप्टिंग और स्वचालनशेलकोडडीबगर्सबाइनरी विश्लेषणलर्निंग और शिक्षाशेलकोड जनरेशनपेलोड डेवलपमेंट
GitHubreyammer/shellnoob

shellnoob

एक shellcode लेखन टूलकिट

रिपॉजिटरी देखें
6941211 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

ShellNoob

शेलकोड लिखना हमेशा से बहुत मज़ेदार रहा है, लेकिन कुछ हिस्से बेहद उबाऊ और त्रुटि-प्रवण हैं। केवल मज़ेदार हिस्से पर ध्यान दें, और ShellNoob का उपयोग करें!

त्वरित अवलोकन के लिए, Black Hat Arsenal वार्ता की स्लाइड्स देखें: link

योगदान करना चाहते हैं? फीचर अनुरोध? बग रिपोर्ट? गालियाँ? सभी प्रतिक्रिया का स्वागत है!! (लेकिन कुछ प्रकार की प्रतिक्रिया दूसरों की तुलना में अधिक स्वागत योग्य है :-))।

बेझिझक मुझे ट्विटर पर @reyammer पिंग करें या किसी भी प्रश्न के लिए yanick[AT]cs.ucsb.edu पर ईमेल करें!

योगदानकर्ता और आभार

  • Levente Polyak (@anthraxx42)
    • Python 3 समर्थन जोड़ा
    • बग फिक्स
  • @ToolsWatch और Black Hat टीमें
    • उन्होंने मुझे अपना टूल दिखाने का मौका दिया :D

समाचार

  • 01/21/2014 - ShellNoob 2.1 आ गया है! इसमें Python 3 के लिए पूर्ण समर्थन और ढेर सारे बग फिक्स हैं। पूरा श्रेय Levente Polyak को जाता है!

  • 07/29/2013 - ShellNoob 2.0 आ गया है!

  • 06/08/2013 - ShellNoob को Black Hat Arsenal में स्वीकार किया गया! घोषणा यहाँ देखें: link।

विशेषताएँ

  • विभिन्न प्रारूपों और स्रोतों के बीच शेलकोड परिवर्तित करें। वर्तमान में समर्थित प्रारूप: asm, bin, hex, obj, exe, C, python, ruby, pretty, safeasm, completec, shellstorm। (सभी विवरण "प्रारूप विवरण" अनुभाग में।)
  • इंटरैक्टिव asm-to-opcode रूपांतरण (और इसका उल्टा) मोड। यह तब उपयोगी होता है जब आप शेलकोड में विशिष्ट बाइट्स का उपयोग नहीं कर सकते और यह पता लगाना चाहते हैं कि क्या कोई विशेष असेंबली निर्देश समस्या पैदा करेगा।
  • ATT और Intel दोनों सिंटैक्स के लिए समर्थन। --intel स्विच देखें।
  • 32 और 64 बिट्स के लिए समर्थन (जब x86_64 मशीन पर काम कर रहे हों)। --64 स्विच देखें।
  • सिस्कॉल नंबर, कॉन्स्टेंट और त्रुटि नंबर हल करें (अब वास्तव में लागू किया गया है! :-))।
  • पोर्टेबल और आसानी से तैनात करने योग्य (यह केवल gcc/as/objdump और python पर निर्भर करता है)। यह सिर्फ एक स्व-निहित पायथन स्क्रिप्ट है, और यह Python2.7+ और Python3+ दोनों का समर्थन करता है।
  • इन-प्लेस विकास: आप ShellNoob को सीधे लक्षित आर्किटेक्चर पर चलाते हैं!
  • Linux/x86, Linux/x86_64, Linux/ARM, FreeBSD/x86, FreeBSD/x86_64 के लिए अंतर्निहित समर्थन।
  • "ब्रेकपॉइंट आगे जोड़ें" विकल्प। -c स्विच देखें।
  • stdin से पढ़ने / stdout पर लिखने का समर्थन (फ़ाइलनाम के रूप में "-" का उपयोग करें)
  • अल्ट्रा सस्ता डिबगिंग: --to-strace और --to-gdb विकल्प देखें!
  • अपनी स्क्रिप्ट्स में ShellNoob को Python मॉड्यूल के रूप में उपयोग करें! "लाइब्रेरी के रूप में ShellNoob" अनुभाग देखें।
  • वर्बोज़ मोड रूपांतरण के निम्न-स्तरीय चरणों को दिखाता है: डिबग / समझने / सीखने के लिए उपयोगी!
  • अतिरिक्त प्लगइन्स: --file-patch, --vm-patch, --fork-nopper विकल्पों के साथ बाइनरी पैचिंग आसान बनाई गई! (सभी विवरण नीचे)

उपयोग के मामले

अंतर्निहित सहायता

root@kitploit:~
$ ./shellnoob.py -h
shellnoob.py [--from-INPUT] (input_file_path | - ) [--to-OUTPUT] [output_file_path | - ]
shellnoob.py -c (prepend a breakpoint (Warning: only few platforms/OS are supported!)
shellnoob.py --64 (64 bits mode, default: 32 bits)
shellnoob.py --intel (intel syntax mode, default: att)
shellnoob.py -q (quite mode)
shellnoob.py -v (or -vv, -vvv)
shellnoob.py --to-strace (compiles it & run strace)
shellnoob.py --to-gdb (compiles it & run gdb & set breakpoint on entrypoint)

Standalone "plugins"
shellnoob.py -i [--to-asm | --to-opcode ] (for interactive mode)
shellnoob.py --get-const <const>
shellnoob.py --get-sysnum <sysnum>
shellnoob.py --get-errno <errno>
shellnoob.py --file-patch <exe_fp> <file_offset> <data> (in hex). (Warning: tested only on x86/x86_64)
shellnoob.py --vm-patch <exe_fp> <vm_address> <data> (in hex). (Warning: tested only on x86/x86_64)
shellnoob.py --fork-nopper <exe_fp> (this nops out the calls to fork(). Warning: tested only on x86/x86_64)

"Installation"
shellnoob.py --install [--force] (this just copies the script in a convinient position)
shellnoob.py --uninstall [--force]

Supported INPUT format: asm, obj, bin, hex, c, shellstorm
Supported OUTPUT format: asm, obj, exe, bin, hex, c, completec, python, bash, ruby, pretty, safeasm
All combinations from INPUT to OUTPUT are supported!

स्थापना (केवल यदि आप चाहें)

root@kitploit:~
$ ./shellnoob.py --install

यह बस स्क्रिप्ट को /usr/local/bin/snoob पर कॉपी करेगा। बस इतना ही। (पूर्ववत करने के लिए ./shellnoob.py --uninstall चलाएँ)।

अत्यंत लचीले CLI के साथ शेलकोड को विभिन्न प्रारूपों में/से परिवर्तित करें।

root@kitploit:~
$ snoob --from-asm shell.asm --to-bin shell.bin

कुछ समतुल्य विकल्प (टूल फ़ाइल एक्सटेंशन के आधार पर अनुमान लगाने की कोशिश करेगा कि आप क्या चाहते हैं..)

root@kitploit:~
$ snoob --from-asm shell.asm --to-bin
$ snoob shell.asm --to-bin
$ snoob shell.asm --to-bin - > shell.bin
$ cat shell.asm | snoob --from-asm - --to-bin - > shell.bin

प्रारूप विवरण

  • "asm" - मानक असेंबली। डिफ़ॉल्ट रूप से ATT सिंटैक्स, Intel सिंटैक्स उपयोग करने के लिए --intel का उपयोग करें। (अधिक विवरण के लिए "आउटपुट प्रारूप के रूप में asm" अनुभाग देखें)
  • "bin" - रॉ बाइनरी ('\x41\x42\x43\x44')
  • "hex" - हेक्स में एन्कोडेड रॉ बाइनरी ('41424344')
  • "obj" - एक ELF
  • "exe" - एक निष्पादन योग्य ELF
  • "c" - C प्रोग्राम में एम्बेड करने के लिए तैयार कुछ।
  • "python", "bash", "ruby" - यहाँ भी वही।
  • "completec" - संकलन योग्य C जो मेमोरी को ठीक से RWX के रूप में सेट करता है (स्व-संशोधित शेलकोड का समर्थन करने के लिए)
  • "safeasm" - असेंबली जो 100% असेंबल होने योग्य है: कभी-कभी objdump का आउटपुट, जिससे "asm" लिया जाता है, असेंबल नहीं हो पाता। यह "raw" बाइट्स (.byte नोटेशन में) आउटपुट करेगा ताकि यह "as" द्वारा असेंबल हो सके।
  • "shellstorm" - --from-shellstorm स्विच तर्क के रूप में <shellcode_id> लेता है। ShellNoob चयनित शेलकोड को shell-storm शेलकोड DB से लेगा, और इसे चयनित प्रारूप में परिवर्तित करेगा।

आसान डिबगिंग

root@kitploit:~
$ snoob -c shell.asm --to-exe shell
$ gdb -q shell
$ run
Reading symbols from ./shell...(no debugging symbols found)...done.
(gdb) run
Starting program: ./shell

Program received signal SIGTRAP, Trace/breakpoint trap.
0x08048055 in ?? ()
(gdb) 

या आप नए --to-strace और --to-gdb स्विच का उपयोग कर सकते हैं!

root@kitploit:~
$ snoob open-read-write.asm --to-strace
Converting open-read-write.asm (asm) into /tmp/tmpBaQbzP (exe)
execve("/tmp/tmpBaQbzP", ["/tmp/tmpBaQbzP"], [/* 97 vars */]) = 0
[ Process PID=12237 runs in 32 bit mode. ]
open("/tmp/secret", O_RDONLY)           = 3
read(3, "thesecretisthedolphin\n", 255) = 22
write(1, "thesecretisthedolphin\n", 22thesecretisthedolphin
) = 22
_exit(0)  
root@kitploit:~
$ snoob open-read-write.asm --to-gdb
Converting open-read-write.asm (asm) into /tmp/tmpZdImWw (exe)
Reading symbols from /tmp/tmpZdImWw...(no debugging symbols found)...done.
(gdb) Breakpoint 1 at 0x8048054
(gdb)

ध्यान दें कि ShellNoob स्वचालित रूप से एंट्री पॉइंट पर ब्रेकपॉइंट सेट करता है!

सिस्कॉल नंबर, कॉन्स्टेंट और errno प्राप्त करें

root@kitploit:~
$ snoob --get-sysnum read
i386 ~> 3
x86_64 ~> 0
$ snoob --get-sysnum fork
i386 ~> 2
x86_64 ~> 57
root@kitploit:~
$ snoob --get-const O_RDONLY
O_RDONLY ~> 0
$ snoob --get-const O_CREAT
O_CREAT ~> 64
$ snoob --get-const EINVAL
EINVAL ~> 22
root@kitploit:~
$ snoob --get-errno EINVAL
EINVAL ~> Invalid argument
$ snoob --get-errno 22
22 ~> Invalid argument
$ snoob --get-errno EACCES
EACCES ~> Permission denied
$ snoob --get-errno 13
13 ~> Permission denied

इंटरैक्टिव मोड

root@kitploit:~
$ ./shellnoob.py -i --to-opcode
asm_to_opcode selected
>> mov %eax, %ebx
mov %eax, %ebx ~> 89c3
>> 
root@kitploit:~
./shellnoob.py -i --to-asm
opcode_to_asm selected
>> 89c3
89c3 ~> mov %eax,%ebx
>>

लाइब्रेरी के रूप में ShellNoob

root@kitploit:~
$ python
>>> from shellnoob import ShellNoob
>>> sn = ShellNoob(flag_intel=True)

>>> sn.asm_to_hex('nop; mov ebx,eax; xor edx,edx')
'9089c331d2'
>>> sn.hex_to_inss('9089c331d2')
['nop', 'mov ebx,eax', 'xor edx,edx']

>>> sn.do_resolve_syscall('fork')
i386 ~> 2
x86_64 ~> 57

आउटपुट प्रारूप के रूप में Asm

जब "asm" आउटपुट प्रारूप होता है, ShellNoob अपनी पूरी कोशिश करेगा। Objdump का उपयोग डिसअसेंबलर के रूप में किया जाता है, लेकिन इसका आउटपुट बुलेट-प्रूफ नहीं है। ShellNoob बाइट्स (.byte नोटेशन) जोड़कर डिसअसेंबली को बेहतर बनाने की कोशिश करता है, और जहाँ उचित हो, ASCII (.ascii नोटेशन) में समकक्ष प्रदर्शित करेगा। यह तब उपयोगी होता है जब आप objdump के आउटपुट को संशोधित/असेंबल करना चाहते हैं लेकिन त्वरित सुधार करने की आवश्यकता होती है।

.byte नोटेशन के साथ उदाहरण:

root@kitploit:~
jmp 0x37              # .byte 0xeb,0x35      
pop %ebx              # .byte 0x5b          
mov %ebx,%eax         # .byte 0x89,0xd8      
add $0xb,%eax         # .byte 0x83,0xc0,0x0b 
xor %ecx,%ecx         # .byte 0x31,0xc9      

.ascii नोटेशन के साथ उदाहरण:

root@kitploit:~
das                   # .ascii "/"
je 0xac               # .ascii "tm"
jo 0x70               # .ascii "p/"
jae 0xa8              # .ascii "se"
arpl %si,0x65(%edx)   # .ascii "cre"
je 0xa0               # .ascii "tX

लाइसेंस

ShellNoob MIT लाइसेंस के तहत जारी किया गया है। COPYRIGHT फ़ाइल देखें।

टूल डाउनलोड करें