8 C
Firenze
venerdì, Novembre 6, 2026
Home Blog Page 4843

Modificare la Script Mapping di un Estensione a Tutti i Siti web su IIS

E’ possibile che per qualche necessità si debba “rimappare” un estensione (es .php) a tutti i siti web presenti su IIS.
Per fare questo si può utilizzare un VBS ( scriptmap.vbs ) scaricabile QUI > Aggiunge uno Script Mapping

La sintassi di funzionamento è la seguente :
(supponiamo che il nostro sito web abbia ID 17120 )

RIMUOVE L’ESTENSIONE > cscript scriptmap.vbs -n 17120 -d .php

ASSEGNA L’ESTENSIONE > scriptmap.vbs -n 17120 -a .php,C:\PHP5.1.1\php-cgi.exe,0,HEAD,POST,TRACE,DEBUG,GET

il parametro -D rimuove, mentro quello -A aggiunge la “riga” che appare dopo.

Ovviamente in caso di molti siti web bisogna prima RIMUOVERE TUTTO :
cscript scriptmap.vbs -n 17120 -d .php
cscript scriptmap.vbs -n 17121 -d .php
cscript scriptmap.vbs -n 17122 -d .php
….
e poi RI-ASSEGNARE TUTTO :
scriptmap.vbs -n 17120 -a .php,C:\PHP5.1.1\php-cgi.exe,0,HEAD,POST,TRACE,DEBUG,GET
scriptmap.vbs -n 17121 -a .php,C:\PHP5.1.1\php-cgi.exe,0,HEAD,POST,TRACE,DEBUG,GET
scriptmap.vbs -n 17122 -a .php,C:\PHP5.1.1\php-cgi.exe,0,HEAD,POST,TRACE,DEBUG,GET

e si può ben capire che per farlo….servono tutti gli ID dei siti contenuti sul server.
Questo TOOLS : Rileva Tutti gli ID
esegue un ciclo che rileva tutti gli ID e li mette in un file di TESTO

IIS Admin Service error code -2145318902

0

In caso di ricezione di questo errore :

Windows could not start the IIS Admin Service on Local Computer. For more information, review the System Event Log. If this is a nin-microsoft service, contact the service vendor, and refer to service-specific error code -2145318902.

error code -2145318902

è necessario fare attenzione al file del Metabase.xml perchè, al 90% dei casi, il file è stato corrotto.
Non è possibile “trasportare” questo file da un server all’altro e, per mia esperienza, non è possibile effettuare un “edit” manuale del file (magari facendo grandi replace, ecc.).
Se si riceve questo errore, la soluzione più immediata è recuperare un BACKUP di Metabase.xml

Se non si dispone di un backup di Metabase.xml …. potrebbe essere un bel problema.
Si può “tentare” di ripulire manualmente il file corrotto (es. Screenshot) ma non è detto di risolvere il problema.

Image1

Per trovare gli “errori” è necessario fare riferimento al registro di sistema :

Registro Eventi

 

 

Scheduled task 0x80090016 Keyset does not exist

0

Su scheduled TASK (di Windows Xp o Windows 2003) è possibile ricevere questo messaggio di errore :

“General page initialization failed. The specific error is 0x80090016: Keyset does not exist…An error has occurred attempting to retrieve task information. You may continue editing the task object, but will be unable to change task account information.”

0x80090016 Keyset does not exist

 

Per risolvere il problema, procedere a questo modo :

Passo 1:
Controllare il Servizio Protected Storage e verificare che lo stato sia AVVIATO.
1. Fare clic su Start.
2. Scegliere Esegui.
3. Nella casella Esegui, digitare services.msc.
4. Fare clic su OK.
5. Trova il servizio Archiviazione protetta (Protected Storage) , e fare clic destro per selezionarlo.
6. Selezionare Proprietà.
7. Nell’elenco Tipo di avvio, selezionare Automatico.
8. Verificare lo stato del servizio (che sia avviato!)
9. Fare clic su OK.

Passo 2:

Eliminare 1 file in modalità provvisoria
1. Riavviare il computer.
2. Tenere premuto il tasto F8 fino a quando il di Windows viene visualizzato il menu di avvio.
3. Scegliere Modalità provvisoria, quindi premere Invio.
4. Avviare il computer in modalità provvisoria.
5. Fare doppio clic su Risorse del computer e quindi scegliere Opzioni cartella dal menu Strumenti.
6. Nella scheda Visualizza, selezionare Visualizza cartelle e file nascosti, quindi fare clic su OK.
7. Eliminare tutti i file nella cartella “C: Documents and Settings All Users Dati applicazioni Microsoft Crypto RSA S-1-5-18”.
Nella Cartella c’era solo un FILE
8. Riavviare il computer e quindi eseguire il task scheduler.
9. . Immettere nuovamente la password per l’utente che esegue ogni lavoro
(“clic destro” -> Esegui ora esegue il lavoro e ora gestito anche come pianificato.)

NOTA : ammetto che sono riuscito a fare questo Passo2 anche in MODALITA’ normale (non provvisoria)

Attivare (da soli) gli Errori Dettagliati per ASP Classic su Windows 2008

0

Se in fase di programmazione riscontriamo un errore (Asp Classic) e il Server Windows 2008 non è impostato per una visualizzazione dettagliata, otterremo semplicemente questo errore:

Errore Server 2008 Asp

Se abbiamo disponibilità di mettere mano alla consolle di IIS, possiamo MODIFICARE la gestione personalizzata dell’errore come descritto qui:

https://iis-7.winserver.it/2013/08/07/gestione-di-pagine-di-errore-personalizzate-e-messaggi-di-errore-in-iis-7-0/

ma se non abbiamo modo di intervenire sul server e abbiamo solo un collegamento FTP…..come fare?
E’ sufficiente scrivere un file di nome web.config con la seguente sintassi:

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
<system.webServer>
<httpErrors errorMode=”Detailed” />
</system.webServer>
</configuration>

 

Mettere in sicurezza PHP per i Web Server Windows

E’ importante mettere in sicurezza PHP (php.ini) su Web Server Windows.

Le funzionalità di PHP potrebbero divenire anche un potenziale rischio di sicurezza perché i dati sono ricevuti ed elaborati da ovunque su Internet. Gli aggressori possono tentare di inviare script dannosi che verrebbero eseguiti sul server. Gli aggressori possono anche tentare di leggere e scrivere file sul server per prendere il controllo del sito Web e usarlo per i propri scopi.

È possibile configurare le impostazioni PHP per rafforzare la sicurezza e proteggere il sito da attacchi. Il file php.ini specifica le impostazioni di configurazione e determina quali sono gli script PHP consentiti, le cose da “fare” e ciò che per lo script è vietato fare. 

allow_url_fopen = Off
allow_url_include = Off
Disabilitare URL remoti (che possono provocare vulnerabilità di iniezione di codice) per le funzioni di gestione dei file.
Questa impostazione è molto importante perché impedisce che un URL venga utilizzato in sintassi come include (). Impostazione allow_url_fopen “Off” significa che solo i file che risiedono all’interno del sito Web possono essere inclusi, non è possibile includere un file da un server diverso. (In un attacco RFI, qualcuno incorpora un URL in una richiesta HTTP sperando che lo script sia ingannato in esecuzione) Un comando come include (“https://website.com/page.php”), per esempio, non potrà essere eseguito

register_globals = Off
Disattivare register_globals.

open_basedir = “c:inetpub”
Limitare dove i processi PHP possono leggere e scrivere su un file system.

safe_mode = Off
safe_mode_gid = Off
Attivare la modalità safe_mode.
Questa impostazione non è nel file “consigliato Php.ini”. Limita le autorizzazioni con le quali alcuni script PHP vengono eseguiti. Alcuni script di terze parti non funzionano correttamente quando safe_mode è impostato su “On”, quindi alcuni clienti vi romperanno le…..Con PHP 6 safe_mode non esisterà.

max_execution_time = 30
max_input_time = 60
Limitare il tempo di esecuzione dello script.

memory_limit = 16M
upload_max_filesize = 2M
post_max_size = 8M
max_input_nesting_levels = 64
Limitare l’utilizzo della memoria e le dimensioni dei file.

display_errors = Off
log_errors = On
error_log = “C: percorso del vostra scelta”
Configurare messaggi di errore e la registrazione.
Queste impostazioni specificano che tutti gli errori e gli avvisi vengono registrati nel file di testo e specificano che non saranno mostrati. Gli errori non dovrebbero essere visualizzati pubblicamente, perché possono aiutare a capire come attaccare il vostro server. Controllare sempre il registro di errore (o il file di LOG) quando si sta testando un nuovo codice.

disable_functions=exec,passthru,shell_exec,system,proc_open,popen
oppure (più cattiva!) disable_functions =exec,passthru,shell_exec,system,proc_open, popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
personalmente consiglio di BLOCCARE anche questo tipo di comandi.

Barra di Avvio Classica anche su Windows 8

0

Ripristinare il pulsante Start in Windows 8Siete passati a Windows 8 ma sentite la mancanza del vecchio “START MENU” ?
Personalmente consiglio “Classic SHELL”. ( http://www.classicshell.net/ ) è un’utility a dir poco fantastica che non solo ripristina il vecchio Start Button (addio interfaccia metro…almeno per me!!) ma permette anche di impostarlo come volete. Siete dei malinconici di Windows XP?? Allora potete impostare il vecchio Start Menu in Windows Xp Style! Personalmente questa barra ha risolto il mio unico problema che avevo con Windows 8!!
Adesso è una meraviglia!

IIS Tracer – Strumento di monitoraggio per siti Web

0

Monitor Siti WebUna delle poche ISAPI da acquistare che personalmente “consiglio” è IIS Tracer.
IISTracer è uno strumento di monitoraggio per ogni sito web in tempo reale, per Microsoft IIS (tutte le versioni). Il software consente di visualizzare ciò che sta accadendo sul server IIS, nel preciso momento in cui viene utilizzato. È possibile vedere e anche registrare lo stato di ogni richiesta : incoming / byte in uscita, http header e tempi di esecuzione. 
IISTracer mostra lo stato di esecuzione di script (. asp,. aspx, asp.net,. CFM,. php,. cgi, …), applicazioni (. dll,. exe, ..) e un download (. mp3,. zip, …). 
Consente inoltre di monitorare altre features, tra cui i TEMPI di “durata/attività” di una pagina
È inoltre possibile interrompere lunghe le richieste di funzionamento (uploads / downloads).

Un Esempio di funzionamento?
Supponiamo di avere un sito web con una pagina GUESTBOOK. Il modulo di Inserimento nel GuestBook non è stato protetto da Captcha.
La pagina è “bombardata ” da centinaia di BOT e adesso la sua esecuzione (considerando che scrive 10 guestbook al secondo) è diventata lentissima a livello di ISAPI per il WebServer.
IIS tracer può aiutare a identificare questa pagina.

Quale ANTIVIRUS installare su un Server?

In questo articolo voglio “sintetizzare” alcuni punti chiave della protezione Antivirus su SERVER Windows 2003 o Windows 2008. Per quanto possa sembrare “esosa” in termini di risorse (elaborazione, ram, ecc.) la protezione Antivirus è molto importante, specialmente su server WEB che sono sottoposti (spesso) a attacchi con script ASP o PHP.
Solitamente la scelta della protezione antivirus è un parametro che si tende a tralasciare, concentrandosi su altre soluzioni (es. urlscan, packet Inspection Firewall, ecc.)

Per quanto sia possibile installare molti antivirus “Home Edition” su un Server (es. Clamwin o addirittura Microsoft Security Essential) questi prodotti sono vivamente sconsigliati e pressochè inutili. E’ vero che queste protezioni analizzano anche script e li rimuovono, ma questo avviene solo quando viene INVOCATA manualmente ( o programmata) una scansione; quando l’antivirus “passa” sopra al file, lo riconosce e lo quarantena….ma finchè questo non avviene il file è libero di agire indisturbato.

Molti worm script ASP o PHP sono caricati attraverso FTP con password semplici o addirittura attraverso moduli di UPLOAD caricati nel sito web stesso.
In questi casi gli Antivirus che abbiamo definito “Home Edition” non sono in grado di intercettare il problema.

E’ da preferirsi invece una SUITE che integra anche un controllo del Traffico di Rete.
Non voglio “pubblicizzare” prodotti….ma Symantec Endpoint potrebbe essere un buon candidato, in quanto con la sua protezione a livello di RETE riesce a intercettare eventuali malware prima del loro ingresso.

Quale Antivirus per Server

ASPXspy.aspx – Lcx.Exe – Controllo Remoto del Vostro Server

In questo articolo vi racconterò l’esperienza “subita” da un nuovo Trojan per attaccare i WebServer : ASPXspy.aspx
E’ una semplice pagina ASPX e quindi eseguita da Net.Framework. E’ a suo agio con Net.Framework 4.0 e anche con alcune versioni precedenti.
Prima di capire che il problema (del nostro server) derivava da ASPXspy abbiamo impiegato un pò di tempo.
Il primo problema rilevato è stata la presenza di un altro componente LCX.EXE. Questo componente associato a ASPXspy permetteva all’utente di prendere in controllo il server con Desktop Remoto. Anche se il server era protetto da Firewall Locale e da Firewall hardware, LCX e ASPXspy “mappano” una porta locale su un sistema remoto.
Un pò come trasmettere all’esterno la porta 3389 del server. Il Malintenzionato “mappava” la porta su un’altra del proprio server (es. la 56) e poteva connettersi in quanto la “sessione” di desktop remoto era iniziata dal server (di destinazione).
Abbiamo impiegato un pò di tempo a cercare di capire e bloccare Lcx.Exe.
Il malintenzionato “portava” con se anche CMD.EXE in quanto ASPXspy consente di lanciare eseguibili (con privilegi Framework) anche in percorsi diversi.
Successivamente abbiamo rilevato files e cartelle cancellati e anche “utenti” Administrator che erano “creati” nel sistema (GetPass_cmd.exe)
Scansioni con ClamWin o Microsoft Security Essential riuscivano a identificare lo script e a rimuoverlo ma non a “prevenire” il suo inserimento in quanto sono Antivirus che non analizzano il traffico di rete. L’unico Antivirus che riesce a bloccare lo script è Symantec Endpoint in quanto dispone di un modulo per l’analisi del traffico di rete.

Alcuni SCREENSHOT di quello che può fare ASPXspy.

ASPXspy2.aspx    ASPXspy2.aspx    ASPXspy2.aspx

 

Per Bloccare questo componente la soluzione migliore è utilizzare un buon Antivirus che consenta la scansione del traffico di rete in accoppiata con URLSCAN 3.1
Il file di configurazione di Urlscan deve però essere modificato per creare una REGOLA per il blocco del componente.
E’ possibile creare una regola con questa configurazione :

RuleList=ASPXSpy

[ASPXSpy]
AppliesTo=.aspx,.asp,.php,.pl,.cgi,.py,.htm,.html,.css
DenyDataSection=ASPXSpyUrls
ScanAllRaw=0
ScanUrl=1
ScanHeaders=Cookie

[ASPXSpyUrls]
ASPXSpy=

In ALLEGATO un esempio di UrlScan.INI
UrlScan ASPXspy

Lo script è composto di righe di codice come queste :

<%@ Page Language=”C#” Debug=”true” trace=”false” validateRequest=”false” EnableViewStateMac=”false” EnableViewState=”true”%>
<%@ import Namespace=”System.IO”%>
<%@ import Namespace=”System.Diagnostics”%>
<%@ import Namespace=”System.Data”%>
<%@ import Namespace=”System.Management”%>
<%@ import Namespace=”System.Data.OleDb”%>
<%@ import Namespace=”Microsoft.Win32″%>
<%@ import Namespace=”System.Net.Sockets” %>
<%@ import Namespace=”System.Net” %>
<%@ import Namespace=”System.Runtime.InteropServices”%>
<%@ import Namespace=”System.DirectoryServices”%>
<%@ import Namespace=”System.ServiceProcess”%>
<%@ import Namespace=”System.Text.RegularExpressions”%>
<%@ Import Namespace=”System.Threading”%>
<%@ Import Namespace=”System.Data.SqlClient”%>
<%@ import Namespace=”Microsoft.VisualBasic”%>
<%@ Assembly Name=”System.DirectoryServices,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A”%>
<%@ Assembly Name=”System.Management,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A”%>
<%@ Assembly Name=”System.ServiceProcess,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A”%>
<%@ Assembly Name=”Microsoft.VisualBasic,Version=7.0.3300.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”%>
…….

Bloccare Tutti gli IP di uno specifico paese su IIS 6.0

Su IIS 6.0 è possibile bloccare determinati indirizzi IP (singoli o gruppi) con un semplice intervento nella sezione directory Security

IIS Directory Security

Ma come fare se è necessario bloccare un intero paese o centinaia di “gruppi di Ip” perchè siamo sotto una situazione di attacco?
Con IIS già “avviato” e quindi con siti web già in produzione sarà necessario utilizzare uno SCRIPT vbs perchè la restrizione dovrà essere fatta per ogni singolo sito web.
Questo potrebbe avere anche un suo lato “utile” in quanto se un cliente avesse un sito web da “mostrare” a quel paese sarà possibile “aprire” il blocco solo per lui.

Innanzi tutto è necessario reperire tutte le classi IP da bloccare.
Dobbiamo creare un file che per comodità chiameremo “iisrestriction.txt”
Dentro a questo file, gli indirizzi saranno dichiarati in questo modo:
(gli indirizzi utilizzati per l’esempio sono puramente casuali)

1.0.1.0, 255.255.255.0
1.0.2.0, 255.255.254.0
1.0.8.0, 255.255.248.0
1.0.32.0, 255.255.224.0
1.1.0.0, 255.255.255.0
..ecc.

Una volta salvato il file possiamo utilizzare lo SCRIPT allegato a questa pagina (proveniente da IISFAQ.com)
SetIPRestrictionsFromFile

Questo script dovrà essere eseguito con  una sintassi del tipo:

cscript SetIPRestrictionsFromFile.vbs -n 1 -f “C:Lockiisrestrictions.txt

dove -n 1 indica l’ID del sito web su cui andremo ad intervenire.
E’ ovvio che per bloccare molti siti web avremo bisogno di un .BAT fatto in questo modo (esempio):

cscript SetIPRestrictionsFromFile.vbs -n 1798 -f “C:Lockiisrestrictions.txt”
cscript SetIPRestrictionsFromFile.vbs -n 1799 -f “C:Lockiisrestrictions.txt”
cscript SetIPRestrictionsFromFile.vbs -n 18 -f “C:Lockiisrestrictions.txt”
cscript SetIPRestrictionsFromFile.vbs -n 18041 -f “C:Lockiisrestrictions.txt”

quindi dobbiamo prima ESTRARRE TUTTI GLI ID di tutti i siti web.
Per fare questo si può MODIFICARE questo script che ALLEGO. (mostra-ROOT)
Se eseguito senza alcuna MODIFICA creerà un file c:xportdb.txt con NOME – ID – CARTELLA

 

 

 

Ultime dal Nostro BLog