Transparent proxy server s manipulací HTTP paketů

HackForum

Transparent proxy server s manipulací HTTP paketů#
Zdravím, už nějakou dobu neúspěšně hledám HTTP proxy server, který by mi umožňoval za běhu měnit HTTP pakety (zejména jejich hlavičky).
V ideálním případě by mohl podporovat skriptování (nad pakety, interakce s OS) a protože to hledám na windows tak i univerzální (java, python).

Jako zatím nejzajímavější mi přišel Scapy s jeho schopností manipulace a skriptování, ale bohužel jsem nepřišel na to jak by mohl naslouchat na portu, takže jsem další úvahy scapy=proxy nechal plavat.

Pak mě na chvíli zaujal Paros proxy, kde je velmi jednoduchá možnost manipulace s hlavičkou paketu, ale tak jednoduchá až je nepoužitelná.

No pak jsem si v javě napsal proxy, která sice svou práci odvede, ale je hrozně pomalá.

Tak jestli někdo znáte takový proxy server, tak se prosím podělte o své know-how. Nebo jestli tu je nějaký machr přes Scapy, který by věděl jak v něm simulovat proxy, tak to taky beru.

Díky
(odpovědět)
Sembro | 82.208.38.*31.1.2010 18:27
re: Transparent proxy server s manipulací HTTP pak#
Ja si drive hral se scapy, ale jestli v nem jde nasimulovat proxy, to si nejsem jisty.

Jen ze zvedavosti - k cemu to vlastne potrebujes?
(odpovědět)
33EE | 89.185.249.*31.1.2010 22:38
re: Transparent proxy server s manipulací HTTP pak#
Se scapy jde udělat proxy, ale když jsi požadované funkcionality dosáhl i v javě, tak si myslím, že by to byl kanón na vrabce. Ale asi jen nevím, co přesně zamýšlíš a potřebuješ, protože jsi to nenapsal. Proto ti taky nemůžu poradit konkrétní server.

Každopádně, pokud už máš to javovské řešení, tak bych se ho držel a jen pořešil tu rychlost. Nevím, pro jakou zátěž to potřebuješ, ale tipuji, že problém nejspíš bude jen ve zbytečném/nevhodném použití bufferujících/blokujících funkcí.

(odpovědět)
prc | 213.211.51.*2.2.2010 10:28
re: Transparent proxy server s manipulací HTTP pak#
Obecná situace kterou bych touto proxy chtěl řešit:
1) HTTP komunikace client - server
2) client využívá proxy
3) proxy monitoruje obsah http hlaviček jejich komunikace a když podle jistých pravidel najde odpovídající paket, volá externí program jehož paramaterm je např. nějaké číslo z http hlavičky
4) také je žadoucí abych ty hlavičky (konkrétně třeba to číslo) mohl před dalším odesláním změnit

Příklad:
1) Originální hlavička
GET /index.php?id=1 HTTP/1.1
Host: www.example.com

1) Proxy
- vezme z parametru id číslo "1" a volá externí program např. "cmd /K echo 1"

1) Hlavička poslaná dál k serveru po změně id
GET /index.php?id=987 HTTP/1.1
Host: www.example.com

To je asi tak vše. Příklad je vysloveně ilustrativní, ale odpovídá záměru.
------------------

Ohledně té javy máte pravdu, je to pomalý kvůli bufferu co "zastavuje" pakety a mám tam trochu bordel ve vláknech ale to teď nechci řešit.

Opravdu by mě ale zajímalo jak ve scapy udělat tu proxy. Na googlu jsem našel pár příspěvků že to zkoušeli, ale už ne jak to dopadlo, natož pak ukázat směr jak na to.
Jestli mě tedy můžete někam odkázat nebo naznačit řešení tak to by pro mě byly vánoce.
Jinak možná to bude kanón na vrabce, ale ty možnosti skriptování a samotné práce s pakety tak jak to děla Scapy si sám v javě tak dobře a elegantně neudělám.
(odpovědět)
Sembro | 82.208.38.*2.2.2010 16:36
re: Transparent proxy server s manipulací HTTP pak#
No, Scapy nemá (nebo neměl) builder a dissector pro HTTP, takže to stejně musíš řešit sám a patlání na nižších vrstvách, když to nepotřebuješ, je všechno jen ne elegantní :)

Třeba do toho Parosu, navíc když už umíš Javu, si to snadno dopíšeš jako filtr. Já jsem to teď spatlal během chvilky i když jsem v Javě nedělal už léta a šlape to slušně - [link]
(odpovědět)
prc | 213.211.51.*3.2.2010 13:19
re: Transparent proxy server s manipulací HTTP pak#
Oprava, tady - [link]
(odpovědět)
prc | 213.211.51.*3.2.2010 13:29

Zpět
 
 
 

 
BBCode