zoukankan      html  css  js  c++  java
  • 螣龙安科笔记:内网渗透测试(三)

    经过前两篇文章的介绍,相信大家对于内网渗透测试的一些基础知识已经有了足够的了解,这篇文章就将带你一起来了解内网渗透测试的全过程。

    (四)内网渗透流程

    1.渗透工具准备

    1.1扫描工具

    1.1.1主动扫描工具

    web应用漏洞扫描器:用于web项目的安全测试工具,扫描网站所有url,自动测试是否存在各种类型的漏洞。如:AWVSappscan

    综合漏洞扫描器:集合了多种功能的漏洞扫描器。如Fux iscanner,具有如下功能:漏洞检测和管理,验证测试程序,IT资产发现和管理,端口扫描器,子域扫描器,Acunetix扫描仪集成Acunetix API

    巡航扫描系统:巡航扫描系统可以通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表。如巡风。

    系统和应用层漏洞的扫描器:提供完整的电脑漏洞扫描服务, 并随时更新其漏洞数据库。如Nessus

    自动化sql注入工具:简单来说,这就是一个sql注入攻击的工具。如sqlmap

    端口扫描器:用于探测服务器或主机开放端口情况的工具。如masscan(号称最快的端口扫描器)。

    1.1.2被动扫描工具

    被动漏洞扫描工具:被动分析是指一个漏洞扫描工具在扫描漏洞时不会对现有系统产生任何破坏。

    1.2渗透框架

    主要有pocsuite、溯光等漏洞利用和测试框架。

    1.3信息收集

    主要有wydomainbit4woo等工具,扫描端口,收集子域。

    1.4信息泄露

    利用lijiejiesvnhack等平台来利用泄露的信息来利用漏洞。

    2.代码审计

    2.1PHP

    2.1.1SQL注入

    未加过滤拼接SQL、宽字节注入、注意二次注入。

    2.1.2逻辑漏洞

    安装相关:

     安装后未自动删除目录或加锁导致可再次重装

     通过文件删除或移动漏洞操作锁文件,来达到重装

     安装展示页被加锁,但实际上处理安装业务的文件没有则可绕过重装

     重装时一些内容会被写进php的配置文件里,如果知道格式,可以拼接执行php代码

     加了锁,但只是js跳转,并没有exitdie 结束代码,导致可绕过重装

    2.2JAVA

    2.2.1反序列化

    搜索readObject-->使用Serializable 接口-->使用反序列化工具类-->使用 alibaba  fastjson-->shiro rememberMe-->XSTREAM-->Jackson -->dubbo

    2.2.2文件读取

    使用 File 相关工具类,使用 URLConnection 没有指明协议时可用 file://etc/passwd

    2.2.3命令执行

    使用 Runtime.exec-->使用 ProcessBuilder-->使用命令行相关工具类-->Spel ognl 表达式可控

    2.2.4SQL注入

    ORM框架:Mybatis 使用 $-->hibernate 拼接查询

    jdbc:使用 statement

    3.信息收集

    3.1业务相关

     github泄露

     网盘泄露

     敏感路径扫描

     QQ群文件泄露

    3.2域名相关

    3.2.1域名商

     找域名商漏洞,越权影响目标域名

     欺骗域名商客服,影响目标域名

     社工账号,篡改解析地址

    3.2.2DNS

     渗透DNS服务器,和社工DNS服务商

     DNS域传送漏洞

     子域名接管漏洞

    3.2.3CDN

    3.2.3.1找真实IP地址

     censys.io 等网络空间引擎查找关键字

     SSRF漏洞

     服务器信息泄露

     探测子域名IP

     cloudflare(HatCloud)

     看邮件发送者源IP

     APP客户端

     DOS CDN可能会成回源模式

    3.2.3.2破解CDN服务账号

    3.2.4WHOIS

     注册者邮箱

     手机号

     地址

     注册者名称

     DNS

    3.2.5子域名

     搜索引擎

     暴力破解

     网页爬虫

     DNS查找

    3.3服务器主机

    3.3.1端口

    nmap/zenmap:nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。

    3.3.2系统识别

     nmap-O

     大小写敏感

     TTLTTLTime To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。

     banner

     信息泄露

     特殊端口 如(22 / 139 / 445 / 1433 / 3389

     HOSTNAME

    3.3.3相关资产

    同服网站   备案反查

    3.3.4C段业务

    可能会有其他相关业务,如交换机、机房后台、监控系统等

    3.3.5指纹识别

     特有文件MD5:一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

     包含字符

     cookie:是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息

     响应头

    4.Bypass

    4.1Upload

    4.1.1操作系统特性

     shell.php后加上%80%99,系统不识别这个范围内的字符

     Windows会去除尾部的. shell.php

     shell.php::$DATA

    4.1.2处理方法

    4.1.2.1处理方式

    拦截:不会通过应用

    过滤:会经过应用,但会在其中的一个环节被替换为一些安全的字符

    4.1.2.2检查部分

     文件扩展名

     文件contenttype

     文件内容

     图片是否完整

    4.1.3一些其他绕过办法

     双上传

     boundary 加一些字符

     content-disposition中添加字符

     超长文件名

     修改content-length

     文件名中夹杂小语种或非英语字符

    4.2XSS

    4.2.1常用操作

     大小写绕过

     DOM XSS无视后端过滤

     替换为HTML实体编码

     AJAX中的响应为JSON可以考虑使用Unicode编码

     字符串拼接

     字符串反转

     利用WEB容器特性

    4.2.2限制长度

     多段提交 part1:<script>/*   part2:*/a=1</script>

     <svg/onload=alert(1)>

     短域名

     短连接 //t.cn/xxxx

    4.2.3<>被过滤

    在可执行事件标签中或 script内无需绕过

    4.3SQL注入的bypass方法

    1.添加一个换行符在第一行

    ```

    GET /login HTTP/1.1

    Host: favoritewaf.com

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

    ```

    2.用小写的方法(Apache)

    ```

    get /login HTTP/1.1

    Host: favoritewaf.com

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

    ```

    3.在方法之前写加一个TAB

    ```

    GET /login.php HTTP/1.1

    Host: favoritewaf.com

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

    ```

    4.使用绝对URL

    ```

    GET http://localhost/login.php HTTP/1.1

    Host: favoritewaf.com

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

    ```

    5.HOST

    ```

    GET /login.php HTTP/1.1

    Host: favoritewaf.com

    Host: localhost

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

    ```

    6.小写HOST

    ```

    GET /login.php HTTP/1.1

    host: favoritewaf.com

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

    ```

    7.multipart插入脏数据

    ```

    Content-Type: multipart/form-data; boundary=x

    --x

    Content-Disposition:

    test1;

    --x

    test2;

    --x--

    test3;

    name="hello"

    world

    ```

    5.弱点检测

    5.1常见漏洞

    5.1.1文件操作

    5.1.1.1文件上传

     %00截断

     畸形文件名

     目录穿越

     文件头绕过

     修改上传类型 Content-Type

     双文件上传

     超长截断:长文件名、长Content-Disposition、上传htmlhtm 可以 XSS

     特殊文件:上传htmlhtm 可以 XSSswf 可以XSSpdf chrome 里可以做跳转、cerasajspxphp5phtml等可能会被当做动态语言解析、.htaccess .user.ini  web.config web.xml  

     无大小和次数限制:无限上传制造垃圾数据堵死硬盘

     imagemagick命令执行

    5.1.1.2文件读取

    读取系统敏感文件 如配置文件

    5.1.1.3文件包含

    可读取文件或代码执行

    5.1.1.4文件删除

    删除配置文件可破坏网站    删除安装锁可重装

    5.1.2代码执行

    5.1.2.1表达式

    freemarker   OGNL    Spel     jsel    eval

    5.1.2.2非表达式

    1.php

    assert      

    call_user_func() / call_user_func_array()

    preg_replace()

    create_function()

    array_map()

    array_filter()

    usort() / uasort()

    反序列化

    php 源文件拼接写入

    2.java

    反序列化

    远程 jar 加载

    反射机制

    jsp 源文件拼接写入

    5.1.3SSRF

    5.1.3.1利用姿势

    1.http/s协议:

    获取真实IP

    内网主机 / 端口探测

    攻击redismemcache

    2.file协议:

    读取文件

    5.1.3.2绕过

    IP换成域名

    IP换成10进制

    302 跳转

    5.1.4无恶意特征的漏洞

    1.整数溢出:数字超出限定大小则会为负数。如:在购买商品时填写超长数字,造成溢出,最终乘以金额变为负数

    2.并发修改数据(如提现)

    3.网站重装

    4.未授权访问

    5.水平与垂直越权

    6.JSONP劫持

    7.密码重置

    8.点击劫持

    5.2通用漏洞

    5.2.1WEB

    5.2.1.1Java

    1.struts2

    S2-001 ---  WebWork 2.1 (with altSyntax enabled), WebWork 2.2.0 - WebWork 2.2.5, Struts 2.0.0 - Struts 2.0.8

    S2-003 --- Struts 2.0.0 - Struts 2.0.11.2

    S2-005 --- Struts 2.0.0 - Struts 2.1.8.1

    S2-007 --- Struts 2.0.0 - Struts 2.2.3

    S2-008 --- Struts 2.1.0 - Struts 2.3.1

    S2-009 --- Struts 2.0.0 - Struts 2.3.1.1

    S2-012 --- Struts Showcase App 2.0.0 - Struts Showcase App 2.3.13

    S2-013 --- Struts 2.0.0 - Struts 2.3.14

    S2-015 --- Struts 2.0.0 - Struts 2.3.14.2

    S2-016 --- Struts 2.0.0 - Struts 2.3.15

    S2-019 --- Struts 2.0.0 - Struts 2.3.15.1

    S2-029 --- Struts 2.0.0 - Struts 2.3.24.1 (except 2.3.20.3)

    S2-032 --- Struts 2.3.20 - Struts Struts 2.3.28 (except 2.3.20.3 and 2.3.24.3)

    S2-033 --- Struts 2.3.20 - Struts Struts 2.3.28 (except 2.3.20.3 and 2.3.24.3)

    S2-037 --- Struts 2.3.20 - Struts Struts 2.3.28.1

    S2-045 --- Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10

    S2-046 --- Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10

    S2-048 --- Struts 2.3.x with Struts 1 plugin and Struts 1 action

    S2-052 --- Struts 2.1.2 - Struts 2.3.33, Struts 2.5 - Struts 2.5.12

    S2-053 --- Struts 2.0.1 - Struts 2.3.33, Struts 2.5 - Struts 2.5.10

    S2-057 --- Struts 2.0.4 - Struts 2.3.34, Struts 2.5.0 - Struts 2.5.16

    2.spring

    Spring-data-commons 代码执行

    Spring MVC 目录穿越漏洞

    Spring 视图注入漏洞

    spring-messaging远程代码执行

    Spring WebFlow 远程代码执行

    spring-tx.jar 反序列化

    spring-security-oauth2 RCE

    Spring Cloud Config Server 任意文件读取漏洞(CVE-2019-3799

    Springboot swagger 控制台未授权

    Spring Boot Actuator 未授权访问

    5.2.1.2PHP

    1.thinkphp

    5.x:多个代码执行

    3.x:代码执行    SQL注入

    日志泄漏:/App/Runtime/模块名/Log[s]/__.log

      /Application/Runtime/Log[s]/__.log

      /Runtime/Log[s]/__.log

    缓存getshell

    2.yii

    3.Laravel

    5.2.2服务器

    1.nginx0.8.* 版本以下有解析漏洞 e.g:1.jpg/.php  1.jpg%00x.php

    2.apache:有解析漏洞 e.g:1.php.xx

       HTTP 2.0 拒绝服务

       CVE-2017-15715 解析漏洞

    3.weblogic

    反序列化:CVE-2015-4852

      CVE-2016-0638

      CVE-2016-3510

      CVE-2017-3248

      CVE-2018-2628

              CVE-2018-2893

      CVE-2018-3252

      CVE-2018-3191

      CVE-2018-3245

    4.tomcatCVE-2017-12615 远程代码执行

     session 注册

     本地提权

    5.websphereWebsphere8.5

            Websphere6-7

    后台未授权,登录后可部署WAR

            SOAP服务有反序列化

            弱口令:admin / password

    5.3常见服务弱点

     21 / FTP

    匿名/暴力破解

    拒绝服务

     22 / SSH:暴力破解

     23 / telnet

    弱口令 / 暴力破解

     161 / snmp:弱口令

     389 / ladp

    匿名访问

    ladp注入

     443 / sslopenssl心脏出血

     445 / smb

                    win10拒绝服务

    永恒之蓝RCE

     875 / rsync:匿名访问

     1433 / mssql:暴力破解

     1521 / oracle:暴力破解

     2601 / zebra

     3128 / squid

     3306 / mysql

    RCE

    hash破解

    waf绕过

    general_log_file getshell

    提权

     3312 / kanglegetshell

     3389 / rdp

    shift 放大镜 输入法绕过 guest用户

    永恒之蓝(ESTEEMAUDIT)

    ms12-020

     4440 / rundeck

     4848 / glassfish

    文件读取

    GlassFish2 / admin:admin

                    GlassFish3,4 / 如果管理员不设置帐号本地会自动登录,远程访问会提示配置错误

     5432 / PostgreSQL

    RCE

    默认账号postgres

    参考

     5672,15672,4369,25672  / RabbitMQ

     5900 / VNC

     5984 / CouchDB

     6082 / varnish CLI 未授权

     6379 / redis

    Redis未授权:

    ssh publickey

    crontab

    webshell

    反序列化

    开机自启文件夹写bat

     7001,7002 / WebLogic

    默认弱口令:weblogic/weblogic ,weblogic/welcom ,weblogic/welcom1,weblogic1/weblogic

    反序列:CVE-2018-2628

     9200,9300 / elasticsearch

    CVE-2015-1427

                    CVE-2018-17246

     9043 / WebSphere

    Websphere8.5

    Websphere6-7

    后台未授权,登录后可部署WAR

    SOAP服务有反序列化

    弱口令:admin / password

      11211 / memcache

    未授权

    UDP反射

     27017,27018 / Mongodb

    未授权

    注入

                    phpMoAdmin RCE

     50000 / SAPSAP命令执行

     50070,50030 / hadoop

    未授权

    命令执行

    5.后渗透与持续渗透

    5.1权限维持与提升

    5.1.1提权

    1.Windows

    一般情况:pr ChurrascokelongIIS6upmimikatz、第三方cmd、第三方netvbs、读hashmsf

    找未安装补丁的提权漏洞

    通过高权应用的RCE LCE提权,如:mssqlOracle

    2.Linux

    通过高权应用

    根据内核版本找exp

    5.1.2维持

    1.信息收集:

           保存用户bash history

           netstat -an 查看端口连接情况

           /etc/passwd /etc/shadow 用户相关信息

           crontab 里的定时任务

           系统变量

            lastlog & last  & who /var/log/wtmp 分析登录频次

            用户根目录的文件

            /etc/hosts 中的映射

            /.ssh/

            查看数据库SQL日志

            查看WEB服务运行日志

    2.后门:

           shift 后门

           Windows $ 隐藏用户

           开机自启执行后门

           替换带有后门的敏感程序 如:ssh / mstsc

           注册表

           dll 劫持

           开启代理

    5.2持续渗透和一些技巧

    5.2.1得到子服务器权限后

    1.探测内网存活主机/服务 的指纹信息

    2.ARP劫持流量

    3.找到该服务器与其他服务器的关联(如:已得到redis服务器权限  web服务器会从redis中取出数据反序列化 则可以篡改redis中的数据以获取web服务器权限)

    5.2.2得到域名解析权后

    指向到反代至目标的服务器,记录GET POST请求日志,分析特殊URL和登录后台的POST 请求

    5.2.3找到XSS后

    1.如果是社交类网站,尝试寻找CSRF制造蠕虫

    2.通过其他社交网站的JSONP漏洞,探测管理员的个人信息

    3.打到管理员cookie后通过附带 Cookie 不断请求后台以保持会话不被销毁

    4.根据浏览器、flash、等情况进行浏览器攻击。如:执行代码、种rootkit

    5.canvas 截图页面

    5.2.4得到邮箱地址后

    1.独立邮件系统可找公开漏洞攻击

    2.发送测试邮件探测对方使用邮箱系统:通过挖掘相关邮箱系统漏洞进行攻击

    3.找到服务器、CDN、域名、DNS等服务商,伪造钓鱼邮件欺骗管理员登录

    4.发送含有后门的附件(如:pdfExcelwordrar的代码执行漏洞)

    5.通过社工库或搜索引擎人肉搜索得出密码后尝试登陆邮箱

    5.2.5得到邮箱权限后

    1.分析/劫持邮箱收信

    2.个人邮箱:

              搜搜:password、找回密码、重置密码、忘记密码等关键字

    找服务器、CDN、域名、DNS等服务商的邮件,如果无法登陆尝试重置等操作

    找到有关地理位置软件的邮件

    淘宝(收货地址)

    京东(收货地址)

    支付宝(收货地址)

    Apple账号(可定位)

    各手机大厂(手机定位)

    找发件箱中的原始图片(找exifGPS定位)

    3.企业邮箱:

    VPN相关邮件 可内网渗透

    OA,ERP,SCM,CRM,BRP,OMS,WMS相关系统邮件

    Git,SVN,自动化测试相关邮件

    搜索关键字:password、密码、19217210. 等关键字

    5.2.6引入了外部资源

    1.搞定外部网站

    2.如果是JS 可以考虑XSS攻击

    3.IMG LINK 可以401认证钓鱼

    4.IFRAME bgsound EMBED source object等可以挂可执行文件或跳转钓鱼页

    5.2.7找后台

    1.一般在后台添加友联时会展示logo图片,如果可以填写远程URL 可以尝试和站长沟通交换友联,添加成功后,对方则会发起一个refer为后台的请求到你的LOGO

    2.收集网站名简写、英文名、邮箱前缀等 于 adminmanagesystemlogin等常见单词组合请求

    3.IIS 短文件名漏洞

    4.Windows 下的 >> 特性

    5.找列目录漏洞

    6.XSS

    7.收集子域名资产及其C段端口

    8.二级域名 如:admin.xxx.com

    9.google fofa censys等引擎搜索关键字

    10.爬虫爬取所有链接 提取出目录部分 按目录层级穷举

    5.2.8绕过验证码

    1.只请求一次验证码,然后用同样的验证码暴力破解

    2.知道验证码在session中的参数,找类似 Tomcat example session重置的漏洞填充同一验证码

    3.云打码平台识别

    4.自己训练OCR识别

    5.3社会工程学技巧

    5.3.1社交搜索

    1.查看注册的网站:0xreg reg007

       知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或html中找到未被打码的信息

       可以从这些方面判断用户是否注册过:

    找回密码    输入账号,如果进入下一步了则该账号存在

    登录           输入账号和密码,如果提示密码错误,则表示该用户已存在

    注册           填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册

    2.知道QQ

      通过QQ邮箱搜索支付宝、淘宝账号

      去腾讯微博搜索

              通过微信搜索

      查看QQ空间:通过说说、留言、日志找到其好友

      知道手机号:搜索QQ、微信、钉钉等社交账号

            在比较火的一些APP和网站上注册或忘记密码来判断是否注册过账号

            查询支付宝账号,尝试输入常见姓氏获取名字

      通过对方的职业、兴趣找到该领域知名度较高的社交网站反查

      根据在QQ空间、朋友圈等动态用百度识图识别照片,在微博、insTwitterfb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选

      留意社交动态:发布时间线

       使用什么客户端 iPhone Android还是浏览器

       注意每一条链接  / 图片 / 视频

       从最早发布的动态看起,会有很大收获

     一般得到一个账号的密码就相当于得到了其他账号的密码

     一般人不同账号的用户名都是相同或相近的

     一般人的社交账号头像用的都是一样的

    5.3.2尝试破解社保、公积金账号:大部分信息可以用来生成密码字典

    介绍到这里,内网渗透测试的基本流程就介绍完了。总而言之,内网渗透测试是尽可能模拟出内网渗透攻击的真实过程,以此来尽可能避免在实战中遭遇攻击。

    在网络安全领域,我们与敌手采取的手段往往都很相似,而真正决定输孰是孰非的是我们与敌手的恶意判断。因而真正的攻与防不在于手段与方式,而在于人心。

  • 相关阅读:
    LeetCode456. 132模式
    LeetCode455. 分发饼干
    LeetCode454. 四数相加 II
    LeetCode453. 最小移动次数使数组元素相等
    matchMedia 媒体查询结果
    异常捕获
    常用xpath选择器和css选择器总结
    python-爬虫中的extract()
    Python应用前景广阔,怎么学才能快速上手?
    Python 为什么要有 pass 语句?
  • 原文地址:https://www.cnblogs.com/yhsaq/p/12980796.html
Copyright © 2011-2022 走看看