Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
rdpy — Protocolo de Área de Trabalho Remota no Twisted Python | Kitploit
Ferramentas/GitHubGitHub/citronneur/rdpy
Segurança de RedeTestes de PenetraçãoRed TeamingFerramenta de Acesso Remoto
GitHubcitronneur/rdpy

rdpy

Protocolo de Área de Trabalho Remota no Twisted Python

Ver Repositório
1.7k54017há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

RDPY Build Status PyPI version

Remote Desktop Protocol em Python com Twisted.

RDPY é uma implementação puramente Python do protocolo Microsoft RDP (Remote Desktop Protocol) (lado cliente e servidor). RDPY é construído sobre o motor de rede orientado a eventos Twisted. RDPY suporta a camada de segurança RDP padrão, RDP sobre SSL e autenticação NLA (através do protocolo de autenticação ntlmv2).

RDPY fornece os seguintes binários RDP e VNC:

  • Proxy Man In The Middle RDP que grava sessões
  • Honeypot RDP
  • Capturador de ecrã RDP
  • Cliente RDP
  • Cliente VNC
  • Capturador de ecrã VNC
  • Player RSS

Construir

RDPY está completamente implementado em Python, exceto o algoritmo de descompressão de bitmap que é implementado em C para desempenho.

Dependências

As dependências são necessárias apenas para os binários pyqt4:

  • rdpy-rdpclient
  • rdpy-rdpscreenshot
  • rdpy-vncclient
  • rdpy-vncscreenshot
  • rdpy-rssplayer

Linux

Exemplo para sistemas baseados em Debian:

sudo apt-get install python-qt4

OS X

Exemplo para OS X para instalar PyQt com homebrew

$ brew install qt sip pyqt

Windows

x86x86_64
PyQt4PyQt4
PyWin32PyWin32

Construir

$ git clone https://github.com/citronneur/rdpy.git rdpy
$ pip install twisted pyopenssl qt4reactor service_identity rsa pyasn1
$ python rdpy/setup.py install

Ou use PIP:

$ pip install rdpy

Para virtualenv, será necessário ligar a biblioteca qt4 a ele:

$ ln -s /usr/lib/python2.7/dist-packages/PyQt4/ $VIRTUAL_ENV/lib/python2.7/site-packages/
$ ln -s /usr/lib/python2.7/dist-packages/sip.so $VIRTUAL_ENV/lib/python2.7/site-packages/

Binários RDPY

RDPY vem com alguns binários muito úteis. Estes binários são compatíveis com Linux e Windows.

rdpy-rdpclient

rdpy-rdpclient é um simples cliente RDP Qt4.

$ rdpy-rdpclient.py [-u username] [-p password] [-d domain] [-r rss_ouput_file] [...] XXX.XXX.XXX.XXX[:3389]

Pode usar rdpy-rdpclient num Cenário de Sessão de Gravação, utilizado no rdpy-rdphoneypot.

rdpy-vncclient

rdpy-vncclient é um simples cliente VNC Qt4.

$ rdpy-vncclient.py [-p password] XXX.XXX.XXX.XXX[:5900]

rdpy-rdpscreenshot

rdpy-rdpscreenshot guarda o ecrã de login num ficheiro.

$ rdpy-rdpscreenshot.py [-w width] [-l height] [-o output_file_path] XXX.XXX.XXX.XXX[:3389]

rdpy-vncscreenshot

rdpy-vncscreenshot guarda a primeira atualização do ecrã num ficheiro.

$ rdpy-vncscreenshot.py [-p password] [-o output_file_path] XXX.XXX.XXX.XXX[:5900]

rdpy-rdpmitm

rdpy-rdpmitm é um proxy RDP que permite realizar um ataque Man In The Middle no protocolo RDP. Grava o Cenário de Sessão num ficheiro rss que pode ser reproduzido pelo rdpy-rssplayer.

$ rdpy-rdpmitm.py -o output_dir [-l listen_port] [-k private_key_file_path] [-c certificate_file_path] [-r (for XP or server 2003 client)] target_host[:target_port]

O diretório de saída é usado para guardar o ficheiro rss com o seguinte formato (YYYYMMDDHHMMSS_ip_index.rss) O ficheiro de chave privada e o ficheiro de certificado são ficheiros criptográficos clássicos para ligações SSL. O protocolo RDP pode negociar a sua própria camada de segurança. Se um dos parâmetros for omitido, o servidor usa o RDP padrão como camada de segurança.

rdpy-rdphoneypot

rdpy-rdphoneypot é um Honeypot RDP. Use um Cenário de Sessão Gravada para reproduzir o cenário através do Protocolo RDP.

$ rdpy-rdphoneypot.py [-l listen_port] [-k private_key_file_path] [-c certificate_file_path] rss_file_path_1 ... rss_file_path_N

O ficheiro de chave privada e o ficheiro de certificado são ficheiros criptográficos clássicos para ligações SSL. O protocolo RDP pode negociar a sua própria camada de segurança. Se um dos parâmetros for omitido, o servidor usa o RDP padrão como camada de segurança. Pode especificar mais de um ficheiro para corresponder a mais tamanhos de ecrã comuns.

rdpy-rssplayer

rdpy-rssplayer é usado para reproduzir ficheiros de Cenário de Sessão Gravada (rss) gerados quer pelos binários rdpy-rdpmitm ou rdpy-rdpclient.

$ rdpy-rssplayer.py rss_file_path

Widget Qt RDPY

RDPY também pode ser usado como um widget Qt através da classe rdpy.ui.qt4.QRemoteDesktop. Pode ser incorporado na sua própria aplicação Qt. O qt4reactor deve ser usado na sua aplicação para que Twisted e Qt funcionem em conjunto. Para mais detalhes, veja as fontes do rdpy-rdpclient.

Biblioteca RDPY

Em poucas palavras, RDPY pode ser usado como uma biblioteca de protocolos com um motor twisted.

Cliente RDP Simples

from rdpy.protocol.rdp import rdp

class MyRDPFactory(rdp.ClientFactory):

    def clientConnectionLost(self, connector, reason):
        reactor.stop()

    def clientConnectionFailed(self, connector, reason):
        reactor.stop()

    def buildObserver(self, controller, addr):

        class MyObserver(rdp.RDPClientObserver):

            def onReady(self):
                """
                @summary: Call when stack is ready
                """
                #send 'r' key
                self._controller.sendKeyEventUnicode(ord(unicode("r".toUtf8(), encoding="UTF-8")), True)
                #mouse move and click at pixel 200x200
                self._controller.sendPointerEvent(200, 200, 1, true)

            def onUpdate(self, destLeft, destTop, destRight, destBottom, width, height, bitsPerPixel, isCompress, data):
                """
                @summary: Notify bitmap update
                @param destLeft: xmin position
                @param destTop: ymin position
                @param destRight: xmax position because RDP can send bitmap with padding
                @param destBottom: ymax position because RDP can send bitmap with padding
                @param width: width of bitmap
                @param height: height of bitmap
                @param bitsPerPixel: number of bit per pixel
                @param isCompress: use RLE compression
                @param data: bitmap data
                """
                
            def onSessionReady(self):
		        """
		        @summary: Windows session is ready
		        """

            def onClose(self):
                """
                @summary: Call when stack is close
                """

        return MyObserver(controller)

from twisted.internet import reactor
reactor.connectTCP("XXX.XXX.XXX.XXX", 3389, MyRDPFactory())
reactor.run()

Servidor RDP Simples

from rdpy.protocol.rdp import rdp

class MyRDPFactory(rdp.ServerFactory):

    def buildObserver(self, controller, addr):

        class MyObserver(rdp.RDPServerObserver):

            def onReady(self):
                """
                @summary: Call when server is ready
                to send and receive messages
                """

            def onKeyEventScancode(self, code, isPressed):
                """
                @summary: Event call when a keyboard event is catch in scan code format
                @param code: scan code of key
                @param isPressed: True if key is down
                @see: rdp.RDPServerObserver.onKeyEventScancode
                """
Baixar ferramenta