Kali Linux Python Wlan

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Merkator
User
Beiträge: 151
Registriert: Sonntag 5. Dezember 2021, 17:15

Hey.

Mein ziel ist es mithilfe eines Python files per kali linux ein wlan zu erschafften

Code: Alles auswählen

 import os

def create_open_wifi_network(ssid, redirect_url):
    # First things first, stop the network manager to configure our wireless interface
    os.system("sudo service NetworkManager stop")

    # Let's configure the wireless interface as a cool access point
    os.system("sudo ifconfig wlan0 down")
    os.system("sudo iwconfig wlan0 mode master")
    os.system("sudo ifconfig wlan0 up")
    os.system(f"sudo iwconfig wlan0 essid '{ssid}'")

    # Now, we'll set up DHCP and IP forwarding to keep things flowing smoothly
    os.system("sudo service dnsmasq start")
    os.system("sudo service hostapd start")
    os.system("sudo sysctl net.ipv4.ip_forward=1")
    os.system("sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE")

    # Time to add a little twist - a captivating captive portal to redirect users to the provided URL
    with open("/etc/hostapd/hostapd.conf", "w") as f:
        f.write(f"interface=wlan0\nssid={ssid}\ndriver=nl80211\nchannel=6\n")

    os.system("sudo systemctl unmask hostapd")
    os.system("sudo systemctl enable hostapd")
    os.system("sudo hostapd /etc/hostapd/hostapd.conf")

    # Let's make sure IPv4 forwarding is always on point, even on boot
    with open("/etc/sysctl.conf", "a") as f:
        f.write("net.ipv4.ip_forward=1\n")

    # And just to be safe, we'll add some slick iptables rules on boot too
    with open("/etc/rc.local", "a") as f:
        f.write("iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\n")

    print("Boom! Your super cool open Wi-Fi network with a captive portal is all set up!")

if __name__ == "__main__":
    ssid = "OpenNetwork"
    redirect_url = "http://google.com/"
    create_open_wifi_network(ssid, redirect_url)
Wenn ich den code ausführe, so erscheint mein wlan auch. jedoch kann man sich nicht richtig verbinden?

Jede hilfe gern
Benutzeravatar
grubenfox
User
Beiträge: 433
Registriert: Freitag 2. Dezember 2022, 15:49

Funktioniert das Ganze denn wenn man die Befehle so in der Shell vom Kali-Linux eintippt? Haben die neu angelegten Dateien auch die richtigen Rechte?
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ein Python-Programm, dass gefühlt zu 90% aus os.system()-Aufrufen besteht, ist übrigens ein besserer Kandidat für ein Shell-Skript. Abgesehen davon, dass os.system() schon sehr lange nicht mehr verwendet werden sollte, macht es auch wenig Sinn, um diesen Teil noch eine Python-Schicht zu basteln. Natürlich kann man das Shell-Skript später sozusagen als eine Einheit innerhalb eines Python-Moduls aufrufen und da eine GUI drumherum bauen, oder was auch immer man damit vorhat.
Benutzeravatar
__blackjack__
User
Beiträge: 13122
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Um den Punkt, dass das kein Python ist was Du da geschrieben hast, noch mal deutlich zu machen, hier das ganze als Bash-Skript. Das war supereinfach zu konvertieren. Hauptsächlich einfach die ``os.system("…")``-”Rahmen” um die einzelnen Shell-Befehle entfernen. Und die ganzen ``sudo`` habe ich entfernt. Wenn *jedes* Kommando in einem Skript ``sudo`` braucht, dann braucht keines davon *im* Skript ``sudo`` sondern man ruft das Skript selbst mit den entsprechenden Rechten auf.

Code: Alles auswählen

#!bin/bash

ssid=OpenNetwork

#
# First things first, stop the network manager to configure our wireless
# interface
# 
service NetworkManager stop
#
# Let's configure the wireless interface as a cool access point
# 
ifconfig wlan0 down
iwconfig wlan0 mode master
ifconfig wlan0 up
iwconfig wlan0 essid $ssid
#
# Now, we'll set up DHCP and IP forwarding to keep things flowing smoothly
# 
service dnsmasq start
service hostapd start
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#
# Time to add a little twist - a captivating captive portal to redirect users to
# the provided URL
# 
echo -e "interface=wlan0\nssid=$ssid\ndriver=nl80211\nchannel=6" > /etc/hostapd/hostapd.conf
systemctl unmask hostapd
systemctl enable hostapd
hostapd /etc/hostapd/hostapd.conf
#
# Let's make sure IPv4 forwarding is always on point, even on boot
# 
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
#
# And just to be safe, we'll add some slick iptables rules on boot too
# 
echo 'iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE' >> /etc/rc.local

echo 'Boom! Your super cool open Wi-Fi network with a captive portal is all set up!'
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Merkator
User
Beiträge: 151
Registriert: Sonntag 5. Dezember 2021, 17:15

__blackjack__ hat geschrieben: Freitag 7. Juli 2023, 12:16 Um den Punkt, dass das kein Python ist was Du da geschrieben hast, noch mal deutlich zu machen, hier das ganze als Bash-Skript. Das war supereinfach zu konvertieren. Hauptsächlich einfach die ``os.system("…")``-”Rahmen” um die einzelnen Shell-Befehle entfernen. Und die ganzen ``sudo`` habe ich entfernt. Wenn *jedes* Kommando in einem Skript ``sudo`` braucht, dann braucht keines davon *im* Skript ``sudo`` sondern man ruft das Skript selbst mit den entsprechenden Rechten auf.

Code: Alles auswählen

#!bin/bash

ssid=OpenNetwork

#
# First things first, stop the network manager to configure our wireless
# interface
# 
service NetworkManager stop
#
# Let's configure the wireless interface as a cool access point
# 
ifconfig wlan0 down
iwconfig wlan0 mode master
ifconfig wlan0 up
iwconfig wlan0 essid $ssid
#
# Now, we'll set up DHCP and IP forwarding to keep things flowing smoothly
# 
service dnsmasq start
service hostapd start
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#
# Time to add a little twist - a captivating captive portal to redirect users to
# the provided URL
# 
echo -e "interface=wlan0\nssid=$ssid\ndriver=nl80211\nchannel=6" > /etc/hostapd/hostapd.conf
systemctl unmask hostapd
systemctl enable hostapd
hostapd /etc/hostapd/hostapd.conf
#
# Let's make sure IPv4 forwarding is always on point, even on boot
# 
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
#
# And just to be safe, we'll add some slick iptables rules on boot too
# 
echo 'iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE' >> /etc/rc.local

echo 'Boom! Your super cool open Wi-Fi network with a captive portal is all set up!'

Wenn ich dein script ausführe hat es die gleiche wirkung?
Benutzeravatar
__blackjack__
User
Beiträge: 13122
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Sollte es wenn ich keinen Fehler gemacht habe. Beziehungsweise ist da ja kein ``sudo`` mehr drin, das heisst man muss das Skript als ganzes mit entsprechenden Rechten ausführen, was dann auch dazu führt, dass die Schreibvorgänge in die Dateien mit diesen Rechten gemacht werden. Das war ja beim ”Python”-Quelltext nicht der Fall — es sei denn das wurde schon mit den Rechten ausgeführt und die ganzen ``sudo``-Aufrufe da drin warn eh schon überflüssig.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Merkator
User
Beiträge: 151
Registriert: Sonntag 5. Dezember 2021, 17:15

__blackjack__ hat geschrieben: Freitag 7. Juli 2023, 16:16 Sollte es wenn ich keinen Fehler gemacht habe. Beziehungsweise ist da ja kein ``sudo`` mehr drin, das heisst man muss das Skript als ganzes mit entsprechenden Rechten ausführen, was dann auch dazu führt, dass die Schreibvorgänge in die Dateien mit diesen Rechten gemacht werden. Das war ja beim ”Python”-Quelltext nicht der Fall — es sei denn das wurde schon mit den Rechten ausgeführt und die ganzen ``sudo``-Aufrufe da drin warn eh schon überflüssig.

Ok danke ich probiers mal aus
Merkator
User
Beiträge: 151
Registriert: Sonntag 5. Dezember 2021, 17:15

Jetzt kommt sowas:

Error for wireless request "Set Mode" (8B06) :
SET failed on device wlano ; Invalid argument.
net.ipv4.ip_forward = 1.
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable hostapd
wlan0: interface state UNINITIALIZED->ENABLED
KALI LINUX
wlan0: AP-ENABLED
wlan.py
X11VNC Ser.- usw. .....
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@Merkator
Mal Hand aufs Herz: Weißt du eigentlich ansatzweise, was du da tust...?

Soll das am Ende eine Art Kiosk-System werden? Bist du sicher, dass du dabei so tief ansetzen willst?

Es gibt auch fertige Lösungen, oft in Form von angepassten Browsern.

Für entsprechende Unterstützung müsstest du halt verraten, was genau du vorhast und auf welchem System das laufen soll.
Benutzeravatar
__blackjack__
User
Beiträge: 13122
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@snafu: Das ist Merkator — natürlich weiss das Skript-Kiddie nicht was es da tut. Frag gar nicht erst nach was jemand der seine Programme Passwordstealer nennt, aber nur zufällig, das macht natürlich was ganz anderes, eigentlich machen will. Ich finde die Inkompetenz jedenfalls beruhigend. 😈
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Merkator
User
Beiträge: 151
Registriert: Sonntag 5. Dezember 2021, 17:15

snafu hat geschrieben: Freitag 7. Juli 2023, 20:04 @Merkator
Mal Hand aufs Herz: Weißt du eigentlich ansatzweise, was du da tust...?

Soll das am Ende eine Art Kiosk-System werden? Bist du sicher, dass du dabei so tief ansetzen willst?

Es gibt auch fertige Lösungen, oft in Form von angepassten Browsern.

Für entsprechende Unterstützung müsstest du halt verraten, was genau du vorhast und auf welchem System das laufen soll.


Ganz ehlich.....ich habe keine Ahnung. Nur ich brauche dieses eine wlan mit der weiterleitung. Mehr nicht. Von Python hab ich viel ahnung..
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Merkator hat geschrieben: Freitag 7. Juli 2023, 20:11 Von Python hab ich viel ahnung..
Seit wann?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

@snafu: es wird um sowas gehen: https://youtu.be/4hBROf92qS0
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hier muss nur der Falsche mitlesen und dann gibt es für Merkator per PN ein "richtig cooles" Skript, das alles selbständig macht und nur noch auf seinem Rechner per sudo ausgeführt werden muss...
Benutzeravatar
DeaD_EyE
User
Beiträge: 1021
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Das ist aber kein lohnenswertes Angriffsziel.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
noisefloor
User
Beiträge: 3857
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Von Python hab ich viel ahnung..
Na ja... auch mit nur semi-viel Ahnung würde man wissen, dass `os.system` für so Aufrufe veraltet ist.

An zwei Stellen im Ausgangsskript fehlt ein `sudo` bzw. die notwendigen Root-Rechte. Und die Verwendung von `rc.local` ist seit ca. 10 Jahren unter Linux nicht mehr Stand der Dinge.

Gruß, noisefloor
Antworten