API (Application Programming Interfaces) disponibili negli script Python
GFI LanGuard presenta quasi tutta l’implementazione predefinita Python (denominato anche CPython, disponibile in http://go.gfi.com/?pageid=pythorg). Attualmente viene utilizzato Python versione 2.5. La maggior parte degli script Python esistenti funziona pertanto con modifiche minime in GFI LanGuard. La modifica più importante è che gli script devono avere una funzione main() che restituisce 1 o 0.
Tutti gli script Python utilizzati dai moduli dello scanner di sicurezza (controlli di vulnerabilità e informazioni sulle applicazioni di sicurezza) dispongono dell’accesso alle variabili globali seguenti:
- ComputerIP
- ComputerName
- LNSSDir
- localProgramFilesPath
- localWindowsPath
- localSystem32Path
- User
- Password
Esempio
ComputerIP = '127.0.0.1'
ComputerName = 'WXPSandbox"
LNSSDir = 'C:\\Program Files\\GFI\\LanGuard\\'
localProgramFilesPath = 'C:\\\Programmi'
localWindowsPath = 'C:\\WINDOWS'
localSystem32Path = 'C:\\WINDOWS\\system32'
User = ''
Password = ''
Utilizzare queste variabili globali per ottenere l’accesso al nome o all’indirizzo IP del computer sottoposto a scansione, ovvero le credenziali necessarie per la connessione al computer sottoposto a scansione.
Le funzioni globali di GFI LanGuard sono disponibili per gli script Python come metodi dell’oggetto GlobalFunctions. I.E:
# Utilizzo delle funzioni globali.
def main():
"""Valori restituiti:
* 0 - false, non riuscito
* 1 - true, riuscito"""
result = 0
# Visualizzazione testo.
GlobalFunctions.echo("Salve!")
# Aggiunge testo specificato al file di registro.
GlobalFunctions.writetolog("Script PythonUn linguaggio di script di programmazione per computer ad alto livello. avviato.")
# Aggiunge testo specificato alla barra di stato.
GlobalFunctions.statusbar("Barra di stato Salve!")
# Aggiunge un nodo secondario con lo stesso nome del secondo parametro alla vulnerabilità corrente.
GlobalFunctions.addlistitem("", "Descrizione vulnerabilità.")
# Modifica la descrizione della vulnerabilità corrente.
GlobalFunctions.setdescription("Elenco degli elementi installati")
GlobalFunctions.writetolog("Script Python terminato.")
result = 1
return(result)
GFI LanGuard fornisce anche l’API client COM per gli script Python in formato pywin32.
Nota
Tutte le librerie di script COM GFI LanGuard sono disponibili tramite win32com.client per gli script Python. Per ulteriori informazioni, fare riferimento a Oggetti scripting.
Esempio
# Ricerca DNSUn database utilizzato dalle reti TCP/IP che consente la traduzione dei nomi host in numeri IP e di fornire altre informazioni relative al dominio. utilizzando l’oggetto LanGuard COM GlbObj.Socket.
def main():
"""Valori restituiti:
* 0 - false, non riuscito
* 1 - true, riuscito"""
result = 0
import win32com.client
socket = win32com.client.Dispatch("GlbObj.Socket.1")
print(socket.DnsLookup('gfi.com'))
result = 1
return(result)
Pywin32
# Salve mondo per pywin32.
def main():
"""Valori restituiti:
* 0 - false, non riuscito
* 1 - true, riuscito"""
result = 0
import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_PhysicalMemory")
for objItem in colItems:
print("Capacità: %s\n" % objItem.Capacity)
result = 1
return(result)
Nota
Per la documentazione aggiuntiva Pywin32, fare riferimento a: