CEH - 职业道德黑客关于 System Hacking
关于系统方法论 methodology
- 密码爆破 Cracking Password
- 跨级 escalating privilege
- 嵌入恶意控制应用软件 Executing Applications(使用keylogger恶意插件监听被攻击目标的key)
- 使用隐藏文件 Hiding files
- 掩踪 Covering tracks
hacking的目标
- 绕过进入通道的控制 Bypass the access control (比如防火墙,中间件控制)
- 获取系统进入的权限 Gain access to the system
- 寻找漏洞 exploit vulnerabilities
- 获取高级的权限 Gain privilege
- 执行恶意软件的监听 Executing applications
- 隐藏恶意的行为 Hiding malicious activities
- 隐藏使用破坏证据 Hiding the evidence of compromising
密码爆破 Craking Password
通过一个合法的身份 legitimate user,进入目标系统。
- 密码攻击手段
- Non-Electronic attacks: 非技术手段,比如:Shoulder surfing 偷窥密码、Social Engineering 人肉推测、Dumpster diving 把快递的信息挖下来
- Dictionary attacks: 字典攻击,一个字典文件保存了一个list包括常用的password,一个一个尝试。
- Brute Force attacks: 暴力破解,字面意思
- Hash injection:哈希注入/哈希传递,利用监听到的hash值进行渗透
- Wire Sniffing:网络嗅探,在内网抓包
- Man-in-the-Middle attack中间人攻击:SSL strips监听跳转,Burp Suit攻击软件,Browser Expolitation Framework xss攻击软件
- Reply attack 重放攻击:通过拦截用户发送的数据,并将拦截的数据重复的向被攻击系统发送
- Pre-computed hashed and Rainbow table: 彩虹表是hash生成的dictionary,去探测hash的生成结果
- Distributed Network attack: 分布式网络攻击, 找到网络中部署的未被处理的机器进行渗入
- Password Guessing: 猜
Microsoft Authentication 为什么不用超级小
微软系统的授权协议 Authentication Protocols:
- Kerberos
比较流行的安全协议。客户端从Kerberos Key Distributor Center (KDC)获得ticket而不是在本地。 Kerberos两大要素:Authentication Server (AS)和 Ticket-Granting Server (TGS)。与NLTM不同 的是,客户端是与TGS进行沟通。通过Tick-Granting Ticket(TGT)(在TGS里发送)进行沟通其他客户端。 TGS提供一个trust domain。 - Security Account Manager(SAM)
在windows系统里,安全账户管理员(SAM)是储存授信和一些重要账户参数(比如密码)的数据库。当OS 启动的时候,SAM将会被一些服务和线程上锁。仅有几个安全算法可以进入SAM。SAM将密码放在NTLM和LM里 通过哈希表的形式。windowsXP之后的版本不会储存LM哈希超过14个字符的部分而是用空值代替 格式 :Username: user ID: LM hash: NTLM hash::: 位置:C:\windows\system32\config\SAM - NT LAN Manager(NTLM): 这个协议可以被哈希传递
NT 局域网管理员(NTLM)是微软的专用认证协议(proprietary authentification protocol)。在 认证过程中,用户通过hash表方法发送登陆证书(login credentials)到域名控制器中(Domain controller)。域名控制器通过随机打包进行hash加密,是windows早期版本的标准安全协议。现在是 Kerberos作为默认安全标准协议。 - 密码盐(Password salting)
密码盐通过在密码里单向添加额外的字符串,使密码更复杂从而很难去逆转哈希可以防止dictionary attack和rainbow table。
各个OS常用储存密码路径
- Windows: SAM (`C:\windows\system32\config\SAM`)
- Linux: Shadow (`/etc/shadow`)
- Domain Controller: NTDS:DIT
常用密码爆破工具
- pwdump7
- fgdump
- RainbowCrack
- Cain and Abel
- John The Ripper
- Pyrit
- Hashcat
常用密码爆破防御方法
- 不用默认密码 default password
- 不要在应用里储存密码
- 不要用好猜的密码 gussetable password
- 启用SYSKEY
- 密码盐
- 周期性periodically更新密码
- 监视攻击行为
- 不同服务器密码不同
跨级 escalating privilege
- 平行权限提升(Horizontal privilege escalation) 攻击者获取同级别组的其他用户权限
- 垂直权限提升(Vertical privilege escalation) 获取更高权限,比如管理账户administration account,使得攻击者可以获得敏感信息。
- 使用DLL Hijacking权限提升 Dynamic Link Libraries (DLL)里面找,攻击者将DDL替换成恶意的。常用软件DLL Hijacking tool: Metasploit。注册密码的位置:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\
微软的搜索方法:
- 查询目录应用Directory
- 系统目录(i.e. C:\Windows\System32)
- 窗口目录
执行恶意软件的监听 Executing applications
安装恶意软件的目的在于,通过恶意软件收集信息、制造可以进入的backdoor、密码破解和安装脚本、安装keylogger
- RmoteExec远程执行,安装远程恶意软件。
- PDQ是一个对于系统管理员悄悄地安装跟更新远程控制系统的软件。可以悄悄的执行很多比如安装卸载执行文件等操作。
- Keylogger,监听目标鼠标,屏幕,键盘等,keylogger软件一般都是远程安装的,类型有:
- Application keyloggers
- Kernel keyloggers
- Hypervisor-based keyloggers
- Form Grabbing based keyloggers 硬件keylogger一般是物理安装类型有:
- PC/BIOS Embedded keyloggers
- Keylogger keyboard
- External keylogger (video, bluetooth, wi-fi, acoustic, ...) 反keylogger的方法:
- 按键干扰软件 Keystroke interference software
- 不要随便点击可疑的url
- 物理监听软件
- 主机IDS
- 软件安装之前扫描
- 间谍软件spyware,间谍软件是一种软件,旨在收集用户与系统的交互信息,例如登录凭据login credentials、电子邮件等,而无需通知系统用户。收集的信息被发送到远程目的地。间谍软件隐藏其文件和进程以避免被发现,类型有:
- Adware
- System monitors
- Tracking cookies
- Trojans
- Rootkits,是一种软件,旨在通过系统为远程用户提供特权访问,创建后门。在攻击者获得对系统的高级访问权限后部署。 Rootkit 通常会掩盖其存在以避免被发现。类型有:
- Application level rootkit: 通过注入代码执行标准应用程序文件的操作。
- Kernel-level rootkit: 向内核注入恶意代码
- Hardware/Firmware level rootkit: 内置于芯片组中chipset
- Hypervisor level rootkit: 利用 AMD-V 或 Intel VT 等硬件功能Boot Loader 级别的
- Boot Loader level rootkits (Bootkits) : 用恶意的引导加载程序替换合法的引导加载程序,这使得 bootkit 在操作系统运行之前被激活。它可以攻击主引导记录(MBR)、卷引导记录(VBR)或引导扇区。它可用于攻击全盘加密系统、破解加密密钥和密码。 工具有:
- Avatar
- Necurs
- Azazel
- ZeroAccess 防御方法:
- Integrity-Based Detection 完整性检测
- Digital signatures 数字签名
- Difference-based detection 差异性检查
- Behavior-based detection 行为检测
- Cross-view based detection 跨试图检测
- Run-time execution path profiling 运行时执行路径分析
- Deploying a network-based firewall 网络防火墙
- Host-based firewall 主机防火墙
- Install application/OS from trusted sources 创建信任源
- Integrity verification 完整性验证
- Kernel memory dump analysis 内核内存转储分析 unix工具:
- Zeppo
- chrootkit Windows tools:
- Microsoft Sysinternals Rootkit Revealer
- Sophos Anti-Rootkit
- New Technology File System (NTFS) Data Stream,NTFS 是 Microsoft 的 Windows 文件系统。 NTFS 是 Windows 10、- 7、- Vista、- XP、- 2000、- NT 的默认文件系统。
- Alternate Data Stream (ADS),ADS 是 NTFS 文件系统中的文件属性,包含用于定位特定文件的元数据。 ADS 能够将文件数据隐藏到现有文件中,而无需更改或修改任何明显的更改。它可能是安全威胁,因为它可以隐藏恶意文件。
- Alternate Data Stream (ADS)防御,将文件移动到 FAT(FAT partition 分区)(FAT 不支持 ADS,但这会损坏文件),第三方插件。
- 隐写 Steganography,隐写术是一种将敏感信息隐藏在普通消息中以确保机密性的技术。隐写术使用加密来保持机密性和完整性confidentiality and integrity。它隐藏加密数据以避免检测。攻击者可能会使用此技术在不被发现的情况下传输数据
- 分类:
- 技术隐写术Technical Steganography:使用隐形链接concealing information、微点microdots等方法隐藏信息。
- 语义学隐写术Linguistic Steganography:使用文本作为覆盖媒体来隐藏信息,例如使用密码和代码来隐藏信息ciphers and code to hide information
- 类别:
- Whitespace Steganography 空白隐写术,使用在覆盖文件的单词之间插入的额外空格隐藏文本文件中的信息。使用 LZW 和 Huffman 压缩方法来减小消息的大小。
- Image/Pixel Steganography 图像/像素隐写术,隐藏信息可以保存为图像格式,例如 PNG、JPG 等。图像隐写术在消息中放置图像的冗余位。它不能被人眼检测到。
- Document Steganography 文件隐写
- Video Steganography 视频隐写
- Audio Steganography 音频隐写
- File/Folder Steganography 文件夹隐写
- Spam/Email Steganography 邮件隐写
- Web Steganography 网页隐写
- Frequency Steganography 频率隐写
- Least Significant Bit Steganography 最低有效位隐写术
- 技术:
- Least significant bit insertion 最低有效位插入
- Masking and filtering 掩蔽和过滤
- Algorithm and transformations 算法和转换
- Tools:
- OpenStego
- QuickStego
- Stegohide (Linux)
- 隐写分析 Steganalysis,使用隐写技术分析可疑信息以发现和检索retrieve隐藏信息。方法有:
- Stego-only只有隐写: have only stego object字面意思
- Known stego知名的隐写: have stego object, algorithm and cover有算法有覆盖有隐藏
- Known message隐写信息: have stego object and hidden message
- Known cover:隐写覆盖 have stego object and cover
- Chosen message选择性隐藏: generate stego form known message to identify the algorithm
- Chosen stego仅用算法: have stego object and algorithm
- 分类:
隐匿踪迹 Covering tracks
在获得访问权限、提升权限、执行应用程序之后,下一步就是擦除证据。在这个阶段,攻击者会删除所有的事件日志、错误消息和其他证据,以防止其攻击被轻易发现。常用工具:Disable auditing失效, Clearing logs清除,Manipulating logs操作。
-
Disable auditing失效, 防止另一种安全机制指示任何类型的入侵警报,并离开跟踪机器上的跟踪。不留下任何痕迹并阻止检测的最佳做法是在您登录系统时禁用审核。它不仅会阻止记录事件,还会阻止检测。启用系统中的审计以检测和跟踪事件。
-
List auditing categories in windows:
C:\Windows\system32>auditpol /list /category /v -
Check all category audit policies:
C:\Windows\system32>auditpol /get /category:*
-
-
Clearing logs清除, 通过清除日志,入侵期间记录的所有事件都将被删除。Folder of log files:
-
Windows 2000/Server2003/Windows XP:
%SystemRoot%\System32\Config -
Server 2008/Vista and up:
%SystemRoot%\system32\winevt\logs -
Linux, OpenBSD:
/var/log/ -
Other methods
- Clear cookies
- Clear cache
- Clear temporary files
- CCleaner
- Clear Most Recent Used (MRU)
-