小符的CEH考证之路陆 - System Hacking

431 阅读9分钟

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)