viernes, 1 de marzo de 2019

Internet VS Privoxy

Internet VS Privoxy
.
Cuando una pagina importante luce mal armada . . posiblemente algo quedo fuera; bloqueado por Privoxy
Entre Reglas y WildCards quien dio el golpeo a aquien ? donde esta el culpable ?
Cuando se tienen listas y listas localizar un culpable puede ser una pesadilla . . XD


.
Privoxy cuenta con con su localizador de problemas accesible desde el mismo navegador.
.

.
Despues de un tiempo uno quisiera que ojala fuera mas rapido . . agobia encontrar quien dio el golpe.
Quisieras encontrar la forma de que con un par de teclazos te mostrara donde esta el problema.
Entre lineas punteadas lo propuesto para ser realizado en Power-Shell ..
El script debe colocarse junto al log-privoxy ya que lo utiliza para revisar las untimas entradas.
El script es solo un archivo txt cambiado a ps1.
.
#Analizar privoxy-log reciente . . . ultimas 30 entradas al log bloqueadas
#----------------------------------------------------------------------
# Ejecutar Powershell en folder de Privoxy-log
#----------------------------------------------------------------------
#
#Tomar las ultimas 30 lineas de "privoxy.log" dejando solo los "Blocked:" (son los que bloqueo privoxy)
Get-Content "privoxy.log" | Select-Object -Last 30 | Select-String -Pattern "Blocked:" | Foreach-Object {$_ -Replace('.+ Blocked: ', '')} |  Foreach-Object {$_ -Replace('\/+.+$', '')} | Foreach-Object {$_ -Replace(':\d+\/$', '')} | Foreach-Object {$_ -Replace('\/$', '')} | Foreach-Object {$_ -Replace('\:\d+$', '/')} | Where-Object {$_ -notmatch '^http\:$'} | Sort-Object -Unique | set-content "privoxy50-0.tmp"
#
#Tomar las ultimas 30 lineas de "privoxy.log" dejando solo los "Request:" (son los que no bloqueo privoxy)
Get-Content "privoxy.log" | Select-Object -Last 30 | Select-String -Pattern "Request:" | Foreach-Object {$_ -Replace('.+ Request: ', '')} | Foreach-Object {$_ -Replace('\/+.+$', '')} | Foreach-Object {$_ -Replace(':\d+\/$', '')} | Foreach-Object {$_ -Replace('\/$', '')} | Foreach-Object {$_ -Replace('\:\d+$', '/')} | Where-Object {$_ -notmatch '^http\:$'} | Sort-Object -Unique | set-content "privoxy50-1.tmp"
#
#uniendo listas
Get-Content "privoxy50-0.tmp", "privoxy50-1.tmp" -ErrorAction SilentlyContinue | Set-Content "privoxy50.tmp"
#
#Analizandolas en Privoxy-Rules ....Bloqueados
$URLList = Get-Content "privoxy50.tmp"
Foreach($Urll in $URLList)
{
$PList = $Urll | foreach {"http://config.privoxy.org/show-url-info?url="+$_ }
$web = Invoke-WebRequest -Proxy 'http://127.0.0.1:8118' -Uri $PList
# Refresh
Start-Sleep -Seconds 2
$dt = $web.tostring() -split "[`r`n]" | select-string "^\<code\>.{19,}" -Context 2,0 | Foreach-Object {$_ -Replace('\<tr\>\<th\>','---- ')} | Foreach-Object {$_ -Replace(' \<a class..cmd. href.+\/tr\>','')} | Foreach-Object {$_ -Replace(' \<tr\>\<td\>..\<a href.+\"\>','')} | Foreach-Object {$_ -Replace('\<code\>','')} | Foreach-Object {$_ -Replace('\<\/code\>\<\/td\>\<\/tr\>','')} | Foreach-Object {$_ -Replace('> ','')} | Foreach-Object {$_ -Replace('^ ','')}
@(" - - - - - - - - - - - - - - - - - - - - - ", $Urll, $dt, " - - - - - - - - - - - - - - - - - - - - - ")
}
#
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Borrar temporales .tmp
Remove-Item *.tmp -ErrorAction SilentlyContinue
# Limpíar variables
Clear-variable -Name "Ipp", "IP", "Uri", "web", "Urii", "webb", "URLList", "results", "dt" -ErrorAction SilentlyContinue
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#

Abajo como lucen los resultados obtenidos.


Los resultados muestran a las urls con la hubicacion del file, regla aplicada y motivo del bloqueo . . en caso contrario no hubo ninguna restriccion; por lo que cruza libremente.
Note que hace una lista de los bloqueados y no bloqueados; para que informe si hay una url en Whitelist . . no solo de la Blacklist.
El detalle esta en determinar alterar la wildcard para que cruze la url-afectada o solo incluir a la Whitelist. Al incluir a la Whitelist antes se debe verifcar en VirusTotal.
.
El file-bat es el mismo utilizado anteriormente para hacer revisiones con un par de botonazos . .
Se puede mejorar aun mas . . . pero solo es por pura diversion. . XD

No hay comentarios.:

Publicar un comentario