Dies war der Name des Kommentators mit IP-Adresse im Adressbereich einer größeren Universität der Slowakei (die dortige Administration ist bereits unterrichtet und der für die Spam verwendete Rechner war nicht mit Schadsoftware befallen – mal schauen, ob der stinkende, asoziale Spammer auch noch so doof war, sich mit seiner Benutzerkennung anzumelden und jetzt wegen des kriminellen Missbrauchs von Universitäts-Infrastruktur vor seiner Exmatrikulation steht), der den folgenden Kommentar hier auf Unser täglich Spam veröffentlichen wollte, aber aus inhaltlichen Gründen am Spamfilter scheiterte:
Hallo,
Entschuldigung für mein Deutsch. Es ist nicht schwer Geld zu verdienen. Ich weiß, wie es geht. Ich habe lange nach Wegen und Lösungen gesucht. Und da war nicht viel für mich. Ich habe manchmal sehr viel ausprobiert. Aber jetzt habe ich einen Ausweg:
Geld verdienen hier !! KLICKEN
http://bit.ly/earn-MONEY
Ansonsten hat er es gut geschrieben. Ich teile immer noch Gitter.
Mögest du bald noch mehr Gitter teilen!
Oh, über Bitly gekürzt. Mal schauen, wo es hingeht:
$ lynx -mime_header http://bit.ly/earn-MONEY | grep ^Location
Location: http://www.hitcpm.com/watch?key=e3b34fba83d114eb546dd93593e44086
$ _
Die Angabe in key
dürfte eine Affiliate-ID sein, mit der sich der Spammer seine spammigen Groschen verdienen will.
Ab jetzt geht es in Javascript weiter, und in was für Javascript!
$ lynx -mime_header http://www.hitcpm.com/watch?key=e3b34fba83d114eb546dd93593e44086
HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Sat, 10 Feb 2018 12:27:35 GMT
Content-Type: text/html
Content-Length: 2763
Connection: close
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie: u_pl=14293160; expires=Sun, 11 Feb 2018 12:27:35 GMT
Set-Cookie: ain=eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImlkIjoxNDI5MzE2MCwiayI6ImUzYjM0ZmJhODNkMTE0ZWI1NDZkZDkzNTkzZTQ0MDg2Iiwic2lkIjoiIiwiaXNpZCI6MiwiYXNpZCI6MSwiemlkIjo3NzMzNiwicGlkIjo1ODIyOCwiYW4iOnRydWUsImxhbiI6dHJ1ZSwiY2lkIjoyOCwiYWlkIjoyOH0sInUiOnsidSI6MSwiYXUiOjEsImQiOnsiaWQiOjMyMjM0NCwiaWMiOmZhbHNlLCJuIjoiRGVza3RvcHxFbXVsYXRvciIsInYiOiJVbmtub3duIiwibSI6IlVua25vd24iLCJmIjoxLCJmbiI6IkRlc2t0b3AiLCJvaWQiOjE3MDE3LCJvbiI6IlVua25vd24iLCJvdiI6IlVua25vd24iLCJiaWQiOjE4NTQ2LCJibiI6Ikx5bngiLCJidiI6IjIuOCJ9LCJjIjp7ImlkIjo1NywiYyI6IkRFIiwibiI6Ikdlcm1hbnkifSwiYSI6ZmFsc2UsImNyIjp7Im4iOiJWb2RhZm9uZSBEU0wifSwieGYiOiIiLCJpeGYiOmZhbHNlLCJpZ3hmIjpmYWxzZSwidXAiOnRydWUsInIiOiIifX0.NqKLV0rSpmzneFVZ6QY7hpH6SAEG3nynhgb5UnyySPI; expires=Sat, 10 Feb 2018 12:28:35 GMT
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache
Strict-Transport-Security: max-age=0; includeSubdomains
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<form action="/watch" method="get" id="submit-form">
<input type="hidden" name="shu" value="53c60d797f17d488b80da88ae2ad3759"/>
<input type="hidden" name="pst" value="1518265715"/>
<input type="hidden" name="rmtc" value="t"/>
<input type="hidden" name="uuid" value=""/>
<input type="hidden" name="pii" value=""/>
<input type="hidden" name="in" value=""/><input type="hidden" name="key" value="e3b34fba83d114eb546dd93593e44086"/></form>
<script type="text/javascript">
try{
if (window.opener !=null){
if (window.opener.opener !=null){
window.opener.opener = null;
}
window.opener = null;
}
if (parent.window.opener != null){
parent.window.opener = null;
}
}
catch(_e){}
function now() {
try {
return Date.now();
} catch (ex) {
return (new Date()).getTime();
}
}
function set(name, value) {
document.forms[ 0 ][ "" + name ].value = value;
}
function submit(incognito) {
set("in", incognito);
document.forms[0].submit();
}
function redirect() { submit("false"); }
var date = new Date(now() + 15 * 1000),
cookies = document.cookie,
start = cookies.indexOf("uid_id2="),
isPopunder = true;
document.cookie = "cjs=t; path=/; expires=" + date.toUTCString();
isPopunder && window !== top && set("pii", "true");
if (start === 0 || (start > 0 && (cookies.charAt(start - 1) === ';' || cookies.charAt(start - 1) === ' '))) {
var finish = cookies.indexOf(';', start);
set("uuid", cookies.substring(start + 8, finish === -1 ? void 0 : finish));
redirect();
} else {
try {
var request = new XMLHttpRequest(),
timeout = setTimeout(function() {request.abort();}, 1000);
request.withCredentials = true;
request.open("GET", "//r.remarketingpixel.com/stats");
request.onload = function() {
clearTimeout(timeout);
set("uuid", request.responseText);
redirect();
};
request.onerror = request.onabort = redirect;
request.send();
} catch (error) {
redirect();
}
}</script>
</body></html>
$ _
😯
So kryptisch muss man eine Weiterleitung erst einmal formulieren können. Hier hat jemand ganz große Sorge, dass andere Menschen mit einfachen Hilfsmitteln analysieren können, wo die Reise hingeht, und er hat einiges an Hirn dafür aufgewendet, eine solche Analyse zu erschweren. Warum? Na, weil er genau weiß, wie sich Spam auf die Reputation auswirkt. Ein HTML-Formular voller unsichtbarer Felder, mit dem ein HTTP-GET durchgeführt wird – da könnte man auch einfach GET-Parameter an eine URI hängen. Und dieses Formular wird mit vorsätzlich verwirrenden Javascript befüllt und abgesendet.
Ich kapituliere! Es wird sehr aufwändig, jetzt an der Kommanodzeile weiterzumachen. Aber ich kapituliere nicht vollständig, denn eigens für solche Fälle habe ich eine mir virtuelle Maschine aufgesetzt, deren Integrität ich im Gegensatz zu meinem Arbeitsrechner bedenkenlos aufs Spiel setzen kann. Und da kann ich es auch mit dem Webbrowser machen.
Und, wie verdient unser Spammerchen jetzt sein Geld?
Aha, mit Affiliate-Spam für Dating-Betrug verdient er sein Geld. Wie er allerdings auf die Idee kommt, dass naive Klickopfer seiner Kommentarspam sofort von Geldverdienen auf den Austausch von Körperflüssigkeiten umschalten können, bleibt ein bisschen rätselhaft. Vermutlich spiegelt sich hier die bizarre geistige Welt des Spammers, deren Assoziationsketten für mich nicht leicht nachvollziehbar sind. 😀