mirror of
https://github.com/bettercap/bettercap
synced 2025-08-22 14:24:38 -07:00
wip: Almost back to initial functionalit
This commit is contained in:
parent
b4043e3e02
commit
0922c0a5fa
1 changed files with 12 additions and 18 deletions
|
@ -1,7 +1,7 @@
|
||||||
package rdp_proxy
|
package rdp_proxy
|
||||||
|
|
||||||
// TESTING:
|
// TESTING:
|
||||||
// set arp.spoof.targets '192.168.151.174'
|
//
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
@ -41,7 +41,7 @@ func NewRdpProxy(s *session.Session) *RdpProxy {
|
||||||
done: make(chan bool),
|
done: make(chan bool),
|
||||||
queue: nil,
|
queue: nil,
|
||||||
queueNum: 0,
|
queueNum: 0,
|
||||||
port: 0,
|
port: 3389,
|
||||||
startPort: 40000,
|
startPort: 40000,
|
||||||
cmd: "pyrdp-mitm",
|
cmd: "pyrdp-mitm",
|
||||||
targets: "<All Subnets>",
|
targets: "<All Subnets>",
|
||||||
|
@ -110,20 +110,13 @@ func (mod *RdpProxy) destroyQueue() {
|
||||||
mod.queue = nil
|
mod.queue = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// "iptables -I 1 -p tcp -m tcp --dport 3389 -d 10.0.0.0/24 -j NFQUEUE --queue-num 0 --queue-bypass"
|
|
||||||
|
|
||||||
|
|
||||||
// Starts or stops a particular proxy instances.
|
// Starts or stops a particular proxy instances.
|
||||||
func (mod *RdpProxy) proxy(target net.Addr) (err error) {
|
func (mod *RdpProxy) pyRdp(target net.Addr) (err error) {
|
||||||
args := []string{
|
_, err = core.Exec("iptables", []string { "-t", "nat",
|
||||||
"-j", "NFQUEUE",
|
"-I", "BCAPRDP", "1",
|
||||||
"--queue-num", fmt.Sprintf("%d", mod.queueNum),
|
"-p" "tcp" "--dport", fmt.Sprintf("%d", mod.port),
|
||||||
"--queue-bypass",
|
"-j" "REDIRECT" "--to-ports", fmt.Sprintf("%d", mod.instancePort),
|
||||||
}
|
})
|
||||||
|
|
||||||
mod.Debug("iptables %s", args)
|
|
||||||
|
|
||||||
// _, err = core.Exec("iptables", args)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +149,6 @@ func (mod *RdpProxy) configureFirewall(enable bool) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (mod *RdpProxy) Configure() (err error) {
|
func (mod *RdpProxy) Configure() (err error) {
|
||||||
golog.SetOutput(ioutil.Discard)
|
golog.SetOutput(ioutil.Discard)
|
||||||
mod.destroyQueue()
|
mod.destroyQueue()
|
||||||
|
@ -191,8 +183,10 @@ func (mod *RdpProxy) Configure() (err error) {
|
||||||
func (mod *RdpProxy) handleRdpConnection(payload *nfqueue.Payload) int {
|
func (mod *RdpProxy) handleRdpConnection(payload *nfqueue.Payload) int {
|
||||||
|
|
||||||
// 1. Determine source and target addresses.
|
// 1. Determine source and target addresses.
|
||||||
p := gopacket.NewPacket(payload.Data, layers.LayerTypeEthernet, gopacket.NoCopy)
|
p := gopacket.NewPacket(payload.Data, layers.LayerTypeIPv4, gopacket.Default)
|
||||||
mod.Info("New Connection: %v", p)
|
src, sport := p.NetworkLayer().NetworkFlow().Src(), p.TransportLayer().TransportFlow().Src()
|
||||||
|
dst, dport := p.NetworkLayer().NetworkFlow().Dst(), p.TransportLayer().TransportFlow().Dst()
|
||||||
|
mod.Info("Connection [%v:%v -> %v:%v]", src, sport, dst, dport)
|
||||||
|
|
||||||
// 2. Check if the destination IP already has a PYRDP session active, if so, do nothing.
|
// 2. Check if the destination IP already has a PYRDP session active, if so, do nothing.
|
||||||
// 3. Otherwise:
|
// 3. Otherwise:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue