后门编程(1)之双管道主动连接型

长时间不写博客就是容易懒,今天10月最后一天,写篇博客来结个尾。今天写的是关于如何编写windows后门程序,主要是涉及的技术是socket通信和管道。后门分为主动连接型和反向连接型,而根据使用的管道数又可以细分为双管道,单管道和零管道。今天讲的是双管道主动连接型后门的编写。

01

原理讲解

 1.1 主动连接型

主动连接型指的是后门程序作为服务端,换句话说被攻击者的服务器作为服务端,攻击者(黑客)作为客户端主动去连接后门程序,执行一系列的shell操作。服务器不一定是放在外网中,其实在内网中也是可以的。

从上图中可以看到后门程序需要监听指定端口,并可以接收外部的连接,这就涉及了socket服务端程序的编写,在windows上编写的步骤为:

  1. 初始化socket
  2. 创建TCP类型的socket
  3. 绑定指定端口,开始监听并接收连接

部分代码如下:

 1.2 管道技术

后门程序不仅需要接收外部的连接,还需要进行本地的shell操作,这样黑客在自己的电脑上就可以远程操作服务器的shell。这就涉及到进程间通信,采用的是管道技术。下面我把工作流程进行进一步细化,由于管道是单向的,因此这次使用双管道分别进行读操作和写操作。

大家可能奇怪为什么有两个管道,却只有一个socket,因为socket传输是双向的。上图的工作流程是这样的,首先黑客通过网络远程连接到后门程序,后门程序接收到socket传过来的指令,并通过读管道传给cmd.exe进程,进行操作,并把操作的结果通过写管道传给socket,最终传回黑客电脑。后门程序和cmd.exe建立管道通信的代码如下:

1.3 多线程

为了方便操作,我在后门程序中开启了两个线程,分别处理socket和管道的读写操作,部分代码如下:

02

效果演示

最后看一下运行效果,首先我们在本地启动后门程序,监听8009端口,然后在本地使用telnet连接后门程序,模拟黑客攻击的过程,当然你完全可以将后门程序放到公网中,这里只是方便演示。

这就是我们在E盘生成的后门程序,大家肯定会想,如果去掉这个黑窗口,不然不够隐蔽,大家先百度,很简单,在下一篇后门编程(2)我会讲一下。接着我在本地启动一个cmd.exe,也就是黑客端,不要和后门程序中启动的cmd.exe弄混了。在其中输入telnet命令,连接后门程序。下图是连接后门之前的cmd.exe的情况。

我们输入telnet 127.0.0.1 8009 后,开始发生变化。

路径切换到后门所在的地方了,我们也就是说我们可以在本机远程操作服务器上的shell了,执行dir命令,查看服务器上的文件。

完整的代码我放到 https://github.com/qiyeboy/LuLunZi 中的BackDoor文件夹中。

03

新书小广告

《Python爬虫开发与项目实战》基础篇 试读章节链接:

http://pan.baidu.com/s/1hrWEOYg

这本书包括基础篇,中级篇和深入篇三个部分,不仅适合零基础的朋友入门,也适合有一定基础的爬虫爱好者进阶,如果你不会分布式爬虫,不会千万级数据的去重,不会怎么突破反爬虫,不会分析js的加密,这本书会给你惊喜。

原文发布于微信公众号 - 七夜安全博客(qiye_safe)

原文发表时间:2017-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5456
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2577
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

31710
来自专栏杨龙飞前端

scrollto 到指定位置

2494
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6798
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4708
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2060
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2152

扫码关注云+社区