免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2455 | 回复: 1
打印 上一主题 下一主题

[SSH公钥审计和SSHD日志分析]如何高效的搜寻系统中的SSH Private key [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-02 18:42 |只看该作者 |倒序浏览
SSH 审计工作目前进度不错,上次把所有的SSH public都搜索并分析好了。
现在需要把系统的SSH private key都扫描出来。

目前查找时主要的难点是:
private key 位置不定,只要ssh连接时指定就行
private key 文件名不定,只要ssh连接时指定就行
private key 文件的大小不定,private key的大小在不同的type下 dsa/rsa, 和不同的bits下不同

已知的条件
private key是文本文件,但是不知道如何用在find查找时排除二进制文件
private key文件的第一行是-----BEGIN RSA PRIVATE KEY-----或者-----BEGIN DSA PRIVATE KEY-----

[user@.ssh (0)]$head -3 id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAsdZ5gAHDveD87+9c4g/CnhxN0/Ln8wDdD68hw5WP1vitjmOj
xeFoWZG+nib2pK1XsiAdJ1SVOd7rRLzk8OxPk8z0QAtlluMb+6sjKc3FB4R1ZhQk
[user@.ssh (0)]$head -3 id_dsa
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDHvQhkuzLpMX16w0ewbxIKYRirmkxw9T8hiktsDSJklLeOIefy
qD6UvHlojei49ARigRJBSLovDAPJkwwS7yW/wDkNbB6sM5ooGO+fagJGjcHq2NVz

目前的find命令,我限定了文件类型和文件系统,粗略的文件大小
find / -mount -type f -a \( -size +600 -a -size -2000c \) -ls  -exec grep -l "BEGIN [RD]SA PRIVATE KEY" {} \;

TODO:
1)能限定查找文本文件
2)如何更好的判断文件第一行是-----BEGIN RSA PRIVATE KEY-----或-----BEGIN DSA PRIVATE KEY-----的文件,
现在想到写个另外的脚本,接受文件名,脚本中读入文件第一行,做判断,符合的话打印出文件名不然忽略。这样效率应该会高一些。

不知各位有没有什么建议来快速的查找ssh private key



论坛徽章:
0
2 [报告]
发表于 2012-02-02 22:09 |只看该作者
本帖最后由 可可火山 于 2012-02-02 22:18 编辑

现在用现在的find命令来查,性能一般,应该还有提升的余地。大家有什么建议么? )
  1.     # -mount to stay at same file system
  2.     # limit file size to save time.
  3.     # ./scan_private_key_check_line1.ksh to check first line of file to see if it's ssh private key
  4. find $fs -mount -type f \( -size +600c -a -size -2000c \) -exec ./scan_private_key_check_line1.ksh {} \; >> $SSH_PRIVATEKEYS_LIST 2>/dev/null

复制代码
======
  1. #!/usr/bin/ksh

  2. #file:scan_private_key_check_line1.ksh read the first line and check if it's "-----BEGIN RSA PRIVATE KEY-----" or "-----BEGIN DSA PRIVATE KEY-----"
  3. #argument1: file to check
  4. #return value:
  5. # if private key, print file path
  6. # if not private key, do nothing


  7. #key test case
  8. #[user@.ssh (0)]$head -3 id_dsa
  9. #-----BEGIN DSA PRIVATE KEY-----
  10. #MIIBuwIBAAKBgQCa7BSUdW1KijzV9IBmB+DZU/mbOcFBh03hbAcQGjX0iO/UNnyU
  11. #oyZ2FtwcJo1I4cADioe2LvQStaFwMsW8XQNCmtGXD8s3Ln1lZ4IOmEVkndNUhvaD
  12. #[user@.ssh (0)]$head -3 id_rsa
  13. #-----BEGIN RSA PRIVATE KEY-----
  14. #MIICWgIBAAKBgQC+Cz2gQQgTjiULl4ejCIqEBoSnC+NgSRVkAq7C7S4C7n8W3Y3G
  15. #bkACYSE/BjtozdmxTYC3u7bZbvyCb/bimf4h0g2Z3KZKl6PDtXskZQQG51FXkudv
  16. #[user@.ssh (0)]$head -3 id_dsa.withpasswd
  17. #-----BEGIN DSA PRIVATE KEY-----
  18. #Proc-Type: 4,ENCRYPTED
  19. #DEK-Info: DES-EDE3-CBC,FDAF61DB03FBED31
  20. if [ $# -gt 0 -a -r $1 ];then
  21.     FILE_PATH=$1
  22.     LINE1=$( head -1 $FILE_PATH )
  23.     if [ $? == 0 ] && [ "$LINE1" == "-----BEGIN RSA PRIVATE KEY-----" -o "$LINE1" == "-----BEGIN DSA PRIVATE KEY-----" ];then
  24.         echo $FILE_PATH
  25.     fi
  26. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP