🔌
Port skanlash (nmap)
Ochiq portlarni aniqlash
1
Maqsad
ochiq portlarni aniqlashServerda qaysi xizmatlar ochiqligini bilmasak — zaiflikni topolmaymiz. Port skanlash — birinchi qadam.
2
Tushuntirish
portlarning ma'nosi| Port | Xizmat | Nima tekshiriladi |
|---|---|---|
| 21, 22, 23 | FTP, SSH, Telnet | Kuchsiz parol, eski versiya |
| 25, 587 | SMTP | Open relay, spamma uchun |
| 80, 443 | HTTP(S) | Sayt, header, zaif versiya |
| 3306, 5432 | MySQL, PostgreSQL | Internetda ochiq bo'lsa — xato |
| 6379 | Redis | Parolsiz = to'liq nazorat |
| 27017 | MongoDB | Autentifikatsiya bormi |
| 9200 | Elasticsearch | Ochiq klaster |
| 8080, 8000, 5000 | Dev serverlar | Maxfiy xizmatlar |
3
Qanday aniqlanadi
boshqaruv portlari# 1) o'z serveringizda ochiq portlar (info) ss -tulpn | head -20 netstat -tulpn 2>/dev/null | head -20 # 2) skanerlashni boshlash nmap -sT -p- --min-rate 5000 site.uz # barcha portlar (TCP) nmap -sV -sC -p 80,443,22 site.uz # mashhur portlar + skriptlar
4
Buyruqlar
nmap# 1) ENG KO'P ISHLATILADIGAN — boshlang'ich skan nmap -sV -sC -O --top-ports 1000 site.uz # 2) barcha portlar (to'liq, biroz sekin) nmap -sV -p- --min-rate 10000 site.uz # --min-rate = qanchalik tez (serverni bosmay qo'yish uchun past) # 3) 3 ta qulay skan nmap -sn 10.0.0.0/24 # ping sweep (kim bor) nmap -sS -T4 -p- site.uz # to'liq SYN (root kerak) nmap -sV -Pn -p 1-10000 site.uz # past portlar # 4) UDP (sekin, lekin ba'zi xizmatlar faqat UDP) nmap -sU --top-ports 50 --min-rate 500 site.uz # 5) aniq xizmatlar nmap -sV -p 22,80,443,3306,5432,6379,27017,9200 site.uz # 6) skriptlar bilan (avtomatik zaiflik tekshiruvi) nmap -sV --script=http-title,http-headers site.uz nmap -sV --script=vulners,vuln site.uz # CVE qidirish nmap -p 6379 --script redis-info site.uz nmap -p 3306 --script mysql-info site.uz nmap -p 27017 --script mongodb-info site.uz # 7) chegara (firewall) aniqlash nmap -sS -p 1-1000 --traceroute site.uz nmap -sA site.uz # ACK — filtrlash aniqlanadi # 8) tarmoq (barcha IP lar) nmap -sn 10.0.0.0/24 | grep -oE "10\.0\.0\.[0-9]+" | while read IP; do nmap -sV -p- $IP done # 9) masspeed (kurumsal daraja) masscan -p1-65535 --open site.uz # juda tez, keyin nmap bilan tasdiqlang
5
Natija
✓ MUvaffaqiyat — hujum ISHLADI
| Server javobi | Nima degani |
|---|---|
`3306/tcp open mysql` — IP da | **DB ochiq — jiddiy** |
`6379/tcp open redis` (auth yo'q) | **Redis ochiq = to'liq nazorat** |
`8080/tcp open http-proxy` | **Maxfiy dev server** |
`22/tcp open ssh OpenSSH_7.4` | **Eski versiya — yangilang** |
`23/tcp open telnet` | **Ochiq login — darhol yoping** |
✗ Rad etish — hujum ISHLAMADI
| Server javobi | Nima degani |
|---|---|
Faqat 80, 443, 22 ochiq | **Normal holat** |
`filtered` — firewall bor | **Yaxshi** |
DB portlari `closed` | **To'g'ri** — ichkarida |
6
Zararni yopish
1. Keraksiz portlarni yopish
# qaysi xizmatlar kerak? sudo ss -tulpn # faqat kerakli bo'lsin sudo systemctl stop telnet # DB faqat lokal (127.0.0.1) bilan bind-address = 127.0.0.1 # MySQL redis-server --bind 127.0.0.1 requirepass YANGIZ_PAROL # firewall (faqat kerakli portlar) sudo ufw default deny incoming sudo ufw allow 22/tcp 80/tcp 443/tcp sudo ufw enable
2. Autentifikatsiya
// Redis requirepass uzun-tasodifiy-parol // MongoDB security.authorization: enabled // SSH PasswordAuthentication yes PermitRootLogin no # ← MUHIM
3. Versiya yashirish
// banner o'zgartirish — nmapni biroz chalg'itadi TCPBanner / ServiceInfo uzun-nomi # /etc/banner // lekin bu ASOSIY himoya emas — yangilash asosiy
4. Monitoring
sudo ufw status verbose
nmap -sV -p- site.uz | diff old.txt new.txt # oylik
7
Tekshirish ro'yxati
- DB (3306, 5432, 27017) faqat lokal
- Redis/Mongo autentifikatsiya bilan
- Telnet o'chirilgan, SSH root'ga o'chiq
- Firewall faqat 22/80/443 ochiq
- Kerakli portlar ko'rib chiqilgan (ro'yxat bilan)
- Oylik port skan farqi kuzatiladi
- `nmap -p-` bilan tekshirildi