
مجموعة من الدوال لزيادة الإنتاجية أثناء الاختراق باستخدام Bash
bashacks عبارة عن مجموعة من دوال bash يُحتمل أن تكون مفيدة للمبرمجين ومحللي الأمن والمستخدمين العامين الذين يحتاجون إلى عمليات منخفضة المستوى.
في الحقيقة، لا يوجد شيء جديد حقًا في bashacks؛ فجميع الدوال مكتوبة باستخدام برمجيات موجودة مسبقًا في الأنظمة الشبيهة بيونكس. ومع ذلك، فهي تتيح لك استخدام أوامر أقصر لتنفيذ مهام تتطلب عادةً عدة أوامر.
استخدم الأمر make لإنشاء ملف واحد يحتوي على جميع الدوال ثم نفّذه باستخدام source:
make
source bashacks.sh
هذا كل شيء. يمكنك الآن التحقق من الدوال المتوفرة من طرفية جديدة بكتابة bh_ والضغط على Tab.
إذا أردت جعله دائمًا، أضفه إلى ~/.bash_profile:
echo "source $(pwd)/bashacks.sh" >> ~/.bash_profile
توجد بعض التوثيقات، لكنها قديمة. نرحب بطلبات السحب (PRs)!
ما هو الوقت الحالي بصيغة Epoch؟
$ bh_epoch
1522324129
أضف 4 إلى الحرف 'f' بالترتيب الأبجدي
$ bh_charcalc f + 4
j
تحقق من عنوان IP الخارجي الخاص بي
$ bh_myip
177.212.113.13
أنشئ هيكلًا أساسيًا لبرنامج C
$ bh_skel_c > hello.c
$ cat hello.c
سيؤدي هذا إلى إخراج:
#include <stdio.h>
int main(int argc, char *argv[]) {
return 0;
}
احسب المجاميع الاختبارية الشائعة للملفات
$ bh_hashes /bin/ip*
387478f58a0669173fb6557d392a58e9 /bin/ip
1dd0f3b100bd6efc4664da0cdefff801d7d2efd8 /bin/ip
1d418ae3a767280c7fc6026a25e5bb9774c0e8afc7b3387b547765b62cbe578f /bin/ip
78868acd29e4a33194fb786f6589d3d1 /bin/ipcmk
8c22a129ff4b5748cc62222a93ba8471d7fdce19 /bin/ipcmk
34a068d7f85e85746b3fc98502fa96a734cc51f3a9d49cad92911e8f239bd9c9 /bin/ipcmk
69c2bedc20e77c039912c9d5e7af33db /bin/ipcrm
7992a936b28359d7f087a448d2b8a2418ef4f112 /bin/ipcrm
cded383eb3b74467409c1731c2804350fe3d1123bdac7304c1c6f3af9e7976f7 /bin/ipcrm
499f17765c0aa55ac99739c9bcac1d0c /bin/ipcs
c476949e77ef8710398fd8ec4f78c8cf1d76a420 /bin/ipcs
33c77a5b625f4de919f55dc24207645d219a2fde2e0b92be27c5cda8c662cd72 /bin/ipcs
6a738c5c2506f7e87c9458e0c3df378f /bin/iptables-xml
ba97af2e429aca6beb5a2b8861e370bbf874dee9 /bin/iptables-xml
cb8c10461da5247e8d6d63a123ba563df95ae1e78f29e1717eb8bb02c2ca045b /bin/iptables-xml
ابحث عن الملفات حسب نوع MIME (يتجاهل امتداد الملف):
$ bh_findmime -elf /bin | head
/bin/[
/bin/addpart
/bin/appres
/bin/apt
/bin/apt-cache
/bin/apt-cdrom
/bin/apt-config
/bin/apt-extracttemplates
/bin/apt-ftparchive
/bin/apt-get
يمكنك تمرير النتائج إلى الأمر xargs لحساب المجاميع الاختبارية بسرعة:
$ bh_findmime -pe ~/Downloads/ | xargs shasum
d9e49c4209087170e36cbef689d96240d736cf3b /Users/menteb/Downloads/CSCWCNG.dll
50dfeea02e89f41caf52df152c7cb923c667bffc /Users/menteb/Downloads/Receitanet-1.10.exe
86a5f89d43ab11456fb817aeceb14b83cc6c2608 /Users/menteb/Downloads/Xojo2017r3Setup.exe.opdownload
حوّل سلسلة نصية إلى نظام سداسي عشر (hex) بصيغ إخراج متنوعة
$ bh_str2hex mentebinaria
6d 65 6e 74 65 62 69 6e 61 72 69 61
$ bh_str2hex -x mentebinaria
\x6d\x65\x6e\x74\x65\x62\x69\x6e\x61\x72\x69\x61
$ bh_str2hex -c mentebinaria
{ 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x69, 0x61 }
توجد معالجة أخطاء أساسية جدًا في bashacks. إذا لم تستلم إحدى الدوال الوسائط التي تحتاجها، فإنها ببساطة ترجع 1.
هناك المزيد. ثبّتها واكتشف بنفسك. :)
في بعض دوال السلاسل النصية، يجب عليك إفلات الأحرف الخاصة لأن bash سيحاول تفسيرها. انظر المثال التالي باستخدام دالة bh_strxor:
$ bh_strxor 0x41 fernando
'$3/ /%.
$ bh_strxor 0x41 "'\$3/ /%." # string between double quotes and dollar sign escaped
fernando
العديد من دوال bashacks تستخدم ميزة تقسيم الكلمات (word splitting) الخاصة بـ bash، لذلك لا تعمل افتراضيًا في Zsh. ومع ذلك، يمكنك ضبط Zsh لتنفيذ تقسيم الكلمات باستخدام الأمر التالي:
$ setopt sh_word_split
ثم يجب أن تعمل الأمور بشكل صحيح.