שילוב של Nmap עם Google SecOps
במאמר הזה מוסבר איך לשלב את Nmap עם Google Security Operations.
פרמטרים של שילוב
השילוב עם Nmap לא דורש פרמטרים.
פעולות
מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות שממתינות לאישור ב-Your Workdesk ואיך מבצעים פעולה ידנית.
פינג
משתמשים בפעולה Ping כדי לבדוק את הקישוריות ל-Nmap.
הפעולה הזו לא מופעלת על ישויות ב-Google SecOps.
הוספת נתונים לפעולה
אין.
פלט של פעולות
הפעולה Ping מספקת את הפלטים הבאים:
| סוג הפלט של הפעולה | זמינות |
|---|---|
| קיר המארז | לא זמין |
| קישור לקיר של הפנייה | לא זמין |
| טבלת קיר עם תושבת | לא זמין |
| טבלת העשרה | לא זמין |
| תוצאה בפורמט JSON | לא זמין |
| הודעות פלט | יש גישה |
| תוצאת סקריפט | יש גישה |
הודעות פלט
הפעולה Ping יכולה להחזיר את הודעות הפלט הבאות:
| הודעת פלט | תיאור ההודעה |
|---|---|
|
הפעולה הסתיימה בהצלחה. |
Failed to connect to the Nmap server!
Error is ERROR_REASON |
הפעולה נכשלה. צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה. |
תוצאת סקריפט
בטבלה הבאה מפורט הערך של פלט תוצאת הסקריפט כשמשתמשים בפעולה Ping:
| שם התוצאה של הסקריפט | ערך |
|---|---|
is_success |
True או False |
סריקת ישויות
משתמשים בפעולה Scan Entities כדי לסרוק ישויות של Google SecOps באמצעות Nmap.
הפעולה הזו מופעלת בישויות הבאות של Google SecOps:
IP AddressHostnameDomain
הוספת נתונים לפעולה
הפעולה Scan Entities (סריקת ישויות) דורשת את הפרמטרים הבאים:
| פרמטר | תיאור |
|---|---|
IP Address |
זה שינוי אופציונלי. כתובות ה-IP לסריקה. כתובות ה-IP האלה מעובדות לצד ישויות. |
Hostname |
זה שינוי אופציונלי. שמות המארחים לסריקה. שמות המארחים האלה מעובדים לצד ישויות. |
Options |
חובה. מציינים את פרמטרים של סריקת Nmap. ערך ברירת המחדל הוא האפשרויות האלה מפעילות סריקת חיבור TCP ( |
פלט של פעולות
הפעולה Scan Entities מספקת את התוצאות הבאות:
| סוג הפלט של הפעולה | זמינות |
|---|---|
| קיר המארז | לא זמין |
| קישור לקיר של הפנייה | לא זמין |
| טבלת קיר עם תושבת | לא זמין |
| טבלת העשרה | יש גישה |
| תוצאה בפורמט JSON | יש גישה |
| הודעות פלט | יש גישה |
| תוצאת סקריפט | יש גישה |
טבלת העשרה של ישויות
הפעולה סריקת ישויות תומכת בהעשרת הישויות הבאה:
| שדה העשרה | מקור (מפתח JSON) | לוגיקה |
|---|---|---|
NMAP_state |
status_state |
כשהאפשרות זמינה |
NMAP_related_addresses_{addrtype} |
לכל addrtype, צריך לספק רשימה מופרדת בפסיקים של ערכי {addr}. |
כשהאפשרות זמינה |
NMAP_related_hostnames |
hostnames.name |
כשהאפשרות זמינה |
NMAP_port_{ports.portid} |
הערך הזה יוצר באופן דינמי שדה לכל יציאה שזוהתה, ומציג את המצב שלה (למשל, פתוחה, סגורה) ואת השירות שפועל בה. |
כשהאפשרות זמינה |
NMAP_os_matches |
קובץ CSV של {os.osmatches.name} |
כשהאפשרות זמינה |
NMAP_last_boot |
{uptime.lastboot} |
כשהאפשרות זמינה |
תוצאה בפורמט JSON
בדוגמה הבאה מוצג פלט של תוצאת JSON שהתקבל באמצעות הפעולה Scan Entities:
[
{
"Entity": "50.116.62.192",
"EntityResult": {
"status": {
"state": "up",
"reason": "syn-ack",
"reason_ttl": "0"
},
"addresses": [
{
"addr": "50.116.62.192",
"addrtype": "ipv4"
}
],
"hostnames": [
{
"name": "k3s-agent1.hegedus.wtf",
"type": "PTR"
}
],
"ports": {
"extraports": [
{
"state": "closed",
"count": "996",
"reasons": [
{
"reason": "conn-refused",
"count": "996"
}
]
}
],
"ports": [
{
"protocol": "tcp",
"portid": "80",
"status": {state.state},
"service_name": {service.name},
"state": {
"state": "open",
"reason": "syn-ack",
"reason_ttl": "0"
},
"service": {
"name": "http",
"servicefp": "SF-Por\r\\n400\\x20Bad\\x20Request\");",
"method": "table",
"conf": "3"
}
},
{
"protocol": "tcp",
"portid": "443",
"state": {
"state": "open",
"reason": "syn-ack",
"reason_ttl": "0"
},
"service": {
"name": "https",
"servicefp":
"SF-Port443-TCP:V=6.40%I=7%D=5/23%Time=68305D69%P=x86_64-redhat-linux-gnu%r(HTTPOptions,B0,\"HTTP/1\\.0\\x20404\\x20Not\\x20Found\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nX-Content-Type-Options:\\x20nosniff\\r\\nDate:\\x20Fri,\\x2023\\x20May\\x202025\\x2011:35:05\\x20GMT\\r\\nContent-Length:\\x2019\\r\\n\\r\\n404\\x20page\\x20not\\x20found\\n\")%r(SSLSessionReq,7,\"\\x15\\x03\\x01\\0\\x02\\x02F\")%r(SSLv23SessionReq,7,\"\\x15\\x03\\x01\\0\\x02\\x02F\")%r(GenericLines,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(GetRequest,B0,\"HTTP/1\\.0\\x20404\\x20Not\\x20Found\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nX-Content-Type-Options:\\x20nosniff\\r\\nDate:\\x20Fri,\\x2023\\x20May\\x202025\\x2011:35:16\\x20GMT\\r\\nContent-Length:\\x2019\\r\\n\\r\\n404\\x20page\\x20not\\x20found\\n\")%r(RTSPRequest,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(RPCCheck,7,\"\\x15\\x03\\x01\\0\\x02\\x02F\")%r(Help,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(Kerberos,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(FourOhFourRequest,B0,\"HTTP/1\\.0\\x20404\\x20Not\\x20Found\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nX-Content-Type-Options:\\x20nosniff\\r\\nDate:\\x20Fri,\\x2023\\x20May\\x202025\\x2011:35:32\\x20GMT\\r\\nContent-Length:\\x2019\\r\\n\\r\\n404\\x20page\\x20not\\x20found\\n\")%r(LPDString,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(SIPOptions,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x
20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\");",
"method": "table",
"conf": "3"
}
},
{
"protocol": "tcp",
"portid": "2222",
"state": {
"state": "open",
"reason": "syn-ack",
"reason_ttl": "0"
},
"service": {
"name": "ssh",
"product": "OpenSSH",
"version": "8.4p1 Debian 5",
"extrainfo": "protocol 2.0",
"ostype": "Linux",
"method": "probed",
"conf": "10",
"cpes": [
"cpe:/a:openbsd:openssh:8.4p1",
"cpe:/o:linux:linux_kernel"
]
}
},
{
"protocol": "tcp",
"portid": "9100",
"state": {
"state": "open",
"reason": "syn-ack",
"reason_ttl": "0"
},
"service": {
"name": "jetdirect",
"method": "table",
"conf": "3"
}
}
]
}
}
}
]
הודעות פלט
הפעולה Scan Entities יכולה להחזיר את הודעות הפלט הבאות:
| הודעת פלט | תיאור ההודעה |
|---|---|
|
הפעולה הסתיימה בהצלחה. |
Error executing action "Scan Entities". Reason:
ERROR_REASON |
הפעולה נכשלה. צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה. |
תוצאת סקריפט
בטבלה הבאה מפורט הערך של פלט התוצאה של הסקריפט כשמשתמשים בפעולה Scan Entities:
| שם התוצאה של הסקריפט | ערך |
|---|---|
is_success |
True או False |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.