Mis dos centavos:
Ejecuta bash (u otra shell ) primero !!
¡La rapidez del idioma no importa cuando estás en plena lluvia de ideas !
Uno de los lenguajes más útiles y poderosos para este tipo de operación parece haber sido olvidado en su pregunta.
Me gustaría hablar sobre bash como entorno de hacking . Sí, shell toma su nombre de la shell who puede contener muchas otras cosas.
En Un * x, principalmente has iniciado sesión en un shell consola, para poder ejecutar otras herramientas.
Si es uno de los idiomas más lentos:
$ time for ((i=1000000;i--;));do :;done
real 0m4.755s
user 0m4.628s
sys 0m0.124s
time perl -e 'map{1}(0..1000000)'
real 0m0.199s
user 0m0.112s
sys 0m0.060s
$ time python -c 'for a in range(1000000): 1==1
real 0m0.119s
user 0m0.096s
sys 0m0.020s
¡Sí! Más de 4 segundos para un bucle de 1 millón de pasos es muy lento, pero una vez que haya iniciado sesión en una consola de línea de comandos ...
Principal ventaja a considerar:
-
historial Puede guardar / copiar su historial para poder consultarlos más tarde o crear un script
-
log Al usar herramientas como
script
y scriptreplay
, podría mantener un seguimiento muy preciso de todo su trabajo
-
Cut'n paste Al usar x-terminal o herramientas como
screen
, puedes jugar con tareas paralelas, en una consola separada, y compartir entradas / salidas entre todas ellas.
-
fifo fusionando herramientas simples pero potentes como
nc
| sed
| ssh
| python
...
Muestra práctica
puede comenzar desde:
$ mkdir /tmp/hackingGoogle
$ cd $_
que
$ nc google.com 80 <<<$'HEAD /fonts/ HTTP/1.0\r\n\r'
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
...
Desde allí, puede usar todas las herramientas que desee, como ping
, traceroute
, openssl
, nmap
, etc ...
$ openssl s_client -connect google.com:443 -ign_eof \
<<< $'HEAD / HTTP/1.0\r\n\r' 2>&1 | \
openssl x509 -in /dev/stdin -out certfile
$ openssl x509 -in certfile -noout -fingerprint
SHA1 Fingerprint=67:1B:98:92:48:86:FF:E1:C5:02:44:C5:9F:F3:96:78:08:F5:0A:45
$ openssl x509 -in certfile -noout -subject
subject= /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
Si estás interesado en SSL, algunos scripts de muestra más
o ...
$ wget https://www.google.com/fonts/
$ vi index.html
$ wget https://www.google.com/fonts/webfonts.nocache.js
$ smjs < <(sed < webfonts.nocache.js 's/Window....')
...
para jugar con javascript ...
Entorno útil para almacenar variables:
$ ip=();ANS=false;while read -a line;do if [[ "$line" = ";;" ]];then [[
"${line[1]}" = "ANSWER" ]] && ANS=true || ANS=false; fi ; $ANS && [[
"${line[2]}" == "IN" ]] && ip+=(${line[4]});done < <(dig www.google.com)
$ printf "%s\n" ${ip[@]}
173.194.116.51
173.194.116.52
173.194.116.48
173.194.116.49
173.194.116.50
Dependiendo de lo que estés buscando, podrías usar ampliamente toda tu herramienta en todas las combinaciones.
$ grep ^64 < <(for host in ${ip[@]};do ping -c2 $host&done;wait)|sort -t. -nk4
64 bytes from 173.194.113.112: icmp_req=1 ttl=54 time=45.4 ms
64 bytes from 173.194.113.112: icmp_req=2 ttl=54 time=47.8 ms
64 bytes from 173.194.113.113: icmp_req=1 ttl=54 time=41.4 ms
64 bytes from 173.194.113.113: icmp_req=2 ttl=54 time=40.2 ms
64 bytes from 173.194.113.114: icmp_req=1 ttl=54 time=43.1 ms
64 bytes from 173.194.113.114: icmp_req=2 ttl=54 time=39.0 ms
64 bytes from 173.194.113.115: icmp_req=1 ttl=54 time=47.0 ms
64 bytes from 173.194.113.115: icmp_req=2 ttl=54 time=42.1 ms
64 bytes from 173.194.113.116: icmp_req=1 ttl=54 time=43.9 ms
64 bytes from 173.194.113.116: icmp_req=2 ttl=54 time=39.0 ms
Esto podría reescribirse :
Mini script desde allí:
Con esto, harás dos ping, paralelizado (esto normalmente tomará solo 1 segundos) en ~ 5 hosts:
ip=()
ANS=false
while read -a line;do
if [[ "$line" = ";;" ]] ;then
[[ "${line[1]}" = "ANSWER" ]] && ANS=true || ANS=false
fi
$ANS && [[ "${line[2]}" == "IN" ]] &&
ip+=(${line[4]})
done < <(dig www.google.com)
grep ^64 < <(
for host in ${ip[@]};do
ping -c2 $host &
done
wait
) |
sort -t. -nk4
Otros idiomas (más eficientes)
Una vez que se haya fijado el objetivo, después de una gran cantidad de brainf @ # @ ing , el hacker común ejecutará su editor preferido y almacenará su exploit como un script para automatizar la próxima ejecución.
La elección del idioma utilizado dependerá principalmente de las preferencias del pirata informático. (Si no es requerido por su jefe.)
Y antes de reinventar la rueda ...
Ya existe una gran cantidad de herramientas dedicadas a realizar pruebas parásitas, escanear, investigar y analizar. Si usa debian puede echar un vistazo a Debian Forensics Environment ...
De todos modos, el mejor entorno para probar y registrar cada paso de este tipo de trabajo es un shell (como bash ;-)