[Day 15] 閑著沒事就寫寫code

已經大致寫好了SYN、UDP、ACK、ICMP封包

先把做好的封包都做整理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
package packet

// tcp packet func

// udp packet func

// ack packet func

// icmp packet func

// connectTo func
// syn,

// sendTo func
// udp, icmp

// sendPacketData (gopacket)
// ack
 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
package main

// @title   buildSynPacket
// @description   Build a syn packet with sys/unix
// @auth     Sunny Tsai     Time(2023/09/25)
// @param    targetIP        string        send to target ip address
// @param    targetPort      int           send to target port
func buildSynPacket(targetIp string, targetPort int) {

	err := packet.Syn(targetIp, targetPort)
	if err != nil {
		fmt.Println(err)
	}
}
...依此類推

func main() {
	targetIp := "10.211.55.10"
	targetPort := 12345

    var wg sync.WaitGroup
	defer wg.Done()

	targetIp := "10.211.55.10"
	targetPort := 12345

	// Layer 4
	synch := make(chan int)
	go func() {
		for {
			buildSynPacket(targetIp, targetPort)
			synch <- 1
		}
	}()

	go func() {
		countSyn := 0

		for {
			select {
			case <-synch:
				countSyn++
			}
		}
	}()

在main.go裡面增加併發,並記錄syn封包丟出的次數。 今天先寫到這裡,這兩天有點事QQ

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy