-
-
Save barrriwa/80d6433144e93c06ad3a5c361bf6422d to your computer and use it in GitHub Desktop.
Get Password PPPoE Indihome ( Fiberhome )
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Login to fiberhome modem as Super User | |
| // Go to Network > BroadBand Settings > Internet Settings | |
| // Paste this script inside browser console | |
| (function() { | |
| console.clear(); | |
| console.log("%c FiberHome Password Extractor ", "background: #222; color: #bada55; font-size: 16px; padding: 5px;"); | |
| // 1. Find the specific iframe that contains the decryption keys | |
| // We scan all frames (windows) on the page to find one that has 'fhdecrypt' exposed | |
| let decryptorFrame = Array.from(window.frames).find(f => { | |
| try { | |
| return f.fhdecrypt && typeof f.fhdecrypt === 'function'; | |
| } catch (e) { | |
| return false; // Handle cross-origin restrictions if any | |
| } | |
| }); | |
| if (!decryptorFrame) { | |
| console.error("β Error: Could not find the decryption function."); | |
| console.warn("π Please make sure you are on the 'Network' > 'Broadband Settings' (WAN) page before running this script."); | |
| return; | |
| } | |
| console.log("β Decryption keys found in frame:", decryptorFrame.name || "iframe"); | |
| // 2. Fetch the WAN configuration data | |
| // We use the router's internal API to get the raw JSON | |
| $.ajax({ | |
| url: '/cgi-bin/ajax?ajaxmethod=get_allwan_info', | |
| success: (response) => { | |
| try { | |
| let data = JSON.parse(response); | |
| console.log("β WAN Data retrieved. Scanning for PPPoE accounts...\n"); | |
| console.group("π Extracted Credentials"); | |
| let found = false; | |
| // 3. Loop through connections and decrypt | |
| data.wan.forEach((connection, index) => { | |
| if (connection.AddressingType === 'PPPoE') { | |
| found = true; | |
| // We use the decryptorFrame to run the decryption inside the correct context | |
| let plainPassword = "Unknown"; | |
| try { | |
| // If the password is empty or stars, ignore it. If it's a hex string, decrypt it. | |
| if (connection.Password && connection.Password.length > 10) { | |
| plainPassword = decryptorFrame.fhdecrypt(connection.Password); | |
| } else { | |
| plainPassword = connection.Password; // It might be plain text already | |
| } | |
| } catch (err) { | |
| plainPassword = "Decryption Failed: " + err.message; | |
| } | |
| console.log(`%c[Connection ${index + 1}] ${connection.Name || 'Internet'}`, "color: #00bcd4; font-weight: bold;"); | |
| console.log(` π VLAN ID: ${connection.vlanid}`); | |
| console.log(` π€ Username: %c${connection.Username}`, "color: #ff9800; font-weight: bold;"); | |
| console.log(` π Password: %c${plainPassword}`, "color: #4caf50; font-weight: bold; font-size: 14px;"); | |
| console.log("---------------------------------------------------"); | |
| } | |
| }); | |
| if (!found) { | |
| console.warn("β οΈ No PPPoE connections found in the data."); | |
| } | |
| console.groupEnd(); | |
| } catch (e) { | |
| console.error("β Failed to parse router data: ", e); | |
| } | |
| }, | |
| error: (xhr) => { | |
| console.error(`β Request failed: ${xhr.status} ${xhr.statusText}`); | |
| } | |
| }); | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
FiberHome HG6xxx routers Algerie Telecom Idoomfibre Idoom Fibre PPPoE
HG6145F HG6145F1 HG6145F3 HG6245D HG6145D HG6145D2 HG6143D HG6143D3 HG6243C HG6245N AN5506