精华内容
下载资源
问答
  • nc扫描端口

    2020-07-04 18:25:44
    nc可以用来扫描端口,但是各个系统之间版本差别较大 centos7: nc 不支持-r,i.e. 无法扫描端口范围。如果只测试一个端口可以用nc [root@baidu ~]# nc -4vzw 1 www.baidu.com 81 Ncat: Version 7.50 ( ...

    nc可以用来扫描端口,但是各个系统之间版本差别较大

    centos7:

    nc 不支持-r,i.e. 无法扫描端口范围。如果只测试一个端口可以用nc

    [root@baidu ~]# nc -4vzw 1 www.baidu.com 81
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Connection to 39.156.66.18 failed: Connection timed out.
    Ncat: Trying next address...
    Ncat: Connection timed out.
    [root@baidu ~]# nc -4vzw 1 www.baidu.com 80
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Connected to 39.156.66.18:80.
    Ncat: 0 bytes sent, 0 bytes received in 0.03 seconds.

    范围扫描可以用nmap

    yum install nmap -y
    
    [root@baidu ~]# nmap -sS -p 79-81 www.baidu.com
    
    Starting Nmap 6.40 ( http://nmap.org ) at 
    Nmap scan report for www.baidu.com (39.156.66.14)
    Host is up (0.0073s latency).
    Other addresses for www.baidu.com (not scanned): 39.156.66.18
    PORT   STATE    SERVICE
    79/tcp filtered finger
    80/tcp open     http
    81/tcp filtered hosts2-ns
    
    Nmap done: 1 IP address (1 host up) scanned in 1.32 seconds

    mac:

    nc 支持-r,但是超时不用-w,这个nc忘了是不是系统自带的了,版本号都没查到

    root@baidu ~ % nc -rvz -i 1 -G 1 39.156.66.18 79-81 
    Connection to 39.156.66.18 port 80 [tcp/http] succeeded!
    nc: connectx to 39.156.66.18 port 81 (tcp) failed: Operation timed out
    nc: connectx to 39.156.66.18 port 79 (tcp) failed: Operation timed out

    百度承受了很多测试的责任,能力越大责任越大啊,哈哈蛤

    其他的系统暂时未尝试,大家如果有好的方法欢迎留言

    展开全文
  • 22.1 使用nc扫描端口 22.2 curl 查看web服务器类型 22.3 手动查杀木马过程之生成木马程序病原体 22.4 手动查杀木马过程之让木马程序自动运行 22.1 使用nc扫描端口 nc 被称为linux下的瑞士军刀 短小精悍 22.1.1 安装...

    实验环境

    • RHEL6

    本节所讲内容:
    22.1 使用nc扫描端口
    22.2 curl 查看web服务器类型
    22.3 手动查杀木马过程之生成木马程序病原体
    22.4 手动查杀木马过程之让木马程序自动运行

    22.1 使用nc扫描端口
    nc 被称为linux下的瑞士军刀 短小精悍

    22.1.1 安装:
    Rhel 6

    64 init.d]# rpm -qf `which nc`
    nc-1.84-24.el6.x86_64
    

    如果同安装的话 可使用yum -y install nc 进行安装

    Rhel 7

    63 ~]# rpm -qf `which nc`
    nmap-ncat-6.40-7.el7.x86_64
    

    2.1.2 语法及示例
    语法:# nc -v -w 10 -z IP地址 端口号
    -v 显示指令执行过程。
    -w <超时秒数> 设置等待连线的时间。
    -u 表示使用UDP协议
    -z 使用0输入/输出模式,只在扫描通信端口时使用。
    注意:在rhel 7版本中nc 命令的 -z选项取消掉了,既与rhel 6 的使用方法相同,使用时略掉 -z 即可,在rhel 7 版本中 nc 6.40版本,nc执行时 不会主动退出,需要ctrl+d 或 ctrl+c 或直接回车

    例1:扫描指定的22端口
    Rhel 6

    64 ~]# nc -v -w 10 -z 192.168.1.63 22
    Connection to 192.168.1.64 22 port [tcp/ssh] succeeded!
    
    Rhel 7
    63 ~]# nc -v -w 10 192.168.1.64 22
    Ncat: Version 6.40 ( http://nmap.org/ncat )
    Ncat: Connected to 192.168.1.64:22.
    SSH-2.0-OpenSSH_7.4
    Ncat: 0 bytes sent, 21 bytes received in 3.13 seconds.
    

    例2:扫描1到65535的端口范围,只输出打开的端口

    63 ~]#nc -v -w 1 -z 192.168.1.63  1-65535
    	....
    nc: connect to 192.168.1.64 port 6635 (tcp) failed: Connection refused
    nc: connect to 192.168.1.64 port 6636 (tcp) failed: Connection refused
    nc: connect to 192.168.1.64 port 6637 (tcp) failed: Connection refused
    注: 加-v 会把每个端口扫描结果都显示出来。显示消息比较长。
    
    63 ~]# nc -w 1 -z 192.168.1.63  1-65535 
    #去掉-v参数即可,这样只显示可用的端口
    	Connection to 192.168.0.100 80 port [tcp/http] succeeded!
    	Connection to 192.168.0.100 2121 port [tcp/scientia-ssdb] succeeded!
    	Connection to 192.168.0.100 4004 port [tcp/pxc-roid] succeeded!
    	Connection to 192.168.0.100 8081 port [tcp/tproxy] succeeded!
    	Connection to 192.168.0.100 11211 port [tcp/*] succeeded!
    

    22.2 使用curl 查看web服务器类型

    22.2.1 查看web服务器类型:

    63 ~]# curl -I www.taobao.com
    HTTP/1.1 200 OK
    Server: Tengine   # 根据nginx开发的
    Date: Tue, 30 Dec 2014 13:35:47 GMT
    Content-Type: text/html; charset=gbk
    Connection: keep-alive
    Vary: Accept-Encoding
    Set-Cookie: CAT=deleted; expires=Mon, 30-Dec-2013 13:35:46 GMT
    Expires: Tue, 30 Dec 2014 14:35:47 GMT
    Cache-Control: max-age=3600
    

    22.3 手动查杀木马过程之生成木马程序病原体

    22.3.1 生成木马程序病原体

    63 ~]# vim /usr/bin/fregonnzkq
    #!/bin/bash
    touch /tmp/aaa.txt
    while true
    do 
    	#echo hello world
    #如何知道我的木马有没有实时运行? 怎么做?
    	echo `date` >> /tmp/date.txt
    	sleep 1
    done
    
    63 ~]# chmod +x /usr/bin/fregonnzkq
    

    测试:

    63 ~]#fregonnzkq  &  #可以执行
    63 ~]# ps -axu | grep freg
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
    root      4900  0.1  0.1 106152  1252 pts/1    S    16:29   0:00 /bin/bash /usr/bin/fregonnzkq
    63 bin]# kill -9  4900  
    

    22.4 手动查杀木马过程之让木马程序自动运行
    22.5.1 让木马自动运行
    如何让木马自动运行? 有几种方法?

    实战:黑客如何让脚本定时执行
    1、计划任务: crontab
    2、开机启动
    3、系统命令被人替换,定一个触发事件

    接下来,老师是黑客,你是网警。

    22.5.2 计划任务: crontab

    63 ~]# crontab -e   #写入
    1    2    *   *   *  /usr/bin/fregonnzkq &
    #分  时  天   月  周
    #每天21分,执行命令/usr/bin/fregonnzkq &
    * 表每X, 比如: 每天,每月,每周
    

    排查:

    63 ~]# crontab -l  #查看root用户的计划任务
    

    黑客:以非root用户添加计划任务。 最好使用已经存在系统用户添加。这里使用bin用户来添加
    例:

    63 ~]# crontab -u bin -e
    1 * * * * echo "aaaaaaa"  >> /tmp/bin.txt
    

    排查:

    63 ~]# crontab  -u bin -l
    1 * * * * echo "aaaaaaa"  >> /tmp/bin.txt
    

    排查:所有用户的计划任务?

    做黑客要有一个很扎实的基础,还要有很好的思维

    63 ~]# ll /var/spool/cron/ 
    total 8
    -rw------- 1 root root 42 Nov 12 10:11 bin
    -rw------- 1 root root 19 Nov 12 10:06 root
    

    注:所有用户的计划任务,都会在/var/spool/cron/下产生对应用户名的文件。

    22.4.2 黑客:高级crontab ,篡改一个系统级别的计划任务

    63 bin]# ls /etc/cron   #按两下tab键
    cron.d/       cron.deny     cron.monthly/ cron.weekly/
    cron.daily/   cron.hourly/  crontab   
    注:
    crontab   #写具体时间的统级别的定时任务
    cron.d/    #系统级别的定时任务
    cron.daily/  #系统每天要执行计划任务
    cron.hourly/  #系统每小时要执行计划任务
    cron.monthly/  #系统每月要执行计划任务
    cron.weekly/  #系统每周要执行计划任务
    
    [63 ~]# find /etc/cron*  #查看可以添加系统级别的计划任务
    

    例1:系统级别的计划任务

    63~]# vim  /etc/crontab   #在最后追加
    01 3 * * * root /bin/workstat  &
    

    例2:添加系统级别的木马程序。 可以追加到原系统的脚本中,也可以自己新创建一个脚本,放到对应的目录下

    63 ~]# vim /etc/cron.daily/tmpwatch  #在最后添加 
    /usr/bin/fregonnzkq  &
    
    63 ~]# chmod +x /etc/cron.daily/tmpwatch
    

    测试执行:

    63 ~]# /etc/cron.daily/tmpwatch
    
    63 ~]# ps -aux |grep freg
    root       2445  0.6  0.1 113132  1428 pts/0    S    21:24   0:00 /bin/bash /usr/bin/fregonnzkq
    root       2466  0.0  0.0 112676   980 pts/0    S+   21:25   0:00 grep --color=auto freg
    

    注:说明添加的木马成功了。

    排查:

    方法1:利用md5sum ,来检验文件的完整性
    例:
    语法:md5sum 文件

    63 ~]# md5sum /etc/cron.daily/tmpwatch 
    17856453d7325d7750309910aa64e5ca  /etc/cron.daily/tmpwatch
    
    63 ~]#vim /etc/cron.daily/tmpwatch  #在最后,添加一些内容
    63 ~]# md5sum /etc/cron.daily/tmpwatch   #再次查看md5值不一样
    6152bd26fc26d623eaf9dd551b9faed8  /etc/cron.daily/tmpwatch
    

    注:系统级别的计划任务,从安装好系统后, 就固定下来,不变了。

    如何排查/etc/cron*下所有文件有没有被黑客修改或追加?

    例2: 对/etc/cron*下所有文件都生成md5值,并存一个md5值

    63 ~]# find /etc/cron* -type f -exec md5sum {} \; > /usr/share/file_md5.v1
    

    测试:

    63 ~]# vim /etc/cron.daily/tmpwatch  #在最后添加以下内容:
    

    在这里插入图片描述
    做对比:

    63 ~]# find /etc/cron* -type f -exec md5sum {} \; >/usr/share/file_md5.v2
    63 ~]# diff /tmp/file_md5.v1 /tmp/file_md5.v2   #对比
    < 6152bd26fc26d623eaf9dd551b9faed8  /etc/cron.daily/tmpwatch
    ---
    > a34bbcd2c63889ad2a1ab48d751dc974  /etc/cron.daily/tmpwatch
    

    22.5.3 扩展
    在这里插入图片描述
    为什么 “快速查杀”比较快??? 它是怎么查杀的??

    hosts c:\system 等

    先生成dm5值库,然后对比,找出不一样的文件,再认真查一下

    注:如果忘提前生成/usr/share/file_md5.v1?
    找一台正常和你服务器系统版本号一样的虚拟机,在虚拟机中生成md5值数据库文件。复制到咱们服务器上,再对比。
    思路:很重要

    总结:过通过计划任务运行木马程序
    1、普通计划任务: crontab
    2、高级crontab ,篡改一个系统级别的计划任务

    22.5.4 通过开机启动来运行进程

    黑客:/etc/rc.local 这个是开机启动脚本

    63 ~]# vim /etc/rc.local   #在文档中插入以下红色内容
    echo aaaa  
    63 ~]# /etc/rc.local   #测试执行
    aaaaa
    

    注:在rhel7当中 /etc/rc.d/rc.local 文件被去掉了执行权限,所以需要加上执行权限

    63 ~]# chmod +x /etc/rc.d/rc.local
    

    注:/etc/rc.local 是个链接文件

    特例: 黑客在/etc/rc.local 中添加很多空行,然后在文档最后添加木马程序, 再把光标移动到行首,保存退出。

    排查:过滤掉空行

    63 ~]# grep -v ^$ /etc/rc.local   # ^$ #以$结束符开头的行,就是空行。 -v #表示取反,显示
    

    方法1: 木马程序脚本写到已经存在的开机启动服务中,例如: httpd (apache web服务器启动脚本)

    63 ~]# ls /etc/init.d/   #这个目录下的脚本文件,都是可以开机启动的脚本文件
    abrt-ccpp     halt                netstat         rpcidmapd
    
    63 ~]# vim /etc/init.d/httpd   # 在倒数第二行添加
    

    在这里插入图片描述
    测试:

    63 ~]# service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
    aaaaa
    

    方法2:更强的黑客:自己写一个开机启动程序

    [root@Xd9BdoAkG ~]# vim  /etc/rc.d/init.d/fregonnzkq
    #!/bin/sh
    # chkconfig: 12345 90 90
    # description: fregonnzkq
    ### END INIT INFO
    case $1 in
    start)
        /usr/bin/fregonnzkq &
        ;;
    stop)
        ;;
    *)
        /usr/bin/fregonnzkq &
        ;;
    esac
    

    1、赋予启动脚本执行权限,并启动

    63 ~]# chmod +x /etc/init.d/fregonnzkq 
    63 ~]# service fregonnzkq start
    
    63 ~]# ps -axu | grep freg    #查看,可以运行
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
    root      6725  0.0  0.1  11392  1248 pts/1    S    16:32   0:00 /bin/bash /usr/bin/fregonnzkq
    

    2、添加到开机自动启动服务列表

    63 ~]# chkconfig --add fregonnzkq
    63 ~]# chkconfig --list fregonnzkq
    fregonnzkq     	0:off	1:on	2:on	3:on	4:on	5:on	6:off
    

    3、重启测试服务有没有开机启动

    63 ~]# ps -axu | grep freg
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
    root      2213  0.1  0.1 108256  1344 ?        S    16:35   0:00 /bin/bash /usr/bin/fregonnzkq
    

    4、排查

    63 ~]# cd /etc/rc3.d/
    63 rc3.d]# ls *fre*    #开机启动,表示系统级别3下开机启动
    S90fregonnzkq
    

    5、查看每个系统别下的启动脚本

    63 etc]# ll /etc/rc*/*  | grep fre
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc0.d/K90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc1.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc2.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc3.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc4.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc5.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc6.d/K90fregonnzkq ->
    

    6、删除木马方法

    方法1:[root@xuegod63 etc]# chkconfig --del fregonnzkq
    或:
    方法:2:[root@xuegod63 etc]# ll /etc/rc5.d/S90fregonnzkq #删除/etc/init.d/fregonnzkq 就可以了,因为其他级别下都是这个文件软链接
    lrwxrwxrwx 1 root root 20 Oct 25 16:33 /etc/rc5.d/S90fregonnzkq -> …/init.d/fregonnzkq

    排查: 对比法

    d63 ~]# find /etc/init.d/ -type f  -exec md5sum {} \;  > /usr/share/init.d.v1
    63 ~]# find /etc/init.d/ -type f  -exec md5sum {} \;  > /usr/share/init.d.v2
    63 ~]# diff   /usr/share/init.d.v1   /usr/share/init.d.v2
    

    22.5.6 排查方法总结:

    方法1:对比其他服务器好的配置文件 ,利用MD5值做对比
    方法2: 查看被黑当天生成或被修改的文件

    63 ~]# find /etc/init.d/ -mtime -1  #查看被前一天到现在被修改的文件
    /etc/init.d/
    /etc/init.d/netstat
    /etc/init.d/httpd
    

    22.5.7 使用 rpm检查文件的完整性

    语法:rpm -V 软件包的名字 #使用 rpm检查文件的完整性
    语法:rpm -Vf 命令的绝对路径 #使用 rpm检查命令的完整性

    例1、[root@63 ~]# rpm -V httpd
    S.5…T. /etc/rc.d/init.d/httpd
    注:
    S file Size 大小不一致
    M Mode 模式不一致 (包括许可和文件类型)
    5 MD5 sum 校验和不一致
    D Device 主从设备号不匹配
    L readLink(2) 路径不匹配
    U User 属主不一致
    G Group 所属组不一致
    T mTime 修改时间不一致

    例2、查看命令有没有被修改

    63 rc3.d]# which zic
    /usr/sbin/zic
    63 rc3.d]# rpm -Vf /usr/sbin/zic
    63 rc3.d]# echo aaa >> /usr/sbin/zic
    63 rc3.d]# rpm -Vf /usr/sbin/zic
    prelink: /usr/sbin/zic: prelinked file size differs
    S.?....T.    /usr/sbin/zic
    

    系统中有很多命令和软件包,如何校对所有的命令和包?
    实战:查看所有rpm安装的软件包,生成命令或文件是否被改过?
    例:rpm -Va > rpm_check.txt

    22.4.8 系统命令被人替换
    例1:黑客修改/替换系统命令 , 查看命令有没有被修改

    63 ~]# which find
    /usr/bin/find
    63 ~]# cp /usr/bin/find /usr/bin/ffind
    63 ~]# rm -rf /usr/bin/find   #删除原来的find
    63 ~]# vim /usr/bin/find  #插入以下内容
    #!/bin/bash
    /usr/bin/ffind
    echo aaaaa
    63 ~]# chmod +x /usr/bin/find
    

    测试:

    63 ~]# find /boot   #说明木马执行成功。
    ...
    aaaaa  
    

    总结:

    黑客如何让脚本定时执行,以下三种方法:
    1、计划任务: crontab 和系统级别的计划任务
    2、开机启动rc.local和开机启动脚本
    3、系统命令被人替换,定一个触发事件

    排查:
    方法1:通过生成md5值数据库,查询文件系统的完整性
    方法2: 利用find命令查找下最近被修改过的文件:一般情况下命令文件都很久之前被修改的。
    方法3: 被入侵后,检测检测所有rpm -Va 生成的文件是否被改动过

    展开全文
  • 一个shell脚本以使用nc扫描开放端口 如何使用 您可以使用-h选项显示用法。 ./portscan -h usage: ./portscan.sh [-s server] [-h] <-p port> -s server -p port,80 or 1000-2000(from 1000 to 2000) or 22,...
  • 22.1 使用nc扫描端口 22.2 curl 查看web服务器类型 22.3 手动查杀木马过程之生成木马程序病原体 22.4 手动查杀木马过程之让木马程序自动运行 22.1 使用nc扫描端口 nc 被称为linux下的瑞士军刀 短小精悍 22.1.1 安装...

    22.1 使用nc扫描端口
    22.2 curl 查看web服务器类型
    22.3 手动查杀木马过程之生成木马程序病原体
    22.4 手动查杀木马过程之让木马程序自动运行

    22.1 使用nc扫描端口

    nc 被称为linux下的瑞士军刀  短小精悍
    

    22.1.1 安装:

    Rhel 6 
    [root@xuegod64 init.d]# rpm -qf `which nc`
    nc-1.84-24.el6.x86_64
    如果同安装的话 可使用yum -y install nc 进行安装 
    
    Rhel 7
    [root@xuegod63 ~]# rpm -qf `which nc`
    nmap-ncat-6.40-7.el7.x86_64
    

    2.1.2 语法及示例

    语法:# nc  -v  -w 10   -z  IP地址 端口号
    -v  显示指令执行过程。
    -w  <超时秒数>   设置等待连线的时间。
    -u  表示使用UDP协议
    -z  使用0输入/输出模式,只在扫描通信端口时使用。
    
    注意:在rhel 7版本中nc 命令的 -z选项取消掉了,既与rhel 6 的使用方法相同,使用时略掉 -z 即可,
    在rhel 7 版本中 nc 6.40版本,nc执行时 不会主动退出,需要ctrl+d 或 ctrl+c 或直接回车
    

    例1:扫描指定的22端口

    Rhel 6
    [root@xuegod64 ~]# nc -v -w 10 -z 192.168.1.63 22
    Connection to 192.168.1.64 22 port [tcp/ssh] succeeded!
    
    Rhel 7
    [root@xuegod63 ~]# nc -v -w 10 192.168.1.64 22
    Ncat: Version 6.40 ( http://nmap.org/ncat )
    Ncat: Connected to 192.168.1.64:22.
    SSH-2.0-OpenSSH_7.4
    Ncat: 0 bytes sent, 21 bytes received in 3.13 seconds.
    

    例2:扫描1到65535的端口范围,只输出打开的端口

    [root@xuegod63 ~]#nc -v -w 1 -z 192.168.1.63  1-65535
    	....
    nc: connect to 192.168.1.64 port 6635 (tcp) failed: Connection refused
    nc: connect to 192.168.1.64 port 6636 (tcp) failed: Connection refused
    nc: connect to 192.168.1.64 port 6637 (tcp) failed: Connection refused
    注: 加-v 会把每个端口扫描结果都显示出来。显示消息比较长。
    
    [root@xuegod63 ~]# nc -w 1 -z 192.168.1.63  1-65535 
    #去掉-v参数即可,这样只显示可用的端口
    Connection to 192.168.0.100 80 port [tcp/http] succeeded!
    Connection to 192.168.0.100 2121 port [tcp/scientia-ssdb] succeeded!
    Connection to 192.168.0.100 4004 port [tcp/pxc-roid] succeeded!
    Connection to 192.168.0.100 8081 port [tcp/tproxy] succeeded!
    Connection to 192.168.0.100 11211 port [tcp/*] succeeded!
    

    22.2 使用curl 查看web服务器类型

    22.2.1 查看web服务器类型:

    [root@xuegod63 ~]# curl -I www.taobao.com
    HTTP/1.1 200 OK
    Server: Tengine   # 根据nginx开发的
    Date: Tue, 30 Dec 2014 13:35:47 GMT
    Content-Type: text/html; charset=gbk
    Connection: keep-alive
    Vary: Accept-Encoding
    Set-Cookie: CAT=deleted; expires=Mon, 30-Dec-2013 13:35:46 GMT
    Expires: Tue, 30 Dec 2014 14:35:47 GMT
    Cache-Control: max-age=3600
    

    22.3 手动查杀木马过程之生成木马程序病原体

    22.3.1 生成木马程序病原体

    [root@xuegod63 ~]# vim /usr/bin/fregonnzkq
    #!/bin/bash
    touch /tmp/aaa.txt
    while true
    do 
    	#echo hello world
    #如何知道我的木马有没有实时运行? 怎么做?
    	echo `date` >> /tmp/date.txt
    	sleep 1
    done
    
    [root@xuegod63 ~]# chmod +x /usr/bin/fregonnzkq
    

    测试:

    [root@xuegod63 ~]#fregonnzkq  &  #可以执行
    [root@xuegod63 ~]# ps -axu | grep freg
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
    root      4900  0.1  0.1 106152  1252 pts/1    S    16:29   0:00 /bin/bash /usr/bin/fregonnzkq
    [root@xuegod63 bin]# kill -9  4900  
    

    22.4 手动查杀木马过程之让木马程序自动运行

    22.5.1 让木马自动运行
    如何让木马自动运行? 有几种方法?

    实战:黑客如何让脚本定时执行

    1、计划任务: crontab
    2、开机启动
    3、系统命令被人替换,定一个触发事件
    

    22.5.2 计划任务: crontab

    [root@xuegod63 ~]# crontab -e   #写入
    1    2    *   *   *  /usr/bin/fregonnzkq &
    #分  时  天   月  周
    #每天2点1分,执行命令/usr/bin/fregonnzkq &
    * 表每X, 比如: 每天,每月,每周
    

    排查:

    [root@xuegod63 ~]# crontab -l  #查看root用户的计划任务
    

    黑客:以非root用户添加计划任务。 最好使用已经存在系统用户添加。这里使用bin用户来添加
    例:

    [root@xuegod63 ~]# crontab -u bin -e
    1 * * * * echo "aaaaaaa"  >> /tmp/bin.txt
    排查:
    [root@xuegod63 ~]# crontab  -u bin -l
    1 * * * * echo "aaaaaaa"  >> /tmp/bin.txt
    

    排查:所有用户的计划任务?
    做黑客要有一个很扎实的基础,还要有很好的思维

    [root@xuegod63 ~]# ll /var/spool/cron/ 
    total 8
    -rw------- 1 root root 42 Nov 12 10:11 bin
    -rw------- 1 root root 19 Nov 12 10:06 root
    注:所有用户的计划任务,都会在/var/spool/cron/下产生对应用户名的文件。
    

    22.4.2 黑客:高级crontab ,篡改一个系统级别的计划任务

    [root@xuegod63 bin]# ls /etc/cron   #按两下tab键
    cron.d/       cron.deny     cron.monthly/ cron.weekly/
    cron.daily/   cron.hourly/  crontab   
    注:
    crontab   #写具体时间的统级别的定时任务
    cron.d/    #系统级别的定时任务
    cron.daily/  #系统每天要执行计划任务
    cron.hourly/  #系统每小时要执行计划任务
    cron.monthly/  #系统每月要执行计划任务
    cron.weekly/  #系统每周要执行计划任务
    
    [root@xuegod63 ~]# find /etc/cron*  #查看可以添加系统级别的计划任务
    

    例1:系统级别的计划任务

    [root@xuegod63~]# vim  /etc/crontab   #在最后追加
    01 3 * * * root /bin/workstat  &
    

    例2:添加系统级别的木马程序。 可以追加到原系统的脚本中,也可以自己新创建一个脚本,放到对应的目录下

    [root@xuegod63 ~]# vim /etc/cron.daily/tmpwatch  #在最后添加 
    /usr/bin/fregonnzkq  &
    
    [root@xuegod63 ~]# chmod +x /etc/cron.daily/tmpwatch
    

    测试执行:

    [root@xuegod63 ~]# /etc/cron.daily/tmpwatch 
    [root@xuegod63 ~]# ps -aux |grep freg
    root       2445  0.6  0.1 113132  1428 pts/0    S    21:24   0:00 /bin/bash /usr/bin/fregonnzkq
    root       2466  0.0  0.0 112676   980 pts/0    S+   21:25   0:00 grep --color=auto freg
    注:说明添加的木马成功了。
    

    排查:

    方法1:利用md5sum ,来检验文件的完整性
    

    例:

    语法:md5sum 文件  
    
    [root@xuegod63 ~]# md5sum /etc/cron.daily/tmpwatch 
    17856453d7325d7750309910aa64e5ca  /etc/cron.daily/tmpwatch
    
    [root@xuegod63 ~]#vim /etc/cron.daily/tmpwatch  #在最后,添加一些内容
    [root@xuegod63 ~]# md5sum /etc/cron.daily/tmpwatch   #再次查看md5值不一样
    6152bd26fc26d623eaf9dd551b9faed8  /etc/cron.daily/tmpwatch
    注:系统级别的计划任务,从安装好系统后, 就固定下来,不变了。
    

    如何排查/etc/cron*下所有文件有没有被黑客修改或追加?
    例2: 对/etc/cron*下所有文件都生成md5值,并存一个md5值

    [root@xuegod63 ~]# find /etc/cron* -type f -exec md5sum {} \; > /usr/share/file_md5.v1
    

    测试:

    [root@xuegod63 ~]# vim /etc/cron.daily/tmpwatch  #在最后添加以下内容:
    

    在这里插入图片描述
    做对比:

    [root@xuegod63 ~]# find /etc/cron* -type f -exec md5sum {} \; >/usr/share/file_md5.v2
    [root@xuegod63 ~]# diff /tmp/file_md5.v1 /tmp/file_md5.v2   #对比
    < 6152bd26fc26d623eaf9dd551b9faed8  /etc/cron.daily/tmpwatch
    ---
    > a34bbcd2c63889ad2a1ab48d751dc974  /etc/cron.daily/tmpwatch
    

    22.5.3 扩展
    在这里插入图片描述
    为什么 “快速查杀”比较快??? 它是怎么查杀的??

    hosts  c:\system 等
    
    先生成dm5值库,然后对比,找出不一样的文件,再认真查一下 
    

    注:如果忘提前生成/usr/share/file_md5.v1?

    找一台正常和你服务器系统版本号一样的虚拟机,在虚拟机中生成md5值数据库文件。复制到咱们服务器上,再对比。
    

    思路:很重要

    总结:通过过计划任务运行木马程序

    1、普通计划任务: crontab
    2、高级crontab ,篡改一个系统级别的计划任务
    

    22.5.4 通过开机启动来运行进程

    黑客:/etc/rc.local 这个是开机启动脚本
    
    [root@xuegod63 ~]# vim /etc/rc.local   #在文档中插入以下红色内容
    echo aaaa  
    [root@xuegod63 ~]# /etc/rc.local   #测试执行
    aaaaa
    
    注:在rhel7当中 /etc/rc.d/rc.local 文件被去掉了执行权限,所以需要加上执行权限
    [root@xuegod63 ~]# chmod +x /etc/rc.d/rc.local
    
    注:/etc/rc.local 是个链接文件
    
    特例: 黑客在/etc/rc.local 中添加很多空行,然后在文档最后添加木马程序, 再把光标移动到行首,保存退出。
    

    排查:过滤掉空行

    [root@xuegod63 ~]# grep -v ^$ /etc/rc.local   # ^$ #以$结束符开头的行,就是空行。 -v #表示取反,显示
    

    方法1: 木马程序脚本写到已经存在的开机启动服务中,例如: httpd (apache web服务器启动脚本)

    [root@xuegod63 ~]# ls /etc/init.d/   #这个目录下的脚本文件,都是可以开机启动的脚本文件
    abrt-ccpp     halt                netstat         rpcidmapd
    
    [root@xuegod63 ~]# vim /etc/init.d/httpd   # 在倒数第二行添加
    

    在这里插入图片描述
    测试:

    [root@xuegod63 ~]# service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
    aaaaa
    

    方法2:更强的黑客:自己写一个开机启动程序

    [root@Xd9BdoAkG ~]# vim  /etc/rc.d/init.d/fregonnzkq
    #!/bin/sh
    # chkconfig: 12345 90 90
    # description: fregonnzkq
    ### END INIT INFO
    case $1 in
    start)
        /usr/bin/fregonnzkq &
        ;;
    stop)
        ;;
    *)
        /usr/bin/fregonnzkq &
        ;;
    esac
    

    1、赋予启动脚本执行权限,并启动

    [root@xuegod63 ~]# chmod +x /etc/init.d/fregonnzkq 
    [root@xuegod63 ~]# service fregonnzkq start
    
    [root@xuegod63 ~]# ps -axu | grep freg    #查看,可以运行
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
    root      6725  0.0  0.1  11392  1248 pts/1    S    16:32   0:00 /bin/bash /usr/bin/fregonnzkq
    

    2、添加到开机自动启动服务列表

    [root@xuegod63 ~]# chkconfig --add fregonnzkq
    [root@xuegod63 ~]# chkconfig --list fregonnzkq
    fregonnzkq     	0:off	1:on	2:on	3:on	4:on	5:on	6:off
    

    3、重启测试服务有没有开机启动

    [root@xuegod63 ~]# ps -axu | grep freg
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
    root      2213  0.1  0.1 108256  1344 ?        S    16:35   0:00 /bin/bash /usr/bin/fregonnzkq
    

    4、排查

    [root@xuegod63 ~]# cd /etc/rc3.d/
    [root@xuegod63 rc3.d]# ls *fre*    #开机启动,表示系统级别3下开机启动
    S90fregonnzkq
    

    5、查看每个系统别下的启动脚本

    [root@xuegod63 etc]# ll /etc/rc*/*  | grep fre
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc0.d/K90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc1.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc2.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc3.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc4.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc5.d/S90fregonnzkq -> ../init.d/fregonnzkq
    lrwxrwxrwx  1 root root    20 Oct 25 16:33 /etc/rc6.d/K90fregonnzkq ->
    

    6、删除木马方法

    方法1:[root@xuegod63 etc]#  chkconfig --del fregonnzkq
    或:
    方法:2:[root@xuegod63 etc]# ll /etc/rc5.d/S90fregonnzkq 
      #删除/etc/init.d/fregonnzkq 就可以了,因为其他级别下都是这个文件软链接
      
    lrwxrwxrwx 1 root root 20 Oct 25 16:33 /etc/rc5.d/S90fregonnzkq -> ../init.d/fregonnzkq 
    

    排查: 对比法

    [root@xuegod63 ~]# find /etc/init.d/ -type f  -exec md5sum {} \;  > /usr/share/init.d.v1
    [root@xuegod63 ~]# find /etc/init.d/ -type f  -exec md5sum {} \;  > /usr/share/init.d.v2
    [root@xuegod63 ~]# diff   /usr/share/init.d.v1   /usr/share/init.d.v2
    

    22.5.6 排查方法总结:

    方法1:对比其他服务器好的配置文件 ,利用MD5值做对比
    方法2: 查看被黑当天生成或被修改的文件
    [root@xuegod63 ~]# find /etc/init.d/ -mtime -1  #查看被前一天到现在被修改的文件
    /etc/init.d/
    /etc/init.d/netstat
    /etc/init.d/httpd
    

    22.5.7 使用 rpm检查文件的完整性

    语法:rpm -V 软件包的名字   #使用 rpm检查文件的完整性   
    语法:rpm -Vf 命令的绝对路径   #使用 rpm检查命令的完整性 
    

    例1:

    [root@xuegod63 ~]# rpm -V httpd
    
    S.5....T.    /etc/rc.d/init.d/httpd
    注:
    S file Size 大小不一致
    M Mode 模式不一致 (包括许可和文件类型)
    5 MD5 sum 校验和不一致
    D Device 主从设备号不匹配
    L readLink(2) 路径不匹配
    U User 属主不一致
    G Group 所属组不一致
    T  mTime 修改时间不一致
    

    例2、查看命令有没有被修改

    [root@xuegod63 rc3.d]# which zic
    /usr/sbin/zic
    [root@xuegod63 rc3.d]# rpm -Vf /usr/sbin/zic
    [root@xuegod63 rc3.d]# echo aaa >> /usr/sbin/zic
    [root@xuegod63 rc3.d]# rpm -Vf /usr/sbin/zic
    prelink: /usr/sbin/zic: prelinked file size differs
    S.?....T.    /usr/sbin/zic
    

    系统中有很多命令和软件包,如何校对所有的命令和包?
    实战:查看所有rpm安装的软件包,生成命令或文件是否被改过?

    例:rpm -Va  > rpm_check.txt
    

    22.4.8 系统命令被人替换
    例1:黑客修改/替换系统命令 , 查看命令有没有被修改

    [root@xuegod63 ~]# which find
    /usr/bin/find
    [root@xuegod63 ~]# cp /usr/bin/find /usr/bin/ffind
    [root@xuegod63 ~]# rm -rf /usr/bin/find   #删除原来的find
    [root@xuegod63 ~]# vim /usr/bin/find  #插入以下内容
    #!/bin/bash
    /usr/bin/ffind
    echo aaaaa
    [root@xuegod63 ~]# chmod +x /usr/bin/find
    [root@xuegod63 ~]#
    

    测试:

    [root@xuegod63 ~]# find /boot   #说明木马执行成功。
    ...
    aaaaa  
    

    总结:
    黑客如何让脚本定时执行,以下三种方法:

    1、计划任务: crontab  和系统级别的计划任务
    2、开机启动rc.local和开机启动脚本
    3、系统命令被人替换,定一个触发事件
    

    排查:

    方法1:通过生成md5值数据库,查询文件系统的完整性
    方法2: 利用find命令查找下最近被修改过的文件:一般情况下命令文件都很久之前被修改的。
    方法3: 被入侵后,检测检测所有rpm -Va 生成的文件是否被改动过
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,882
精华内容 3,552
关键字:

nc扫描端口