Kali 1.0.4 0 trace工具解决/bin/usleep不存在
Kali 1.0.4发布了之后,亲测了下,感觉各个方面比一起都有一个提升。特别是msf,直接msf4.7为最新版本,就不用考虑升级后各种起不来,各种报错的问题了。
在使用的过程中遇到了一个问题。大家都知道0trace这个工具吧,很小的一个追踪路径的小脚本。
## 0×02 0trace简介 ##
我们都知道TCPtraceroute是通过发送SYN数据包来穿过防火墙,那么防火墙一般是不会拦截SYN标识的数据包的,提高探测的准确性。但是毕竟是主动发包,并没有真正的去基于一个可靠的连接,在一个复杂的网络环境下,还是有可能造成丢包延迟等问题。
0trace就该登场亮相了,这个小工具就是通过建立传输层可靠的TCP连接来列举出连接上每一跳的情况,防火墙是不会对一条意建立TCP连接作审查和拦截的。这样的话,问题就解决了。
在BT5下,0trace的路径在/usr/local/sbin/0trace.sh
在Kali下,0trace的路径在/usr/share/0trace/0trace.sh
## 0×03 问题 ##
问题出现了,第一次在kali下运行,系统提示"[-] /bin/usleep not found on this system, sorry."
咱就先介绍下/bin/usleep。
命令usleep的功能是把进程挂起一段时间,所用的头文件是unistd.h
当然要注意,在win下不存在这个命令,只有在Linux中才有。
那么提示系统中没有这个命令,咱们就自己编译一个uspeel,一样来用。C代码如下:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main (int argc, char **argv) { usleep(atoi(argv[1])); return 0; }
将此段代码保存在/tmp/usleep.c文件里,使用gcc编译
gcc -o /bin/usleep /tmp/usleep.c
注意,这里/tmp/usleep.c必须带后缀.c,否则编译不成功。
编译完成之后执行0trace命令,发现不会在报如上错误
## 0×04 使用方法 ##
-
我们需要建立一条TCP连接,通常用telnet来实现。
-
telnet www.xxx.com 80
-
使用0trace来抓取,等待数据流
/usr/share/0trace/0trace.sh eth0 www.xxx.com 80
-
-
用http等方式来激活http连接,让工具抓包。
最直接的办法就是用浏览器来访问域名,直到能抓到这个路径。
如上图,跳转路径就出现了,可以跟TCPtraceroute对比下有什么不同,然后就可以得到结论了。
## 0×05 后记 ##
如果中途出现Probe rejected by target.那就只能重新在来一次
下一篇: Burp Suite使用详解一