🔐 **Nuclei: اسکنر آسیبپذیری که باید بشناسی**
یک ابزار، هزاران Template، میلیونها آسیبپذیری کشفشده. اگه هنوز دستی دنبال باگ میگردی، وقتشه آپگرید کنی.
**Nuclei** یه اسکنر متنباز از تیم ProjectDiscovery هست که با Template-های YAML کار میکنه. برخلاف اسکنرهای سنگین، سریع، سبک و قابلشخصیسازیه. میتونی برای CVEهای جدید، Misconfig، Exposed Panels و حتی Fuzzing ازش استفاده کنی.
قدرت اصلی Nuclei توی جامعهشه. بیش از ۸۰۰۰ تمپلیت آماده داره که مدام آپدیت میشن. یه CVE جدید میاد؟ معمولاً ظرف ۲۴ ساعت تمپلیتش آمادهست. این یعنی همیشه یه قدم جلوتری.
نکته کلیدی: Nuclei رو با ابزارهای دیگه مثل subfinder و httpx ترکیب کن. یه پایپلاین Recon بساز که خودکار سابدامین پیدا کنه، فیلتر کنه و اسکن بزنه.
💻 **مثال عملی:**
```bash
# نصب سریع
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# اسکن با تمپلیتهای CVE روی لیست تارگت
nuclei -l targets.txt -t cves/ -severity critical,high -o results.txt
# ترکیب با httpx برای اسکن زنده
cat subdomains.txt | httpx -silent | nuclei -t exposures/ -t misconfigurations/
```
🔗 **ابزار/منبع:** github.com/projectdiscovery/nuclei
#SecurityTools #ابزار_امنیتی #Nuclei #BugBounty
@codacker_ir
―――――――――――――――――
🎓 مسترکلاس یادگیری هک از صفر تا حرفهای
🔗 codacker.ir/product/hs-masterclass
یک ابزار، هزاران Template، میلیونها آسیبپذیری کشفشده. اگه هنوز دستی دنبال باگ میگردی، وقتشه آپگرید کنی.
**Nuclei** یه اسکنر متنباز از تیم ProjectDiscovery هست که با Template-های YAML کار میکنه. برخلاف اسکنرهای سنگین، سریع، سبک و قابلشخصیسازیه. میتونی برای CVEهای جدید، Misconfig، Exposed Panels و حتی Fuzzing ازش استفاده کنی.
قدرت اصلی Nuclei توی جامعهشه. بیش از ۸۰۰۰ تمپلیت آماده داره که مدام آپدیت میشن. یه CVE جدید میاد؟ معمولاً ظرف ۲۴ ساعت تمپلیتش آمادهست. این یعنی همیشه یه قدم جلوتری.
نکته کلیدی: Nuclei رو با ابزارهای دیگه مثل subfinder و httpx ترکیب کن. یه پایپلاین Recon بساز که خودکار سابدامین پیدا کنه، فیلتر کنه و اسکن بزنه.
💻 **مثال عملی:**
```bash
# نصب سریع
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# اسکن با تمپلیتهای CVE روی لیست تارگت
nuclei -l targets.txt -t cves/ -severity critical,high -o results.txt
# ترکیب با httpx برای اسکن زنده
cat subdomains.txt | httpx -silent | nuclei -t exposures/ -t misconfigurations/
```
🔗 **ابزار/منبع:** github.com/projectdiscovery/nuclei
#SecurityTools #ابزار_امنیتی #Nuclei #BugBounty
@codacker_ir
―――――――――――――――――
🎓 مسترکلاس یادگیری هک از صفر تا حرفهای
🔗 codacker.ir/product/hs-masterclass
GitHub
GitHub - projectdiscovery/nuclei: Nuclei is a fast, customizable vulnerability scanner powered by the global security community…
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the ...
❤11
وقتی CVE داغه ولی nuclide template نداره
CVE-2024-XXXX یه ساعت پیش منتشر شده. توییتر پره از PoC، ولی تو nuclei هنوز هیچ template ای براش نیست. تا فردا که community یکی بنویسه، صد نفر دیگه قبل از تو زدنش. اینجا دقیقاً جاییه که اکثرا منتظر میمونن — تو نباید بمونی.
اول PoC رو باز کن و دقیق ببین درخواست چیه: کدوم endpoint، کدوم پارامتر، و response موفق چه شکلیه. مثلاً یه LFI ساده روی یه پلاگین وردپرس معمولاً یه GET با path traversal میزنه و تو response دنبال یه رشتهی خاص مثل root:x:0:0 میگرده. این دقیقاً چیزیه که باید تبدیلش کنی به matcher.
نکتهای که اکثرا نادیده میگیرن: matcher رو خیلی generic ننویس. اگه فقط دنبال status code 200 باشی، false positive میاد بارونی. همیشه یه condition ترکیبی بذار — هم status، هم یه word خاص که فقط تو حالت آسیبپذیر پیدا میشه. همین چند خط، وقتی درست تست بشه، میتونه ساعتها قبل از هرکس دیگهای روی هزاران target اجرا بشه.
#Nuclei
@codacker_ir
هک یه ابزار نیست. یه طرز فکره.
CVE-2024-XXXX یه ساعت پیش منتشر شده. توییتر پره از PoC، ولی تو nuclei هنوز هیچ template ای براش نیست. تا فردا که community یکی بنویسه، صد نفر دیگه قبل از تو زدنش. اینجا دقیقاً جاییه که اکثرا منتظر میمونن — تو نباید بمونی.
اول PoC رو باز کن و دقیق ببین درخواست چیه: کدوم endpoint، کدوم پارامتر، و response موفق چه شکلیه. مثلاً یه LFI ساده روی یه پلاگین وردپرس معمولاً یه GET با path traversal میزنه و تو response دنبال یه رشتهی خاص مثل root:x:0:0 میگرده. این دقیقاً چیزیه که باید تبدیلش کنی به matcher.
id: CVE-2024-XXXX
info:
name: Plugin LFI
severity: high
http:
- method: GET
path:
- "{{BaseURL}}/wp-content/plugins/xyz/file.php?path=../../../../etc/passwd"
matchers:
- type: word
words:
- "root:x:0:0"
نکتهای که اکثرا نادیده میگیرن: matcher رو خیلی generic ننویس. اگه فقط دنبال status code 200 باشی، false positive میاد بارونی. همیشه یه condition ترکیبی بذار — هم status، هم یه word خاص که فقط تو حالت آسیبپذیر پیدا میشه. همین چند خط، وقتی درست تست بشه، میتونه ساعتها قبل از هرکس دیگهای روی هزاران target اجرا بشه.
#Nuclei
@codacker_ir
هک یه ابزار نیست. یه طرز فکره.
❤1
یه اسکن با ۲۰۰ تا Critical که هیچکدوم واقعی نبودن
یه بار روی یه دامنه nuclei رو با کل templateهای exposures زدم، خروجی شد ۲۰۰ تا "vulnerable". رفتم سراغ گزارشنویسی، فهمیدم ۱۹۰ تاش رو یه صفحه ۲۰۰ برگردونده بوده که توش کلمهی «error» یا «config» بوده — نه یه اکسپوژر واقعی. کل وقتم رفت رو باطل کردن یه چیزی که خودم باعثش شده بودم.
مشکل از matcher بود، نه از تارگت. وقتی فقط status: 200 رو چک میکنی یا با یه word ساده مثل "admin" match میگیری، هر صفحهای که این کلمه رو تو HTML یا حتی تو یه کامنت داشته باشه، برات مثبت میشه. اینجاست که اکثرا اشتباه میکنن: فکر میکنن matcher یعنی «یه نشونه پیدا کن»، در حالی که matcher یعنی «شرایطی بساز که فقط حالت واقعی توش صدق کنه».
راهحل: از matchers-condition: and استفاده کن و چند تا شرط رو ترکیب کن — نه فقط status code، بلکه status و body و حتی negative matcher برای رد کردن false positive های شناختهشده:
هر خط اضافهای که به matcher میزنی، یعنی یه false positive کمتر تو گزارش نهاییت. قبل از اجرای اسکن بزرگ، یه بار روی ۲-۳ تا تارگت شناختهشده تست کن که matcher دقیقاً همون چیزی رو میگیره که فکر میکنی، نه هر چیزی که شبیهشه.
#Nuclei
@codacker_ir
هک به ابزار نیست. به طرز فکره.
یه بار روی یه دامنه nuclei رو با کل templateهای exposures زدم، خروجی شد ۲۰۰ تا "vulnerable". رفتم سراغ گزارشنویسی، فهمیدم ۱۹۰ تاش رو یه صفحه ۲۰۰ برگردونده بوده که توش کلمهی «error» یا «config» بوده — نه یه اکسپوژر واقعی. کل وقتم رفت رو باطل کردن یه چیزی که خودم باعثش شده بودم.
مشکل از matcher بود، نه از تارگت. وقتی فقط status: 200 رو چک میکنی یا با یه word ساده مثل "admin" match میگیری، هر صفحهای که این کلمه رو تو HTML یا حتی تو یه کامنت داشته باشه، برات مثبت میشه. اینجاست که اکثرا اشتباه میکنن: فکر میکنن matcher یعنی «یه نشونه پیدا کن»، در حالی که matcher یعنی «شرایطی بساز که فقط حالت واقعی توش صدق کنه».
راهحل: از matchers-condition: and استفاده کن و چند تا شرط رو ترکیب کن — نه فقط status code، بلکه status و body و حتی negative matcher برای رد کردن false positive های شناختهشده:
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "X-Powered-By: Express"
part: header
- type: word
negative: true
words:
- "404 Not Found"
- "page not found"
part: body
هر خط اضافهای که به matcher میزنی، یعنی یه false positive کمتر تو گزارش نهاییت. قبل از اجرای اسکن بزرگ، یه بار روی ۲-۳ تا تارگت شناختهشده تست کن که matcher دقیقاً همون چیزی رو میگیره که فکر میکنی، نه هر چیزی که شبیهشه.
#Nuclei
@codacker_ir
هک به ابزار نیست. به طرز فکره.
❤2