שימוש ב-wpscan על מנת לסרוק אתרי וורדפרס

שימוש בכלי בדיקות המאפשר לנו לקבל דו"ח אבטחה על אתרי וורדפרס
wp scan logo

אזהרה חמורה: המאמר הזה נועד למפתחי ווב אשר מעוניינים ללמוד או להכיר שיטות התקפה בסיסיות על מנת להבין אותן לעומק ולהתמגן בפניהן. המאמר מכיל מידע טכני המיועד למתכנתים ואינו מיועד לקהל הרחב או מלמד חסרי ידע טכני.
המאמר אינו מיועד ללימוד כיצד לפרוץ למחשבים אחרים., כיצד להיות ‘האקר’ או כיצד להיות ‘סייבר-מן’. אני מזכיר לכל הקוראים את חוק המחשבים שגוזר עד שלוש שנות מאסר לכל מי שמבצע חדירה לא מורשית למחשב. כלומר, אפילו ‘סתם’ בדיקה יכולה לסבך אתכם בכתב אישום פלילי. במידה ואתם בכל זאת מעוניינים לעבור על החוק ולהיות האקרים, אל תטרחו לקרוא את המאמר, הכנסו לסרטון הזה במקום.

הם הלכו? אז בואו ונתחיל. במאמר הקודם ראינו איך משתמשים בלינוקס קאלי על דוקר כדי להריץ את sqlmap. היום אנחנו נדבר על wpscan. מדובר בתוכנה חביבה שמסייעת לנו לסרוק התקנות של וורדפרס על מנת לוודא תקינות שלהן. התוכנה יכולה לסייע לנו גם באיתור מהיר של תוספים בעיתיים, תבניות בעייתיות ובעיות נוספות שעלולות להיות לאתר. בנוסף, היא מסוגלת לבצע התקפות PoC על אתרים בהתקפת brute force.

איך מתקינים? אם יש לי image של kali, כפי שהראיתי במאמר הקודם, אני יכול פשוט להתקין באמצעות:

apt-get update && apt-get install wpscan

או ליצור Dockerfile שנראה כך:

FROM kalilinux/kali-linux-docker
MAINTAINER [email protected]

RUN echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" > /etc/apt/sources.list && \
echo "deb-src http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y update && apt-get -y dist-upgrade && apt-get clean

CMD ["/bin/bash"]

RUN apt-get -y update && apt-get -y install sqlmap
RUN apt-get -y update && apt-get -y install wpscan

ההתקנה וההרצה של ה-image נעשית כך:

docker build -t ran-kali-machine .
docker run -t -i ran-kali-machine /bin/bash

אם כל מה שכתבתי לעיל נראה לכם כמו סינית, אנא קראו את המאמר הקודם על קאלי לינוקס ודוקר. שם אני מסביר איך פורסים את קאלי לינוקס מכל מחשב/פלטפורמה באמצעות דוקר. שווה להשקיע את חמשת הדקות האלו כדי להבין איך להריץ קאלי/כל דבר באמצעות דוקר.

אחרי ההתקנה, מיד אחרי שאני נכנס לקונסולה, אני אכתוב:

wpscan

אם הכל תקין, אני אקבל את קובץ ה-README עם הוראות ואת הלוגו של wpscan:

wp scan logo
wp scan logo

ועכשיו אפשר להתחיל בחגיגה. בדיקה בסיסית של אתר נעשית כך:

 wpscan --url https://internet-israel.com

כאשר במקום הכתובת של האתר שלי, שימו את הכתובת של האתר של הבדיקה. אם לאתר יש ולו הגנה בסיסית, תתבקשו להכניס user agent, שזה בעצם דבר שהאתר רוצה ואנו מצמידים ל-header של הבקשות. אם מה שאני מספר פה נשמע כמו ג'יבריש, זה הזמן ללמוד איך HTTP עובד ומה הם headers. בכל מקרה, אפשר להצמיד אחד רנדומלי באופן הזה:

 wpscan --url https://internet-israel.com --random-agent

והנה התוצאה:

[+] URL: https://internet-israel.com/ [+] Started: Thu Dec  7 16:28:11 2017  [+] robots.txt available under: 'https://internet-israel.com/robots.txt' [+] Interesting header: HOST-HEADER: 192fc2e7e50945beb8231a492d6a8024 [+] Interesting header: LINK: <https://internet-israel.com/wp-json/>; rel="https://api.w.org/" [+] Interesting header: SERVER: nginx [+] Interesting header: SET-COOKIE: wpSGCacheBypass=0; expires=Thu, 07-Dec-2017 15:28:14 GMT; Max-Age=0; path=/ [+] Interesting header: SET-COOKIE: wfvt_248426794=5a296c1ebe071; expires=Thu, 07-Dec-2017 16:58:14 GMT; Max-Age=1800; path=/; secure; HttpOnly [+] Interesting header: X-CACHE-ENABLED: True [+] This site has 'Must Use Plugins' (http://codex.wordpress.org/Must_Use_Plugins)  [+] WordPress version 4.9.1 (Released on 2017-11-29) identified from advanced fingerprinting, links opml  [+] Enumerating plugins from passive detection ...  | 3 plugins found:  [+] Name: mailchimp-for-wp  |  Latest version: 4.1.11  |  Last updated: 2017-11-21T10:34:00.000Z  |  Location: https://internet-israel.com/wp-content/plugins/mailchimp-for-wp/  [!] We could not determine a version so all vulnerabilities are printed out  [!] Title: MailChimp for WordPress <= 4.0.10 - Authenticated Cross-Site Scripting (XSS)     Reference: https://wpvulndb.com/vulnerabilities/8695     Reference: https://plugins.trac.wordpress.org/changeset/1550477/mailchimp-for-wp     Reference: https://security.dxw.com/advisories/reflected-xss-in-mailchimp-for-wordpress-could-allow-an-attacker-to-do-almost-anything-an-admin-user-can/ [i] Fixed in: 4.0.11  [+] Name: wp-postratings  |  Latest version: 1.85  |  Last updated: 2017-11-20T08:52:00.000Z  |  Location: https://internet-israel.com/wp-content/plugins/wp-postratings/  [+] Name: all-in-one-seo-pack - v2.4.3  |  Latest version: 2.4.3 (up to date)  |  Last updated: 2017-11-17T17:59:00.000Z  |  Location: https://internet-israel.com/wp-content/plugins/all-in-one-seo-pack/  [+] Finished: Thu Dec  7 16:28:33 2017 [+] Requests Done: 100 [+] Memory used: 89.383 MB [+] Elapsed time: 00:00:21

הרצה מוצלחת תציג לי מידע מעניין על האתר שיכול להיות רלוונטי ובראשו את הגרסה של האתר. הוא גם מציג את התוספים כפי שנתגלו באופן סביל. מה זאת אומרת באופן סביל? זה אומר שהסורק מוצא עקבות שלהם. או באמצעות קבצי JS\CSS שהם מטמיעים, או הערות ב-HTML. אם האתר משתמש בדחיסה/אגרגציה, wpscan יגלה מעט מאוד תוספים באופן סביל. למשל, באתר הזה הוא גילה רק שלושה תוספים. למרות שיש יותר. למה? כי אני אחד מל"ו צדיקים שטרח להשקיע שלוש שניות מהזמן היקר שלו בהתקנת אגרגציה ל-CSS וה-JS באתר. למה? בין היתר בגלל סיבות כאלו.

ניתן לבצע סריקה פעילה שלוקחת ה-ר-ב-ה יותר זמן באמצעות ap כדי לאפשר סריקה יותר עמוקה של תוספים. לא שזה יעזור בהרבה.

אתר כמו אינטרנט ישראל, שהשקעתי בערך 5 דקות באבטחה שלו, יהיה קצת יותר קשה לסריקה. שווה לסרוק אתרים אחרים, חלקם של חברות "מובילות" ברשת כדי לגלות פרצות יותר מעניינות כמו למשל תיקיות wp-includes ו-wp-ontent שניתן לסרוק אותן (וכך לעלות על כל קובץ שגולשים העלו לשם, גם קבצים שאמורים להיות פרטיים למשל).

סריקה של אתר של מומחה לבניית אתרים
סריקה של אתר של מומחה לבניית אתרים

אם מתגלה תוסף שהגרסה שלו לא משודרגת או אתר שהגרסה שלו ישנה, אז התוסף גם מביא, למרבה הנוחות, מידע על הפירצה הזו. ללימוד או לניצול. אני מקווה שאתם מהצד הלומד ולא מהצד הדגנרט הפורץ.

ניתן לבצע כניסה לאתר וורדפרס באמצעות אמולציה של bruteforce. אני לא נכנס להסבר על זה במאמר זה.

שימושים:

בוני אתרים ופרילנסרים בהחלט מוזמנים ויכולים להשתמש ב-wp scan על מנת להבין איך סקריפטים שפורצים לאתרים עובדים. אם אתם מפעילים את wp scan על האתר שלכם והוא לא נותן מידע על התוספים (כי השתמשתם באגרגציה למשל) והגרסאות תקינות ואין אייטמים – סימן שעשיתם עבודה טובה. שימו לב שתנאי הרשיון אוסרים לתמחר בדיקת עם wp scan כחלק משירות שגובים עליו כסף. כך או כך, הפעלה של wp scan פשוטה והבנת העקרונות מאחוריו קלה. גם הדו"ח שהוא מפיק פשוט למדי וניתן גם לשליחה ללקוחות.

אני מזכיר שוב ששימוש במידע המופק לשם חדירה לאתר כלשהו הוא אסור לפי חוק וגם מעצבן. מה שכן, מומלץ בחום להשתמש בו על האתרים שלכם או על אתרים של לקוחות. גיליתם אתר גדול שיש בו חדירות, התריעו בפניו. לא עונה? דברו איתי.

פוסטים נוספים שכדאי לקרוא

יסודות בתכנות

מספרים בינאריים בקוד

איך, ויותר חשוב למה, משתמשים במספרים בינאריים בתכנות? גם בפייתון ובג׳אווהסקריפט?

גלילה לראש העמוד