compromise
Application Level Compromise
When investigating a server it is EXTREMELY important to note the processes running on the device.
A lot of application level compromises end up with a perl process masquerading as other processes.
The best thing to do is give you an example:
# cat /tmp/example.pl
#!/usr/bin/perl $0 = "FakeApache"; sleep(60);
We could then run this script as a different user:
[root@lll-new ~]# sudo -i -u LLL perl /tmp/example.pl & [1] 29923As you can see from the output below, if we simply named it “apache” instead of “FakeApache”, you would be hard presses to notice this being out of place:
[root@lll-new ~]# ps aux | grep Fake LLL 29924 0.0 0.0 129712 1840 pts/0 S 12:52 0:00 FakeApache
You can check the PID of the process and it's exe location to find out if it's suspicious or not. This “apache” process should have a binary location with apache in the name, NOT perl:
[root@lll-new ~]# ll /proc/29923/exe lrwxrwxrwx. 1 LLL LLL 0 Oct 12 12:55 /proc/29923/exe -> /usr/bin/perl [root@lll-new ~]#
compromise.txt · Last modified: 2024/05/23 07:26 by 127.0.0.1