是否可以使用另一个 ip 源发送欺骗数据包?我在网上搜索,发现我需要使用 scapy 库。我有这个脚本,我发现:
import sys
from scapy.all import *
if len(sys.argv) != 4:
print ("Usage: ./spoof.py <target> <spoofed_ip> <port>")
sys.exit(1)
target = sys.argv[1]
spoofed_ip = sys.argv[2]
port = int(sys.argv[3])
p1=IP(dst=target,src=spoofed_ip)/TCP(dport=port,sport=5000,flags='S')
send(p1)
print ("Okay, SYN sent. Enter the sniffed sequence number now: ")
seq=sys.stdin.readline()
print ("Okay, using sequence number " + seq)
seq=int(seq[:-1])
p2=IP(dst=target,src=spoofed_ip)/TCP(dport=port,sport=5000,flags='A',
ack=seq+1,seq=1)
send(p2)
print ("Okay, final ACK sent. Check netstat on your target :-)")
Run Code Online (Sandbox Code Playgroud)
但我不明白“现在输入嗅探的序列号”是什么意思:
另外,是否可以避免使用 scapy,而使用套接字库?如果是,你能告诉我怎么走吗?
int main(int argc, char **argv){
printf("argv: %s\n",argv); // does not work and prints random stuff
printf("*argv: %s\n",*argv); // works and prints ".a.out"
}
Run Code Online (Sandbox Code Playgroud)
我测试:
./a.out nop
Run Code Online (Sandbox Code Playgroud)
我的困惑是这样的:
第二行中的“argv”变量具有“./a.out”的第一个字符的地址。
第三行中的“*argv”变量是“./a.out”的第一个字符。
那么为什么printf("argv: %s\n",argv);只打印“./a.out”不起作用呢?
我知道这是错误的,但我不知道为什么。
在此脚本中:
import threading, socket
class send(threading.Thread):
def run(self):
try:
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((url,port))
s.send(b"Hello world!")
print ("Request Sent!")
except:
s.close()
except KeyboardInterrupt:
# here i'd like to kill all threads if possible
for x in range(800):
send().start()
Run Code Online (Sandbox Code Playgroud)
是否可以杀死除键盘中断之外的所有线程?我在网上搜索过,是的,我知道已经有人问过这个问题了,但我对Python真的很陌生,而且我对堆栈上提出的其他问题的方法不太了解。
是否可以?如果是?如何?
这是我的脚本(它不起作用):
from scapy.all import *
import socket
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
p=IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(), dport=80)
s.connect(("192.168.1.254",80))
s.send(p)
print ("Request sent!")
except:
print ("An error occurred.")
Run Code Online (Sandbox Code Playgroud)
- 更新 -
p = bytes(IP(dst="DESTINATIONIP")/TCP(flags="S", sport=RandShort(), dport=80))
while True:
try:
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, sockip, sockport, True)
s = socks.socksocket()
s.connect((DESTINATIONIP,DESTINATIONPORT))
s.send(p)
print ("Request Sent!")
except:
print ("An error occurred.")
Run Code Online (Sandbox Code Playgroud)
是否可以通过http代理而不是socks发送这个syn数据包?
我有一个用 C 编写的简单脚本:
#include <stdio.h>
void usage(char *program_name) {
printf("Usage: %s <message> <# of times to repeat>\n", program_name);
exit(1);
}
int main(int argc, char *argv[]) {
int i, count;
// if(argc < 3) // If less than 3 arguments are used,
// usage(argv[0]); // display usage message and exit.
count = atoi(argv[2]); // convert the 2nd arg into an integer
printf("Repeating %d times..\n", count);
for(i=0; i < count; i++)
printf("%3d - %s\n", i, argv[1]); // print the 1st arg
} …Run Code Online (Sandbox Code Playgroud) 例如,我有这个列表:
list = ["192.168.1.1", "0.1.2.3", "0.2.3.4", "192.168.1.2", "0.3.4.5", "192.168.1.3"]
Run Code Online (Sandbox Code Playgroud)
如何使用命令删除所有以"0."?开头的项目?
我需要在 python3 中构建一个简单的脚本,打开目录中的更多文件,并查看这些文件中是否有关键字。
目录内的所有文件都是这样的:“f*.formatofile”(* 为随意数字)
例子:
f9993546.txt
f10916138.txt
f6325802.txt
Run Code Online (Sandbox Code Playgroud)
显然我只需要打开txt文件。
提前致谢!
最终脚本:
import os
Path = "path of files"
filelist = os.listdir(Path)
for x in filelist:
if x.endswith(".txt"):
try:
with open(Path + x, "r", encoding="ascii") as y:
for line in y:
if "firefox" in line:
print ("Found in %s !" % (x))
except:
pass
Run Code Online (Sandbox Code Playgroud)