标签 隐藏 下的文章

unhide 是一个小巧的网络取证工具,能够发现那些借助 rootkit、LKM 及其它技术隐藏的进程和 TCP/UDP 端口。这个工具在 Linux、UNIX 类、MS-Windows 等操作系统下都可以工作。根据其 man 页面的说明:

Unhide 通过下述三项技术来发现隐藏的进程。

  1. 进程相关的技术,包括将 /proc 目录与 /bin/ps 命令的输出进行比较。
  2. 系统相关的技术,包括将 /bin/ps 命令的输出结果同从系统调用方面得到的信息进行比较。
  3. 穷举法相关的技术,包括对所有的进程 ID 进行暴力求解,该技术仅限于在基于 Linux2.6 内核的系统中使用。

绝大多数的 Rootkit 工具或者恶意软件借助内核来实现进程隐藏,这些进程只在内核内部可见。你可以使用 unhide 或者诸如 rkhunter 等工具,扫描 rootkit 程序 、后门程序以及一些可能存在的本地漏洞

这篇文章描述了如何安装 unhide 并搜索隐藏的进程和 TCP/UDP 端口。

如何安装 unhide

首先建议你在只读介质上运行这个工具。如果使用的是 Ubuntu 或者 Debian 发行版,输入下述的 apt-get/apt 命令以安装 Unhide:

$ sudo apt-get install unhide

一切顺利的话你的命令行会输出以下内容:

[sudo] password for vivek: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  rkhunter
The following NEW packages will be installed:
  unhide
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 46.6 kB of archives.
After this operation, 136 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 unhide amd64 20130526-1 [46.6 kB]
Fetched 46.6 kB in 0s (49.0 kB/s)
Selecting previously unselected package unhide.
(Reading database ... 205367 files and directories currently installed.)
Preparing to unpack .../unhide_20130526-1_amd64.deb ...
Unpacking unhide (20130526-1) ...
Setting up unhide (20130526-1) ...
Processing triggers for man-db (2.7.6.1-2) ...

如何在 RHEL/CentOS/Oracle/Scientific/Fedora 上安装 unhide

输入下列 yum Type the following yum command (first turn on EPLE repo on a CentOS/RHEL version 6.x or version 7.x):

输入以下的 yum 命令(CentOS/RHEL 6.x7.x 上首先打开 EPEL 仓库):

$ sudo yum install unhide

在 Fedora 上则使用以下 dnf 命令:

$ sudo dnf install unhide

如何在 Arch 上安装 unhide

键入以下 pacman 命令安装:

$ sudo pacman -S unhide

如何在 FreeBSD 上安装 unhide

可以通过以下的命令使用 port 来安装 unhide:

# cd /usr/ports/security/unhide/
# make install clean

或者可以通过二进制文件安装 hide,使用 pkg 命令安装:

# pkg install unhide

如何使用 unhide 工具?

unhide 的语法是:

unhide [options] test_list

test_list 参数可以是以下测试列表中的一个或者多个标准测试:

  1. brute
  2. proc
  3. procall
  4. procfs
  5. quick
  6. reverse
  7. sys

或基本测试:

  1. checkbrute
  2. checkchdir
  3. checkgetaffinity
  4. checkgetparam
  5. checkgetpgid
  6. checkgetprio
  7. checkRRgetinterval
  8. checkgetsched
  9. checkgetsid
  10. checkkill
  11. checknoprocps
  12. checkopendir
  13. checkproc
  14. checkquick
  15. checkreaddir
  16. checkreverse
  17. checksysinfo
  18. checksysinfo2
  19. checksysinfo3

你可以通过以下示例命令使用 unhide

# unhide proc
# unhide sys
# unhide quick

示例输出:

Unhide 20130526
Copyright © 2013 Yago Jesus & Patrick Gouin
License GPLv3+ : GNU GPL version 3 or later
http://www.unhide-forensics.info

NOTE : This version of unhide is for systems using Linux >= 2.6 

Used options: 
[*]Searching for Hidden processes through  comparison of results of system calls, proc, dir and ps

如何使用 unhide-tcp 工具辨明 TCP/UDP 端口的身份

以下是来自 man 页面的介绍:

unhide-tcp 取证工具通过对所有可用的 TCP/IP 端口进行暴力求解的方式,辨别所有正在监听,却没有列入 /bin/netstat 或者 /bin/ss 命令输出的 TCP/IP 端口身份。

注一:对于 FreeBSD、OpenBSD系统,一般使用 netstat 命令取代在这些操作系统上不存在的 iproute2,此外,sockstat 命令也用于替代 fuser。

注二:如果操作系统不支持 iproute2 命令,在使用 unhide 时需要在命令上加上 -n 或者 -s 选项。

# unhide-tcp

示例输出:

Unhide 20100201
http://www.security-projects.com/?Unhide

Starting TCP checking

Starting UDP checking

上述操作中,没有发现隐藏的端口。

但在下述示例中,我展示了一些有趣的事。

# unhide-tcp

示例输出:

Unhide 20100201
http://www.security-projects.com/?Unhide


Starting TCP checking

Found Hidden port that not appears in netstat: 1048
Found Hidden port that not appears in netstat: 1049
Found Hidden port that not appears in netstat: 1050
Starting UDP checking

可以看到 netstat -tulpnss 命令确实没有反映出这三个隐藏的端口:

# netstat -tulpn | grep 1048
# ss -lp
# ss -l | grep 1048

通过下述的 man 命令可以更多地了解 unhide

$ man unhide
$ man unhide-tcp

Windows 用户如何安装使用 unhide

你可以通过这个页面获取 Windows 版本的 unhide。


via: https://www.cyberciti.biz/tips/linux-unix-windows-find-hidden-processes-tcp-udp-ports.html

作者:Vivek Gite 译者:ljgibbslf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果一个系统被多个用户使用,你或许出于个人原因想在文件管理器中隐藏一些文件或文件夹不让其他人看到(绝大多数用户不会对 Linux 系统进行深入了解,所以他们只会看到文件管理器列出的文件和文件夹),我们有三种方法可以来做这件事。此外,(除了隐藏)你还可以使用密码保护文件或文件夹。在这个教程中,我们将讨论如何用非重命名的方法在文件管理器中隐藏文件和文件夹。

我们都知道,通过以点(“.”)前缀重命名一个文件或文件夹的方式,可以在 Linux 中将该文件或文件夹隐藏。但这不是隐藏文件或文件夹的正确/高效方式。一些文件管理器也隐藏文件名以波浪号(“~”)结尾的文件,那些文件被认为是备份文件。

在文件管理器中隐藏文件或文件夹的三种方法:

  • 给文件或文件夹名添加一个点(“.”)前缀。
  • 创建一个叫做 .hidden 的文件,然后把需要隐藏的文件或文件夹加到里面。
  • 使用 Nautilus Hide 扩展

通过点(“.”)前缀隐藏文件或文件夹

这是每个人都知道的方法,因为默认情况下文件管理器和终端都不会显示以点(“.”)作为前缀的文件或文件夹。要隐藏一个现有文件,我们必须重命名它。这种方法并不总是一个好主意。我不推荐这种方法,在紧急情况下你可以使用这种方法,但不要特意这样做。

为了测试,我将创建一个叫做 .magi 的新文件夹。看下面的输出,当我使用 ls -lh 命令时,不会显示以点(“.”)作为前缀的文件或文件夹。在文件管理器中你也可以看到相同的结果。

# mkdir .magi

# ls -lh
total 36K
-rw-r--r-- 1 magi magi  32K Dec 28 03:29 nmon-old

文件管理器查看。

为了澄清一下,我在 ls 命令后面加上 -a 选项来列出被隐藏文件(是的,现在我可以看到文件名 .magi 了)。

# ls -la
total 52
drwxr-xr-x  4 magi magi  4096 Feb 12 01:09 .
drwxr-xr-x 24 magi magi  4096 Feb 11 23:41 ..
drwxr-xr-x  2 magi magi  4096 Feb 12 01:09 .magi
-rw-r--r--  1 magi magi 32387 Dec 28 03:29 nmon-old

为了查看文件管理器中的被隐藏文件,只需按 Ctrl+h 快捷键,再次按 Ctrl+h 又可以把这些文件隐藏。

用非重命名方法,通过 “.hidden” 文件的帮助隐藏文件或文件夹

如果你想用非重命名的方法隐藏一个文件,或者一些应用不允许重命名。在这种情况下,你可以使用 .hidden 文件,它可能是最适合你的选择。

一些文件管理器,比如 Nautilus、Nemo、Caja 和 Thunar,提供了一种很原始的方法来隐藏文件,不需要重命名。怎样做?只需在想要隐藏文件的地方创建一个叫做 .hidden 的文件,然后把想隐藏的文件和文件夹列表一行一个地加进来。最后,刷新文件夹,那些文件将不显示出来。

为了测试,我将在同一目录下创建一个叫做 .hidden 的文件和两个分别叫做 2g2daygeek 的文件/文件夹,然后把它们加到 .hidden 文件中。

# touch 2g
# mkdir 2daygeek

# nano .hidden
2g
2daygeek

将两个文件加到 .hidden 文件之前。

将两个文件加到 .hidden 文件之后。

通过按 Ctrl+h 显示所有文件。

Nautilus Hide 扩展

Nautilus Hide 是针对 Nautilus 文件管理器的一个简单的 Python 扩展,它在右键菜单中增加了隐藏或显示被隐藏文件的选项。

要在 Ubuntu 及其衍生版上安装 Nautilus 和 Namo 的 Hide 扩展,我们可以在 Ubuntu 及其衍生版上通过运行下面的命令:

$ sudo apt install nautilus-hide
$ nautilus -q

$ sudo apt install nemo-hide
$ nemo -q

对于基于 DEB 的系统,可以按照下面的步骤安装 Nautilus Hide 扩展:

$ sudo apt install cmake gettext python-nautilus xdotool
$ mkdir build
$ cd build
$ cmake ..
$ sudo make
$ sudo make install
$ nautilus -q

对于基于 RPM 的系统,按照下面的步骤安装 Nautilus Hide 扩展:

$ sudo [yum|dnf|zypper] install cmake gettext nautilus-python xdotool
$ mkdir build
$ cd build
$ cmake ..
$ sudo make
$ sudo make install
$ nautilus -q

这个扩展其实就是简单的使用 .hidden 文件来隐藏文件。当你选择隐藏一个文件时,它的名字就加入到 .hidden 文件。当你选择对它解除隐藏(为解除隐藏,按 Ctrl+h 快捷键来显示包括点(“.”)前缀在内的所有文件,然后选择 解除隐藏文件 Unhide Files )时,它的名字就从 .hidden 文件中移除(当把所有列在 .hidden 文件中的文件都解除隐藏以后, .hidden 文件也就随之消失了)。如果文件没有被隐藏/显示,请按 F5 来刷新文件夹。

你可能会问,方法二也能完成相同的事情,为什么我还要安装 Nautilus Hide 扩展。在方法二中,我需要在要隐藏文件的地方手动创建一个 .hidden 文件,然后必须把需要隐藏的文件加到其中,但在这儿一切都是自动的。简单的右键单击,然后选择隐藏或取消隐藏(如果 .hidden 文件还不存在,它会自动创建 )。

使用 Nautilus Hide 扩展来隐藏一个文件。

看下面的屏幕截图,我们使用 Nautilus Hide 扩展来隐藏一个文件。

使用 Nautilus Hide 扩展来解除文件隐藏。

看下面的屏幕截图,我们使用 Nautilus Hide 扩展解除对一个文件的隐藏(通过按 Ctrl+h, 你可以查看所有的被隐藏文件和文件夹)。


via: http://www.2daygeek.com/how-to-hide-files-and-folders-in-file-manager-without-renaming/

作者:MAGESH MARUTHAMUTHU 译者:ucasFL 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出