WebElektronika

Python fejlesztőkörnyezet telepítése, portscan készítése

person access_time 2019.01.31.
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ár felvenni ezt a nyelvet az újság témakörébe. Megnézzük ebben a cikkben a Python fejlesztői környezet telepítését, illetve készítünk egy alkalmazást, amely illeszkedik az IT biztonság témakörébe.


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". 

kep
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).

kep
2. ábra   Python letöltése Windows operációs rendszerre
 

A letöltött install-t indítsuk el (3. ábra). 

kep
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).

kep
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.

kep
5. ábra   Új projekt létrehozása
 

Adjuk meg a projektünk elérési útvonalát (6. ábra).

kep
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".

kep
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).

kep
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).

kep
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.

kep
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).

kep
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.

kep
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.