Shodan

במסמך הזה מוסבר איך לשלב את Shodan עם Google SecOps.

‌הגדרת שילוב של Shodan כדי שיפעל עם Google Security Operations

כדי לקבל את מפתח ה-API, צריך לבצע את השלבים הבאים:

  1. נכנסים לחשבון Shodan.

  2. מפתח ה-API מופיע בקטע Account Overview בממשק של Shodan.

הגדרת שילוב של Shodan ב-Google SecOps

הוראות מפורטות להגדרת שילוב ב-Google SecOps מופיעות במאמר הגדרת שילובים.

פעולות

פענוח DNS

תיאור

מחפשים את כתובת ה-IP של רשימת שמות המארחים שצוינה.

פרמטרים

לא רלוונטי

ריצה

הפעולה הזו מופעלת בישות Hostname (שם מארח).

תוצאות הפעולה

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
google.com הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
bing.com הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
{
    "google.com": "1.1.1.1",
    "bing.com": "1.1.1.1"
}

DNS הפוך

תיאור

מחפשים את שמות המארחים שהוגדרו לרשימה הנתונה של כתובות IP.

פרמטרים

לא רלוונטי

ריצה

הפעולה הזו מופעלת על ישות של כתובת IP.

תוצאות הפעולה

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
146.125.10.5 הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
8.8.8.8 הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
{
    "146.125.10.5": null,
    "8.8.8.8": [
        "google-public-dns-a.google.com"
    ]
}

קבלת פרטי API

תיאור

מחזירה מידע על תוכנית ה-API שאליה משויך מפתח ה-API שצוין.

פרמטרים

לא רלוונטי

ריצה

הפעולה הזו מופעלת על כל הישויות.

תוצאות הפעולה

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
{
    "https": false,
    "unlocked": false,
    "unlocked_left": 0,
    "telnet": false,
    "scan_credits": 0,
    "plan": "oss",
    "query_credits": 0
}

קבלת מידע על כתובת IP

תיאור

קבלת כל המידע הזמין על כתובת IP.

פרמטרים

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

ריצה

הפעולה הזו מופעלת על ישות של כתובת IP.

תוצאות הפעולה

העשרה של ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
נתונים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
_shodan הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
id הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
סורק הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
options הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
מודול הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ptr הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
hash הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
opts הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
גולמי הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
isp הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
יציאה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
שמות מארחים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
location הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
עיר הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
country_name הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
region_code הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
area_code הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
dma_code הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
country_code3 הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
postal_code הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
longitude הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
country_code הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
קו רוחב הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
resolver_hostname הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
רקורסיבי הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
resolver_id הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תוכנה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
חותמת זמן הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
דומיינים הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
יח' הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
os הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
asn הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תחבורה הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
ip_str הפונקציה מחזירה את הערך אם הוא קיים בתוצאת ה-JSON
תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
[
    {
        "EntityResult": {
            "data": [
                {
                    "_shodan": {
                        "id": "d670bfbb-4821-4320-969d-0590789ab502",
                        "crawler": "545144fc95e7a7ef13ece5dbceb98ee386b37950",
                        "options": {},
                        "module": "dns-udp",
                        "ptr": true
                    },
                    "hash": -553166942,
                    "opts": {
                        "raw": "34ef818200010000000000000756455253494f4e0442494e440000100003"
                    },
                    "ip": 134744072,
                    "isp": "Google",
                    "data": "nRecursion: enabled",
                    "port": 53,
                    "hostnames": ["google-public-dns-a.google.com"],
                    "location": {
                        "city": null,
                        "region_code": null,
                        "area_code": null,
                        "dma_code": null,
                        "country_code3": "USA",
                        "country_name": "United States",
                        "postal_code": null,
                        "longitude": -97.822,
                        "country_code": "US",
                        "latitude": 37.751000000000005
                    },
                    "dns": {
                        "resolver_hostname": null,
                        "recursive": true,
                        "resolver_id": null,
                        "software": null
                    },
                    "timestamp": "2019-01-29T12:36:09.300695",
                    "domains": ["google.com"],
                    "org": "Google",
                    "os": null,
                    "asn": "AS15169",
                    "transport": "udp",
                    "ip_str": "1.1.1.1"
                }
            ],
            "city": null,
            "region_code": null,
            "tags": [],
            "ip": 134744072,
            "isp": "Google",
            "area_code": null,
            "dma_code": null,
            "last_update": "2019-01-29T12:36:09.300695",
            "country_code3": "USA",
            "country_name": "United States",
            "hostnames": ["google-public-dns-a.google.com"],
            "postal_code": null,
            "longitude": -97.822,
            "country_code": "US",
            "ip_str": "1.1.1.1",
            "latitude": 37.751000000000005,
            "org": "Google",
            "os": null,
            "asn": "AS15169",
            "ports": [53]
        },
        "Entity": "1.1.1.1"
    }
]

פינג

תיאור

מוודאים שלמשתמש יש חיבור ל-Shodan דרך המכשיר שלו.

פרמטרים

לא רלוונטי

ריצה

הפעולה הזו מופעלת על כל הישויות.

תוצאות הפעולה

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_connected נכון/לא נכון is_connected:False
תוצאת JSON
N/A

סריקת רשת

תיאור

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

פרמטרים

לא רלוונטי

ריצה

הפעולה הזו מופעלת על כל הישויות.

תוצאות הפעולה

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
N/A

הפעלת משתמש

תיאור

עדכון מאפיין משתמש – הפעלת משתמש.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
שם משתמש Int לא רלוונטי השם המלא של המשתמש כפי שהוא מופיע ב-CyberArkVault.

ריצה

הפעולה הזו מופעלת על ישות של כתובת IP.

תוצאות הפעולה

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
success_scan נכון/לא נכון success_scan:False
תוצאת JSON
N/A

תיאור

חיפוש במסד הנתונים של Shodan.

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
שאילתת חיפוש 0 לא רלוונטי שאילתת חיפוש; תחביר זהה לזה של האתר. לדוגמה: חיפוש שרתי אינטרנט של Apache שנמצאים בגרמניה(apache country:'DE', city:'Berlin').
מאפיינים 0 לא רלוונטי רשימה מופרדת בפסיקים של נכסים שרוצים לקבל עליהם מידע סיכום. שמות המאפיינים יכולים להיות גם בפורמט property:count. (כלומר, country:100, city:5). מידע נוסף זמין בכתובת https://developer.shodan.io/api.
הגדרת הקטנה 1 FALSE האם לכווץ את הבאנר ולהחזיר רק את הנתונים החשובים.

ריצה

הפעולה הזו מופעלת על כל הישויות.

תוצאות הפעולה

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
{
    "matches": [
        {
            "timestamp": "2014-01-15T05: 49: 56.283713",
            "isp": "Vivacom",
            "data": "@PJL INFO STATUS CODE=35078 DISPLAY=Power Saver ONLINE=TRUE",
            "port": 9100,
            "hostnames": [],
            "location": {
                "city": null,
                "region_code": null,
                "area_code": null,
                "longitude": 25,
                "country_code3": "BGR",
                "country_name": "Bulgaria",
                "postal_code": null,
                "dma_code": null,
                "country_code": "BG",
                "latitude": 43
            },
            "ip": 3579573318,
            "domains": [],
            "org": "Vivacom",
            "os": null,
            "asn": "AS8866",
            "ip_str": "1.1.1.1"
        }
    ],
    "facets": {
        "org": [
            {
                "count": 107,
                "value": "UniversityofMinnesota"
            }
        ]
    },
    "total": 12039
}

חיפוש פרצות אבטחה

תיאור

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

פרמטרים

פרמטר סוג ערך ברירת המחדל תיאור
שאילתת חיפוש String לא רלוונטי שאילתת החיפוש שמשמשת לחיפוש במסד הנתונים של פרצות אבטחה ידועות.
מאפיינים String לא רלוונטי רשימה מופרדת בפסיקים של נכסים שרוצים לקבל עליהם מידע סיכום. (כלומר, יציאה, מקור, מחבר). מידע נוסף זמין בכתובת https://developer.shodan.io/api.
דף String לא רלוונטי מספר הדף שרוצים להציג מתוך התוצאות, 100 בכל פעם.

ריצה

הפעולה הזו מופעלת על כל הישויות.

תוצאות הפעולה

העשרה של ישויות

לא רלוונטי

תובנות

לא רלוונטי

תוצאת סקריפט
שם תוצאת התסריט אפשרויות ערך דוגמה
is_success נכון/לא נכון is_success:False
תוצאת JSON
{
    "matches": [
        {
            "cve": "CVE-2011-2064",
            "description": "Cisco IOS 12.4MDA before 12.4(24)MDA5 on the Cisco Content Services Gateway - Second Generation (CSG2) allows remote attackers to cause a denial of service (device reload) via crafted ICMP packets, aka Bug ID CSCtl79577.",
            "osvdb": [73657],
            "bid": [48581],
            "source": "CVE",
            "_id": "2011-2064",
            "msb": []}],
    "facets": {
        "type": [
            {
                "count": 1,
                "value": "remote"
            }
        ]
    },
    "total": 4
}

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.