一.加密与解密
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
- 第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法
第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-de ...
- NeHe OpenGL教程 第四十五课:顶点缓存
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Gradle 1.12用户指南翻译——第四十五章. 应用程序插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关
0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...
- “全栈2019”Java第四十五章:super关键字
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备
孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...
- (十四--十五)数据库查询优化Part I
(十四--十五)数据库查询优化Part I 如果理解的有问题.欢迎大家指出.这也是我在看课记得笔记..可能会有很多问题 查询优化的重要性 请记住用户只会告诉DMBS他们想要什么样的结果,而不会告诉他们 ...
- 《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. ...
- Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析
一.SELinux安全防护 目标: 本案例要求熟悉SELinux防护机制的开关及策略配置,完成以下任务: 将Linux服务器的SELinux设为enforcing强制模式 在SELinux启用状态下, ...
随机推荐
- 【统计与建模】R语言基本操作
# vec <- rep( seq(1,5,by=0.5),3) # vec <- seq( 1 , 10 , by = 1 ) # min(vec) #最小值 # max(vec) #最 ...
- Linux安装JDK,Tomcat,Mysql+部署项目
安装VMWare虚拟机 下载地址(http://www.onlinedown.net/soft/2062.htm) 安装步骤很简单(除了选择安装路径),傻瓜式安装 同意协议 选择安装路径 安装 完成 ...
- hdu 1342.. 复习广搜 顺便练习一下一个脑残的格式
In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular stra ...
- 在论坛中出现的比较难的sql问题:30(row_number函数 物料组合问题)
原文:在论坛中出现的比较难的sql问题:30(row_number函数 物料组合问题) 在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所 ...
- 关于utf8mb4的使用
针对mysql数据库存储一些特殊字符或者emoji的字符,所需要的编码类型.实际上基于efcore框架的情况下,codefirst自动迁移生成的数据库的默认编码格式,就是utf8mb4,以前的时候记得 ...
- POJ1222、POJ3279、POJ1753--Flip
POJ1222-EXTENDED LIGHTS OUT POJ3279-Fliptile POJ1753-Flip Game 为什么将着三个题放一起讲呢?因为只要搞明白了其中一点,就可以一次3ac了- ...
- List<T> or IList<T>
If you are exposing your class through a library that others will use, you generally want to expos ...
- 【转载】 C#中使用Count方法获取List集合中符合条件的个数
很多时候操作List集合的过程中,我们需要根据特定的查询条件,获取List集合中有多少个实体对象符合查询条件,例如一批产品的对象List集合,如果这批产品的不合格数量大于10则重点备注.在C#中可以自 ...
- dnmp安装
centos7.2.box下载地址 链接: https://pan.baidu.com/s/1ny20PN2x7YuA6dwYA-P0yQ 提取码: wrdk 1 下载centos.box 新建dnm ...
- shell 大型脚本工具开发实战
拆分脚本功能,抽象函数 1.function get_all_group 返回进程组列表字符串 2.function get_all_process 返回进程名列表字符串"nginx htt ...