{"id":334,"date":"2009-03-28T17:43:41","date_gmt":"2009-03-28T23:43:41","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=334"},"modified":"2014-03-12T11:38:48","modified_gmt":"2014-03-12T17:38:48","slug":"port-knocking-web","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=334","title":{"rendered":"Port Knocking WEB"},"content":{"rendered":"<p>Este articulo ser\u00e1 de especial inter\u00e9s para sitios que han sido doseados constantemente como <a href=\"http:\/\/www.remoteexecution.com\/\">remoteexecution<\/a>, <a href=\"http:\/\/www.elhacker.net\/\">elhacker.net<\/a>, incluso lo que le ocurria a <a href=\"http:\/\/www.diosdelared.com\/\">diosdelared<\/a><\/p>\n<p>Me han dicho que han escrito un articulo explicando como han deseado la cueva, el articulo lo pueden encontrar aqui<\/p>\n<p>http:\/\/mbytesecurity.com\/tecnicas-blackhat-denial-of-service\/<\/p>\n<p>sinceramente, salvo que fuera un ni\u00f1o de 6 a\u00f1os, me dar\u00eda una pena terrible usar los m\u00e9todos que ah\u00ed plantean y peor aun llamarlos blackhat, obviamente ninguno de esos m\u00e9todos sirve para tirar la cueva, son muy b\u00e1sicos, sin embargo al leer la parte del Port Knocking, se escucho interesante, como una forma de evitar un DoS, podr\u00eda ser pero\u2026 primero hay que recordar que para que sirve realmente el Port knocking. Por cierto, El no ha desarrollado nada similar a lo que estoy planteado en este articulo, en el suyo dice que tiene Port knocking en el WEB, sin embargo al hacer pruebas, se ve que es falso, su puerto 80 est\u00e1 abierto todo el tiempo, ha de decir eso, por medio a que lo Doseen.<\/p>\n<p>Port knocking<\/p>\n<p>Es un mecanismo de autenticaci\u00f3n para abrir puertos bloqueados por el firewall, un uso com\u00fan seria abrir el puerto para el escritorio remoto de Windows o el SSH para los tipos Unix. Ese es su uso, nada de anti DoS, abrir un puerto que esta cerrado, punto.<\/p>\n<p>Sin embargo como matizar un tipo Port knocking en el WEB, esta curiosidad se me ocurri\u00f3 despu\u00e9s de leer el articulo anteriormente citado, pues si tomamos literal la forma de usarse el Port knocking el puerto 80 deberia estar cerrado. Sin embargo es el puerto default para recibir peticiones WEB, como \u00bfcerrar algo que tiene que estar abierto para posteriomente reabrirlo?<\/p>\n<p>La respuesta es que no se puede cerrar, obvio tiene que estar abierto, sin embargo bajo el principio de Port knocking en Linux se puede combinar el concepto, haciendo que responda un servicio web en primer lugar y luego otro, ambos desde el mismo puerto 80<\/p>\n<p>\u00bfY como he hecho esto?<\/p>\n<p>Pues en GNU\/Linux ha sido muy f\u00e1cil, como siempre en cuestiones de red, cualquier cosa es posible en estos sistemas operativos.<\/p>\n<p>Primero he declarado una IP interna, bien podr\u00eda ser 192.168.0.0 o 10.10.10.x, para este caso he usado la ip 10.10.10.1 y he configurado a apache para que responda al puerto 85, solo si la conexi\u00f3n es en la ip 10.10.10.1<\/p>\n<p>Los que sepan de redes, sabran que ya desde aqu\u00ed ese puerto no podr\u00eda ser alcanzado desde internet, y es en ese puerto donde hostearemos el servicio real del web, como foros o cualquier otro.<\/p>\n<p>Luego, ya que el Port knocking tiene que ser realizado con la ayuda del navegador, en un caso \u201cnormal\u201d de uso seria a base de telnets, para este caso solo usaremos el navegador para que sea lo m\u00e1s transparente posible.<\/p>\n<p>En el apache tambi\u00e9n se abrir\u00e1 el puerto 250 y 251, estos para mi configuraci\u00f3n, los dem\u00e1s pueden abrir los puertos que quieran.<\/p>\n<p>Se escriben archivos html con tags que vayan redirigi\u00e9ndose en la secuencia del Port knocking, una vez alcanzada la secuencia dentro del sistema operativo se lanza un iptables reenlazando a la ip y el puerto interno 10.10.10.1:85 al puerto externo 80, para que entonces desde el internet ya se pueda alcanzar el sitio.<\/p>\n<p>Requerimientos<\/p>\n<p>Para realizar esta configuraci\u00f3n se requiere descargar el knockd<br \/>\nhttp:\/\/www.zeroflux.org\/proj\/knock\/files\/knock-0.5.tar.gz<\/p>\n<p class=\"MsoNormal\">Zonas editadas del httpd.conf del apache<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"># Listen:<br \/>\nAllows you to bind Apache to specific IP addresses and\/or<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"># ports,<br \/>\ninstead of the default. See also the &lt;VirtualHost&gt;<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">#<br \/>\ndirective.<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">#<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"># Change<br \/>\nthis to Listen on specific IP addresses as shown below to<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"># prevent<br \/>\nApache from glomming onto all bound IP addresses (0.0.0.0)<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\">#<\/p>\n<p class=\"MsoNormal\">#Listen 12.34.56.78:80<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\">Listen 10.10.10.1:85<\/p>\n<p class=\"MsoNormal\">Listen 80<\/p>\n<p class=\"MsoNormal\">Listen 850<\/p>\n<p class=\"MsoNormal\">Listen 851<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\">Regla nat requerida en esta configuraci&oacute;n<\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">iptables -t<br \/>\nnat -A PREROUTING -s %IP% -p tcp &#8211;dport 80<\/span><span style=\"\">&nbsp;<br \/>\n<\/span>-j DNAT &#8211;to-destination 10.10.10.1:85<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><o :p>&nbsp;<\/o><\/span><\/p>\n<p class=\"MsoNormal\">%IP% es una variable que contiene la IP, esta<br \/>\nvariable la provee<br \/>\nel knockd<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\">Configuraci&oacute;n del <span style=\"\">&nbsp;<\/span>knockd.conf<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">[options]<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>logfile = \/var\/log\/knockd.log<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><o :p>&nbsp;<\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">[AbrirlaCueva]<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>sequence<span style=\"\">&nbsp;&nbsp;&nbsp; <\/span>= 80,850,851<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>seq_timeout = 10<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>start_command = \/sbin\/iptables -t nat<br \/>\n-A PREROUTING -s %IP% -p tcp &#8211;dport 80<span style=\"\">&nbsp;<br \/>\n<\/span>-j DNAT &#8211;to-destination 10.10.10.1:85<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>cmd_timeout= 300<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>stop_command = \/sbin\/iptables -t nat -D<br \/>\nPREROUTING -s %IP% -p tcp &#8211;dport 80<span style=\"\">&nbsp; <\/span>-j<br \/>\nDNAT &#8211;to-destination 10.10.10.1:85<o :p><\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\"><\/span><span style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span>tcpflags<span style=\"\">&nbsp;&nbsp;&nbsp; <\/span>= syn<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\">** el cmd_timeout = 300 segundos, son 5 minutos,<br \/>\ndespu&eacute;s de<br \/>\nque transcurran otro iptables cerrara el Port Knocking<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\">contenido de los archivos html desde el servicio<br \/>\nweb<span style=\"\">&nbsp; <\/span>antes del port knocking<\/p>\n<p class=\"MsoNormal\"><o :p>&nbsp;<\/o><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">index.html<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"\" lang=\"EN-US\">&lt;META<br \/>\nHTTP-EQUIV=&#8221;refresh&#8221; CONTENT=&#8221;0;<br \/>\nurl=https:\/\/www.lastdragon.net:850\/segundo.html&#8221;&gt;<o :p><\/o><\/span><\/p>\n<p class=\"MsoNormal\">Segundo.html<\/p>\n<p class=\"MsoNormal\">&lt;META HTTP-EQUIV=&#8221;refresh&#8221; CONTENT=&#8221;0;<br \/>\nurl=https:\/\/www.lastdragon.net:851\/tercero.html&#8221;&gt;<\/p>\n<p class=\"MsoNormal\">Tercero.html<\/p>\n<p class=\"MsoNormal\">&lt;META HTTP-EQUIV=&#8221;refresh&#8221; CONTENT=&#8221;1;<br \/>\nurl=https:\/\/www.lastdragon.net\/inicio.php&#8221;&gt;<\/p>\n<p class=\"MsoNormal\">** inicio.php ya sera un archivo servido por el<br \/>\nservicio en<br \/>\nel puerto 85 de la ip 10.10.10.1.<\/p>\n<p>Comprobaci\u00f3n.<\/p>\n<p>En el video se hacen pruebas, por ejemplo si conocemos un archivo, no deber\u00edamos poder jalarlo si el port knoking esta cerrado. El archivo solo puede ser jalado cuando, el port nocking se ha realizado.<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"\/\/www.youtube.com\/embed\/emSiI53xJrE\" frameborder=\"0\" allowfullscreen><\/iframe>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este articulo ser\u00e1 de especial inter\u00e9s para sitios que han sido doseados constantemente como remoteexecution, elhacker.net, incluso lo que le ocurria a diosdelared Me han dicho que han escrito un articulo explicando como han deseado la cueva, el articulo lo pueden encontrar aqui http:\/\/mbytesecurity.com\/tecnicas-blackhat-denial-of-service\/ sinceramente, salvo que fuera un ni\u00f1o de 6 a\u00f1os, me dar\u00eda&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4],"tags":[],"class_list":["post-334","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales","category-hackers-and-tools"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334"}],"version-history":[{"count":1,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions"}],"predecessor-version":[{"id":976,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions\/976"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}