jueves, 22 de enero de 2009

¿Que User-Agent usar? Para no sobresalir en los Logs

El hecho de revelar o no el navegador que usamos, muchas veces es contradictorio, si nos ponemos paranoicos ¿que resulta mejor? mandar el header del navegador (User-Agent) o no ? y si lo mandamos la referencia cual mandamos? obvio no puede ser el de nosotros en caso de que usemos algún navegador "raro", sin embargo si usamos Windows y IE, pues podemos estar seguros.

Ahora digamos que nuestros propósito es realizar "un poco de hacking" en sitios que no son nuestros, obvio no lo vamos a hacer desde nuestra IP una vez solucionado la navegación anónima, nos queda que debemos de explorar la pagina con un navegador y nuestro explorador tiene que mandar un User-Agent o no segun queramos, Tenemos entonces la decicion de cual mandar

IE, es el mas común y si no queremos sobresalir tenemos que estar confundidos entre la multitud


Código:
 Mozilla/4.0 (compatible; U; MSIE 6.0; Windows NT 5.1)

Anteriormente he visto quienes se jactan de decir "Yo he configurado mi firefox para que en el User-Agent mande (Script kiddie was here)" y pues se trata de no llamar la atención y ser mas discreto (confundirse
entre la multitud)
Saludos

martes, 20 de enero de 2009

Como medir el Ancho de Banda entre hosts mediante ICMP

Solo es un promedio y es un aproximado (No es preciso)

Por ejemplo, Conexión Directa de mi laptop a una PC de escritorio, ambos con una tarjeta 100 Base T.

Después de un:

Código
Anon@localhost % man ping

Tenemos que con:

Código
ping -c 100 -s 10232 192.168.0.1

Código
Anon@localhost # ping -c 100 -s 10232 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 10232 data bytes
10240 bytes from 192.168.0.1: icmp_seq=99 ttl=128 time=2.263 ms
#Muchas Respuestas Omitidas...
--- 192.168.0.1 ping statistics ---
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.134/2.261/2.437/0.042 ms



Nota que la maquina tardo en responderme bastante tiempo bueno, eso pienso yo (Creo que por que la PC de Escritorio es WIndows Vista)

Igual no ocupábamos tantos paquetes con unos cuantos hubiese bastado, puse muchos para sacar un promedio.

Citar
100 packets transmitted, 100 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.134/2.261/2.437/0.042 ms

Entonces mandamos en el paquete IP 8 Bytes de ICMP-Header y 10232 de Datos, lo cual suma mas mas o menos 10240 + unos bytes adicionales del IP-Header + el Ethernet-Header, Para efectos de demostración lo dejaremos en 10240 o mas breve mente 10KB.

un Segundo Tiene 1000 mili segundos, si el tiempo de ida y vuelta promedio fue de 2.261 ms supongo que solo le tomo 1.1305 ms de ida.

Entonces tenemos que en 1 segundo puedo mandar 10KB o mas, unas 884.5 veces esa cantidad de información. Teóricamente son cerca de ~9057280 Bytes lo que se resume como 8845KB o ~8.65 MB que son cerca de 100 Mb que dan las tarjetas de red, me imagino que lo que hace falta para por que si Transformamos 100 Mb a MB tenemos que deberían de ser 12.5 MB lo cual es el máximo Teórico.

Ahora probamos el tiempo mínimo de ida y vuelta.

2.134 ms
1.067 ms de solo enviarlos
En 1 Segundos podremos mandar 937.2 veces esa información lo que da un total de ~95970001 Bytes o 9372 KB o 9.15 MB .

Ahora en mi sistema puedo mandar un icmp flood con la opción -f de ping

Código
Anon@localhost # ping -f -s 20480 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 20480 data bytes
..^C.
--- 192.168.0.1 ping statistics ---
19155 packets transmitted, 19153 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.736/3.999/10.512/0.142 ms


Citar
ping -f -s 20480 192.168.0.1
Citar
19155 packets transmitted, 19153 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.736/3.999/10.512/0.142 ms

Solo perdimos 2 Paquetes en esta ocasión de 20KB

3.736 / 2 = 1.868
En 1 Segundo 535 con lo que tenemos 10963597 Bytes o 10706 KB o10.45 MB lo cual es mas aproximado a los 12.5 MB/s Teóricos.

domingo, 11 de enero de 2009

Posible error en inet_ntoa()

Practicando un poco sobre raw sockets y demás, he visto que en existe un error muy curioso en la función inet_ntoa() que es estandar dentro de libc.

Todo surgio a raiz de https://foro.elhacker.net/programacion_cc/pequeno_sniffer_en_c-t235639.0.html;msg1156524#msg1156524

No se si sea igual el codigo en linux, pero este ultimo al igual que freebsd tambien tiene la falla.

El codigo de inet_ntoa es el siguiente:

inet_ntoa(struct in_addr in) {
       static char ret[18];
 
       strcpy(ret, "[inet_ntoa error]");
       (void) inet_ntop(AF_INET, &in, ret, sizeof ret);
       return (ret);
}

inet_ntoa Manda llamar inet_ntop y esta a su vez a inet_ntop4


const char *
inet_ntop(int af, const void * __restrict src, char * __restrict dst,
   socklen_t size)
{
       switch (af) {
       case AF_INET:
               return (inet_ntop4(src, dst, size));
       case AF_INET6:
               return (inet_ntop6(src, dst, size));
       default:
               errno = EAFNOSUPPORT;
               return (NULL);
       }
       /* NOTREACHED */
}
 
 
static const char *
inet_ntop4(const u_char *src, char *dst, socklen_t size)
{
       static const char fmt[] = "%u.%u.%u.%u";
       char tmp[sizeof "255.255.255.255"];
       int l;
 
       l = snprintf(tmp, sizeof(tmp), fmt, src[0], src[1], src[2], src[3]);
       if (l <= 0 || (socklen_t) l >= size) {
               errno = ENOSPC;
               return (NULL);
       }
       strlcpy(dst, tmp, size);
       return (dst);
}


El problema creo yo que a la hora de poner esto en una direccion statica, al mandarlo a llamar 2 veces durante el mismo printf(), hace guarde en la pila 2 veces la misma direccion:

# gdb ./sniffer
GNU gdb 6.1.1 [FreeBSD]

(gdb) break 49

Breakpoint 1 at 0x8048309: file sniffer.c, line 49.
(gdb) run

Starting program: /usr/home/Anon/sniffer

Esperando paquetes...
 
Breakpoint 1, main () at sniffer.c:49

49 printf("[+] ICMP: %s\t->\t%s\n",inet_ntoa(iphead->ip_src),inet_ntoa(iphead->ip_dst));

(gdb) printf "0x%x\n", buff

0x28102000
(gdb) i r

eax            0x1 1
ecx            0xbfbfec98 -1077941096
edx            0x0 0
ebx            0x1 1

esp            0xbfbfecb0 0xbfbfecb0
ebp            0xbfbfecf8 0xbfbfecf8
esi            0xbfbfed40 -1077940928
edi            0x0 0

eip            0x8048309 0x8048309
eflags         0x246 582
cs             0x33 51
ss             0x3b 59

ds             0x3b 59
es             0x3b 59
fs             0x3b 59
gs             0x1b 27

(gdb) x/4 0xbfbfecb0

0xbfbfecb0: 0x00000003 0x28102000 0x00010000 0x00000000
(gdb) step          

[+] ICMP: 74.125.95.147 -> 74.125.95.147

52 break;
(gdb) x/4 0xbfbfecb0

0xbfbfecb0: 0x08062664 0x08066e98 0x08066e98 0x00000000
(gdb) printf "%s\n", 0x08062664

[+] ICMP: %s -> %s

 
(gdb) printf "%s\n", 0x08066e98

74.125.95.147
(gdb) x/4 0xbfbfecb0

0xbfbfecb0: 0x08062664 0x08066e98 0x08066e98 0x00000000
 # gdb ./sniffer
GNU gdb 6.1.1 [FreeBSD]

(gdb) break 49

Breakpoint 1 at 0x8048309: file sniffer.c, line 49.
(gdb) run

Starting program: /usr/home/Anon/sniffer

Esperando paquetes...
 
Breakpoint 1, main () at sniffer.c:49

49 printf("[+] ICMP: %s\t->\t%s\n",inet_ntoa(iphead->ip_src),inet_ntoa(iphead->ip_dst));

(gdb) printf "0x%x\n", buff

0x28102000
(gdb) i r

eax            0x1 1
ecx            0xbfbfec98 -1077941096
edx            0x0 0
ebx            0x1 1

esp            0xbfbfecb0 0xbfbfecb0
ebp            0xbfbfecf8 0xbfbfecf8
esi            0xbfbfed40 -1077940928
edi            0x0 0

eip            0x8048309 0x8048309
eflags         0x246 582
cs             0x33 51
ss             0x3b 59

ds             0x3b 59
es             0x3b 59
fs             0x3b 59
gs             0x1b 27

(gdb) x/4 0xbfbfecb0

0xbfbfecb0: 0x00000003 0x28102000 0x00010000 0x00000000
(gdb) step          

[+] ICMP: 74.125.95.147 -> 74.125.95.147

52 break;
(gdb) x/4 0xbfbfecb0

0xbfbfecb0: 0x08062664 0x08066e98 0x08066e98 0x00000000
(gdb) printf "%s\n", 0x08062664

[+] ICMP: %s -> %s

 
(gdb) printf "%s\n", 0x08066e98

74.125.95.147
(gdb) x/4 0xbfbfecb0

0xbfbfecb0: 0x08062664 0x08066e98 0x08066e98 0x00000000
 

Como pueden ver después de ejecutar el step en la pila tenemos


(gdb) x/4 0xbfbfecb0
0xbfbfecb0: 0x08062664 0x08066e98 0x08066e98 0x00000000
La primera es la cadena de formato:

Código
(gdb) printf "%s\n", 0x08062664
[+] ICMP: %s -> %s

Y las 2 siguientes es la misma IP de Origen

Código
(gdb) printf "%s\n", 0x08066e98
74.125.95.147
 
en conclusión, el inet_ntoa o algo no esta funcionando bien Tiene un Bug!! Aun que este no es muy dañino.



Y en cambio como mencione en el post si lo ejecutamos desde 2 printf distintos eso no pasa, debido a que la dirección Estática se renueva, ¿Por que no se renueva cuando se mandan los 2 al mismo printf?


martes, 6 de enero de 2009

Mis llaves PGP

Bueno anteriormente habia creado una llave RSA utilizando pgp:

Anon@localhost % pgp -h
Pretty Good Privacy(tm) 2.6.3ia

----

Esto lo hice con esa version ya que FreeBSD no me dejaba instalar algunas de las mas recientes.

Sin embargo la llave ya esta en los servidores de llaves publicas, ahora despues de mucho intentar he logrado usar las mismas llaves desde gnupg o gpg como la mayoria lo conoce, despues de tener problemas con el algoritmo IDEA y ver que el sistema puede en algunos años mas ser medianamente obsoleto (si no es que totalmente). Decidi crear Una nueva llave con gpg y firmarla con mi llave anterior, asi que ahora tengo doble trabajo de administrar 2 llaves diferentes, he hecho esto para no revocar la llave anteir, y apartir de ahora ya pueden enviarme archivos cifrados con ambas llaves, aun que encarecidamente sugiero que usen la nueva llave

Llave Anterior RSA:

Key ID: 0xF5B475FD
Fingerprint for RSA Key:
0F 5B BC 84 15 1C 60 D1 B1 53 73 C1 FF 89 10 EE
1024R/F5B475FD Anon <Anon[at]elhacker.net>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia

mQCNA0kfunUAAAEEAKPFiwXzm5mtuHximnqMcw5/MdnSRpWD7Vpy3a/9zMos/ARE
f7mQJ7nqkEzuhu8tmTZ/qPhhOZi4hPx82PicsBo0quxbfTvJfLgqY5Oq6QNMUeX9
T9WatrVLnQa9bOwNWpaGkxGDG0MWFAMraAR5EFs2iF0a4lVNVj0RloP1tHX9AAUR
tBhBbm9uIDxBbm9uQGVsaGFja2VyLm5ldD6JAJUDBRBJH7p1PRGWg/W0df0BAUI3
BACY4mBAgic5s+jTFUYkYGAk4b9Jz+mDuVBW5yKs4TMcgEXrEEBNzocve160DaLo
QXqRT+8yupndcu5Uxupk23npKkXfnROo17Zn8vJ8aiZkn9JGVQ1OqhQXSi959a6Q
l1kJlAhH/qQ0hoFFQ4SLkV0Rp6lQjMdBlPugHcN1ulNu2w==
=c42M
-----END PGP PUBLIC KEY BLOCK-----


Nueva llave DSA:

Key ID: 0x592F2029
Fingerprint for DSA Key:
178D 0C89 E3B5 2965 6530 20CB 77DE B789 592F 2029
1024D/592F2029 Anon _ (On Anonymous Mode!!) <Anon[at]elhacker.net>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (FreeBSD)

mQGiBElkDJURBACdX+VAjzhy5JObq+8ciDX9Zj7zEYHErApxmqVEhU+R2dihdsDw
DwOIQImFYiheAH4J/bHac+MiO3pUUL6L6G5KhRXn2lJoEVbD1w8Pk9jmXQpW2p0s
+v1GARPQawYFEOZA60fgHzktSNsX0VoZxQ1kdpSKPs1Ub1daHNQJIuTbUwCgusvr
FwMhQRlkDoaWZqF6KClEvIUEAI6jGFk1vqFQh8Fs8uouDlxoj9+HpHEqK8Q44bRt
i9kX+MR/rSc5690dMMLn2P2nbs+w8zHbyCVqxTajCxIVzbzYSWzQppyTl71d/Fpa
uRQF5nCYli9+lisQCbG0qEmepuPX4dyOU/QMxFqMjamIGhVQYDZOi5bxfQSfurhd
4zjTA/4vCEUnxpLoO9EDJqmoKSmjwzWD1iGlmrJRavvcsOWSMMNyb4Kmvz0jX/55
1t96pSRmequl8v0QJw9Te7ARDAgwbnxF0bXnbjATxAejyTwOSkpNrGGk4uuF/5ZA
WGXkQ5qKUtTVZ5WE/gQGAJsR2Wv5q7cPLhZA/aLW8GD/Jrms7LQwQW5vbiBfIChP
biBBbm9ueW1vdXMgTW9kZSEhKSA8QW5vbkBlbGhhY2tlci5uZXQ+iGEEExECACEF
AklkDJUCGwMHCwkIBwMCAQQVAggDBBYCAwECHgECF4AACgkQd963iVkvICkXDgCf
V595dG4pyfyExBmWcAvcHzn2zcIAn0zXuQhEIMYtSn8eI8LQDZkRXJMSiJwEEAEC
AAYFAklkDo4ACgkQPRGWg/W0df0CywP7Bdxz0GXvx05VizPHnqJuuJD/Qw5nZ2wt
l7Hc+QL2b08AF0CSYMB7K8Mx9Hn09KbBnAzWjgaV18knATl/JUnETgBD00VTS9Sl
3X4tUT6R8v1y/U7IYeqzr8zclP7ZLv1Caac9QHHtWuhQpLzSJ4g82pB4SPGbKWCp
3VfW5V9IN4u5BA0ESWQMlRAQALalb8UYbjlLHtA1+4gfjTjxjvVDXmqymfECKpk+
Q0QcbgefOpiXqrwRTJzD9LzhN2y8XYwn/I818vexA3/oknxLeAlFionQ9BDGfx40
ISsyEzyAMRbxDV3mUk0oifX0Kh8a8lIBSyEp0sU6TzN4sQLMIWn87KbB6+Z8dp3L
xmqjyTLkk9rIh5p3Pk+uX2PZaUX6VhGiiohe2VSQWhUnj6R8tVVhUsvZerYcL9bj
x9XxOb/+ItIORXj9NDKjE4zYAFPbe8VP5f/nTBAMMCVwEn/rtcR0ar+3SRES06PT
1Xk1inirDIjdgFnyV/o+yZGbbv7KPWyV2QlJ35B+YFaogemkWNaxNOkX9ReU+nBO
m2w7/vGiLbIUeRYgqTV6zObNQ8iHPvCjDCB27Swzg3DqnJMCdFQeExoYafrcydhB
w3mY0Ad8DmLVFNh0qmMEOQumz63qD2j5+C6RZFtYZD1v7oLR6xTVB8avJt6IKJlB
lpX8zeO/VGlhtnRY2RY9jO74bVQdCPLerPSEAgoH13wQmkcclf8wIBIiBSpDRpZ/
/YDba861JKo7NAI3uE7nNixeGy113dHFXOoyUbod+HDdgI3wANVn7dUNlLr3PhpM
0t+r7Y3JNNZWmvClXn4K7DpFup3f8tJX8AkpSMMzq4/IT15msy/98TdF6BUbHQnF
93GnAAMFD/4hIksu4TNWLCJnj0D65NXv4gDc/j08I91RvbcfsOj/qYLJdWyZjHCR
WacsFcQ4Xlrvz44+C+KaoQnDtuUWaWhCcaoJ0badYwf1+18KeflJtWDqkVTS3Qvu
XGpdNwx3VYv+7Ls+PtC4JuqZbldyEwqXAhmFMZwkvCIEUS7LdVnlKNTkhZDWGAeE
gB9iEE5YuWfeFj8cqZ1/9bZmamJOTqbAZtobRfU5sJc1oceCgHyFURdVpteCKW2V
PfvFGR70pUm4REAsBO2r/xGOdhePbi9nYpTN4/SnLr8C90GfbxGPsDFoMy9Bycno
QoNoPaI8kyUY4KaNg2TDhP5MwLnbZ1JFLScqRvromUhKodoKl+H1QIh94w+VTUos
hGkxE6CelIqftOXSNf7QYh2AjbsxW2nZ7RUxewmKpnQx6aqzdkmDrvv2ctXdV/fB
iQMjMohF+VrZc4sQmyAagBf83Fk9HwWb+blQplWgWJ4AHzek4YVQjsBGznnurDJI
SBatq8NcamNTStYTBz3oywzQ1mCx7du195GKRZOvllA9tOrQUV15X3b+nFPgPtDk
+8DewbsE+A2wvSMGRjmg28W/CAupt3Dg0THQwfia+wwBD3ENIrEVg7ZfWcWOBPkz
/6s5PeKHjPk1nMi14qxsnNN9PkEc+xjQ6/rVsilREgtjH8R/n+HYK4hJBBgRAgAJ
BQJJZAyVAhsMAAoJEHfet4lZLyApQNkAoLg6EGFALzYb9WY6FfrTMvFpIahOAJ0Z
ivZBzNM9TrEmbiFfvC/iP/L+1Q==
=686s
-----END PGP PUBLIC KEY BLOCK-----


Para los que tenian mi llave anterior podran comprobar que esta nueva esta firmada por mi llave anterior, para comprobar su valides.

Un Saludo


Populares Siempre