隐蔽通信技战术(一)隐蔽通信原理_服务器

隐蔽通信

隐蔽通信技战术(一)隐蔽通信原理_数据_02


隐蔽通信原理

我们的防火墙一般是不会去拦截这些通信的,也正是不会被拦截所以我们需要用到这些协议来去传递我们的数据。

隐蔽通信(Covert Communication)是指在通信过程中,通过隐蔽的方式传输信息,使得第三方难以察觉通信的存在或内容。隐蔽通信在信息安全领域有着广泛的应用,既可以用于合法的安全通信,也可能被滥用进行非法活动。以下是隐蔽通信的一些基本原理和常用技术。

隐蔽通信的基本原理

隐蔽通信的核心在于隐藏通信的存在或内容,使通信双方能够在不被察觉的情况下交换信息。其主要原理包括以下几个方面:

  1. 信息隐藏:将信息嵌入到看似无害的数据中,使得第三方即使截获数据也难以发现隐藏的信息。
  2. 信道选择:选择非常规的通信信道,例如使用 DNS 请求响应、ICMP 协议等,这些信道通常被认为是正常的网络流量。
  3. 频率和时间控制:通过对通信频率和时间的控制来降低被检测的风险,例如随机化发送间隔、使用特定的时间窗口进行通信等。
  4. 加密和解密:使用高强度的加密算法保护通信内容,即使被截获也难以解读。

常见的隐蔽通信技术

  1. 隐写术(Steganography)
  • LSB 替换:将信息隐藏在图像、音频或视频文件的最低有效位(Least Significant Bit, LSB)中。
  • 载体文件:将信息嵌入到一个合法的文件中,例如在 PDF 文档的元数据中隐藏信息。
  • 文本隐写:在文本中嵌入隐藏信息,例如通过改变字母大小写、空格等。
  1. 隐蔽信道(Covert Channel)
  • 带外信道:利用非传统数据传输机制,例如通过 DNS 请求和响应来传输数据。
  • 时间信道:利用时间间隔来传输信息,例如通过特定的时间间隔发送 ICMP 回显请求。
  • 频率信道:利用频率变化来传输信息,例如通过改变网络流量的模式来传达信息。
  1. 加密技术
  • 对称加密:使用相同的密钥进行加密和解密。
  • 非对称加密:使用公钥加密、私钥解密,确保只有持有私钥的一方才能解密信息。
  • 混合加密:结合对称加密和非对称加密,提高通信的安全性和效率。
  1. 协议伪装
  • HTTP/HTTPS 流两伪装:将数据伪装成普通的 HTTP/HTTPS 请求和响应。
  • SSL/TLS 隧道:使用 SSL/TLS 加密隧道传输数据,隐藏通信内容。

示例

1. 使用 LSB 替换

假设你想将一条秘密消息隐藏在一张图片中:

  1. 准备消息
  • 将消息转换为二进制格式。
  • 例如,消息 "Hello" 可以转换为二进制形式。
  1. 替换图片的 LSB
  • 读取图片的像素值。
  • 将消息的二进制位替换到每个像素的最低有效位中。
  1. 生成隐藏信息的图片
  • 保存修改后的图片。
  1. 提取信息
  • 读取隐藏信息的图片。
  • 提取每个像素的最低有效位。
  • 组合得到原始消息。

2. 使用 DNS 请求

假设你想通过 DNS 请求发送一个秘密消息:

  1. 构建 DNS 请求
  • 将消息转换为十六进制或 Base64 编码。
  • 构建一个 DNS 查询请求,其中包含编码后的消息。
  1. 发送 DNS 请求
  • 发送包含隐藏消息的 DNS 请求。
  1. 接收 DNS 响应
  • 监听 DNS 响应,并从中提取隐藏的消息。

总结

隐蔽通信是一种复杂的通信技术,旨在隐藏通信的存在或内容。它可以通过多种技术和手段实现,既可用于合法的安全通信,也需要防范其被滥用。理解和掌握隐蔽通信的基本原理和技术,有助于提高信息安全水平。在实际应用中,应确保遵守法律法规,并在合法的测试环境中进行相关实验。

隐蔽通信技战术(一)隐蔽通信原理_DNS_03

当tcp、udp协议无法访问内网的时候可以用icmp协议来测试一下内网的联通性。

curl 是一个利用cul规则在命令行下工作的综合性文件传输工具。curl命令它不仅支持http、https、ftp、还支持特殊的hpptpost、cookie认证等。所以这个命令在很多时候还是非常的好用的。

curl 是一个非常强大的命令行工具,用于传输数据。它可以用于多种协议,如 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP 或 FILE 等。curl 主要用于从服务器获取或发送数据,常用于脚本编写和自动化任务。

curl 的基本语法

1curl [选项] [URL]

curl 的常见选项

  • -X, --request <command>:指定请求类型(GET、POST、PUT 等)。
  • -d, --data <data>:发送 POST 数据。
  • -H, --header <line>:自定义请求头。
  • -o, --output <file>:将输出保存到指定文件。
  • -O, --remote-name:保存远程文件的名字。
  • -L, --location:跟随重定向。
  • -u, --user <user:password>:指定用户名和密码进行认证。
  • -v, --verbose:显示详细的调试信息。
  • -s, --silent:静默模式,不显示进度条等信息。
  • -i, --include:包含 HTTP 头部信息在输出中。
  • -A, --user-agent <agent>:设置用户代理。
  • -T, --upload-file <file>:上传文件。
  • -J, --remote-header-name:使用从 HTTP 头部获取的文件名。
  • -b, --cookie <name=value>:设置 cookie。
  • -c, --cookie-jar <filename>:将 cookie 存储到文件。
  • -e, --referer <url>:设置 referer。
  • -k, --insecure:允许使用不受信任的 SSL 证书。
  • --data-urlencode <data>:发送 POST 数据,并进行 URL 编码。
  • --form <formdata>:发送多部分表单数据。
  • --progress-bar:显示进度条。
  • --retry <times>:重试失败的传输。

示例用法

1. 下载文件

1curl https://example.com/file.zip -o file.zip

这将从 https://example.com/file.zip 下载文件,并保存为 file.zip

2. 发送 GET 请求

1curl https://api.example.com/data

这将从 API 端点获取数据。

3. 发送 POST 请求

1curl -X POST -d "key1=value1&key2=value2" https://api.example.com/data

这将向 https://api.example.com/data 发送一个 POST 请求,并附带表单数据。

4. 设置请求头

1curl -H "Content-Type: application/json" -H "Authorization: Bearer token" https://api.example.com/data

这将向 API 端点发送一个带有自定义请求头的请求。

5. 上传文件

1curl -T file.txt ftp://example.com/path/to/upload

这将通过 FTP 协议上传 file.txt 到服务器。

6. 跟随重定向

1curl -L https://example.com/redirect

这将跟随重定向链接。

7. 设置用户代理

1curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" https://example.com

这将模拟一个浏览器的用户代理。

更复杂的用法

8. 通过 SSL 证书进行认证

1curl --cert client.pem --key key.pem https://example.com/secure

这将使用客户端证书进行 SSL 认证。

9. 使用基本认证

1curl -u username:password https://example.com/secure

这将使用基本认证访问资源。

10. 使用 cookie

1curl -b "sessinotallow=abc123" https://example.com/profile

这将携带 cookie 访问资源。

总结

curl 是一个非常灵活且功能强大的工具,适用于多种场景,如数据抓取、API 测试、文件上传下载等。通过不同的选项组合,curl 可以满足各种需求。

练习

隐蔽通信技战术(一)隐蔽通信原理_DNS_04

在kali中开一个http服务

隐蔽通信技战术(一)隐蔽通信原理_服务器_05

curl 192.168.231.130:9999

访问成功了

隐蔽通信技战术(一)隐蔽通信原理_DNS_06

nslookup www.baidu.com 8.8.8.8

nslookup(Name Server Lookup)是一个用于查询域名系统(DNS)信息的命令行工具。它可以帮助你诊断 DNS 解析问题,查看域名对应的 IP 地址,检查 DNS 服务器的状态,以及获取其他相关的 DNS 信息。

基本语法

1nslookup [选项] [hostname | IP 地址]

常见选项

  • -debug:启用调试模式。
  • -query=query_type:指定查询类型,例如 A(IPv4 地址)、AAAA(IPv6 地址)、MX(邮件交换)、TXT(文本记录)等。
  • -server=server_address:指定要使用的 DNS 服务器地址。
  • -port=port_number:指定 DNS 服务器的端口号,默认为 53。

基本用法

  1. 查询域名的 IP 地址
1nslookup www.example.com

输出示例:

1Server:  UnKnown
2Address:  192.168.1.1
3
4Non-authoritative answer:
5Name:    www.example.com
6Addresses:  93.184.216.34
  1. 指定 DNS 服务器
1nslookup -server 8.8.8.8 www.example.com

这将使用 Google 的公共 DNS 服务器来查询 www.example.com 的 IP 地址。

  1. 查询特定类型的记录
  • 查询 A 记录(IPv4 地址):
1nslookup -query=A www.example.com
  • 查询 AAAA 记录(IPv6 地址):
1nslookup -query=AAAA www.example.com
  • 查询 MX 记录(邮件交换):
1nslookup -query=MX example.com
  • 查询 TXT 记录(文本记录):
1nslookup -query=TXT example.com
  1. 交互式模式:你还可以进入 nslookup 的交互式模式,进行更复杂的查询:
1nslookup

进入交互模式后,你可以执行以下命令:

  • 查询域名
1> set type=a
2> www.example.com
3Server:  UnKnown
4Address:  192.168.1.1
5
6Non-authoritative answer:
7Name:    www.example.com
8Addresses:  93.184.216.34
  • 更改 DNS 服务器
1> server 8.8.8.8
2Default server: 8.8.8.8
  • 退出交互模式
1> exit

实际应用示例

1. 查询域名的 A 记录

1nslookup -query=A www.example.com

2. 查询域名的 MX 记录

1nslookup -query=MX example.com

3. 使用特定的 DNS 服务器查询

1nslookup -server 8.8.8.8 www.example.com

4. 查询域名的 TXT 记录

1nslookup -query=TXT example.com

5. 进入交互模式查询

1nslookup
2> set type=a
3> www.example.com
4> server 8.8.8.8
5> exit

总结

nslookup 是一个非常有用的工具,用于诊断 DNS 解析问题和获取 DNS 相关信息。通过不同的选项和命令,你可以查询不同类型的 DNS 记录,使用特定的 DNS 服务器,甚至进入交互模式进行更复杂的查询

隐蔽通信技战术(一)隐蔽通信原理_数据_07

会到这个目录下查看读取我们配置的服务器地址

隐蔽通信技战术(一)隐蔽通信原理_DNS_08

dig命令

dig www.baidu.com

dig 8.8.8.8 www.baidu.com#这就是8.8.8.8所记录的有关百度的域名解析信息,这种方式会经常运用到子域名的查询和反查

dig(Domain Information Groper)是一个非常强大的命令行工具,用于查询 DNS 服务器以获取有关域名的信息。它比 nslookup 更加灵活和功能丰富,常用于诊断 DNS 解析问题、查看域名对应的 IP 地址以及其他 DNS 相关的信息。

基本语法

1dig [选项] [hostname | IP 地址]

常见选项

  • -t <record_type> 或 @<server>:指定查询的记录类型或使用的 DNS 服务器。
  • -x <IP 地址>:进行反向 DNS 查找。
  • +short:仅显示查询结果的 IP 地址或其他数据,不显示其他额外信息。
  • +noall +answer:仅显示查询结果中的回答部分。
  • +trace:显示递归查询的完整跟踪信息。
  • +time=<seconds>:设置超时时间。
  • +retry=<retries>:设置重试次数。
  • +nocmd:禁用命令行参数处理。
  • +noedns:禁用 EDNS0 扩展。
  • +bufsize=<size>:设置 UDP 缓冲区大小。
  • +nocookie:禁用 cookie 功能。
  • +nostats:不显示统计信息。
  • +nocomment:不显示注释信息。
  • +noid:不显示 ID 信息。

基本用法

  1. 查询域名的 A 记录(IPv4 地址):
1dig www.example.com

输出示例:

1; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> www.example.com
2;; global options: +cmd
3;; Got answer:
4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50553
5;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
6
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 4096
9;; QUESTION SECTION:
10;www.example.com.            IN      A
11
12;; ANSWER SECTION:
13www.example.com.      300    IN      A       93.184.216.34
14
15;; Query time: 40 msec
16;; SERVER: 127.0.0.53#53(127.0.0.53)
17;; WHEN: Thu Sep  5 23:55:03 UTC 2024
18;; MSG SIZE  rcvd: 62
  1. 查询域名的 AAAA 记录(IPv6 地址):
1dig -t AAAA www.example.com

输出示例:

1; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> -t AAAA www.example.com
2;; global options: +cmd
3;; Got answer:
4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39853
5;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
6
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 4096
9;; QUESTION SECTION:
10;www.example.com.            IN      AAAA
11
12;; ANSWER SECTION:
13www.example.com.      300    IN      AAAA    2606:2800:220:1:248:1893:25c8:1946
14
15;; Query time: 39 msec
16;; SERVER: 127.0.0.53#53(127.0.0.53)
17;; WHEN: Thu Sep  5 23:55:13 UTC 2024
18;; MSG SIZE  rcvd: 82
  1. 查询域名的 MX 记录(邮件交换):
1dig -t MX example.com

输出示例:

1; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> -t MX example.com
2;; global options: +cmd
3;; Got answer:
4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51145
5;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
6
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 4096
9;; QUESTION SECTION:
10;example.com.               IN      MX
11
12;; ANSWER SECTION:
13example.com.        3600    IN      MX      10 mail.example.com.
14
15;; Query time: 39 msec
16;; SERVER: 127.0.0.53#53(127.0.0.53)
17;; WHEN: Thu Sep  5 23:55:23 UTC 2024
18;; MSG SIZE  rcvd: 62
  1. 查询域名的 TXT 记录(文本记录):
1dig -t TXT example.com

输出示例:

1; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> -t TXT example.com
2;; global options: +cmd
3;; Got answer:
4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36178
5;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
6
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 4096
9;; QUESTION SECTION:
10;example.com.               IN      TXT
11
12;; ANSWER SECTION:
13example.com.        3600    IN      TXT     "v=spf1 mx ip4:93.184.216.34/32 ~all"
14
15;; Query time: 39 msec
16;; SERVER: 127.0.0.53#53(127.0.0.53)
17;; WHEN: Thu Sep  5 23:55:33 UTC 2024
18;; MSG SIZE  rcvd: 100
  1. 指定 DNS 服务器查询
1dig @8.8.8.8 www.example.com

输出示例:

1; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> @8.8.8.8 www.example.com
2; (1 server found)
3;; global options: +cmd
4;; Got answer:
5;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53472
6;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
7
8;; OPT PSEUDOSECTION:
9; EDNS: version: 0, flags:; udp: 4096
10;; QUESTION SECTION:
11;www.example.com.            IN      A
12
13;; ANSWER SECTION:
14www.example.com.      300    IN      A       93.184.216.34
15
16;; Query time: 39 msec
17;; SERVER: 8.8.8.8#53(8.8.8.8)
18;; WHEN: Thu Sep  5 23:55:43 UTC 2024
19;; MSG SIZE  rcvd: 62
  1. 反向 DNS 查找
1dig -x 93.184.216.34

输出示例:

1; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> -x 93.184.216.34
2;; global options: +cmd
3;; Got answer:
4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59818
5;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
6
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 4096
9;; QUESTION SECTION:
10;34.216.184.93.in-addr.arpa. IN      PTR
11
12;; ANSWER SECTION:
1334.216.184.93.in-addr.arpa. 300 IN  PTR     www.example.com.
14
15;; AUTHORITY SECTION:
1634.216.184.93.in-addr.arpa. 300 IN  NS      ns1.example.com.
17
18;; Query time: 39 msec
19;; SERVER: 127.0.0.53#53(127.0.0.53)
20;; WHEN: Thu Sep  5 23:55:53 UTC 2024
21;; MSG SIZE  rcvd: 92

实际应用示例

1. 查询域名的 A 记录

1dig www.example.com

2. 查询域名的 AAAA 记录

1dig -t AAAA www.example.com

3. 查询域名的 MX 记录

1dig -t MX example.com

4. 查询域名的 TXT 记录

1dig -t TXT example.com

5. 使用特定的 DNS 服务器查询

1dig @8.8.8.8 www.example.com

6. 反向 DNS 查找

1dig -x 93.184.216.34

总结

dig 是一个功能强大的 DNS 查询工具,可以用于诊断 DNS 解析问题、获取域名的详细信息以及其他相关的 DNS 信息。通过不同的选项和命令,你可以查询不同类型的 DNS 记录,使用特定的 DNS 服务器,甚至进行反向 DNS 查找。