使用WampServer和DVWA在Windows10上搭建渗透测试环境

作者:荒原之梦

前言:

DVWA是一个具有脆弱性的Web测试应用,需要PHP和MySQL的环境支持。我们可以手动配置DVWA所需的运行环境,也可以使用WampServer进行搭建。WampServer是集成了Apache Web服务器、PHP解释器和MySQL数据库的集成安装环境。本文将介绍使用WampServer和DVWA在Win10上搭建一个渗透测试环境。

操作环境:

Windows10专业版

操作前的准备:

1.下载WampServer(下载地址:https://sourceforge.net/projects/wampserver/?source=directory

2.下载:DVWA(下载地址:http://www.dvwa.co.uk/

一、安装WampServer:

这里我们使用的是WampServer3.1.0 X64.

图 1 这一步选择安装时使用的语言,默认用英语就好了。

图 2 接受协议,下一步。

图 3 继续下一步。

图 4 选择安装路径,建议选择一个非系统盘。

图 5 下一步。

图 6 点击“Install”开始安装。

图 7 安装正在进行中……

图 8 提示让选择默认浏览器。

图 9 选择“是”之后,使用默认,点击“打开”。

图 10 提示让选择默认文本编辑器。

图 11 选择“是”之后,使用默认,点击“打开”

注:在安装快要结束时会弹出防火墙警示,选择“允许访问”即可。

图 12 Finish

安装完成后会在桌面上创建一个WampServer的图标(我们可以在小图标上右键选择语言为中文),双击该图标后Windows会黑屏警示,选择“是”之后,任务栏小图标处会多出一个WampServer的绿色图标,在浏览器输入“127.0.0.1”就会显示WapServer的界面了(如下图所示)。

图 13

 

二、配置MySQL数据库

安装WampServer的过程中并没有让我们设置数据库账号和密码的步骤,所以此时我们的数据库的root密码还是空的

输入“127.0.0.1/phpmyadmin”进入登录界面:

图 14

用户名root,密码不填,选择服务器为MySQL即可登录MySQL数据库。

接下来我们就要修改MySQL数据库的root密码了,我们在后面配置DVWA的过程中需要用到数据库root用户的密码。

图 15

点击“账户”,我们能看到root用户的密码是空的,点击“修改权限”可以在页面上方看到修改密码的选项,如下图:

图 16

两次输入密码后点击“执行”就可以了:

图 17

图 18

但是当我们再次输入http://127.0.0.1/phpmyadmin/准备登陆MySQL时,却出现了下面的警示:

图 19

这是因为phpmyadmin数据库里面的登录信息还是原来的(而我们以已经在MySQL里修改了root密码),和我们现在使用的root用户的密码不一致。我们使用修改后的密码登陆一下,发现可以登陆,然后再退出,再次输入http://127.0.0.1/phpmyadmin/发现已经没有错误提示了,此时phpmyadmin的数据库登录信息已经更新了。

图 20

三、配置DVWA

首先把我们下载好的DVWA压缩包放到WampServer安装目录里的www文件夹下,解压。(解压后会产生同名的嵌套文件夹,最好去掉一层),将DVWA所在文件夹的名称修改为“dvwa”,将wamp64\www\dvwa\config目录下的config.inc.php.dist文件后面的.disk后缀删除。

图 21 将图中的DVWA-master改成dvwa

 

之后打开DVWA文件夹中的config文件夹,用Sublime Text3(或其他记事本软件)打开config.inc.php:

图 22 图中的.dist后缀还没有去掉,也可以先修改后去掉.dist后缀

 

修改其中的数据库密码为我们刚才创建的MySQL数据库的root密码,保存:

图 23

在浏览器输入127.0.0.1/dvwa,输入admin账号和密码,密码默认为password,之后点击“Create / Reset Datebase”即可安装DVWA,安装完成后会自动跳转到登录界面,再次输入admin和password即可登陆,至此渗透测试环境搭建完成:

图 24

 

Kali Linux图形界面与命令行界面的切换

作者:荒原之梦

前言:

有时候为了节约系统资源,使用命令行界面能够让Linux系统的运行更加流畅,处理任务的速度也更加快。现在的Kali安装完成后默认是开机就启动图形化界面。本文将介绍通过编辑Kali启动引导文件的方法,使得我们可以在Kali的图形化界面和命令行界面之间切换。

操作环境:

虚拟化软件:VMware Workstation 14 pro

虚拟机操作系统:Debian 4.12.6-1 kali6(201702版Kali Linux,安装在VMware Workstation 14 pro中

物理机操作系统:Windows10专业版

一、用vi编辑器打开引导配置文件:vi /etc/default/grub

找到“GRUB_CMDLINE_LINUX_DEFAULT=”quiet””这一行,将光标停在这一行的某处,使用yy复制当前行正行内容到剪贴板,之后回车创建一个空白行,使用p将刚才复制的内容粘贴在当前光标之后,然后注释掉该行(方便以后如果有需要的话再改回来),最后按i在写入模式下把原行中的“quiet”改成“text”,保存退出。

二、输入sudo update-grub更新Kali Linux的启动引导,使我们刚才修改的grub配置生效

切换方法:

按“Ctrl+Alt+f3”(笔记本一般是按“Ctrl+Alt+fn+f3”)即可切换到命令行模式;

按“Ctrl+Alt+f1” (笔记本一般是按“Ctrl+Alt+fn+f1”)可以切换回图形化界面(如果无法切换,请尝试重启)。

 

SQLMap入门之在Windows上安装SQLMap

作者:荒原之梦

前言:

SQLMap是一个开放源代码的sql注入工具,SQLMap是使用Python语言开发成的,他的运行需要有Python环境的支持。写这篇文章时我使用的SQLMap版本是“sqlmap-1.1.10”,这个版本的SQLMap还不支持Python3.x,必须使用Python2.x的环境才能运行,Python2.x和Python3.x并不互相兼容。本文主要介绍在已搭建Python2.x环境的前提下,安装SQLMap的步骤。

操作环境:

Python-2.7.14

SQLMap-1.1.10

Windows10专业版

一、将SQLMap的压缩包放到Python2.x的安装目录下,解压:

图 1

二、桌面右键,新建快捷方式

对象位置填写“cmd”:

图 2

快捷方式名称命名为SQLMap:

图 3

在快捷方式上右键属性,将“起始位置”改为刚才放置SQLMap安装包路径的下一级路径,如图所示:

图 4

三、双击打开刚才创建的快捷方式

输入sqlmap.py -h,如果出现以下界面则表示SQLMap安装成功:

图 5

附:

如果我们把SQLMap安装在了Python3.x的环境中会发生什么呢?当我们输入sqlmap.py -h时,他会提示我们使用Python2.x:

图 6

如果你想同时使用Python2.x和Python3.x可以参考我的这篇博文:

在Windows下同时安装Python2.x和Python3.x

在Windows下同时安装Python2.x和Python3.x

在Linux上使用PGP签名验证文件完整性

前言:文件在下载及存储过程中可能由于传输错误、硬件故障、文件系统错误等网络、硬件和软件方面的原因导致文件损坏,也可能在传输过程中受到攻击(如“中间人攻击”)导致下载的文件被篡改或者下载到了其它非原始文件。所以,在使用一个文件之前(如安装一个软件或操作系统)最好先对文件进行完整性(或者说“原始性”)的检验。常用的文件校验方法有SHA、MD5、CRC和PGP签名等。本文主要阐述一下在Linux上使用PGP证书校验文件完整性的操作步骤。

一、下载提供有PGP证书的文件

这里我们下载的是VeraCrypt(下载地址:https://veracrypt.codeplex.com/wikipage?title=Downloads#Title)。我们可以看到,每个文件后面都提供有对应的PGP Signature,下载时我们要把文件和文件对应的PGP Signature都下载下来放到一个文件夹里。

图 1

注:下面的操作步骤使用Ubuntu进行演示。需要注意的是,在Ubuntu中不能校验Windows下使用的文件对应的PGP数字签名。如图:

图 2

二、在文件和文件PGP签名所在的文件夹中打开终端

图 3

三、输入gpg -–verify PGP签名文件名

如我这里的PGP签名文件名是“veracrypt-1.21-setup.tar.bz2.sig”(签名文件一般以.sig或.asc结尾),所以我输入的命令就是:

gpg –verify veracrypt-1.21-setup.tar.bz2.sig

回车执行后如下图所示。这一步操作的目的主要是为了获取从公钥服务器上下载公钥的“钥匙号”,如图中的钥匙号为“54DDD393”。

图 4

但是,在上图中我们可以看到“完好的签名”这一提示,这表明PGP校验已经完成(“gpg -–verify PGP证书文件名”这一命令本身就可以在已经导入公钥的前提下直接校验文件完整性,但是在没有导入公钥时运行这一命令可以使用得到的钥匙号去公钥服务器上下载公钥)。这是因为我之前已经进行过一次检验,公钥已经导入到了本地,下面我们把本地公钥删除,重新进行一次校验。我们可以使用“gpg -k”命令查看当前系统中的公钥:

图 5

现在可以知道,公钥pubring.gpg在一个名为“gnupg”的隐藏文件夹里,我们进到这个文件夹里,用rm命令将它删除:

图 6

然后再执行“gpg -–verify PGP证书文件名”:

图 7

这次的运行后仍得到了钥匙号,但是没有出现“完好的签名”这样的提示,而是“无法检查签名”,这说明本地此时并没有可以用于检验签名的公钥。

注:在这里我们可以看到,我们要验证的是PGP签名,使用的却是“gpg”命令,关于PGP和GPG的更多内容可以查看我的另一篇博文http://blog.csdn.net/wy_bk/article/details/75330196

四、输入gpg –keyserver hkp://pgp.mit.edu –recv-keys 钥匙号

图 8

五、输入gpg -–verify PGP证书文件名

图 9

至此,我们看到了“完好的签名”这样的提示,这说明文件本身基本可以保证是完整的。

注:上一步出现了警告“没有找到任何绝对信任的秘钥”,这一步操作也有类似的警告“没有证据表明这个签名属于他所声称的持有者”。也就是说,秘钥本身也是可以被伪造的,PGP签名只是检测文件是否完整的一个参考。PGP签名的原理就是使用非对称秘钥加密技术和数字摘要技术产生一段只有文件的原始发布者才能产生的数字串。我们对文件进行PGP签名校验,就是要使用公钥解密文件的原始发布者使用私钥加密的签名,核对上述中的“数字串”是否和原来一致。为了方便获取公钥,人们一般把公钥上传到公钥服务器中。有时候人们为了防止PGP签名本身被伪造,还提供了SHA256用于对PGP签名文件本身的完整性进行检测。

附:PGP公钥服务器列表:

  • http://keyserver.ubuntu.com/
  • keys.gnupg.net
  • HKP://subkeys.pgp.net
  • HKP://pgp.mit.edu
  • HKP://pool.sks-keyservers.net
  • HKP://zimmermann.mayfirst.org这个网站不断统计着几乎所有公钥服务器上的公钥数目https://sks-keyservers.net/status/,如图:
    图 10

    后记:其实我一直觉得Linux操作系统很难使用,一方面在Windows上常使用的软件很少有支持Linux的,另一方面使用Linux时总会遇到各种障碍。当我学会在Linux上使用PGP证书校验文件完整性之前,我对Linux优势的了解仅仅是占用内存小且开源免费,自从实际操作了PGP证书校验文件我才真正开始感觉到了Linux在处理一些专业任务上的便捷性。

Ubuntu软件中心的完全启用

作者:荒原之梦

前言:新安装的Ubuntu英文版如果不做配置是无法使用Ubuntu软件中心下载或安装软件的,本文就简单介绍一下安装完Ubuntu后该做哪些配置才能完全启用Ubuntu软件中心。

安装完Ubuntu后我们要对整个系统做一次更新,补充必要的依赖关系。如果不做更新,直接从网上下载安装包安装时,就会出现问题。比如我们下载一个deb安装包,双击运行会打开Ubuntu软件中心,但是当我们点击“安装”按钮后,安装进度条会停着一直不动,如果在终端使用命令进行安装就会显示缺少该软件的依赖关系(但并不是在没有更新系统前安装所有软件都会出现缺少依赖关系的错误,一般功能比较少的软件不会报错,功能比较多,和系统联系更加紧密的软件更容易出现依赖关系错误)。其实更新系统只需要两条命令,分别执行如下两条命令即可:

执行这两条命令需要一段时间,期间最好不要使用浏览器等其他软件,否则在更新到该软件时系统会发出提示,请求关闭该软件才能完成对该软件的更新。命令执行完毕后需要重启系统,之后就可以使用Ubuntu软件中心下载或安装软件了,而且安装时也可以全程使用图形化界面。

需要注意的是上述两条命令都需要在root权限下执行,也就是要在开头加上“sudo”,回车执行第一条命令后会要求输入root密码(Ubuntu的root密码默认是和开机密码一致的),执行第二条命令时一般不需要再次输入root密码。

电子邮件加密技术初探(20170718-20170720探索日志)

作者:荒原之梦

前言:邮件加密一直是人们十分关心的问题。在我们还只能使用信纸进行通讯的时代,人们就发明了信封和火漆来防止信件被偷窥。在互联网时代,我们的信息安全面临着越来越多的挑战,除了需要国家出台相应的法律(我国已于2016年06月01日起正式实施中华人民共和国网络安全法)来保护我们个人的信息安全之外,还需要从我们自身做起才能有效的保护个人信息,防止被非法获取。当然,邮件加密绝不仅仅是设置更加复杂的密码,邮件传输信道的加密和邮件内容的加密以及我们自身对各种秘钥的管理——各个环节都需要我们的关注。这几天我主要了解了电子邮件加密的相关技术,下面列举如下,择日分类详述。

一、邮件加密技术基础

1.HTTPS协议

HTTPS=HTTP+SSL/TLS。这里需要明白的是HTTP,SSL,TLS的具体含义以及在实际使用过程中如何将信息进行加密解密。简单的讲,HTTPS协议就是将在网络中传输的数据进行加密,使得在服务器端和客户端之间传输的数据不再是明文数据。

注:这里补充一点:我们必须分清楚“邮件通信加密”和“邮件内容加密”。上述中提到的SSL指的是建立一条加密链路以加密邮件通讯,其实这个链路中传输的邮件内容是没有被SSL加密的。而下面将要提到的PGP加密指的是邮件内容的加密。

2.RSA公钥加密。

RSA公钥加密算法基于一个简单的事实,就是将两个大质数相乘很容易,但是想要在不知情的情况下根据结果找出是由哪两个数相乘得到的该结果却不容易,至少在当今一段时间和过去想要暴力破解使用了长秘钥的RSA加密信息是相当困难的。

3.数字签名。

数字签名的应用主要是为了证明信息的真实性,例如被加密的信息其实也可能被修改。正如我们在网上下载软件或者其他文件后通常会测试一下哈希值一样,目的之一就是为了排除我们收到的是一个被修改过的文件的可能性。

4.PGP邮件加密。

GnuPG是应用了PGP协议的开源加密软件,GnuPG的官网为https://gnupg.org/。GnuPG是GNU将OpenPGP(即PGP)中的专利算法去除后实现的开源软件。GnuPG整合了RSA公钥加密和数字签名技术,可以运行在Windows或Linux系统中,可以用来加密文件或者邮件。其实很多邮箱客户端都集成了GnuPG,例如在linux中可以在Evolution和Mozilla Thunderbird这两个邮箱客户端中使用GnuPG,在Windows(或Linux)中可以使用Kmail(Kmail是kontact的邮箱组件,网址https://userbase.kde.org/Kontact/zh-cn

图 1

在Windows中还可以使用Gpg4win(官网https://www.gpg4win.org/)来发送基于PGP加密的邮件。

图 2

另外Outlook邮箱客户端也有GnuPG的组件。

二、邮件加密的实现

想要在网络上进行加密通讯其实需要一个系统的工作,不仅需要多种信息加密工具的配合使用确保信息不被泄露以及不被篡改,还有有关人员身份的隐匿,而且在很大程度上还需要对“人”本身进行有效的管理,特别是在公司等组织内部,由于所需保密的信息可能涉及多人,此时对人的管理就显得尤为重要。

下面我就从技术的角度列举一下使用加密电子邮件的一些方法,下面的有些方法可以组合使用以提高保密强度:

1.使用电子邮件服务商提供的加密电子邮件服务

1.1 ProtonMail

ProtonMail官网:https://protonmail.com/

根据ProtonMail官网上的介绍,ProtonMail使用了End-to-End端到端加密技术,而且ProtonMail开放了自己的源代码。并且,注册ProtonMail是不需要提供手机号的,其总部和邮件服务器都位于瑞士。

图 3

1.2 Lavabit

Lavabit官网:https://lavabit.com/

Lavabit曾因棱镜门事件被关闭,不过在2017年Lavabit重新上线。

图 4

2.使用电子邮封加密电子邮件

电子邮封(百度百科:电子邮封)是一种比较方便使用的电子邮件加密软件。直观的讲,电子邮封就是给电子邮件加上了一个信封。MailCloak是一款电子邮封软件,可以实现对邮件内容的加密,有客户端版,火狐版等。MailCloak由GWEBS公司提供,此外GWEBS还提供有其他保障数据安全的软件。GWEBS官网:http://www.gwebs.com/

图 5

3.使用PGP加密邮件

前面已经提到多种实现了GnuPG加密的邮件客户端,使用GnuPG是一种较为可靠的邮件加密方法(从没有绝对的信息安全可言),但是这些软件的使用(如果你想发挥它们的最大功能的话)比较复杂,我将在另一篇文章里详细介绍安装和配置Gpg4win并使用Gpg4win发送加密文件,之后在另一台电脑上解密加密邮件的过程。

以上三种邮件加密方法需要收发信件的双方都使用相应的加密措施,否则有可能造成无法解密信息或者信息的泄露。

警示:所有信息加密技术都应该用于维护自身的合法利益,避免个人信息被别人非法获取后对我们自身造成伤害。所以,千万不要尝试使用信息加密技术做危害他人和社会的事情,我们必须在法律允许的范围内行事,不然再强大的加密技术也不可能让你做到永远高枕无忧。