但是这不是重点,重点是作者详细的介绍了从qwinsta命令到windows API分析,然后再到powershell的开发,之前想表明powershell和.Net的关系,然后还可以借助.Net和其他的联系开发出更多适合场景的小工具之类的...这里可以用下面的代码查找符合关键词的对象和方法。...补充一个@xti9er提到的WMI对象: get-wmiobject|get-member 但这个不完整,详细的搜索可以这样: Get-WmiObject -List | Where-Object...##附 【1】http://www.harmj0y.net/blog/powershell/powerquinsta/ 原文 【2】http://www.harmj0y.net/blog/powershell.../powershell-and-win32-api-access/ Powershell and win32 API
基础命令 作用 命令 主机名 hostname 查询所有计算机名称 dsquery computer 查看配置及补丁信息 systeminfo 查看配置及补丁信息 wmic qfe get description...wmic product get name,version 查看服务信息 wmic service list brief 查看服务信息 sc query 网卡信息 ipconfig /all ARP 表...arp -a 路由表 route print 查询防火墙 netsh firewall share config 关闭防火墙 netsh advfirewall set allprofiles state...whoami /all 查看用户 wmic useraccount get /ALL /format:csv 当前权限 net localgroup administrators 在线用户 quser / qwinsta.../ query user 综合信息 net config Workstation ACL信息 get-acl (powershell) 查看共享 net share
-Class Win32_UserAccount //怎么绕,也可以用前面的特殊符号和环境变量 利用注册表 dir "Registry::HKEY_CURRENT_USER\Software\Microsoft...Dosfuscation Invoke-DOSfuscation //启动 TUTORIAL //开启模块 SET COMMAND whoami //加密你想执行的命令 关于cmd/powershell...平时会用到的一些命令 (1)主机信息 qwinsta //查看在线用户 wmic logicaldisk where DriveType...命令历史记录,如果命令用不起,可以查看powershell的txt %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline...\ConsoleHost_history.txt %appdata%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt 注册表
# 当前用户 quser # 查询登录用户,同 query user qwinsta...# 仅域控可执行,查询用户组列表 net group "$groupname" # 仅域控可执行,查询用户组成员 注:quser、qwinsta...其中query termserver命令存在问题,本地测试时与描述严重不符,无法列出信息。 3、操作记录 cmd 和 powershell v3 以下的操作记录无法长时间保存,仅限当前窗口。...列出当前主机详细网络信息 ipconfig /displaydns # 列出dns缓存信息 route print # 查询路由表...本地用户无法执行域命令查询域内容。
文章前言 进入到后渗透阶段就涉及到了提权,而提权的第一步就是信息收集,所以这个脚本因此而诞生~ 辅助脚本 windows提权用到的命令: systeminfo net user net user user1...caption,description,providername') #psd=os.popen('Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core...qwinsta=os.popen('qwinsta') for w in qwinsta: print(w,file=open('save.txt','a')) print...net_localgroup_Administrators: print(administrator,file=open('save.txt','a')) print('[+]用户自动登录注册表中的任何内容...netsh dump') for ump in netsh_dump: print(ump,file=open('save.txt','a')) print('[+]注册表中的任何密码
$ net user # 查询用户列表 $ net localgroup Administrators # 本地管理员 $ query user || qwinsta...process list brief # 其它信息 $ netstat -ano # 查询端口列表 $ net share # 查询本机共享列表 $ route print # 路由表...$ arp -a # ARP表 $ ipconfig /displaydns # 查看dns缓存 $ netsh firewall show config # 查询防火墙相关配置...PowerView PowerView是一款依赖powershell和WMI对内网进行查询的常用渗透测试脚本,集成在powersploit工具包中,是一个收集域信息很好用的脚本。...# 获取域内所有机器的详细信息 Get-NetShare # 获取当前域内所有的共享信息 Get-ADObject # 获取活动目录的对象
workstation #查看本机用户列表 net user #获取本地管理员信息 net localgroup administrators ##查看当前在线用户 query user || qwinsta...route print #可用接口的ARP缓存表。...hkey_local_machine\system\currentcontrolset\control\terminal server\winstations\RDP-Tcp" /v portnumber 在命令行环境中执行注册表查询语句...run winenum powershell 信息收集 默认powershell是不能执行脚本的,获取脚本策略之后才能使用: get-executionpolicy 更改执行策略必须以管理员身份执行才可以.../powersploit/Recon/xx.ps1 #命令执行 powershell_execute Get-NetDomain #获取当前的域名称 Get-NetDomain #返回所有域内成员的详细信息
可以使用此变量在命令和脚本中表示 FALSE,而不是使用字符串”false”。如果 该字符串转换为非空字符串或非零整数,则可将该字符串解释为 TRUE。...可以在命令和脚本中使用此变量表示 NULL,而不是使用字符串”NULL”。 如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为 TRUE。...ConvertTo-Html: 将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。...Export-Csv: 将 Microsoft .NET Framework 对象转换为一系列以逗号分隔的、长度可变的 (CSV) 字符串,并将这些字符串保存到一个 CSV 文件中。...Format-Wide: 将对象的格式设置为只能显示每个对象的一个属性的宽表。 Get-Unique: 从排序列表返回唯一项目。 Group-Object: 指定的属性包含相同值的组对象。
PowerShell是一个面向对象的语言,在申明变量的时候不强制要求申明数据类型,使用$开头来申明变量即可。...数据类型转换 关于默认数据类型转换,PowerShell和C#的行为有所不同。PowerShell会根据第一个变量的类型作为目标类型,然后将运算后面的联系转换为第一个类型。...Get-XXX命令,很多都是返回对应类型的Array,比如Get-Process....如果我们要定义一个集合,那么可以使用”@(对象1,对象2,对象3…)”的格式申明集合。...比如我们创建一个员工和部门的Hashtable,命令如下: $a=@{Devin="IT";Edward="Finance";Jeneen="Sale"} 使用keys属性可以获得哈希表的Key列表,使用
称为管道元素)将其输出逐项传递到管道中的下一个命令 1.传统的Cmd管道是基于文本的,但是Powershell是基于对象 2.管道中传递是对象可以作为下一个cmdlet的参数 3.它可以减少使用复杂命令的工作量...ConvertTo-Html: 将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。...Format-Wide: 将对象的格式设置为只能显示每个对象的一个属性的宽表。 Get-Unique: 从排序列表返回唯一项目。 Group-Object: 指定的属性包含相同值的组对象。...$PsVersionTable 包含一个只读哈希表,该哈希表显示有关在当前会话中运行的 Windows PowerShell 版本的详 细信息。...可以自动将其转换为布尔类型的值,转换规则如下: 1) 任何非零值将会被转换为$true 2) 非零长度的字符串将会被转换为$true 3) 至少有一项的集合会返回$true 4) 其他对象将会被转换成$
workstation #查看本机用户列表 net user #获取本地管理员信息 net localgroup administrators ##查看当前在线用户 query user || qwinsta...route print #可用接口的ARP缓存表。...hkey_local_machine\system\currentcontrolset\control\terminal server\winstations\RDP-Tcp" /v portnumber 在命令行环境中执行注册表查询语句...powershell 信息收集 默认powershell是不能执行脚本的,获取脚本策略之后才能使用: get-executionpolicy 更改执行策略必须以管理员身份执行才可以,否则报错注册表安全问题...#调用本地ps脚本 powershell_import /usr/share/windows-resources/powersploit/Recon/xx.ps1 #命令执行 powershell_execute
④powershell命令收集 命令:cmd输入powershell -> powershell “get-wmiobject -class win32_product | select-object...查看本地管理员下面的用户和信息,枚举域信息 命令:query user || qwinsta 查看在线用户 9.列出或断开本地计算机与所连接的客户端之间的会话 命令: net session 10....查看端口列表 命令:netstat -ano 11.查看系统相信信息(补丁列表) 命令:systeminfo wmic命令:wmic qfe get caption,description,hotfixid...,installedon 12.查询本机共享列表 命令:net share wmic命令:wmic share get name,status 13.查询路由表及所有可用接口的arp缓存表 命令:...0 0x02查询当前权限 1.查询当前权限 命令:whoami 存在三种情况:普通用户、管理员用户、域用户 2.获取域sid 命令:whoami /all 3.查询指定用户的详细信息 命令:net
-ForegroundColor Green 3.Write-Output 命令 - 发送指定对象在管道中的下一个命令。 描述: 如果命令为最后一个命令在管道中,对象显示在控制台中。...Out-String: 将对象作为一列字符串发送到主机。 Out-GridView: 将输出发送到单独窗口中的交互表。...$io = Get-History # 与 Linux中的history命令相似 Out-Host -InputObject $io 3.Out-String 命令 - 将输入对象转换为字符串 描述...Format-Table 将对象转换为格式化记录流(由视图定义中的数据驱动),Out-Host并将格式化记录转换为主机接口上的调用。...Format-Wide 命令 - 将对象的格式设置为只能显示每个对象的一个属性的宽表 基础示例: # Example 1: 格式化当前目录中的文件名 Get-ChildItem | Format-Wide
Step2 打开PowerShell,输入以下命令,开始计算SHA-256: Get-FileHash "C:\Users\Lenovo\OneDrive\桌面\sha256.txt" Step3 返回...= new BASE64Encoder(); String result = base64.encode(hash); // 将二进制SHA-256转换为十六进制字符串...); } } } 2.2.1 代码分析 首先,使用 MessageDigest.getInstance("SHA-256") 获取 SHA-256 的消息摘要对象...将字符串 “helloworld” 编码为字节数组,并使用 SHA-256 消息摘要对象计算其哈希值。...【结果2】的BASE64计算输出则与使用PowerShell计算相同 ,因为在PowerShell中使用的是 Get-FileHash 命令来计算文件的 SHA-256 哈希值,该输出对应java【结果
因此我们可以通过别名覆盖任意powershell命令,因为别名的优先级最高。 函数:如果没有找到别名会继续寻找函数,函数类似别名,只不过它包含了更多的powershell命令。...命令:如果没有找到函数,控制台会继续寻找命令,即cmdlet,powershell的内部命令。 脚本:没有找到命令,继续寻找扩展名为“.ps1”的Powershell脚本。...使用类似但是不同的是它传递的数据不是文本而是对象; 管道中的每个命令(称为管道元素)将其输出逐项传递到管道中的下一个命令 传统的Cmd管道是基于文本的,但是Powershell是基于对象。...可以在命令和脚本中使用此变量表示 NULL,而不是使用字符串”NULL”。 如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为 TRUE。...$PsVersionTable 包含一个只读哈希表,该哈希表显示有关在当前会话中运行的 Windows PowerShell 版本的详 细信息。
secretsdump.py:实现了多种不需要在远程主机上执行任何代理的情况下转储机密数据的技术。...对于SAM和LSA Secrets(包括缓存的凭据),我们尽可能的尝试从注册表中读取,然后将hives保存在目标系统(%SYSTEMROOT%\Temp目录)中,并从那里读取其余的数据。...DSInternals PowerShell DSInternals PowerShell模块提供了构建在框架之上的易于使用的cmdlet。...命令如下: esedbexport -m tables /root/Desktop/NTDS/ntds.dit 这将创建一个名为“ntds.dit.export”的新目录,其中包含提取的表。...现在我们来下载ntdsxtract,这是一个取证工具,能够为我们从NTDS.dit文件中,提取与用户对象,组对象,计算机对象的相关信息以及删除对象。 ?
C:\Users\asddf> $current Path ---- C:\Users\asddf 如果知道这个命令返回的实际是.NET对象的话,我们还可以更进一步...,比方说直接访问这个对象的Path属性,获取值。...C:\Users\asddf> $current.Path C:\Users\asddf 还有一个命令Get-Member,别名是gm,用于获取对象的属性。...在这里,2代表错误、3代表警告、4代表信息、5代表调试信息。n>和n>>运算符就是用于将对应级别的输出重定向到文件的,这两者的区别和前面相同。n>&1将对应级别的输出和标准输出一起重定向到文件。...比方说,如果我们想了解用Powershell编写类,就可以使用下面的命令。如果想在浏览器中浏览器在线版本,加上-online参数即可。
查看和下载文件 创建新文件 权限提升 beachhead ManageEngine服务器上不需要权限提升,因为该漏洞通过web shell系统级权限执行命令,后来在入侵过程中他们转储了一个用户的凭据...该注册表值在系统中不存在,这通知攻击者WDigest在beachhead上被禁用 22秒后威胁参与者通过webshell使用以下命令启用了WDigest: powershell.exe Set-ItemProperty...LSASS,威胁参与者通过tasklist命令列出正在运行的进程,并使用输出中LSASS的PID传递给凭据转储命令 "C:\windows\System32\rundll32.exe" C:\windows...转储中提取密码的帐户执行 服务发现 威胁参与者使用web shell fm2.jsp在主机上执行他们的初始发现,下面是发送到webshell的GET请求,发现命令传递给cmd参数,该参数作为PowerShell...并将请求转发到127.0.0.1:3389,这导致参与者能够通过SSH隧道RDP到beachhead服务器 脚本FXS.bat多次重复使用,以建立与各种主机的连接,然后参与者将环回地址替换为各种内部主机
,将结果输出到文本文件 wmic product get name,version 利用powersHELL 命令,收集软件的版本信息 powershell "Get-WmiObject -class...,查看本机用户列表 net user net localgroup administrator 查看当前在线用户 query user || qwinsta 9.列出或断开本地计算机与所连接的客户端之间的会话...Description ,HotFixID,InstalledOn 12.查询本机共享列表 net share wmic share get name,path,status 13.查询路由表及所有可用接口的...Arp缓存表 route print arp -a 14.查询防火墙相关配置 1.关闭防火墙 windows server 2003及之前的版本: netsh firewall set...IP段、所在域 nbtstat –A ip netbios 查询 netstat –an/ano/anb 网络连接查询 route print 路由表
好像关于Powershell说的已经差不多了,所以最后一篇文章就来使用Powershell写一些脚本,帮助我们完成一些日常工作。 文件管理 常用命令 先来看看常用的文件管理命令。...知道了简写,我们就可以将Powershell的工作目录切换到注册表内。...,我们就可以利用Get-Item命令获取注册表的值了。...首先回到上面那步工作表,因为如果要操作数据,需要在工作表对象上进行操作。...$worksheet = $workbook.Worksheets.Item(1) 要操作数据,调用工作表对象的Cells属性即可。
领取专属 10元无门槛券
手把手带您无忧上云