使用Python在 Kali Linux 终端中制作端口扫描器
在计算机网络中,端口是网络连接开始和结束的虚拟点。这就像你家的一扇敞开的门,如果你不关闭它,那么任何人都可以进入你的家。端口扫描器是一个程序,它在网络中搜索端口并尝试查找虚拟打开和关闭的端口。这是黑客或网络安全专家用来发现网络中敞开的大门或弱点的常用技术。
端口扫描程序如何工作?
该程序发送网络请求抛出网络并尝试连接到计算机上的特定 TCP 或 UDP 端口并记录响应。
三种类型的响应如下:
- Open, Accepted :当端口打开时,您可以通过它们访问此系统。
- Closed, Not Listening : 当这个端口正在使用或此时不可用时
- 已过滤、已删除、已阻止:计算机甚至都懒得响应。
使用Python在 Kali Linux 终端上设计端口扫描器
第 1 步:设计程序
首先我们需要打开我们的 Kali Linux 终端,我们应该做的第一件事就是找出我们的Python解释器在哪里,所以我们命令
句法:
which python
当我们执行下一步时,这将很重要。
下一步我们需要打开shell,因为我们将在那里输入我们的代码,所以我们可以输入nano命令并按回车键。
句法:
nano (name).extention
例子:
nano port-scanner.py
现在在这里首先我们需要分配我们的Python解释器位置
#!//usr/bin/python
现在我们的主程序开始了,我们要导入套接字,套接字会告诉我们端口如何操作,本质上如何传输数据。
import socket
然后我们需要输入IP地址,然后我们还需要一个程序来询问我们正在寻找的端口
ip = raw_input("enter the IP Address: ")
port = input("Enter the Port Number: ")
现在我们要定义套接字我们正在寻找什么类型的传输数据,以更具体地说明我们要求查看什么协议。
- socket.AF_INET这个socket可以让我们看到TCP连接
- SOCK_STREAM这允许我们查看本质上是流视频和音频的 UDP 协议
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
现在我们将打印我们的程序如何向我们显示特定端口是否打开或 IP 已关闭或端口已关闭。
if sock.connect_ex((ip,port)):
print "Port ",port, "is closed"
else:
print"Port",port,"is OPEN"
现在保存这个程序按控制键 + x 键保存这个程序
句法:
cnrl+x
第 2 步:编译并运行程序
我们都知道如何在 Kali Linux 终端上运行脚本
例子
./script name . extention
句法
./port-scanner.py
看看这里是棘手的部分,我们完美地编写了我们的程序,但它没有编译和运行。所以是时候给我们的系统权限了。
Chmod 775 is a Linux command which sets permission so that User/Owner can Read, Write and execute. Group can Read Write and execute. Others can Read But can’t Write and execute.
句法
chmod 775 ./port-scanner.py
现在我们可以再次运行我们的程序,它会编译并成功运行
句法
./port-scanner.py
测试我们的程序
所以对于端口扫描,我们需要一个特定的IP,然后我们需要告诉我们的程序我们在寻找哪个端口输入点击回车
例子
Enter Your Ip Address : 192.168.43.1
Enter The Port Number : 80