经过前两篇文章的介绍,相信大家对于内网渗透测试的一些基础知识已经有了足够的了解,这篇文章就将带你一起来了解内网渗透测试的全过程。
1.1.1主动扫描工具
1.1.2被动扫描工具
被动漏洞扫描工具:被动分析是指一个漏洞扫描工具在扫描漏洞时不会对现有系统产生任何破坏。
主要有pocsuite、溯光等漏洞利用和测试框架。
主要有wydomain、bit4woo等工具,扫描端口,收集子域。
利用lijiejie、svnhack等平台来利用泄露的信息来利用漏洞。
2.1.1SQL注入
未加过滤拼接SQL、宽字节注入、注意二次注入。
2.1.2逻辑漏洞
安装相关:
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.2.1域名商
3.2.2DNS
3.2.3CDN
3.2.4WHOIS
3.2.5子域名
3.3.1端口
nmap/zenmap:nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。
3.3.2系统识别
3.3.3相关资产
同服网站 备案反查
3.3.4C段业务
可能会有其他相关业务,如交换机、机房后台、监控系统等
3.3.5指纹识别
4.1.1操作系统特性
4.1.2处理方法
4.1.2.1处理方式
拦截:不会通过应用
过滤:会经过应用,但会在其中的一个环节被替换为一些安全的字符
4.1.2.2检查部分
4.1.3一些其他绕过办法
4.2.1常用操作
4.2.2限制长度
4.2.3<>被过滤
在可执行事件标签中或 script内无需绕过
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.1.1文件操作
5.1.1.1文件上传
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
内网主机 / 端口探测
攻击redis、memcache等
2.file协议:
读取文件
5.1.3.2绕过
IP换成域名
IP换成10进制
302 跳转
5.1.4无恶意特征的漏洞
1.整数溢出:数字超出限定大小则会为负数。如:在购买商品时填写超长数字,造成溢出,最终乘以金额变为负数
2.并发修改数据(如提现)
3.网站重装
4.未授权访问
5.水平与垂直越权
6.JSONP劫持
7.密码重置
8.点击劫持
5.2.1WEB
5.2.1.1Java
1.struts2
2.spring
5.2.1.2PHP
thinkphp:
5.x:多个代码执行
3.x:代码执行 SQL注入
日志泄漏:/App/Runtime/模块名/Log[s]/年_月_日.log
/Application/Runtime/Log[s]/年_月_日.log
/Runtime/Log[s]/年_月_日.log
缓存getshell
5.2.2服务器
1.nginx:0.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.tomcat:CVE-2017-12615 远程代码执行
session 注册
本地提权
5.websphere:Websphere8.5
Websphere6-7
后台未授权,登录后可部署WAR包
SOAP服务有反序列化
弱口令:admin / password
5.3常见服务弱点
21/ FTP:
匿名/暴力破解
拒绝服务
22/ SSH:暴力破解
23/telnet: 弱口令 / 暴力破解
161/ snmp:弱口令
389/ ladp:
匿名访问
ladp注入
443/ ssl:openssl心脏出血
445/ smb:
win10拒绝服务
永恒之蓝RCE
875/ rsync:匿名访问
1423/ mssql:暴力破解
1521/ oracle:暴力破解
3306/ mysql:
RCE
hash破解
waf绕过
general_log_file getshell
提权
3312/ kangle:getshell
3389/ rdp:
shift 放大镜 输入法绕过 guest用户
永恒之蓝(ESTEEMAUDIT)
ms12-020
4848/ glassfish:
文件读取
GlassFish2 / admin:admin
GlassFish3,4 / 如果管理员不设置帐号本地会自动登录,远程访问会提示配置错误
5432/ PostgreSQL:
RCE
默认账号postgres
参考
6082/ varnish :CLI 未授权
6379/ 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/ SAP:SAP命令执行
50070,50030 / hadoop:
未授权
命令执行
5.1.1提权
1.Windows:
一般情况:pr 、Churrasco、kelong、IIS6up、mimikatz、第三方cmd、第三方net、vbs、读hash、msf
找未安装补丁的提权漏洞
通过高权应用的RCE 或 LCE提权,如:mssql、Oracle
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.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.发送含有后门的附件(如:pdf、Excel、word、rar的代码执行漏洞)
5.通过社工库或搜索引擎人肉搜索得出密码后尝试登陆邮箱
5.2.5得到邮箱权限后
1.分析/劫持邮箱收信
2.个人邮箱:
搜搜:password、找回密码、重置密码、忘记密码等关键字
找服务器、CDN、域名、DNS等服务商的邮件,如果无法登陆尝试重置等操作
找到有关地理位置软件的邮件
淘宝(收货地址)
京东(收货地址)
支付宝(收货地址)
Apple账号(可定位)
各手机大厂(手机定位)
找发件箱中的原始图片(找exif的GPS定位)
3.企业邮箱:
找VPN相关邮件 可内网渗透
找OA,ERP,SCM,CRM,BRP,OMS,WMS相关系统邮件
找Git,SVN,自动化测试相关邮件
搜索关键字:password、密码、192、172、10. 等关键字
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.收集网站名简写、英文名、邮箱前缀等 于 admin、manage、system、login等常见单词组合请求
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.1社交搜索
1.查看注册的网站:0xreg reg007:
知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或html中找到未被打码的信息
可以从这些方面判断用户是否注册过:
找回密码 输入账号,如果进入下一步了则该账号存在
登录 输入账号和密码,如果提示密码错误,则表示该用户已存在
注册 填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册
2.知道QQ:
通过QQ邮箱搜索支付宝、淘宝账号
去腾讯微博搜索
通过微信搜索
查看QQ空间:通过说说、留言、日志找到其好友
知道手机号:搜索QQ、微信、钉钉等社交账号
在比较火的一些APP和网站上注册或忘记密码来判断是否注册过账号
查询支付宝账号,尝试输入常见姓氏获取名字
通过对方的职业、兴趣找到该领域知名度较高的社交网站反查
根据在QQ空间、朋友圈等动态用百度识图识别照片,在微博、ins、Twitter、fb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选
留意社交动态:发布时间线
使用什么客户端 iPhone Android还是浏览器
注意每一条链接 / 图片 / 视频
从最早发布的动态看起,会有很大收获
一般得到一个账号的密码就相当于得到了其他账号的密码
一般人不同账号的用户名都是相同或相近的
一般人的社交账号头像用的都是一样的
5.3.2尝试破解社保、公积金账号:大部分信息可以用来生成密码字典
介绍到这里,内网渗透测试的基本流程就介绍完了。总而言之,内网渗透测试是尽可能模拟出内网渗透攻击的真实过程,以此来尽可能避免在实战中遭遇攻击。
在网络安全领域,我们与敌手采取的手段往往都很相似,而真正决定输孰是孰非的是我们与敌手的恶意判断。因而真正的攻与防不在于手段与方式,而在于人心。