los...

$ curl -sSL https://dist.crystal-lang.org/apt/setup.sh | sudo bash

$ sudo apt install crystal

sudo apt install libssl-dev # for using OpenSSL

sudo apt install libxml2-dev # for using XML

sudo apt install libyaml-dev # for using YAML

sudo apt install libgmp-dev # for using Big numbers

sudo apt install libreadline-dev # for using Readline





$ git clone https://github.com/Beyarz/portforge.cr.git





$ cd portforge.cr





$ crystal portforge.cr

[-] Argument: /home/vmotos/.cache/crystal/crystal-run-portforge.tmp host start end

[-] Example: /home/vmotos/.cache/crystal/crystal-run-portforge.tmp localhost 4440 4445





$ crystal portforge.cr localhost 5430 5450

[!] Scan started.

[+] 99.63% done.

[!] Scan finished.

[+] Forging started.

[+] The ports should be open now.

[!] To end this proccess you have to interrupt it.

Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-29 23:32 CET

Nmap scan report for localhost (127.0.0.1)

Host is up (0.000010s latency).

Not shown: 65519 closed ports

PORT STATE SERVICE

111/tcp open rpcbind

139/tcp open netbios-ssn

445/tcp open microsoft-ds

538/tcp open gdomap

631/tcp open ipp

902/tcp open iss-realsecure

4443/tcp open pharos

5432/tcp open postgresql

5433/tcp open pyrrho

6342/tcp open unknown

8080/tcp open http-proxy

8307/tcp open unknown

9050/tcp open tor-socks

17500/tcp open db-lsp

17600/tcp open unknown

17603/tcp open unknown

Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-29 23:33 CET

Nmap scan report for localhost (127.0.0.1)

Host is up (0.000011s latency).

Not shown: 65500 closed ports

PORT STATE SERVICE

111/tcp open rpcbind

139/tcp open netbios-ssn

445/tcp open microsoft-ds

538/tcp open gdomap

631/tcp open ipp

902/tcp open iss-realsecure

4443/tcp open pharos

5430/tcp open radec-corp

5431/tcp open park-agent

5432/tcp open postgresql

5433/tcp open pyrrho

5434/tcp open sgi-arrayd

5435/tcp open sceanics

5436/tcp open pmip6-cntl

5437/tcp open pmip6-data

5438/tcp open unknown

5439/tcp open unknown

5440/tcp open unknown

5441/tcp open unknown

5442/tcp open unknown

5443/tcp open spss

5444/tcp open unknown

5445/tcp open smbdirect

5446/tcp open unknown

5447/tcp open unknown

5448/tcp open unknown

5449/tcp open unknown

5450/tcp open tiepie

6342/tcp open unknown

8080/tcp open http-proxy

8307/tcp open unknown

9050/tcp open tor-socks

17500/tcp open db-lsp

17600/tcp open unknown

17603/tcp open unknown

¿Eres un "azulón" y quieres tocarla moral al pobre pentester que intenta enumerar los servicios de tu servidor para comprometerlo?Con portforge.cr podrás abrir tantos sockets como quieras de forma que cuando alguien escanee tu servidor verá un montón de puertos abiertos, haciendo tedioso encontrar aquellos que realmente son válidos.Digamos que es un pequeño paso para vencer o dificultar el reconocimiento.Portforge es realmente un script escrito en Crystal (un lenguaje de programación muy parecido a Ruby) y utiliza una técnica incorporada en su compilador llamado Fibers. Se parecen mucho a los hilos del sistema, pero Fibers es mucho más ligero y la ejecución se gestiona a través del proceso 1 portforge.cr puede abrir tantos puertos como quieras entre 1024 y 65535. También funciona por debajo de 1024, pero para eso tienes que ser un usuario root. Cuanto mayor sea el rango que elijas, más tardará el script en cargar cada socket, pero la herramienta está bastante optimizada y solo debería tomar un par de minutos (según el sistema, por supuesto).El script funciona en 2 pasos: primero realiza su propio escaneo en el sistema para ver qué puertos ya están abiertos y los puertos abiertos se colocan en una lista y los puertos cerrados en otra. El siguiente paso es abrir los puertos cerrados, por lo que el script selecciona la lista con todos los puertos cerrados y abre un socket en cada uno de ellos.Mientras que la denominada "fibra" principal está abriendo un socket en cada puerto, se llama a otra "fibra" por debajo del principal que escucha las conexiones entrantes y las cierra directamente. Este proceso se repite indefinidamente, o hasta que interrumpa el script.Crystal:Opcional: