Wir tun dies mit einer Befehlszeilenfunktion (Bash) auf einem beliebigen Webserver im Stapel.
monitor_outbound ()
{
tcpflow -p -c -i bond0 '( port 80 or port 443 ) and ' $(ip addr list | grep -Eoh "([0-9]{1,3}\.){3}[0-9]+" | sort -u | awk '{print "src host " $1 " or"}' | tr '\n' ' ' | sed -E 's# or $##g') | grep --line-buffered -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*' | sed --unbuffered "s/^/$(date "+%b %d %T"): /g"
}
Abgesehen davon können Sie die CURL / fopen-Methoden in Magento nutzen (dies setzt jedoch voraus, dass sie sich die Mühe machen, Kernmethoden zu verwenden). In den meisten Fällen werden benutzerdefinierte Module ihre offenen file_get_contents()
oder curl
Methoden verwenden.
Sie können eine schnelle Überprüfung mit einem einfachen durchführen grep
(vorausgesetzt, der Code ist nicht verschleiert)
grep -ilrE "curl|file_get_contents|fopen|Zend_Http_Client" app/code/local app/code/community
Und wie @Marius weiter unten sagte, suchen Sie nach verdeckten Modulen, die ihre Methoden möglicherweise in base64
verschlüsselten Zeichenfolgen verbergen
grep -ilrE "eval[\t ]+\(" app/code/local app/code/community
Das einzige Problem mit der oben genannten CLI-Methode ist, dass sie zwar für ausgehende HTTP-Anforderungen äußerst effektiv ist, für HTTPS jedoch nutzlos ist (da der Datenverkehr verschlüsselt ist). Das Beste, was Sie erhalten, ist eine IP / ein Hostname, aber nichts weiter.