在IoT设备中查找端口对应进程的四种方法
2021-01-19
来源:关键基础设施安全应急响应中心
我们平时在测试物联网设备的时候,可能通过特殊方法获取了当前的设备的shell【如串口等等】。
这时,我们往往需要查找该设备开启端口对应的服务,再对该服务进行测试。但是在通过端口查找进程的过程中可能会遇到一些问题,因为物联网中的Linux系统往往经过精简,很多命令的参数无法使用
使用netstat
这是最常用的方法之一,Netstat可以用来显示显示网络连接,路由表,网络接口状态等等
Netstat在桌面版或者是服务器版的Linux上使用一般没有问题,但是该命令在嵌入式系统中往往被精简
sudo netstat -tulpn
从图中我们可以看到8000端口上运行的服务是python
解释一下每个参数的含义
-t 显示tcp连接
-u 显示udp连接
-l 显示监听的套接字
-p 显示进程ID和该进程的名称
-n 显示数字地址
使用ss命令
ss命令可以用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
sudo ss -tulpn
如果netstat没有相关参数,建议师傅们试试这个命令
使用losf
顾名思义,losf是一个列出当前系统打开文件的工具,不过该命令在一般嵌入式Linux可能没有
sudo lsof -i :8000
fuser
fuser命令用于报告进程使用的文件和网络套接字
sudo fuser 8000/tcp
br
如上图所示24254即为PID
接下来通过ps命令查找进程的详细信息
ps -p 24254
或者也可以直接使用fuser中的-v参数:
sudo fuser -v 8000/tcp