Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
kali-linux-web-pentest-cookbook-zh
提交
31be3308
K
kali-linux-web-pentest-cookbook-zh
项目概览
OpenDocCN
/
kali-linux-web-pentest-cookbook-zh
通知
4
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kali-linux-web-pentest-cookbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
31be3308
编写于
10月 12, 2016
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ch8
上级
0dc68e03
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
222 addition
and
0 deletion
+222
-0
ch8.md
ch8.md
+222
-0
未找到文件。
ch8.md
浏览文件 @
31be3308
...
...
@@ -245,3 +245,225 @@ if (pcre_regex(DATA.data, "username=[a-zA-Z]*&","username=admin&")){
消息(
`msg`
)仅仅用于跟踪和调试目的,可以被从脚本中忽略。
在编写完脚本之后,我们使用 Ettercap 的 etterfilter 编译他,以便执行它。之后,我们在 Ettercap 中加载它,然后等待客户端连接。
## 8.4 发起 SSL MITM 攻击
如果我们使用我们目前的方法嗅探 HTTPS 会话,我们不能从中得到很多信息,因为所有通信都是加密的。
为了拦截、读取和修改 SSL 和 TLS 的连接,我们需要做一系列准备步骤,来建立我们的 SSL 代理。SSLsplit 的仿作方式是使用两个证书,一个用于告诉服务器这是客户端,以便它可以接收和解密服务器的响应,另一个告诉客户端这是服务器。对于第二个证书,如果我们打算代替一个拥有自己的域名的网站,并且它的证书由认证中心(CA)签发,我们就需要让 CA 为我们签发根证书,但因为我们是攻击者,我们就需要自己来做。
这个秘籍中,我们会配置我们自己的 CA,以及一些 IP 转发规则来执行 SSL 中间人攻击。
### 操作步骤
1.
首先,我们打算在 Kali 上创建 CA 私钥,所以在 root 终端中键入下列命令:
```
openssl genrsa -out certaauth.key 4096
```
2.
现在让我们创建一个使用这个密钥签名的证书:
```
openssl req -new -x509 -days 365 -key certauth.key -out ca.crt
```
3.
填充所需信息(或者仅仅对每个字段按下回车)。
4.
下面,我们需要开启 IP 转发来开启系统的路由功能(将目标不是本地主机的 IP 包转发到网关):
```
echo 1 > /proc/sys/net/ipv4/ip_forwar
```
5.
现在我们打算配置一些会泽来防止转发任何东西。首先,让我们检查我们的 iptables 的
`nat`
表中是否有任何东西:
```
iptables -t nat -L
```
![](img/8-4-1.jpg)
6.
如果有东西,你可能打算备份一下,因为我们会刷新它们,如下:
```
iptables -t nat -L > iptables.nat.bkp.txt
```
7.
现在让我们刷新整个表。
```
iptables -t nat -F
```
8.
之后我们建立 PREROUTING 规则:
```
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --toports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --toports 8443
```
现在我们已经准备好嗅探加密连接。
### 工作原理
这个秘籍中,我们配置了 Kali 主机来充当 CA,这意味着它可以校验 SSLsplit 使用的证书。在前两步中,我们仅仅创建了私钥,和使用私钥签名的证书。
下面,我们建立了端口转发规则。我们首先开启了转发选项,之后创建了 iptables 规则来将 80 端口的请求转发到 443(HTTP 到 HTTPS)。这是为了重定向请求。我们的 MITM 攻击会拦截 SSLsplit,便于它使用一个证书来解密收到的消息、处理它,使用另一个证书加密并发送到目的地。
### 另见
你应该了解更多加密证书以及 SSL 和 TLS 协议,还有 SSLsplit,可以访问这里:
+
https://en.wikipedia.org/wiki/Public_key_certificate
+
https://www.roe.ch/SSLsplit
+
https://en.wikipedia.org/wiki/Iptables
+
`man iptables`
## 8.5 使用 SSLsplit 获得 SSL 数据
在之前的密集中,我们准备了环境来攻击 SSL/TLS 连接。而这个秘籍中,我们会使用 SSLsplit 来完成 MITM 攻击并从加密连接中提取信息。
### 准备
我们需要在开始秘籍之前执行 ARP 欺骗攻击,并成功完成了上一个秘籍。
### 操作步骤
1.
首先,我们需要创建目录,其中 SSLsplit 在里面存放日志。打开终端并创建两个目录,像这样:
```
mkdir /tmp/sslsplit
mkdir /tmp/sslsplit/logdir
```
2.
现在,让我们启动 SSLSplit:
```
sslsplit -D -l connections.log -j /tmp/sslsplit -S logdir -k certauth.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
```
![](img/8-5-1.jpg)
3.
现在,SSLSplit 正在运行,Windows 客户端和 vulnerable_vm 之间存在 MITM,来到客户端并访问
` https://192.168.56.102/dvwa/`
。
4.
浏览器会要求确认,因为我们的 CA 和证书并不是被任何浏览器官方承认的。设置例外并继续。
![](img/8-5-2.jpg)
5.
现在登录 DVWA ,使用管理员用户和密码。
6.
让我们看看 SSLSplit 中发生了什么。打开新的终端并检查日志内容,在我们为 SSLSplit 创建的目录中:
```
ls /tmp/sslsplit/logdir/
cat /tmp/sslsplit/logdir/*
```
![](img/8-5-3.jpg)
现在,即使 Ettercap 和 Wireshark 只能看到加密数据,我么也可以以纯文本在 SSLSplit 中查看通信。
### 工作原理
这个秘籍中,我们继续 SSL 连接上的攻击。在第一步中,我们创建了目录,其中 SSLSplit 会将捕获到的信息存在里面。
第二部就是使用下列命令执行 SSLSplit:
+
`-D`
:这是在前台运行 SSLSplit,并不是守护进程,并带有详细的输出。
+
`-l connections.log`
:这将每个连接的记录保存到当前目录的
` connections.log`
中。
+
`-j /tmp/sslsplit`
:这用于建立
`jail directory`
目录,
`/tmp/sslsplit`
会作为 root(
`chroot`
)包含 SSLSplit 的环境。
+
`-S logdir`
:这用于告诉 SSLSplit 将内容日志(所有请求和响应)保存到
`logdir`
(在jail目录中),并将数据保存到单独的文件中。
+
`-k`
和
`-c`
:这用于指明和充当 CA 时,SSLSplit 所使用的私钥和证书。
+
`ssl 0.0.0.0 8443`
:这告诉 SSLSplit 在哪里监听 HTTPS(或者其它加密协议)连接。要记住这是我们在上一章中使用 iptables 从 443 转发的接口。
+
`tcp 0.0.0.0 8080`
:这告诉 SSLSplit 在哪里监听 HTTP 连接。要记住这是我们在上一章中使用 iptables 从 80 转发的接口。
在执行这些命令之后,我们等待客户端浏览器服务器的 HTTPS 页面并提交数据,之后我们检查日志文件来发现未加密的信息。
## 8.6 执行 DNS 欺骗并重定向流量
DNS 欺骗是一种攻击,其中执行 MITM 攻击的攻击者使用它来修改响应受害者的 DNS 服务器中的名称解析,发送给他们恶意页面,而不是他们请求的页面,但仍然使用有效名称。
这个秘籍中,我们会使用 Ettercap 来执行 DNS 欺骗攻击,并在受害者打算浏览别的网站时,使其浏览我们的网站。
### 准备
对于这个秘籍,我们需要使用我们的 WIndows 客户端虚拟机,但是这次网络识别器桥接到 DNS 解析中。这个秘籍中它的 IP 地址为 192.168.71.14。
攻击者的机器是我们的 Kali 主机,IP 为 192.168.71.8。它也需要运行 Apache 服务器,并拥有
`index.html`
演示页面,我们会包含下列东西:
```
html
<h1>
Spoofed SITE
</h1>
```
### 操作步骤
1.
假设我们已经启动了 Apache 服务器,并正确配置了伪造页面,让我们编辑
`/etc/ettercap/etter.dns`
,使它仅仅包含下面这一行:
```
* A 192.168.71.8
```
我们仅仅设置一条规则:所有 A 记录(地址记录)都解析到`192.168.71.8`,这是我们 Kali 的地址。我们可以设置其他条目,但是我们打算在这里避免干扰。
2.
这次,我们从命令行运行 Ettercap。打开 root 终端并键入下列命令:
```
ettercap -i wlan0 -T -P dns_spoof -M arp /192.168.71.14///
```
它会以文本模式运行 Ettercap,并开启 DNS 欺骗插件来执行 ARP 欺骗攻击,目标仅仅设置为`192.168.71.14`。
![](img/8-6-1.jpg)
3.
启动攻击之后,我们来到客户端主机,并尝试通过网站自己的域名来浏览网站,例如,
` www.yahoo.com`
,像这样:
![](img/8-6-2.jpg)
要注意,现在地址和标签栏显示原始站点的名称,但是内容来自不同的地方。
4.
我们也可以尝试使用
`nslookup`
执行地址解析,像这样:
![](img/8-6-3.jpg)
### 工作原理
这个秘籍中,我们看到如何使用中间人攻击来强制用户浏览某个页面,他们甚至相信自己在其它站点上。
在第一步中,我们修改了 Ettercap 的名称解析文件,让它将所有请求的名称重定向到我们的 Kali 主机。
之后,我们以下列参数运行 Ettercap:
`-i wlan0 -T -P dns_spoof -M arp /192.168.71.14///`
。
+
`-i wlan0`
:要技术我们需要客户端进行 DNS 解析,所以我们需要让它连接到桥接的适配器,并到达我们的 Kali 主机,所以我们将嗅探接口设为
`wlan0`
(攻击者计算机上的无线网卡)。
+
`-T`
:使用纯文本界面。
+
`-P dns_spoof`
:启动 DNS 欺骗插件。
+
`-M arp`
:执行 ARP 欺骗攻击。
+
`/192.168.71.14///`
:这是我们在命令行中对 Ettercap 设置目标的方式:
`MAC/ip_address/port`
。其中
`//`
表示任何对应 IP 192.168.71.14(客户端)任何端口的 MAC 地址。
最后,我们确认了攻击能够正常工作。
### 另见
也有另一个非常实用的用于这些类型攻击的工具,叫做 dnsspoof。你应该下载下来并加入工具库:
```
man dnsspoof
```
http://www.monkey.org/~dugsong/dsniff/
另一个值得提及的工具是中间人攻击框架:MITMf。它包含内建的 ARP 毒化、DNS 欺骗、WPAD 代理服务器,以及其它攻击类型的功能。
```
mitmf --help
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录