
उपयोगकर्ता खातों से संबंधित सुरक्षा जोखिमों के लिए AD डोमेन का विश्लेषण करना
परियोजना में निम्नलिखित रिपॉजिटरी हैं:
यह केवल शैक्षिक उद्देश्यों के लिए है।
इसे उत्पादन एक्टिव डायरेक्टरी (AD) डोमेन पर उपयोग करने से बचें।
कोई भी योगदानकर्ता इसके किसी भी उपयोग के लिए कोई जिम्मेदारी नहीं लेता है।
हमारे रेड टीम समुदाय टेलीग्राम चैनल को देखें।
दृश्य विवरण के लिए, diagrams.net टूल का उपयोग करके diagram फ़ाइलें खोलें।
एप्लिकेशन में शामिल हैं:
DC Sonar समुदाय खातों से संबंधित सुरक्षा जोखिमों के लिए AD डोमेन का विश्लेषण करने की कार्यक्षमता प्रदान करता है:
एप्लिकेशन में AD डोमेन विश्लेषण पंजीकृत करें

डोमेन विश्लेषण प्रक्रियाओं की स्थितियाँ देखें

निर्धारित AD डोमेन से NTLM हैश डंप और ब्रूट करें ताकि कमज़ोर और असुरक्षित पासवर्ड वाले खातों की सूची बनाई जा सके

AD डोमेन खातों का विश्लेषण करें ताकि उन खातों को सूचीबद्ध किया जा सके जिनके पासवर्ड कभी समाप्त नहीं होते

AD डोमेन खातों का उनके NTLM पासवर्ड हैश द्वारा विश्लेषण करें ताकि उन खातों और डोमेन का निर्धारण किया जा सके जहां पासवर्ड दोहराए जाते हैं

प्रगति पर ...
यह मान लिया गया है कि आपके पास एक साफ उबंटू सर्वर 22.04 और उपयोगकर्ता नाम "user" वाला खाता है।
एप्लिकेशन /home/user/dc-sonar पर स्थापित होगा।
अगले रिलीज़ में शायद अधिक लचीली स्थापना होगी।
सर्वर पर अंतिम वितरण से dc_sonar_NNNN.N.NN-N_amd64.tar.gz डाउनलोड करें।
फ़ाइलें निकालने के लिए एक फ़ोल्डर बनाएं:
mkdir dc_sonar_NNNN.N.NN-N_amd64
डाउनलोड किए गए आर्काइव को निकालें:
tar -xvf dc_sonar_NNNN.N.NN-N_amd64.tar.gz -C dc_sonar_NNNN.N.NN-N_amd64
निकाली गई फ़ाइलों वाले फ़ोल्डर पर जाएं:
cd dc_sonar_NNNN.N.NN-N_amd64/
PostgreSQL स्थापित करें:
sudo bash install_postgresql.sh
RabbitMQ स्थापित करें:
sudo bash install_rabbitmq.sh
निर्भरताएँ स्थापित करें:
sudo bash install_dependencies.sh
यह ppa:deadsnakes/ppa रिपॉजिटरी को जोड़ने की पुष्टि मांगेगा। Enter दबाएं।
dc-sonar स्वयं स्थापित करें:
sudo dpkg -i dc_sonar_NNNN.N.NN-N_amd64.deb
यह Django व्यवस्थापक उपयोगकर्ता बनाने के लिए जानकारी मांगेगा। उपयोगकर्ता नाम, ईमेल और पासवर्ड प्रदान करें।
यह दो बार स्व-हस्ताक्षरित SSL प्रमाणपत्र बनाने के लिए जानकारी मांगेगा। आवश्यक जानकारी प्रदान करें।
खोलें: https://localhost
पहले स्थापना प्रक्रिया के दौरान सेट किए गए Django व्यवस्थापक उपयोगकर्ता क्रेडेंशियल दर्ज करें।
जानकारी के लिए STYLE_GUIDE.md देखें।
प्रगति पर ...
इस मामले में, हम विंडोज होस्ट पर कोड संपादित करने के लिए वातावरण स्थापित करेंगे जबकि उबंटू गेस्ट पर पायथन कोड चलाएंगे।
VirtualBox में उबंटू सर्वर 22.04 iso का उपयोग करके 2 CPU, 2048 MB RAM, 10GB SSD वाली एक वर्चुअल मशीन बनाएं।
यदि उबंटू इंस्टॉलर VM स्थापना से पहले उबंटू इंस्टॉलर को अपडेट करने के लिए कहता है - सहमत हों।
OpenSSH सर्वर स्थापित करना चुनें।
VirtualBox पोर्ट फ़ॉरवर्डिंग नियम:
पायथन 3.10.5 डाउनलोड करें और स्थापित करें।
DC Sonar प्रोजेक्ट के लिए एक फ़ोल्डर बनाएं।
विंडोज के लिए Git का उपयोग करके प्रोजेक्ट फ़ोल्डर पर जाएं:
cd '{PATH_TO_FOLDER}'
dc-sonar-user-layer के लिए विंडोज स्थापना चरण करें।
dc-sonar-workers-layer के लिए विंडोज स्थापना चरण करें।
ntlm-scrutinizer के लिए विंडोज स्थापना चरण करें।
dc-sonar-frontend के लिए विंडोज स्थापना चरण करें।
चरणों को "Open VirtualBox" से "Reboot VM" तक करें, लेकिन VM VirtualBox में "Auto-mount" के साथ साझा फ़ोल्डर जोड़ें, जैसा कि नीचे चित्र में है:

रीबूट के बाद, कमांड चलाएं:
sudo adduser $USER vboxsf
उपयोग किए जा रहे उपयोगकर्ता खाते के लिए लॉगआउट और लॉगिन करें।
/home/user निर्देशिका में, आप माउंटेड फ़ोल्डर का उपयोग कर सकते हैं:
ls -l
Output:
total 12
drwxrwx--- 1 root vboxsf 4096 Jul 19 13:53 dc-sonar-user-layer
drwxrwx--- 1 root vboxsf 4096 Jul 19 10:11 dc-sonar-workers-layer
drwxrwx--- 1 root vboxsf 4096 Jul 19 14:25 ntlm-scrutinizer
उबंटू 20.04 पर PostgreSQL स्थापित करें:
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql.service
व्यवस्थापक डेटाबेस खाता बनाएं:
sudo -u postgres createuser --interactive
Output:
Enter name of role to add: admin
Shall the new role be a superuser? (y/n) y
dc_sonar_workers_layer डेटाबेस खाता बनाएं:
sudo -u postgres createuser --interactive
Output:
Enter name of role to add: dc_sonar_workers_layer
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
dc_sonar_user_layer डेटाबेस खाता बनाएं:
sudo -u postgres createuser --interactive
Output:
Enter name of role to add: dc_sonar_user_layer
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
back_workers_db डेटाबेस बनाएं:
sudo -u postgres createdb back_workers_db
web_app_db डेटाबेस बनाएं:
sudo -u postgres createdb web_app_db
psql चलाएं:
sudo -u postgres psql
व्यवस्थापक खाते के लिए पासवर्ड सेट करें:
ALTER USER admin WITH PASSWORD '{YOUR_PASSWORD}';
dc_sonar_workers_layer खाते के लिए पासवर्ड सेट करें:
ALTER USER dc_sonar_workers_layer WITH PASSWORD '{YOUR_PASSWORD}';
dc_sonar_user_layer खाते के लिए पासवर्ड सेट करें:
ALTER USER dc_sonar_user_layer WITH PASSWORD '{YOUR_PASSWORD}';
back_workers_db डेटाबेस पर dc_sonar_workers_layer खाते के लिए CRUD अनुमतियाँ प्रदान करें:
\c back_workers_db
GRANT CONNECT ON DATABASE back_workers_db to dc_sonar_workers_layer;
GRANT USAGE ON SCHEMA public to dc_sonar_workers_layer;
GRANT ALL ON ALL TABLES IN SCHEMA public TO dc_sonar_workers_layer;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO dc_sonar_workers_layer;
GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO dc_sonar_workers_layer;
web_app_db डेटाबेस पर dc_sonar_user_layer खाते के लिए CRUD अनुमतियाँ प्रदान करें:
\c web_app_db
GRANT CONNECT ON DATABASE web_app_db to dc_sonar_user_layer;
GRANT USAGE ON SCHEMA public to dc_sonar_user_layer;
GRANT ALL ON ALL TABLES IN SCHEMA public TO dc_sonar_user_layer;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO dc_sonar_user_layer;
GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO dc_sonar_user_layer;
psql से बाहर निकलें:
\q
pg_hba.conf फ़ाइल खोलें:
sudo nano /etc/postgresql/12/main/pg_hba.conf
होस्ट मशीन से PostgreSQL तक कनेक्शन की अनुमति देने के लिए कनेक्शन के लिए लाइन जोड़ें, परिवर्तन सहेजें और फ़ाइल बंद करें:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all admin 0.0.0.0/0 md5
postgresql.conf फ़ाइल खोलें:
sudo nano /etc/postgresql/12/main/postgresql.conf
नीचे निर्दिष्ट पैरामीटर बदलें, परिवर्तन सहेजें और फ़ाइल बंद करें:
listen_addresses = 'localhost,10.0.2.15'
shared_buffers = 512MB
work_mem = 5MB
maintenance_work_mem = 100MB
effective_cache_size = 1GB
PostgreSQL सेवा को पुनरारंभ करें:
sudo service postgresql restart
PostgreSQL सेवा की स्थिति जांचें:
service postgresql status
यदि आवश्यक हो तो लॉग फ़ाइल जांचें:
tail -f /var/log/postgresql/postgresql-12-main.log
अब आप विंडोज से DBeaver जैसे क्लाइंट का उपयोग करके व्यवस्थापक खाते से बनाए गए डेटाबेस से कनेक्ट कर सकते हैं।
स्क्रिप्ट का उपयोग करके RabbitMQ स्थापित करें।
प्रबंधन प्लगइन सक्षम करें:
sudo rabbitmq-plugins enable rabbitmq_management
RabbitMQ व्यवस्थापक खाता बनाएं:
sudo rabbitmqctl add_user admin {YOUR_PASSWORD}
पूर्ण प्रबंधन UI और HTTP API पहुंच के लिए बनाए गए उपयोगकर्ता को टैग करें:
sudo rabbitmqctl set_user_tags admin administrator
http://localhost:15672/ पर प्रबंधन UI खोलें।
सुनिश्चित करें कि आपका सिस्टम अपडेट है और आवश्यक पैकेज स्थापित हैं:
sudo apt update && sudo apt upgrade -y
कस्टम PPA जोड़ने के लिए आवश्यक निर्भरता स्थापित करें:
sudo apt install software-properties-common -y
फिर आगे बढ़ें और deadsnakes PPA को APT पैकेज मैनेजर स्रोतों की सूची में नीचे दिए अनुसार जोड़ें:
sudo add-apt-repository ppa:deadsnakes/ppa
Python 3.10 डाउनलोड करें:
sudo apt install python3.10=3.10.5-1+focal1
निर्भरताएँ स्थापित करें:
sudo apt install python3.10-dev=3.10.5-1+focal1 libpq-dev=12.11-0ubuntu0.20.04.1 libsasl2-dev libldap2-dev libssl-dev
venv मॉड्यूल स्थापित करें:
sudo apt-get install python3.10-venv
स्थापित python का संस्करण जांचें:
python3.10 --version
Output:
Python 3.10.5
डोमेन कंट्रोलर के IP पते /etc/hosts में जोड़ें
sudo nano /etc/hosts
हमें एक स्तर ऊपर venv बनाना होगा क्योंकि VM VirtualBox हमें इसे साझा फ़ोल्डर में बनाने की अनुमति नहीं देता है।
उस होम निर्देशिका पर जाएं जहां साझा फ़ोल्डर स्थित हैं:
cd /home/user
उबंटू पर dc-sonar-user-layer के लिए परिनियोजन चरण करें।
उबंटू पर dc-sonar-workers-layer के लिए परिनियोजन चरण करें।
उबंटू पर ntlm-scrutinizer के लिए परिनियोजन चरण करें।
उबंटू पर dc-sonar-user-layer के लिए कॉन्फ़िगरेशन चरण करें।
उबंटू पर dc-sonar-workers-layer के लिए कॉन्फ़िगरेशन चरण करें।
उबंटू पर ntlm-scrutinizer के लिए कॉन्फ़िगरेशन चरण करें।
उबंटू पर ntlm-scrutinizer के लिए चलाने के चरण करें।
उबंटू पर dc-sonar-user-layer के लिए चलाने के चरण करें।
उबंटू पर dc-sonar-workers-layer के लिए चलाने के चरण करें।
विंडोज पर dc-sonar-frontend के लिए चलाने के चरण करें।
विंडोज होस्ट पर ब्राउज़र में https://localhost:8000/admin/ खोलें और स्व-हस्ताक्षरित प्रमाणपत्र से सहमत हों।
विंडोज होस्ट पर ब्राउज़र में https://localhost:4200/ खोलें और बनाए गए Django उपयोगकर्ता के रूप में लॉगिन करें।
| नाम | प्रोटोकॉल | होस्ट IP | होस्ट पोर्ट | गेस्ट IP | गेस्ट पोर्ट |
|---|
| SSH | TCP | 127.0.0.1 | 2222 | 10.0.2.15 | 22 |
| RabbitMQ प्रबंधन कंसोल | TCP | 127.0.0.1 | 15672 | 10.0.2.15 | 15672 |
| Django सर्वर | TCP | 127.0.0.1 | 8000 | 10.0.2.15 | 8000 |
| NTLM स्क्रूटिनाइज़र | TCP | 127.0.0.1 | 5000 | 10.0.2.15 | 5000 |
| PostgreSQL | TCP | 127.0.0.1 | 25432 | 10.0.2.15 | 5432 |