A Python programozási nyelv a világon nagyon elterjedt, az első ábrán láthatjuk a különböző programozási nyelvek összehasonlítását. Foglalkoztunk már a Java-val (igaz, a VHDL-lel is, amely annyira specifikus, hogy erre az ábrára már nem fért fel), és most ez a nyelv, a Python kerül fel a WebElektronika "palettájára".
1. ábra Különböző programozási nyelvek összehasonlítása
Ahhoz, hogy tudjunk ezen a nyelven programokat írni, telepíteni kell a Pythont. Ezért látogassuk meg a python oldalát, és töltsük le az általunk használt operációs rendszerre a telepítő készletet (2. ábra).
2. ábra Python letöltése Windows operációs rendszerre
A letöltött install-t indítsuk el (3. ábra).
3. ábra A Python telepítő futtatása
A sikeres telepítés után már írhatunk is programokat Python nyelven. Az első példánkat az IDLE segítségével fogjuk megírni és futtatni. Ez a program a Python telepítése során "érkezik".
Írjunk be először egy értékadást (a=2019), majd jelenítsük meg az "a" értékét (print(a)). Ezután vegyünk fel egy új változót (szoveg), amely szintén kap egy értéket, amelyet a print() segítségével szintén megjelenítünk (4. ábra).
4. ábra Első Python program az IDLE segítségével
Noha alkalmazhatnánk akár egy Notepad++-t is a fejlesztéseink során, szerencsére azonban több fejlesztőkörnyezet is rendelkezésre áll a python-nal dolgozók részére. Mi a PyCharm-ot fogjuk a későbbiekben használni (amennyiben Windows alatt dolgozunk), amelyet innen tudunk letölteni.
Telepítsük ezt a fejlesztőkörnyezetet, és azután indítsuk el a PyCharm-ot (5. ábra), majd hozzunk létre egy új projektet.
5. ábra Új projekt létrehozása
Adjuk meg a projektünk elérési útvonalát (6. ábra).
6. ábra A projekt útvonalának beállítása
Ezután a projektünkhöz adjunk hozzá egy (python) file-t (7. ábra), amelynek a neve legyen "teszt1".
7. ábra Egy új file hozzáadása a projekthez
Írjuk be a teszt1.py file-ba a következő programot.
szoveg = "Boldog uj evet kivan a WebElektronika!"
a = 2019
print(a)
print(szoveg)
Futtassuk a teszt1.py programot, és a fejlesztőkörnyezet konzol ablakában látható lesz a futási eredmény (8. ábra).
8. ábra A teszt1.py futási eredménye
Végül készítsünk egy olyan alkalmazást, amely köthető egy másik témakörünkhöz, az IT biztonsághoz. Foglalkoztunk korábban az nmap scannerrel, amelynek segítségével egy adott IP cím portjainak az állapotát tudjuk megnézni.
Készítsünk el most egy scannert, ehhez indítsuk el a Kali Linux-ot tartalmazó virtuális gépünket. Ahhoz, hogy a Python segítségével tudjunk készíteni egy nagyon egyszerű scannert, importálnunk kell majd az nmap csomagot. Ehhez viszont telepítenünk kell a python-nmap-ot (9. ábra).
9. ábra Python-nmap telepítése
A telepítés után egy szövegszerkesztővel (pl.: leafpad) hozzuk létre az "nmapscan1.py" file-t, és másoljuk be a 10. ábrán lévő programot.
10. ábra Egy egyszerű scanner
Először importáljuk a "sys"-t és az előbb telepített "nmap"-ot. Ha nem telepítettük volna előbb az nmap-ot, akkor célszerű kivételkezelés segítségével importálni, hogy elkerüljük a hibás működést.
Először létrehozunk egy "scanner"-t, majd megvizsgáljuk az argumentumok számát. Úgy fogjuk elkészíteni ezt az alkalmazást, hogy beírjuk a program meghívásakor a vizsgálandó IP-t és a portot. Ha több/kevesebb argumentumot adunk meg, akkor egy hibaüzenettel kilépünk az alkalmazásunkból.
Ha megfelelő az argumentum (programnév arg1 arg2), akkor meghívjuk a scan() függvényt, majd kiírjuk a scannelés néhány tulajdonságát.
Ezután egy for ciklus segítségével "bejárjuk" az összes scannelt host-ot, és kiírjuk a különböző host-okhoz tartozó tulajdonságokat.
Korábban már írtunk a scanme.nmap.org oldalról. Olvassuk el az itt található használati feltételeket!
Alkalmazhatjuk akár ezt (a feltételek betartása mellett) vagy egy virtuális gépünknek az IP címét. Viszont nekünk a programunk futtatásánál nem domaint kell megadnunk, hanem IP címet. Ahhoz, hogy megtudjuk az adott domainhez tartozó IP címet, futtatni kell az "nslookup" parancsot (11. ábra).
11. ábra Nslookup futtatása
Megvan már az IP cím, futtassuk most az előbb megírt programunkat (12. ábra). Először az IP címet kell megadnunk, azután a vizsgált portot az alkalmazásunk indításakor.
12. ábra A kezdetleges portscanner futtatása
Látjuk, hogy nem csak az adott portról kaptunk információt, hanem az ehhez az IP címhez tartozó domain nevét is megtudtuk.
A későbbiekben fogunk készíteni néhány alkalmazást Python nyelven, ezért tekintettük át a Python környezet telepítését.
Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálha. . . .
A Python programozási nyelv nagyon elterjedt a fejlesztők körében. Használják beágyazott rendszereknél, webes alkalmazásoknál, IT biztonság különböző területein, stb. Látható, hogy nagyon széles a felhasználási területe ennek a nyelvnek, ideje volt m. . . .
Bemutatjuk most a saját (!) Wifi-s hálózatunk tesztelésének az alapjait. Megnézzük, hogy hogyan lehet biztonságos jelszót választani. Feltörhetetlen rendszer nem létezik, de megismerve a tesztelés folyamatát, válaszokat kaphatunk arra vonatkozólag, h. . . .