
pyshell2bin
यदि आप एक्सप्लॉइट्स और शेलकोड के साथ काम करते हैं, तो आप पहले से ही जानते हैं कि शेलकोड क्या है और इससे कैसे निपटना है। कभी-कभी यह C, Perl, Python… में लिखे एक्सप्लॉइट्स के साथ आता है। यह आमतौर पर ऐसा दिखता है:
payload = (b"xbfxabxd0x9ax5bxdaxc7xd9x74x24xf4x5ax2bxc9" + "xb1x45x83xc2x04x31x7ax11x03x7ax11xe2x5ex2c" + "x72xd2xa0xcdx83x85x29x28xb2x97x4dx38xe7x27" + ...
लेकिन कभी-कभी आपको इस शेलकोड का बाइनरी फ़ाइल प्रतिनिधित्व चाहिए होता है, ताकि आप इसे किसी फ़ाइल में इंजेक्ट कर सकें, डीबग कर सकें या किसी भी कारण से। शेलकोड से निपटने और विभिन्न कार्यों को पूरा करने के लिए बहुत सारी स्क्रिप्ट्स मौजूद हैं। बाइनरी से शेलकोड, शेलकोड से बाइनरी (केवल bash के लिए)… लेकिन मैं Windows के अंतर्गत इसे पाने के लिए एक सरल स्क्रिप्ट खोजने में सक्षम नहीं था। “xxd” कमांड (हेक्सडंप बनाना) का Windows के लिए पोर्ट किया गया संस्करण ढूंढना भी संभव है लेकिन आसान नहीं है (ऐसा लगता है कि यह Windows के लिए Vim के साथ बंडल आता है, लेकिन यह पहले unixtools के साथ उपलब्ध हुआ करता था…)।
खैर, यहाँ Python में एक सरल स्क्रिप्ट है जो Windows पर काम करती है और काम कर देगी। यह गंदे शेलकोड (स्पेस, रिटर्न, कॉनकैटनेशन कमांड…) को सहन कर लेगी और केवल हेक्स अक्षरों को रखेगी। फिर यह “wb” के साथ “write” का उपयोग करती है, जिससे आपको एक बाइनरी फ़ाइल मिलती है। जल्दी और मोटा-मोटा (quick and dirty)।