Board logo

标题: 国产木马端口检查! [打印本页]

作者: AK47    时间: 2008-9-19 14:34     标题: 国产木马端口检查!

以下就是国产木马端口检查的代码!
  1. @echo off
  2. netstat -a -n > a.txt
  3. type a.txt | find "7626" && echo "冰河!"
  4. del a.txt
  5. pause
  6. @echo off
  7. netstat -a -n > a.txt
  8. type a.txt | find "8102" && echo "网络神偷!"
  9. del a.txt
  10. pause
  11. @echo off
  12. netstat -a -n > a.txt
  13. type a.txt | find "2000" && echo "黑洞2000!"
  14. del a.txt
  15. pause
  16. @echo off
  17. netstat -a -n > a.txt
  18. type a.txt | find "2001" && echo "黑洞2001!"
  19. del a.txt
  20. pause
  21. @echo off
  22. netstat -a -n > a.txt
  23. type a.txt | find "6267" && echo "广外女生!"
  24. del a.txt
  25. pause
  26. @echo off
  27. netstat -a -n > a.txt
  28. type a.txt | find "7306" && echo "网络精灵!"
  29. del a.txt
  30. pause
  31. @echo off
  32. netstat -a -n > a.txt
  33. type a.txt | find "8011" && echo "赖小子!"
  34. del a.txt
  35. pause
  36. @echo off
  37. netstat -a -n > a.txt
  38. type a.txt | find "23444" && echo "网络公牛!"
  39. del a.txt
  40. pause
  41. @echo off
  42. netstat -a -n > a.txt
  43. type a.txt | find "19191" && echo "蓝色火焰!"
  44. del a.txt
  45. pause
  46. @echo off
  47. netstat -a -n > a.txt
  48. type a.txt | find "27374" && echo "东方魔眼!"
  49. del a.txt
  50. pause & exit
复制代码

作者: namejm    时间: 2008-9-19 14:59

  其实没必要这么繁琐,一条for语句就可以做到了。另外,光检测那几个数字也是不可靠的,一来木马不可能一直用那个固定的端口;二来用find来检测数字,做不到精确匹配,比如 find "2000"的时候,200000也会匹配的。
  如果不考虑那些复杂因素的话,楼主的代码可以这样精简,演示如下(需要检测哪个端口,添加if语句就是了):
  1. @echo off
  2. for /f "skip=4 tokens=3 delims=: " %%i in ('netstat -a -n') do (
  3.     if "%%i"=="7626" echo 冰河
  4.     if "%%i"=="8102" echo 网络神偷
  5.     if "%%i"=="2000" echo 黑洞2000
  6. )
  7. pause
复制代码

作者: youxi01    时间: 2008-9-19 15:10

如果要检测的端口较多时,最好是弄成配制文件,做一个列表了
作者: AK47    时间: 2008-9-19 15:32

@echo off
for /f "skip=4 tokens=3 delims=: " %%i in ('netstat -a -n') do (
    if "%%i"=="7626" echo 冰河
    if "%%i"=="8102" echo 网络神偷
    if "%%i"=="2000" echo 黑洞2000
)
pause

呵呵,这段代码看起来不是很懂,可以跟我解释一下吗?最主要是for /f "skip=4 tokens=3 delims=: " %%i in ('netstat -a -n')这一句!谢谢了!
作者: Batcher    时间: 2008-9-19 15:46     标题: 回复 4楼 的帖子

for命令通俗解释
http://bbs.bathome.net/thread-9-1-1.html

for 命令 /f 参数 通俗讲解
http://bbs.bathome.net/thread-26-1-1.html
作者: AK47    时间: 2008-9-19 15:56

你说的那个我去看了,不过就是这一个还是不明白for /f "skip=4 tokens=3 delims=: "     能不能讲得通俗易懂些,最好有简单的例子说明
作者: Batcher    时间: 2008-9-19 16:02

这个里面没有例子?还是不通俗易懂?

for 命令 /f 参数 通俗讲解
http://bbs.bathome.net/thread-26-1-1.html
作者: batman    时间: 2008-9-19 16:50     标题: 我来做下简化吧:

利用今天告诉大家的新知识-点阵:
  1. @echo off
  2. for /f "skip=12 delims=" %%a in (%~fs0) do (
  3.     for %%b in (%%a) do (
  4.         for /f "tokens=1,2 delims=-" %%c in ("%%b") do (
  5.             set "_%%c=%%d"
  6.         )
  7.     )
  8. )
  9. for /f "skip=4 tokens=3 delims=: " %%i in ('netstat /a /n') do (
  10.     if defined _%%i call,echo 发现%%_%%i%%&echo.
  11. )
  12. pause>nul&goto :eof
  13. 7626-冰河 8102-网络神偷 3205-黑洞2000 2001-黑洞2001 6267-广外女生 7306-网络精灵 8011-赖小子 23444-网络公牛 19191-蓝色火焰 27374-东方魔眼
复制代码

作者: namejm    时间: 2008-9-19 17:07

  把 netstat -a -n 这条命令的执行结果作为for语句的处理对象,跳过命令执行结果的头4行,并以冒号和空格作为分隔符来切分命令执行结果,提取切分后的第3节字符串。至于为什么要跳过头4行内容,在cmd窗口中执行 netstat -a -n 查看执行结果就知道了。
作者: AK47    时间: 2008-9-19 17:21

delims=:   能不能改换成delims=.,  两者有什么区别吗?
作者: AK47    时间: 2008-9-19 17:24

for /f "skip=4 tokens=3 delims=: "    管事员就是不一样,这条代码中的skip=4 我已经看懂了,后面的还是差那么一点点
作者: batman    时间: 2008-9-19 17:38

"delims=: "就是将空格和:同时来做为分隔符来分隔每行的字符,举个例子:
如TCP    134.163.144.255:3217   219.133.60.243:8000    CLOSE_WAIT
可看成TCP(分隔符)134.163.144.255(分隔符)3217(分隔符)219.133.60.243(分隔符)8000(分隔符)CLOSE_WAIT
作者: AK47    时间: 2008-9-19 17:42

哦,明白了,那这个呢tokens=3
作者: Batcher    时间: 2008-9-19 20:18     标题: 回复 13楼 的帖子

取第三列
作者: AK47    时间: 2008-9-20 10:24

呵呵,已经差不多懂了,再多一点实践就行了
作者: Batcher    时间: 2008-9-21 13:12     标题: 回复 16楼 的帖子

看看这个帖子
http://bbs.bathome.net/thread-1899-1-1.html
作者: namejm    时间: 2008-9-21 13:40

  batman的做法是把批处理代码和配置信息放在同一个文件中:for可以读取文本文件,~fs0表示获取批处理本身的完整路径,只不过这个路径是以短文件名的格式出现的,防止出现特殊字符;skip=12跳过批处理文件的头12行,13行开始就是配置信息了。
  不过,一般不提倡把代码和数据放在一起,因为如果需要修改代码的话,数据的位置会发生改变,有可能还会引起数据格式的改变,对于十分依赖数据行列位置进行处理的程序而言,在修改代码的同时,有可能还得重排数据,会加大很多工作量。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2