Shodan
במסמך הזה מוסבר איך לשלב את Shodan עם Google SecOps.
הגדרת שילוב של Shodan כדי שיפעל עם Google Security Operations
כדי לקבל את מפתח ה-API, צריך לבצע את השלבים הבאים:
נכנסים לחשבון Shodan.
מפתח ה-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.