网络攻防

y4ny4n

前几次上课的笔记,方便期末考试查阅。

渗透测试流程、信息收集、WEB挖掘分析、网络隐身、网络扫描、Burp使用…

class1

vWeb安全资料
§https://pan.baidu.com/s/1bg1G6uo9b6UT2Y-E4dnaSQ
§密码:0ub7
vKali百度云链接https://pan.baidu.com/s/1Ty4QhRLm3707Cxvzivh8fw 密码:u4a0
vWin2008server链接https://pan.baidu.com/s/1eML7NoyWBN0Zr26_DLoSYw 密码:2dta

www.shodan.io 工控设备具体分布

class2

渗透测试流程

image-20210311120114130

①信息收集

②网络隐身:让对方发掘不到攻击者的地址,无法溯源

(对攻击来说是必须的,但对渗透测试可以不做)

③端口和漏洞扫描

④攻击实施

⑤提权

⑥设置后门

如果入侵的漏洞被修复,可以使用后门绕过目前利用的漏洞

⑦清除痕迹

应用的日志会将攻击细节记录(渗透测试可以不做)

信息收集

收集的信息

  • 网络接入方式:拨号接入、无线局域网接入、以太网接入、VPN远程接入等

  • 目标网络信息:域名范围、IP地址范围、具体地理位置等

  • 网络拓扑结构:交换设备类型、设备生产厂家、传输网络类型等

    (路由器,二级交换机,三级交换机…)

  • 网络用户信息:邮件地址范围、用户账号密码等

网络隐身

IP假冒或盗用

TCP/IP协议不检查源IP地址(32位),只检查目的地址,修改IP地址绕过访问控制黑名单

MAC地址盗用

修改自身主机的MAC地址(数据链路层)为允许访问的MAC地址 IP是逻辑地址(网络层),MAC(48位)是硬件地址

MAC地址分为两段,0~23位是国际化组织分配给网卡制造商的 24~47位是生产商生产网卡的编号,这48位在出厂就固化在网卡中了

通过技术手段修改这48位,只改变表象,不改变本质

通过ARP协议把IP翻译为MAC地址

代理隐藏

通过免费代理进行信息收集,甚至通过多个代理级联

因为中国长城防火墙,所以国内ip无法访问谷歌。新加坡的服务器能正常访问谷歌,可以在PC上设置代理,先把发往谷歌的数据包发给代理,由代理转给谷歌。

对谷歌而言,知道当前流量连接来自新加坡的服务器,而不知道我们的PC地址。

冒充真实用户

监听或破解用户的账号和口令,然后冒充该账户

僵尸机器

入侵僵尸主机,并通过该主机进行攻击

如果计算机被攻击者获得相应权限后,攻击者可以利用你的计算机进行攻击。

被攻击方如果进行溯源,首先找到你的计算机。

例:校园网的网关号不要轻易借给别人,可能在网络上发表不利言论

网络扫描

传输层TCP UDP 这两个协议都有0-65535个端口

通过端口和应用层各种应用建立联系

常使用的端口 http默认端口80 https默认端口443 ftp默认21

http https ftp都是应用层协议

从应用层到传输层都用TCP协议封装

端口扫描

  • 检测有关端口是打开还是关闭

    可以得到具体的攻击路径

  • 判定目标端口运行的服务类型和版本信息

    检测开放哪些端口,判断相应服务类型

  • 识别不同操作系统的类型和版本

linux中shadow存放加密后的口令,passwd文件存放用户信息

shadow文件需要root权限可以读取

漏洞扫描

  • 专用的漏洞扫描工具如Openvas、APPScan等

  • WEB应用程序的漏洞扫描如Nikto、W3AF等

攻击或渗透测试

拒绝服务攻击

危害极大,导致服务器不能正常提供相应服务

获取访问权限

利用远程漏洞进行远程入侵,获得目标系统的一个普通用户权限 获得权限比较低

提升访问权限

配合本地漏洞把获得的权限进行提升,提升为管理员的最高权限

暴力破解管理员口令、检测系统配置错误、网络监听或设置钓鱼木马

放置后门

开放不安全的服务端口

修改系统配置

安装网络嗅探器

建立隐藏通道

创建具有root权限的虚假用户账号

安装批处理文件

安装远程控制木马:灰鸽子

清除痕迹

不能把整个日志全部删除,删除和自己有关的信息

清除登录日志和其它有关记录

  • 隐藏上传的文件

  • 修改日志文件中的审计信息

  • 修改系统时间造成日志文件数据紊乱

  • 删除或停止审计服务进程

  • 干扰入侵检测系统正常运行

  • 修改完整性检测数据

  • 使用Rootkits工具

Windows的系统日志—“%systemroot%\system32\config”

Kali

Metasploit 渗透测试的框架,相当于狙击枪(kali的核心内容)

kali2020默认用户 kali 默认口令kali

此时权限较低 激活root账号

修改网络设置

设置静态ip地址

上方时间后图标右击Edit Connection->左下角设置

若使用静态IP,把Method改为手动(Manual)

Add Address NetMask Gateway(网关)

ifconfig查询ip地址 查看配置是否生效

Linux中网卡信息若发生改变,不会立刻生效。需要先将网卡停用后再启用

在图标点击断开连接 再启动Wired Connection1,地址才会生效

一般不要手动设置地址,自动获取即可

查看ip地址

ifconfig

两个网卡eth0/lo

lo是本地回环网卡,用于测试本地网卡能否正常工作

ip为127.0.0.1

VMware网络连接模式

安装VMware后,网络设置中多了vmnet0/vmnet1/vmnet8等

这是三种上网方式,虚拟出来的三个交换机

编辑->虚拟网络编辑器(若缺少相应的虚拟交换机如VMnet0,可自行添加)

image-20210311174959481

桥接模式:启动了一台虚拟机相当于拥有两台电脑

物理主机有ip地址,虚拟主机也有ip地址

虚拟机通过虚拟网卡练到虚拟交换机VMnet0,用主机的网卡上网

NAT模式:虚拟机之间、主机与虚拟机之间互访,==虚拟机可通过主机访问外网,外网无法访问虚拟机。==

仅主机模式:虚拟机之间、主机与虚拟机之间互访,虚拟机无法访问外网。

更新源

源是kali的官网(外网),若包比较大,会经常中断

修改源为国内源

1
2
3
4
vim /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
apt-get update

搭建漏洞环境

Kali或其它主机要跟Metasploitable2在同一个网段,要么都用桥接,要么都用NAT(就算在同一网段,一个NAT一个桥接也不行)

Metasploitable2登陆用户名/密码:msfadmin/msfadmin,但权限较低,可修改

metasploitable使用http,输入ip地址查看是否能访问成功

image-20210313124234394

信息收集

又称网络踩点(footprinting),指攻击者通过各种途径对要攻击的目标进行有计划和有步骤的信息收集,从而了解目标的==网络环境和信息安全状况==的过程。

目标网络

  • 域名、IP地址、DNS服务器、邮件服务器、网络拓扑结构

目标个人

  • 身份信息、联系方式、职业或其它隐私信息

踩点方法

  • 注册机构Whois查询

  • DNS和IP信息收集

  • WEB信息搜索与挖掘

  • 网络拓扑侦察

  • 网络监听

第一部分 域名系统

我们的上网过程中使用的是32位的IPv4(点分十进制)

为了方便 我们使用带有一定含义的域名来标识某个ip

DNS

Domain Name System 域名服务器

完成的是域名和ip的映射

域名系统是因特网的一项服务,作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS使用TCP和UDP端口53。

image-20210313125050606

域名记录类型

A记录:主机记录,是使用最广泛的DNS记录;

完成域名->IP映射

NS记录:也称为域名服务器记录,用于说明这个区域==有哪些DNS服务器承担解析==的任务;

Cname记录:别名记录;

PTR记录:反向地址解析记录,作用是把IP地址解析为域名

IP->域名映射 和A记录相反

域名的等级

image-20210313125503780

主机提供了www服务

在域名中越靠后级别越高

cn顶级域 com二级域 sina三级域(组织机构名)

域名解析示意—迭代

如果查询的DNS服务器中没有对应的ip地址:

image-20210313125724339

根域名服务器:最高级别的,他无所不知,只管大事,细节不管。

com顶级域名服务器:com是顶级,google是二级

对应返还后,本地域名服务器将对应关系存储到DNS高速缓存中

DNS域名解析基本过程

image-20210313130354066

13套根服务器中,1套主根,12套副根

DNS收集信息—whois

目前教育网的查不了,只能查询公网的

直接百度whois查询,找到相关信息

在whois查询中,注册人姓名和邮箱信息,所有人往往就是管理员。

可以通过联系人 联系邮箱进行whois反查,查询更多和联系人或邮箱相关的域名

域名信息查询

host命令与dig命令

输入命令名 可以直接回车或-h

查看帮助 具体使用方法

image-20210313132604236

  • host -a hebtu.edu.cn

    QUESTION SECTION: hebtu.edu.cn(==要查询的域==)

    ANSWER SECTION: ns.hebtu.edu.cn(由这个域名服务器完成域名解析)

    此时ping ns.hebtu.edu.cn

    返回202.206.100.36 域名服务器的ip地址

  • host -a www.hebtu.edu.cn(==要查询的主页==)

    ANSWER SECTION:

    A记录是IPv4 AAAA是IPv6

  • dig hebtu.edu.cn any

  • dig baidu.com any

    baidu.com和hebtu.edu.cn都是域

  • host -t mx hebtu.edu.cn

    查看谁在处理邮件信息

  • dig www.hebtu.edu.cn +trace

    查看请求发出后 域名完整的请求过程

子域名枚举

通过主域名得到所有子域名信息,再通过子域名查询其对应的主机IP hebtu.edu.cn(即判断hebtu三级域名下是否还有子域名)

注意:子域名等级越小,在域名中越靠前

dnsenum

子域名字典路径:/usr.share/dnsenum

dnsenum -r(使用递归方式枚举) -f(使用字典) /usr/share/dnsenum/dns.txt baidu.com [-o baidu.txt]

功能:获取各种DNS资源记录,根据字典暴力枚举子域名、主机名、C段网络扫描和反向网络查找

合理使用tab 可以在shell中对命令进行补全

1
2
cd /usr/share/dnsenum
./dnsenum -f dns.txt --dnsserver 8.8.8.8 cisco.com -O cisco.txt

-f dns.txt 指定暴力破解文件;
—dnsserver 指定dns服务器;如果不加,用目前主机的DNS解析;如果加上,可以指定任何DNS服务器做当前解析
cisco.com 为目标域;
-O cisco.txt 输出到文件cisco.txt

dnsrecon

功能:强大的域名信息收集和枚举工具,支持所有域名枚举和域名资源记录查询

用法:dnsrecon -d 目标域名 -D 字典文件 -t {std|brt|axfr}

-t brt 使用内建字典;-t std 默认的标准查询;-t axfr 标准加axfr记录

字典路径 /usr/share/dnsrecon/namelist.txt

每个命令用到字典不同,导致结果不同

fierce

和前面两个功能基本相同,只是命令选项不同(这个速度快)

用法:fierce -dns 目标域名 [-dnsserver 指定DNS] [-range ip地址范围] [-threads 线程数] [-wordlist 字典路径]

fierce -dns hebtu.edu.cn -wordlist ==/usr/share/fierce/hosts.txt==

第二部分 IP信息收集

内网IP搜索

ICMP搜索

ICMP互联网控制报文协议 向地址发送request请求,得到对方的responese,说明网络是通的。有缺陷是因为会受到防火墙的影响。nping基于ICMP协议,不一定成功。(ping不通也因为可能是防火墙拦截)

  • nping

    nping -c 1 192.168.43.15/24就在地址段中开始找

    /24网络地址前缀,代表32位地址前24为1,代表整个C类地址的网段。若/24则.15写成任意数字都行,因为都代表129.168.43网段中任意地址。

    nping -c 1 192.168.43.15/25 43.1-43.126

    nping -c 1 192.168.43.129/25 43.129-43.254

    -c 1代表向地址段中每一个地址发送数据包

ARP搜索

ARP协议是ip地址到MAC地址的映射。ARP搜索都是在某一个网段中进行搜索。

  • netdiscover

    netdiscover -r 192.168.43.150/24

    -r 代表是一个网段

    可以搜索到 IP MAC地址 设备类型

  • nmap

    nmap [-PA [端口]] [-PS [端口]] [-PU [端口]] -sn -n 地址范围

    -sn: ping扫描- 禁止端口扫描

    -sn看目标是否在线,并不会扫描对方的端口

    -PS [portlist]: TCP SYN扫描

    -PA[portlist]: TCP ACK扫描

    TCP报文段中有SYN ACK标志位

    -PU [portlist]: UDP 扫描

    在nmap中选项区分大小写

    nmap -n -PS -PA8080 -sn 192.168.1.0/24

  • Cain&Abel

    Windows下小工具,自行下载

    搜索IP信息

class3

1.使用多台虚拟机和主机搭建环境时,设置同一种上网上方式(NAT或桥接),若不使用同一种方式,即使手动设置ip地址,也是不通的。

2.关于ping:
基于ICMP协议,有一些局限性。并不是ping通就代表网络通,不通就代表网络不通。如果对方开启了防火墙,ping会被阻止,所以无法确定网络是否联通。

最简单有效的是nmap,nmap ip 若能扫描出对方的窗口或显示up状态,则说明网络是畅通的。

WEB挖掘分析

利用搜索引擎

通过搜索引擎从WEB站点中寻找和搜索攻击目标的相关信息

inurl:admin.asp incurl:是特定搜索引擎中关键字 意思是在url中进行查找

目录结构分析

  • HTML、ASP/PHP/JSP/ASPX等源代码及其注释语句

  • 按照内容或功能分理出一些子目录,

  • 许多网站的后台管理目录名字很常见,如admin、cms

  • 特殊后缀文件文件.inc,.bak,.txt,.sql

  • 暴力搜索

利用kali metasploit

msfconsole //启动matasploit

共有七个功能模块,每个功能模块前都带有数字,每个数字代表在当前模块中有多少子模块(类似于枪支metasploit的子弹有多少)。

目录 /usr/share/metasploit-framework

对应模块 /usr/share/metasploit-framework/modules

1.搜索模块

search brute_dirs,dir_scanner等

search是命令,后边跟的是子弹。这条命令的含义是寻找子弹的路径。

1
2
3
search brute_dirs //找到brute_dirs路径
use auxiliary/scanner/http/brute_dirs //子弹上膛
>show options//查看模块涉及的参数

Name:参数的名字 Current Setting:当前设置值

Required:布尔型,yes表示当前参数必须有值,no可以没有值 description:对参数的解释

brute_dirs

brute_dirs的几个参数:
RHOSTS 远程主机 带s说明既可以设置一个地址也可以设置一个地址段 RHOSTS的required值为yes说明必须设置值,不能为空

RPORT 对方(要收集信息的服务器)的端口

>set rhosts 192.168. .设置使用set 设置rhosts

通过nmap扫描该ip 发现其在80端口有http服务,故RPORT不同修改 使用默认值80即可

run 或者 exploit//子弹发射(进行目录扫描) 一般为了节省时间使用run 结果的多少和字典大小有关

dir_scanner

如果要换子弹需要把当前的退出 >back

1
2
3
search dir_scanner
use xxx/xx/xx/scanner
>show options

set threads 10 线程大并发高攻击速度快,但被发现的概率高

邮件地址搜集

1.搜索引擎

例如:搜索河北师大相关邮箱

搜索@hebtu.edu.cn 但不是完全准确的

2.metasploit search_email_collector模块

参数 domain:邮箱的域(hebtu.edu.cn)

但这个模块不管用,搜索机制是用微软的BING、GOOGLE、YAHOO 但都是外网,国内地址无法使用

3.theHarvester

可以指定搜索引擎

从搜索引擎 (baidu、yahoo)中的前200项搜索结果中挖掘目标域里的电子邮件地址和主机名

从搜索引擎 (baidu、yahoo)中的前200项搜索结果中挖掘目标域里的电子邮件地址和主机名

theHarvester -d hebtu.edu.cn -l 200 -b baidu

usage:image-20210322233537441

此处-b 后加搜索引擎域名 注意不要加.com(完整域名)

4.邮箱地址查找工具—snovio

功能非常强大,可以使用google插件也可以使用网址

https://app.snov.io/login

拓扑确定

侦察目标的网络拓扑结构,用于找到薄弱点实施入侵

traceroute
  • 向目标主机发送不同生存时间(TTL)的ICMP、TCP或UDP报文来确定到达目标主机的路由

  • 交换节点可能装有包过滤机制,ICMP、TCP和UDP报文都可能被过滤

  • traceroute [-4] { -I | -T | -U} [-w 等待时间] [-p 端口] [-m 最大跳数]

traceroute查看发送出去的探测数据包经过哪些路由器

例如traceroute www.hebtu.edu.cn

image-20210323000301211

traceroute默认情况下向目标发送三个数据报 ip地址后跟着的三个时间是三个数据报的往返时间

第二跳显示* 是因为第二跳经过的路由器会把发过去的数据报过滤,收不到对方服务器做的响应,所以没法把路由器的地址打印出来

第五跳有三个路由器的地址,因为每个数据报发出去以后,都是可以单独路由,走不同的路径。

社会工程学

通过操纵人来实施某些行为或泄露机密信息的攻击方法,实际是对人的欺骗

Maltego
  • 高度自动化的信息收集工具

  • 收集域名服务器、IP地址、子域或个人信息

  • 跨平台

  • 信息可视化

在kali左上方搜索选择 01-Information Gathering中的maltego

Run maltego CE版本->www.maltego.com/ce-registration进行注册(外网)

左上角新建->在实体模版搜索Domain->修改域名(例如hbu.edu.cn)->上方菜单栏点击machines->Run Machine(会给多种搜索方法,越往下级别越高,速度越慢) 搜索该域名的拓扑结构

如果打算对某一个目标进一步分析 在某个图标点击右键会出现进一步跟踪

Zenmap

nmap的图形使用接口,集成traceroute功能(支持ICMP、TCP和UDP追踪)

在windows安装nmap后会有图标 Zenmap

把配置中扫描方式改为Quick traceroute扫描

还是可以查看到路由信息(拓扑结构)

网络监听

一种被动的信息收集方法,往往不会被目标察觉

最佳位置是网关、路由器和防火墙

截获SMTP(发电子邮件用到的协议)、HTTP、FTP、POP3(收邮件用的协议)和TELNET等网络协议报文,因为它们明文传输

http明文传输不安全,使用https较安全

1.Cain&Abel

局域网账号口令收集和破解工具,截取各种常见网络协议的账号和口令

安装WinPcap抓包工具实现cain启动

1)扫描网段存活主机

先点击网卡图标,选择Sniffer,右键选择扫描MAC地址。用于扫描当前网段中存活主机,扫描时把协议都选上

扫描网段时自己的ip不显示

2)ARP

点击下方栏ARP,右键Remove all,点击上号加号,对刚才扫描出的地址进行监听。

监听的目标左侧选网关,右侧选要监听的目标。

在地址段中的网关要么是.1要么是.254,几乎所有的管理员都这么使用。(.0代表网络不能使用,.255是广播地址)

可以同时检测多个ip。

3)ARP毒化

点击上方任务栏黄色图标,开始毒化。

status变成Poisoning

假设被监听的主机在使用网络服务,如使用ftp下载文件或者登录后台(http)

点击下方passwords 可以监听到某ftp服务器 登录账密

image-20210323231417714

以上类型都能监听到。使用场景:商场的公用免费wifi,添加多条记录监听主机行为。如果使用明文传输的服务,可以监听记录下来。

2.局域网的嗅探 ettercap+driftnet

1)driftnet

图片和MPEG音频收集工具,实时从各种网络协议中提取图片数据或MPEG音频

Kali2020.1 不支持driftnet,需要手动安装

Kali2020.1原有源地址无法更新,需要修改

driftnet [-m 指定抓取图片数量 -a] [-S] [-d 指定存放目录名] [BPF过滤器]

原理:

image-20210323231853606

主机B为被攻击方,主机要上网必须设置网关(网关就是路由器的一个ip地址)。主机B要上网不仅需要知道路由器ip地址,还要知道路由器的MAC地址。

主机B把数据帧发给网关(路由器的入口),网关把数据包再交给主机B上网的目标。

主机A为攻击方,主机A向B发送大量数据包告诉主机B,网关的MAC发生了变化。欺骗主机B将A变成网关,主机B在对外传输数据时,便将数据传送给假网关—主机A,主机A就可以窃听分析主机B的数据包。

利用driftnet软件窃听数据,就可以看到主机B所浏览的内容。

2)局域网欺骗攻击(ARP欺骗,流量经过自己网卡,再从网关出去)

arpspoof—arp攻击工具

apt-get install dsniff ssldump

用法:

arpspoof -i 自己网卡 -t 目标IP 网关

1
2
3
4
echo 1 >/proc/sys/net/ipv4/ip_forward (流量转发)//改成1 存到ip_forward中
arpspoof -i eth0 -t 目标 网关
driftnet -i eth0 看着捕获的图片
ettercap -Tq -i eth0进行账号密码嗅探(可能)

如果流量转发这条没有,会造成目标的断网,无法达到监听目的。ip_forward文件路径为/proc/sys/net/ipv4

cat ip_forward 默认情况下是0 即流量转发不打开

ifconfig查看网卡名称 要让所有的流量经过kali的网卡

arpspoof -i eth0 -t 目标 网关 这一步的目的是向被害方发送大量ARP包,告诉受害方当前网关的MAC地址发生了变化。(即ARP毒化) 终端挂起,不要终止

driftnet -i eth0监听kali的网卡 可以抓到对方上网过程中的图片(只能抓图片,有一定延迟) 并会把图片存下来

ettercap -Tq -i eth0 可能抓到登录账密

3)Ettercap

调用图形化方式 Ettercap -G

Sniffing at startup(和cain一样,用于监听)

下一行选择监听网卡 点上方对号后点击上方三个点

Host->Scan for hosts(进行扫描)->点击三个点->Host->Host list

随后操作相同 把监听的目标设成taret1 把网关设成target2

进行ARP毒化,MITM menu->ARP poisoning

同样需要driftnet

3.p0f

分析网络数据包来判断目标主机操作系统类型、网络地址转换(NAT)、负载均衡设置、应用代理

以及用于检测对方的上网的行为(浏览了一些什么网站)

手动安装apt-get install p0f

同样需要先打开流量转发,否则对方上不了网

1
2
3
echo 1 >/proc/sys/net/ipv4/ip_forward (流量转发)
arpspoof -i eth0 -t 目标 网关
p0f 新终端运行

先做arp毒化再运行p0f

p0f [-p] [-i 指定接口] [BPF过滤器]

浏览一个网站会接收到很多响应

4.ferret

提取各类协议报文关键字段,适用于窃取cookie和HTTP会话信息

cookie是进行身份认证时,输入的账号和口令转换成特定的字符串就是cookie。如果被截获,虽然不知道账号和口令,但依然能用你的身份登录。

class4

IP:网络层地址 MAC:数据链路层地址

网络隐身

IP地址欺骗

原因: TCP/IP路由机制只检查报文目标地址(目的地址)的有效性,可以定制虚假的源IP地址
➢IP欺骗(IP Spoofing)
➢利用主机间的正常信任关系,通过修改IP报文中的源地址,以绕开主机或网络访问控制
➢C与A在同一LAN(在同一网段)中,IP欺骗比较容易
➢C与A在不同LAN中,UDP欺骗比较容易

image-20210325081142446

如果有大量C冒充A,B会向A发送大量响应,会导致A宕机或拒绝服务。同理,B也会因为资源耗尽拒绝服务。

如果A与B建立TCP连接进行通信,C实施IP欺骗就非常困难。

IP欺骗过程

  • 使A停止工作

  • 猜测初始序列号

    基于时间

    随机增加

    固定不变

  • 建立欺骗连接

image-20210325081634587

在TCP报文段中的序号 主机B每建立连接,序号就会发生变化

C向B发送报文 采样和猜测初始序号ISN

B收到第一次握手请求后,B会向A发送第二次握手

猜测第二次握手序号是第一次握手序号+1

第三次握手确认号为猜测的ISN+1

成功的前提是通信主机之间仅凭IP地址标识对方身份,并且攻击者可以正确猜测TCP连接的初始序列号(ISN)

防范措施

  • 使用基于加密的协议如IPSec或SSH进行通信

  • 通信时使用口令或证书进行身份验证

  • 使用随机化的ISN

  • 在路由器上配置包过滤策略,检测报文的源IP地址是否属于网络内部地址

  • 不要使用基于IP地址的信任机制

MAC地址欺骗—突破基于MAC地址的局域网访问控制

1.基于MAC的访问控制

交换机仅转发源MAC地址在预定义的访问列表中的报文

2.基于IP和MAC的访问控制

仅转发(P,MAC)地址对在访问列表中的报文,IP和MAC必须都在访问列表中

image-20210325082938436

3.修改MAC地址的方法

知道局域网中能上网的A的MAC地址,可以修改为A的MAC地址冒充A上网

MAC地址48bit,前24bit代表公司,后24bit为序号。二者组织起来保证全球唯一性。ROM为主存寄存器,MAC地址写在ROM中,不可改变。故硬修改不太现实。

软修改

网卡驱动程序从系统中读取地址信息并写入网卡的硬件存储器

硬修改

修改网卡硬件ROM中存储的原有地址

4.Windows系统修改MAC网卡

物理机中用到的方法

本地属性-网络客户端-配置-高级-网络地址 修改MAC地址

虚拟机中用到的方法

计算机->属性->设备管理器->网络适配器(这就是网卡的名字)->详细信息->驱动程序关键字 复制

进到注册表(regedit)->点击查找 搜索4d36c972-c325-1cc-bfc 1-08002bc103 18(网卡标识符,即主机上网时用到的网卡相关的配置)->展开后有多个子文件夹 说明有多种上网方式->打开0007 DriverDesc(驱动器的描述) 其值就是当前上网网卡->在0007右键新建字符串值(子键) 命名Networkaddress 随意填写数字12个十六进制(MAC地址48位)为MAC地址

网卡先禁用再启用

windows查看mac地址 ipconfig/all

5.Linux系统修改MAC

ifconfig

ifconfig ether参数代表MAC地址

先禁用网卡 ifconfig eth0 down

ifconfig eth0 hw ether 000c2969da99 hw代表hardwire(硬件)

ifconfig eth0 up

修改后上网不受影响

macchanger

使用前需要先安装

用法: macchanger 选项 eth0

-p: 复位到原来的永久硬件

-a:设置同类的随机供应商MAC

-A:设置任意类型的随机供应商MAC

-r:设置完全随机的MAC

6.问题

如果局域网中有两台在线的主机具有相同的MAC地址,它们是否能同时正常通信?

目前局域网内联网都采用星型方式(交换机)

交换机有很多端口,每一个端口都是没有地址的,而路由器的端口都有自己的MAC地址。交换机中的CAM表中的值是它连接设备的MAC地址

根据交换机的工作机制(CAM),两台主机无法同时通信。假设主机A和B的MAC地址都是MAC_ AB,而A连接交换机的端口1,B连接交换机的端口2。

当A和B同时发送报文时,端口地址表中记录的MAC_ AB只会有1条记录。那么当其它主机给A或者B发送报文时,如果端口地址表中记录的是端口2,那么A不会收到报文,如果记录的是端口1,那么B不会收到报文。

类似同一本书不能同时给两个人看。

image-20210325090153427

网络地址转换(NAT)

将私有地址转换为公有IP地址的技术,对终端用户透明(用户不需要知道具体细节)

IP地址

A:0.0.0.0-127.255.255.255

在A类地址中 10.0.0.0-10.255.255.255 是私有地址

127.0.0.0-127.255.255.255 私有地址

B:128.0.0.0-191.255.255.255

172.16.0.0-172.31.255.255 私有地址

C:192.0.0.0-223.255.255.255

192.168.0.0-192.168.255.255 私有地址

D:多播 224-239 E:保留 240-255

私有地址是不能被路由的,可以在局域网中使用。公有地址是可路由的,由国际化组织分配给某些国家某些地址段。

配置私有地址需要进行转换为公有地址。

转换方式

1.静态转换
可实现外网到内网的映射,有专门的地址表

将内网的私有IP地址转换为公有IP地址,转换方式是一对一且固定不变

2.动态转换
可用于没有传输层的IP报文,如OSPF路由报文

谁用到网络谁获得一个临时的对外地址,用完后其他用户请求时会重用这个对外地址

内网的私有IP地址转换为公用IP地址时,NAT会从公用IP地址池中随机选择一 个

3.端口地址转换PAT
共享一个IP,只能适用于基于UDP/TCP的网络通信

既改变外出报文的IP地址,也改变报文的端口

例如:对外地址只有一个,内部200台电脑,在ip地址加上端口对每个主机发出的数据报进行区分

地址转换表

静态表项在配置后即固定不变(静态转换)

image-20210325110114439

有一个静态一一对应的地址表(黄圈中) 内部主机要访问服务器,数据报经过重新封装 路由器查表做简单的ip地址替换

动态表项在每次会话新建立后保持不变

动态不光会替换ip,还会替换端口。

image-20210325110630054

内部主机很多,但可用的地址池不多,所以端口也发生了改变。

代理隐藏

不直接与目标主机通信,而是通过代理服务器间接地与目标主机通信,相当于一个中介

列举出一些可用代理 :www.kuaidaili.com

代理服务器

将内网与外网隔离

正向代理

正向代理的过程,隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。

反向代理

反向代理隐藏了真实的服务端,反向代理服务器会把请求转发到真实的服务器那里去。

正向代理翻墙软件

image-20210325093905185

正向代理的用途:

  • 访问原来无法访问的资源,如google;

  • 可以做缓存,加速访问资源;

  • 对客户端访问授权,上网进行认证;

  • 代理可以记录用户访问记录,对外隐藏用户信息。

反向代理—Nginx 服务器

image-20210325094231071

你对百度的请求发给了server1 还是server2 由域名的服务器来完成。反向代理隐藏了后边的内容。

很类似的:你打10086 实际给你解决问题的是某个工作人员,但接听之前你并不知道接待你的客服是哪个。

反向代理的作用:

  • 保证内网的安全,阻止web攻击,大型网站,将反向代理作为公网访问地址,Web服务器使用私有地址

  • 负载均衡,通过反向代理服务器来优化网站的负载

正向代理和反向代理区别

正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.

反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

image-20210325094639035

透明代理

透明:用户使用起来在终端不用进行任何操作,就和不存在一样像和服务器直接通信,但实际是存在的

  • 通常放置在网关位置

  • 客户机向目标发起请求

  • 代理主机自动建立与服务器的连接

  • 转发客户请求并接收应答

  • 最后转发给客户

  • 工作在传输层或应用层

常用代理

HTTP代理

主要作用是代理浏览器访问WEB服务器,端口一般为80、8080

SSL代理

代理访问https://开头的WEB网站,SSL的标准端口为443

HTTP CONNECT代理

用户向代理发起HTTP CONNECT请求,代理为用户建立连接到目标的任何端口

HTTP TUNNEL代理

与HTTP CONNECT代理类似,但是转发隧道报文,通常是加密的SSL通信

FTP代理

代理FTP客户机软件访问FTP服务器,其端口一般为21、2121

POP3代理

代理邮件客户机软件用POP3协议收邮件,其端口一般为110

Telnet代理

代理Telnet客户程序访问Telnet服务器,用于远程控制和管理,其端口一般为23

Socks代理

防火墙安全会话转换协议,介于应用层和传输层之间的“中介层”,其标准端口为1080

Socks4只支持TCP应用,而Socks5可支持TCP和UDP两种应用。

如何使用代理

http: google 设置->高级->局域网设置->代理服务器->代理ip 端口号

sock:设置->高级->局域网设置->代理服务器->套接字

代理服务器使用自行查找

OWASP ZAP

免费WEB安全扫描器,集成HTTP和HTTPS的代理服务器,仅支持正向代理功能

apt-get install zaproxy

zaproxy //运行

点击上方菜单栏Tools->Local Proxies(用来搭建本地http/https代理) ->地址改为kali的ip,不能写localhost(127.0.0.1),localhost私有地址别人无法使用,端口默认8080或者自行修改

使用另个设备通过Kali搭建的服务器上网,火狐->选项->网络设置->手动设置代理服务器(http/https代理都可以使用) ,看使用的浏览器能否上网确认代理是否成功

CCProxy

国内出品的Windows代理软件,支持正向和反向代理

安装ccproxy 默认安装->破解ccproxy

破解:选择离线注册 复制特征码到破解工具machine ID处generate

使用:
设置中使用了多种代理方式,例如选择http,填写自己的ip

为了安全可以在账号管理中只对某些人开放或对所有开放(对所有人开放采用匿名访问)

做了修改后先停用再重启,使配置生效

使用http/https 代理服务器上CCProxy记录哪个机器访问了哪个网站

因为需要用户在浏览器设置,所以不是透明代理

proxychains

ProxyChains可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。

只有一级代理,对用户隐藏的并不好。如果有多级代理,对用户来说相对安全。

ProxyChains 支持多个代理组成链式访问:

your_host <—> proxy 1 <—> proxy 2 (HTTP or SOCKS4/5) <—> target_host

使用跨不同国家(对上网法律不同),对请求方来说是安全的。

配置:

1
vi /etc/proxychains.conf //在proxychains配置文件中添加多个代理的IP和端口

dynamic_chain 动态链

写出多个代理 动态在里面进行选择

strict_chain

严格的按照你写出代理的顺序进行代理

还有一种随机的代理

proxy_dns 进行注释,我们使用自己代理的dns

在ProxyList写出代理列表

格式: 代理方式 ip 端口

例如

Proxy List:

https 192.168. . 808 (CCProxy)

http 192.168.3.75 8888(ZAP)

注意设置浏览器为不使用代理(把之前设置的删掉)

用法:

proxychains curl www.baidu.com //curl 文件传输

curl:把对方的页面存成文件

proxychains wget 目标

wget:用文本方式访问网站

proxychains firefox www.baidu.com

firefox:用火狐浏览器访问目标

涉及到需要证书的(https需要)不太好用,在http比较好使用

class4

网络扫描

基于网络的远程服务发现和系统脆弱点检测的一种技术。

基于主机的扫描

被动式策略或系统安全扫描

运行在被扫描主机之上,对系统中错误的配置、脆弱的口令和其它不符合安全策略的设置进行检测

基于网络的扫描

主动式策略

向远程主机发送探测数据包,获取响应数据包并对其进行解码分析,从而发现网络或主机的各种漏洞

Nmap

功能:躲避防火墙、主机发现、端口扫描、版本侦测、操作系统侦测、Nmap脚本搜索引擎

主机发现

用于发现目标主机是否在线(Alive,处于开启状态)

与Ping命令类似,发送探测包到目标主机,若收到回复,说明目标主机是开启的。多种主机探测方式,比如发送ICMP ECHO/ TIMESTAMP /NETMASK报文、发送TCP SYN/ACK包、发送SCTP INIT/COOKIE-ECHO包。

我们平时使用的ping就是使用了ICMP的ECHO REQUEST报文。

用法:

  • -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。

    (扫描列表,把扫描的地址段列出来,但主机存不存活不显示,在日常生活中基本不用)

  • -sn: Ping Scan 只进行主机发现,不进行端口扫描。

  • -Pn: 跳过主机发现而进行端口扫描等高级操作。

  • -PS/PA/PU/PY[portlist]: 使用TCP SYN/ACK或SCTP INIT/ECHO方式进行主机发现。(用的选项不一样,结果也会有所不同)

  • -PO[protocollist]: 使用IP协议包探测对方主机是否开启。

  • -n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。

  • —dns-servers : 指定DNS服务器。

  • —system-dns: 指定使用系统的DNS服务器

  • —traceroute: 追踪每个路由节点(一些节点路由器不显示ip是因为路由器限制了报文的通过,做了过滤)

端口扫描

TCP从0-65535共六万多个端口。其中一些为特定服务提供,大部分是动态的。端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。 默认情况下,Nmap会扫描1000个最有可能开放的TCP端口。

两种扫描方式:TCP端口扫描(全连接扫描(Connect扫描)、半连接扫描(SYN扫描)、FIN扫描、ACK扫描、NULL扫描、TCP窗口扫描、自定义扫描)/UDP端口扫描

常用端口

端口:一个服务点,位于传输层和应用层之间。通过端口和应用层的一些协议连接起来。

服务 端口号
HTTP 80
HTTPS 443
Telnet 23
FTP 21
SSH(安全登录) 22
SMTP 25
POP3 110
WebLogic 7001
TOMCAT 8080
WIN2003远程登录 3389
Oracle数据库 1521
MS SQL* SEVER数据库sever 1433
MySQL 数据库sever 3306
端口状态
Open 端口是开放的
Closed 端口是关闭的
filtered 端口被防火墙IDS/IPS屏蔽,无法确定其状态
unfiltered 端口没有被屏蔽,但是否开放需要进一步确定
open\ filtered 端口是开放的或被屏蔽
closed\ filtered 端口是关闭的或被屏蔽
TCP扫描

1.TCP协议格式

主要介绍六个特殊字段,都占有一个比特位

URG:紧急数据指针。等于1指针字段有效。

ACK:应答 PSH:数据推送方式 RST:复位 SYN:同步,建立连接时用 FIN:终止连接

2.SYN扫描

(-sS)半开放扫描

一般使用半开放SYN扫描

发送SYN到目标端口,如果收到SYN/ACK回复,端口是开放的;正常情况第三次握手回送ACK,但因为是半开放扫描,直接复位中断连接(图1)

如果收到RST包,说明该端口是关闭的。(图2)

如果没有收到回复,判断该端口被屏蔽(Filtered,防火墙)。

仅发送SYN包到目标主机的特定端口,不建立的完整的TCP连接,相对比较隐蔽,效率比较高,适用范围广。

image-20210328082613234使用wireshark抓包过滤条件 进行分析

ip.addr\==目标 and ip.addr\==自己 and tcp.port==扫描端口

3.TCP扫描

(-sT)全扫描 三次握手

使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭(如无防火墙,回复RST,图1;有防火墙,什么也收不到,图2)。能建立连接,则端口打开,完成三次握手后断开连接(图3)

故若能建立连接,wireshark抓包应该是四个报文

该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。

image-20210328084155187

4.ACK扫描

向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽(用于判断防火墙设置,图1)

没有收到RST包,说明被屏蔽。(图2)

只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。

ACK扫描端口多时不会都列出来。

image-20210328084716109

5.TCP FIN/Xmas/NULL scanning

三种秘密扫描

分别向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包。

如果收到对方RST回复包,则该端口是关闭的;(图1)

没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。(图2)

Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。

image-20210328085132062

这个理论与实践有出入,做实验时观察。(21端口开放却收到RST包)

6.自定义TCP扫描包

—scanflags

定制一个包含ACK扫描和SYN扫描的扫描包

nmap —scanflags SYNURG 目标IP

UDP扫描

UDP端口也是0-65535范围。但时间较长,因为扫描对方全部六万端口。

向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的;(图1)

如果没有收到回复,那说明UDP端口可能是开放的或屏蔽的。(图2)

image-20210328085808188

注意区分 wireshark抓包时源也向目的发出了 端口不可达。看清源与目的

扫描方法

-sS/sT/sA/sW:指定使用 TCP SYN/Connect()(全连接扫描)/ACK/Window(滑动窗口扫描)方式来对目标主机进行扫描。

-sU: 使用UDP扫描方式确定目标主机的UDP端口。

-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。

-sF 不受防火墙和IDS的限制

—scanflags : 定制TCP包的flags。

-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。

-sO: 使用IP protocol 扫描确定目标机支持的协议类型。

-b : 使用FTP bounce scan扫描方式

端口参数与扫描顺序

-p : 扫描指定的端口

​ 实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)

查看地址段中哪些主机用到了你熟悉攻击的服务nmap -sS 192.168.3.72/25 -p80,21,445扫描多个端口时用逗号隔开

-F: Fast mode – 快速模式,仅扫描TOP 100的端口

-r: 按端口有序扫描(如无该参数,随机顺序方式扫描端口)。

—top-ports :扫描开放概率最高的number个端口。默认情况下,nmap会扫描最有可能的1000个TCP端口)

—port-ratio : 扫描指定频率以上的端口。参数必须在在0到1之间。

注意

不要随意Nmap目标。nmap已经入了刑法,许多单位把端口扫描视为恶意行为,测试Nmap最好在内部网络进行。如有必要,应该告诉同事你正在试验端口扫描,因为扫描可能引发IDS警报以及其他网络问题。

对于管理员来说,定期进行扫描,关闭不必要的服务。根据Nmap提供的报告,关闭不必要的服务,或者调整路由器的访问控制规则(ACL),禁用网络开放给外界的某些端口。

版本扫描

确定目标主机开放端口上运行的具体的应用程序及版本信息,不同版本对应的漏洞类型不同。

•首先检查open与open|filtered状态的端口是否在排除端口列表内。如果在排除列表,将该端口剔除。

•如果是TCP端口,尝试建立TCP连接。接收到目标机发送的“WelcomeBanner”信息(相当于身份)。nmap将接收到的Banner与nmap-services-probes(nmap的签名库)中的签名进行对比。查找对应应用程序的名字与版本信息。

•如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配。根据结果对比分析出UDP应用服务类型。

-sV: 指定让Nmap进行版本侦测

nmap -sV 目标

不加任何选项: port state service

加sV选项要比不加时间长,因为要将Banner和自己的库进行比对

扫描操作系统类型

利用系统数据库nmap-os-db,可以识别2600多种操作系统与设备类型。

原理:

利用TCP/IP协议栈指纹来识别不同的操作系统和设备。

分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。

将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。

-O: 指定Nmap进行OS侦测

假冒扫描

修改扫描的源。

•nmap -e eth0 -S 源IP地址 IP地址

同时使用被扫主机wireshark抓包,查看源ip是否被修改。在扫描主机wireshark上抓包,也显示伪造ip

•namp -D IP地址1,IP地址2,…,ME IP地址

使用一个地址池 ME指kali地址(在命令中写ME即可),使用这些地址对目标进行扫描。这样做的目的是虽然有日志记录,溯源时不知道哪个ip是扫描源。用逗号进行分割

•nmap —data-length 垃圾数据长度 IP地址

常规扫描的数据包是特定数据长度的。

通过在发送的数据包末尾添加随机的垃圾数据,以达到混淆视听的作效果。

•nmap —randomize-hosts IP地址段

打乱扫描顺序,以规避检测系统的检测。

不涉及假冒源,扫描一个地址段,如果加上这个选项,扫描时无序,不会引起管理员的注意。

Unicornscan扫描

apt-get install unicornscan

TCP SYN扫描

unicornscan -v -I 目标 v详细输出;I立即执行

不加-v没有端口 信息

特定协议的扫描

unicornscan -mT 目标(T代表TCP)

扫描模式是默认的TCP(SYN)扫描,

  • U表示UDP -mU

  • T表示TCP连接扫描

  • A表示ARP

指定端口的扫描

unicornscan -mT -v -I [IP地址]/24:端口

Metasploit之扫描

msfconsole

search portscan(搜索出八个模块)

use auxiliary/scanner/postscan/tcp

show options(默认扫描端口1-10000)

set rhosts 地址段或地址

run

WEB漏洞扫描工具

nikto

对WEB服务器程序(目标网站)进行已知漏洞扫描

集成著名的WEB程序漏洞扫描插件

apt-get install nikto

漏洞类型:

image-20210331122822518

使用时加载不同的扫描模块,即前面的漏洞类型

nikto -host 192.168.3.44 -T(加载扫描策略) 23456789

skipfish

  • 与nikto等工具有相似的功能

  • 占用较低的CPU资源,运行速度比较快

apt-get install skipfish

也有具体扫描的模块

skipfish —checks 查看帮助以及对应漏洞类型

skipfish -o text http://192.168.1.101 -o输出到文件

在控制台中查看Issue found 1warn 2low(低危) 无详细信息

class7 Burpsuite暴力破解

wamp

  • wordpass omp/root
  • 数据库 phpadmin root/root

phpstudy

  • 数据库 phpadmin root/root
  • dvwa admin ?

环境搭建

相对于wampserver,phpstudy轻量级,适用于小型应用

wamp

同一端口配多个网站 则放到wamp64/www下 每个网站创建一个目录

网站主页对应为 www文件夹下的index.php

同一端口访问多个网站直接url加入子文件夹名

使用phpmyadmin进行配置数据库(IE打不开 不能进行后续操作) 默认 root/空 (本机数据库账密root/root)

账户->修改数据库用户密码 新建一个数据库(wordpress登录时需要)

不同端口搭建网站 配置httpd.conf(http协议进程) Listen 0.0.0.0:端口(ipv4) 设置不同端口号

配置httpd-vhosts.conf 修改端口和DocumentRoot

配置文件修改后 重启wamp的所有服务

dvwa

对dvwa/config下文件 config.inc.php进行修改

修改数据库名 数据库用户名 数据库密码

default_secutiry_level 修改安全等级为low

进入dvwa先进行安装 setup.php

对环境变量进行检查 若出现红色 进行相应修改 如修改php.ini相应值

创建数据库 Create Database

解决其他主机不能访问网站问题:

打开apache的httpd.conf httpd-vhosts.com

把Required all denied loacal改为 Require all granted

WPScan

专门扫描WordPress漏洞的黑盒子扫描器

可以通过插件/主题漏洞进行渗透

目录扫描

wpscan —url 检测到的WordPress

枚举用户

wpscan —url url —enumerate u

使用字典

wpscan —url url —enumerate u -P 字典路径

搜索主题

wpscan —url url —enumerate t(主题)

发现主题有漏洞

wpscan —url url —enumerate vt(主题)

注意:此处kali连不上物理机是因为防火墙问题(虚拟机不能ping物理机,物理机能ping虚拟机),关闭即可

CMS扫描

Content Manager System(内容管理系统) 即后台

cmseek

cmseek apt-get install cmseek

www.exploit-db.com 查看各CMS漏洞

用法: cmseek

输入网址进行检测CMS类型

burpsuite

PC机向服务器发送请求,服务器进行响应

burpsuite在客服端和服务器之间添加代理,用户请求不是直接发给服务器,被本地代理拦截。代理做完操作,再把包发送给服务器

服务器响应给代理,代理同意后再转发给客户端。正向代理

proxy模块

需要把包放行给服务器 forward

不想放行或不相关 drop

修改浏览器本地代理端口以及burp->proxy->options代理端口

最好使用不常用的端口 而不是web服务常用的8080

BP开启时需要抓包时 拦截开启(Intercept On) 不需要抓包时 拦截禁用;禁用时不影响上网行为

BP关闭时 若浏览器还设置本地代理 则无法上网

暴力破解

1.破解口令

抓到包后右键发送给Intruder(测试器)

对可变化的值设置$(先clear再add)

Attack type Sniper

字典中每一行填入password配合username逐条发送至服务器

Intruder->Payloads->Load 加载字典

Options 设置请求线程…

右上角start attack

返回结果能进行访问都是200

通过Length(响应长度)查看口令正确性

也可以根据服务器响应信息(错误提示)

Options->Match->Clear->Add 服务器返回错误提示 返回结果可以看到没有错误提示的信息

2.破解用户与口令

Intruder 对用户密码进行$选中

Attack type

  • Sniper针对的场景是只有一个变量

  • Battering ram 针对两个变量 但是两个变量(用户名和口令)共用一个字典

  • Pitchfork(鱼叉式) 用于两个变量(?多个) 两个字典

    但两个字典之间是相互对应的

    user1对应pass1 user2对应pass2 多余的舍弃 只按照最少的字典长度对服务器进行请求

  • ClusterBomb(交叉式)

    user1对所有pass进行遍历

    user2对所有pass进行遍历

    ….

按顺序加载字典 PayloadSet 加载两个字典

网络环境

即使在本机上做实验,也不要使用127.0.0.1

因为127.0.0.1不经过代理 使用私有ip地址代替回环地址抓包

教师机地址及服务端口

192.168.20.253:82

虚拟机设置为桥接后 设置同一网段即可

验证码在抓包本次请求一定要输对

在本次抓包时验证码是不改变的 对用户名和密码就可以进行暴力破解

Tomcat实验

如果需要自己搭建环境,使用低版本的tomcat7之前的(tomcat新版有登陆限制)

通过Tomcat中的大马进行RCE

扫描端口 开放远程连接端口3389

开启后建立账号并提权

远程连接到靶机提取本地管理员账号

远程cmd中进入QuarksPwDump.exe -dhl

可以得到本地账号密码的哈希值

使用网站在线破解md5或hashcat破解其本地管理员账号

Basic认证

Burp中Intercept Server Respones中勾选拦截从服务器到客户端的信息 显示服务器的响应包

401未认证 放行响应包后进行后续操作

抓到登录请求包中没有看到输入的账号密码 但实际已经包含在请求包基本认证basic中(见ppt)

使用base64编码处理 在Decoder中选择base64即可

对于认证中的信息进行爆破:

发送给intruder

把编码部分加上$

payload中选择custom iterator(自定义迭代)

position1 加载用户名字典

position2 输入连接符:
position3 加载口令字典

在payload processing中add Encode Base64-encode

并且取消勾选有效载荷编码:URL编码这些字符

option中线程一定要改成1

  • 本文标题:网络攻防
  • 本文作者:y4ny4n
  • 创建时间:2020-12-15 21:50:13
  • 本文链接:https://y4ny4n.cn/2020/12/15/网络攻防/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
此页目录
网络攻防