Home Operation and Maintenance Linux Operation and Maintenance Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

Aug 03, 2023 pm 02:52 PM
linux


Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

# As open source products become more and more popular, as a Linux operation and maintenance engineer, it is crucial to be able to clearly identify whether an abnormal machine has been invaded. Based on my own work experience, I have compiled a few A common situation where a machine is hacked is for reference:
Background information: The following situation is viewed on a CentOS 6.9 system, and is similar to other Linux distributions.

1Intrudermay delete the log information of the machine

You can check whether the log information still exists or whether it has been cleared, related commands Example:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


##2Intrudermay create a new file to store username and password

##You can view /etc/passwd and /etc/ shadow file, related command examples:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


##3

Intrudermay modify username and password files##Can view /etc/passwd and /etc/shadow To identify the file content, related command examples:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


##4

View The latest successful login event of the machine and the last unsuccessful login event

corresponds to the log "/var/log/lastlog", related command examples:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


5

##View all users currently logged in to the machine

corresponds to the log file "/var/run/utmp", related command examples:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


##6

ViewMachineThe corresponding logs of users

who have logged in since the server was created File "/var/log/wtmp", related command examples:

In addition, search the public account Linux to learn how to reply "git books" in the background, and get a surprise gift package.

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


7

ViewThe connection time (hours) of all users of the machine

corresponds to the log file "/var/log/wtmp", related Command example:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


##8

If finds that the machine generates abnormal traffic

You can use the command "tcpdump" to capture network packets to view the traffic situation or use tools" iperf" Check the traffic situation


9

##You can view /var/log/secureLog file

Try to find information about the intruder, related command examples:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


10

Query the execution script file corresponding to the abnormal process

a.top command Check the PID corresponding to the abnormal process

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

b. Find the executable file of the process in the virtual file system directory Follow Linux Chinese Community

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


11

If it is confirmed that the machine has been invaded and important files have been deleted, you can try to retrieve the deleted files Note:
1. When a process opens a file, as long as The process keeps the file open and even if it is deleted, it still exists on the disk. This means that the process is not aware that the file has been deleted, and it can still read and write to the file descriptor given to it when it was opened. This file is not visible except to the process because its corresponding directory inode has been deleted.
2. In the /proc directory, it contains various files reflecting the kernel and process tree. The /proc directory mounts an area mapped in memory, so these files and directories do not exist on the disk, so when we read and write these files, we are actually getting them from memory. Related Information. Most of the information related to lsof is stored in directories named after the process's PID. That is, /proc/1234 contains information for the process with PID 1234. Various files exist in each process directory that allow applications to easily understand the process's memory space, file descriptor lists, symbolic links to files on disk, and other system information. The lsof program uses this and other information about the kernel's internal state to produce its output. Therefore, lsof can display information such as the file descriptor and related file name of the process. That is, we can find relevant information about the file by accessing the file descriptor of the process.
3. When a file in the system is accidentally deleted, as long as there are still processes in the system accessing the file at this time, we can use lsof to retrieve the file from the /proc directory. to restore the contents of the file.
Assuming that the intruder has deleted the /var/log/secure file, the method of trying to restore the /var/log/secure file can be as follows:

a. Check the /var/log/secure file and find that the file no longer exists

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

b. Use the lsof command to check whether A process opens /var/log/secure,

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

c. From the above information, you can see that the file descriptor of the file opened by PID 1264 (rsyslogd) is 4. You can also see that /var/log/secure has been marked as deleted. Therefore, we can view the corresponding information in /proc/1264/fd/4 (each numerically named file under fd represents the file descriptor corresponding to the process), as follows:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

d. As can be seen from the above information, the data to be recovered can be obtained by viewing /proc/1264/fd/4. If the corresponding data can be viewed through the file descriptor, then I/O redirection can be used to redirect it to the file, such as:

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised

# #e. Check /var/log/secure again and find that the file already exists. This method of recovering deleted files is very useful for many applications, especially log files and databases.

Linux - 11 steps to teach you how to perfectly check whether your server has been compromised


The above is the detailed content of Linux - 11 steps to teach you how to perfectly check whether your server has been compromised. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Difference between centos and ubuntu Difference between centos and ubuntu Apr 14, 2025 pm 09:09 PM

The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

Centos options after stopping maintenance Centos options after stopping maintenance Apr 14, 2025 pm 08:51 PM

CentOS has been discontinued, alternatives include: 1. Rocky Linux (best compatibility); 2. AlmaLinux (compatible with CentOS); 3. Ubuntu Server (configuration required); 4. Red Hat Enterprise Linux (commercial version, paid license); 5. Oracle Linux (compatible with CentOS and RHEL). When migrating, considerations are: compatibility, availability, support, cost, and community support.

How to install centos How to install centos Apr 14, 2025 pm 09:03 PM

CentOS installation steps: Download the ISO image and burn bootable media; boot and select the installation source; select the language and keyboard layout; configure the network; partition the hard disk; set the system clock; create the root user; select the software package; start the installation; restart and boot from the hard disk after the installation is completed.

How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

Detailed explanation of docker principle Detailed explanation of docker principle Apr 14, 2025 pm 11:57 PM

Docker uses Linux kernel features to provide an efficient and isolated application running environment. Its working principle is as follows: 1. The mirror is used as a read-only template, which contains everything you need to run the application; 2. The Union File System (UnionFS) stacks multiple file systems, only storing the differences, saving space and speeding up; 3. The daemon manages the mirrors and containers, and the client uses them for interaction; 4. Namespaces and cgroups implement container isolation and resource limitations; 5. Multiple network modes support container interconnection. Only by understanding these core concepts can you better utilize Docker.

What computer configuration is required for vscode What computer configuration is required for vscode Apr 15, 2025 pm 09:48 PM

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

How to view the docker process How to view the docker process Apr 15, 2025 am 11:48 AM

Docker process viewing method: 1. Docker CLI command: docker ps; 2. Systemd CLI command: systemctl status docker; 3. Docker Compose CLI command: docker-compose ps; 4. Process Explorer (Windows); 5. /proc directory (Linux).

What to do if the docker image fails What to do if the docker image fails Apr 15, 2025 am 11:21 AM

Troubleshooting steps for failed Docker image build: Check Dockerfile syntax and dependency version. Check if the build context contains the required source code and dependencies. View the build log for error details. Use the --target option to build a hierarchical phase to identify failure points. Make sure to use the latest version of Docker engine. Build the image with --t [image-name]:debug mode to debug the problem. Check disk space and make sure it is sufficient. Disable SELinux to prevent interference with the build process. Ask community platforms for help, provide Dockerfiles and build log descriptions for more specific suggestions.

See all articles