文章前言
可以发现的是有不少渗透测试工具都是用PowerShell编写的,特别是对于红队团队的活动,因为大多数现代Windows都有PowerShell,而且管理员通常不会限制普通用户访问PowerShell控制台,这给攻击者带来了很大的好处,特别是在蓝队不监视PowerShell使用情况下
PoshC2
工具介绍
来自Nettitude Labs和Dave Hardy的Ben Turner创建了一个基于PowerShell和C#的命令和控制工具,该工具为红队操作提供了许多优势,因为它包含各种"植入方式"和技术,且易于使用,帮助菜单提供了有关PoshC2功能的所有详细信息。
项目地址:https://github.com/nettitude/PoshC2
工具安装
安装此工具很简单,只需要执行以下命令即可:
代码语言:javascript复制./Install.sh
工具使用
创建项目
在使用该工具是我们首先需要首先创建一个项目,关于项目的操作指令如下所示:
代码语言:javascript复制[*] Usage: posh-project -n <new-project-name>
[*] Usage: posh-project -s <project-to-switch-to>
[*] Usage: posh-project -l (lists projects)
[*] Usage: posh-project -d <project-to-delete>
[*] Usage: posh-project -c (shows current project)
项目配置
之后使用以下命令进入配置界面:
代码语言:javascript复制posh-config
从上面可以看到配置项其实很多,包括域前置、Pushover_APITOken、Pushover_APIUser、SocketHost、PostgreConnectionString、项目数据库等,这里不一一去做介绍与尝试了~
启动服务
之后使用以下命令启动服务
代码语言:javascript复制posh-server
之后会生成许多可在红队评估期间使用的有效负载:
目标上线
之后将生产的恶意后门文件上传到目标主机或者通过主机上自带的下载工具下载恶意文件之后执行时会 ,下面以powershell为例做演示:
之后攻击主机上出现目标显示
启动控端
使用以下指令启动控制端程序:
代码语言:javascript复制posh -u <username
可以看到之前的上线的被控端
查看地址
PoshC2提供了众多的功能,我们可以通过在控制端输入"空格"的方式来查看所有可用的模块:
之后我们输入可用的会话编号,这里我们只有一个会话,所以直接输入1即可,之后会返回一个Powershell终端:
同时终端通过输入空格或关键指令的首字母可以进行模糊匹配,PoshC2提供的模块可以说是超级超级多:
同时终端也提供查询关键模块的使用方法:
例如查看IP地址:
是不是很好奇?输出去哪里了呢?输出就在服务端:
查看进程
代码语言:javascript复制ps
主机信息
代码语言:javascript复制get-computerinfo
屏幕截取
代码语言:javascript复制
代码语言:javascript复制get-screenshot
代码语言:javascript复制
键盘记录
代码语言:javascript复制get-keystrokes
查看记录信息:
信息如下(个人感觉这个功能并是不那么完美,至少没有记录到输入的主要信息,感觉更多的像是对操作的应用程序记录)
用户信息
代码语言:javascript复制get-userinfo
端口扫描
代码语言:javascript复制portscan
获取哈希
代码语言:javascript复制hashdump
枚举漏洞
PoshC2可以用于查看系统的脆弱性漏洞:
代码语言:javascript复制find-allvulns
查看模块
可以通过以下指令来查看可用的模块:
代码语言:javascript复制listmodules
权限提升
直接使用以下指令进行提权(很多时候不成功)
代码语言:javascript复制get-system
当然也可以使用MS系列提权以及UAC等系列,笔者这里目标系统为Windows 10所以较高提权很不友好~
代码语言:javascript复制invoke-ms16-032
权限维持
PoshC2还具有创建注册表运行键来维持权限的功能:
代码语言:javascript复制install-persistence
PoshC2将自动生成有效负载,并且该命令将在目标系统上执行以创建新服务
Windows中的服务:
当然,还有其他的方法,这里就不逐一演示了~
文末小结
PoshC2的主要好处是它使用PowerShell,因此它对植入物没有任何依赖性,就像用python编写的其他命令和控制工具一样,此外,它具有快速,可靠和易于使用的详细输出,绝对是任何红队运作的工具之一
相关链接
https://github.com/nettitude/PoshC2
https://poshc2.readthedocs.io/en/latest/index.html