• 网络安全——使用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

  • 相关阅读:
    zookeeper源码(01)集群启动
    ·工业 4.0 和第四次工业革命详细介绍
    08.23类属性和实例属性
    mapreduce的流程
    Pytorch之SwinTransformer图像分类
    接收端编程、UDP编程练习、wireshrak抓包工具、UDP包头
    前端循环下载多个PDF,数量丢失处理
    Meta开源新工具啊,Git地位危险了?
    typeerror: Cannot read properties of null (reading ‘emitsOptions‘)报错原因及解决方法
    Linux编程——多任务间通信和同步
  • 原文地址:https://blog.csdn.net/qq_48609816/article/details/125900753