
PyMultitor - وكيل Tor متعدد الخيوط بلغة بايثون
بروكسي تور متعدد الخيوط بلغة بايثون،
هل أردت يومًا أن تكون في مكانين مختلفين في نفس الوقت؟
عندما سألت نفسي هذا السؤال، بدأت بالفعل في تطوير هذا الحل في ذهني.
أثناء إجراء اختبارات الاختراق، غالبًا ما تكون هناك مشكلات ناتجة عن أجهزة أمنية تحجب عنوان IP "المهاجم".
هذا الأمر أزعجني حقًا، لذلك كتبت برنامجًا نصيًا لتوفير حل لهذه المشكلة.
مع وجود عدد كبير من عناوين IP التي تقوم بالهجمات، يتم ضمان نتائج أفضل - خاصة عند محاولة هجمات لتجاوز جدران الحماية لتطبيقات الويب، وهجمات القوة الغاشمة وغيرها الكثير.
[بلاك هات آسيا] https://www.blackhat.com/asia-17/arsenal.html#pymultitor
[عرض Owasp-IL] https://www.owasp.org/images/3/3d/OWASPIL-2016-02-02_PyMultiTor_TomerZait.pdf
[مقالة DigitalWhisper (بالعبرية)] http://www.digitalwhisper.co.il/files/Zines/0x2E/DW46-3-PyMultitor.pdf

sudo apt install -y torsudo yum install -y torsudo dnf install -y tor{tor-win32-*_path}\Tor--tor-cmd في pymultitor (على
سبيل المثال: pymultitor --tor-cmd "c:\Pentest\Web\tor-win32-0.2.9.9\Tor\tor.exe")brew install torpip3 install pymultitor
docker pull realgam3/pymultitor
git clone https://github.com/realgam3/pymultitor.git
cd pymultitor
# Install python dependencies.
# Depending on your setup, one or both of these may require sudo.
pip3 install -r requirements.txt
python3 setup.py install
# Confirm that everything works
pymultitor --help
تقارير الأخطاء حول مشكلات التثبيت مرحب بها!
pymultitor --on-string "Your IP Address Blocked".http://127.0.0.1:8080).Your IP Address Blocked في محتوى الاستجابة، ستظهر من عنوان IP آخر.docker run --rm -p 8080:8080 realgam3/pymultitor --on-string "Your IP Address Blocked".http://127.0.0.1:8080).Your IP Address Blocked في محتوى الاستجابة، ستظهر من عنوان IP آخر.يوفر PyMultiTor واجهة REST API لإدارة هويات البروكسي. يمكنك استخدام API لتغيير هوية البروكسي حسب الحاجة.
يتطلب API المصادقة باستخدام رمز Bearer. يمكنك تعيين الرمز بطريقتين:
متغير البيئة: قم بتعيين متغير البيئة PYMULTITOR_TOKEN:
export PYMULTITOR_TOKEN="your-secret-token-here"
ملاحظة: إذا لم يتم تعيين PYMULTITOR_TOKEN، فسيقوم PyMultiTor تلقائيًا بإنشاء رمز عشوائي لك.
سطر الأوامر: عند بدء PyMultiTor:
pymultitor
تغيير الهوية
/identityPOSTمثال على الاستخدام:
curl http://pymultitor/identity -X POST \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
الحالة
/statusGETمثال على الاستخدام:
curl http://pymultitor/status \
--header "Proxy-Authorization: Bearer {Token}" \
--proxy http://localhost:8080
ملاحظة: استبدل {Token} برمز المصادقة الفعلي الخاص بك.
pymultitor --help
usage: pymultitor.py [-h] [-v] [-lh LISTEN_HOST] [-lp LISTEN_PORT] [-s] [-a AUTH] [-i] [-d] [-p PROCESSES] [-c CMD] [-e CONFIG] [-t TIMEOUT] [-r TRIES]
[--request-timeout REQUEST_TIMEOUT] [--on-count ON_COUNT] [--on-string ON_STRING] [--on-regex ON_REGEX] [--on-rst] [--on-status-code [ON_STATUS_CODE ...]]
[--on-timeout]
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-lh, --host LISTEN_HOST
proxy listen host. (default: 127.0.0.1)
-lp, --port LISTEN_PORT
proxy listen port (default: 8080)
-s, --socks use as socks proxy (not http proxy) (default: False)
-a, --auth AUTH set proxy authentication (format: 'username:pass') (default: )
-i, --insecure insecure ssl (default: False)
-d, --debug Debug Log. (default: False)
-p, --tor-processes PROCESSES
number of tor processes in the cycle (default: 2)
-c, --tor-cmd CMD tor cmd (executable path + arguments) (default: tor)
-e, --tor-config CONFIG
tor extended json configuration (default: {})
-t, --tor-timeout TIMEOUT
timeout in seconds for starting a tor instance; 0 disables timeout (default: 90)
-r, --tor-tries TRIES
number tries to start a tor instance before it fails (default: 5)
--request-timeout REQUEST_TIMEOUT
timeout in seconds for http requests; 0 disables timeout (default: 0)
--on-count ON_COUNT change ip every x requests (resources also counted) (default: 0)
--on-string ON_STRING
change ip when string found in the response content (default: )
--on-regex ON_REGEX change ip when regex found in The response content (default: )
--on-rst change ip when connection closed with tcp rst (default: False)
--on-status-code [ON_STATUS_CODE ...]
change ip when one of the specified status codes is returned (default: [])
--on-timeout change ip when request times out (default: False)