Интересное

Сообщение об ошибке

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in drupal_environment_initialize() (line 684 of /home/www/nixtalk.com/includes/bootstrap.inc).

Антивирус на bash

Опубликовано пн, 12/08/2014 - 03:50 пользователем Demontager

Это не совсем полноценный антивирус с поиском знакомых сигнатур и т.д, а фактически просто скрипт который ищет длинные строки в файлах.
Дело в том, что 90% вирусов как правило шифруют через base64, соответственно при этом появляются очень длинные строки как правило от 400 символов и выше.
По умолчанию скрипт ищет строки длинной от 500 символов и до бесконечности и записывает их в лог файл. Скрипт желательно еще "заточить" под свои нужды, так как я отсеивал заранее ложные файлы по своим параметрам. Несмотря на такую простоту
такой антивирус хорошо помогает при поисках любой даже неведанной ранее заразы.

Особенности
1. Задать количество символов можно в строке grep -e "[[:print:]]\{500,\} т.е. вместо 500 ставите другое значение.
2. SDIR= где сканировать
3. LOG= куда писать лог найденных строк
4. FILE1= файлы с каким расширением сканировать
5. PATH1= какие пути пропускать
6. E1= какие файлы не сканировать
7/ #Excluded patterns после этого указываются стринги которые не проверяются, т.е. если строка их содержит, она пропускается.

  1. #!/bin/sh
  2. #Find and grep patterns
  3.  
  4. SDIR="/home/www"
  5. LOG="/root/logs/grep.log"
  6.  
  7. #Included files
  8. FILE1="*.php"
  9. FILE2=""
  10. FILE3=""
  11. FILE4=""
  12. FILE5=""
  13.  
  14. #Excluded pathes
  15. PATH1="./tmp"
  16. PATH2="./backup"
  17. PATH3="/var/empty"
  18. PATH4=""
  19. PATH5=""
  20.  
  21. #Excluded files
  22. E1="ai-bolit.php"
  23. E2="fls.php"
  24. E3="cforms-options.php"
  25. E4="tcpdf.php"
  26. E5="iMoney.php"
  27. E6="slidemanager.php"
  28. E7="vmfilter.php"
  29. E8="php-brief.php"
  30. E9="class-simplepie.php"
  31. E10="simplepie.php"
  32. E11="shmobile.php"
  33. E12="imagefunctions.php"
  34. E13="iSape.php"
  35. E14="add-campaigns.php"
  36. E15="postratings-stats.php"
  37. E16="postratings-manager.php"
  38. E17="Loading_Speed.class.php"
  39. E18="Pageviews_per_Host.class.php"
  40. E19="Site_Usage.class.php"
  41. E20="options_page.inc.php"
  42. E21="russian-utf8.php"
  43. E22="Pageviews_per_User.class.php"
  44. E23="captcha_non_gd.php"
  45. E24="acp_phpbb_seo.php"
  46. E25="ctpl_admin_acp_forums.html.php"
  47. E26="help_bbcode.php"
  48. E27="algol68.php"
  49. E28="sblocks.php"
  50. E29="case_fold_c.php"
  51. E30="case_fold_f.php"
  52. E31="case_fold_s.php"
  53. E32="all-in-one-adsense-and-ypn-pro.php"
  54. E33="tpl_prosilver_index_body.html.php"
  55. E34="tpl_prosilver_overall_header.html.php"
  56. E35="Misc.php"
  57. E36="disable-comments.php"
  58. E37="import_settings.php"
  59. E38="mobile_detect.php"
  60. E39="zutils.php"
  61. E40="java5.php"
  62. E41="vipers-video-quicktags.php"
  63.  
  64.  
  65. #Excluded patterns
  66. P1="Ticket"
  67. P2="BEGIN"
  68. P3="cflegend"
  69. P4="addScriptDeclaration"
  70. P5="tpl_vars"
  71. P6="barcode"
  72. P7="167"
  73. P8="form_articleK2"
  74. P9="hotspots"
  75. P10="inasmuch"
  76. P11="Positioning"
  77. P12="13751"
  78. P13="shReplacements"
  79. P14="Primitive"
  80. P15="wp_lostpassword"
  81. P16="ImageWBMP"
  82. P17="nooffsitelink_require_refer"
  83. P18="wp-super-cache"
  84. P19="sitemap-donate-note"
  85. P20="cforms"
  86. P21="all_in_one_seo_pack"
  87. P22="immediately"
  88. P23="WordPress"
  89. P24="HTML"
  90. P25="ondurationchange"
  91. P26="fblike_action"
  92. P27="documentation"
  93. P28="bookmarklet"
  94. P29="bodyterminator"
  95. P30="customize"
  96. P31="withcomments"
  97. P32="default_pingback_flag"
  98. P33="photo_directions"
  99. P34="appropriate"
  100. P35="consectetuer"
  101. P36="imageEdit"
  102. P37="edit-comments"
  103. P38="Media"
  104. P39="poll_template_resultheader"
  105. P40="satisfied"
  106. P41="capabilities"
  107. P42="automatically"
  108. P43="quantity-box"
  109. P44="enabledCategories"
  110. P45="poll_module_bar_holder"
  111. P46="products_name"
  112. P47="quantity-input"
  113. P48="ya-share"
  114. P49="delete-item"
  115. P50="bgsound"
  116. P51="replacements"
  117. P52="introtext"
  118. P53="description"
  119. P54="com_media"
  120. P55="overusedwords"
  121. P56="CATEGORIES"
  122. P57="SUPPORT"
  123. P58="HONEYPOT"
  124. P59="PHPSHOP"
  125. P60="SH404SEF"
  126. P61="product"
  127. P62="news_infoo"
  128. P63="news_infoo2"
  129. P64="autolinking"
  130. P65="vvqbox"
  131. P66="payment_method"
  132. P67="com_comprofiler"
  133. P68="strSQLParserBugMessage"
  134. P69="strTransformation"
  135. P70="flashplayer"
  136. P71="contentid"
  137. P72="WPPostsRateKeys"
  138. P73="snippet"
  139. P74="Rewriter"
  140. P75="BORDER-COLLAPSE"
  141. P76="postratings_template_vote"
  142. P77="floor"
  143. P78="Kunena"
  144. P79="COM_SEF"
  145. P80="ebay"
  146. P81="kunena"
  147. P82="content_image_pos"
  148. P83="sh404sef"
  149. P84="Dampener"
  150. P85="sFontLower"
  151. P86="CHAR_LENGTH"
  152. P87="dlepopup"
  153. P88="wysiwyg"
  154. P89="acyfield"
  155. P90="formName"
  156. P91="JNEWS"
  157. P92="UDDEADM"
  158. P93="dle"
  159. P94="strnotloaded"
  160. P95="akismetwrap"
  161. P96="EXPLAIN"
  162. P97="exportable"
  163. P98="DISTINCT"
  164. P99="snippets"
  165. P100="1086"
  166. P101="addthis"
  167. P102="PREFIX"
  168. P103="myStat"
  169. P104="SEF"
  170. P105="com_virtuemart"
  171. P106="virtuemart"
  172. P107="com_cckjseblod"
  173. P108="strSetupServerAuthConfigMsg"
  174. P109="strSetupAllowArbitraryServerMsg"
  175. P110="rating_postid"
  176. P111="MyISAM"
  177. P112="instructions"
  178. P113="MYSQL"
  179. P114="phpBB"
  180. P115="teaser"
  181. P116="yarpp"
  182. P117="wprobot"
  183. P118="amazon"
  184. P119="avh-ec"
  185. P120="twitter"
  186. P121="facebook"
  187. P122="uploadimage"
  188. P123="wp_initialize_the_theme"
  189. P124="operating"
  190. P125="navigation"
  191. P126="Avatars"
  192. P127="wp_tag_cloud"
  193. P128="mouse"
  194. P129="specified"
  195. P130="com_chronocontact"
  196. P131="videomateriali"
  197. P132="com_content"
  198. P133="com_xmap"
  199. P134="node"
  200. P135="story"
  201. P136="jv-field"
  202. P137="cf_textbox"
  203. P138="wp_initialize_the_theme_message"
  204. P139="mod_xmlswf_vm"
  205. P140="Canonicalization"
  206. P141="term_id"
  207. P142="edit_post"
  208. P143="occasionally"
  209. P144="marketing"
  210. P145="radio"
  211. P146="pagenav"
  212. P147="s5effects"
  213. P148="icon_back_top"
  214. P149="topic_moved"
  215. P150="genmed"
  216. P151="FEEDS"
  217. P152="rootref"
  218. P153="relpoststh"
  219. P154="SQP_errorString"
  220. P155="vbulletin"
  221. P156="random-header"
  222. P157="tool-tip"
  223. P158="zoom1"
  224. P159="dashboard"
  225. P160="because"
  226. P161="editor_button"
  227. P162="utf_canonical_decomp"
  228. P163="utf_combining_class"
  229. P164="protected"
  230. P165="JText"
  231. P166="editor_button"
  232. P167="aicontactsafe_profiles"
  233. P168="platinum_seo_pack"
  234. P169="normalize-space"
  235. P170="language-asian"
  236. P171="EMAIL_YOUR_REMARKS"
  237. P172="gk_tab_item_desc"
  238. P173="built-in"
  239. P174="csvupload"
  240. P175="sending"
  241. P176="create_identifier"
  242. P177="WP-Cache"
  243. P178="parentid"
  244. P179="utf_canonical_comp"
  245. P180="wp_content_slider"
  246. P181="mod_gk_tab"
  247. P181="categoryalias"
  248. P182="procurement"
  249. P183="btn_optimize"
  250. P184="spamviewer"
  251. P185="com_jcomments"
  252. P186="notification_email"
  253. P187="cyberchimps"
  254. P188="videogallery"
  255. P189="superfish"
  256. P190="mod_djmenu"
  257. P191="siloing"
  258. P192="themselves"
  259. P193="minimal"
  260. P194="allow_adds"
  261. P195="phocadownload"
  262. P196="mod_gk"
  263. P197="Photoshop"
  264. P198="grungemag"
  265. P199="wp_parse_args"
  266. P200="dropdown"
  267. P201="time-clock"
  268. P202="DATA_LENGTH"
  269. P203="strikethrough"
  270. P204="whoswho"
  271. P205="ir_themeslug"
  272. P206="moduleclass_sfx"
  273. P207="mootools"
  274. P208="mod_news_pro_gk4"
  275. P209="children"
  276. P210="jcomments-links"
  277. P211="ja-contentslide"
  278. P212="ytimg"
  279. P213="horiznav"
  280.  
  281. cd $SDIR
  282. find . \( -path "$PATH1" -o -path "$PATH2" -o -path "$PATH3" -o -path "$PATH4" -o -path "$PATH5" \) -prune -o \
  283. \( -iname "$FILE1" -o -iname "$FILE2" -o -iname "$FILE3" -o -iname "$FILE4" -o -iname "$FILE5" \) \
  284. \( ! -iname "$E1" -a ! -iname "$E2" -a ! -iname "$E3" -a ! -iname "$E4" -a ! -iname "$E5" -a ! -iname "$E6" -a ! -iname "$E7" -a ! -iname "$E8" -a ! -iname "$E9" -a ! -iname "$E10" -a ! -iname "$E11" -a ! -iname "$E12" -a ! -iname "$E13" -a ! -iname "$E14" -a ! -iname "$E15" -a ! -iname "$E16" -a ! -iname "$E17" -a ! -iname "$E18" -a ! -iname "$E19" -a ! -iname "$E20" -a ! -iname "$E21" -a ! -iname "$E22" -a ! -iname "$E23" -a ! -iname "$E24" -a ! -iname "$E25" -a ! -iname "$E26" -a ! -iname "$E27" -a ! -iname "$E28" -a ! -iname "$E29" -a ! -iname "$E30" -a ! -iname "$E31" -a ! -iname "$E32" -a ! -iname "$E33" -a ! -iname "$E34" -a ! -iname "$E35" -a ! -iname "$E36" -a ! -iname "$E37" -a ! -iname "$E38" -a ! -iname "$E39" -a ! -iname "$E40" -a ! -iname "$E41" -a ! -iname "$E42" -a ! -iname "$E43" -a ! -iname "$E44" -a ! -iname "$E45" -a ! -iname "$E46" -a ! -iname "$E47" \) \
  285. -exec grep -e "[[:print:]]\{500,\}" '{}' + | while read line; do
  286. grep -v ""$P1"\|"$P2"\|"$P3"\|"$P4"\|"$P5"\|"$P6"\|"$P7"\|"$P8"\|"$P9"\|"$P10"\|"$P11"\|"$P12"\|"$P13"\|"$P14"\|"$P15"\|"$P16"\|"$P17"\|"$P18"\|"$P19"\|"$P20"\|"$P21"\|"$P22"\|"$P23"\|"$P24"\|"$P25"\|"$P26"\|"$P27"\|"$P28"\|"$P29"\|"$P30"\|"$P31"\|"$P32"\|"$P33"\|"$P34"\|"$P35"\|"$P36"\|"$P37"\|"$P38"\|"$P39"\|"$P40"\|"$P41"\|"$P42"\|"$P43"\|"$P44"\|"$P45"\|"$P46"\|"$P47"\|"$P48"\|"$P49"\|"$P50"\|"$P51"\|"$P52"\|"$P53"\|"$P54"\|"$P55"\|"$P56"\|"$P57"\|"$P58"\|"$P59"\|"$P60"\|"$P61"\|"$P62"\|"$P63"\|"$P64"\|"$P65"\|"$P66"\|"$P67"\|"$P68"\|"$P69"\|"$P70"\|"$P71"\|"$P72"\|"$P73"\|"$P74"\|"$P75"\|"$P76"\|"$P77"\|"$P78"\|"$P79"\|"$P80"\|"$P81"\|"$P82"\|"$P83"\|"$P84"\|"$P85"\|"$P86"\|"$P87"\|"$P88"\|"$P89"\|"$P90"\|"$P91"\|"$P92"\|"$P93"\|"$P94"\|"$P95"\|"$P96"\|"$P97"\|"$P98"\|"$P99"\|"$P100"\|"$P101"\|"$P102"\|"$P103"\|"$P104"\|"$P105"\|"$P106"\|"$P107"\|"$P108"\|"$P109"\|"$P110"\|"$P111"\|"$P112"\|"$P113"\|"$P114"\|"$P115"\|"$P116"\|"$P117"\|"$P118"\|"$P119"\|"$P120"\|"$P121"\|"$P122"\|"$P123"\|"$P124"\|"$P125"\|"$P126"\|"$P127"\|"$P128"\|"$P129"\|"$P130"\|"$P131"\|"$P132"\|"$P133"\|"$P134"\|"$P135"\|"$P136"\|"$P137"\|"$P138"\|"$P139"\|"$P140"\|"$P141"\|"$P142"\|"$P143"\|"$P144"\|"$P145"\|"$P146"\|"$P147"\|"$P148"\|"$P149"\|"$P150"\|"$P151"\|"$P152"\|"$P153"\|"$P154"\|"$P155"\|"$P156"\|"$P157"\|"$P158"\|"$P159"\|"$P160"\|"$P161"\|"$P162"\|"$P163"\|"$P164"\|"$P165"\|"$P166"\|"$P167"\|"$P168"\|"$P169"\|"$P170"\|"$P171"\|"$P172"\|"$P173"\|"$P174"\|"$P175"\|"$P176"\|"$P177"\|"$P178"\|"$P179"\|"$P180"\|"$P181"\|"$P182"\|"$P183"\|"$P184"\|"$P185"\|"$P186"\|"$P187"\|"$P188"\|"$P189"\|"$P190"\|"$P191"\|"$P192"\|"$P193"\|"$P194"\|"$P195"\|"$P196"\|"$P197"\|"$P198"\|"$P199"\|"$P200"\|"$P201"\|"$P202"\|"$P203"\|"$P204"\|"$P205"\|"$P206"\|"$P207"\|"$P208"\|"$P209"\|"$P210"\|"$P211"\|"$P212"\|"$P213""
  287. done >> $LOG
Поделится: 

Добавить комментарий