-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathpr0cks.go
executable file
·77 lines (68 loc) · 2.02 KB
/
pr0cks.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package main
import (
"fmt"
"log"
"os"
"os/exec"
"flag"
prockslib "github.com/n1nj4sec/pr0cks/lib"
dns "github.com/n1nj4sec/pr0cks/dns"
)
const (
VersionInfo = "pr0cks v1.0 -- Nicolas Verdier ([email protected])"
)
func autoconf(ldns string, lproxy string, socksserver string, dnsserver string) {
cmd_list:=[][]string{
[]string{"-t", "nat", },
[]string{"-L"},
}
log.Println(cmd_list)
for _,cmdslice := range cmd_list {
log.Println(cmdslice)
cmd := exec.Command("iptables", cmdslice...)
stdout, err := cmd.Output()
if err != nil {
log.Println("Error running command ", err)
}
fmt.Printf("%s\n", stdout)
}
}
func main() {
// create a socks5 dialer
var verbose bool = false
var version bool = false
var help bool = false
var dnsserver string = "8.8.8.8:53"
var socksserver string = "127.0.0.1:1080"
var ldns string = "127.0.0.1:10053"
var lproxy string = "127.0.0.1:10080"
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "Usage: %s\n", os.Args[0])
flag.PrintDefaults()
}
flag.BoolVar(&verbose, "v", false, "verbose")
flag.BoolVar(&help, "h", false, "help")
flag.BoolVar(&version, "version", false, "print version")
flag.StringVar(&dnsserver, "dns", dnsserver, "dns server and port")
flag.StringVar(&socksserver, "socks5", socksserver, "socks server and port")
flag.StringVar(&ldns, "ldns", ldns, "local dns server and port server and port")
flag.StringVar(&lproxy, "lproxy", lproxy, "local TCP proxy server and port")
flag.Parse()
if(version) {
fmt.Println(VersionInfo)
os.Exit(0)
}
if(help) {
flag.Usage()
os.Exit(0)
}
if(verbose){
fmt.Println("verbose option activated !")
}
//autoconf(ldns, lproxy, socksserver, dnsserver)
//var ProxyAddress = flag.Arg(0)
var pdns = dns.NewServer(ldns, socksserver, dnsserver)
go pdns.Start()
var psrv = prockslib.NewServer(lproxy, socksserver)
psrv.Start()
}