39_加密与解密 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
ba1f2511fc30423bdbb183fe33f3dd0f a.txt
1.2 GPG加密工具
]# rpm -q gnupg2
gnupg2-2.0.22-5.el7_5.x86_64
]# which gpg
/usr/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月 25 21:11 /tmp/a.txt.gpg
解密
userb~]$ 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
电子邮件地址:349012093@qq.com
注释:zk
您选定了这个用户标识:
“userb (zk) <349012093@qq.com>”
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O (提示输入保护私钥的密码)
gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性: 1 已签名: 0 信任度:0-,0q,0n,0m,0f,1u
pub 2048R/15C567E0 2020-02-25
密钥指纹 = 9F63 8C06 100E E79C E8F7 6E38 A159 FCAD 15C5 67E0
uid userb (zk) <349012093@qq.com>
sub 2048R/2F42885E 2020-02-25
]$ 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 343 2月 25 21:22 /tmp/test.txt.gpg
4) userb用户使用私钥解密文件
]$ gpg -d /tmp/test.txt.gpg > ~/test5.txt (必须输入私钥的密码)
5) userb查看文件内容
]$ cat ~/test5.txt
aaaa
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月 25 21:26 /tmp/a1.txt
-rw-rw-r-- 1 userb userb 287 2月 25 21:26 /tmp/a1.txt.sig
]$ gpg --fingerprint 输出私钥指纹
/home/userb/.gnupg/pubring.gpg
------------------------------
pub 2048R/15C567E0 2020-02-25
密钥指纹 = 9F63 8C06 100E E79C E8F7 6E38 A159 FCAD 15C5 67E0
uid userb (zk) <349012093@qq.com>
sub 2048R/2F42885E 2020-02-25
usera使用公钥验证签名
]$ gpg --verify /tmp/a1.txt.sig (root 用户修改了 a1.txt 文件的话 提示签名损坏)
gpg: 于 2020年02月25日 星期二 21时23分52秒 CST 创建的签名,使用 RSA,钥匙号 15C567E0
gpg: 完好的签名,来自于“userb (zk) <349012093@qq.com>”
gpg: 警告:这把密钥未经受信任的签名认证!
gpg: 没有证据表明这个签名属于它所声称的持有者。
主钥指纹: 9F63 8C06 100E E79C E8F7 6E38 A159 FCAD 15C5 67E0
]$ cat /tmp/a1.txt
qwe
如果内容被修改:usera
]$ gpg --verify /tmp/a1.txt.sig
gpg: 于 2020年02月25日 星期二 21时23分52秒 CST 创建的签名,使用 RSA,钥匙号 15C567E0
gpg: 已损坏的签名,来自于“userb (zk) <349012093@qq.com>”
二 AIDE入侵检测系统
2.1 安装提供检测程序的软件包
]# yum -y install aide
aide.x86_64 0:0.15.1-13.el7
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 目录做操作 (任何操作都可以)
lsattr /root/a.txt
chattr -a a.txt
echo 123 > passwd
]# aide --check
Summary:
Total number of files: 13
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
/usr/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
reading from file /tmp/mail3.cap, link-type EN10MB (Ethernet)
.-._.-.{user jim
]# tcpdump -A -r /tmp/mail3.cap | grep -i pass
reading from file /tmp/mail3.cap, link-type EN10MB (Ethernet)
.-...-._pass 123456
安装wireshark
]# yum -y install wireshark wireshark-gnome
]# wireshark