Bash(bash + md5)中的高级脚本可保护“内容”(+详细说明)

若干天前 我告诉他们 平板印刷,这是一个Web应用程序(CMS),通过它您可以拥有博客或类似内容,而无需使用数据库,也可以避免很多麻烦

好吧,我在笔记本电脑上 平板印刷 对于个人笔记,我不想忘记的事情,这就是为什么我在此个人博客中编写它们。 但是,正如你们中的一些人必须已经知道的...我对安全有些偏执,而且,如果这与我的思想的安全有关,那么您不知道我有多偏执

所以我遇到了一个问题:如何使用FlatPress可以保护上面的所有内容?

我想到了几个允许数据加密的应用程序,但是……它们都没有完全满足我的要求,因此我承担了编写自己想要的程序的任务。

现在,我将向您展示我制作的脚本,该脚本将执行以下操作:

该脚本旨在 在KDE中工作,如果他们没有 KDE 对话框不会出现在他们身上。

1. 它显示一个对话框,询问您是否是KZKG ^ Gaara,如果按NO,则脚本关闭,如果按YES,一切将照常进行。

2. 显示一个文本框,询问密码是什么:

3. 如果您按取消,脚本将关闭,现在是脚本技巧之一...

3.1. 逻辑是该脚本将我们编写的密码与同一脚本中已预定义的密码进行比较,如果密码匹配,它将继续运行,如果密码不匹配,则会出现错误消息。 问题是,如果我们将正确的密码放在这样的脚本中,那么使用文本编辑器打开脚本的任何人都可以非常清楚地看到正确的密码..这就是我的朋友们,这简直是不可原谅的失败🙂

3.2. 为了避免在脚本中以纯文本形式输入密码,我使用了MD5。 也就是说,在脚本开头,我声明正确的密码是«2dac690b816a43e4fd9df5ee35e3790d«,这是以下内容的MD5:«desdelinux«。 ... 我一点都不明白!! ……😀

让我们再详细一点。 如果我现在写入文件(例如, 〜/ pass.txt): desdelinux

如果在终端中,我写: md5sum〜/ pass.txt

它将返回: 2dac690b816a43e4fd9df5ee35e3790d sum

而且...如您所见,第一列中没有明显的顺序包含许多数字和字母,与我上面提到的相同,并且是声明的脚本中的那个。

好吧,第一列是MD5的 desdelinux 😉

如果他们输入以下内容,它将仅返回第一列,这是我们感兴趣的列: md5sum ~/pass.txt | awk '{print $1}'

4. 因此,此特定部分中脚本的操作为:

4.1. 该脚本会将您编写的密码放在一个名为的临时文件中。 临时文件,它将通过以下命令提取该文件内容的MD5:

md5sum temp.txt | awk '{print $1}'

4.2. 如果您刚编写的密码的MD5与定义的密码(即脚本中编写的密码)不同,它将关闭并给出错误消息:

4.3. 如果密码匹配,则完美……脚本继续continues

5. 当密码匹配时,对于我而言,脚本将执行一系列步骤:

5.1. 它将进入文件夹 /主页/共享/托管/ - » cd /主页/共享/托管/

5.2. FlatPress文件夹称为“我”,它以.RAR压缩并受密码保护(密码与之前应设置的密码相同),因此脚本将解压缩该文件(me.rar)-» rar x me.rar -hp $ MWORD

罕见的 x -»它的作用是解压缩文件和文件夹,使其顺序保持一致。

我.rar -»这是我要解压缩的文件。

-hp $ MWORD -»在这里,我告诉您必须使用密码解压缩文件,并且密码是变量$ MWORD(此变量是我们之前输入的密码)

5.3. 所以,如果解压缩得好,我继续删除文件me.rar ...为什么呢?好吧,因为如果我使用内部的文件并没有出现.rar的意义,并且这些文件正在更改,因为我正在编写博客上的新事物-» rm我.rar

5.4. 我必须更改权限才能正常运行-» chmod 777 -R我/ (记住文件夹me /是包含压缩的me.rar)

5.5. 它将显示一个窗口,告诉我我有10秒的时间打开“浏览器”…。 WTF!,这是什么意思? ...

5.5(a)。 简单,非常简单……🙂……我打开浏览器(在这种情况下 雷康克),而我正在撰写新文章,但是当我关闭浏览器时,脚本会再次将.rar中的me /文件夹压缩(保留在me.rar中)。

这是可能的,因为该脚本每3秒检查一次Rekonq是否打开,如果它检测到Rekonq是打开的,则脚本不执行任何操作,但是如果它检测到Rekonq未打开,则将执行: rar a me.rar -hp $ MWORD me / * && rm -R me /

这意味着它将压缩文件夹 我/ en 我.rar (它将输入一个密码,该密码与我们已经看到的相同),然后将其压缩,如果没有错误,它将删除该文件夹 我/ 及其所有内容。

5.5(b)。 这对我们有什么帮助? ...简单,这避免了我们必须记住必须再次保护内容的情况,因为我们只需要停止处理它(关闭浏览器),脚本将完成所有其余工作😉

6. 准备好了,这一切都已以一般方式进行了解释🙂

...虽然还有另一个细节😀

该脚本具有更好的保护,这些行被禁用(注释)了:

if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi

它的作用很简单。 变量$ USER是系统的全局变量,如果在终端中放置:

echo $USER

您将看到用户向您显示的内容...好吧,这些行的逻辑很简单。

如果$ USER与$ ME变量不匹配(并且该变量由我在脚本中声明,并且为:“ gaara”),则脚本将删除所有文件 .SH 该文件夹中的文件,即它将自毁😉

这是为了防止其他人在另一台计算机上运行该脚本。

而且,我认为没有更多要解释的内容了,我离开了脚本:

.SH文件下载
在我们的粘贴中查看脚本

我知道很多人会发现它非常复杂,但是实际上它比它应该吓到的要多……为了简单的目的,脚本具有非常简单的工作逻辑。

我这样做是为了满足我的一个非常具体的需求,我希望与大家分享这里所阐述的其他思路或想法可以为某人服务😉

顺便说一下,该脚本专用于KDE,因为它显示的对话框(窗口)来自KDE(使用KDialog),但是可以使用以下命令将其修改为Gnome / Unity / Cinnamon / Mate 善意,或通过简单地使用dialog命令在终端中100%使用它。

是的,即使脚本还有其他缺陷,例如,如果脚本解压缩.rar,然后有人强行关闭(杀死)脚本,.rar的内容将不受保护,还有一些细节有待完善...但是,我们还必须控制没有人可以检查我们的计算机😀

最后,我想澄清一下我不是程序员,更不用说我自己也不是这样,我想您可以优化代码中的行,或者使用某些函数来改善脚本的操作...但是我说,我不是程序员

他们对我有任何疑问,他们会告诉我,尽管该脚本可能因为不需要而无法为他们服务,但他们始终可以从中学习一些其他技巧😀

问候

PD: 我知道 拉夫 他会说我太偏执……或者我在浪费时间,但事实并非如此。 我想要一个非常具体的东西,一个非常具体的安全系统,然后我自己对其进行编程……那有多怪异? … 大声笑!!


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   哈坎

    这个很有趣,但是我认为是/否的问题是很屁xD
    您如何看待,而不是使用专有的rar并不能提供真正的安全性,而是将其替换为gpg,这是一种经过多年验证的安全软件,几乎存在于所有发行版中😉
    另一件事,您可以将字符串md5sum传递给您,而无需创建一个临时文件。 在这里,我还建议您前往更安全的sha,在终端上尝试:shasum

    SAludos!

    1.    KZKG ^ Gaara

      您好,谢谢您的评论😀
      GPG允许我打包包含所有内容的目录吗? 我实际上只将它用于单个文件,而不用于包含子目录和文件的目录。

      噢,关于shasum很棒,我不认识他😀
      我将继续修改脚本以使用该脚本,然后……是的! 正确,只需: 回显“ $ PASSWORD” | 夏苏姆 我已经得到了字符串,确实没有必要将其写入文件:)

      非常感谢您的评论,我已经学到了一些新知识🙂
      问候

    2.    sieg84

      我问的是同一件事...

      1.    KZKG ^ Gaara

        您需要弄清楚如何用GPG加密文件并将密码传递到同一行上,例如:
        gpg -e file.tar.gz –password elpassword随便

        知道怎么做吗? 🙂

        1.    哈坎

          要加密目录c / gpg,必须先将其打包为tar。
          那么,在这种情况下,使用带有-c参数的对称加密很方便(有关对称加密和非对称加密的区别,请参见Wikipedia)。
          然后将是这样的:
          tar -czf destination.tgz source_directory / && echo $ passwd | gpg –批量–压缩级别0 -c –密码-fd 0
          这将创建一个名为“ destination.tgz”的压缩文件和一个名为“ destination.tgz.gpg”的加密文件。 为了安全起见,应同时删除源目录和压缩文件本身(请注意shred命令)

          解密:
          回声$ passwd | gpg –batch -d –passphrase-fd 0 encryption_file.tgz.gpg | 焦油-xz
          会将文件提取到当前目录中(然后mv可用于将文件移动到其他位置)

          有任何疑问,请回答此评论comment

          问候!

          1.    哈坎

            嗯,当心双连字符(-)和单连字符(-)…有没有办法像写代码一样写东西,以便格式不会改变?
            prueba de codigo -- -
            [代码]测试代码--[/代码]

          2.    哈坎

            我花得更冗长

            压缩和加密:
            tar -czf destino.tgz directorio_fuente/ && echo $passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
            请注意,这是两个步骤:首先创建压缩文件,然后,如果没有错误,则继续进行加密(与&&链接)

            解密和解压缩:
            echo $passwd | gpg –batch -d –passphrase-fd 0 archivo_cifrado.tgz.gpg | tar -xz

            敬礼!

          3.    KZKG ^ Gaara

            是的,实际上昨天我在家里读了gpg的人,这里有我需要的所有东西necesitaba
            实际上,我并没有那样做,我没有使用echo或压缩,而是对此发表了一篇文章,我只是发表了它。

            非常感谢您的帮助,我的确如此。

  2.   乔希

    精彩! 我只是在寻找类似的东西,而我偶然发现了您的文章。 我将对其进行测试以保护我的数据。 当涉及到计算机安全性时,您永远不要太偏执。 谢谢

    1.    KZKG ^ Gaara

      谢谢哈哈
      您了解脚本的工作原理了吗?

      看起来比实际的要复杂得多。

      谢谢你的评论,真的😀

      问候

      PS:的确,安全是远远不够的。

      1.    乔希

        因为我已经很长时间没有使用linux了,所以花了一点时间来理解它(我读了3次)。 但这很简单,学习这样的东西总是很高兴。 问候和再次感谢。

        1.    KZKG ^ Gaara

          重要的是要了解它,呵呵。 我试图解释一切都非常详细,但我想我扩展了太多的哈哈哈。
          谢谢你🙂

  3.   极光

    哇,剧本很好good

    PS:偏执狂已超过9000! xD

    1.    KZKG ^ Gaara

      哈哈哈哈哈哈哈,就是我……哈哈!

  4.   拉斐尔

    查看您的脚本,如果您没有kde :),我认为可以使用xdialog完成! 干杯

    1.    KZKG ^ Gaara

      哦,我不了解xdialog ...我必须密切注意😀
      感谢您的信息。

  5.   sieg84

    为何不使用rar.xz / gz和gpg而不是rar?

    1.    拉斐尔

      这是因为您已经在拥有CMS的rar中拥有它了

  6.   城市

    很棒@ KZKG ^ Gaara天前,我在想类似的事情,但是我正在参加考试,所以我没有时间做任何事情,突然间我看到了您的文章……。
    下周我会尝试的

    1.    KZKG ^ Gaara

      谢谢,我在这里有任何详细信息😀

  7.   特鲁科22

    xD我什么都不懂,但是如果我想如何在脚本中正确使用kdialog,如何在KDE通知程序中获取消息

    1.    KZKG ^ Gaara

      要获取KDE通知中的消息,请尝试安装软件包: libnotify-bin
      然后在终端中输入:
      notify-send "texto texto texto"

      然后,您将看到多么酷😀……而且这适用于KDE,Gnome,Unity,Cinnamon,Mate和Xfce😉

      但是,在此脚本中,我不使用通知本身,而仅使用KDialog窗口。 在终端中输入:
      kdialog

      你会在那里看到帮助😉

      问候😀

      1.    特鲁科22

        非常感谢你/

  8.   乔尔·安东尼奥·瓦克斯

    您好,好的帖子,只是一个建议,值得用md5肉眼看不到,但是有些好奇的人可能会使用彩虹表来查看转换成md5的密码是否在里面,我建议使用bcrypt(http://bcrypt.sourceforge.net/),这只是一个建议,您可以在任何场合使用它,“问候”。

    1.    KZKG ^ Gaara

      谢谢😀
      确实是的,MD5并不完美,有些人设法获得了密码,我来看看这个应用程序😉

      谢谢你的评论。

  9.   sieg84

    仅在kdialog中使用对称密码,它要求您输入密码
    以及使用公钥的非对称密码。

    我必须澄清,我没有程序员的踪影。

    1.    KZKG ^ Gaara

      是的,我已经设法使用GPG加密了(实际上我刚刚发表了一篇关于此的帖子)。

  10.   亲爱

    KZKG ^ Gaara始终会阅读您的帖子。
    构建一个与XFCE一起使用的文件。
    吻。 昂贵

    1.    KZKG ^ Gaara

      您好,首先,欢迎来到博客😀
      哈哈哈,谢谢,我知道有时候会很困难,因为我写了一些技术性的东西,但是我总是尽力尽可能地解释一切

      我将对XDialog或Zenity进行一些试验,以查看它是否适用于Xfce哈哈,我将在虚拟的Xubuntu中进行测试🙂

      问候

  11.   艾琳克斯

    非常有用的人,谢谢!

    的问候!

  12.   达米安里维拉

    谢谢您,对保护某些文件有很大帮助

    我不得不将其调整为适合zenity,因为目前我没有kde:

    在这里,我将保留要适应禅宗的骨骼

    http://paste.desdelinux.net/4641

    再次感谢和问候😀

    1.    KZKG ^ Gaara

      太好了,非常感谢😀
      我记得有人问过,但是对于Xfce,使用Zenity可以在Xfce中使用,对吗?

      1.    达米安里维拉

        是的,只有在传递了shasum或md5的密码后,才剩下该命令来添加要执行的命令

        必须针对每个人的不同需求进行修改,以使用不同的命令保护不同路线中的不同事物

        或者也许添加另一部分(GUI)来创建文件的安全配置

        问候😀

        1.    达米安里维拉

          我有时间和xfce(在Archlinux中),我已经完全适应了该脚本,因为使用zenity(我认为)的xfce(因为我在上面留下的脚本只是我使用的骨骼)

          http://paste.desdelinux.net/4644

          如果粘贴中有错误,可以对其进行编辑吗?

          发生的是,我有几个图形化外壳,并且我不知道它是否可以在干净的xfce中工作,例如在xubuntu中

          问候😀

  13.   马蒂亚斯·加斯顿(Matias Gaston)

    有趣的车! 很好的贡献!

    我对编程很陌生,我正在一点一点地学习BASH ...但是我发生了一些事情,它们可能对您有用或不有用。
    当您说剥离的脚本中包含了密码,并且有人打开它并从那里读取它是不可原谅的...您建议将MD5嵌入的所有技巧都作为一种保护措施。

    这对于使潜在入侵者的生活变得艰难而迈出的第一步是相当不错的,但是请查看以下想法(甚至可以将它们应用在另一个之上)

    想法1)如果将密码保存在计算机上的文件中,而不将其托管在脚本中怎么办?

    EJ:在txt中放入密钥,并将其保存在/ home / /bla/bla/key.txt
    在脚本中,您将密钥称为KEY =“ $(cat $ HOME / blah / bla / key.txt)”,然后抛出if $ questionkey = $ KEY,然后..等等

    这样,您将获得3件事+1优势:
    1)密码从不在脚本中。 (避免使用MD5)
    2)密码所在的路径取决于用户名。 (任何想要打开它的人,都将其重定向到任何地方)在99.9%的情况下,脚本将失败。
    3)如果需要更高的安全性,请为除您之外的所有其他用户删除对key.txt文件的所有权限。
    4)优点:可随时随地更改密码,而无需编辑脚本。 因为验证是通过文件进行的外部验证。

    IDEA 2)您如何混淆整个bash脚本,因此甚至无法打开它?

    一种方法是利用C语言中需要编译的事实。
    然后,它在C代码中引入脚本,该脚本的全部工作就是调用该Script(但位于程序内部)。 在编译时...一切都保留在里面,您的输出是可执行文件...而不再是脚本。 有一个人已经完成了混淆处理的“脚本”,这非常实用。

    更多信息在这里: http://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_B%C3%A1sico_para_Principiantes/Compilar_%28ofuscar%29_BASH_scripts_con_C_-_SHC

    IDEA 3)如果在脚本中需要管理员密码的情况下放置了虚拟条件,该怎么办?

    例如,使用“ sudo”执行条件,然后继续执行脚本(如果未停止的话)。
    这样,所有保护都将成为您的ROOT密码的桥梁。

    好吧,仅此而已...
    干杯!!!!!!!! 并按住BASH。

    1.    KZKG ^ Gaara

      哈哈哈哈谢谢😀
      实际上,我现在正在使用SHA512,因为它比MD5更好: https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/
      以及GPG作为一种保护手段,而不是使用.RAR压缩: https://blog.desdelinux.net/como-proteger-datos-con-gpg-de-forma-simple/

      将密码放在另一个文件中的问题是,那么它将把密码放在另一个位置是,但是会以纯文本格式吗? 如果必须加密(建议使用),请将其保留在同一脚本中,嗯……我怀疑有人会破坏SHA512 haha​​haha太多了(请看第一个链接,您会明白的)

      关于权限,如果有人使用LiveCD,则他们可以使用LiveCD根目录打开.txt,因此权限并非完全是最佳选择。

      关于混淆Bash代码...是的,我曾考虑过这一点,想法是很棒的,问题是我不知道该怎么做,实际上我什至不知道它是否可以完成HAHAHA。

      等等,现在我阅读了其余的评论O_O ...嘿,我不知道您能做到这一点。 我不知道C或C ++,但是可能值得一试。

      关于想法3,还不错😀

      自从我发表这篇文章以来,我对脚本进行了一些改进,其中2个是我在本文开头的链接中提到的内容,另一个是如果您更改了脚本中的任何字符,则会将其删除。 现在,我必须尝试使用​​这种方法来混淆代码hahahaha。

      感谢您的评论,……是的,坚持下去,bash !!! 哈哈

    2.    KZKG ^ Gaara

      WTF !!!
      我已经用过SHC ... GE-NI-AL !!!! O_O

  14.   雅典娜

    很好的脚本,嘿,如果您使用root检查程序,则能够以sudo ./script运行脚本

    您只需要在开头添加此代码

    http://paste.desdelinux.net/4663

    一声问候

  15.   Neo61

    KZKG ^ Gaara,朋友,我认为扩展解释不是问题,对我们这些知识渊博的人来说是件好事。 不教学的文章已在此处发布,它们仅提供有关已存在事物的信息。 因此,请不要原谅自己,并且有更多扩展解释。

  16.   猎人

    对于这样的事情我用 http://www.truecrypt.org/

  17.   亚伯

    有人可以共享脚本吗? 我很好奇,所有链接都断开了。 🙁

    谢谢。