• 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包


    一.加密与解密
    1.1 常见的加密算法
    对称加密:怎么加密,就怎么解密
    DES Date Encryption Standard
    AES Advance Encryption Standard
    非对称加密
    RSA Rivest Shamirh Adleman
    DSA Digital Signature Algorithm
     
    数据信息完整性
    MD5 Message Digest Algorithm 5
    SHA Secure Hash Algorithm
    ]# md5sum a.txt
     
    1.2 GPG加密工具
    ]# rpm -q  gnupg2
    gnupg2-2.0.22-3.el7.x86_64
    ]# which  gpg
    /bin/gpg
    ]# gpg --help
     
    1.3 新建两个用户,并分别登陆,在一台机器行测试加密解密
    ]# useradd usera
    ]# useradd userb
    ]# echo 123456 | passwd --stdin usera
    ]# echo 123456 | passwd --stdin userb
    ]# ssh -X usera@localhost
    ]# ssh -X userb@localhost
     
    1.3.1 gpg 数据对称加密与解密  -c 加密  -d 解密 
    发             收
    usera加密
    usera --> userb
    usera~] gpg -c a.txt 
    usera~] ls
    a.txt  a.txt.gpg
    usera]$ cp a.txt.gpg /tmp/
     
    userb解密
    userb~] ls -l /tmp/a.txt.gpg 
    -rw-rw-r--. 1 usera usera 48 2月  19 15:01 /tmp/a.txt.gpg
    解密
    ]$ cat /tmp/a.txt.gpg   看到的是乱码
    userb/tmp] gpg -d a.txt.gpg > ~/a4.txt (提示输解密密码)
    userb]$ cat a4.txt 查看文件内容(解密)
     
    1.3.2 gpg 数据非对称加密与解密
    公钥加密 私钥解密
    加密       解密
    uesra    userb
    A--发送加密数据(B的公钥)  B--查看加密数据(B的私钥)
     
    B--创建秘钥对
    B-->公钥-->A
    A--公钥-->加密数据
    A--数据-->B
    B--私钥-->数据
     
    1) 创建密钥对 userb
    ]$ rm -rf  ~/.gnupg/
    ]$ gpg --gen-key  创建密钥对
    ...
    请选择您要使用的密钥种类:
       (1) RSA and RSA (default)
       (2) DSA and Elgamal
       (3) DSA (仅用于签名)
       (4) RSA (仅用于签名)
    您的选择? 
    RSA 密钥长度应在 1024 位与 4096 位之间。
    您想要用多大的密钥尺寸?(2048)
    您所要求的密钥尺寸是 2048 位
    请设定这把密钥的有效期限。
             0 = 密钥永不过期
          <n>  = 密钥在 n 天后过期
          <n>w = 密钥在 n 周后过期
          <n>m = 密钥在 n 月后过期
          <n>y = 密钥在 n 年后过期
    密钥的有效期限是?(0) 
    密钥永远不会过期
    以上正确吗?(y/n)y
    ...
    真实姓名:userb
    电子邮件地址:pang@163.com
    注释:teacher
    您选定了这个用户标识:
        “userb (teacher) <pang@163.com>”
    更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O  (提示输入保护私钥的密码)
     
    gpg: 正在检查信任度数据库
    gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
    gpg: 深度:0 有效性:  1 已签名:  0 信任度:0-,0q,0n,0m,0f,1u
    pub   2048R/44CFD46F 2019-02-19
    密钥指纹 = DB63 55F8 6BD7 941D 8F4A  872F BD9B B688 44CF D46F
    uid                  userb (teacher) <pang@163.com>
    sub   2048R/F6E2F282 2019-02-19
     
    ]$ ls ~/.gnupg/
    gpg.conf           pubring.gpg   random_seed  S.gpg-agent
    private-keys-v1.d  pubring.gpg~  secring.gpg  trustdb.gpg
     
    2) userb导出公钥
    ]$ gpg --export -a > ~/userb.pub
    ]$ ls
    a4.txt userb.pub
     
    3) userb把导出公钥放到公共目录下
    ~]$ cp ~/userb.pub /tmp/
     
    usera :
    1) usera导入公钥
    ]$ rm -rf  ~/.gnupg/
    ]$ gpg --import /tmp/userb.pub
    ]$ ls ~/.gnupg/
    gpg.conf  pubring.gpg  pubring.gpg~  secring.gpg  trustdb.gpg
     
    2) usera使用公钥加密文件
    ]$ echo aaaa > test.txt
    ]$ gpg -e -r userb test.txt  文件加密
                 无论如何还是使用这把密钥吗?(y/N)y
    ]$ ls
    test.txt  test.txt.gpg  userb.pub
     
    3) usera把加密文件放到公共目录下
    ]$ cp test.txt.gpg /tmp/
    ]$ ls -l /tmp/test.txt.gpg 
    -rw-rw-r--. 1 usera usera 344 2月  19 15:45 /tmp/test.txt.gpg
     
    4) userb用户使用私钥解密文件
    ]$ gpg -d /tmp/test.txt.gpg > ~/test5.txt  (必须输入私钥的密码)
     
    5) userb查看文件内容
    ]$ cat ~/test5.txt
     
    1.3.3 gpg 数字签名
    userb使用私钥签名    
    ]$ echo qwe > a1.txt 创建文件
    ]$ gpg -b a1.txt (数字签名 要输入私钥密码)
     
    ]$ls ~/a1*
    /home/userb/a1.txt  /home/userb/a1.txt.sig
    ]$ cp ~/a1*  /tmp/
    ]$ ls -l /tmp/a1*
    -rw-rw-r--. 1 userb userb   4 2月  19 15:51 /tmp/a1.txt
    -rw-rw-r--. 1 userb userb 287 2月  19 15:51 /tmp/a1.txt.sig
    ]$ gpg --fingerprint    输出私钥指纹
    /home/userb/.gnupg/pubring.gpg
    ------------------------------
    pub   2048R/44CFD46F 2019-02-19
    密钥指纹 = DB63 55F8 6BD7 941D 8F4A  872F BD9B B688 44CF D46F
    uid                  userb (teacher) <pang@163.com>
    sub   2048R/F6E2F282 2019-02-19
     
    usera使用公钥验证签名
    ]$ gpg --verify /tmp/a1.txt.sig (root 用户修改了 a1.txt 文件的话 提示签名损坏) 
    gpg: 于 2019年02月19日 星期二 15时49分06秒 CST 创建的签名,使用 RSA,钥匙号 44CFD46F
    gpg: 完好的签名,来自于“userb (teacher) <pang@163.com>”
    gpg: 警告:这把密钥未经受信任的签名认证!
    gpg:       没有证据表明这个签名属于它所声称的持有者。
    主钥指纹: DB63 55F8 6BD7 941D 8F4A  872F BD9B B688 44CF D46F
     
    ]$ cat /tmp/a1.txt
     
    如果内容被修改:
    ]$ gpg --verify /tmp/a1.txt.sig
    gpg: 于 2019年02月19日 星期二 15时49分06秒 CST 创建的签名,使用 RSA,钥匙号 44CFD46F
    gpg: 已损坏的签名,来自于“userb (teacher) <pang@163.com>”
     
    二 AIDE入侵检测系统
    2.1 安装提供检测程序的软件包 
    ]# yum -y install aide
     
    2.2 编辑主配置文件
    ]# sed -i '99,312s/^/#/' /etc/aide.conf  注释默认的检测配置
    ]# vim /etc/aide.conf 
    /root/    FIPSR    #定义检测的目录 和检测规则,写在99行的上方即可
    :wq
     
    ]# aide --init  没有被入侵之前 生成初始信息数据库文件
    AIDE, version 0.15.1
    ### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
    ]# ls /var/lib/aide/aide.db.new.gz  查看数据库文件
     
    ]# cp /var/lib/aide/aide.db.new.gz /tmp/ 把存有初始信息的文件拷贝走
    ]# cd /var/lib/aide/
    ]# mv aide.db.new.gz aide.db.gz          修改文件名
    ]# ls /var/lib/aide/
    aide.db.gz                               查看修改后的文件名
     
    对被检测的/root 目录做操作 (任何操作都可以)
      585  lsattr /root/a.txt 
      586  chattr -a a.txt 
      587  rm -rf /root/a.txt*
      588  ls
      589  vim passwd 
      590  vim  b3.txt
      591  ls -l  mysql-5.7.17.tar 
      592  chown  mysql:mysql  mysql-5.7.17.tar 
     
    ]# aide --check
    Summary:
      Total number of files:9848
      Added files:1
      Removed files:0
      Changed files:2
     
    三 扫描与抓包
    3.1 nmap  扫描
    ]# rpm -q nmap
    ]# man nmap
    ]# nmap -sP 172.40.52.0/24
    ]# nmap -sT 172.40.52.118
    ]# nmap -sT -p 8080 172.40.52.118
    ]# nmap -sT -n -p 80 172.40.52.118-200
    ]# nmap -A 192.168.4.50
    ]# nmap -A  192.168.4.50
    ]# nmap -sP 172.40.52.119,117,221
    ]# nmap -sU 192.168.4.51
    ]# nmap -sT -p 80,3306,53 192.168.4.51
    ]# nmap -sT -p 21-110,3306,27017,6379 192.168.4.51
     
    4.2 tcpdump抓包
    ]# which tcpdump
    /sbin/tcpdump
    ]# man tcpdump 
     
    ]# tcpdump  (默认只抓从eth0接口进出的数据包)
    ]# tcpdump -i br1  指定抓包接口(网卡名称)
    ]# tcpdump -i br1 -c 2 指定抓包个数
    ]# tcpdump -i br1 -c 2 -A  以可阅读方式显示抓包信息
    ]# tcpdump -i br1 -c 2 -A -w /tmp/one.cap 存储到文件里
    ]# ls /tmp/one.cap   
    ]# tcpdump -A -r /tmp/one.cap 读取文件内容
     
    ]# tcpdump -i br1 tcp port 80(网页服务)
    ]# tcpdump -i br1 tcp port 22(远程ssh)
    ]# tcpdump -i br1 tcp port 21
     
    ]# tcpdump -i br1 host 172.40.52.143 and tcp port 21
    ]# tcpdump -i br1 src host 172.40.52.143 and tcp port 21
    (src 只抓访问我的,不抓我返回给他的,相反dst)
     
    抓ftp服务的数据包(其他客户端访问51的ftp)
    ]# useradd student
    ]# echo abc123 | passwd --stdin  student
    ]# tcpdump -A -i eth0  tcp port 21 -w /tmp/a3.cap
     
    ]# tcpdump -A -r /tmp/a3.cap | grep -i student
    ]# tcpdump -A -r /tmp/a3.cap | grep -i abc123
    ]# tcpdump -A -r /tmp/a3.cap | grep -i 'user|pass'
     
    四. 192.168.4.51 做邮件服务器
    收邮件服务 端口 110
         ]# yum -y install dovecot
         ]# systemctl start dovecot
         ]# netstat -utnlp | grep :110
    发邮件服务 端口25
             ]# rpm -q postfix
             ]# systemctl status postfix
             ]# netstat -utnlp | grep :25
    添加邮箱帐号
             ]#useradd jim
             ]# echo 123456 | passwd --stdin jim
             jim@localhost 邮箱帐号
                123456 密码
    设置邮箱目录
            ]# vim /etc/postfix/main.cf
               419 home_mailbox = Maildir/
            :wq
            ]# systemctl restart postfix
            ]# cd /etc/dovecot/conf.d/
            ]# vim 10-auth.conf
                10 disable_plaintext_auth = no
            :wq
            ]# vim 10-mail.conf
                24 mail_location = maildir:~/Maildir
            :wq
            ]# systemctl restart dovecot
     
    连接postfix服务发送邮件
        ]# rpm -q telnet
        ]# telnet localhost 25        连接postfix服务
           helo pc51                  定义主机名
            mail from:root@localhost  发件人
              rcpt to:jim@localhost   收件人
                 data                 写邮件
                     i love you boy   邮件内容
                     i love you boy
                     i love you boy
                 .                    提交邮件
              quit                    断开连接
     
    连接dovecot服务收邮件
          [root@R51 ~]# telnet localhost 110  
          user jim     登陆用户名
          pass 123456  登陆密码
          list         查看邮件
          retr 1       显示编号是1的邮件内容
          quit   断开连接
     
    ]# tcpdump -A -i lo tcp port 110(上面操作,下面抓包)
    ]# tcpdump -w /tmp/mail3.cap -A -i lo tcp port 110
    ]# tcpdump -A -r /tmp/mail3.cap | grep -i user
    ]# tcpdump -A -r /tmp/mail3.cap | grep -i pass
     
    安装wireshark
       ]# yum -y  install wireshark  wireshark-gnome
       ]# wireshark
  • 相关阅读:
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 23: invalid start byte
    cat1标准模组固件开发记录
    cmake 编译出现错误 Could NOT find Threads (missing: Threads_FOUND)
    TMC4361+TMC2130闭环控制带编码器步进电机
    《从优秀到卓越》 吉姆 柯林斯,书读后笔记
    编译MT7621的HTTP通讯信代码
    wireshark分析wifi加密报文
    利用 C# 给 Windows 资源管理器注册右键菜单(Windows Shell)(一):入门
    关于 C# 中 string 类、List 集合的 IndexOf 方法区分大小写的解决方案
    一个简单的利用 WebClient 异步下载的示例(五)(完结篇)
  • 原文地址:https://www.cnblogs.com/luwei0915/p/10495396.html
Copyright © 2020-2023  润新知