我想故意安装旧的易受攻击版本的 liblog4j2-java 软件包,以便测试 CVE-2021-44228 漏洞。我使用的是 Ubuntu 机器。
我知道我可以列出旧的软件包版本apt-cache madison liblog4j2-java
,但这些版本仍然容易受到攻击吗?
如何下载旧的官方软件包?
似乎我必须在 Debian 上安装才能让我的笔记本电脑正常使用的唯一专有文件是固件 iwlwifi 包。为什么这么多年了,网卡可以和免费软件无缝衔接,但我们还是需要下载专有固件才能使用无线网卡?
有没有可以代替固件 iwlwifi 的免费软件?或者我们只是暂时坚持下去?
我发现命令的输出中使用了 Unix 套接字lsof
:
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
screen 110970 username 4u unix 0xffff91fe3134c400 0t0 19075659 socket
Run Code Online (Sandbox Code Playgroud)
“DEVICE”列保存看起来像内存地址的内容。根据 lsof 手册页:
DEVICE contains the device numbers, separated by commas, for a character special, block special, regular, directory or NFS file;
or ``memory'' for a memory file system node under Tru64 UNIX;
or the address of the private data area of a Solaris socket stream;
or a kernel reference address that identifies the file …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个 1 行 bash 脚本,该脚本将获取看起来像内核进程的进程的所有 PID,并检查它们是否具有 中的内容/proc/*/maps
,这表明内核进程伪装。
我目前有以下脚本:
for pid in $(ps aux | grep "\[" | awk -F' ' '{print $2}');do if [ -s /proc/$pid/maps ]; then echo $pid; fi; done
Run Code Online (Sandbox Code Playgroud)
/proc/$pid/maps
如果size 大于 0,脚本应输出 pid。但是,脚本不输出任何内容。
if [ -s /proc/$pid/maps ]
应该指示文件是否不为空。它似乎不起作用。
我可以使用另一种方法解决此问题,但-s
互联网建议使用此选项来检查文件是否为空。
这里有什么问题吗?我确实知道有一个进程在其命令行(avahi 守护进程)中带有括号,该进程的内容将包含在 中/proc/$pid/maps
,因此应该至少有 1 个 pid 输出用于测试目的。如果我从管道中删除 grep,那么它会迭代所有 pid,但仍然没有输出。