Skip to content

Latest commit

 

History

History
229 lines (163 loc) · 3.55 KB

README-CN.md

File metadata and controls

229 lines (163 loc) · 3.55 KB

Goasm RAT

Go MASM Windows License

翻译

简介

cover

Goasm-RAT是一款简单的Windows控制台远程控制工具,使用GoIntel x86 Assembly编写,支持远程Shell及屏幕截图。

开始

前置条件

构建

客户端

..\client> .\build.ps1

服务器

..\server\scripts> .\build.ps1

使用

客户端

使用命令行参数指定服务器的IPv4地址及TCP端口号。

client <ipv4-addr> <port>

服务器

使用-p选项指定TCP监听端口,默认端口为10080

server -p <port>

使用-h选项显示帮助信息。

-h    This help
-p int
      Listening port (default 10080)

命令

当服务器等待用户输入时,后台信息和命令执行结果并不会实时显示,需要使用Enter手动刷新。

基础控制
  • sw <client-id>

    切换当前控制的客户端。

    > sw 1
    Sep 24 23:03:27: The current client has changed to [1].
  • exit

    退出服务器。

Shell
exec <command>

在客户端执行Shell命令。

> exec whoami
>
Sep 25 00:21:38: Shell messages from the client [1]:
----------------------------------------------------
whoami
desktop-testpc1\chenzs

C:\Users\chenzs\Goasm-RAT\client>
----------------------------------------------------
屏幕截图
sc

截取客户端屏幕,保存为.png文件。

类图

classDiagram

class IoWriter {
    <<interface>>
    Write(bytes)
}

class IoReadWriter  {
    <<interface>>
    Read(bytes)
}

IoWriter <|-- IoReadWriter

class Logger  {
    <<interface>>
    Log(msg)
    Store(msg) int
}

Logger --> IoWriter

namespace network {

    class Client {
        <<interface>>
        RecvPacket() Packet
        SendPacket(Packet)
    }

    class PacketType {
        <<enumeration>>
        Unknow
        Connect
        Disconnect
    }

    class Packet {
        []byte data
        ToBinary() []byte
        FromBinary([]byte)
    }
}

Client ..> Packet
Packet --> PacketType
IoReadWriter <|.. Packet

namespace mod {

    class ModExecutor {
        <<interface>>
        Cmds() []string
        Exec(cmd, args)
    }

    class ModResponder {
        <<interface>>
        Respond(Client, Packet)
    }



    class Mod {
        <<interface>>
        ID() int
        Name() string
        SetClient(Client)
    }

    class ModDispatcher {
        <<interface>>
        Register(Mod)
        ByID(int) Mod
        ByCmd(string) Mod
        ByPacket(PacketType) Mod
    }

    class Shell
    class ScreenCapture
}

ModResponder ..> Client
ModResponder ..> Packet
ModExecutor <|-- Mod
ModResponder <|-- Mod
Mod --> Client
ModDispatcher o-- Mod
ModDispatcher ..> PacketType
Mod <|.. ScreenCapture
Mod <|.. Shell

class RAT {
    <<interface>>
    Register(Mod)
    Startup(port)
    Exec(cmd, args)
}

RAT --> ModDispatcher
RAT --> Logger
Loading

Bugs

已知的Bug在代码注释中使用BUG标记。

许可证

使用MIT协议,请参考LICENSE文件。