网络安全——使用Linux系统命令对后门端口进行查杀

系统漏洞


这里说下,项目从开发到部署,会使用到各种技术,不管是中间件,还是一些操作系统,都有可能成为渗透的一个点。
操作系统通常有些低级用户口令、端口漏洞等,不用的端口尽量都关掉。除非遇到ddos,那就没办法了。
尽量使用最新的被维护的版本,凡是漏洞,都会被公布出来,如果使用旧版本,懂点的hack几乎一个扫描过去,我方防御就会崩溃。
 

综合渗透测试-使用Linux系统命令对后门端口进行查杀

第一步,打开网络拓扑,启动实验虚拟机,查看虚拟机IP地址:

Centos Linux

第二步,进入靶机服务器CentOS Linux,调用实验环境。使用docker images命令查看靶机服务器上的Docker镜像环境,找到本次实验使用的镜像centos5,使用命令启动centos5镜像的靶机环境:

docker images

docker run --privileged=true –it centos5 /bin/bash

第三步,查看当前虚拟环境的系统,及其所处的目录:

1)使用lsb_release –a命令查看系统ID信息,返回报错,说明这是一个CentOS系统,使用uname –m命令查看系统位数为64位:

lsb_release -a

uname -m

2)使用pwd命令查看当前所在的目录,输入cd /root进入root目录,使用ls命令列出root目录下的文件,存在名为start.sh的启动脚本:

pwd

cd /root

ls

第四步,启动虚拟环境中的木马程序:

./start.sh

第五步,查看系统的进程信息:

1)使用ps –aux查看所有进程,经过排查我们发现了一个可疑进程,进程PID为33:

ps -aux

2)使用kill 33命令结束可疑进程:

kill 33

第六步,确定可疑进程为木马程序:

1)使用ps –aux命令查看所有进程,准备排查其他进程时,发现刚才的可疑进程仍在运行,进程的PID为107649:

ps -aux

2)使用kill -9 107649强制结束进程:

kill -9 [木马进程PID]

3)再次使用ps –aux命令查看所有进程,该进程依旧没有被结束掉,仍在系统中运行。这时候基本可以判定,这是一个顽固的木马程序。木马程序很可能是要进行网络通信的:

ps -aux

第七步,查看本机Socket连接找到可疑的端口:

使用netstat –a命令查看本机的所有Socket连接,连接数量较多,经过排查后,找到一个不常用的端口4257,这个端口侦听在本机的所有接口,并且允许任意的远程连接进行连接:

netstat -a

第八步,根据端口号找到占用的进程ID:

使用lsof –i:4257命令,发现4257端口被进程ID为57704的程序占用:

lsof -i:4257

第九步,确定木马进程所使用的端口号:

使用ps –aux查看所有进程,发现进程ID为57704的进程kill不掉的木马进程。由于木马无法kill掉,而且木马还在进行Socket连接,传输服务器的敏感信息,所以我们使用防火墙iptables设置规则,让木马离线无法进行远程通信:

ps -aux

第十步,配置iptables防火墙使木马离线:

使用命令iptables –t filter –A OUTPUT –m state –state NEW –j DROP通过iptables在output链上做限制,将从出口带宽状态为new的全部丢弃掉。使用ping命令测试无法正常使用,此时服务器已经离线:

iptables –t filter –A OUTPUT –m state –state NEW –j DROP

ping 8.8.8.8

第十一步,找到木马程序的父进程,分别结束掉父进程和木马进程:

1)使用ps –ef命令发现可疑进程的父进程PIID为26,并且还发现可疑进程一直在不断的变换自己的进程PID:

ps -ef

2)再次使用ps –ef命令查看所有进程,找到可疑进程的父进程:

ps -ef

3)使用kill 26结束木马父进程:

kill [木马父进程PID]

ps -ef

4)结束失去父进程的木马僵尸进程:

kill [木马僵尸进程PID]

子进程是木马程序的核心功能,一般负责侦听一个端口,反弹一个Shell实现远程操作的核心逻辑,父进程通常负责子进程的安全,其核心功能是时刻监测子进程是否被杀,如果被杀就重新启动,或者延时重新启动。

第十二步,系统加固,找到木马进程及其父进程的路径:

使用./start.sh命令重启木马环境,使用ps –ef命令发现木马进程的父进程还有父进程,接着分别找到木马进程的父进程及其父进程的父进程的路径:

./start.sh

ps -ef

2)使用ls /usr/bin/vifa命令和ls  /usr/bin/virson命令分别查看木马程序和守护程序:

ls /usr/bin/virfa

ls /usr/bin/virson

第十三步,找到木马程序病原体:

根据我们的经验,通常木马程序的守护程序都是用Shell脚本写的,而木马程序都是用其他语言写好编译成二进制文件的,至于为什么要这样做,是因为简单快速,所以我们可以阅读守护程序的代码。

使用cat /usr/bin/virfa命令查看守护程序的代码,经过阅读找到了木马程序的病原体文件是/opt/virsou.sh。

cat /usr/bin/virfa

第十四步,依次查杀木马进程的父进程的父进程、木马进程的父进程、木马进程:

1)使用kill 23命令查杀木马进程的父进程的父进程:

kill [木马父进程的父进程PID]

2)使用kill 72713命令和kill 72726命令分别查杀木马进程的父进程和木马进程:

kill [木马父进程PID]

kill [木马进程PID]

第十五步,依次删除木马程序,木马程序的守护程序,木马程序的源文件:

1)使用rm –rf /usr/bin/virfa命令和rm –rf /usr/bin/virson命令依次删除木马程序的守护程序和木马程序,并使用ls /usr/bin | grep vir*命令查看确认已经全部删除:

rm -rf /usr/bin/virfa

rm -rf /usr/bin/virson

ls /usr/bin | grep vir*

2)使用ls /opt/virsou.sh命令查看木马程序的病原体文件,使用rm –rf /opt/virson命令删除木马程序的病原体文件。

ls /opt/virsou.sh

rm -rf /opt/virsou.sh

猜你喜欢

转载自blog.csdn.net/qq_48609816/article/details/125900753