4 meses del Proyecto y nos vamos para mas !!

d
Buenas a todos ya van  4  meses desde que se inicio este proyecto exactamente el 14/03/12 es super grato observar cuanto va creciendo cada día más y que hay más personas que se unen al mismo esto nació como una idea de Jose Moruno Cadima (Snifer) el de tener un repositorio de scripts para poder automatizar el trabajo y sacar provecho del mismo, buscando un apoyo y alguien consistente y apasionado de esto encontro un gran soporte en Ricardo (WizardIP), aceptando dar comienzo al proyecto un 14 de marzo con el primer script que fue publicado creando la cuenta oficial del proyecto @GeekScripting.


Aunque varios solo ingresan usan los scripts no comentan tenemos la suerte de que el twitter anda con mas movimiento no queremos olvidarnos de todos los que apoyan por eso no lo damos pero gracias por compartir con todos sus  conocimientos, no dejen de seguirnos y estar en la pagina de facebook  y twitter =D.

Solo para tener en cuenta es sorprendente la cantidad de visitas que se tiene al blog:


Cantidad de Paginas Vistas.


Y aunque no lo creamos mas visitas desde Windows xD



Y ahora se suma a este proyecto Andres Hernandez @Tonejito con el repositorio en Github el cual ahora las contribuciones los que quieran realizarlas sera por medio de  pull requests  los administradores del blog seguiran haciendo crecer el proyecto poco a poco ahora aqui va cada uno de los dos caballeros dando un pequeño comentario.


Jose Moruno Cadima  

Es sorprendente como fuimos aceptados por toda la comunidad solo me queda agradecer a WizardIP  y Tonejito por el apoyo que andan dando bueno no se que mas decir =/ ya que el señor de abajo dijo todo como me da pereza escribir ni modo. 
Lo unico que les puedo decir es que pronto nos venimos con todo con un Dominio  y darle las gracias a todos por hacer realidad este sueño . 

Ricardo.
Ha sido interesante y muy grato ver la aceptación ha tenido el proyecto,además de que hemos ido aprendiendo mucho de cada persona que comparte scripts, muchas gracias a Snifer por permitirme ser parte de GeekScripting, a Tonejito por la ayuda que nos está brindando en el repositorio :D y en especial a toda la comunidad que lee, colabora, comparte y difunde éste proyecto :D


Ademas aqui tenemos el Github 
Leer más...

Script que lista usuarios con mas de "X" MB

d
Nombre: Listador de Espacio
Autor: @kaldie
Descripción: Script que lista a los usuarios que ocupan más de una cierta cantidad de espacio en su home

#!/bin/bash 
# Asignar a la variable MAX el tamano maximo que queremos 

USUARIOS=$(ls /home/) 

# Maximo permitido por usuarios, en MB. Escribir el numero de MB, ejemplo MB=100 
MAX= 

# Carga en la variable usuarios todas las direcciones de los home con mas espacio ocupado que MAX
for i in $USUARIOS; do 
    DIR="/home/$i" 
    TAM=$(du -B 1048576 -s $DIR | awk {'print $1'}) 
        if [ $TAM -gt $MAX ]; then 
        DIR_SUP="$DIR_SUP $i"$'n' 
    fi 
done 


# Ahora se fija a quien corresponde cada direccion de home obtenido y guarda los usuarios en USU_SUP

archivo_usuarios=/etc/passwd 

oldifs=$IFS 
IFS=: 

while read -r usuario contrasena iud grupo comentario directorio shell  
do 
    IFS=$oldifs  
    for i in $DIR_SUP; do 
        direc="/home/$i" 
        if [ $directorio = $direc ]; then 
            USU_SUP="$USU_SUP $usuario"$'n' 
        fi 
    done 
    IFS=: 
done < $archivo_usuarios 


echo $'n'"Usuarios con mas de $MAX MB: "$'n'$'n'"$USU_SUP" 

Nota: El script debe ser ejecutado con permisos de Root. Asignar a la variable MAX el tamano maximo que queremos
Leer más...

Snort Log Parser MySQL

d
Nombre: snort-alert-db.pl
Autor: @WizardIP
Descripción: Script que permite visualizar los logs de Snort almacenados en MySQL.
Muchas Gracias @psygi_blooQ por la ayuda :D
#!/usr/bin/perl -w
 use DBI;
 $dbh = DBI->connect('dbi:mysql:[Usuario BD]','[nombre BD]','[Password]')
 or die "Connection Error: $DBI::errstr\n";
 $sql = "SELECT inet_ntoa(ip_src), inet_ntoa(ip_dst) FROM iphdr;";
 $sth = $dbh->prepare($sql);
 $sth->execute
 or die "SQL Error: $DBI::errstr\n";
 print "IP Origen       IP Destino       Timestamp\n";
 $sql = "select timestamp from event;";
 $sth1 = $dbh->prepare($sql);
 $sth1->execute
 or die "SQL Error: $DBI::errstr\n";
 $sql = "select sig_id,sig_name from signature;";
 $sth2 = $dbh->prepare($sql);
 $sth2->execute
 or die "SQL Error: $DBI::errstr\n";
 while ((@row = $sth->fetchrow_array) && (@row1 = $sth1->fetchrow_array)) {
 print "@row     @row1  \n";
 }
 print "Eventos\n";
 while (@row2 = $sth2->fetchrow_array) {
 print "@row2\n";
 }
Permisos: chmod 700 snort-alert-db.pl 
Ejecución: ./snort-alert-db.pl
Leer más...

Syn Flood Detection

d
Nombre: SynFloodDetection.bash
Autor: G. Plasky
Descripción: Script que permite detectar y prevenir pequeños Syn Floods en cualquier puerto
#!/bin/bash
#####################################
#                                   #
#       SYN Flood Detection         #
#          by G. Plasky             #
#   A simple script to detect and   #
#   prevent SYN floods on any port  #
#                                   #
#####################################
 
if [ $EUID -ne 0 ]; then
        echo "You must be root to execute this script"
        exit 1
fi

PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
BACKLOG=2048
RETRIES=4
 
SYN=`netstat -anp| grep SYN_RECV |wc -l`
#SYN=200
 
if [[ $SYN -ge 200 ]]
then
    echo "We appear to have a SYN flood. $SYN SYN packets detected."
    echo -n "Display netstat output? "
 
    read NET
    if [[ $NET -eq "yes" || $NET -eq "y" ]]
    then
        echo `netstat -anp|grep SYN_RECV|more`
    fi
 
    echo "Take preventative countermeasures? "
 
    read PREV
    if [[ $PREV -eq "yes" || $PREV -eq "y" ]]
    then
        echo "Enabling SYN cookies protection."
        echo 1 > /proc/sys/net/ipv4/tcp_syncookies
 
        echo "Increasing the backlog queue to $BACKLOG."
        sysctl -w net.ipv4.tcp_max_syn_backlog="$BACKLOG" &> /dev/null
 
        echo "Decreasing SYNACK retransmission time to $RETRIES."
        sysctl -w net.ipv4.tcp_synack_retries="$RETRIES" &> /dev/null
    fi
 
else
    echo "There doesn't appear to be a SYN flood right now. $SYN SYN packets detected."
fi
Permisos: chmod 700 synflooddetector.bash 
Ejecución: sudo ./synflooddetector.bash
Leer más...

Snort alert log parser

d
Nombre: snort-alert.pl
Autor: Attack Vector
Descripción: Script que permite visualizar cuántas alertas detectó snort por cada evento.
Visto en Perl Code
#!/usr/bin/perl -w

use strict;

#[**] [1:2925:3] INFO web bug 0x0 gif attempt [**]
my %h = ();
sub desc {
   $h{$b} <=> $h{$a};
}

open(F, "/var/log/snort/alert") || die "$!";
while() {
        if(/^.*?\]\s+(.*?)\s+\[.*/) {
                $h{$1}++;
        }
}

foreach my $line (sort desc (keys (%h))) {
        print "Attack: $line - Hits: $h{$line}\n";
}

close(F);

exit 0

Permisos: chmod 700 snort-alert.pl 
Ejecución ./snort-alert
Leer más...

Script para verificar la clave de una DB y verificar si fue crackeada

d
Autor: Desconocido
Descripción: Script en Python para verificar la presencia de la clave en la DB y si fué crackeada.

#! /usr/bin/env python

from hashlib import sha1
import getpass

def get_hash(plaintext, offset=5):
  hashed = sha1(plaintext).hexdigest()
  return '0' * offset + hashed[offset:]

def check_database(database, plaintext):
  uncracked_hash = get_hash(plaintext, 0)
  cracked_hash = get_hash(plaintext)

  database.seek(0);
  line_count = 0

  for line in database:
    line_count += 1
    if uncracked_hash in line:
      print ">Found somethng on line: %d" % line_count
      return ">Warning: Your password hash is in the database but uncracked. :|"
    elif cracked_hash in line:
      print ">Found somethng on line: %d" % line_count
      return ">Warning: Your password hash is in the database and was cracked. :["

  print ">Checked all %d lines" % line_count
  return "All Clear: your password hash isn't in the database! :]"



def main():
  database = open("combo_not.txt")
  while(True):
    password = getpass.getpass("Input a password to check: \n").strip()

    print check_database(database, password) 
    print "\n\n"
    

if __name__ == "__main__":
    main()
Visto en Twitter
Leer más...

Mem.bash

d
Nombre: Mem.bash
Autor: SASIKALA
Descripción: Script que muestra la memoria usada,memoria libre y memoria total.
Visto en The Geek Stuff
#! /bin/bash

# Total memory space details

echo "Memory Space Details"
free -t -m | grep "Total" | awk '{ print "Total Memory space : "$2 " MB";
print "Used Memory Space : "$3" MB";
print "Free Memory : "$4" MB";
}'

echo "Swap memory Details"
free -t -m | grep "Swap" | awk '{ print "Total Swap space : "$2 " MB";
print "Used Swap Space : "$3" MB";
print "Free Swap : "$4" MB";
}'
Permisos: chmod 700 Mem.bash 
Ejecución: ./Mem.bash
Leer más...

Script para limpiar la memoria de Linux

d
Autor:  Kalambu
Descripción:  Script que nos permite liberar la memoria en Linux.
Visto en: Kalambu

Uso: puede cambiar la variable percent = 70 por la que deseemos para que posteriormente lo libere

#!/bin/sh
PATH=”/bin:/usr/bin:/usr/local/bin”
# Porcentagem maxima (mude se vc achar q deve) eu deixo em 70%
percent=70
 
# Total da memoria:
ramtotal=`grep -F “MemTotal:” < /proc/meminfo | awk ‘{print $2}’`
# Memoria livre:
ramlivre=`grep -F “MemFree:” < /proc/meminfo | awk ‘{print $2}’`
 
# RAM utilizada pelo sistema:
ramusada=`expr $ramtotal – $ramlivre`
 
# Porcentagem de RAM utilizada pelo sistema:
putil=`expr $ramusada \* 100 / $ramtotal`
 
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
date
echo
echo “Mem. utilizada: $putil %”;
 
if [ $putil -gt $percent ]
then
date=`date`
echo $date >> /var/log/memoria.log
echo “Mem. utilizada: $putil %” >> /var/log/memoria.log
 
echo “Memoria acima de $percent %, cache foi limpado!”;
sync
# ‘Dropando’ cache:
echo 3 > /proc/sys/vm/drop_caches
echo
free -m
echo
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
else
echo “Não há necessidade de limpar o cache!”;
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
unset percent ramtotal ramlivre ramusada putil
exit $?
fi
Leer más...

Loggedin.bash

d
Nombre: Loggedin.sh
Autor: SASIKALA
Descripción: Script que muestra los usuarios conectados, el porcentaje de CPU que están usando y lo que están haciendo.
Visto en The Geek Stuff
#! /bin/bash

w > /tmp/a

echo "Total number of unique users logged in currently"
cat /tmp/a|  sed '1,2d' | awk '{print $1}' | uniq | wc -l
echo ""

echo "List of unique users logged in currently"
cat /tmp/a | sed '1,2d'|  awk '{print $1}' | uniq
echo ""

echo "The user who is using high %cpu"
cat /tmp/a | sed '1,2d' | awk   '$7 > maxuid { maxuid=$7; maxline=$0 }; END { print maxuid, maxline }' 

echo ""
echo "List of users logged in and what they are doing"
cat /tmp/a
Permisos: chmod 700 Loggedin.bash 
Ejecución: ./Loggedin.bash
Leer más...

Processes.bash

d
Nombre: Processes.bash
Autor: SASIKALA
Descripción: Script que muestra los procesos basados en el procentaje de uso de CPU y de la memoria
Visto en The Geek Stuff
#! /bin/bash
#List processes based on %cpu and memory usage

echo "Start Time" `date`
# By default, it display the list of processes based on the cpu and memory usage #
if [ $# -eq 0 ]
then

 echo "List of processes based on the %cpu Usage"
 ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu  # sorted based on %cpu
 echo "List of processes based on the memory Usage"
 ps -e -orss=,args= | sort -b -k1,1n # sorted bases rss value

# If arguements are given (mem/cpu)
else
 case "$1" in
 mem)
  echo "List of processes based on the memory Usage"
   ps -e -orss=,args= | sort -b -k1,1n
  ;;
  cpu)
  echo "List of processes based on the %cpu Usage"
  ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu
  ;;
  *)
  echo "Invalid Argument Given \n"
  echo "Usage : $0 mem/cpu"
  exit 1
  esac 

fi
echo "End Time" `date`
exit 0
Permisos: chmod 700 Processes.bash 
Ejecución:
./Processes.bash
./Processes.bash cpu
./Processes.bash mem
Leer más...

Shell Script para analizar Access.log

d
Nombre: webaccess.bash
Autor: Desconocido
Descripción: Script que genera una serie de estadísticas útiles, habida cuenta de un archivo de registro de formato de Apache access_log.
Visto en Linux Party
#!/bin/bash

# webaccess - analyze an Apache-format access_log file, extracting
# useful and interesting statistics

bytes_in_gb=1048576
scriptbc="$HOME/bin/scriptbc"
nicenumber="$HOME/bin/nicenumber"
host="intuitive.com"

if [ $# -eq 0 -o ! -f "$1" ] ; then
echo "Usage: $(basename $0) logfile" >&2
exit 1
fi

firstdate="$(head -1 "$1" | awk '{print $4}' | sed 's/[//')"
lastdate="$(tail -1 "$1" | awk '{print $4}' | sed 's/[//')"

echo "Results of analyzing log file $1"
echo ""
echo " Start date: $(echo $firstdate|sed 's/:/ at /')"
echo " End date: $(echo $lastdate|sed 's/:/ at /')"

hits="$(wc -l < "$1" | sed 's/[^[:digit:]]//g')"

echo " Hits: $($nicenumber $hits) (total accesses)"

pages="$(grep -ivE '(.txt|.gif|.jpg|.png)' "$1" | wc -l | sed 's/[^[:digit:]]//g')"

echo " Pageviews: $($nicenumber $pages) (hits minus graphics)"

totalbytes="$(awk '{sum+=$10} END {print sum}' "$1")"

echo -n " Transferred: $($nicenumber $totalbytes) bytes "

if [ $totalbytes -gt $bytes_in_gb ] ; then
echo "($($scriptbc $totalbytes / $bytes_in_gb) GB)"
elif [ $totalbytes -gt 1024 ] ; then
echo "($($scriptbc $totalbytes / 1024) MB)"
else
echo ""
fi

# now let's scrape the log file for some useful data:

echo ""
echo "The ten most popular pages were:"

awk '{print $7}' "$1" | grep -ivE '(.gif|.jpg|.png)' | 
sed 's//$//g' | sort | 
uniq -c | sort -rn | head -10

echo ""

echo "The ten most common referrer URLs were:"

awk '{print $11}' "$1" | 
grep -vE "(^"-"$|/www.$host|/$host)" | 
sort | uniq -c | sort -rn | head -10

echo ""
exit 0

Permisos: chmod 700 webaccess.bash 
Ejecución: ./webaccess.bash [ log ]
Leer más...