Security

Security

Security

CVE

订阅rss

vulnerability

GPG的使用

准备工作

安装
linux下安装gpg软件(以debian10为例)

apt-get install -y gpg

windows下安装gpg软件 https://www.gpg4win.org/get-gpg4win.html 会提示donate,把num设置成0
生成自己的私钥公钥对
windows下, 我使用的是上面安装的客户端Kleopatra Gpg4win-3.1.14

可以在文件-新建密钥对或者文件-导入 导入之前的密钥对,这里我先创建一个,然后导入我linux里面的

创建密钥对并备份

选择格式选择创建个人openpgp, 在界面填写用户和邮箱,高级设置里面也有和linux差不多的选项 最后输入密码,我在创建页面备份了密钥对的副本,没有上传到目录服务

图形界面加密文件

文件-签名/加密 可以增加多个人的名字或者邮箱 加密完成后会生成一个gpg文件,右击即可解密(因为有自己的私钥,当然也可以在前面加密的时候设置密码)

linux下, 这里我设置了key密码,填写了姓名邮箱等信息,选择了4096位的rsa类型
生产密钥对
1
liuliancao@liuliancao-dev:~/gpg$ gpg --full-generate-key # or gpg --generate-key

注意这里的密码一定要记得

发送pub到keyserver
1
2
3
4
5
➜  ~ gpg --list-keys --keyid-format short # 注意用short,如果觉得麻烦,就是ID的后8位
pub   rsa3072/199C28FA 2022-01-19 [SC] [有效至:2024-01-19]
      A41C48868765BF123D11425BABF181C9199C28FA
uid         [ 绝对 ] ops <ops@liuliancao.com>
sub   rsa3072/6F917C31 2022-01-19 [E] [有效至:2024-01-19]

这样别人就可以通过如下方式获取你的PUB了

1
2
3
4
5
gpg --keyserver keyserver.ubuntu.com --recv-keys 199C28FA
gpg: 下载密钥‘199C28FA’,从 hkp 服务器 keyserver.ubuntu.com
gpg: 密钥 199C28FA:公钥“ops <ops@liuliancao.com>”已导入
gpg: 合计被处理的数量:1
gpg:           已导入:1  (RSA: 1)
用指定pub加密一个文件

我们写一个临时文件

1
2
➜  gpg-wd cat test.txt
Hello, liuliancao!

加密文件

1
2
gpg -r 199C28FA --encrypt test.txt
# 这个时候会有test.txt.gpg
解密文件

解密文件

1
2
3
4
gpg --decrypt test.txt.gpg
gpg: 由 3072 位的 RSA 密钥加密,标识为 40D3635F6F917C31,生成于 2022-01-19
      “ops <ops@liuliancao.com>”
Hello, liuliancao!

有可能会让我们输入密码,记得输入创建key的时候的密码

签名

签名要注意指定用户通过-u指定,可以写用户短名字比如liuliancao,也可以使用标记SHORT ID

1
gpg -u liuliancao -s test.txt

表示使用本地liuliancao用户对test.txt进行签名并生成test.txt.sig文件

如果要生成ascii码类型的签名,使用–clearsign,clear这里意思是清晰明了的,否则是二进制的

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
➜  gpg -u liuliancao --clearsign test.txt
➜  ls
test.txt  test.txt.asc  test.txt.gpg  test.txt.gpg1
➜  cat test.txt.asc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello, liuliancao!
-----BEGIN PGP SIGNATURE-----

iQHGBAEBCgAwFiEEpBxIhodlvxI9EUJbq/GByRmcKPoFAmHnrEASHHdkb3BzQHdv
b2R1YW4uY29tAAoJEKvxgckZnCj6V8AL/3zhalJBE6UHsVj5xoKb185MWSt3btSX
9Lk4KE3S0LkRaA835pH6mLjzlWfgAr61rYV0aC3S94JvhAWV28mbrzSfosO+fsgb
xxxEE4SzjjaB6ISRKjoc7kmh3ehwH13ggudQ+z99F0xR57gYasAAbFIs+RbkFgJl
XWSPV1zs2vII+ntBFFuREQy4Fp+80xssF/AajnwUV4c80OMbHYRGcwE1bu1eRrnB
fLES6lq1JND3CEKB4Rjt5I6T+cPigZEoIAvd+jurvQajbh0s8eFvu2Tkpjlmufbc
pstDX5me74uIsCkrFsBXrvEhiQirE0AObWyxc+VN5FI90iB7qY2dhgYatSjsEnVf
L3yBrKa19SvVQtlkG7byhIVT+cqbTcC7BuTrJVZdhLXm35cLeL6nleYwkEVOpKCA
CGnPlZBYYUZPMsIGaiuDn6yxZoq4hmHlBfgewI3AYRXEu+hk1iUuYhr3GHc+Urlt
rHpsxOFDtoPlD5cpUEw9qm2aGwvF+qwCBg==
=T0pI
-----END PGP SIGNATURE-----

签名有啥用呢,通过gpg –verify可以检查签名和实际文件是否一致,排除中间网络异常修改等操作,但是注意这里

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
➜  gpg-wd gpg --verify test.txt.asc
gpg: 签名建立于 2022年01月19日 星期三 14时14分24秒 CST
gpg:               使用 RSA 密钥 A41C48868765BF123D11425BABF181C9199C28FA
gpg:                签发者 "liuliancao@liuliancao.com"
gpg: 完好的签名,来自于 “liuliancao <liuliancao@liuliancao.com>” [绝对]
gpg: 警告:不是一个分离签名;文件‘test.txt’没有被验证!
➜  gpg-wd vim test.txt.asc
➜  gpg-wd gpg --verify test.txt.asc
gpg: CRC 错误;E94CA0 - 4F4A48
gpg: 未找到签名
gpg: 签名无法被验证。
请记住签名文件(.sig 或 .asc)应该是
在命令行中第一个给定的文件。

由于我们没有分开签名(文件和签名是一个文件), 导致我们只能验证签名的内容,文件是无法验证的

创建分离签名, 如果不要二进制记得加–armor参数,如果还需要加密,则在文件签名加–encrypt

1
2
3
gpg -u liuliancao --detach-sign test.txt
ls *.sig
test.txt.sig

再次执行verify

1
2
3
4
5
6
gpg --verify test.txt.sig
gpg: 假定被签名的数据在‘test.txt’
gpg: 签名建立于 2022年01月19日 星期三 14时29分51秒 CST
gpg:               使用 RSA 密钥 A41C48868765BF123D11425BABF181C9199C28FA
gpg:                签发者 "liuliancao@liuliancao.com"
gpg: 完好的签名,来自于 “liuliancao <liuliancao@liuliancao.com>” [绝对]

我们改一下test.txt

1
2
3
4
5
6
7
echo 'add a line' >> test.txt
gpg --verify test.txt.sig
gpg: 假定被签名的数据在‘test.txt’
gpg: 签名建立于 2022年01月19日 星期三 14时29分51秒 CST
gpg:               使用 RSA 密钥 A41C48868765BF123D11425BABF181C9199C28FA
gpg:                签发者 "liuliancao@liuliancao.com"
gpg: 已损坏的签名,来自于 “liuliancao <liuliancao@liuliancao.com>” [绝对]

发现这个时候签名已经损坏了

修改key的密码

如果key的密码忘了,我们一般就无法修改密码,通常需要暴力破解等手段

1
2
3
4
5
# 格式gpg --change-passphrase USER_ID
gpg --change-passphrase 6F917C31
gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

注意这里也可以用gpg –edit-keys USER_ID编辑和修改,这个是相当丰富的命令行资源,类似ftp

输入 passwd,

save即可

增加别人的key到pub里面,多人协同

此时我们登录另一台服务器模拟另一个小伙伴benben

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
[root@terraform-server01 ~]# gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

请选择您要使用的密钥种类:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (仅用于签名)
   (4) RSA (仅用于签名)
您的选择? 1
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048)4096
您所要求的密钥尺寸是 4096请设定这把密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 0
密钥永远不会过期
以上正确吗?(y/n)y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

真实姓名:ben
姓名至少要有五个字符长
真实姓名:benben
电子邮件地址:benben@liuliancao.com
注释:liuliancao's test
您选定了这个用户标识:
    “benben (liuliancao's test) <benben@liuliancao.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O
您需要一个密码来保护您的私钥。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。


# 实际发现服务器会卡住,

需要安装一下rng-tools,安装完成以后手动执行下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
yum -y install rng-tools

rngd -r /dev/urandom
# 再生成一下
gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

请选择您要使用的密钥种类:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (仅用于签名)
   (4) RSA (仅用于签名)
您的选择? 1
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048) 4096
您所要求的密钥尺寸是 4096请设定这把密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 0
密钥永远不会过期
以上正确吗?(y/n)y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

真实姓名:benben
电子邮件地址:benben@liuliancao.com
注释:benben
您选定了这个用户标识:
    “benben (benben) <benben@liuliancao.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O
您需要一个密码来保护您的私钥。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
gpg: 密钥 9D621B41 被标记为绝对信任
公钥和私钥已经生成并经签名。

gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:  1 已签名:  0 信任度:0-,0q,0n,0m,0f,1u
pub   4096R/9D621B41 2022-01-19
密钥指纹 = F662 BEF2 7042 1AA8 F220  50FF 1D1C 6973 9D62 1B41
uid                  benben (benben) <benben@liuliancao.com>
sub   4096R/D4AB1327 2022-01-19
# 记住这里的用户指纹F662 BEF2 7042 1AA8 F220  50FF 1D1C 6973 9D62 1B41

# 列出我们的key
gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   4096R/9D621B41 2022-01-19
uid                  benben (benben) <benben@liuliancao.com>
sub   4096R/D4AB1327 2022-01-19

# 注意用pub对应的短UID,不要用sub的
gpg --keyserver keyserver.ubuntu.com --send-keys 9D621B41
gpg: 将密钥‘9D621B41’上传到 hkp 服务器 keyserver.ubuntu.com

此时你是gpg的管理员,要把benben加到用户组sub keys里面

继续回到我们的开始服务器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  # 导入benben的公钥
  gpg --keyserver keyserver.ubuntu.com --recv-keys 9D621B41
  gpg: 密钥 1D1C69739D621B41:公钥 “benben (benben) <benben@liuliancao.com>” 已导入
  gpg: 处理的总数:1
  gpg:               已导入:1

  # 列出所有的key
  gpg --list-keys
  /home/liuliancao/.gnupg/pubring.kbx
  -----------------------------------
  # 这是主master pub和sub,绝对信任
  pub   rsa3072 2022-01-19 [SC] [有效至:2024-01-19]
        A41C48868765BF123D11425BABF181C9199C28FA
  uid           [ 绝对 ] liuliancao <liuliancao@liuliancao.com>
  sub   rsa3072 2022-01-19 [E] [有效至:2024-01-19]

  # 这个是未知用户
  pub   rsa4096 2022-01-19 [SC]
        F662BEF270421AA8F22050FF1D1C69739D621B41
  uid           [ 未知 ] benben (benben) <benben@liuliancao.com>
  sub   rsa4096 2022-01-19 [E]
  # 取后8位或者gpg --list-keys --keyid-format short发现benben的pub id为9D621B41
  # 检查指纹,
  gpg --fingerprint 9D621B41
  pub   rsa4096 2022-01-19 [SC]
      F662 BEF2 7042 1AA8 F220  50FF 1D1C 6973 9D62 1B41
  uid           [ 未知 ] benben (benben) <benben@liuliancao.com>
  sub   rsa4096 2022-01-19 [E]
  # ok,和benben的本地一样,

  # 准备在pub里面签名
  gpg -u 199C28FA --sign-key 9D621B41 # -u指定你的master ID

  pub  rsa4096/1D1C69739D621B41
       创建于:2022-01-19  有效至:永不       可用于:SC
       信任度:未定义     有效性:未知
  sub  rsa4096/5D5AEF46D4AB1327
       创建于:2022-01-19  有效至:永不       可用于:E
  [ 未知 ] (1). benben (benben) <benben@liuliancao.com>


  pub  rsa4096/1D1C69739D621B41
       创建于:2022-01-19  有效至:永不       可用于:SC
       信任度:未定义     有效性:未知
   主密钥指纹: F662 BEF2 7042 1AA8 F220  50FF 1D1C 6973 9D62 1B41

       benben (benben) <benben@liuliancao.com>

  您真的确定要签名这个密钥,使用您的密钥
  “wdops <liuliancao@liuliancao.com>” (ABF181C9199C28A)

  真的要签名吗?(y/N) y

  gpg --list-keys
  /home/liuliancao/.gnupg/pubring.kbx
  -----------------------------------
  pub   rsa3072 2021-11-06 [SC] [有效至:2023-11-06]
        5FF5D6DD2B143A05301AB39E3DC8D10790F6D8EF
  uid           [ 绝对 ] liuliancao <liuliancao@gmail.com>
  sub   rsa3072 2021-11-06 [E] [有效至:2023-11-06]

  pub   rsa3072 2022-01-19 [SC] [有效至:2024-01-19]
        A41C48868765BF123D11425BABF181C9199C28FA
  uid           [ 绝对 ] liuliancao <liuliancao@liuliancao.com>
  sub   rsa3072 2022-01-19 [E] [有效至:2024-01-19]

  pub   rsa4096 2022-01-19 [SC]
        F662BEF270421AA8F22050FF1D1C69739D621B41
  uid           [ 完全 ] benben (benben) <benben@liuliancao.com>
  sub   rsa4096 2022-01-19 [E]

我们这边生成一个新文件进行测试

1
2
3
4
5
6
7
cat benben-test.txt
this is test for benben.
# 进行加密,并且指定接收人为liuliancao和benben,如果只指定benben那只有benben可以看
gpg -r benben -r liuliancao --encrypt benben-test.txt
# 解密
# 本地
gpg benben-test.txt.gpg

benben服务器上面进行解密

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
gpg benben-test.txt.gpg

您需要输入密码,才能解开这个用户的私钥:“benben (benben) <benben@liuliancao.com>”
4096 位的 RSA 密钥,钥匙号 D4AB1327,建立于 2022-01-19 (主钥匙号 9D621B41)

gpg: 由 RSA 密钥加密、钥匙号为 6F917C31
gpg: 由 4096 位的 RSA 密钥加密,钥匙号为 D4AB1327、生成于 2022-01-19
      “benben (benben) <benben@liuliancao.com>”
cat benben-test.txt
this is test for benben.

这个时候我们就完成了一次完整的数据传递

私钥备份和恢复
1
2
3
4
# 备份
gpg --export-secret-keys > liuliancao-gpg.asc
# 恢复
gpg --import liuliancao-gpg.asc
gpg服务器默认不缓存密码
1
2
cat .gnupg/gpg-agent.conf 
max-cache-ttl 0

总结

  • gpg通过公私钥和密码共同保证安全性
  • gpg可以用于文件签名,邮件签名,文件加密等场景
  • gpg可以用于多人协同 只要通过keyserver下载下来团队成员的公钥,即可通过他的pub进行加密并发送给他 他个人的key可以加入公共的sub keys链

CSRF(Cross Site Request Forgery)跨站请求攻击

说白了就是其他地方防止一个攻击请求,利用用户本地的一些cookie session等,

点击以后就会触发用户意想不到的web请求,从而导致比如转账等情况。 wiki关于跨站请求攻击

通过令牌限制

比如django默认强制form表单增加{% csrf_token %}这种,通过每次表单都需要带一个token解决

设置http请求的refer字段

通过检查校验refer来看这个请求的调用来源是否是同源网站

表单增加一个随机数token

通过表单增加一个随机数据项(这个不存在cookie中),后端每次顺便校验一下随机数,实现类似csrf_token的效果

XSS(Cross Site scripting)跨站脚本攻击

wiki XSS 说白了就是通过用户误点击xss脚本,会执行攻击者的一些命令,

比如获取:

  • cookie,可以盗用信息,甚至可以转账,登录等
  • 通过植入flash,和设置cross domain获取更多权限
  • 利用iframe,frame,XMLHttp Request或者flash,执行一些管理员动作,比如发微博,加好友
  • 用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动
  • 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DoS攻击的效果

预防方式

过滤特殊字符

调用对应库的encode函数或者检查函数

在http头指定内容的类型

渗透测试工具

扫描工具

masscan

Vault

vault是hashicorp公司针对安全数据存放和获取的一种解决方案,用于安全验证等,vault官网

部署前的安全检查 https://learn.hashicorp.com/tutorials/vault/production-hardening?in=vault/day-one-consul

配合aws和raft keepalived部署https://blog.yasithab.com/centos/hashicorp-vault-ha-cluster-with-raft-and-aws-kms-on-centos-7/

集群搭建with consul https://learn.hashicorp.com/tutorials/vault/deployment-guide

integrated storage https://learn.hashicorp.com/collections/vault/raft 安装完成以后

1
2
vault -autocomplete-install
complete -C /usr/bin/vault vault

export VAULT_ADDR='http://127.0.0.1:8200' vault status

max 768h change to 9000h

1
2
vault write sys/auth/token/tune max_lease_ttl=9000h
vault write sys/auth/token/tune default_lease_ttl=9000h

自签证书

ca证书相关

1
openssl s_client -showcerts  -servername baidu.com -connect baidu.com:443 > cacert.pem

一些安全相关的工具网站

some anti tools

rkhunter

1
yum install rkhunter

使用方法 第一次使用需要先更新下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[root@sandbox-lqx ~]# rkhunter --update
[ Rootkit Hunter version 1.4.6 ]

Checking rkhunter data files...
  Checking file mirrors.dat                                  [ Updated ]
  Checking file programs_bad.dat                             [ Updated ]
  Checking file backdoorports.dat                            [ No update ]
  Checking file suspscan.dat                                 [ Updated ]
  Checking file i18n/cn                                      [ No update ]
  Checking file i18n/de                                      [ Updated ]
  Checking file i18n/en                                      [ No update ]
  Checking file i18n/tr                                      [ Updated ]
  Checking file i18n/tr.utf8                                 [ Updated ]
  Checking file i18n/zh                                      [ Updated ]
  Checking file i18n/zh.utf8                                 [ Updated ]
  Checking file i18n/ja                                      [ Updated ]

可以看下它的所有tests 还有支持的语言 通过–list

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@sandbox-lqx ~]# rkhunter --list language

Current languages:
    cn de en ja tr tr.utf8 zh zh.utf8
# 这里cn是简体,zh是繁体
[root@sandbox-lqx ~]# rkhunter --list tests

Current test names:
    additional_rkts all apps attributes avail_modules deleted_files
    filesystem group_accounts group_changes hashes hidden_ports hidden_procs
    immutable ipc_shared_mem known_rkts loaded_modules local_host login_backdoors
    malware network none os_specific packet_cap_apps passwd_changes
    ports possible_rkt_files possible_rkt_strings promisc properties rootkits
    running_procs scripts shared_libs shared_libs_path sniffer_logs startup_files
    startup_malware strings susp_dirs suspscan system_commands system_configs
    system_configs_ssh system_configs_syslog tripwire trojans

Grouped test names:
    additional_rkts => possible_rkt_files possible_rkt_strings 
    group_accounts  => group_changes passwd_changes 
    local_host      => filesystem group_changes passwd_changes startup_malware system_configs_ssh system_configs_syslog 
    malware         => deleted_files hidden_procs ipc_shared_mem login_backdoors running_procs sniffer_logs susp_dirs suspscan tripwire 
    network         => hidden_ports packet_cap_apps ports promisc 
    os_specific     => avail_modules loaded_modules 
    properties      => attributes hashes immutable scripts 
    rootkits        => avail_modules deleted_files hidden_procs ipc_shared_mem known_rkts loaded_modules login_backdoors possible_rkt_files possible_rkt_strings running_procs sniffer_logs susp_dirs suspscan tripwire trojans 
    shared_libs     => shared_libs_path 
    startup_files   => startup_malware 
    system_commands => attributes hashes immutable scripts shared_libs_path strings 
    system_configs  => system_configs_ssh system_configs_syslog

第一次使用建议保存好初始的数据库

1
2
3
[root@sandbox-lqx ~]# rkhunter --propupd
[ Rootkit Hunter version 1.4.6 ]
File created: searched for 175 files, found 123

然后就可以用你喜欢的语言进行检查了 不过建议加–sk 否则就要每次都要按下 enter键

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
[root@sandbox-lqx ~]# rkhunter --check --language cn -x --sk
[ Rootkit Hunter 版本 1.4.6 ]

检查系统命令...

  执行 '字符串' 命令检测
    检测 '字符串' 命令                                [ 正常 ]

  执行 '共享库' 的检测
    检测预装载变量                                    [ 没发现 ]
    检测预装文件                                       [ 没发现 ]
    检测 LD_LIBRARY_PATH 变量                            [ 没发现 ]

  执行文件属性检测
    检测先决条件                                       [ 正常 ]
    /usr/sbin/adduser                                        [ 正常 ]
    /usr/sbin/chkconfig                                      [ 正常 ]
    /usr/sbin/chroot                                         [ 正常 ]
    /usr/sbin/depmod                                         [ 正常 ]
    /usr/sbin/fsck                                           [ 正常 ]
    /usr/sbin/groupadd                                       [ 正常 ]
    /usr/sbin/groupdel                                       [ 正常 ]
    /usr/sbin/groupmod                                       [ 正常 ]
    /usr/sbin/grpck                                          [ 正常 ]
    /usr/sbin/ifdown                                         [ 正常 ]
    /usr/sbin/ifup                                           [ 正常 ]
    /usr/sbin/init                                           [ 正常 ]
    /usr/sbin/insmod                                         [ 正常 ]
    /usr/sbin/ip                                             [ 正常 ]
    /usr/sbin/lsmod                                          [ 正常 ]
    /usr/sbin/lsof                                           [ 正常 ]
    /usr/sbin/modinfo                                        [ 正常 ]
    /usr/sbin/modprobe                                       [ 正常 ]
    /usr/sbin/nologin                                        [ 正常 ]
    /usr/sbin/pwck                                           [ 正常 ]
    /usr/sbin/rmmod                                          [ 正常 ]
    /usr/sbin/rsyslogd                                       [ 正常 ]
    /usr/sbin/runlevel                                       [ 正常 ]
    /usr/sbin/sestatus                                       [ 正常 ]
    /usr/sbin/sshd                                           [ 正常 ]
    /usr/sbin/sulogin                                        [ 正常 ]
    /usr/sbin/sysctl                                         [ 正常 ]
    /usr/sbin/useradd                                        [ 正常 ]
    /usr/sbin/userdel                                        [ 正常 ]
    /usr/sbin/usermod                                        [ 正常 ]
    /usr/sbin/vipw                                           [ 正常 ]
    /usr/bin/awk                                             [ 正常 ]
    /usr/bin/basename                                        [ 正常 ]
    /usr/bin/bash                                            [ 正常 ]
    /usr/bin/cat                                             [ 正常 ]
    /usr/bin/chattr                                          [ 正常 ]
    /usr/bin/chmod                                           [ 正常 ]
    /usr/bin/chown                                           [ 正常 ]
    /usr/bin/cp                                              [ 正常 ]
    /usr/bin/curl                                            [ 正常 ]
    /usr/bin/cut                                             [ 正常 ]
    /usr/bin/date                                            [ 正常 ]
    /usr/bin/df                                              [ 正常 ]
    /usr/bin/diff                                            [ 正常 ]
    /usr/bin/dirname                                         [ 正常 ]
    /usr/bin/dmesg                                           [ 正常 ]
    /usr/bin/du                                              [ 正常 ]
    /usr/bin/echo                                            [ 正常 ]
    /usr/bin/egrep                                           [ 正常 ]
    /usr/bin/env                                             [ 正常 ]
    /usr/bin/fgrep                                           [ 正常 ]
    /usr/bin/file                                            [ 正常 ]
    /usr/bin/find                                            [ 正常 ]
    /usr/bin/grep                                            [ 正常 ]
    /usr/bin/groups                                          [ 正常 ]
    /usr/bin/head                                            [ 正常 ]
    /usr/bin/id                                              [ 正常 ]
    /usr/bin/ipcs                                            [ 正常 ]
    /usr/bin/kill                                            [ 正常 ]
    /usr/bin/last                                            [ 正常 ]
    /usr/bin/lastlog                                         [ 正常 ]
    /usr/bin/ldd                                             [ 正常 ]
    /usr/bin/less                                            [ 正常 ]
    /usr/bin/logger                                          [ 正常 ]
    /usr/bin/login                                           [ 正常 ]
    /usr/bin/ls                                              [ 正常 ]
    /usr/bin/lsattr                                          [ 正常 ]
    /usr/bin/mail                                            [ 正常 ]
    /usr/bin/md5sum                                          [ 正常 ]
    /usr/bin/mktemp                                          [ 正常 ]
    /usr/bin/more                                            [ 正常 ]
    /usr/bin/mount                                           [ 正常 ]
    /usr/bin/mv                                              [ 正常 ]
    /usr/bin/newgrp                                          [ 正常 ]
    /usr/bin/passwd                                          [ 正常 ]
    /usr/bin/perl                                            [ 正常 ]
    /usr/bin/pgrep                                           [ 正常 ]
    /usr/bin/ping                                            [ 正常 ]
    /usr/bin/pkill                                           [ 正常 ]
    /usr/bin/ps                                              [ 正常 ]
    /usr/bin/pwd                                             [ 正常 ]
    /usr/bin/readlink                                        [ 正常 ]
    /usr/bin/rkhunter                                        [ 正常 ]
    /usr/bin/rpm                                             [ 正常 ]
    /usr/bin/runcon                                          [ 正常 ]
    /usr/bin/sed                                             [ 正常 ]
    /usr/bin/sh                                              [ 正常 ]
    /usr/bin/sha1sum                                         [ 正常 ]
    /usr/bin/sha224sum                                       [ 正常 ]
    /usr/bin/sha256sum                                       [ 正常 ]
    /usr/bin/sha384sum                                       [ 正常 ]
    /usr/bin/sha512sum                                       [ 正常 ]
    /usr/bin/size                                            [ 正常 ]
    /usr/bin/sort                                            [ 正常 ]
    /usr/bin/ssh                                             [ 正常 ]
    /usr/bin/stat                                            [ 正常 ]
    /usr/bin/strings                                         [ 正常 ]
    /usr/bin/su                                              [ 正常 ]
    /usr/bin/sudo                                            [ 正常 ]
    /usr/bin/tail                                            [ 正常 ]
    /usr/bin/test                                            [ 正常 ]
    /usr/bin/top                                             [ 正常 ]
    /usr/bin/touch                                           [ 正常 ]
    /usr/bin/tr                                              [ 正常 ]
    /usr/bin/uname                                           [ 正常 ]
    /usr/bin/uniq                                            [ 正常 ]
    /usr/bin/users                                           [ 正常 ]
    /usr/bin/vmstat                                          [ 正常 ]
    /usr/bin/w                                               [ 正常 ]
    /usr/bin/watch                                           [ 正常 ]
    /usr/bin/wc                                              [ 正常 ]
    /usr/bin/wget                                            [ 正常 ]
    /usr/bin/whatis                                          [ 正常 ]
    /usr/bin/whereis                                         [ 正常 ]
    /usr/bin/which                                           [ 正常 ]
    /usr/bin/who                                             [ 正常 ]
    /usr/bin/whoami                                          [ 正常 ]
    /usr/bin/numfmt                                          [ 正常 ]
    /usr/bin/kmod                                            [ 正常 ]
    /usr/bin/systemctl                                       [ 正常 ]
    /usr/bin/gawk                                            [ 正常 ]
    /usr/bin/mailx                                           [ 正常 ]
    /usr/lib/systemd/systemd                                 [ 正常 ]

正在检查rootkit...

  执行已知rootkit和目录的检查
    55808 Trojan - Variant A                                 [ 没发现 ]
    ADM Worm                                                 [ 没发现 ]
    AjaKit Rootkit                                           [ 没发现 ]
    Adore Rootkit                                            [ 没发现 ]
    aPa Kit                                                  [ 没发现 ]
    Apache Worm                                              [ 没发现 ]
    Ambient (ark) Rootkit                                    [ 没发现 ]
    Balaur Rootkit                                           [ 没发现 ]
    BeastKit Rootkit                                         [ 没发现 ]
    beX2 Rootkit                                             [ 没发现 ]
    BOBKit Rootkit                                           [ 没发现 ]
    cb Rootkit                                               [ 没发现 ]
    CiNIK Worm (Slapper.B variant)                           [ 没发现 ]
    Danny-Boy's Abuse Kit                                    [ 没发现 ]
    Devil RootKit                                            [ 没发现 ]
    Diamorphine LKM                                          [ 没发现 ]
    Dica-Kit Rootkit                                         [ 没发现 ]
    Dreams Rootkit                                           [ 没发现 ]
    Duarawkz Rootkit                                         [ 没发现 ]
    Ebury backdoor                                           [ 没发现 ]
    Enye LKM                                                 [ 没发现 ]
    Flea Linux Rootkit                                       [ 没发现 ]
    Fu Rootkit                                               [ 没发现 ]
    Fuck`it Rootkit                                          [ 没发现 ]
    GasKit Rootkit                                           [ 没发现 ]
    Heroin LKM                                               [ 没发现 ]
    HjC Kit                                                  [ 没发现 ]
    ignoKit Rootkit                                          [ 没发现 ]
    IntoXonia-NG Rootkit                                     [ 没发现 ]
    Irix Rootkit                                             [ 没发现 ]
    Jynx Rootkit                                             [ 没发现 ]
    Jynx2 Rootkit                                            [ 没发现 ]
    KBeast Rootkit                                           [ 没发现 ]
    Kitko Rootkit                                            [ 没发现 ]
    Knark Rootkit                                            [ 没发现 ]
    ld-linuxv.so Rootkit                                     [ 没发现 ]
    Li0n Worm                                                [ 没发现 ]
    Lockit / LJK2 Rootkit                                    [ 没发现 ]
    Mokes backdoor                                           [ 没发现 ]
    Mood-NT Rootkit                                          [ 没发现 ]
    MRK Rootkit                                              [ 没发现 ]
    Ni0 Rootkit                                              [ 没发现 ]
    Ohhara Rootkit                                           [ 没发现 ]
    Optic Kit (Tux) Worm                                     [ 没发现 ]
    Oz Rootkit                                               [ 没发现 ]
    Phalanx Rootkit                                          [ 没发现 ]
    Phalanx2 Rootkit                                         [ 没发现 ]
    Phalanx2 Rootkit (extended tests)                        [ 没发现 ]
    Portacelo Rootkit                                        [ 没发现 ]
    R3dstorm Toolkit                                         [ 没发现 ]
    RH-Sharpe's Rootkit                                      [ 没发现 ]
    RSHA's Rootkit                                           [ 没发现 ]
    Scalper Worm                                             [ 没发现 ]
    Sebek LKM                                                [ 没发现 ]
    Shutdown Rootkit                                         [ 没发现 ]
    SHV4 Rootkit                                             [ 没发现 ]
    SHV5 Rootkit                                             [ 没发现 ]
    Sin Rootkit                                              [ 没发现 ]
    Slapper Worm                                             [ 没发现 ]
    Sneakin Rootkit                                          [ 没发现 ]
    'Spanish' Rootkit                                        [ 没发现 ]
    Suckit Rootkit                                           [ 没发现 ]
    Superkit Rootkit                                         [ 没发现 ]
    TBD (Telnet BackDoor)                                    [ 没发现 ]
    TeLeKiT Rootkit                                          [ 没发现 ]
    T0rn Rootkit                                             [ 没发现 ]
    trNkit Rootkit                                           [ 没发现 ]
    Trojanit Kit                                             [ 没发现 ]
    Tuxtendo Rootkit                                         [ 没发现 ]
    URK Rootkit                                              [ 没发现 ]
    Vampire Rootkit                                          [ 没发现 ]
    VcKit Rootkit                                            [ 没发现 ]
    Volc Rootkit                                             [ 没发现 ]
    Xzibit Rootkit                                           [ 没发现 ]
    zaRwT.KiT Rootkit                                        [ 没发现 ]
    ZK Rootkit                                               [ 没发现 ]

  执行辅助的rootkit检测
    Suckit Rookit 辅助检测                               [ 正常 ]
    检查可能存在的rootkit及其目录                 [ 没发现 ]
    检测判定rootkit可能存在的字符串              [ 没发现 ]

  执行恶意软件检测
    检测正在运行进程的可疑文件                  [ 没发现 ]
    检测隐藏进程                                       [ 跳过 ]
    检测 login 后门                                      [ 没发现 ]
    检测 sniffer 日志文件                              [ 没发现 ]
    检测可疑目录                                       [ 没发现 ]
    检测 Apache 的后门                                  [ 没发现 ]

  执行 Linux 详细的检测
    检测内核模块命令                                 [ 正常 ]
    检测内核模块名称                                 [ 正常 ]

检测网络...

  执行后门端口的检测
    Checking for backdoor ports                              [ 没发现 ]

  执行网络接口的检测
    检测 promiscuous 接口                                [ 没发现 ]

检测本地host...

  执行系统boot检测
    检测本地host名称                                   [ 发现 ]
    Checking for system startup files                        [ 发现 ]
    Checking system startup files for malware                [ 没发现 ]

  执行用户组和帐户检测
    检测密码文件                                       [ 发现 ]
    检测等效root (UID 0) 帐户                          [ 没发现 ]
    检测空密码的帐户                                 [ 没发现 ]
    检测密码文件的变化                              [ 没发现 ]
    检测用户组文件的变化                           [ 没发现 ]
    检测root帐户的shell历史文件                     [ 正常 ]

  执行系统配置文件检测
    Checking for an SSH configuration file                   [ 发现 ]
    检测SSH是否允许root访问                          [ 没设置 ]
    检测是否允许 SSH  v1版协议                      [ 没设置 ]
    Checking for other suspicious configuration settings     [ 没发现 ]
    检测是否运行syslog daemon                          [ 发现 ]
    检测配置文件                                       [ 发现 ]
    检测是否允许 syslog remote logging                 [ 不允许 ]

  执行文件系统检测
    /dev 作为可疑文件类型检测                      [ 没发现 ]
    检测隐藏的文件和目录                           [ 没发现 ]


系统检测概要
=====================

检测文件属性...
    检测文件: 123
    可疑文件: 0

检测Rootkit...
    检测Rootkits : 482
    可能存在 rootkits: 0

应用程序检测...
    跳过所有检测

检查系统用时: 1 minute and 54 seconds

所有结果已被写入到日志文件(/var/log/rkhunter/rkhunter.log)

在检测系统过程中没有报警产生.

radare2

反向工程工具,直接yum安装

claimav

install

1
[root@sandbox-lqx claimav]# yum install clamav clamav-update

update database

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[root@sandbox-lqx claimav]# sudo freshclam
ClamAV update process started at Thu Nov  7 16:42:58 2024
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.103.11 Recommended version: 0.103.12
DON'T PANIC! Read https://docs.clamav.net/manual/Installing.html
daily database available for download (remote version: 27450)
Time:   27.1s, ETA:    0.0s [========================>]   61.23MiB/61.23MiB
Testing database: '/var/lib/clamav/tmp.106b996c20/clamav-4fead1ebeb2a23f6d86cec131639b740.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 27450, sigs: 2067669, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
Time:  1m 11s, ETA:    0.0s [========================>]  162.58MiB/162.58MiB
Testing database: '/var/lib/clamav/tmp.106b996c20/clamav-7242057f76d46b1b42b74a8f8df2b405.tmp-main.cvd' ...
Database test passed.
main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode database available for download (remote version: 335)
Time:    0.6s, ETA:    0.0s [========================>]  282.94KiB/282.94KiB
Testing database: '/var/lib/clamav/tmp.106b996c20/clamav-1ef8323bddf389ab715726ef06e37e35.tmp-bytecode.cvd' ...
Database test passed.
bytecode.cvd updated (version: 335, sigs: 86, f-level: 90, builder: raynman)

fail2ban

安装

1
yum install fail2ban

参考文档