
🐍 - زاحف على مواقع شبكة tor، يبحث عن الكلمات المفتاحية.
زاحف على مواقع شبكة tor، يبحث عن الكلمات المفتاحية.
يُستكمل VigilantOnion من قبل فرق استخبارات التهديدات السيبرانية (Cyber Threat Intelligence) حتى يتمكنوا من مراقبة الاستعلامات التي تُجرى على شبكة tor والحصول على أفضل نتيجة لها.
في نسخته الأولى التي استخدمت django للإدارة وإنشاء لوحات المعلومات، كانت هناك صعوبة كبيرة في استخدامه. في هذه النسخة الجديدة، أصبحت الاستعلامات والمنهجية المستخدمة للتخلص من الإيجابيات الكاذبة أفضل.
للتخلص من الإيجابيات الكاذبة ولتحسين مستوى الدقة، أستخدم yararule والملاحظات، مع تعيين قيم عالية للقواعد التي أجدها الأكثر أهمية، كما هو موضح في الشكل أدناه:

هذه القيم ديناميكية ويمكن تغييرها وفقًا لاحتياجك.
يمكن إضافة قواعد yara جديدة إلى كل من ملفات الفئات والكلمات المفتاحية، حتى تتمكن من التخلص من الإيجابيات الكاذبة والحصول على نتائج أكثر إرضاءً.
هناك أشياء قليلة تحتاج إلى تغيير في ملف الإعدادات، لكنها ذات أهمية كبيرة لاستخدام السكربت.
الحقول أدناه مخصصة لتكوين وكيل شبكة tor، وإذا كنت تشغّل السكربت على Windows فإن المنفذ عادةً يتغير إلى 9051
server_proxy: localhost
port_proxy: 9050
type_proxy: socks5h
حقل مهلة الخادم (timeout) لتحديد الوقت الذي تنتظر فيه الطلبات، فكلما زاد الوقت، زاد الوقت الذي قد يستغرقه السكربت.
timeout: 30
حقول درجة الخادم (score) لتحديد الحد الأدنى لقيمة الدرجة لكي يتم الزحف إلى الرابط وإرساله إلى syslog.
score_categorie: 20
score_keywords: 40
ستكون بعض الروابط غير متصلة ويصعب معرفة ما إذا كانت ستعود أم لا، لذلك أنشأت عدّادًا يمكنك من خلاله تحديد الحد الأقصى لعدد المحاولات، والذي بمجرد الوصول إليه لن يحاول السكربت الوصول إلى ذلك الرابط بعد ذلك.
count_categories: 5
كلما تم إجراء زحف على الرابط يتم حفظه مع تاريخ آخر فحص، ويمكنك تحديد حد زمني بالأيام بين فحص وآخر على نفس الرابط.
daystime: 10
وأخيرًا لم أعد أستخدم django، والآن لعرض نتائجك تحتاج إلى syslog مثل Splunk أو ELK، وعليك فقط تعريفها هنا
sendlog: True
logport: 5151
logip: "localhost"
استخدامه أبسط، فأنت تحتاج فقط إلى تثبيت tor، ومكتبات python، وللقيام بذلك شغّل الأمر أدناه:
pip install -r requirements.txt
بعد عميل tor والمكتبات المثبتة استخدم الأمر --help للحصول على تفاصيل استخدامه.
➜ python3 observer.py -h
usage: observer.py [-h] [--config CONFIG] [--crawler] [--url URL] [--search]
[--engines ENGINES] [--find FIND] [--pastebin PASTEBIN]
VigilantOnion is a script to collect as many sites from the onion network as
possible and add them to a database. With all possible sites collected, a
crawler will be created so that we can monitor the search for keywords defined
by you.
optional arguments:
-h, --help show this help message and exit
--config CONFIG, -c CONFIG
Configuration file in yaml format
--crawler Starts the TOR network URL crawler process.
--url URL, -u URL Specifies the URL to crawl.
--search Start the URL search process on the surface. Select a
framework where you want to search for urls.
--engines ENGINES, -e ENGINES
Validates the available engines for searching URLs.
--find FIND, -f FIND Search for arguments on .onion network research sites
--pastebin PASTEBIN Search for .onion urls in pastebin paste.
You can also develop new framework so that the database has more urls onions.
لكي يعمل السكربت تحتاج إلى عناوين URL جديدة، ولهذا أنشأت طريقة تبحث عن عناوين URL على السطح، كما في المثال أدناه:
python3.6 observer.py --config config/config.yml --search -e "gist,reddit,cybersecuritynews,discoverdarkwebservice"
يمكنك أيضًا الحصول على عناوين URL مباشرةً من ملفات pastebin، كما في المثال أدناه:
python3.6 observer.py --config config/config.yml --search --pastebin "s7TPZCKz,kSaYqtVX,0GYEEApe,3qkqyqiM,RfgBLg5Q,gtksBij4,FpPzQKHg,wB0uh00r,jDGJhQCC,q6DZ9U,ac2TnUjY,pv4xRWXQ,PgLUE7pF,9XW5Pc7R,hqyGMi7e,UZRM2z8y,7tQvV5CU,9JhVq3H3,Cb5HTydt,kMW5wp3N,v5Yq66sH,2q3SsR3a,gnd8jx97,QwSJYhYF,iNydrDfe"
بعد جمع بعض عناوين URL، يمكنك بدء عملية الزاحف. مع تذكّر أن العملية الأولى ستستغرق أطول وقت لأنها المرحلة التي يتم فيها تصنيف محتوى الموقع وتصنيفه فئويًا.
python3.6 observer.py --config config/config.yml --crawler
إذا أردت الزحف إلى عنوان URL واحد، فاستخدم:
python3.6 observer.py --config config/config.yml --crawler --url "76qugh5bey5gum7l.onion"
مخرجات النتيجة بصيغة json، وبنفس الصيغة تُرسَل إلى syslog المختار.
{
"lastscan": "2020-06-29",
"id": 10760,
"type": "URI",
"url": "lolitmhfkpif7sky.onion",
"title": "Lolita Club",
"baseurl": "vyqi2nm36otufrgg.onion",
"status": "Online",
"count_status": 0,
"source": "Script",
"categorie": [
{
"full_categorie": [
"no_match"
],
"score_categorie": 0
}
],
"keywords": [
{
"full_keywords": [
"no_match"
],
"score_keywords": 0
}
],
"discovery_date": "2020-06-29 14:24"
}
أستخدم splunk، ويمكنك جعل لوحة المعلومات الخاصة بك تبدو مثل لوحتي:

لا تتردد في عمل fork أو فتح issue للتعاون في المشروع.