作者: falcon 发表日期: 2006-08-22 09:21
复制链接
经过几天的调试和修改,比较稳定的匿名ftp站点扫描工具终于完成拉。
该扫描工具可以扫描指定IP段的ftp站点,大家可以把它改写来扫描其他的端口。甚至基于此结构写一个ftp搜索引擎的爬虫。过段时间,我再把爬虫的代码公布出来,暂时正在调试和修改中。
这些天弄得很累,呵呵,暂时只把源代码弄上来。有时间再做详细的解释。有问题在后面跟帖哦。
ftp扫描的核心代码:ffs.c
Code:
[Ctrl+A Select All]
自动扫描多个IP段的脚本: affs
Code:
[Ctrl+A Select All]
这个可以用来终止上面的扫描过程: kffs
Code:
[Ctrl+A Select All]
下面是兰大校园网内的IP段: ftpinfo.txt
Quote: |
202.201.0.0
202.201.15.255;210.26.48.0 210.26.63.255;219.246.32.0
219.246.95.255;219.246.176.0 219.246.191.255;222.23.48.0
222.23.63.255;202.38.127.176 202.38.127.191;202.38.126.224
202.38.126.255
|
注意,每个段之间用分号分开哦,因为在affs脚本里头用到了这个分割符号。
下面这个可以在扫描过后的日志里头提取出ip地址: logtoip
Code:
[Ctrl+A Select All]
具体使用演示:
只用 ffs
Quote: |
falcon@falcon:~/program/c/code/ftp/socket$ gcc -lpthread -o ffs ffs.c falcon@falcon:~/program/c/code/ftp/socket$ ./ffs 219.246.183.222 219.246.183.222 startIp = 219.246.183.222,3690379230 endIp = 219.246.183.222,3690379230 thread 0 create successed! currentIp = 3690379230 219.246.183.222 220 Microsoft FTP Service 331 Anonymous access allowed, send identity (e-mail name) as password. 230 Anonymous user logged in. 221 <can login: 219.246.183.222> Thread 0 down Finish!
|
用 affs
Quote: |
falcon@falcon:~/program/c/code/ftp/socket$ ./affs ftpinfo.txt fs.log start time:2006年 08月 21日 星期一 21:38:01 CST is scaning...
|
正在扫描,结束以后,我们可以获得扫描的一个日志文件fs.log
用logtofile脚本提取可以访问的ip地址
Quote: |
falcon@falcon:~/program/c/code/ftp/socket$ ./logtoip fs.log 202.201.0.237 202.201.0.243 202.201.1.126 202.201.3.82 202.201.3.99 202.201.6.125 202.201.7.17 202.201.8.125 202.201.13.65 202.201.13.118 202.201.13.139 202.201.13.149
|
最好,要是想结束扫描的话,用 kffs脚本
Quote: |
falcon@falcon:~/program/c/code/ftp/socket$ ./kffs do you want to kill all ftp scan process?(y or n): y 杀死
|
另外,要是你想把你的测试结果发布,可以在日志里头提取出ip地址并放到html文件里头。下面是这么一个脚本:logtohtml
Code:
[Ctrl+A Select All]
为了让系统自动扫描所有的IP段,并保存为html文件发布出去,那么我们可以这么做。再写个脚本 updateftp,(把affs 和logtohtml放在同一目录下哦,还有updateftp也是)
Code:
[Ctrl+A Select All]
如果再加上crontab,我们就可以让系统自动扫描拉
Quote: |
$crontab -e 00 12 * * * path/to/updateftp
|
ok,好啦
这里是演示的最终结果:
http://mirror.lzu.edu.cn/newftp/index.html
经过测试,扫描整个兰大校园网内的IP段,大概需要15钟左右。
对拉,需要提到的是,在用脚本的时候,记得先修改成可执行的哦,如:
Quote: |
$chmod 755 path/to/shellscriptfile
|
参考资料太多拉,这里暂时不列举出来哦
翻了一大堆关于套接字和多线程编程的资料。我在其他的几个帖子里头贴出了其中的一些参考资料。