喜欢渗透,今年8月才开始接触bt5。看到论坛上有很多帖子,但主要都是讲pj的。如果单单是pj,对于bt5真的是大才小用了。所以决定开个帖子讲讲bt5在渗透方面的应用。这个帖子的主要是根据教主的视频教程,《LiNUX--bt4hei客手册》整理,加以网上资料,也算是我个人的学习笔记了吧,有兴趣的童鞋可以和我一起走进bt5。
(ps:教主的视频教程地址:http://v.ku6.com/playlist/index_6560628.html)
一、BT5的u盘安装
由于bt5本来就是一个封装好的linux系统(基于Ubuntu),所以安装起来相对简单,主要需要如下工具:
1、4g u盘一枚(当然可以更大的,但是不推荐更小的了,原因是官方的bt5iso包就有2.60G大,再加上你的配置文件,太小的u盘安装后剩余的空间较小,会影响读取速度,直接的后果就是系统会卡。)
2、bt5安装包种子
下载地址如下:http://www.backtrack-linux.org/downloads/
根据自己的需要可以选择32/64位,KDE/GNOME版本进行下载。
3、unetbootin-windows-578
用于安装系统。下载地址:http://www.onlinedown.net/soft/88566.htm
ok,准备工作完成,下面开始安装。
首先,将你的u盘格式化为FAT32格式。然后解压下载的unetbootin-windows-578 ,运行其中的unetbootin-windows-578 .exe,界面如下:
单击界面右下部的 ... 选择你下载好的bt5-iso镜像。
下面的输入框是你想设置的保存配置文件大小,根据个人需要和u盘大小填写。比如我的u盘是4g的,我就填了800,2.6g的镜像+800M的配置文件,全部装载后约为3.7g,u盘还剩约300M容量,对读写速度不会有太大的影响。当然如果你的u盘足够大,也可以填的更大些,但一定要使u盘剩余几百兆空间,否则可能会影响读写的速度。
ps:讲一下这种做法的好处,有很多童鞋安装好bt5启动u盘后,反映不能保存配置,这种安装方法安装后,就不再需要去savefiles了,直接就可以保存配置。
ok,然后驱动器一项选择你的u盘,点击确定就开始制作了。
安装过程中,会停在第9个文件一段时间,
注意此时并没有卡死,而是因为那个文件太大,写入需要一段时间,童鞋们不要急着关闭窗口结束进程,耐心等待几分钟就好。安装完成,
重启电脑,选择u盘启动,就可以进入bt5了。----------------------------------------------------------------------------------------------------------------------------------
二、信息收集
1、DNS信息收集
1)dnsenum
dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器、MX record(函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展域名信息(google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。
命令行:root@bt:/pentest/enumeration/dns/dnsenum#
图形界面 :Applications --> BackTrack --> Information Gathering --> Network Analysis --> Dnsanalysis --> Dnsenum
常用命令参数举例:./dnsenum.pl -f dns.txt -dnsserver 8.8.8.8 baidu.com -o output.txt
解释一下这些参数:
-f dns.txt 指定字典文件,可以换成dns-big.txt或者是自己的字典 - dnsserver 8.8.8.8 指定dns服务器,一般可以直接使用目标服务器,其中8.8.8.8可以为ip或域名。 baidu.com 目标域名。
-o output.txt 输出结果到output.txt。
如图收集百度的dns信息:
首先输入 ./dnsenum.pl baidu.com来检测百度的默认dns服务器的ip,即图中的dns.baidu.com,202.108.22.220,记下来,接下来会用到。
然后以dns.baidu.com的ip为指定的dns服务器执行dnsenum:./dnsenum.pl -f dns.txt dnsserver 202.108.22.220 baidu.com -o output.txt
等待结束后,便可以到dnsenum目录下查看output.txt。
2)dnsmap
dnsmap和dnsenum一样是用户获得子域名的强有力工具,与dnsenum的不同点是,它把结果输出为csv格式,并且运行时不需要root权限。
命令行:root@bt:/pentest/enumeration/dns/dnsmap
图形界面:Applications --> BackTrack --> Information Gathering --> Network Analysis --> Dnsanalysis --> Dmsmap
常用命令参数举例:./dnsmap baidu.com -w wordlist_TLAs.txt -c output.csv
参数: baidu.com 目标域名。
-w wordlist_TLAs.txt 指定字典文件。
-c output.csv 输出结果到output.csv。 bt5中可以用于dns信息扫描的工具还有其他的,例如dnswalk和dnstracer等,功能大多有所重复,以此两个工具便可以完成大部分的dns信息扫描工作。 2、路由信息收集
1)tcptranceroute
由于防火墙的使用,传统路由跟踪工具发出的ICMP应答或者udp数据包都被过滤掉了,导致无法进行完整的路由追踪。但是很多情况下,防火墙会允许发送TCP数据包通过防火墙到达指定端口,而这些端口是主机内防火墙背后的一些程序与外界进行连接用的。通过TCP SYN数据包代替ICMP应答或udp数据包,tcptranceroute可以穿透大多数的防火墙。
使用方法:直接在命令行下:tcptranceroute baidu.com
发两张bt5下的tcptranceroute于传统的tranceroute的对比图:
差距显而易见吧。教主的教程中还讲解了tctrace,个人感觉两个工具在原理,用法上的差别都不大,所以不再进行讲解。下面讲解0trace。
2)0trace与tcptraceroute的主动发包不同,0trace通过建立一条tcp连接(可以是http或者smtp等)来列举出这条连接上每一跳的情况。这样便可以通过几乎所有的状态型防火墙,从而避免了tcptraceroute的丢包状况。
图形界面:Applications --> BackTrack --> Information Gathering --> Network Analysis --> Identify Live Hosts--> 0Trace
基本使用方法如下:①telnet 目标地址 +端口,建立一条tcp连接。
例:telnet baidu.com 80
返回结果如下,表示tcp连接已建立,ok。
②运行0trace,等待数据流。
直接在0trace下输入如下命令:./0trace.sh eth0 baidu.com 80
参数解释:eth0 网卡名称,也可以是eth1、eth2。。。但必须是能够上网的网卡 、、、、、、、baidu.com 目标域名,也可以是ip地址。
80 端口。由于是采用http建立的tcp连接,所以用80端口。如果你采用其他方式(smtp等),就改其他端口。
回车后进入等待状态,如图:
说明工具已经启动,这时需要通过http(或smtp等)激活tcp连接,触发数据包。
③通过http等方式激活tcp连接,出发数据包,让工具抓包。
通过wget命令访问页面,命令如下:wget baidu.com如图:
多敲几次命令,保证数据流足够用于分析。
④观察0trace界面,同时继续激活http连接,直到路径测试完成。
由于我是以百度进行的测试,所以结果是rejected,大家可以自行用其他网站测试。毕竟是工具,可能会出现失败,我们可以多进行几次,成功率还是很高的。
3、All-in-one 智能收集
Maltego
讲信息收集就不得不说Maltego。Maltego应用于收集包括:域名、DNS名whios信息、ip地址等网络数据及通过公司或组织名称、邮件地址、网站、社区网络(facebook等)、电话号码收集关于个人的信息。可谓是社工利器。Maltego与之前讲过的命令不同,它具有图形界面,所以使用起来也比较简单,只可惜是英文界面的。
软件路径:Applications --> BackTrack --> Information Gathering --> Network Analysis --> Dnsanalysis --> Maltego
在使用之前我们需要先去注册一个账号,注册地址:https://www.paterva.com/web5/community/index.php#Register
简单的输入注册信息,确认下邮件即可。ok,用你刚刚注册好的账号登陆。随后我们可以看到软件的界面如下:
我们首先更新下数据。切换到Manage选项卡(在软件的顶部),点击Discover Transform(Advanced)即可。更新完成后,我们点击软件左上角的“+”,添加一项任务。点击软件左侧的Palette(没有的童鞋可以通过软件上方的zoom选项卡调出来),我们可以看到Maltego可以收集的信息非常多,这里我就以通过人名搜索信息为例给大家讲解一下。
我们在Palette中选中Person拖入主窗体(Main View),点击Entity List选项更改,双击数值框,更改Full Name为李开复(百度ceo)。当然也可以通过调出Property View的方式更改。
然后再切回Main View,右键选择All transforms。期间可能会要求确认相关协议或信息,我们根据要求输入空格、选择accept即可,然后点击Run,软件就开始工作了。
这里我们可以通过软件下方的进度条查看任务的进度。 立刻我们就可以看到,软件收集到了非常多的信息包括主机,甚至邮件地址,这对于我们的社工无疑是非常重要的。
在收集到的信息中,我们还可以点击单个信息继续右键进行搜索,层层深入,获得更多有效的信息。好了,只是简单的通过人名搜索讲一下Maltego的大致用法,其他类型大家可以自行去摸索。 ---------------------------------------------------------------------------------------------------------------------------------- 三、扫描工具
1、主机发现
1)Arping
由于防火墙的使用等原因,部分主机会出现ping不通的状况。Arping通过发送Arp request的方式进行测试(直连网络),确定一个特定的ip在线。
直接在终端中输入命令使用。
基本命令格式:arping -c 3 192.168.1.1
参数解释:-c 3 发送的Arp请求包的数量
192.168.1.1 目标地址
如果主机在线,则返回相应的包,反之则提示丢包。
2)Fping
fping可以说是ping功能的增强版,它可以通过轮转方式并行的发出大量ping请求,高效快速的同时ping多台主机。
图形界面:Applications --> BackTrack --> Information Gathering --> Network Analysis --> Identify Live Hosts--> Fping
也可以直接在终端中输入fping。
fping有以下两种用法:
①ping文件中的ip地址。
我们首先在根目录下建立一个ip列表,ip.txt,并把ip地址按每行一个的格式写入。如图:
ok,然后是具体的命令:fping -a -s -f ip.txt
参数解释: -a 显示存活主机
-s 显示最终扫描结果
-f ip.txt 读取文件
②扫描ip段
具体命令:fping -a -s -r 1 -g 192.168.1.1 192.168.1.255
参数解释: -r 1 尝试次数
-g 192.168.1.1 192.168.1.255 ip段
结果:
3)Genlist
genlist可以快速的扫描ip段内的存活主机,而且结果呈列表式,因此与fping相比,更简洁明了。
通过直接在终端内运行命令使用。
基本命令:genlist -s 192.168.1.\*
参数解释:-s 192.168.1.\* 目标ip段
4)Nbtscan
nbtscan是一个扫描网段内微软主机netbios信息的工具,只适用于局域网,可以显示ip,主机名,用户名及mac地址等。速度较快。通过直接在终端内运行命令使用。
基本命令:nbtscan 192.168.1.1-255
这个参数就不用我解释了吧。。。
由于我没有架设windows系统,所以显示为空。 5)Protos
Protos是一个ip协议的扫描工具,特别适用于路由。不过它的速度,个人感觉有点慢。
图形界面:Applications --> BackTrack --> Information Gathering --> Network Analysis -->Route Analysis-->Protos
基本命令格式:./protos -i eth0 -d 192.168.1.1 -v
参数解释: -i eth0 指定网卡
-d 192.168.1.1 目标地址
-v 详细显示
敲完命令后需要耐心等一会。。。
hping3、Nping和onesixtyone这三个软件虽说功能很强大,但都有各自的不足。就hping3而言,功能的确很强大,可以自定义来ping,可是单单-h说明文件就有80多行,足见其复杂程度。而Nping与其类似,都需要有一定的tcp,udp基础。onesixtyone扫描速度很快,但其字典过小(当然可以自己添加字典文件),效果一般。这里就不再深入讲解。
2、操作系统指纹
先科普下什么是操作系统指纹:不同的网络操作系统在处理网络信息时是不完全相同的,存在着各自的特点,这些特点就称为系统的“指纹”。通过识别这些指纹就可以实现网络系统的识别。说简单点,就是用来识别是什么操作系统。; G/ s% o8 A/ l1 ^9 ^
1)p0f
p0f是一款被动式的系统判别工具(就是指不向目标系统发送数据,单纯的通过分析来自目标系统的数据)。可惜它的年代有点久远,判别效果不是好,经常会出现UNKNOWN。不过它对旧一点的操作系统识别的还是不错的。
使用方法:通过在终端内直接输入p0f进行监听,一旦接收到报文就会显示相关信息,并且不断刷新。如图,我们现在终端内输入p0f进行监听,然后浏览器打开baidu.com即可。(当然你也可以通过其他方式。。)
看,结果是unknown吧。
2)Xprobe2
与p0f的被动不同,Xprobe2是一个主动的系统探测工具。结尾还会给出一个综合性的report。
4、服务探测
这个功能其实nmap已经包括了,这里介绍几个专门的工具。1)
主要用于服务探查、banner识别等。发送请求,获取banner,由主机的响应判断服务。
命令格式:amap -bq IP Port 1
基本格式应该都能看懂吧,直接上效果图。
很清楚,http。
httsquash
图形界面:BackTrack -> Information Gathering -> Network Analysis ->Service Fingerprinting->httsquash
命令格式:./httsquash -r IP / T
上图:
VPN探测 这方面比较简单,而且我本机没有搭设vpn,所以就不介绍了,大家有什么不了解的自行百度,ok。
---------------------------------------------------------------------------------------------------------------------
四、漏洞发现
第一部分:Cisco工具Cisco Auditing Tool
一个很小的安全审计工具,它扫描Cisco路由器的一般性漏洞,例如默认密码,SNMP community字符串和一些老的IOS bug。
命令格式:./CAT -h 192.168.1.1 -w list/community -a lists/passwords -i
参数解释:-h 地址
-w community字典文件
-a 密码字典文件
-i 查看有没有历史性的bug
用于扫描网段中拥有默认telnet密码“cisco”的Cisco设备,非常快并且有效。
图形界面:BackTrack -> Information Gathering ->Vulnerability Assessment->Network Assessment->Cisco Tools->Cisco Password Scanner
命令格式:./ciscos 192.168.1 3 -t 4 -C 10
参数解释:192.168.1 3 表示192.168.1.0 255.255.255.0这个网段
-t 4 每个连接的超时时间
-C 10 最大的同时扫描连接数
1、ADMsnmp 5 K9 C9 e( X1 R( g' c
ADMsnmp用于暴力PJSNMP community字串,使用一个预先定义的“wordlist”。
命令格式:./ADMsnmp 192.168.1.1 -wordfile snmp.password 9
Snmp Enum
在获取community后,可以使用snmp enum获取大量关于Cisco,windows和linux的信息。速度较快。
./snmpenum.pl 192.168.1.1 private cisco.txt
第三部分:HTTP工具
1、Burp Suite
是套用于Web渗透测试的集成套件,它包含了spider,scanner(付费版本),intruder,repeater,sequencer,decoder,comparer等模块,每个模块都有其独特的用途。这里主要来讲讲其proxy代理功能,毕竟这个帖子是教主教程的学习笔记,其他的功能有时间我会另开帖子详细讲解下。
目录:/pentest/web/burpsuite
由于该程序使用Java编写,所以我们使用如下命令执行:
java -jar burpsuite_v1.4.jar ; X9 P% y, f$ m1 O
会出现一个openjdk的warning,不用管他,ok就可以。 6 G+ C' f6 S! u' y- p% _ u
B首次启动会出现一个协议,点击I accept接受即可。 ! _- n$ [" Z0 f; g2 q9 ~& Y
首先我们点击proxy标签下的option项设置代理端口号,基本上默认的8080就可以。
然后切回intercept项,点击使intercept is on。
设置浏览器的代理服务器: )
打开火狐浏览器,依次点击:Edit——>Preference——>Advanced——>Network——>Connection Settings
如图设置即可。
这样设置后Burp Suite就会截获到浏览器发出的请求,并可方便地进行修改之后再向原网站发出,以达到篡改cookie、URL、form等目的。
简单进行下演示: * S6 u3 m" Q5 x. m ?
浏览器打开 www.baidu.com,可以观察到浏览器会一直显示为connecting,却打不开页面。这时我们切回到Burp Suite,点击Forward按钮可以把浏览器的请求发出去,或者点击Drop按钮丢弃该请求。
我们Forward。
然后输入backtrack,点击百度一下进行搜索。
依旧切回Burp Suite,我们可以切换到params更改其value值,我们可以把它的backtrack值改为chu,接着Forward。
# h-
然后你就可以看到虽然你搜索的是backtrack可实际上搜索的却是chu。
同理我们还可以修改cookie、url、form等。
ok,就简单说这些吧,关于Burp Suite的其他用法过几天我会另开一个帖子讲解。
还有些不成熟,敬请批评指正哈~
微博求收听,呵呵,http://t.qq.com/chu-jq,
未
完
待
续
。
。