加密与解密、抓包扫描

  • 信息传递中的风险

手段:

技术:黑客

非技术:拔网线

社会工程学:一起喝酒喝醉了就i把密码说了

一、加/解密

发送方:加密(明文-----> 密文)

接收方:解密(密文------>明文)

  • 加密目的及方式:

确保数据的机密性

对称加密:加/解密用同一个密钥

算法:DES、AES

非对称加密:公钥加密,私钥解密(加/解密用不同的密钥)

算法:RSA、DSA

验证完整性

常见的加密算法(计算规则):

hash散列技术,用于信息摘要

SHA

MD5

  1. 根据输入的文本(长度不限),生成固定长度(例如128位)的摘要文本
  2. 只要输入的文本不同,则生成的摘要文本也不一样

保护信息的完整性

信息摘要(hash值):基于输入的信息生成长度较短、位数固定的散列值

[root@root ~]# ls /root/  | md5sum 
[root@root ~]# echo "aaaaaa"  > a.txt
[root@root ~]# ls /root/  | md5sum 

[root@root ~]# md5sum a.txt
[root@root ~]# echo "bbbb" >> a.txt
[root@root ~]# md5sum a.txt
[root@root ~]# sed -i '2d' a.txt
[root@root ~]# md5sum a.txt
[root@root ~]# rm -rf a.txt
[root@root ~]# ls /root/  | md5sum 

[root@root ~]# which gpg
/usr/bin/gpg
[root@root ~]# rpm -q gnupg2
gnupg2-2.0.22-5.el7_5.x86_64
[root@root ~]# gpg  --help
[root@root ~]# man gpg
 


GnuPG最流行的数据加密、数字签名工具软件

支持算法

  1. 公钥:RSA、ELG、DSA
  2. 对称加密:3DES、CAST5、BLOWFISH、AES、AES256
  3. 散列:MD5、SHA、、、SHA256、SHA512

加密例子[真机上操作]

[root@root ~]# useradd usera              #发送方
[root@root ~]# useradd userb              #接收方
[root@root ~]# echo "123456" | passwd --stdin usera

[root@root ~]# echo "123456" | passwd --stdin userb

开2终端

[root@root ~]# ssh -X [email protected]
[root@root ~]# ssh -X  [email protected]

gpg对称加/解密

gpg -c 加密   文件

gpg -d 解密  文件

[usera@root ~]$ vim test.txt
love you
love love you
very  very love you
nice                                   #随便写一些看的懂的明文
 

[usera@root ~]$ gpg -c test.txt                     #进行加密,(提示)输入加密密码123456789

[usera@root ~]$ ls
test.txt  test.txt.gpg
[usera@root ~]$ cat test.txt.gpg                     #查看加密文件
t��C\^���9l�7���LM��N�3��bd�.�
����u`�&����C�@���`lF�j�4��C�_[usera@root ~]$ 

[usera@root ~]$ mv test.txt.gpg   /tmp
[userb@root ~]$ ls /tmp/(t权限的目录谁都可以访问)
[userb@root ~]$ cat /tmp/test.txt.gpg 
[userb@root ~]$ gpg -d /tmp/test.txt.gpg  > ~/a1.txt               #(提示)需输入加密时写的密码123456789
[userb@root ~]$ ls
a1.txt
[userb@root ~]$ cat a1.txt 
love you
love love you
very  very love you
nice
 

GPG非对称加/解密

用户b把自己的公钥传给用户a

用户a使用b的公钥加密数据,将加密数据传给用户b

用户b使用自己的私钥解密数据

真机]#  
 

[root@root ~]# mv  /dev/random   /dev/random1
[root@root ~]# ln -s  /dev/urandom /dev/random

  • userb  接收方  解密数据

]# rm -rf .gnupg

   1.创建密钥对   gpg  --gen-key

[userb@root ~]$ gpg --gen-key
您的选择?        #默认回车

您想要用多大的密钥尺寸?(2048) #默认回车

密钥的有效期限是?(0)  0

以上正确吗?(y/n)y
真实姓名:userb                #对方使用公钥加密文件时需指定
电子邮件地址:[email protected]   #随便写
注释:userbkey  

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O   #OK
提示输入 密码123456789

[userb@root ~]$ ls -A .gnupg/
gpg.conf           pubring.gpg   random_seed  S.gpg-agent
private-keys-v1.d  pubring.gpg~  secring.gpg  trustdb.gpg
 

   2.导出公钥   gpg  --export  -a

[userb@root ~]$ gpg --export -a  > userb.pub
 

   3.把公钥文件共享   mv  /  scp

[userb@root ~]$ mv userb.pub    /tmp/
 

  • usera发送方   加密数据

   ]# rm -rf .gnupg

   0.导入公钥  gpg --import

[usera@root ~]$ gpg  --import  /tmp/userb.pub 
[usera@root ~]$ ls  .gnupg/
gpg.conf  pubring.gpg  pubring.gpg~  secring.gpg  trustdb.gpg
 

   1.使用公钥加密  gpg -e

[usera@root ~]$ vim test2.txt

随便写一些明文
[usera@root ~]$ gpg -e -r userb test2.txt      #对方创建密钥对时描述的用户名

无论如何还是使用这把密钥吗?(y/N)y

    2.发送加密文件   mv/scp

[usera@root ~]$ mv test2.txt.gpg   /tmp/
 

  3. 接收方userb用户使用私钥解密  gpg   -d

[userb@root ~]$ gpg -d /tmp/test2.txt.gpg 
提示输入密码123456789

[userb@root ~]$ gpg -d /tmp/test2.txt.gpg   > ~/d.txt
[userb@root ~]$ cat d.txt 

GPG软件签名与验证

软件签名与验证过程:

软件官方以私钥对软件包执行数字签名

用户下载软件包、软件官方的公钥

以官方公钥验证软件包签名,确保数据来原正确

分离式签名 gpg  -b

验证签名  gpg  --verify   

1.使用私钥签名

[userb@root ~]$ gpg -b a1.txt             #提示输入密码123456789
[userb@root ~]$ ls
a1.txt  a1.txt.sig  d.txt
 

2.共享签名文件   公钥匙文件    原问文件

[userb@root ~]$ cp a1.txt  /tmp/
[userb@root ~]$ cp a1.txt.sig   /tmp/
公钥文件上面已经传过了

3.导入公钥

公钥usera已经导入 

4.使用公钥验证签名文件

[userb@root ~]$ gpg  --verify /tmp/a1.txt.sig 
gpg: 于 2019年05月28日 星期二 15时26分34秒 CST 创建的签名,使用 RSA,钥匙号 88542221
gpg: 完好的签名,来自于“userb (userbkey) <[email protected]>”
 

真机root]#  sed -i '1a AAAAAAAAAAA'  /tmp/a1.txt

[root@root ~]# cat  /tmp/a1.txt
love you
AAAAAAAAAAA
love love you
very  very love you
nice
 

此时[userb@root ~]$ gpg  --verify /tmp/a1.txt.sig 
gpg: 于 2019年05月28日 星期二 15时26分34秒 CST 创建的签名,使用 RSA,钥匙号 88542221
gpg: 已损坏的签名,来自于“userb (userbkey) <[email protected]>”

-------------------------------------------------------------------------------------------

[root@root ~]# sed -i '2d' /tmp/a1.txt
 

[userb@root ~]$ gpg  --verify /tmp/a1.txt.sig 
gpg: 于 2019年05月28日 星期二 15时26分34秒 CST 创建的签名,使用 RSA,钥匙号 88542221
gpg: 完好的签名,来自于“userb (userbkey) <[email protected]>”
 

二、AIDE入侵检测系统

[192.168.4.53]yum安装aide软件

  • 配置文件

[root@host53 ~]# sed -i '99,$s/^/#/'  /etc/aide.conf 
[root@host53 ~]# vim /etc/aide.conf 
/root FIPSR     #底端添加
 

[root@host53 ~]# aide --init              #根据配置文件对数据进行校验操作

AIDE, version 0.15.1

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
[root@host53 ~]# ls /var/lib/aide/
aide.db.new.gz
[root@host53 ~]# cp /var/lib/aide/aide.db.new.gz   /tmp                   #将校验的数据库文件备份到安全的地方
[root@host53 ~]# cd /var/lib/aide/
[root@host53 aide]# mv aide.db.new.gz  aide.db.gz
 

对检测的/root  目录做监测项的操作

[root@host53 aide]# seq  100  > ~/a.txt
随便做/root目录下一些操作

做“入侵”监测

[root@host53 aide]# aide --check
只能监测做了啥操作 不能防护

三、扫描与抓包

  1. nmap扫描[器]
  2. tcpdump抓包(协议分析)
  3. wireshark图形抓包工具(协议分析)

典型的扫描方式

Scan  主动探测

Sniff    被动监听/嗅探

Capture  数据包捕获(抓包)

  • NMAP

介绍

网络探测利器工具 

支持多种探测技术:ping扫描    , 多端口扫描  ,  TCP/IP指纹校验....

格式

nmap [扫描类型]  [选项] <扫描目标....>

常用扫描类型

-sS   TCP  SYN扫描(半开)

-sT  TCP连接扫描(全开)

-sU UDP扫描

-sP ICMP扫描

-A   目标系统全面分析  = -O(OS检测)、-sV(版本检测)、-sC(脚本检测)、traceroute跟踪....

nmap  192.168.4.53   #默认扫描TCP

nmap   -sU  192.168.4.53     #指定-sU 扫描UDP

nmap  -p 21-22 192.168.4.0/24     #查看哪些主机开启21,22端口

nmap -n -sP  192.168.4.0/24             #检查目标主机的存活状态(是否ping通)

TCPDUMP

介绍

提取TCP协议的数据包

点对点

-c   抓包个数

-i 指定监控的网络接口

-A 转换为ACSII码,以方便阅读

-w  将数据包信息保存到指定文件

-r  从指定文件读取数据包信息

[root@zhenji ~]# tcpdump -i eth1            #默认抓eth0的

[root@zhenji ~]# tcpdump -c 5 -A            #只抓5个包
[root@zhenji ~]# tcpdump -c 2 -A -w soft1.cap      #抓完存到指定文件

[root@zhenji ~]# tcpdump -A -r soft1.cap              #读取抓的数据包信息
 

过滤条件

类型:host  ,  net  , port  , portrange(端口范围)

方向:src(源地址)  , dst(目标地址)

协议: tcp , udp , ip wlan ,arp .....

多个条件组合: and , or , not

ftp实验

[root@host53 ~]# setenforce   0
[root@host53 ~]# useradd nb
echo [root@host53 ~]# echo "abc123abc"  |  passwd --stdin nb

[root@host53 ~]# systemctl restart vsftpd
[root@host53 ~]# netstat -nutlp  | grep 21
tcp6       0      0 :::21                   :::*                    LISTEN      1017/vsftpd   

[root@host53 ~]# which tcpdump 
[root@host53 ~]# tcpdump -A  -w ftp.cap  port 21
 

其他客户机访问

[root@root ~]# yum -y install ftp
[root@root ~]# ftp 192.168.4.53
Name (192.168.4.53:root): nb
331 Please specify the password.
Password:abc123abc

ftp> exit
 

[root@host53 ~]#  Ctrl + C停止抓包

[root@host53 ~]# tcpdump -A -r  ftp.cap  | grep -i user
11:01:21.494012 IP 192.168.4.254.33270 > host53.ftp: Flags [P.], seq 1:10, ack 21, win 229, options [nop,nop,TS val 8745298 ecr 163433], length 9: FTP: USER nb
..qR..~iUSER nb
[root@host53 ~]# tcpdump -A -r  ftp.cap  | grep -i pass
11:01:25.173886 IP 192.168.4.254.33270 > host53.ftp: Flags [P.], seq 10:26, ack 55, win 229, options [nop,nop,TS val 8748978 ecr 166524], length 16: FTP: PASS abc123abc
.......|PASS abc123abc
 

  • wireshark图形工具抓包

真机操作

[root@root lnmp_soft]# yum -y install wireshark   wireshark-gnome

真机上打开

发布了67 篇原创文章 · 获赞 13 · 访问量 4081

猜你喜欢

转载自blog.csdn.net/tongzhuo1220/article/details/90634804