¿Eres un "azulón" y quieres tocar los... la 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.
Instalación y uso
Crystal:
$ curl -sSL https://dist.crystal-lang.org/apt/setup.sh | sudo bash
$ sudo apt install crystal
Opcional:
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.
ANTES:
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
DESPUÉS:
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
Repo: https://github.com/Beyarz/portforge.cr
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.
Instalación y uso
Crystal:
$ curl -sSL https://dist.crystal-lang.org/apt/setup.sh | sudo bash
$ sudo apt install crystal
Opcional:
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.
ANTES:
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
DESPUÉS:
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
Repo: https://github.com/Beyarz/portforge.cr
Parece sencillito y potente eso de Crystal. No lo conocía, pero promete.
ResponderEliminarbueno, aunque mejor sería un script que ocultara todos los puertos abiertos
ResponderEliminar¿Dices un firewall?
Eliminar